boundless-portal
Advanced tools
Comparing version 1.0.0-beta.4 to 1.0.0-beta.5
@@ -1,2 +0,2 @@ | ||
module.exports=function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=4)}([function(e,t,n){"use strict";function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object.keys(e).reduce(function(n,r){return t.indexOf(r)===-1&&(n[r]=e[r]),n},{})}t.a=r},function(e,t,n){"use strict";function r(){return"b-"+([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,function(e){return(e^16*Math.random()>>e/4).toString(16)})}t.a=r},function(e,t){e.exports=require("react")},function(e,t){e.exports=require("react-dom")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2),o=n.n(r),i=n(3),l=n.n(i),s=n(0),a=n(1),p=function(e){function t(){var e,r,o,i;babelHelpers.classCallCheck(this,t);for(var l=arguments.length,s=Array(l),p=0;p<l;p++)s[p]=arguments[p];return r=o=babelHelpers.possibleConstructorReturn(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(s))),o.id=n.i(a.a)(),o.$portal=null,o.$passenger=null,i=r,babelHelpers.possibleConstructorReturn(o,i)}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"componentWillMount",value:function(){this.$portal=document.createElement("div"),this.props.destination.appendChild(this.$portal),this.renderPortalledContent()}},{key:"renderPortalledContent",value:function(){var e=o.a.isValidElement(this.props.children)?this.props.children:o.a.createElement("div",null,this.props.children);this.$portal.id=this.props.portalId||this.id,l.a.unstable_renderSubtreeIntoContainer(this,e,this.$portal),this.$passenger=this.$portal.children[0]}},{key:"componentDidUpdate",value:function(){this.renderPortalledContent()}},{key:"componentWillUnmount",value:function(){l.a.unmountComponentAtNode(this.$portal),this.props.destination.removeChild(this.$portal)}},{key:"render",value:function(){return o.a.createElement("span",babelHelpers.extends({},n.i(s.a)(this.props,t.internalKeys),babelHelpers.defineProperty({},t.PORTAL_DATA_ATTRIBUTE,this.props.portalId||this.id)))}}]),t}(o.a.Component);p.propTypes={children:o.a.PropTypes.node,destination:r.PropTypes.instanceOf(HTMLElement),portalId:r.PropTypes.string},p.defaultProps={children:null,destination:document.body,portalId:null},p.internalKeys=Object.keys(p.defaultProps),p.PORTAL_DATA_ATTRIBUTE="data-portal-id",t.default=p}]); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIGQwNjgxZDI2OTc2MzRkYzI1MTEyIiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vcGFja2FnZXMvYm91bmRsZXNzLXV0aWxzLXV1aWQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIHtcImFtZFwiOlwicmVhY3RcIixcImNvbW1vbmpzMlwiOlwicmVhY3RcIixcInJvb3RcIjpcIlJlYWN0XCJ9Iiwid2VicGFjazovLy9leHRlcm5hbCB7XCJhbWRcIjpcInJlYWN0LWRvbVwiLFwiY29tbW9uanMyXCI6XCJyZWFjdC1kb21cIixcInJvb3RcIjpcIlJlYWN0RE9NXCJ9Iiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy1wb3J0YWwvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJpbnN0YWxsZWRNb2R1bGVzIiwiaSIsImwiLCJjYWxsIiwibSIsImMiLCJ2YWx1ZSIsImQiLCJuYW1lIiwiZ2V0dGVyIiwibyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsImdldCIsIm4iLCJfX2VzTW9kdWxlIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwiX193ZWJwYWNrX2V4cG9ydHNfXyIsIm9taXRLZXlzRnJvbVNvdXJjZU9iamVjdCIsInNvdXJjZSIsIm9taXR0ZWRLZXlzIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwia2V5cyIsInJlZHVjZSIsImhhc2giLCJrZXkiLCJpbmRleE9mIiwidXVpZCIsInJlcGxhY2UiLCJhIiwiTWF0aCIsInJhbmRvbSIsInRvU3RyaW5nIiwicmVxdWlyZSIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9yZWFjdF9kb21fXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9yZWFjdF9kb21fX19kZWZhdWx0IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19ib3VuZGxlc3NfdXRpbHNfb21pdF9rZXlzX2luZGV4X18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2JvdW5kbGVzc191dGlsc191dWlkX2luZGV4X18iLCJQb3J0YWwiLCJfUmVhY3QkQ29tcG9uZW50IiwiX3JlZiIsIl90ZW1wIiwiX3RoaXMiLCJfcmV0IiwiYmFiZWxIZWxwZXJzIiwiY2xhc3NDYWxsQ2hlY2siLCJ0aGlzIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJwb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiX19wcm90b19fIiwiZ2V0UHJvdG90eXBlT2YiLCJhcHBseSIsImNvbmNhdCIsImlkIiwiJHBvcnRhbCIsIiRwYXNzZW5nZXIiLCJpbmhlcml0cyIsImNyZWF0ZUNsYXNzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwicHJvcHMiLCJkZXN0aW5hdGlvbiIsImFwcGVuZENoaWxkIiwicmVuZGVyUG9ydGFsbGVkQ29udGVudCIsImNoaWxkIiwiaXNWYWxpZEVsZW1lbnQiLCJjaGlsZHJlbiIsInBvcnRhbElkIiwidW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIiLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwicmVtb3ZlQ2hpbGQiLCJleHRlbmRzIiwiaW50ZXJuYWxLZXlzIiwiUE9SVEFMX0RBVEFfQVRUUklCVVRFIiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwibm9kZSIsImluc3RhbmNlT2YiLCJIVE1M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LEVBQU1rRCxVQUFyQnZDLEdBQ1Z3QyxXQWtDSFQsU0FBVXBDLEVBQUFOLEVBQU1vRCxVQUFVQyxLQUsxQmhCLFlBQWFoQyxFQUFBLFVBQVVpRCxXQUFXQyxhQUtsQ1osU0FBVXRDLEVBQUEsVUFBVW1ELFFBN0NQN0MsRUFnRFY4QyxjQUNIZixTQUFVLEtBQ1ZMLFlBQWFILFNBQVN3QixLQUN0QmYsU0FBVSxNQW5ER2hDLEVBc0RWcUMsYUFBZTNFLE9BQU9vQixLQUFLa0IsRUFBTzhDLGNBdER4QjlDLEVBd0RWc0Msc0JBQXdCLGlCTnlDbzhFL0QsRUFBNkIsUU1qRy8rRXlCIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPVxuLyoqKioqKi8gKGZ1bmN0aW9uKG1vZHVsZXMpIHsgLy8gd2VicGFja0Jvb3RzdHJhcFxuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuLyoqKioqKi8gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuLyoqKioqKi8gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4vKioqKioqLyBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0aTogbW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRsOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbi8qKioqKiovIFx0XHRtb2R1bGUubCA9IHRydWU7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4vKioqKioqLyBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHR9XG4vKioqKioqL1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBpZGVudGl0eSBmdW5jdGlvbiBmb3IgY2FsbGluZyBoYXJtb255IGltcG9ydHMgd2l0aCB0aGUgY29ycmVjdCBjb250ZXh0XG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbi8qKioqKiovIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4vKioqKioqLyBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuLyoqKioqKi8gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuLyoqKioqKi8gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuLyoqKioqKi8gXHRcdFx0XHRnZXQ6IGdldHRlclxuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4vKioqKioqLyBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuLyoqKioqKi8gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4vKioqKioqLyBcdFx0cmV0dXJuIGdldHRlcjtcbi8qKioqKiovIFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vKioqKioqLyBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDQpO1xuLyoqKioqKi8gfSlcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyAoW1xuLyogMCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZXhwb3J0IChpbW11dGFibGUpICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gb21pdEtleXNGcm9tU291cmNlT2JqZWN0O1xuZnVuY3Rpb24gb21pdEtleXNGcm9tU291cmNlT2JqZWN0KHNvdXJjZSl7dmFyIG9taXR0ZWRLZXlzPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1sxXTpbXTtyZXR1cm4gT2JqZWN0LmtleXMoc291cmNlKS5yZWR1Y2UoZnVuY3Rpb24gcmVsb2NhdGVBY2NlcHRlZEtleXMoaGFzaCxrZXkpe2lmKG9taXR0ZWRLZXlzLmluZGV4T2Yoa2V5KT09PS0xKXtoYXNoW2tleV09c291cmNlW2tleV07fXJldHVybiBoYXNoO30se30pO31cblxuLyoqKi8gfSksXG4vKiAxICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBleHBvcnQgKGltbXV0YWJsZSkgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImFcIl0gPSB1dWlkO1xuZnVuY3Rpb24gdXVpZCgpe3JldHVybidiLScrKFsxZTddKy0xZTMrLTRlMystOGUzKy0xZTExKS5yZXBsYWNlKC9bMDE4XS9nLGZ1bmN0aW9uKGEpe3JldHVybihhXk1hdGgucmFuZG9tKCkqMTY+PmEvNCkudG9TdHJpbmcoMTYpO30pO31cblxuLyoqKi8gfSksXG4vKiAyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0XCIpO1xuXG4vKioqLyB9KSxcbi8qIDMgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpO1xuXG4vKioqLyB9KSxcbi8qIDQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoX193ZWJwYWNrX2V4cG9ydHNfXywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9yZWFjdF9kb21fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX3JlYWN0X2RvbV9fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX3JlYWN0X2RvbV9fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2JvdW5kbGVzc191dGlsc19vbWl0X2tleXNfaW5kZXhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19ib3VuZGxlc3NfdXRpbHNfdXVpZF9pbmRleF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbnZhciBQb3J0YWw9ZnVuY3Rpb24oX1JlYWN0JENvbXBvbmVudCl7YmFiZWxIZWxwZXJzLmluaGVyaXRzKFBvcnRhbCxfUmVhY3QkQ29tcG9uZW50KTtmdW5jdGlvbiBQb3J0YWwoKXt2YXIgX3JlZjt2YXIgX3RlbXAsX3RoaXMsX3JldDtiYWJlbEhlbHBlcnMuY2xhc3NDYWxsQ2hlY2sodGhpcyxQb3J0YWwpO2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5Kyspe2FyZ3NbX2tleV09YXJndW1lbnRzW19rZXldO31yZXR1cm4gX3JldD0oX3RlbXA9KF90aGlzPWJhYmVsSGVscGVycy5wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKF9yZWY9UG9ydGFsLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKFBvcnRhbCkpLmNhbGwuYXBwbHkoX3JlZixbdGhpc10uY29uY2F0KGFyZ3MpKSksX3RoaXMpLF90aGlzLmlkPV9fd2VicGFja19yZXF1aXJlX18uaShfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2JvdW5kbGVzc191dGlsc191dWlkX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL10pKCksX3RoaXMuJHBvcnRhbD1udWxsLF90aGlzLiRwYXNzZW5nZXI9bnVsbCxfdGVtcCksYmFiZWxIZWxwZXJzLnBvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oX3RoaXMsX3JldCk7fWJhYmVsSGVscGVycy5jcmVhdGVDbGFzcyhQb3J0YWwsW3trZXk6J2NvbXBvbmVudFdpbGxNb3VudCcsdmFsdWU6ZnVuY3Rpb24gY29tcG9uZW50V2lsbE1vdW50KCl7dGhpcy4kcG9ydGFsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO3RoaXMucHJvcHMuZGVzdGluYXRpb24uYXBwZW5kQ2hpbGQodGhpcy4kcG9ydGFsKTt0aGlzLnJlbmRlclBvcnRhbGxlZENvbnRlbnQoKTt9fSx7a2V5OidyZW5kZXJQb3J0YWxsZWRDb250ZW50Jyx2YWx1ZTpmdW5jdGlvbiByZW5kZXJQb3J0YWxsZWRDb250ZW50KCl7dmFyIGNoaWxkPV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5pc1ZhbGlkRWxlbWVudCh0aGlzLnByb3BzLmNoaWxkcmVuKT90aGlzLnByb3BzLmNoaWxkcmVuOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5jcmVhdGVFbGVtZW50KCdkaXYnLG51bGwsdGhpcy5wcm9wcy5jaGlsZHJlbik7dGhpcy4kcG9ydGFsLmlkPXRoaXMucHJvcHMucG9ydGFsSWR8fHRoaXMuaWQ7X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX3JlYWN0X2RvbV9fX2RlZmF1bHQuYS51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcih0aGlzLGNoaWxkLHRoaXMuJHBvcnRhbCk7dGhpcy4kcGFzc2VuZ2VyPXRoaXMuJHBvcnRhbC5jaGlsZHJlblswXTt9fSx7a2V5Oidjb21wb25lbnREaWRVcGRhdGUnLHZhbHVlOmZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpe3RoaXMucmVuZGVyUG9ydGFsbGVkQ29udGVudCgpO319LHtrZXk6J2NvbXBvbmVudFdpbGxVbm1vdW50Jyx2YWx1ZTpmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpe19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9yZWFjdF9kb21fX19kZWZhdWx0LmEudW5tb3VudENvbXBvbmVudEF0Tm9kZSh0aGlzLiRwb3J0YWwpO3RoaXMucHJvcHMuZGVzdGluYXRpb24ucmVtb3ZlQ2hpbGQodGhpcy4kcG9ydGFsKTt9fSx7a2V5OidyZW5kZXInLHZhbHVlOmZ1bmN0aW9uIHJlbmRlcigpe3JldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX19kZWZhdWx0LmEuY3JlYXRlRWxlbWVudCgnc3BhbicsYmFiZWxIZWxwZXJzLmV4dGVuZHMoe30sX193ZWJwYWNrX3JlcXVpcmVfXy5pKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19pbmRleF9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKSh0aGlzLnByb3BzLFBvcnRhbC5pbnRlcm5hbEtleXMpLGJhYmVsSGVscGVycy5kZWZpbmVQcm9wZXJ0eSh7fSxQb3J0YWwuUE9SVEFMX0RBVEFfQVRUUklCVVRFLHRoaXMucHJvcHMucG9ydGFsSWR8fHRoaXMuaWQpKSk7fX1dKTtyZXR1cm4gUG9ydGFsO30oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLkNvbXBvbmVudCk7UG9ydGFsLnByb3BUeXBlcz17Y2hpbGRyZW46X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLlByb3BUeXBlcy5ub2RlLGRlc3RpbmF0aW9uOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLmluc3RhbmNlT2YoSFRNTEVsZW1lbnQpLHBvcnRhbElkOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLnN0cmluZ307UG9ydGFsLmRlZmF1bHRQcm9wcz17Y2hpbGRyZW46bnVsbCxkZXN0aW5hdGlvbjpkb2N1bWVudC5ib2R5LHBvcnRhbElkOm51bGx9O1BvcnRhbC5pbnRlcm5hbEtleXM9T2JqZWN0LmtleXMoUG9ydGFsLmRlZmF1bHRQcm9wcyk7UG9ydGFsLlBPUlRBTF9EQVRBX0FUVFJJQlVURT0nZGF0YS1wb3J0YWwtaWQnOy8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImRlZmF1bHRcIl0gPSBQb3J0YWw7XG5cbi8qKiovIH0pXG4vKioqKioqLyBdKTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gaW5kZXguanMiLCIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcblxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gaWRlbnRpdHkgZnVuY3Rpb24gZm9yIGNhbGxpbmcgaGFybW9ueSBpbXBvcnRzIHdpdGggdGhlIGNvcnJlY3QgY29udGV4dFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pID0gZnVuY3Rpb24odmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9O1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbiBcdFx0XHR9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA0KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL2Jvb3RzdHJhcCBkMDY4MWQyNjk3NjM0ZGMyNTExMiIsIi8qKlxuICogUmV0dXJucyBhIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIHN1cHBsaWVkIG9iamVjdCB3aXRob3V0IHRoZSBnaXZlbiBrZXlzLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBvbWl0S2V5c0Zyb21Tb3VyY2VPYmplY3Qoc291cmNlLCBvbWl0dGVkS2V5cyA9IFtdKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHNvdXJjZSkucmVkdWNlKGZ1bmN0aW9uIHJlbG9jYXRlQWNjZXB0ZWRLZXlzKGhhc2gsIGtleSkge1xuICAgICAgICBpZiAob21pdHRlZEtleXMuaW5kZXhPZihrZXkpID09PSAtMSkge1xuICAgICAgICAgICAgaGFzaFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaGFzaDtcblxuICAgIH0sIHt9KTtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXguanMiLCIvKipcbiAqIEdlbmVyYXRlcyBhIHVuaXF1ZSBJRC4gQWRkcyBhIHByZWZpeCBzbyBpdCBpcyBzdWl0YWJsZSBmb3IgdXNlIGFzIGFuIEhUTUwgSUQuXG4gKiBCYXNlZCBvbiB7QGxpbmsgaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vamVkLzk4Mjg4MyB0aGlzIGltcGxlbWVudGF0aW9ufS5cbiAqXG4gKiBAcmV0dXJuIHtzdHJpbmd9IGEgdW5pcXVlIGlkZW50aWZpZXJcbiAqXG4gKiBAZXhhbXBsZVxuICogdXVpZCgpOyAvLyBiLTFmMmNkMjdmLTA3NTQtNDM0NC05ZDIwLTQzNmEyMDFiMmY4MFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1dWlkKCkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgcmV0dXJuICdiLScgKyAoWzFlN10rLTFlMystNGUzKy04ZTMrLTFlMTEpLnJlcGxhY2UoL1swMThdL2csYT0+KGFeTWF0aC5yYW5kb20oKSoxNj4+YS80KS50b1N0cmluZygxNikpO1xuICAgIC8qIGVzbGludC1lbmFibGUgKi9cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy11dWlkL2luZGV4LmpzIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3RcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwge1wiYW1kXCI6XCJyZWFjdFwiLFwiY29tbW9uanMyXCI6XCJyZWFjdFwiLFwicm9vdFwiOlwiUmVhY3RcIn1cbi8vIG1vZHVsZSBpZCA9IDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIHtcImFtZFwiOlwicmVhY3QtZG9tXCIsXCJjb21tb25qczJcIjpcInJlYWN0LWRvbVwiLFwicm9vdFwiOlwiUmVhY3RET01cIn1cbi8vIG1vZHVsZSBpZCA9IDNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiaW1wb3J0IFJlYWN0LCB7UHJvcFR5cGVzfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcblxuaW1wb3J0IG9taXQgZnJvbSAnLi4vYm91bmRsZXNzLXV0aWxzLW9taXQta2V5cy9pbmRleCc7XG5pbXBvcnQgdXVpZCBmcm9tICcuLi9ib3VuZGxlc3MtdXRpbHMtdXVpZC9pbmRleCc7XG5cbi8qKlxuIyBQb3J0YWxcbl9fQSBoaWdoZXItb3JkZXIgY29tcG9uZW50IGZvciB0aGUgcmVuZGVyaW5nIG9mIGNvbXBvbmVudHMgb3V0c2lkZSB0aGUgbm9ybWFsIFJlYWN0IHRyZWUuX19cblxuYFBvcnRhbGAgaXMgdXNlZCBpbiBvdGhlciBjb21wb25lbnRzIHN1Y2ggYXMgYFBvcG92ZXJgIHRvIHJlbmRlciBjb250ZW50IHRvIHBsYWNlcyBsaWtlIHRoZSBIVE1MIGA8Ym9keT5gIHRhZywgYXZvaWRpbmcgc3R5bGUgbGVha2FnZSBhbmQgcGFyZW50IGxheW91dCBjb250ZXh0cy4gT25seSBhY2NlcHRzIGEgc2luZ2xlIHRvcC1sZXZlbCBjaGlsZDsgbmFrZWQgdGV4dCwgZXRjIHdpbGwgYmUgd3JhcHBlZCBpbiBhIGA8ZGl2PmAuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvcnRhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgICAgLy8gc2luZ2xlIGNoaWxkIG9ubHkgLSBhcnJheXMgbm90IGFsbG93ZWRcblxuICAgICAgICAvKipcbiAgICAgICAgICogYW55IG5vcm1hbCBSZWFjdCBjaGlsZCwgYnV0IG11c3QgYmUgc2luZ3VsYXI7IG11bHRpcGxlIHNpYmxpbmcgY2hpbGRyZW4gbXVzdCBoYXZlIGEgY29tbW9uIHdyYXBwZXIsIHN1Y2ggYXMgYSBcImxheW91dFwiIGA8ZGl2PmBcblxuICAgICAgICAgKiDinIUgT0s6XG5cbiAgICAgICAgICogYGBganN4XG4gICAgICAgICAqIDxQb3J0YWw+XG4gICAgICAgICAqICAgZm9vXG4gICAgICAgICAqIDwvUG9ydGFsPlxuXG4gICAgICAgICAqIDxQb3J0YWw+XG4gICAgICAgICAqICAgPGRpdj5mb288L2Rpdj5cbiAgICAgICAgICogPC9Qb3J0YWw+XG5cbiAgICAgICAgICogPFBvcnRhbD5cbiAgICAgICAgICogICA8ZGl2PlxuICAgICAgICAgKiAgICAgICA8ZGl2PmZvbzwvZGl2PlxuICAgICAgICAgKiAgICAgICA8ZGl2PmJhcjwvZGl2PlxuICAgICAgICAgKiAgIDwvZGl2PlxuICAgICAgICAgKiA8L1BvcnRhbD5cbiAgICAgICAgICogYGBgXG5cbiAgICAgICAgICog4puU77iPIE5vdCBPSzpcblxuICAgICAgICAgKiBgYGBqc3hcbiAgICAgICAgICogPFBvcnRhbD5cbiAgICAgICAgICogICA8ZGl2PmZvbzwvZGl2PlxuICAgICAgICAgKiAgIDxkaXY+YmFyPC9kaXY+XG4gICAgICAgICAqIDwvUG9ydGFsPlxuICAgICAgICAgKiBgYGBcbiAgICAgICAgICovXG4gICAgICAgIGNoaWxkcmVuOiBSZWFjdC5Qcm9wVHlwZXMubm9kZSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogdGhlIGxvY2F0aW9uIHRvIGFwcGVuZCB0aGUgZ2VuZXJhdGVkIHBvcnRhbCBhbmQgY2hpbGQgZWxlbWVudHNcbiAgICAgICAgICovXG4gICAgICAgIGRlc3RpbmF0aW9uOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihIVE1MRWxlbWVudCksXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHRoZSBJRCB1c2VkIHRvIGxpbmsgdGhlIHBvcnRhbCBvcmlnaW4gdG8gdGhlIGRlc3RpbmF0aW9uOyBhZGRlZCB0byBnZW5lcmF0ZWQgYDxkaXY+YCBhcHBlbmRlZCB0byB0aGUgZGVzdGluYXRpb24gSFRNTCBub2RlXG4gICAgICAgICAqL1xuICAgICAgICBwb3J0YWxJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB9XG5cbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgZGVzdGluYXRpb246IGRvY3VtZW50LmJvZHksXG4gICAgICAgIHBvcnRhbElkOiBudWxsLFxuICAgIH1cblxuICAgIHN0YXRpYyBpbnRlcm5hbEtleXMgPSBPYmplY3Qua2V5cyhQb3J0YWwuZGVmYXVsdFByb3BzKVxuXG4gICAgc3RhdGljIFBPUlRBTF9EQVRBX0FUVFJJQlVURSA9ICdkYXRhLXBvcnRhbC1pZCdcblxuICAgIGlkID0gdXVpZCgpXG5cbiAgICAvLyB0aGUgPGRpdj4gdGhhdCB0aGUgY2hpbGRyZW4gYXJlIHJlbmRlcmVkIGludG9cbiAgICAkcG9ydGFsID0gbnVsbFxuXG4gICAgLy8gdGhlIHRvcC1sZXZlbCBjaGlsZCByZW5kZXJlZCBpbnRvIHRoZSAkcG9ydGFsXG4gICAgJHBhc3NlbmdlciA9IG51bGw7XG5cbiAgICBjb21wb25lbnRXaWxsTW91bnQoKSB7XG4gICAgICAgIHRoaXMuJHBvcnRhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLnByb3BzLmRlc3RpbmF0aW9uLmFwcGVuZENoaWxkKHRoaXMuJHBvcnRhbCk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJQb3J0YWxsZWRDb250ZW50KCk7XG4gICAgfVxuXG4gICAgcmVuZGVyUG9ydGFsbGVkQ29udGVudCgpIHtcbiAgICAgICAgY29uc3QgY2hpbGQgPSBSZWFjdC5pc1ZhbGlkRWxlbWVudCh0aGlzLnByb3BzLmNoaWxkcmVuKSA/IHRoaXMucHJvcHMuY2hpbGRyZW4gOiAoPGRpdj57dGhpcy5wcm9wcy5jaGlsZHJlbn08L2Rpdj4pO1xuXG4gICAgICAgIC8vIHVwZGF0ZSB0aGUgcG9ydGFsIElEIGxpbmsgaWYgbmVlZGVkXG4gICAgICAgIHRoaXMuJHBvcnRhbC5pZCA9IHRoaXMucHJvcHMucG9ydGFsSWQgfHwgdGhpcy5pZDtcblxuICAgICAgICBSZWFjdERPTS51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcih0aGlzLCBjaGlsZCwgdGhpcy4kcG9ydGFsKTtcbiAgICAgICAgdGhpcy4kcGFzc2VuZ2VyID0gdGhpcy4kcG9ydGFsLmNoaWxkcmVuWzBdO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHsgdGhpcy5yZW5kZXJQb3J0YWxsZWRDb250ZW50KCk7IH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlKHRoaXMuJHBvcnRhbCk7XG4gICAgICAgIHRoaXMucHJvcHMuZGVzdGluYXRpb24ucmVtb3ZlQ2hpbGQodGhpcy4kcG9ydGFsKTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIHsuLi5vbWl0KHRoaXMucHJvcHMsIFBvcnRhbC5pbnRlcm5hbEtleXMpfVxuICAgICAgICAgICAgICAgIHsuLi57W1BvcnRhbC5QT1JUQUxfREFUQV9BVFRSSUJVVEVdOiB0aGlzLnByb3BzLnBvcnRhbElkIHx8IHRoaXMuaWR9fSAvPlxuICAgICAgICApO1xuICAgIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3BhY2thZ2VzL2JvdW5kbGVzcy1wb3J0YWwvaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9 | ||
module.exports=function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=4)}([function(e,t,n){"use strict";function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object.keys(e).reduce(function(n,r){return t.indexOf(r)===-1&&(n[r]=e[r]),n},{})}t.a=r},function(e,t,n){"use strict";function r(){return"b-"+([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,function(e){return(e^16*Math.random()>>e/4).toString(16)})}t.a=r},function(e,t){e.exports=require("react")},function(e,t){e.exports=require("react-dom")},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=n(2),l=n.n(u),p=n(3),c=n.n(p),s=n(0),f=n(1),d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),y=function(e){function t(){var e,r,a,u;o(this,t);for(var l=arguments.length,p=Array(l),c=0;c<l;c++)p[c]=arguments[c];return r=a=i(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(p))),a.id=n.i(f.a)(),a.$portal=null,a.$passenger=null,u=r,i(a,u)}return a(t,e),h(t,[{key:"componentWillMount",value:function(){this.$portal=document.createElement("div"),this.props.destination.appendChild(this.$portal),this.renderPortalledContent()}},{key:"renderPortalledContent",value:function(){var e=l.a.isValidElement(this.props.children)?this.props.children:l.a.createElement("div",null,this.props.children);this.$portal.id=this.props.portalId||this.id,c.a.unstable_renderSubtreeIntoContainer(this,e,this.$portal),this.$passenger=this.$portal.children[0]}},{key:"componentDidUpdate",value:function(){this.renderPortalledContent()}},{key:"componentWillUnmount",value:function(){c.a.unmountComponentAtNode(this.$portal),this.props.destination.removeChild(this.$portal)}},{key:"render",value:function(){return l.a.createElement("span",d({},n.i(s.a)(this.props,t.internalKeys),r({},t.PORTAL_DATA_ATTRIBUTE,this.props.portalId||this.id)))}}]),t}(l.a.Component);y.propTypes={children:l.a.PropTypes.node,destination:u.PropTypes.instanceOf(HTMLElement),portalId:u.PropTypes.string},y.defaultProps={children:null,destination:document.body,portalId:null},y.internalKeys=Object.keys(y.defaultProps),y.PORTAL_DATA_ATTRIBUTE="data-portal-id",t.default=y}]); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIDU3NmJmZWZjYTJiNTgyMzk4ZjRjIiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vcGFja2FnZXMvYm91bmRsZXNzLXV0aWxzLXV1aWQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIHtcImNvbW1vbmpzMlwiOlwicmVhY3RcIn0iLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIHtcImNvbW1vbmpzMlwiOlwicmVhY3QtZG9tXCJ9Iiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy1wb3J0YWwvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJpbnN0YWxsZWRNb2R1bGVzIiwiaSIsImwiLCJjYWxsIiwibSIsImMiLCJ2YWx1ZSIsImQiLCJuYW1lIiwiZ2V0dGVyIiwibyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsImdldCIsIm4iLCJfX2VzTW9kdWxlIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwiX193ZWJwYWNrX2V4cG9ydHNfXyIsIm9taXRLZXlzRnJvbVNvdXJjZU9iamVjdCIsInNvdXJjZSIsIm9taXR0ZWRLZXlzIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwia2V5cyIsInJlZHVjZSIsImhhc2giLCJrZXkiLCJpbmRleE9mIiwidXVpZCIsInJlcGxhY2UiLCJhIiwiTWF0aCIsInJhbmRvbSIsInRvU3RyaW5nIiwicmVxdWlyZSIsIl9kZWZpbmVQcm9wZXJ0eSIsIm9iaiIsIndyaXRhYmxlIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJDb25zdHJ1Y3RvciIsIlR5cGVFcnJvciIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwic2VsZiIsIlJlZmVyZW5jZUVycm9yIiwiX2luaGVyaXRzIiwic3ViQ2xhc3MiLCJzdXBlckNsYXNzIiwiY3JlYXRlIiwiY29uc3RydWN0b3IiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9yZWFjdF9kb21fXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9yZWFjdF9kb21fX19kZWZhdWx0IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19ib3VuZGxlc3NfdXRpbHNfb21pdF9rZXlzX2luZGV4X18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2JvdW5kbGVzc191dGlsc191dWlkX2luZGV4X18iLCJfZXh0ZW5kcyIsImFzc2lnbiIsInRhcmdldCIsIl9jcmVhdGVDbGFzcyIsImRlZmluZVByb3BlcnRpZXMiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJQb3J0YWwiLCJfUmVhY3QkQ29tcG9uZW50IiwiX3JlZiIsIl90ZW1wIiwiX3RoaXMiLCJfcmV0IiwidGhpcyIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiZ2V0UHJvdG90eXBlT2YiLCJhcHBseSIsImNvbmNhdCIsImlkIiwiJHBvcnRhbCIsIiRwYXNzZW5nZXIiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJkZXN0aW5hdGlvbiIsImFwcGVuZENoaWxkIiwicmVuZGVyUG9ydGFsbGVkQ29udGVudCIsImNoaWxkIiwiaXNWYWxpZEVsZW1lbnQiLCJjaGlsZHJlbiIsInBvcnRhbElkIiwidW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIiLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwicmVtb3ZlQ2hpbGQiLCJpbnRlcm5hbEtleXMiLCJQT1JUQUxfREFUQV9BVFRSSUJVVEUiLCJDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJub2RlIiwiaW5zdGFuY2VPZiIsIkhUTUxFbGVtZW50Iiwic3RyaW5nIiwiZGVmYXVsdFByb3BzIiwiYm9keSJdLCJtYXBwaW5ncyI6IkFBQUFBLE9BQU9DLFFBQ0UsU0FBVUMsR0NHbkIsUUFBQUMsR0FBQUMsR0FHQSxHQUFBQyxFQUFBRCxHQUNBLE1BQUFDLEdBQUFELEdBQUFILE9BR0EsSUFBQUQsR0FBQUssRUFBQUQsSUFDQUUsRUFBQUYsRUFDQUcsR0FBQSxFQUNBTixXQVVBLE9BTkFDLEdBQUFFLEdBQUFJLEtBQUFSLEVBQUFDLFFBQUFELElBQUFDLFFBQUFFLEdBR0FILEVBQUFPLEdBQUEsRUFHQVAsRUFBQUMsUUF2QkEsR0FBQUksS0ErREEsT0FuQ0FGLEdBQUFNLEVBQUFQLEVBR0FDLEVBQUFPLEVBQUFMLEVBR0FGLEVBQUFHLEVBQUEsU0FBQUssR0FBMkMsTUFBQUEsSUFHM0NSLEVBQUFTLEVBQUEsU0FBQVgsRUFBQVksRUFBQUMsR0FDQVgsRUFBQVksRUFBQWQsRUFBQVksSUFDQUcsT0FBQUMsZUFBQWhCLEVBQUFZLEdBQ0FLLGNBQUEsRUFDQUMsWUFBQSxFQUNBQyxJQUFBTixLQU1BWCxFQUFBa0IsRUFBQSxTQUFBckIsR0FDQSxHQUFBYyxHQUFBZCxLQUFBc0IsV0FDQSxXQUEyQixNQUFBdEIsR0FBQSxTQUMzQixXQUFpQyxNQUFBQSxHQUVqQyxPQURBRyxHQUFBUyxFQUFBRSxFQUFBLElBQUFBLEdBQ0FBLEdBSUFYLEVBQUFZLEVBQUEsU0FBQVEsRUFBQUMsR0FBc0QsTUFBQVIsUUFBQVMsVUFBQUMsZUFBQWxCLEtBQUFlLEVBQUFDLElBR3REckIsRUFBQXdCLEVBQUEsR0FHQXhCLElBQUF5QixFQUFBLEtET00sU0FBVTVCLEVBQVE2QixFQUFxQjFCLEdBRTdDLFlF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LE1OaUI0NUZqRSxJQUFJLHFCQUFxQjVCLE1BQU0sV01kaDlGMkUsS0FBS2UsNEJOYzJnRzlELElBQUksdUJBQXVCNUIsTUFBTSxXTVhwa0d5RCxFQUFBekIsRUFBU2dFLHVCQUF1QnJCLEtBQUtTLFNBQ3JDVCxLQUFLVixNQUFNdUIsWUFBWVMsWUFBWXRCLEtBQUtTLFlOVXdzR3hELElBQUksU0FBUzVCLE1BQU0sV01ObndHLE1BQ0l1RCxHQUFBdkIsRUFBQXVELGNBQUEsT0FBQTNCLEtBQ1FwRSxFQUFBRyxFQUFBK0QsRUFBQSxHQUFLaUIsS0FBS1YsTUFBT0ksRUFBTzZCLGNBRGhDN0QsS0FFVWdDLEVBQU84QixzQkFBd0J4QixLQUFLVixNQUFNNkIsVUFBWW5CLEtBQUtRLFVOR3VnSGQsR01qR3BqSGQsRUFBQXZCLEVBQU1vRSxVQUFyQi9CLEdBQ1ZnQyxXQWtDSFIsU0FBVXRDLEVBQUF2QixFQUFNc0UsVUFBVUMsS0FLMUJmLFlBQWFsQyxFQUFBLFVBQVVrRCxXQUFXQyxhQUtsQ1gsU0FBVXhDLEVBQUEsVUFBVW9ELFFBN0NQckMsRUFnRFZzQyxjQUNIZCxTQUFVLEtBQ1ZMLFlBQWFGLFNBQVNzQixLQUN0QmQsU0FBVSxNQW5ER3pCLEVBc0RWNkIsYUFBZTdGLE9BQU9vQixLQUFLNEMsRUFBT3NDLGNBdER4QnRDLEVBd0RWOEIsc0JBQXdCLGlCTnlDa2pJakYsRUFBNkIsUU1qRzdsSW1EIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPVxuLyoqKioqKi8gKGZ1bmN0aW9uKG1vZHVsZXMpIHsgLy8gd2VicGFja0Jvb3RzdHJhcFxuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuLyoqKioqKi8gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuLyoqKioqKi8gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4vKioqKioqLyBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0aTogbW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRsOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbi8qKioqKiovIFx0XHRtb2R1bGUubCA9IHRydWU7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4vKioqKioqLyBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHR9XG4vKioqKioqL1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBpZGVudGl0eSBmdW5jdGlvbiBmb3IgY2FsbGluZyBoYXJtb255IGltcG9ydHMgd2l0aCB0aGUgY29ycmVjdCBjb250ZXh0XG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbi8qKioqKiovIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4vKioqKioqLyBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuLyoqKioqKi8gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuLyoqKioqKi8gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuLyoqKioqKi8gXHRcdFx0XHRnZXQ6IGdldHRlclxuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4vKioqKioqLyBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuLyoqKioqKi8gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4vKioqKioqLyBcdFx0cmV0dXJuIGdldHRlcjtcbi8qKioqKiovIFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vKioqKioqLyBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDQpO1xuLyoqKioqKi8gfSlcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyAoW1xuLyogMCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZXhwb3J0IChpbW11dGFibGUpICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gb21pdEtleXNGcm9tU291cmNlT2JqZWN0O1xuZnVuY3Rpb24gb21pdEtleXNGcm9tU291cmNlT2JqZWN0KHNvdXJjZSl7dmFyIG9taXR0ZWRLZXlzPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1sxXTpbXTtyZXR1cm4gT2JqZWN0LmtleXMoc291cmNlKS5yZWR1Y2UoZnVuY3Rpb24gcmVsb2NhdGVBY2NlcHRlZEtleXMoaGFzaCxrZXkpe2lmKG9taXR0ZWRLZXlzLmluZGV4T2Yoa2V5KT09PS0xKXtoYXNoW2tleV09c291cmNlW2tleV07fXJldHVybiBoYXNoO30se30pO31cblxuLyoqKi8gfSksXG4vKiAxICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBleHBvcnQgKGltbXV0YWJsZSkgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImFcIl0gPSB1dWlkO1xuZnVuY3Rpb24gdXVpZCgpe3JldHVybidiLScrKFsxZTddKy0xZTMrLTRlMystOGUzKy0xZTExKS5yZXBsYWNlKC9bMDE4XS9nLGZ1bmN0aW9uKGEpe3JldHVybihhXk1hdGgucmFuZG9tKCkqMTY+PmEvNCkudG9TdHJpbmcoMTYpO30pO31cblxuLyoqKi8gfSksXG4vKiAyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0XCIpO1xuXG4vKioqLyB9KSxcbi8qIDMgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpO1xuXG4vKioqLyB9KSxcbi8qIDQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoX193ZWJwYWNrX2V4cG9ydHNfXywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9yZWFjdF9kb21fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX3JlYWN0X2RvbV9fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX3JlYWN0X2RvbV9fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2JvdW5kbGVzc191dGlsc19vbWl0X2tleXNfaW5kZXhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19ib3VuZGxlc3NfdXRpbHNfdXVpZF9pbmRleF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbnZhciBfZXh0ZW5kcz1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0YXJnZXQpe2Zvcih2YXIgaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe3ZhciBzb3VyY2U9YXJndW1lbnRzW2ldO2Zvcih2YXIga2V5IGluIHNvdXJjZSl7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSxrZXkpKXt0YXJnZXRba2V5XT1zb3VyY2Vba2V5XTt9fX1yZXR1cm4gdGFyZ2V0O307dmFyIF9jcmVhdGVDbGFzcz1mdW5jdGlvbigpe2Z1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LHByb3BzKXtmb3IodmFyIGk9MDtpPHByb3BzLmxlbmd0aDtpKyspe3ZhciBkZXNjcmlwdG9yPXByb3BzW2ldO2Rlc2NyaXB0b3IuZW51bWVyYWJsZT1kZXNjcmlwdG9yLmVudW1lcmFibGV8fGZhbHNlO2Rlc2NyaXB0b3IuY29uZmlndXJhYmxlPXRydWU7aWYoXCJ2YWx1ZVwiaW4gZGVzY3JpcHRvcilkZXNjcmlwdG9yLndyaXRhYmxlPXRydWU7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCxkZXNjcmlwdG9yLmtleSxkZXNjcmlwdG9yKTt9fXJldHVybiBmdW5jdGlvbihDb25zdHJ1Y3Rvcixwcm90b1Byb3BzLHN0YXRpY1Byb3BzKXtpZihwcm90b1Byb3BzKWRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLHByb3RvUHJvcHMpO2lmKHN0YXRpY1Byb3BzKWRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3Isc3RhdGljUHJvcHMpO3JldHVybiBDb25zdHJ1Y3Rvcjt9O30oKTtmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLGtleSx2YWx1ZSl7aWYoa2V5IGluIG9iail7T2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaixrZXkse3ZhbHVlOnZhbHVlLGVudW1lcmFibGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZSx3cml0YWJsZTp0cnVlfSk7fWVsc2V7b2JqW2tleV09dmFsdWU7fXJldHVybiBvYmo7fWZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSxDb25zdHJ1Y3Rvcil7aWYoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTt9fWZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsY2FsbCl7aWYoIXNlbGYpe3Rocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTt9cmV0dXJuIGNhbGwmJih0eXBlb2YgY2FsbD09PVwib2JqZWN0XCJ8fHR5cGVvZiBjYWxsPT09XCJmdW5jdGlvblwiKT9jYWxsOnNlbGY7fWZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcyxzdXBlckNsYXNzKXtpZih0eXBlb2Ygc3VwZXJDbGFzcyE9PVwiZnVuY3Rpb25cIiYmc3VwZXJDbGFzcyE9PW51bGwpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiBzdXBlckNsYXNzKTt9c3ViQ2xhc3MucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyYmc3VwZXJDbGFzcy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpzdWJDbGFzcyxlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOnRydWUsY29uZmlndXJhYmxlOnRydWV9fSk7aWYoc3VwZXJDbGFzcylPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLHN1cGVyQ2xhc3MpOnN1YkNsYXNzLl9fcHJvdG9fXz1zdXBlckNsYXNzO312YXIgUG9ydGFsPWZ1bmN0aW9uKF9SZWFjdCRDb21wb25lbnQpe19pbmhlcml0cyhQb3J0YWwsX1JlYWN0JENvbXBvbmVudCk7ZnVuY3Rpb24gUG9ydGFsKCl7dmFyIF9yZWY7dmFyIF90ZW1wLF90aGlzLF9yZXQ7X2NsYXNzQ2FsbENoZWNrKHRoaXMsUG9ydGFsKTtmb3IodmFyIF9sZW49YXJndW1lbnRzLmxlbmd0aCxhcmdzPUFycmF5KF9sZW4pLF9rZXk9MDtfa2V5PF9sZW47X2tleSsrKXthcmdzW19rZXldPWFyZ3VtZW50c1tfa2V5XTt9cmV0dXJuIF9yZXQ9KF90ZW1wPShfdGhpcz1fcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLChfcmVmPVBvcnRhbC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihQb3J0YWwpKS5jYWxsLmFwcGx5KF9yZWYsW3RoaXNdLmNvbmNhdChhcmdzKSkpLF90aGlzKSxfdGhpcy5pZD1fX3dlYnBhY2tfcmVxdWlyZV9fLmkoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19ib3VuZGxlc3NfdXRpbHNfdXVpZF9pbmRleF9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKSgpLF90aGlzLiRwb3J0YWw9bnVsbCxfdGhpcy4kcGFzc2VuZ2VyPW51bGwsX3RlbXApLF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKF90aGlzLF9yZXQpO31fY3JlYXRlQ2xhc3MoUG9ydGFsLFt7a2V5Oidjb21wb25lbnRXaWxsTW91bnQnLHZhbHVlOmZ1bmN0aW9uIGNvbXBvbmVudFdpbGxNb3VudCgpe3RoaXMuJHBvcnRhbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTt0aGlzLnByb3BzLmRlc3RpbmF0aW9uLmFwcGVuZENoaWxkKHRoaXMuJHBvcnRhbCk7dGhpcy5yZW5kZXJQb3J0YWxsZWRDb250ZW50KCk7fX0se2tleToncmVuZGVyUG9ydGFsbGVkQ29udGVudCcsdmFsdWU6ZnVuY3Rpb24gcmVuZGVyUG9ydGFsbGVkQ29udGVudCgpe3ZhciBjaGlsZD1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX19kZWZhdWx0LmEuaXNWYWxpZEVsZW1lbnQodGhpcy5wcm9wcy5jaGlsZHJlbik/dGhpcy5wcm9wcy5jaGlsZHJlbjpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX19kZWZhdWx0LmEuY3JlYXRlRWxlbWVudCgnZGl2JyxudWxsLHRoaXMucHJvcHMuY2hpbGRyZW4pO3RoaXMuJHBvcnRhbC5pZD10aGlzLnByb3BzLnBvcnRhbElkfHx0aGlzLmlkO19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9yZWFjdF9kb21fX19kZWZhdWx0LmEudW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIodGhpcyxjaGlsZCx0aGlzLiRwb3J0YWwpO3RoaXMuJHBhc3Nlbmdlcj10aGlzLiRwb3J0YWwuY2hpbGRyZW5bMF07fX0se2tleTonY29tcG9uZW50RGlkVXBkYXRlJyx2YWx1ZTpmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUoKXt0aGlzLnJlbmRlclBvcnRhbGxlZENvbnRlbnQoKTt9fSx7a2V5Oidjb21wb25lbnRXaWxsVW5tb3VudCcsdmFsdWU6ZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKXtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfcmVhY3RfZG9tX19fZGVmYXVsdC5hLnVubW91bnRDb21wb25lbnRBdE5vZGUodGhpcy4kcG9ydGFsKTt0aGlzLnByb3BzLmRlc3RpbmF0aW9uLnJlbW92ZUNoaWxkKHRoaXMuJHBvcnRhbCk7fX0se2tleToncmVuZGVyJyx2YWx1ZTpmdW5jdGlvbiByZW5kZXIoKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nLF9leHRlbmRzKHt9LF9fd2VicGFja19yZXF1aXJlX18uaShfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2JvdW5kbGVzc191dGlsc19vbWl0X2tleXNfaW5kZXhfX1tcImFcIiAvKiBkZWZhdWx0ICovXSkodGhpcy5wcm9wcyxQb3J0YWwuaW50ZXJuYWxLZXlzKSxfZGVmaW5lUHJvcGVydHkoe30sUG9ydGFsLlBPUlRBTF9EQVRBX0FUVFJJQlVURSx0aGlzLnByb3BzLnBvcnRhbElkfHx0aGlzLmlkKSkpO319XSk7cmV0dXJuIFBvcnRhbDt9KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5Db21wb25lbnQpO1BvcnRhbC5wcm9wVHlwZXM9e2NoaWxkcmVuOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5Qcm9wVHlwZXMubm9kZSxkZXN0aW5hdGlvbjpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5pbnN0YW5jZU9mKEhUTUxFbGVtZW50KSxwb3J0YWxJZDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5zdHJpbmd9O1BvcnRhbC5kZWZhdWx0UHJvcHM9e2NoaWxkcmVuOm51bGwsZGVzdGluYXRpb246ZG9jdW1lbnQuYm9keSxwb3J0YWxJZDpudWxsfTtQb3J0YWwuaW50ZXJuYWxLZXlzPU9iamVjdC5rZXlzKFBvcnRhbC5kZWZhdWx0UHJvcHMpO1BvcnRhbC5QT1JUQUxfREFUQV9BVFRSSUJVVEU9J2RhdGEtcG9ydGFsLWlkJzsvKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIF9fd2VicGFja19leHBvcnRzX19bXCJkZWZhdWx0XCJdID0gUG9ydGFsO1xuXG4vKioqLyB9KVxuLyoqKioqKi8gXSk7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIGluZGV4LmpzIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGlkZW50aXR5IGZ1bmN0aW9uIGZvciBjYWxsaW5nIGhhcm1vbnkgaW1wb3J0cyB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHRcbiBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGdldDogZ2V0dGVyXG4gXHRcdFx0fSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNCk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gd2VicGFjay9ib290c3RyYXAgNTc2YmZlZmNhMmI1ODIzOThmNGMiLCIvKipcbiAqIFJldHVybnMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBzdXBwbGllZCBvYmplY3Qgd2l0aG91dCB0aGUgZ2l2ZW4ga2V5cy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gb21pdEtleXNGcm9tU291cmNlT2JqZWN0KHNvdXJjZSwgb21pdHRlZEtleXMgPSBbXSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhzb3VyY2UpLnJlZHVjZShmdW5jdGlvbiByZWxvY2F0ZUFjY2VwdGVkS2V5cyhoYXNoLCBrZXkpIHtcbiAgICAgICAgaWYgKG9taXR0ZWRLZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEpIHtcbiAgICAgICAgICAgIGhhc2hba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhhc2g7XG5cbiAgICB9LCB7fSk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtb21pdC1rZXlzL2luZGV4LmpzIiwiLyoqXG4gKiBHZW5lcmF0ZXMgYSB1bmlxdWUgSUQuIEFkZHMgYSBwcmVmaXggc28gaXQgaXMgc3VpdGFibGUgZm9yIHVzZSBhcyBhbiBIVE1MIElELlxuICogQmFzZWQgb24ge0BsaW5rIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2plZC85ODI4ODMgdGhpcyBpbXBsZW1lbnRhdGlvbn0uXG4gKlxuICogQHJldHVybiB7c3RyaW5nfSBhIHVuaXF1ZSBpZGVudGlmaWVyXG4gKlxuICogQGV4YW1wbGVcbiAqIHV1aWQoKTsgLy8gYi0xZjJjZDI3Zi0wNzU0LTQzNDQtOWQyMC00MzZhMjAxYjJmODBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXVpZCgpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIHJldHVybiAnYi0nICsgKFsxZTddKy0xZTMrLTRlMystOGUzKy0xZTExKS5yZXBsYWNlKC9bMDE4XS9nLGE9PihhXk1hdGgucmFuZG9tKCkqMTY+PmEvNCkudG9TdHJpbmcoMTYpKTtcbiAgICAvKiBlc2xpbnQtZW5hYmxlICovXG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtdXVpZC9pbmRleC5qcyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0XCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIHtcImNvbW1vbmpzMlwiOlwicmVhY3RcIn1cbi8vIG1vZHVsZSBpZCA9IDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIHtcImNvbW1vbmpzMlwiOlwicmVhY3QtZG9tXCJ9XG4vLyBtb2R1bGUgaWQgPSAzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImltcG9ydCBSZWFjdCwge1Byb3BUeXBlc30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5cbmltcG9ydCBvbWl0IGZyb20gJy4uL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXgnO1xuaW1wb3J0IHV1aWQgZnJvbSAnLi4vYm91bmRsZXNzLXV0aWxzLXV1aWQvaW5kZXgnO1xuXG4vKipcbiMgUG9ydGFsXG5fX0EgaGlnaGVyLW9yZGVyIGNvbXBvbmVudCBmb3IgdGhlIHJlbmRlcmluZyBvZiBjb21wb25lbnRzIG91dHNpZGUgdGhlIG5vcm1hbCBSZWFjdCB0cmVlLl9fXG5cbmBQb3J0YWxgIGlzIHVzZWQgaW4gb3RoZXIgY29tcG9uZW50cyBzdWNoIGFzIGBQb3BvdmVyYCB0byByZW5kZXIgY29udGVudCB0byBwbGFjZXMgbGlrZSB0aGUgSFRNTCBgPGJvZHk+YCB0YWcsIGF2b2lkaW5nIHN0eWxlIGxlYWthZ2UgYW5kIHBhcmVudCBsYXlvdXQgY29udGV4dHMuIE9ubHkgYWNjZXB0cyBhIHNpbmdsZSB0b3AtbGV2ZWwgY2hpbGQ7IG5ha2VkIHRleHQsIGV0YyB3aWxsIGJlIHdyYXBwZWQgaW4gYSBgPGRpdj5gLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQb3J0YWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8vIHNpbmdsZSBjaGlsZCBvbmx5IC0gYXJyYXlzIG5vdCBhbGxvd2VkXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGFueSBub3JtYWwgUmVhY3QgY2hpbGQsIGJ1dCBtdXN0IGJlIHNpbmd1bGFyOyBtdWx0aXBsZSBzaWJsaW5nIGNoaWxkcmVuIG11c3QgaGF2ZSBhIGNvbW1vbiB3cmFwcGVyLCBzdWNoIGFzIGEgXCJsYXlvdXRcIiBgPGRpdj5gXG5cbiAgICAgICAgICog4pyFIE9LOlxuXG4gICAgICAgICAqIGBgYGpzeFxuICAgICAgICAgKiA8UG9ydGFsPlxuICAgICAgICAgKiAgIGZvb1xuICAgICAgICAgKiA8L1BvcnRhbD5cblxuICAgICAgICAgKiA8UG9ydGFsPlxuICAgICAgICAgKiAgIDxkaXY+Zm9vPC9kaXY+XG4gICAgICAgICAqIDwvUG9ydGFsPlxuXG4gICAgICAgICAqIDxQb3J0YWw+XG4gICAgICAgICAqICAgPGRpdj5cbiAgICAgICAgICogICAgICAgPGRpdj5mb288L2Rpdj5cbiAgICAgICAgICogICAgICAgPGRpdj5iYXI8L2Rpdj5cbiAgICAgICAgICogICA8L2Rpdj5cbiAgICAgICAgICogPC9Qb3J0YWw+XG4gICAgICAgICAqIGBgYFxuXG4gICAgICAgICAqIOKblO+4jyBOb3QgT0s6XG5cbiAgICAgICAgICogYGBganN4XG4gICAgICAgICAqIDxQb3J0YWw+XG4gICAgICAgICAqICAgPGRpdj5mb288L2Rpdj5cbiAgICAgICAgICogICA8ZGl2PmJhcjwvZGl2PlxuICAgICAgICAgKiA8L1BvcnRhbD5cbiAgICAgICAgICogYGBgXG4gICAgICAgICAqL1xuICAgICAgICBjaGlsZHJlbjogUmVhY3QuUHJvcFR5cGVzLm5vZGUsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHRoZSBsb2NhdGlvbiB0byBhcHBlbmQgdGhlIGdlbmVyYXRlZCBwb3J0YWwgYW5kIGNoaWxkIGVsZW1lbnRzXG4gICAgICAgICAqL1xuICAgICAgICBkZXN0aW5hdGlvbjogUHJvcFR5cGVzLmluc3RhbmNlT2YoSFRNTEVsZW1lbnQpLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiB0aGUgSUQgdXNlZCB0byBsaW5rIHRoZSBwb3J0YWwgb3JpZ2luIHRvIHRoZSBkZXN0aW5hdGlvbjsgYWRkZWQgdG8gZ2VuZXJhdGVkIGA8ZGl2PmAgYXBwZW5kZWQgdG8gdGhlIGRlc3RpbmF0aW9uIEhUTUwgbm9kZVxuICAgICAgICAgKi9cbiAgICAgICAgcG9ydGFsSWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgfVxuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgIGRlc3RpbmF0aW9uOiBkb2N1bWVudC5ib2R5LFxuICAgICAgICBwb3J0YWxJZDogbnVsbCxcbiAgICB9XG5cbiAgICBzdGF0aWMgaW50ZXJuYWxLZXlzID0gT2JqZWN0LmtleXMoUG9ydGFsLmRlZmF1bHRQcm9wcylcblxuICAgIHN0YXRpYyBQT1JUQUxfREFUQV9BVFRSSUJVVEUgPSAnZGF0YS1wb3J0YWwtaWQnXG5cbiAgICBpZCA9IHV1aWQoKVxuXG4gICAgLy8gdGhlIDxkaXY+IHRoYXQgdGhlIGNoaWxkcmVuIGFyZSByZW5kZXJlZCBpbnRvXG4gICAgJHBvcnRhbCA9IG51bGxcblxuICAgIC8vIHRoZSB0b3AtbGV2ZWwgY2hpbGQgcmVuZGVyZWQgaW50byB0aGUgJHBvcnRhbFxuICAgICRwYXNzZW5nZXIgPSBudWxsO1xuXG4gICAgY29tcG9uZW50V2lsbE1vdW50KCkge1xuICAgICAgICB0aGlzLiRwb3J0YWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5wcm9wcy5kZXN0aW5hdGlvbi5hcHBlbmRDaGlsZCh0aGlzLiRwb3J0YWwpO1xuXG4gICAgICAgIHRoaXMucmVuZGVyUG9ydGFsbGVkQ29udGVudCgpO1xuICAgIH1cblxuICAgIHJlbmRlclBvcnRhbGxlZENvbnRlbnQoKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkID0gUmVhY3QuaXNWYWxpZEVsZW1lbnQodGhpcy5wcm9wcy5jaGlsZHJlbikgPyB0aGlzLnByb3BzLmNoaWxkcmVuIDogKDxkaXY+e3RoaXMucHJvcHMuY2hpbGRyZW59PC9kaXY+KTtcblxuICAgICAgICAvLyB1cGRhdGUgdGhlIHBvcnRhbCBJRCBsaW5rIGlmIG5lZWRlZFxuICAgICAgICB0aGlzLiRwb3J0YWwuaWQgPSB0aGlzLnByb3BzLnBvcnRhbElkIHx8IHRoaXMuaWQ7XG5cbiAgICAgICAgUmVhY3RET00udW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIodGhpcywgY2hpbGQsIHRoaXMuJHBvcnRhbCk7XG4gICAgICAgIHRoaXMuJHBhc3NlbmdlciA9IHRoaXMuJHBvcnRhbC5jaGlsZHJlblswXTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7IHRoaXMucmVuZGVyUG9ydGFsbGVkQ29udGVudCgpOyB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgUmVhY3RET00udW5tb3VudENvbXBvbmVudEF0Tm9kZSh0aGlzLiRwb3J0YWwpO1xuICAgICAgICB0aGlzLnByb3BzLmRlc3RpbmF0aW9uLnJlbW92ZUNoaWxkKHRoaXMuJHBvcnRhbCk7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICB7Li4ub21pdCh0aGlzLnByb3BzLCBQb3J0YWwuaW50ZXJuYWxLZXlzKX1cbiAgICAgICAgICAgICAgICB7Li4ue1tQb3J0YWwuUE9SVEFMX0RBVEFfQVRUUklCVVRFXTogdGhpcy5wcm9wcy5wb3J0YWxJZCB8fCB0aGlzLmlkfX0gLz5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtcG9ydGFsL2luZGV4LmpzIl0sInNvdXJjZVJvb3QiOiIifQ== |
{ | ||
"name": "boundless-portal", | ||
"version": "1.0.0-beta.4", | ||
"version": "1.0.0-beta.5", | ||
"description": "A higher-order component for the rendering of components outside the normal React tree.", | ||
"main": "build/index.js", | ||
"browser": "build/index.js", | ||
"repository": { | ||
@@ -17,3 +17,3 @@ "type": "git", | ||
"contributors": [ | ||
"Evan Scott <evan.scott@enigma.io>", | ||
"Evan Scott <glitterbyte@gmail.com> (http://yaycmyk.com)", | ||
"Abe Rubenstein <abe.rubenstein@enigma.io>", | ||
@@ -27,3 +27,3 @@ "Jenn Creighton <jenn.creighton@enigma.io>" | ||
"homepage": "https://github.com/enigma-io/boundless#readme", | ||
"dependencies": { | ||
"devDependencies": { | ||
"boundless-utils-omit-keys": "^1.0.0-beta.3", | ||
@@ -30,0 +30,0 @@ "boundless-utils-uuid": "^1.0.0" |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
41419
2
152
2
1
- Removedboundless-utils-uuid@^1.0.0
- Removedboundless-utils-omit-keys@1.1.0(transitive)
- Removedboundless-utils-uuid@1.1.0(transitive)