-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathbuild.js
2 lines (2 loc) · 24.9 KB
/
build.js
1
2
module.exports=function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}([function(e,t){e.exports=require("react")},function(e,t,r){"use strict";var o=r(2);t.createRoot=o.createRoot,t.hydrateRoot=o.hydrateRoot},function(e,t){e.exports=require("react-dom")},function(e,t){function r(){var e,t=this.parentNode,r=arguments.length;if(t)for(r||t.removeChild(this);r--;)"object"!=typeof(e=arguments[r])?e=this.ownerDocument.createTextNode(e):e.parentNode&&e.parentNode.removeChild(e),r?t.insertBefore(this.previousSibling,e):t.replaceChild(e,this)}Element.prototype.replaceWith||(Element.prototype.replaceWith=r),CharacterData.prototype.replaceWith||(CharacterData.prototype.replaceWith=r),DocumentType.prototype.replaceWith||(DocumentType.prototype.replaceWith=r)},function(e,t,r){"use strict";r.r(t);var o=r(1),n=r(0),s=r.n(n),i=(r(3),s.a.createRef||function(){var e=function(t){e.current=t};return e(null),e});class c extends s.a.Component{constructor(){super(...arguments),this.ref=i()}componentDidMount(){const e=this.props.children;this.ref.current.replaceWith(...e)}render(){return s.a.createElement("div",{ref:this.ref})}}const a=(e,t,r,n)=>{class c extends s.a.PureComponent{constructor(){super(...arguments),this.state=Object.assign({},t),this.setProps=e=>this.setState(()=>e)}render(){return s.a.createElement(e,Object.assign({},this.props,this.state))}}const a=i();Object(o.createRoot)(r).render(s.a.createElement(()=>(s.a.useEffect(()=>{n(a)},[]),s.a.createElement(c,{ref:a})),null))};r.d(t,"registerAsWebComponent",(function(){return p}));const u=(e,t)=>class extends HTMLElement{constructor(){switch(super(),this.targetNode=null,this.propBridgeRef=null,this.props={},this.observer=null,this.setProps=e=>{var t,r;this.props=Object.assign(Object.assign({},this.props),e),t=this.propBridgeRef,r=this.props,t&&t.current&&t.current.setProps(r)},this._onReactMount=e=>{this.propBridgeRef=e,this.setProps(this.props)},this._onMutation=e=>{const t=e.reduce((e,t)=>{if("attributes"===t.type){const r=t.attributeName;e[r]=this.getAttribute(r)}return e},{});this.setProps(t)},this.props=(e=>{const t=e.getAttributeNames().reduce((t,r)=>(t[r]=e.getAttribute(r),t),{}),r=Array.from(e.childNodes).map(e=>e.cloneNode(!0));return t.children=s.a.createElement(c,null,r),t})(this),this.observer=new MutationObserver(this._onMutation),t){case"open":this.targetNode=this.attachShadow({mode:"open"});break;case"element":this.targetNode=this;break;default:this.targetNode=this.attachShadow({mode:"closed"})}a(e,this.props,this.targetNode,this._onReactMount)}connectedCallback(){this.observer.observe(this,{attributes:!0})}disconnectedCallback(){const{unmount:e}=Object(o.createRoot)(this.targetNode);e(),this.observer.disconnect()}},p=(e,t,r)=>{const o=u(e,r);customElements.define(t,o)}}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIHtcInJvb3RcIjpcIlJlYWN0XCIsXCJjb21tb25qczJcIjpcInJlYWN0XCIsXCJjb21tb25qc1wiOlwicmVhY3RcIixcImFtZFwiOlwicmVhY3RcIixcInVtZFwiOlwicmVhY3RcIn0iLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9jbGllbnQuanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIHtcInJvb3RcIjpcIlJlYWN0RE9NXCIsXCJjb21tb25qczJcIjpcInJlYWN0LWRvbVwiLFwiY29tbW9uanNcIjpcInJlYWN0LWRvbVwiLFwiYW1kXCI6XCJyZWFjdC1kb21cIixcInVtZFwiOlwicmVhY3QtZG9tXCJ9Iiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jaGlsZC1yZXBsYWNlLXdpdGgtcG9seWZpbGwvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWNyZWF0ZS1yZWYvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3JlYWN0LWRvbS1jaGlsZC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL3Byb3AtYnJpZGdlLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOlsiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJyZXF1aXJlIiwiY3JlYXRlUm9vdCIsImh5ZHJhdGVSb290IiwiUmVwbGFjZVdpdGhQb2x5ZmlsbCIsImN1cnJlbnROb2RlIiwicGFyZW50IiwidGhpcyIsInBhcmVudE5vZGUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJyZW1vdmVDaGlsZCIsIm93bmVyRG9jdW1lbnQiLCJjcmVhdGVUZXh0Tm9kZSIsImluc2VydEJlZm9yZSIsInByZXZpb3VzU2libGluZyIsInJlcGxhY2VDaGlsZCIsIkVsZW1lbnQiLCJyZXBsYWNlV2l0aCIsIkNoYXJhY3RlckRhdGEiLCJEb2N1bWVudFR5cGUiLCJjcmVhdGVSZWYiLCJyZWYiLCJfIiwiY3VycmVudCIsIkNvbXBvbmVudCIsImNoaWxkTm9kZXMiLCJwcm9wcyIsImNoaWxkcmVuIiwicmVuZGVyUmVhY3QyTm9kZSIsIlJDb21wb25lbnQiLCJpbml0aWFsUHJvcHMiLCJ0YXJnZXREb21Ob2RlIiwib25SZW5kZXIiLCJQcm9wQnJpZGdlIiwiUHVyZUNvbXBvbmVudCIsInN0YXRlIiwic2V0UHJvcHMiLCJzZXRTdGF0ZSIsInByb3BCcmlkZ2VSZWYiLCJyZW5kZXIiLCJ1c2VFZmZlY3QiLCJnZXRDdXN0b21FbGVtZW50RnJvbVJlYWN0Q29tcG9uZW50IiwiSFRNTEVsZW1lbnQiLCJzdXBlciIsInRhcmdldE5vZGUiLCJvYnNlcnZlciIsIm5ld1Byb3BzIiwiX29uUmVhY3RNb3VudCIsIl9vbk11dGF0aW9uIiwibXV0YXRpb25zTGlzdCIsInJlZHVjZSIsIm11dGF0aW9uIiwidHlwZSIsInByb3BLZXkiLCJhdHRyaWJ1dGVOYW1lIiwiZ2V0QXR0cmlidXRlIiwibm9kZSIsIm1hcHBlZFByb3BzIiwiZ2V0QXR0cmlidXRlTmFtZXMiLCJBcnJheSIsImZyb20iLCJtYXAiLCJlIiwiY2xvbmVOb2RlIiwiZ2V0UHJvcHNGcm9tTm9kZSIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJhdHRhY2hTaGFkb3ciLCJvYnNlcnZlIiwiYXR0cmlidXRlcyIsInVubW91bnQiLCJkaXNjb25uZWN0IiwicmVnaXN0ZXJBc1dlYkNvbXBvbmVudCIsImNvbXBvbmVudCIsImN1c3RvbUVsZW1lbnROYW1lIiwiUmVhY3RDdXN0b21FbGVtZW50IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiIyQkFDRSxJQUFJQSxFQUFtQixHQUd2QixTQUFTQyxFQUFvQkMsR0FHNUIsR0FBR0YsRUFBaUJFLEdBQ25CLE9BQU9GLEVBQWlCRSxHQUFVQyxRQUduQyxJQUFJQyxFQUFTSixFQUFpQkUsR0FBWSxDQUN6Q0csRUFBR0gsRUFDSEksR0FBRyxFQUNISCxRQUFTLElBVVYsT0FOQUksRUFBUUwsR0FBVU0sS0FBS0osRUFBT0QsUUFBU0MsRUFBUUEsRUFBT0QsUUFBU0YsR0FHL0RHLEVBQU9FLEdBQUksRUFHSkYsRUFBT0QsUUEwRGYsT0FyREFGLEVBQW9CUSxFQUFJRixFQUd4Qk4sRUFBb0JTLEVBQUlWLEVBR3hCQyxFQUFvQlUsRUFBSSxTQUFTUixFQUFTUyxFQUFNQyxHQUMzQ1osRUFBb0JhLEVBQUVYLEVBQVNTLElBQ2xDRyxPQUFPQyxlQUFlYixFQUFTUyxFQUFNLENBQUVLLFlBQVksRUFBTUMsSUFBS0wsS0FLaEVaLEVBQW9Ca0IsRUFBSSxTQUFTaEIsR0FDWCxvQkFBWGlCLFFBQTBCQSxPQUFPQyxhQUMxQ04sT0FBT0MsZUFBZWIsRUFBU2lCLE9BQU9DLFlBQWEsQ0FBRUMsTUFBTyxXQUU3RFAsT0FBT0MsZUFBZWIsRUFBUyxhQUFjLENBQUVtQixPQUFPLEtBUXZEckIsRUFBb0JzQixFQUFJLFNBQVNELEVBQU9FLEdBRXZDLEdBRFUsRUFBUEEsSUFBVUYsRUFBUXJCLEVBQW9CcUIsSUFDL0IsRUFBUEUsRUFBVSxPQUFPRixFQUNwQixHQUFXLEVBQVBFLEdBQThCLGlCQUFWRixHQUFzQkEsR0FBU0EsRUFBTUcsV0FBWSxPQUFPSCxFQUNoRixJQUFJSSxFQUFLWCxPQUFPWSxPQUFPLE1BR3ZCLEdBRkExQixFQUFvQmtCLEVBQUVPLEdBQ3RC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LFlBQVksSUFFNUMsdUJBQ0UsTUFBTSxRQUFFQyxHQUFZLHFCQUFXL0QsS0FBS3NDLFlBQ3BDeUIsSUFDQS9ELEtBQUt1QyxTQUFTeUIsZUFVUEMsRUFBeUIsQ0FDcENDLEVBQ0FDLEVBQ0F0RixLQUVBLE1BQU11RixFQUFxQmpDLEVBQ3pCK0IsRUFDQXJGLEdBRUZ3RixlQUFlQyxPQUFPSCxFQUFtQkMiLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNCk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCIndXNlIHN0cmljdCc7XG5cbnZhciBtID0gcmVxdWlyZSgncmVhY3QtZG9tJyk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBleHBvcnRzLmNyZWF0ZVJvb3QgPSBtLmNyZWF0ZVJvb3Q7XG4gIGV4cG9ydHMuaHlkcmF0ZVJvb3QgPSBtLmh5ZHJhdGVSb290O1xufSBlbHNlIHtcbiAgdmFyIGkgPSBtLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO1xuICBleHBvcnRzLmNyZWF0ZVJvb3QgPSBmdW5jdGlvbihjLCBvKSB7XG4gICAgaS51c2luZ0NsaWVudEVudHJ5UG9pbnQgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbS5jcmVhdGVSb290KGMsIG8pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IGZhbHNlO1xuICAgIH1cbiAgfTtcbiAgZXhwb3J0cy5oeWRyYXRlUm9vdCA9IGZ1bmN0aW9uKGMsIGgsIG8pIHtcbiAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBtLmh5ZHJhdGVSb290KGMsIGgsIG8pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IGZhbHNlO1xuICAgIH1cbiAgfTtcbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0LWRvbVwiKTsiLCIvLyBGcm9tIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9DaGlsZE5vZGUvcmVwbGFjZVdpdGhcbmZ1bmN0aW9uIFJlcGxhY2VXaXRoUG9seWZpbGwoKSB7XG4gIFwidXNlLXN0cmljdFwiOyAvLyBGb3Igc2FmYXJpLCBhbmQgSUUgPiAxMFxuICB2YXIgcGFyZW50ID0gdGhpcy5wYXJlbnROb2RlLFxuICAgIGkgPSBhcmd1bWVudHMubGVuZ3RoLFxuICAgIGN1cnJlbnROb2RlO1xuICBpZiAoIXBhcmVudCkgcmV0dXJuO1xuICBpZiAoIWkpXG4gICAgLy8gaWYgdGhlcmUgYXJlIG5vIGFyZ3VtZW50c1xuICAgIHBhcmVudC5yZW1vdmVDaGlsZCh0aGlzKTtcbiAgd2hpbGUgKGktLSkge1xuICAgIC8vIGktLSBkZWNyZW1lbnRzIGkgYW5kIHJldHVybnMgdGhlIHZhbHVlIG9mIGkgYmVmb3JlIHRoZSBkZWNyZW1lbnRcbiAgICBjdXJyZW50Tm9kZSA9IGFyZ3VtZW50c1tpXTtcbiAgICBpZiAodHlwZW9mIGN1cnJlbnROb2RlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICBjdXJyZW50Tm9kZSA9IHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjdXJyZW50Tm9kZSk7XG4gICAgfSBlbHNlIGlmIChjdXJyZW50Tm9kZS5wYXJlbnROb2RlKSB7XG4gICAgICBjdXJyZW50Tm9kZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGN1cnJlbnROb2RlKTtcbiAgICB9XG4gICAgLy8gdGhlIHZhbHVlIG9mIFwiaVwiIGJlbG93IGlzIGFmdGVyIHRoZSBkZWNyZW1lbnRcbiAgICBpZiAoIWkpXG4gICAgICAvLyBpZiBjdXJyZW50Tm9kZSBpcyB0aGUgZmlyc3QgYXJndW1lbnQgKGN1cnJlbnROb2RlID09PSBhcmd1bWVudHNbMF0pXG4gICAgICBwYXJlbnQucmVwbGFjZUNoaWxkKGN1cnJlbnROb2RlLCB0aGlzKTtcbiAgICAvLyBpZiBjdXJyZW50Tm9kZSBpc24ndCB0aGUgZmlyc3RcbiAgICBlbHNlIHBhcmVudC5pbnNlcnRCZWZvcmUodGhpcy5wcmV2aW91c1NpYmxpbmcsIGN1cnJlbnROb2RlKTtcbiAgfVxufVxuXG5pZiAoIUVsZW1lbnQucHJvdG90eXBlLnJlcGxhY2VXaXRoKVxuICBFbGVtZW50LnByb3RvdHlwZS5yZXBsYWNlV2l0aCA9IFJlcGxhY2VXaXRoUG9seWZpbGw7XG5pZiAoIUNoYXJhY3RlckRhdGEucHJvdG90eXBlLnJlcGxhY2VXaXRoKVxuICBDaGFyYWN0ZXJEYXRhLnByb3RvdHlwZS5yZXBsYWNlV2l0aCA9IFJlcGxhY2VXaXRoUG9seWZpbGw7XG5pZiAoIURvY3VtZW50VHlwZS5wcm90b3R5cGUucmVwbGFjZVdpdGgpXG4gIERvY3VtZW50VHlwZS5wcm90b3R5cGUucmVwbGFjZVdpdGggPSBSZXBsYWNlV2l0aFBvbHlmaWxsO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgUmVhY3QuY3JlYXRlUmVmIHx8IGZ1bmN0aW9uIGNyZWF0ZVJlZigpIHtcclxuICB2YXIgcmVmID0gZnVuY3Rpb24oXykgeyByZWYuY3VycmVudCA9IF8gfVxyXG4gIHJlZihudWxsKVxyXG4gIHJldHVybiByZWZcclxufVxyXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0ICdjaGlsZC1yZXBsYWNlLXdpdGgtcG9seWZpbGwnO1xuaW1wb3J0IGNyZWF0ZVJlZiBmcm9tICdyZWFjdC1jcmVhdGUtcmVmJztcblxuLypcbiBXcmFwcGVyIGNsYXNzIHRvIHdyYXAgdGhlIHJhdyBodG1sIG5vZGVzIGluIGEgXG4gcmVhY3QgY29tcG9uZW50IGJlZm9yZSBwYXNzaW5nIGl0IGRvd24gdG8gcmVhY3QgYXMgY2hpbGRyZW5cbiovXG50eXBlIFByb3BzV2l0aENoaWxkcmVuPFAgPSB1bmtub3duPiA9IFAgJiB7IGNoaWxkcmVuPzogTm9kZVtdIHwgdW5kZWZpbmVkIH07XG5leHBvcnQgY2xhc3MgUmVhY3REb21DaGlsZCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxQcm9wc1dpdGhDaGlsZHJlbj4ge1xuICByZWYgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXM6IE5vZGVbXSA9IHRoaXMucHJvcHMuY2hpbGRyZW4gYXMgTm9kZVtdO1xuICAgIHRoaXMucmVmLmN1cnJlbnQucmVwbGFjZVdpdGgoLi4uY2hpbGROb2Rlcyk7XG4gIH1cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiA8ZGl2IHJlZj17dGhpcy5yZWZ9IC8+O1xuICB9XG59XG4iLCJpbXBvcnQgeyBjcmVhdGVSb290IH0gZnJvbSAncmVhY3QtZG9tL2NsaWVudCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUmVhY3REb21DaGlsZCB9IGZyb20gJy4vcmVhY3QtZG9tLWNoaWxkJztcbmltcG9ydCBjcmVhdGVSZWYgZnJvbSAncmVhY3QtY3JlYXRlLXJlZic7XG5cbi8qXG5Qcm9wQnJpZGdlIHN0b3JlcyBwcm9wcyBwYXNzZWQgdG8gaXQgdmlhIHNldFByb3BzIGluIHRoZSBzdGF0ZS5cbkFuZCB0aGVuIHBhc3NlcyB0aG9zZSB0byB0aGUgY29tcG9uZW50IGFzIHJlZ3VsYXIgcHJvcHNcbkhlbmNlIHdoZW4geW91IGNhbGwgc2V0UHJvcHMgeW91IGFyZSBjYWxsaW5nIHNldFN0YXRlXG5hbmQgdGhlbiBwYXNzaW5nIHRob3NlIGFzIHByb3BzIHRvIHRoZSByZWFjdCBjb21wb25lbnQuXG4qL1xuXG5leHBvcnQgY29uc3QgcmVuZGVyUmVhY3QyTm9kZSA9IChcbiAgUkNvbXBvbmVudDogUmVhY3QuRWxlbWVudFR5cGUsXG4gIGluaXRpYWxQcm9wczoge30sXG4gIHRhcmdldERvbU5vZGU6IEVsZW1lbnQgfCBEb2N1bWVudEZyYWdtZW50LFxuICBvblJlbmRlcjogKHJlZjogUmVhY3QuUmVmT2JqZWN0PGFueT4pID0+IHZvaWRcbikgPT4ge1xuICBjbGFzcyBQcm9wQnJpZGdlIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gICAgc3RhdGUgPSB7IC4uLmluaXRpYWxQcm9wcyB9O1xuICAgIHNldFByb3BzID0gKHByb3BzOiBSZWFjdC5SZWZPYmplY3Q8UHJvcEJyaWRnZT4pID0+XG4gICAgICB0aGlzLnNldFN0YXRlKCgpID0+IHByb3BzKTtcbiAgICByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gPFJDb21wb25lbnQgey4uLnRoaXMucHJvcHN9IHsuLi50aGlzLnN0YXRlfSAvPjtcbiAgICB9XG4gIH1cbiAgY29uc3QgcHJvcEJyaWRnZVJlZiA9IGNyZWF0ZVJlZjxQcm9wQnJpZGdlPigpO1xuXG4gIC8vIHN1cHBvcnQgcmVhY3QgMThcbiAgY29uc3QgUHJvcEJyaWRnZVdpdGhDYWxsYmFjayA9ICgpID0+IHtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgb25SZW5kZXIocHJvcEJyaWRnZVJlZik7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiA8UHJvcEJyaWRnZSByZWY9e3Byb3BCcmlkZ2VSZWZ9IC8+O1xuICB9XG5cbiAgY3JlYXRlUm9vdCh0YXJnZXREb21Ob2RlKS5yZW5kZXIoPFByb3BCcmlkZ2VXaXRoQ2FsbGJhY2sgLz4pO1xuXG59O1xuXG5leHBvcnQgY29uc3Qgc2VuZFByb3BzVG9SZWFjdCA9IChcbiAgcHJvcEJyaWRnZVJlZjogUmVhY3QuUmVmT2JqZWN0PGFueT4sXG4gIHByb3BzOiBhbnlcbikgPT4ge1xuICBpZiAocHJvcEJyaWRnZVJlZiAmJiBwcm9wQnJpZGdlUmVmLmN1cnJlbnQpIHtcbiAgICBwcm9wQnJpZGdlUmVmLmN1cnJlbnQuc2V0UHJvcHMocHJvcHMpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UHJvcHNGcm9tTm9kZSA9IChub2RlOiBIVE1MRWxlbWVudCkgPT4ge1xuICBjb25zdCBhdHRyaWJ1dGVOYW1lcyA9IG5vZGUuZ2V0QXR0cmlidXRlTmFtZXMoKTtcbiAgY29uc3QgbWFwcGVkUHJvcHMgPSBhdHRyaWJ1dGVOYW1lcy5yZWR1Y2UoXG4gICAgKHByb3BzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IEpTWC5FbGVtZW50IH0sIG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgcHJvcHNbbmFtZV0gPSBub2RlLmdldEF0dHJpYnV0ZShuYW1lKTtcbiAgICAgIHJldHVybiBwcm9wcztcbiAgICB9LFxuICAgIHt9XG4gICk7XG5cbiAgY29uc3QgY2hpbGRyZW4gPSBBcnJheS5mcm9tKG5vZGUuY2hpbGROb2RlcykubWFwKChlKSA9PiBlLmNsb25lTm9kZSh0cnVlKSk7XG4gIG1hcHBlZFByb3BzLmNoaWxkcmVuID0gPFJlYWN0RG9tQ2hpbGQ+e2NoaWxkcmVufTwvUmVhY3REb21DaGlsZD47XG4gIHJldHVybiBtYXBwZWRQcm9wcztcbn07XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgcmVuZGVyUmVhY3QyTm9kZSxcbiAgZ2V0UHJvcHNGcm9tTm9kZSxcbiAgc2VuZFByb3BzVG9SZWFjdCxcbn0gZnJvbSAnLi9wcm9wLWJyaWRnZSc7XG5cbnR5cGUgTW9kZSA9ICdvcGVuJyB8ICdlbGVtZW50JztcblxuY29uc3QgZ2V0Q3VzdG9tRWxlbWVudEZyb21SZWFjdENvbXBvbmVudCA9IChcbiAgUkNvbXBvbmVudDogUmVhY3QuRWxlbWVudFR5cGUsXG4gIG1vZGU/OiBNb2RlXG4pID0+IHtcbiAgcmV0dXJuIGNsYXNzIFJlYWN0QXNDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQge1xuICAgIHRhcmdldE5vZGU6IHRoaXMgfCBTaGFkb3dSb290ID0gbnVsbDtcbiAgICBwcm9wQnJpZGdlUmVmOiBhbnkgPSBudWxsO1xuICAgIHByb3BzID0ge307XG4gICAgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpcy5wcm9wcyA9IGdldFByb3BzRnJvbU5vZGUodGhpcyk7XG4gICAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5fb25NdXRhdGlvbik7XG5cbiAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICBjYXNlICdvcGVuJzpcbiAgICAgICAgICB0aGlzLnRhcmdldE5vZGUgPSB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZWxlbWVudCc6XG4gICAgICAgICAgdGhpcy50YXJnZXROb2RlID0gdGhpcztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aGlzLnRhcmdldE5vZGUgPSB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdjbG9zZWQnIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICByZW5kZXJSZWFjdDJOb2RlKFxuICAgICAgICBSQ29tcG9uZW50LFxuICAgICAgICB0aGlzLnByb3BzLFxuICAgICAgICB0aGlzLnRhcmdldE5vZGUsXG4gICAgICAgIHRoaXMuX29uUmVhY3RNb3VudFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBzZXRQcm9wcyA9IChuZXdQcm9wczoge30pID0+IHtcbiAgICAgIHRoaXMucHJvcHMgPSB7IC4uLnRoaXMucHJvcHMsIC4uLm5ld1Byb3BzIH07XG4gICAgICBzZW5kUHJvcHNUb1JlYWN0KHRoaXMucHJvcEJyaWRnZVJlZiwgdGhpcy5wcm9wcyk7XG4gICAgfTtcblxuICAgIF9vblJlYWN0TW91bnQgPSAocHJvcEJyaWRnZVJlZjogUmVhY3QuUmVmT2JqZWN0PGFueT4pID0+IHtcbiAgICAgIHRoaXMucHJvcEJyaWRnZVJlZiA9IHByb3BCcmlkZ2VSZWY7XG4gICAgICB0aGlzLnNldFByb3BzKHRoaXMucHJvcHMpO1xuICAgIH07XG5cbiAgICBfb25NdXRhdGlvbiA9IChtdXRhdGlvbnNMaXN0OiBhbnlbXSkgPT4ge1xuICAgICAgY29uc3QgbmV3UHJvcHMgPSBtdXRhdGlvbnNMaXN0LnJlZHVjZShcbiAgICAgICAgKFxuICAgICAgICAgIHByb3BzOiB7IFt4OiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgICAgICAgICBtdXRhdGlvbjogeyB0eXBlOiBzdHJpbmc7IGF0dHJpYnV0ZU5hbWU6IHN0cmluZyB9XG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BLZXkgPSBtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lO1xuICAgICAgICAgICAgcHJvcHNbcHJvcEtleV0gPSB0aGlzLmdldEF0dHJpYnV0ZShwcm9wS2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHByb3BzO1xuICAgICAgICB9LFxuICAgICAgICB7fVxuICAgICAgKTtcbiAgICAgIHRoaXMuc2V0UHJvcHMobmV3UHJvcHMpO1xuICAgIH07XG4gICAgLypcbiAgICAgICAgTm8gbmVlZCB0byBvYnNlcnZlIGNoaWxkIGVsZW1lbnRzIGhlcmUuXG4gICAgICAgIENoaWxkIGVsZW1lbnRzIGFyZSBIVE1MQ29sbGVjdGlvbiB3aGljaCBhcmUgbGl2ZSBieSBkZWZhdWx0LiBcbiAgICAgICAgVGhhdCBtZWFucyB3aGVuIGNoaWxkIGVsZW1lbnRzIGNoYW5nZSB0aGUgSFRNTENvbGxlY3Rpb24gd2lsbCBjaGFuZ2UgYXV0b21hdGljYWxseS5cbiAgICAgICAgVGhlIHJlZmVyZW5jZSB0byBIVE1MQ29sbGVjdGlvbiBkb2VzbnQgY2hhbmdlLCBvbmx5IHRoZSBpdGVtcyBpbnNpZGUgaXQgd2lsbCBjaGFuZ2UuXG4gICAgICAgIEhlbmNlIHdlIHNob3VsZCBqdXN0IHBhc3MgdGhyb3VnaCB0aGUgY2hpbGRyZW4gKEhUTUxDb2xsZWN0aW9uKSBhcyBpcyBvbiBmaXJzdCByZW5kZXIgdG8gcmVhY3QgYW5kIGZvcmdldCBhYm91dCBpdC5cbiAgICAqL1xuXG4gICAgY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcywgeyBhdHRyaWJ1dGVzOiB0cnVlIH0pO1xuICAgIH1cbiAgICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICAgIGNvbnN0IHsgdW5tb3VudCB9ID0gY3JlYXRlUm9vdCh0aGlzLnRhcmdldE5vZGUpO1xuICAgICAgdW5tb3VudCgpO1xuICAgICAgdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9O1xufTtcblxuLyogbW9kZSBvcHRpb25zOlxuICAtIG5vIG9wdGlvbiAoZGVmYXVsdCkgLSBjbG9zZWQgc2hhZG93IERPTVxuICAtIFwib3BlblwiIC0gb3BlbiBzaGFkb3cgRE9NXG4gIC0gXCJlbGVtZW50XCIgLSBubyBzaGFkb3cgRE9NXG4qL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyQXNXZWJDb21wb25lbnQgPSAoXG4gIGNvbXBvbmVudDogUmVhY3QuRWxlbWVudFR5cGUsXG4gIGN1c3RvbUVsZW1lbnROYW1lOiBzdHJpbmcsXG4gIG1vZGU/OiBNb2RlXG4pID0+IHtcbiAgY29uc3QgUmVhY3RDdXN0b21FbGVtZW50ID0gZ2V0Q3VzdG9tRWxlbWVudEZyb21SZWFjdENvbXBvbmVudChcbiAgICBjb21wb25lbnQsXG4gICAgbW9kZVxuICApO1xuICBjdXN0b21FbGVtZW50cy5kZWZpbmUoY3VzdG9tRWxlbWVudE5hbWUsIFJlYWN0Q3VzdG9tRWxlbWVudCk7XG59O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==