UNPKG

aem-core-components-contributions-react-core

Version:
2 lines 36 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cqCoreComponents=t():e.cqCoreComponents=t()}("undefined"!=typeof self?self:this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var s=t[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,r),s.l=!0,s.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},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 n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)r.d(n,s,function(t){return e[t]}.bind(null,s));return n},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=17)}([function(e,t){e.exports=require("react")},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(0),s=r.n(n);class o extends n.Component{render(){const e=(null!=this.props.componentTitle&&this.props.componentTitle.length>0?this.props.componentTitle+" - ":"")+(null!=this.props.emptyTextAppend?this.props.emptyTextAppend:o.DEFAULT_EMPTY_TEXT_LABEL);return this.renderPlaceHolder(e)}renderPlaceHolder(e){return s.a.createElement("div",{className:"cq-placeholder"+(null!=this.props.classAppend?" "+this.props.classAppend:"")},e)}}o.DEFAULT_EMPTY_TEXT_LABEL="Please configure the component";class i extends s.a.Component{constructor(e,t,r){super(e),this.baseCssCls=t,this.emptyPlaceHolderText=r}__hidePlaceHolder(){return this.props.hidePlaceHolder}__renderPlaceHolder(e,t){return s.a.createElement(o,{emptyTextAppend:t,componentTitle:e})}render(){const e=this.isEmpty();return s.a.createElement(s.a.Fragment,null,!e&&this.renderComponent(),e&&this.props.isInEditor&&!this.__hidePlaceHolder()&&this.__renderPlaceHolder(this.emptyPlaceHolderText))}}i.defaultProps={hidePlaceHolder:!1,isInEditor:!1}},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(0),s=r.n(n),o=r(4);const i=e=>{const{to:t,isRouted:r,...n}=e;if(void 0===t)return s.a.createElement("a",Object.assign({href:"#"},e));return/^https?:\/\//.test(t)||!r?s.a.createElement("a",Object.assign({href:t},e)):s.a.createElement(o.Link,Object.assign({},n,{to:t}))}},function(e,t,r){"use strict";function n(e,t){return!0===e.routed&&!1!==t.routed||!0===t.routed}r.d(t,"a",(function(){return n}))},function(e,t){e.exports=require("react-router-dom")},,,,,,,function(e,t,r){"use strict";r.r(t),r.d(t,"ListV2IsEmptyFn",(function(){return l})),r.d(t,"ListV2",(function(){return c}));var n=r(0),s=r.n(n),o=r(1),i=r(3),a=r(2);function l(e){return null==e.items||0===e.items.length}class c extends o.a{constructor(e){super(e,"cmp-list","ListV2")}isEmpty(){return l(this.props)}renderListItemContent(e,t){return s.a.createElement(s.a.Fragment,null,s.a.createElement("span",{className:this.baseCssCls+"__item-title"},e.title),this.props.showModificationDate&&this.renderItemModificationDate(e,t))}renderItemModificationDate(e,t){const r=e.lastModifiedFormatted?e.lastModifiedFormatted:"";return s.a.createElement("span",{className:this.baseCssCls+"__item-date"},r)}renderListAnchor(e,t){return s.a.createElement(a.a,{isRouted:Object(i.a)(this.props,e),className:this.baseCssCls+"__item-link",to:e.url},this.renderListItemContent(e,t))}renderListItemDescription(e,t){return s.a.createElement("span",{className:this.baseCssCls+"__item-description"},"$",e.description)}renderListItem(e,t){return s.a.createElement("li",{className:this.baseCssCls+"__item",key:"cmp-list-"+t},s.a.createElement("article",null,this.props.linkItems&&!!e.url&&this.renderListAnchor(e,t),!this.props.linkItems&&this.renderListItemContent(e,t),this.props.showDescription&&this.renderListItemDescription(e,t)))}renderComponent(){return s.a.createElement("ul",{className:this.baseCssCls},this.props.items.map((e,t)=>this.renderListItem(e,t)))}}c.defaultProps={isInEditor:!1,hidePlaceHolder:!1}},,,,,,function(e,t,r){e.exports=r(11)}])})); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9jcUNvcmVDb21wb25lbnRzL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9jcUNvcmVDb21wb25lbnRzL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2NxQ29yZUNvbXBvbmVudHMvZXh0ZXJuYWwgXCJyZWFjdFwiIiwid2VicGFjazovL2NxQ29yZUNvbXBvbmVudHMvLi9zcmMvY29tbW9uL3BsYWNlaG9sZGVyLnRzeCIsIndlYnBhY2s6Ly9jcUNvcmVDb21wb25lbnRzLy4vc3JjL0Fic3RyYWN0Q29yZUNvbXBvbmVudC50c3giLCJ3ZWJwYWNrOi8vY3FDb3JlQ29tcG9uZW50cy8uL3NyYy9yb3V0aW5nL1JvdXRlZExpbmsudHN4Iiwid2VicGFjazovL2NxQ29yZUNvbXBvbmVudHMvLi9zcmMvcm91dGluZy9Sb3V0ZWRDb3JlQ29tcG9uZW50LnRzeCIsIndlYnBhY2s6Ly9jcUNvcmVDb21wb25lbnRzL2V4dGVybmFsIFwicmVhY3Qtcm91dGVyLWRvbVwiIiwid2VicGFjazovL2NxQ29yZUNvbXBvbmVudHMvLi9zcmMvYXV0aG9yaW5nL2xpc3QvdjIvTGlzdFYyLnRzeCJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJzZWxmIiwidGhpcyIsImluc3RhbGxlZE1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJyZXF1aXJlIiwiZW1wdHlUZXh0IiwicHJvcHMiLCJjb21wb25lbnRUaXRsZSIsImxlbmd0aCIsImVtcHR5VGV4dEFwcGVuZCIsIkRFRkFVTFRfRU1QVFlfVEVYVF9MQUJFTCIsInJlbmRlclBsYWNlSG9sZGVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImNsYXNzQXBwZW5kIiwiQ29tcG9uZW50IiwiYmFzZUNzc0NscyIsImVtcHR5UGxhY2VIb2xkZXJUZXh0Iiwic3VwZXIiLCJoaWRlUGxhY2VIb2xkZXIiLCJ0aXRsZSIsImlzRW1wdHkiLCJGcmFnbWVudCIsInJlbmRlckNvbXBvbmVudCIsImlzSW5FZGl0b3IiLCJfX2hpZGVQbGFjZUhvbGRlciIsIl9fcmVuZGVyUGxhY2VIb2xkZXIiLCJkZWZhdWx0UHJvcHMiLCJSb3V0ZWRMaW5rIiwidG8iLCJpc1JvdXRlZCIsIm90aGVyUHJvcHMiLCJ1bmRlZmluZWQiLCJhc3NpZ24iLCJocmVmIiwidGVzdCIsImlzSXRlbVJvdXRlZCIsInNlbGZQcm9wcyIsIml0ZW0iLCJyb3V0ZWQiLCJMaXN0VjJJc0VtcHR5Rm4iLCJpdGVtcyIsIkxpc3RWMiIsImluZGV4Iiwic2hvd01vZGlmaWNhdGlvbkRhdGUiLCJyZW5kZXJJdGVtTW9kaWZpY2F0aW9uRGF0ZSIsImRhdGVTdHJpbmdUb0Rpc3BsYXkiLCJsYXN0TW9kaWZpZWRGb3JtYXR0ZWQiLCJ1cmwiLCJyZW5kZXJMaXN0SXRlbUNvbnRlbnQiLCJkZXNjcmlwdGlvbiIsImxpbmtJdGVtcyIsInJlbmRlckxpc3RBbmNob3IiLCJzaG93RGVzY3JpcHRpb24iLCJyZW5kZXJMaXN0SXRlbURlc2NyaXB0aW9uIiwibWFwIiwicmVuZGVyTGlzdEl0ZW0iXSwibWFwcGluZ3MiOiJDQUFBLFNBQTJDQSxFQUFNQyxHQUMxQixpQkFBWkMsU0FBMEMsaUJBQVhDLE9BQ3hDQSxPQUFPRCxRQUFVRCxJQUNRLG1CQUFYRyxRQUF5QkEsT0FBT0MsSUFDOUNELE9BQU8sR0FB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QU1jLElBQUksQ0FBQ2pCLEVBQU1LLElBQVUzRSxLQUFLd0YsZUFBZWxCLEVBQU1LLE1BRzFJRCxFQUFPZixhQUFlLENBQ2xCSCxZQUFZLEVBQ1pMLGlCQUFpQixJIiwiZmlsZSI6Ikxpc3RWMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcImNxQ29yZUNvbXBvbmVudHNcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiY3FDb3JlQ29tcG9uZW50c1wiXSA9IGZhY3RvcnkoKTtcbn0pKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyA/IHNlbGYgOiB0aGlzLCBmdW5jdGlvbigpIHtcbnJldHVybiAiLCIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMTcpO1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3RcIik7IiwiLypcbiAqICBDb3B5cmlnaHQgMjAyMCBBZG9iZVxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmV4cG9ydCBjbGFzcyBFZGl0b3JQbGFjZUhvbGRlciBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCBwYXJ0MSA9ICh0aGlzLnByb3BzLmNvbXBvbmVudFRpdGxlICE9IG51bGwgJiYgdGhpcy5wcm9wcy5jb21wb25lbnRUaXRsZS5sZW5ndGggPiAwKSA/IHRoaXMucHJvcHMuY29tcG9uZW50VGl0bGUgKyAnIC0gJyA6ICcnO1xuICAgICAgICBjb25zdCBwYXJ0MiA9ICh0aGlzLnByb3BzLmVtcHR5VGV4dEFwcGVuZCAhPSBudWxsKSA/IHRoaXMucHJvcHMuZW1wdHlUZXh0QXBwZW5kIDogRWRpdG9yUGxhY2VIb2xkZXIuREVGQVVMVF9FTVBUWV9URVhUX0xBQkVMO1xuICAgICAgICBjb25zdCBlbXB0eVRleHQgPSBwYXJ0MSArIHBhcnQyO1xuICAgICAgICByZXR1cm4gKHRoaXMucmVuZGVyUGxhY2VIb2xkZXIoZW1wdHlUZXh0KSk7XG4gICAgfVxuICAgIHJlbmRlclBsYWNlSG9sZGVyKGVtcHR5VGV4dCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogJ2NxLXBsYWNlaG9sZGVyJyArICh0aGlzLnByb3BzLmNsYXNzQXBwZW5kICE9IG51bGwgPyAnICcgKyB0aGlzLnByb3BzLmNsYXNzQXBwZW5kIDogJycpIH0sIGVtcHR5VGV4dCk7XG4gICAgfVxufVxuRWRpdG9yUGxhY2VIb2xkZXIuREVGQVVMVF9FTVBUWV9URVhUX0xBQkVMID0gJ1BsZWFzZSBjb25maWd1cmUgdGhlIGNvbXBvbmVudCc7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljR3hoWTJWb2IyeGtaWEl1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SndiR0ZqWldodmJHUmxjaTUwYzNnaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlEwRTdPenM3T3pzN096czdPenM3TzBkQlkwYzdRVUZEU0N4UFFVRlBMRXRCUVVzc1JVRkJSU3hGUVVGRExGTkJRVk1zUlVGQlF5eE5RVUZOTEU5QlFVOHNRMEZCUXp0QlFWRjJReXhOUVVGTkxFOUJRVThzYVVKQlFXdENMRk5CUVZFc1UwRkJaME03U1VGSmJrVXNUVUZCVFR0UlFVTkdMRTFCUVUwc1MwRkJTeXhIUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4alFVRmpMRWxCUVVrc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZMEZCWXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhqUVVGakxFZEJRVWtzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1VVRkROMGtzVFVGQlRTeExRVUZMTEVkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHVkJRV1VzU1VGQlNTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEhkQ1FVRjNRaXhEUVVGRE8xRkJRM1JKTEUxQlFVMHNVMEZCVXl4SFFVRkhMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU03VVVGRmFFTXNUMEZCVHl4RFFVTklMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkRjRU1zUTBGQlFUdEpRVU5NTEVOQlFVTTdTVUZIUkN4cFFrRkJhVUlzUTBGQlF5eFRRVUZwUWp0UlFVTXZRaXhQUVVGUExEWkNRVU5JTEZOQlFWTXNSVUZCUlN4blFrRkJaMElzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhKUVVGSkxFbEJRVWtzUTBGQlFTeERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkRhRWNzVTBGQlV5eERRVU5TTEVOQlFVTTdTVUZEV0N4RFFVRkRPenRCUVd4Q1RTd3dRMEZCZDBJc1IwRkJWeXhuUTBGQlowTXNRMEZCUXlKOSIsIi8qXG4gKiAgQ29weXJpZ2h0IDIwMjAgQWRvYmVcbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEVkaXRvclBsYWNlSG9sZGVyIH0gZnJvbSBcIi4vY29tbW9uL3BsYWNlaG9sZGVyXCI7XG4vKipcbiAqIEFic3RyYWN0Q29yZUNvbXBvbmVudCAtIHByb3ZpZGVzIGFic3RyYWN0aW9uIGFuZCBoZWxwZXIgbWV0aG9kcyB0byBzaG93IGEgcGxhY2Vob2xkZXIgaWYgdGhlIGNvbXBvbmVudCBpcyBlbXB0eSBhbmQgYXV0aG9yIG1vZGUgaXMgb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBBYnN0cmFjdENvcmVDb21wb25lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIEJhc2UgQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gcHJvcHMgY29tcG9uZW50IHByb3BlcnRpZXNcbiAgICAgKiBAcGFyYW0gYmFzZUNzc0NscyB0aGUgYmFzZSBCRU0gY3NzIGNsYXNzIHRvIGJlIHVzZWQgZm9yIHRoZSBjb21wb25lbnRcbiAgICAgKiBAcGFyYW0gZW1wdHlQbGFjZUhvbGRlclRleHQgZW1wdHkgcGxhY2Vob2xkZXIgbGFiZWwgZm9yIHdoZW4gdGhlIGNvbXBvbmVudCBuZWVkcyB0byBiZSBjb25maWd1cmVkIGluIGF1dGhvciBtb2RlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJvcHMsIGJhc2VDc3NDbHMsIGVtcHR5UGxhY2VIb2xkZXJUZXh0KSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgICAgdGhpcy5iYXNlQ3NzQ2xzID0gYmFzZUNzc0NscztcbiAgICAgICAgdGhpcy5lbXB0eVBsYWNlSG9sZGVyVGV4dCA9IGVtcHR5UGxhY2VIb2xkZXJUZXh0O1xuICAgIH1cbiAgICBfX2hpZGVQbGFjZUhvbGRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMuaGlkZVBsYWNlSG9sZGVyO1xuICAgIH1cbiAgICBfX3JlbmRlclBsYWNlSG9sZGVyKHRpdGxlLCBlbXB0eVRleHQpIHtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KEVkaXRvclBsYWNlSG9sZGVyLCB7IGVtcHR5VGV4dEFwcGVuZDogZW1wdHlUZXh0LCBjb21wb25lbnRUaXRsZTogdGl0bGUgfSkpO1xuICAgIH1cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IGlzRW1wdHkgPSB0aGlzLmlzRW1wdHkoKTtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxuICAgICAgICAgICAgIWlzRW1wdHkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudCgpLFxuICAgICAgICAgICAgKGlzRW1wdHkgJiYgdGhpcy5wcm9wcy5pc0luRWRpdG9yICYmICF0aGlzLl9faGlkZVBsYWNlSG9sZGVyKCkpICYmIHRoaXMuX19yZW5kZXJQbGFjZUhvbGRlcih0aGlzLmVtcHR5UGxhY2VIb2xkZXJUZXh0KSkpO1xuICAgIH1cbn1cbkFic3RyYWN0Q29yZUNvbXBvbmVudC5kZWZhdWx0UHJvcHMgPSB7XG4gICAgaGlkZVBsYWNlSG9sZGVyOiBmYWxzZSxcbiAgICBpc0luRWRpdG9yOiBmYWxzZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVFXSnpkSEpoWTNSRGIzSmxRMjl0Y0c5dVpXNTBMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaVFXSnpkSEpoWTNSRGIzSmxRMjl0Y0c5dVpXNTBMblJ6ZUNKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdPenM3T3pzN096czdPenM3UjBGalJ6dEJRVVZJTEU5QlFVOHNTMEZCU3l4TlFVRk5MRTlCUVU4c1EwRkJRenRCUVVNeFFpeFBRVUZQTEVWQlFVTXNhVUpCUVdsQ0xFVkJRVU1zVFVGQlRTeHpRa0ZCYzBJc1EwRkJRenRCUVZsMlJEczdSMEZGUnp0QlFVTklMRTFCUVUwc1QwRkJaMElzY1VKQlFUQkdMRk5CUVZFc1MwRkJTeXhEUVVGRExGTkJRWE5DTzBsQlZXaEtPenM3T3p0UFFVdEhPMGxCUTBnc1dVRkJjMElzUzBGQlZ5eEZRVUZETEZWQlFXbENMRVZCUVVNc2IwSkJRVEpDTzFGQlF6TkZMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU5pTEVsQlFVa3NRMEZCUXl4VlFVRlZMRWRCUVVjc1ZVRkJWU3hEUVVGRE8xRkJRemRDTEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUjBGQlJ5eHZRa0ZCYjBJc1EwRkJRenRKUVVOeVJDeERRVUZETzBsQldVOHNhVUpCUVdsQ08xRkJRM0pDTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRVU03U1VGRGRFTXNRMEZCUXp0SlFVVlBMRzFDUVVGdFFpeERRVUZETEV0QlFXRXNSVUZCUlN4VFFVRnBRanRSUVVONFJDeFBRVUZOTEVOQlEwWXNiMEpCUVVNc2FVSkJRV2xDTEVsQlEyUXNaVUZCWlN4RlFVRkZMRk5CUVZNc1JVRkRNVUlzWTBGQll5eEZRVUZGTEV0QlFVc3NSMEZEZGtJc1EwRkRUQ3hEUVVGQk8wbEJRMHdzUTBGQlF6dEpRVVZFTEUxQlFVMDdVVUZEUml4TlFVRk5MRTlCUVU4c1IwRkJWeXhKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdVVUZGZGtNc1QwRkJUeXhEUVVOSU8xbEJRMDBzUTBGQlF5eFBRVUZQTzJkQ1FVTk9MRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVU3V1VGSGRFSXNRMEZCUXl4UFFVRlBMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVWQlFVVXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNRMEZGTTBnc1EwRkRUaXhEUVVGQk8wbEJRMHdzUTBGQlF6czdRVUY0UkdFc2EwTkJRVmtzUjBGQlJ6dEpRVU42UWl4bFFVRmxMRVZCUVVVc1MwRkJTenRKUVVOMFFpeFZRVUZWTEVWQlFVVXNTMEZCU3p0RFFVTndRaXhEUVVGREluMD0iLCIvKlxuICogIENvcHlyaWdodCAyMDIwIEFkb2JlXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTGluayBhcyBSb3V0ZXJMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5leHBvcnQgY29uc3QgUm91dGVkTGluayA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgdG8sIGlzUm91dGVkLCAuLi5vdGhlclByb3BzIH0gPSBwcm9wcztcbiAgICBpZiAodG8gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwgT2JqZWN0LmFzc2lnbih7IGhyZWY6ICcjJyB9LCBwcm9wcykpO1xuICAgIH1cbiAgICBjb25zdCBpc0V4dGVybmFsID0gL15odHRwcz86XFwvXFwvLy50ZXN0KHRvKTtcbiAgICByZXR1cm4gaXNFeHRlcm5hbCB8fCAhaXNSb3V0ZWQgP1xuICAgICAgICAoUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwgT2JqZWN0LmFzc2lnbih7IGhyZWY6IHRvIH0sIHByb3BzKSkpXG4gICAgICAgIDpcbiAgICAgICAgICAgIChSZWFjdC5jcmVhdGVFbGVtZW50KFJvdXRlckxpbmssIE9iamVjdC5hc3NpZ24oe30sIG90aGVyUHJvcHMsIHsgdG86IHRvIH0pKSk7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pVW05MWRHVmtUR2x1YXk1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbEp2ZFhSbFpFeHBibXN1ZEhONElsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJPenM3T3pzN096czdPenM3T3p0SFFXTkhPMEZCUlVnc1QwRkJUeXhMUVVGTExFMUJRVTBzVDBGQlR5eERRVUZETzBGQlF6RkNMRTlCUVU4c1JVRkJReXhKUVVGSkxFbEJRVWtzVlVGQlZTeEZRVUZETEUxQlFVMHNhMEpCUVd0Q0xFTkJRVU03UVVGUGNFUXNUVUZCVFN4RFFVRkRMRTFCUVUwc1ZVRkJWU3hIUVVGSExFTkJRVU1zUzBGQlpTeEZRVUZGTEVWQlFVVTdTVUZETVVNc1RVRkJUU3hGUVVGRExFVkJRVVVzUlVGQlJTeFJRVUZSTEVWQlFVVXNSMEZCUnl4VlFVRlZMRVZCUVVNc1IwRkJSeXhMUVVGTExFTkJRVU03U1VGRk5VTXNTVUZCUnl4RlFVRkZMRXRCUVVzc1UwRkJVeXhGUVVGRE8xRkJRMmhDTEU5QlFVOHNlVU5CUVVjc1NVRkJTU3hGUVVGRkxFZEJRVWNzU1VGRFdDeExRVUZMTEVWQlExZ3NRMEZCUXp0TFFVTk9PMGxCUTBRc1RVRkJUU3hWUVVGVkxFZEJRVWNzWTBGQll5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVVelF5eFBRVUZQTEZWQlFWVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRU3hEUVVGRE8xRkJRek5DTEVOQlFVTXNlVU5CUTBjc1NVRkJTU3hGUVVGRkxFVkJRVVVzU1VGRFNpeExRVUZMTEVWQlExZ3NRMEZCUXp0UlFVTklMRU5CUVVNN1dVRkRSQ3hEUVVGRkxHOUNRVUZETEZWQlFWVXNiMEpCUVVzc1ZVRkJWU3hKUVVOa0xFVkJRVVVzUlVGQlJTeEZRVUZGTEVsQlEyeENMRU5CUVVNc1EwRkJRVHRCUVVOWUxFTkJRVU1zUTBGQlF5SjkiLCIvKlxuICogIENvcHlyaWdodCAyMDIwIEFkb2JlXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJdGVtUm91dGVkKHNlbGZQcm9wcywgaXRlbSkge1xuICAgIHJldHVybiAoKHNlbGZQcm9wcy5yb3V0ZWQgPT09IHRydWUgJiYgaXRlbS5yb3V0ZWQgIT09IGZhbHNlKSB8fCBpdGVtLnJvdXRlZCA9PT0gdHJ1ZSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lVbTkxZEdWa1EyOXlaVU52YlhCdmJtVnVkQzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklsSnZkWFJsWkVOdmNtVkRiMjF3YjI1bGJuUXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQk96czdPenM3T3pzN096czdPenRIUVdOSE8wRkJZVWdzVFVGQlRTeFZRVUZWTEZsQlFWa3NRMEZCUXl4VFFVRnhRaXhGUVVGRkxFbEJRV2RDTzBsQlEyaEZMRTlCUVU4c1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEV0QlFVc3NTVUZCU1N4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFdEJRVXNzUzBGQlN5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1MwRkJTeXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU14Uml4RFFVRkRJbjA9IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3Qtcm91dGVyLWRvbVwiKTsiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb3JlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uL0Fic3RyYWN0Q29yZUNvbXBvbmVudFwiO1xuaW1wb3J0IHsgaXNJdGVtUm91dGVkIH0gZnJvbSBcIi4uLy4uLy4uL3JvdXRpbmcvUm91dGVkQ29yZUNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUm91dGVkTGluayB9IGZyb20gXCIuLi8uLi8uLi9yb3V0aW5nL1JvdXRlZExpbmtcIjtcbmV4cG9ydCBmdW5jdGlvbiBMaXN0VjJJc0VtcHR5Rm4ocHJvcHMpIHtcbiAgICByZXR1cm4gcHJvcHMuaXRlbXMgPT0gbnVsbCB8fCBwcm9wcy5pdGVtcy5sZW5ndGggPT09IDA7XG59XG5leHBvcnQgY2xhc3MgTGlzdFYyIGV4dGVuZHMgQWJzdHJhY3RDb3JlQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcywgJ2NtcC1saXN0JywgJ0xpc3RWMicpO1xuICAgIH1cbiAgICBpc0VtcHR5KCkge1xuICAgICAgICByZXR1cm4gTGlzdFYySXNFbXB0eUZuKHRoaXMucHJvcHMpO1xuICAgIH1cbiAgICByZW5kZXJMaXN0SXRlbUNvbnRlbnQoaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHRoaXMuYmFzZUNzc0NscyArICdfX2l0ZW0tdGl0bGUnIH0sIGl0ZW0udGl0bGUpLFxuICAgICAgICAgICAgdGhpcy5wcm9wcy5zaG93TW9kaWZpY2F0aW9uRGF0ZSAmJiB0aGlzLnJlbmRlckl0ZW1Nb2RpZmljYXRpb25EYXRlKGl0ZW0sIGluZGV4KSkpO1xuICAgIH1cbiAgICByZW5kZXJJdGVtTW9kaWZpY2F0aW9uRGF0ZShpdGVtLCBpbmRleCkge1xuICAgICAgICBjb25zdCBkYXRlU3RyaW5nVG9EaXNwbGF5ID0gaXRlbS5sYXN0TW9kaWZpZWRGb3JtYXR0ZWQgPyBpdGVtLmxhc3RNb2RpZmllZEZvcm1hdHRlZCA6IFwiXCI7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHRoaXMuYmFzZUNzc0NscyArICdfX2l0ZW0tZGF0ZScgfSwgZGF0ZVN0cmluZ1RvRGlzcGxheSkpO1xuICAgIH1cbiAgICByZW5kZXJMaXN0QW5jaG9yKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChSb3V0ZWRMaW5rLCB7IGlzUm91dGVkOiBpc0l0ZW1Sb3V0ZWQodGhpcy5wcm9wcywgaXRlbSksIGNsYXNzTmFtZTogdGhpcy5iYXNlQ3NzQ2xzICsgJ19faXRlbS1saW5rJywgdG86IGl0ZW0udXJsIH0sIHRoaXMucmVuZGVyTGlzdEl0ZW1Db250ZW50KGl0ZW0sIGluZGV4KSkpO1xuICAgIH1cbiAgICByZW5kZXJMaXN0SXRlbURlc2NyaXB0aW9uKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHRoaXMuYmFzZUNzc0NscyArICdfX2l0ZW0tZGVzY3JpcHRpb24nIH0sXG4gICAgICAgICAgICBcIiRcIixcbiAgICAgICAgICAgIGl0ZW0uZGVzY3JpcHRpb24pKTtcbiAgICB9XG4gICAgcmVuZGVyTGlzdEl0ZW0oaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIiwgeyBjbGFzc05hbWU6IHRoaXMuYmFzZUNzc0NscyArICdfX2l0ZW0nLCBrZXk6IFwiY21wLWxpc3QtXCIgKyBpbmRleCB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImFydGljbGVcIiwgbnVsbCxcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmxpbmtJdGVtcyAmJiAhIWl0ZW0udXJsICYmIHRoaXMucmVuZGVyTGlzdEFuY2hvcihpdGVtLCBpbmRleCksXG4gICAgICAgICAgICAgICAgIXRoaXMucHJvcHMubGlua0l0ZW1zICYmIHRoaXMucmVuZGVyTGlzdEl0ZW1Db250ZW50KGl0ZW0sIGluZGV4KSxcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnNob3dEZXNjcmlwdGlvbiAmJiB0aGlzLnJlbmRlckxpc3RJdGVtRGVzY3JpcHRpb24oaXRlbSwgaW5kZXgpKSkpO1xuICAgIH1cbiAgICByZW5kZXJDb21wb25lbnQoKSB7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIsIHsgY2xhc3NOYW1lOiB0aGlzLmJhc2VDc3NDbHMgfSwgdGhpcy5wcm9wcy5pdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB0aGlzLnJlbmRlckxpc3RJdGVtKGl0ZW0sIGluZGV4KSkpKTtcbiAgICB9XG59XG5MaXN0VjIuZGVmYXVsdFByb3BzID0ge1xuICAgIGlzSW5FZGl0b3I6IGZhbHNlLFxuICAgIGhpZGVQbGFjZUhvbGRlcjogZmFsc2Vcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lUR2x6ZEZZeUxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpVEdsemRGWXlMblJ6ZUNKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEV0QlFVc3NUVUZCVFN4UFFVRlBMRU5CUVVNN1FVRkRNVUlzVDBGQlR5eEZRVUZETEhGQ1FVRnhRaXhGUVVGeFFpeE5RVUZOTEdkRFFVRm5ReXhEUVVGRE8wRkJRM3BHTEU5QlFVOHNSVUZCZDBNc1dVRkJXU3hGUVVGRExFMUJRVTBzYzBOQlFYTkRMRU5CUVVNN1FVRkRla2NzVDBGQlR5eEZRVUZETEZWQlFWVXNSVUZCUXl4TlFVRk5MRFpDUVVFMlFpeERRVUZETzBGQmIwSjJSQ3hOUVVGTkxGVkJRVlVzWlVGQlpTeERRVUZETEV0QlFXbENPMGxCUXpkRExFOUJRVThzUzBGQlN5eERRVUZETEV0QlFVc3NTVUZCU1N4SlFVRkpMRWxCUVVrc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUXpORUxFTkJRVU03UVVGRlJDeE5RVUZOTEU5QlFVOHNUVUZCYjBVc1UwRkJVU3h4UWtGQmJVTTdTVUZQZUVnc1dVRkJXU3hMUVVGWk8xRkJRM0JDTEV0QlFVc3NRMEZCUXl4TFFVRkxMRVZCUVVVc1ZVRkJWU3hGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETzBsQlEzWkRMRU5CUVVNN1NVRkZSQ3hQUVVGUE8xRkJRMGdzVDBGQlR5eGxRVUZsTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRM1pETEVOQlFVTTdTVUZGUkN4eFFrRkJjVUlzUTBGQlF5eEpRVUZsTEVWQlFVVXNTMEZCV1R0UlFVVXZReXhQUVVGUExFTkJRMGc3V1VGRFNTdzRRa0ZCVFN4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eGpRVUZqTEVsQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJVVHRaUVVOeVJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRzlDUVVGdlFpeEpRVUZKTEVsQlFVa3NRMEZCUXl3d1FrRkJNRUlzUTBGQlF5eEpRVUZKTEVWQlFVTXNTMEZCU3l4RFFVRkRMRU5CUTJoR0xFTkJRMDRzUTBGQlFUdEpRVU5NTEVOQlFVTTdTVUZGUkN3d1FrRkJNRUlzUTBGQlF5eEpRVUZsTEVWQlFVVXNTMEZCV1R0UlFVVndSQ3hOUVVGTkxHMUNRVUZ0UWl4SFFVRkhMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03VVVGRGVrWXNUMEZCVHl4RFFVTklMRGhDUVVGTkxGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNWVUZCVlN4SFFVRkhMR0ZCUVdFc1NVRkJSeXh0UWtGQmJVSXNRMEZCVVN4RFFVTnFSaXhEUVVGQk8wbEJRMHdzUTBGQlF6dEpRVVZFTEdkQ1FVRm5RaXhEUVVGRExFbEJRV1VzUlVGQlJTeExRVUZaTzFGQlJURkRMRTlCUVU4c1EwRkRTQ3h2UWtGQlF5eFZRVUZWTEVsQlFVTXNVVUZCVVN4RlFVRkZMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVlVGQlZTeEhRVUZITEdGQlFXRXNSVUZCUlN4RlFVRkZMRVZCUVVVc1NVRkJTU3hEUVVGRExFZEJRVWNzU1VGRGVrY3NTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVsQlFVa3NSVUZCUXl4TFFVRkxMRU5CUVVNc1EwRkRPVUlzUTBGRGFFSXNRMEZCUVR0SlFVTk1MRU5CUVVNN1NVRkZSQ3g1UWtGQmVVSXNRMEZCUXl4SlFVRm5RaXhGUVVGRkxFdEJRV0U3VVVGRGNrUXNUMEZCVHl4RFFVTklMRGhDUVVGTkxGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNWVUZCVlN4SFFVRkhMRzlDUVVGdlFqczdXVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGUkxFTkJRM1JHTEVOQlFVRTdTVUZEVEN4RFFVRkRPMGxCUlVRc1kwRkJZeXhEUVVGRExFbEJRV1VzUlVGQlJTeExRVUZaTzFGQlEzaERMRTlCUVU4c1EwRkRTQ3cwUWtGQlNTeFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhSUVVGUkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEZkQlFWY3NSMEZCUnl4TFFVRkxPMWxCUXk5RU8yZENRVU5MTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4SlFVRkpMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SlFVRkpMRVZCUVVNc1MwRkJTeXhEUVVGRE8yZENRVU4yUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eEpRVUZKTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eEpRVUZKTEVWQlFVTXNTMEZCU3l4RFFVRkRPMmRDUVVNdlJDeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1NVRkJTU3hKUVVGSkxFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1NVRkJTU3hGUVVGRExFdEJRVXNzUTBGQlF5eERRVU51UlN4RFFVTlVMRU5CUTFJc1EwRkJRVHRKUVVOTUxFTkJRVU03U1VGRlJDeGxRVUZsTzFGQlJWZ3NUMEZCVHl4RFFVTklMRFJDUVVGSkxGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNWVUZCVlN4SlFVTjZRaXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVTjJSU3hEUVVOU0xFTkJRVUU3U1VGRFRDeERRVUZET3p0QlFXcEZZU3h0UWtGQldTeEhRVUZITzBsQlEzcENMRlZCUVZVc1JVRkJSU3hMUVVGTE8wbEJRMnBDTEdWQlFXVXNSVUZCUlN4TFFVRkxPME5CUTNwQ0xFTkJRVU1pZlE9PSJdLCJzb3VyY2VSb290IjoiIn0=