UNPKG

aem-core-components-contributions-react-core

Version:
2 lines 37.9 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(s){if(t[s])return t[s].exports;var n=t[s]={i:s,l:!1,exports:{}};return e[s].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,s){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},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 s=Object.create(null);if(r.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(s,n,function(t){return e[t]}.bind(null,n));return s},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=23)}({0:function(e,t){e.exports=require("react")},1:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));var s=r(0),n=r.n(s);class i extends s.Component{render(){const e=(null!=this.props.componentTitle&&this.props.componentTitle.length>0?this.props.componentTitle+" - ":"")+(null!=this.props.emptyTextAppend?this.props.emptyTextAppend:i.DEFAULT_EMPTY_TEXT_LABEL);return this.renderPlaceHolder(e)}renderPlaceHolder(e){return n.a.createElement("div",{className:"cq-placeholder"+(null!=this.props.classAppend?" "+this.props.classAppend:"")},e)}}i.DEFAULT_EMPTY_TEXT_LABEL="Please configure the component";class l extends n.a.Component{constructor(e,t,r){super(e),this.baseCssCls=t,this.emptyPlaceHolderText=r}__hidePlaceHolder(){return this.props.hidePlaceHolder}__renderPlaceHolder(e,t){return n.a.createElement(i,{emptyTextAppend:t,componentTitle:e})}render(){const e=this.isEmpty();return n.a.createElement(n.a.Fragment,null,!e&&this.renderComponent(),e&&this.props.isInEditor&&!this.__hidePlaceHolder()&&this.__renderPlaceHolder(this.emptyPlaceHolderText))}}l.defaultProps={hidePlaceHolder:!1,isInEditor:!1}},12:function(e,t,r){"use strict";r.r(t),r.d(t,"DownloadV1IsEmptyFn",(function(){return l})),r.d(t,"DownloadV1",(function(){return o}));var s=r(0),n=r.n(s),i=r(1);function l(e){return(null==e.url||0===e.url.length)&&null==e.handleOnClick}class o extends i.a{constructor(e){super(e,"cmp-download","Contrib Download V1"),this.handleOnClick=this.handleOnClick.bind(this),this.displayFileName=e.displayFilename&&!!e.filename,this.displaySize=e.displaySize&&!!e.size,this.displayFormat=e.displayFormat&&!!e.format,this.handleOnClick=this.handleOnClick.bind(this)}handleOnClick(e){this.props.handleOnClick&&this.props.handleOnClick(e)}isEmpty(){return l(this.props)}renderHeadingContent(){return n.a.createElement(n.a.Fragment,null,!!this.props.url||!!this.props.handleOnClick&&n.a.createElement("a",{onClick:this.handleOnClick,className:this.baseCssCls+"__title-link",href:this.getHref()},this.props.title),!this.props.url&&n.a.createElement(n.a.Fragment,null," ",this.props.title," "))}renderHeading(){return n.a.createElement(""+this.props.titleType,{className:this.baseCssCls+'__title"'},this.renderHeadingContent())}renderDetails(){return n.a.createElement("dl",{className:this.baseCssCls+"__properties"},this.displayFileName&&this.renderProperty("Filename",this.props.filename,"filename"),this.displaySize&&this.renderProperty("Size",this.props.size,"size"),this.displayFormat&&this.renderProperty("Format",this.props.format,"format"))}renderComponent(){const e=this.baseCssCls+(this.props.isInEditor?" cq-dd-file":"");return n.a.createElement("div",{className:e},!!this.props.title&&this.renderHeading(),!!this.props.description&&this.renderDescription(),(this.displayFileName||this.displaySize||this.displayFormat)&&this.renderDetails(),this.renderDownloadLink())}renderDescription(){const e=String(this.props.description)||"";return n.a.createElement("div",{className:this.baseCssCls+"__description",dangerouslySetInnerHTML:{__html:e}})}renderDownloadLink(){return n.a.createElement("a",{onClick:this.handleOnClick,className:this.baseCssCls+"__action",href:this.getHref()},n.a.createElement("span",{className:this.baseCssCls+"__action-text"},this.props.actionText))}renderProperty(e,t,r){const s=`${this.baseCssCls}__property ${this.baseCssCls}__property--' + ${r}`;return n.a.createElement("div",{className:s},n.a.createElement("dt",{className:this.baseCssCls+"__property-label"},e),n.a.createElement("dd",{className:this.baseCssCls+"__property-content"},t))}getHref(){return this.props.url&&this.props.url.length>0?this.props.url:"#"}}o.defaultProps={isInEditor:!1,hidePlaceHolder:!1,titleType:"h3",displaySize:!1,displayFormat:!1,displayFilename:!1}},23:function(e,t,r){e.exports=r(12)}})})); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9jcUNvcmVDb21wb25lbnRzL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9jcUNvcmVDb21wb25lbnRzL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2NxQ29yZUNvbXBvbmVudHMvZXh0ZXJuYWwgXCJyZWFjdFwiIiwid2VicGFjazovL2NxQ29yZUNvbXBvbmVudHMvLi9zcmMvY29tbW9uL3BsYWNlaG9sZGVyLnRzeCIsIndlYnBhY2s6Ly9jcUNvcmVDb21wb25lbnRzLy4vc3JjL0Fic3RyYWN0Q29yZUNvbXBvbmVudC50c3giLCJ3ZWJwYWNrOi8vY3FDb3JlQ29tcG9uZW50cy8uL3NyYy9hdXRob3JpbmcvZG93bmxvYWQvdjEvRG93bmxvYWRWMS50c3giXSwibmFtZXMiOlsicm9vdCIsImZhY3RvcnkiLCJleHBvcnRzIiwibW9kdWxlIiwiZGVmaW5lIiwiYW1kIiwic2VsZiIsInRoaXMiLCJpbnN0YWxsZWRNb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiaSIsImwiLCJtb2R1bGVzIiwiY2FsbCIsIm0iLCJjIiwiZCIsIm5hbWUiLCJnZXR0ZXIiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiciIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJ0IiwibW9kZSIsIl9fZXNNb2R1bGUiLCJucyIsImNyZWF0ZSIsImtleSIsImJpbmQiLCJuIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwicmVxdWlyZSIsImVtcHR5VGV4dCIsInByb3BzIiwiY29tcG9uZW50VGl0bGUiLCJsZW5ndGgiLCJlbXB0eVRleHRBcHBlbmQiLCJERUZBVUxUX0VNUFRZX1RFWFRfTEFCRUwiLCJyZW5kZXJQbGFjZUhvbGRlciIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJjbGFzc0FwcGVuZCIsIkNvbXBvbmVudCIsImJhc2VDc3NDbHMiLCJlbXB0eVBsYWNlSG9sZGVyVGV4dCIsInN1cGVyIiwiaGlkZVBsYWNlSG9sZGVyIiwidGl0bGUiLCJpc0VtcHR5IiwiRnJhZ21lbnQiLCJyZW5kZXJDb21wb25lbnQiLCJpc0luRWRpdG9yIiwiX19oaWRlUGxhY2VIb2xkZXIiLCJfX3JlbmRlclBsYWNlSG9sZGVyIiwiZGVmYXVsdFByb3BzIiwiRG93bmxvYWRWMUlzRW1wdHlGbiIsInVybCIsImhhbmRsZU9uQ2xpY2siLCJEb3dubG9hZFYxIiwiZGlzcGxheUZpbGVOYW1lIiwiZGlzcGxheUZpbGVuYW1lIiwiZmlsZW5hbWUiLCJkaXNwbGF5U2l6ZSIsInNpemUiLCJkaXNwbGF5Rm9ybWF0IiwiZm9ybWF0IiwiZXZlbnQiLCJvbkNsaWNrIiwiaHJlZiIsImdldEhyZWYiLCJ0aXRsZVR5cGUiLCJyZW5kZXJIZWFkaW5nQ29udGVudCIsInJlbmRlclByb3BlcnR5IiwiY3NzQ2xhc3MiLCJyZW5kZXJIZWFkaW5nIiwiZGVzY3JpcHRpb24iLCJyZW5kZXJEZXNjcmlwdGlvbiIsInJlbmRlckRldGFpbHMiLCJyZW5kZXJEb3dubG9hZExpbmsiLCJodG1sIiwiU3RyaW5nIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJhY3Rpb25UZXh0IiwibGFiZWwiLCJjb250ZW50IiwiY3NzQ2xhc3NNb2RpZmllciJdLCJtYXBwaW5ncyI6IkNBQUEsU0FBMkNBLEVBQU1DLEdBQzFCLGlCQUFaQyxTQUEwQyxpQkFBWEMsT0FDeENBLE9BQU9ELFFBQVVELElBQ1EsbUJBQVhHLFFBQXlCQSxPQUFPQyxJQUM5Q0QsT0FBTyxHQUFJSCxHQUNlLGlCQUFaQyxRQUNkQSxRQUEwQixpQkFBSUQsSUFFOUJELEVBQXVCLGlCQUFJQyxJQVI3QixDQVNtQixvQkFBVEssS0FBdUJBLEtBQU9DLE1BQU0sV0FDOUMsTyxZQ1RFLElBQUlDLEVBQW1CLEdBR3ZCLFNBQVNDLEVBQW9CQyxHQUc1QixHQUFH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S0FBS3NDLE1BQU1rRCxhQUVqRyxlQUFlQyxFQUFPQyxFQUFTQyxHQUMzQixNQUFNYixFQUFXLEdBQUc5RSxLQUFLZ0Qsd0JBQXdCaEQsS0FBS2dELDZCQUE2QjJDLElBQ25GLE9BQVEsSUFBTS9DLGNBQWMsTUFBTyxDQUFFQyxVQUFXaUMsR0FDNUMsSUFBTWxDLGNBQWMsS0FBTSxDQUFFQyxVQUFXN0MsS0FBS2dELFdBQWEsb0JBQXNCeUMsR0FDL0UsSUFBTTdDLGNBQWMsS0FBTSxDQUFFQyxVQUFXN0MsS0FBS2dELFdBQWEsc0JBQXdCMEMsSUFFekYsVUFDSSxPQUFVMUYsS0FBS3NDLE1BQU11QixLQUFPN0QsS0FBS3NDLE1BQU11QixJQUFJckIsT0FBUyxFQUFLeEMsS0FBS3NDLE1BQU11QixJQUFNLEtBR2xGRSxFQUFXSixhQUFlLENBQ3RCSCxZQUFZLEVBQ1pMLGlCQUFpQixFQUNqQndCLFVBQVcsS0FDWFIsYUFBYSxFQUNiRSxlQUFlLEVBQ2ZKLGlCQUFpQixJIiwiZmlsZSI6IkRvd25sb2FkVjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJjcUNvcmVDb21wb25lbnRzXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcImNxQ29yZUNvbXBvbmVudHNcIl0gPSBmYWN0b3J5KCk7XG59KSh0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgPyBzZWxmIDogdGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDIzKTtcbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0XCIpOyIsIi8qXG4gKiAgQ29weXJpZ2h0IDIwMjAgQWRvYmVcbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5leHBvcnQgY2xhc3MgRWRpdG9yUGxhY2VIb2xkZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgcGFydDEgPSAodGhpcy5wcm9wcy5jb21wb25lbnRUaXRsZSAhPSBudWxsICYmIHRoaXMucHJvcHMuY29tcG9uZW50VGl0bGUubGVuZ3RoID4gMCkgPyB0aGlzLnByb3BzLmNvbXBvbmVudFRpdGxlICsgJyAtICcgOiAnJztcbiAgICAgICAgY29uc3QgcGFydDIgPSAodGhpcy5wcm9wcy5lbXB0eVRleHRBcHBlbmQgIT0gbnVsbCkgPyB0aGlzLnByb3BzLmVtcHR5VGV4dEFwcGVuZCA6IEVkaXRvclBsYWNlSG9sZGVyLkRFRkFVTFRfRU1QVFlfVEVYVF9MQUJFTDtcbiAgICAgICAgY29uc3QgZW1wdHlUZXh0ID0gcGFydDEgKyBwYXJ0MjtcbiAgICAgICAgcmV0dXJuICh0aGlzLnJlbmRlclBsYWNlSG9sZGVyKGVtcHR5VGV4dCkpO1xuICAgIH1cbiAgICByZW5kZXJQbGFjZUhvbGRlcihlbXB0eVRleHQpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6ICdjcS1wbGFjZWhvbGRlcicgKyAodGhpcy5wcm9wcy5jbGFzc0FwcGVuZCAhPSBudWxsID8gJyAnICsgdGhpcy5wcm9wcy5jbGFzc0FwcGVuZCA6ICcnKSB9LCBlbXB0eVRleHQpO1xuICAgIH1cbn1cbkVkaXRvclBsYWNlSG9sZGVyLkRFRkFVTFRfRU1QVFlfVEVYVF9MQUJFTCA9ICdQbGVhc2UgY29uZmlndXJlIHRoZSBjb21wb25lbnQnO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pY0d4aFkyVm9iMnhrWlhJdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUp3YkdGalpXaHZiR1JsY2k1MGMzZ2lYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRMEU3T3pzN096czdPenM3T3pzN08wZEJZMGM3UVVGRFNDeFBRVUZQTEV0QlFVc3NSVUZCUlN4RlFVRkRMRk5CUVZNc1JVRkJReXhOUVVGTkxFOUJRVThzUTBGQlF6dEJRVkYyUXl4TlFVRk5MRTlCUVU4c2FVSkJRV3RDTEZOQlFWRXNVMEZCWjBNN1NVRkpia1VzVFVGQlRUdFJRVU5HTEUxQlFVMHNTMEZCU3l4SFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGpRVUZqTEVsQlFVa3NTVUZCU1N4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWTBGQll5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4alFVRmpMRWRCUVVrc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdVVUZETjBrc1RVRkJUU3hMUVVGTExFZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1NVRkJTU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExIZENRVUYzUWl4RFFVRkRPMUZCUTNSSkxFMUJRVTBzVTBGQlV5eEhRVUZITEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNN1VVRkZhRU1zVDBGQlR5eERRVU5JTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZEY0VNc1EwRkJRVHRKUVVOTUxFTkJRVU03U1VGSFJDeHBRa0ZCYVVJc1EwRkJReXhUUVVGcFFqdFJRVU12UWl4UFFVRlBMRFpDUVVOSUxGTkJRVk1zUlVGQlJTeG5Ra0ZCWjBJc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4SlFVRkpMRWxCUVVrc1EwRkJRU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZEYUVjc1UwRkJVeXhEUVVOU0xFTkJRVU03U1VGRFdDeERRVUZET3p0QlFXeENUU3d3UTBGQmQwSXNSMEZCVnl4blEwRkJaME1zUTBGQlF5SjkiLCIvKlxuICogIENvcHlyaWdodCAyMDIwIEFkb2JlXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBFZGl0b3JQbGFjZUhvbGRlciB9IGZyb20gXCIuL2NvbW1vbi9wbGFjZWhvbGRlclwiO1xuLyoqXG4gKiBBYnN0cmFjdENvcmVDb21wb25lbnQgLSBwcm92aWRlcyBhYnN0cmFjdGlvbiBhbmQgaGVscGVyIG1ldGhvZHMgdG8gc2hvdyBhIHBsYWNlaG9sZGVyIGlmIHRoZSBjb21wb25lbnQgaXMgZW1wdHkgYW5kIGF1dGhvciBtb2RlIGlzIG9uLlxuICovXG5leHBvcnQgY2xhc3MgQWJzdHJhY3RDb3JlQ29tcG9uZW50IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBCYXNlIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHByb3BzIGNvbXBvbmVudCBwcm9wZXJ0aWVzXG4gICAgICogQHBhcmFtIGJhc2VDc3NDbHMgdGhlIGJhc2UgQkVNIGNzcyBjbGFzcyB0byBiZSB1c2VkIGZvciB0aGUgY29tcG9uZW50XG4gICAgICogQHBhcmFtIGVtcHR5UGxhY2VIb2xkZXJUZXh0IGVtcHR5IHBsYWNlaG9sZGVyIGxhYmVsIGZvciB3aGVuIHRoZSBjb21wb25lbnQgbmVlZHMgdG8gYmUgY29uZmlndXJlZCBpbiBhdXRob3IgbW9kZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHByb3BzLCBiYXNlQ3NzQ2xzLCBlbXB0eVBsYWNlSG9sZGVyVGV4dCkge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG4gICAgICAgIHRoaXMuYmFzZUNzc0NscyA9IGJhc2VDc3NDbHM7XG4gICAgICAgIHRoaXMuZW1wdHlQbGFjZUhvbGRlclRleHQgPSBlbXB0eVBsYWNlSG9sZGVyVGV4dDtcbiAgICB9XG4gICAgX19oaWRlUGxhY2VIb2xkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmhpZGVQbGFjZUhvbGRlcjtcbiAgICB9XG4gICAgX19yZW5kZXJQbGFjZUhvbGRlcih0aXRsZSwgZW1wdHlUZXh0KSB7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChFZGl0b3JQbGFjZUhvbGRlciwgeyBlbXB0eVRleHRBcHBlbmQ6IGVtcHR5VGV4dCwgY29tcG9uZW50VGl0bGU6IHRpdGxlIH0pKTtcbiAgICB9XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCBpc0VtcHR5ID0gdGhpcy5pc0VtcHR5KCk7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcbiAgICAgICAgICAgICFpc0VtcHR5ICYmXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnQoKSxcbiAgICAgICAgICAgIChpc0VtcHR5ICYmIHRoaXMucHJvcHMuaXNJbkVkaXRvciAmJiAhdGhpcy5fX2hpZGVQbGFjZUhvbGRlcigpKSAmJiB0aGlzLl9fcmVuZGVyUGxhY2VIb2xkZXIodGhpcy5lbXB0eVBsYWNlSG9sZGVyVGV4dCkpKTtcbiAgICB9XG59XG5BYnN0cmFjdENvcmVDb21wb25lbnQuZGVmYXVsdFByb3BzID0ge1xuICAgIGhpZGVQbGFjZUhvbGRlcjogZmFsc2UsXG4gICAgaXNJbkVkaXRvcjogZmFsc2Vcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lRV0p6ZEhKaFkzUkRiM0psUTI5dGNHOXVaVzUwTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lRV0p6ZEhKaFkzUkRiM0psUTI5dGNHOXVaVzUwTG5SemVDSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRVHM3T3pzN096czdPenM3T3pzN1IwRmpSenRCUVVWSUxFOUJRVThzUzBGQlN5eE5RVUZOTEU5QlFVOHNRMEZCUXp0QlFVTXhRaXhQUVVGUExFVkJRVU1zYVVKQlFXbENMRVZCUVVNc1RVRkJUU3h6UWtGQmMwSXNRMEZCUXp0QlFWbDJSRHM3UjBGRlJ6dEJRVU5JTEUxQlFVMHNUMEZCWjBJc2NVSkJRVEJHTEZOQlFWRXNTMEZCU3l4RFFVRkRMRk5CUVhOQ08wbEJWV2hLT3pzN096dFBRVXRITzBsQlEwZ3NXVUZCYzBJc1MwRkJWeXhGUVVGRExGVkJRV2xDTEVWQlFVTXNiMEpCUVRKQ08xRkJRek5GTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOaUxFbEJRVWtzUTBGQlF5eFZRVUZWTEVkQlFVY3NWVUZCVlN4RFFVRkRPMUZCUXpkQ0xFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1IwRkJSeXh2UWtGQmIwSXNRMEZCUXp0SlFVTnlSQ3hEUVVGRE8wbEJXVThzYVVKQlFXbENPMUZCUTNKQ0xFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4bFFVRmxMRU5CUVVNN1NVRkRkRU1zUTBGQlF6dEpRVVZQTEcxQ1FVRnRRaXhEUVVGRExFdEJRV0VzUlVGQlJTeFRRVUZwUWp0UlFVTjRSQ3hQUVVGTkxFTkJRMFlzYjBKQlFVTXNhVUpCUVdsQ0xFbEJRMlFzWlVGQlpTeEZRVUZGTEZOQlFWTXNSVUZETVVJc1kwRkJZeXhGUVVGRkxFdEJRVXNzUjBGRGRrSXNRMEZEVEN4RFFVRkJPMGxCUTB3c1EwRkJRenRKUVVWRUxFMUJRVTA3VVVGRFJpeE5RVUZOTEU5QlFVOHNSMEZCVnl4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03VVVGRmRrTXNUMEZCVHl4RFFVTklPMWxCUTAwc1EwRkJReXhQUVVGUE8yZENRVU5PTEVsQlFVa3NRMEZCUXl4bFFVRmxMRVZCUVVVN1dVRkhkRUlzUTBGQlF5eFBRVUZQTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhWUVVGVkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUTBGRk0wZ3NRMEZEVGl4RFFVRkJPMGxCUTB3c1EwRkJRenM3UVVGNFJHRXNhME5CUVZrc1IwRkJSenRKUVVONlFpeGxRVUZsTEVWQlFVVXNTMEZCU3p0SlFVTjBRaXhWUVVGVkxFVkJRVVVzUzBGQlN6dERRVU53UWl4RFFVRkRJbjA9IiwiLypcbiAqICBDb3B5cmlnaHQgMjAyMCBBZG9iZVxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEFic3RyYWN0Q29yZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9BYnN0cmFjdENvcmVDb21wb25lbnRcIjtcbmV4cG9ydCBmdW5jdGlvbiBEb3dubG9hZFYxSXNFbXB0eUZuKHByb3BzKSB7XG4gICAgcmV0dXJuIChwcm9wcy51cmwgPT0gbnVsbCB8fCBwcm9wcy51cmwubGVuZ3RoID09PSAwKSAmJiBwcm9wcy5oYW5kbGVPbkNsaWNrID09IG51bGw7XG59XG5leHBvcnQgY2xhc3MgRG93bmxvYWRWMSBleHRlbmRzIEFic3RyYWN0Q29yZUNvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMsIFwiY21wLWRvd25sb2FkXCIsICdDb250cmliIERvd25sb2FkIFYxJyk7XG4gICAgICAgIHRoaXMuaGFuZGxlT25DbGljayA9IHRoaXMuaGFuZGxlT25DbGljay5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmRpc3BsYXlGaWxlTmFtZSA9IHByb3BzLmRpc3BsYXlGaWxlbmFtZSAmJiAhIXByb3BzLmZpbGVuYW1lO1xuICAgICAgICB0aGlzLmRpc3BsYXlTaXplID0gcHJvcHMuZGlzcGxheVNpemUgJiYgISFwcm9wcy5zaXplO1xuICAgICAgICB0aGlzLmRpc3BsYXlGb3JtYXQgPSBwcm9wcy5kaXNwbGF5Rm9ybWF0ICYmICEhcHJvcHMuZm9ybWF0O1xuICAgICAgICB0aGlzLmhhbmRsZU9uQ2xpY2sgPSB0aGlzLmhhbmRsZU9uQ2xpY2suYmluZCh0aGlzKTtcbiAgICB9XG4gICAgaGFuZGxlT25DbGljayhldmVudCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5oYW5kbGVPbkNsaWNrKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmhhbmRsZU9uQ2xpY2soZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlzRW1wdHkoKSB7XG4gICAgICAgIHJldHVybiBEb3dubG9hZFYxSXNFbXB0eUZuKHRoaXMucHJvcHMpO1xuICAgIH1cbiAgICByZW5kZXJIZWFkaW5nQ29udGVudCgpIHtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxuICAgICAgICAgICAgISF0aGlzLnByb3BzLnVybCB8fCAhIXRoaXMucHJvcHMuaGFuZGxlT25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwgeyBvbkNsaWNrOiB0aGlzLmhhbmRsZU9uQ2xpY2ssIGNsYXNzTmFtZTogdGhpcy5iYXNlQ3NzQ2xzICsgJ19fdGl0bGUtbGluaycsIGhyZWY6IHRoaXMuZ2V0SHJlZigpIH0sIHRoaXMucHJvcHMudGl0bGUpKSxcbiAgICAgICAgICAgICF0aGlzLnByb3BzLnVybCAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcbiAgICAgICAgICAgICAgICBcIiBcIixcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnRpdGxlLFxuICAgICAgICAgICAgICAgIFwiIFwiKSkpKTtcbiAgICB9XG4gICAgcmVuZGVySGVhZGluZygpIHtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KGAke3RoaXMucHJvcHMudGl0bGVUeXBlfWAsIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogdGhpcy5iYXNlQ3NzQ2xzICsgJ19fdGl0bGVcIicsXG4gICAgICAgIH0sIHRoaXMucmVuZGVySGVhZGluZ0NvbnRlbnQoKSkpO1xuICAgIH1cbiAgICByZW5kZXJEZXRhaWxzKCkge1xuICAgICAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkbFwiLCB7IGNsYXNzTmFtZTogdGhpcy5iYXNlQ3NzQ2xzICsgJ19fcHJvcGVydGllcycgfSxcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheUZpbGVOYW1lICYmIHRoaXMucmVuZGVyUHJvcGVydHkoJ0ZpbGVuYW1lJywgdGhpcy5wcm9wcy5maWxlbmFtZSwgJ2ZpbGVuYW1lJyksXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlTaXplICYmIHRoaXMucmVuZGVyUHJvcGVydHkoJ1NpemUnLCB0aGlzLnByb3BzLnNpemUsICdzaXplJyksXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlGb3JtYXQgJiYgdGhpcy5yZW5kZXJQcm9wZXJ0eSgnRm9ybWF0JywgdGhpcy5wcm9wcy5mb3JtYXQsICdmb3JtYXQnKSkpO1xuICAgIH1cbiAgICByZW5kZXJDb21wb25lbnQoKSB7XG4gICAgICAgIGNvbnN0IGNzc0NsYXNzID0gdGhpcy5iYXNlQ3NzQ2xzICsgKHRoaXMucHJvcHMuaXNJbkVkaXRvciA/ICcgY3EtZGQtZmlsZScgOiAnJyk7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogY3NzQ2xhc3MgfSxcbiAgICAgICAgICAgICEhdGhpcy5wcm9wcy50aXRsZSAmJiB0aGlzLnJlbmRlckhlYWRpbmcoKSxcbiAgICAgICAgICAgICEhdGhpcy5wcm9wcy5kZXNjcmlwdGlvbiAmJiB0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCksXG4gICAgICAgICAgICAodGhpcy5kaXNwbGF5RmlsZU5hbWUgfHwgdGhpcy5kaXNwbGF5U2l6ZSB8fCB0aGlzLmRpc3BsYXlGb3JtYXQpICYmIHRoaXMucmVuZGVyRGV0YWlscygpLFxuICAgICAgICAgICAgdGhpcy5yZW5kZXJEb3dubG9hZExpbmsoKSkpO1xuICAgIH1cbiAgICByZW5kZXJEZXNjcmlwdGlvbigpIHtcbiAgICAgICAgY29uc3QgaHRtbCA9IFN0cmluZyh0aGlzLnByb3BzLmRlc2NyaXB0aW9uKSB8fCAnJztcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGlzLmJhc2VDc3NDbHMgKyAnX19kZXNjcmlwdGlvbicsIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7IF9faHRtbDogaHRtbCB9IH0pKTtcbiAgICB9XG4gICAgcmVuZGVyRG93bmxvYWRMaW5rKCkge1xuICAgICAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHsgb25DbGljazogdGhpcy5oYW5kbGVPbkNsaWNrLCBjbGFzc05hbWU6IHRoaXMuYmFzZUNzc0NscyArICdfX2FjdGlvbicsIGhyZWY6IHRoaXMuZ2V0SHJlZigpIH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IGNsYXNzTmFtZTogdGhpcy5iYXNlQ3NzQ2xzICsgJ19fYWN0aW9uLXRleHQnIH0sIHRoaXMucHJvcHMuYWN0aW9uVGV4dCkpKTtcbiAgICB9XG4gICAgcmVuZGVyUHJvcGVydHkobGFiZWwsIGNvbnRlbnQsIGNzc0NsYXNzTW9kaWZpZXIpIHtcbiAgICAgICAgY29uc3QgY3NzQ2xhc3MgPSBgJHt0aGlzLmJhc2VDc3NDbHN9X19wcm9wZXJ0eSAke3RoaXMuYmFzZUNzc0Nsc31fX3Byb3BlcnR5LS0nICsgJHtjc3NDbGFzc01vZGlmaWVyfWA7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogY3NzQ2xhc3MgfSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkdFwiLCB7IGNsYXNzTmFtZTogdGhpcy5iYXNlQ3NzQ2xzICsgJ19fcHJvcGVydHktbGFiZWwnIH0sIGxhYmVsKSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkZFwiLCB7IGNsYXNzTmFtZTogdGhpcy5iYXNlQ3NzQ2xzICsgJ19fcHJvcGVydHktY29udGVudCcgfSwgY29udGVudCkpKTtcbiAgICB9XG4gICAgZ2V0SHJlZigpIHtcbiAgICAgICAgcmV0dXJuICghIXRoaXMucHJvcHMudXJsICYmIHRoaXMucHJvcHMudXJsLmxlbmd0aCA+IDApID8gdGhpcy5wcm9wcy51cmwgOiAnIyc7XG4gICAgfVxufVxuRG93bmxvYWRWMS5kZWZhdWx0UHJvcHMgPSB7XG4gICAgaXNJbkVkaXRvcjogZmFsc2UsXG4gICAgaGlkZVBsYWNlSG9sZGVyOiBmYWxzZSxcbiAgICB0aXRsZVR5cGU6ICdoMycsXG4gICAgZGlzcGxheVNpemU6IGZhbHNlLFxuICAgIGRpc3BsYXlGb3JtYXQ6IGZhbHNlLFxuICAgIGRpc3BsYXlGaWxlbmFtZTogZmFsc2Vcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lSRzkzYm14dllXUldNUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklrUnZkMjVzYjJGa1ZqRXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQk96czdPenM3T3pzN096czdPenRIUVdOSE8wRkJRMGdzVDBGQlR5eExRVUZ0UWl4TlFVRk5MRTlCUVU4c1EwRkJRenRCUVVONFF5eFBRVUZQTEVWQlFYZERMSEZDUVVGeFFpeEZRVUZETEUxQlFVMHNaME5CUVdkRExFTkJRVU03UVVGdFFqVkhMRTFCUVUwc1ZVRkJWU3h0UWtGQmJVSXNRMEZCUXl4TFFVRnhRanRKUVVOeVJDeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1NVRkJTU3hKUVVGSkxFbEJRVWtzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZETEdGQlFXRXNTVUZCU1N4SlFVRkpMRU5CUVVNN1FVRkRlRVlzUTBGQlF6dEJRVVZFTEUxQlFVMHNUMEZCVHl4VlFVRTBSU3hUUVVGUkxIRkNRVUZ0UXp0SlFXVm9TU3haUVVGWkxFdEJRVmM3VVVGRGJrSXNTMEZCU3l4RFFVRkRMRXRCUVVzc1JVRkJSU3hqUVVGakxFVkJRVVVzY1VKQlFYRkNMRU5CUVVNc1EwRkJRenRSUVVOd1JDeEpRVUZKTEVOQlFVTXNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTI1RUxFbEJRVWtzUTBGQlF5eGxRVUZsTEVkQlFVY3NTMEZCU3l4RFFVRkRMR1ZCUVdVc1NVRkJTU3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXp0UlFVTnFSU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEV0QlFVc3NRMEZCUXl4WFFVRlhMRWxCUVVrc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTTdVVUZEY2tRc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eExRVUZMTEVOQlFVTXNZVUZCWVN4SlFVRkpMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETzFGQlF6TkVMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGRrUXNRMEZCUXp0SlFVVkVMR0ZCUVdFc1EwRkJReXhMUVVGblFqdFJRVU14UWl4SlFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeEZRVUZETzFsQlEzaENMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMU5CUTI1RE8wbEJRMHdzUTBGQlF6dEpRVVZFTEU5QlFVODdVVUZEU0N4UFFVRlBMRzFDUVVGdFFpeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVNelF5eERRVUZETzBsQlJVUXNiMEpCUVc5Q08xRkJRMmhDTEU5QlFVOHNRMEZEU0R0WlFVTkxMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGhRVUZoTEVsQlFVa3NRMEZETDBNc01rSkJRVWNzVDBGQlR5eEZRVUZGTEVsQlFVa3NRMEZCUXl4aFFVRmhMRVZCUXpOQ0xGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNWVUZCVlN4SFFVRkhMR05CUVdNc1JVRkRNME1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1NVRkRiRUlzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUTJwQ0xFTkJRMUE3V1VGRFFTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVVU3TzJkQ1FVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN6dHZRa0ZCU3l4RFFVRkRMRU5CUTJwRUxFTkJRMDRzUTBGQlFUdEpRVU5NTEVOQlFVTTdTVUZGUkN4aFFVRmhPMUZCUTFRc1QwRkJUeXhEUVVOSUxFdEJRVXNzUTBGQlF5eGhRVUZoTEVOQlEyWXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUlVGQlJTeEZRVU42UWp0WlFVTkpMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVlVGQlZTeEhRVUZITEZWQlFWVTdVMEZETVVNc1JVRkRSQ3hKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRVZCUVVVc1EwRkRPVUlzUTBGRFNpeERRVUZCTzBsQlEwd3NRMEZCUXp0SlFVVkVMR0ZCUVdFN1VVRkRWQ3hQUVVGUExFTkJRMGdzTkVKQlFVa3NVMEZCVXl4RlFVRkZMRWxCUVVrc1EwRkJReXhWUVVGVkxFZEJRVWNzWTBGQll6dFpRVU14UXl4SlFVRkpMRU5CUVVNc1pVRkJaU3hKUVVGSkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNWVUZCVlN4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeEZRVUZGTEZWQlFWVXNRMEZCUXp0WlFVTjRSaXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEpRVUZSTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1RVRkJUU3hGUVVGTkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RlFVRk5MRTFCUVUwc1EwRkJRenRaUVVOd1JpeEpRVUZKTEVOQlFVTXNZVUZCWVN4SlFVRk5MRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zVVVGQlVTeEZRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hGUVVGSkxGRkJRVkVzUTBGQlF5eERRVU4wUml4RFFVTlNMRU5CUVVFN1NVRkRUQ3hEUVVGRE8wbEJRMFFzWlVGQlpUdFJRVVZZTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJReXhWUVVGVkxFZEJRVWNzUTBGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkJSU3hEUVVGRExFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVOc1JpeFBRVUZQTEVOQlEwZ3NOa0pCUVVzc1UwRkJVeXhGUVVGRkxGRkJRVkU3V1VGRGJrSXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEpRVUZKTEVsQlFVa3NRMEZCUXl4aFFVRmhMRVZCUVVVN1dVRkRNVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhKUVVGSkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSVHRaUVVOd1JDeERRVUZETEVsQlFVa3NRMEZCUXl4bFFVRmxMRWxCUVVrc1NVRkJTU3hEUVVGRExGZEJRVmNzU1VGQlNTeEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExHRkJRV0VzUlVGQlJUdFpRVU40Uml4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNRMEZGZUVJc1EwRkRWQ3hEUVVGQk8wbEJRMHdzUTBGQlF6dEpRVVZFTEdsQ1FVRnBRanRSUVVOaUxFMUJRVTBzU1VGQlNTeEhRVUZWTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0UlFVTjZSQ3hQUVVGUExFTkJRMGdzTmtKQlFVc3NVMEZCVXl4RlFVRkZMRWxCUVVrc1EwRkJReXhWUVVGVkxFZEJRVWNzWlVGQlpTeEZRVUZGTEhWQ1FVRjFRaXhGUVVGRkxFVkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NSVUZCUXl4SFFVRlJMRU5CUTNKSExFTkJRVUU3U1VGRFRDeERRVUZETzBsQlJVUXNhMEpCUVd0Q08xRkJSMlFzVDBGQlR5eERRVU5JTERKQ1FVRkhMRTlCUVU4c1JVRkJSU3hKUVVGSkxFTkJRVU1zWVVGQllTeEZRVUZGTEZOQlFWTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hIUVVGSExGVkJRVlVzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSVHRaUVVONlJpdzRRa0ZCVFN4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eGxRVUZsTEVsQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVkVzUTBGRGJFWXNRMEZEVUN4RFFVRkJPMGxCUTB3c1EwRkJRenRKUVVWRUxHTkJRV01zUTBGQlF5eExRVUZoTEVWQlFVVXNUMEZCZVVJc1JVRkJSU3huUWtGQmQwSTdVVUZETjBVc1RVRkJUU3hSUVVGUkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNWVUZCVlN4alFVRmpMRWxCUVVrc1EwRkJReXhWUVVGVkxHMUNRVUZ0UWl4blFrRkJaMElzUlVGQlJTeERRVUZETzFGQlEzUkhMRTlCUVU4c1EwRkRTQ3cyUWtGQlN5eFRRVUZUTEVWQlFVVXNVVUZCVVR0WlFVTndRaXcwUWtGQlNTeFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhyUWtGQmEwSXNTVUZCUnl4TFFVRkxMRU5CUVUwN1dVRkRha1VzTkVKQlFVa3NVMEZCVXl4RlFVRkZMRWxCUVVrc1EwRkJReXhWUVVGVkxFZEJRVWNzYjBKQlFXOUNMRWxCUVVjc1QwRkJUeXhEUVVGTkxFTkJRMjVGTEVOQlExUXNRMEZCUXp0SlFVTk9MRU5CUVVNN1NVRkZSQ3hQUVVGUE8xRkJRMGdzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNN1NVRkRiRVlzUTBGQlF6czdRVUV6UjJFc2RVSkJRVmtzUjBGQlJ6dEpRVU42UWl4VlFVRlZMRVZCUVVVc1MwRkJTenRKUVVOcVFpeGxRVUZsTEVWQlFVVXNTMEZCU3p0SlFVTjBRaXhUUVVGVExFVkJRVVVzU1VGQlNUdEpRVU5tTEZkQlFWY3NSVUZCUlN4TFFVRkxPMGxCUTJ4Q0xHRkJRV0VzUlVGQlJTeExRVUZMTzBsQlEzQkNMR1ZCUVdVc1JVRkJSU3hMUVVGTE8wTkJRM3BDTEVOQlFVTWlmUT09Il0sInNvdXJjZVJvb3QiOiIifQ==