ctt-babylon 0.22.119 → 0.22.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/external/core/sli-c2-img-txt-l-v2/sli-c2-img-txt-l-v2.component.mjs +3 -2
- package/esm2022/lib/components/external/core/sli-c2-img-txt-r-v2/sli-c2-img-txt-r-v2.component.mjs +3 -2
- package/fesm2022/ctt-babylon.mjs +4 -2
- package/fesm2022/ctt-babylon.mjs.map +1 -1
- package/package.json +1 -1
package/esm2022/lib/components/external/core/sli-c2-img-txt-l-v2/sli-c2-img-txt-l-v2.component.mjs
CHANGED
|
@@ -169,7 +169,8 @@ export class SliC2ImgTxtLV2Component {
|
|
|
169
169
|
const hasCTA = !!this.activeButton;
|
|
170
170
|
const overflowThreshold = totalAvailable - (hasCTA ? CTA_HEIGHT : 0);
|
|
171
171
|
const availableForText = totalAvailable - TOGGLE_HEIGHT - (hasCTA ? CTA_HEIGHT : 0);
|
|
172
|
-
|
|
172
|
+
const MIN_TEXT_HEIGHT = 60;
|
|
173
|
+
this.textCollapsedHeight = Math.max(availableForText, MIN_TEXT_HEIGHT);
|
|
173
174
|
this.textOverflows = descHeight > overflowThreshold;
|
|
174
175
|
if (!this.textOverflows) {
|
|
175
176
|
this.collapsedLinks = true;
|
|
@@ -437,4 +438,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
437
438
|
}], data: [{
|
|
438
439
|
type: Input
|
|
439
440
|
}] } });
|
|
440
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpLWMyLWltZy10eHQtbC12Mi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL3NsaS1jMi1pbWctdHh0LWwtdjIvc2xpLWMyLWltZy10eHQtbC12Mi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL3NsaS1jMi1pbWctdHh0LWwtdjIvc2xpLWMyLWltZy10eHQtbC12Mi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUdILFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUtMLFdBQVcsRUFHWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQzs7O0FBYTdILE1BQU0sV0FBVyxHQUEwQjtJQUN2QyxZQUFZLEVBQUUseUNBQXlDO0lBQ3ZELFlBQVksRUFBRSxhQUFhO0lBQzNCLE1BQU0sRUFBRTtRQUNKLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLElBQUk7UUFDakIsWUFBWSxFQUFFLGtCQUFrQjtRQUNoQyxRQUFRLEVBQUUsS0FBSztRQUNmLElBQUksRUFBRSxJQUFJO1FBQ1YsUUFBUSxFQUFF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TW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBQTEFURk9STV9JRCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBTd2lwZXIsIHsgQXV0b3BsYXksIEVmZmVjdEZhZGUsIE5hdmlnYXRpb24sIFBhZ2luYXRpb24gfSBmcm9tICdzd2lwZXInO1xuaW1wb3J0IHsgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcy9saW5rLXR5cGUvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCYWJ5bG9uU3dpcGVyQ3NzTG9hZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcy9iYWJ5bG9uLXNsaWRlcnMvYmFieWxvbi1zd2lwZXItY3NzLWxvYWRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgQmFieWxvbkJ1dHRvbkksXG4gICAgQmFieWxvbkltYWdlSSxcbiAgICBCYWJ5bG9uSXRlbUksXG4gICAgQmFieWxvbk11bHRpbWVkaWFJLFxuICAgIEJhYnlsb25UZXh0SW5mb0ksXG59IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgICBTbGlDMkltZ1R4dExWMkNvbnRlbnQsXG4gICAgU2xpQzJJbWdUeHRMVjJTbGlkZSxcbn0gZnJvbSAnLi9zbGktYzItaW1nLXR4dC1sLXYyLmludGVyZmFjZXMnO1xuXG5jb25zdCBkZWZhdWx0RGF0YTogU2xpQzJJbWdUeHRMVjJDb250ZW50ID0ge1xuICAgIHNlY3Rpb25DbGFzczogJ3NlY3Rpb24tZ2FsbGVyeSBpbmZvLWxlZnQgbW9kdWxlLXNwYWNlcicsXG4gICAgd3JhcHBlckNsYXNzOiAnYmlnLXdyYXBwZXInLFxuICAgIHNsaWRlcjoge1xuICAgICAgICBuYW1lOiAnanMtc2VjdGlvbi1zbGlkZXInLFxuICAgICAgICBzaG93QnV0dG9uczogdHJ1ZSxcbiAgICAgICAgYnV0dG9uc0NsYXNzOiAnYnRuLXNsaWRlLWNpcmNsZScsXG4gICAgICAgIHNob3dEb3RzOiBmYWxzZSxcbiAgICAgICAgZmFkZTogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIHNsaWRlc1BjOiAxLFxuICAgICAgICBzbGlkZXNMYXB0b3A6IDEsXG4gICAgICAgIHNsaWRlc1RhYmxldDogMSxcbiAgICAgICAgc2xpZGVzTW9iaWxlOiAxLFxuICAgIH0sXG4gICAgbWVkaWE6IHtcbiAgICAgICAgc2xpZGVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOiAnJyxcbiAgICAgICAgICAgICAgICBkYXRhTGF6eWltZzogJycsXG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsOiAnJyxcbiAgICAgICAgICAgICAgICBkYXRhRmlsZW5hbWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICB9LFxuICAgIGluZm86IHtcbiAgICAgICAgc3VidGl0bGU6ICcnLFxuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIHRleHQ6ICcnLFxuICAgIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NsaS1jMi1pbWctdHh0LWwtdjInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEJhYnlsb25Td2lwZXJDc3NMb2FkZXJEaXJlY3RpdmUsXG4gICAgICAgIEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zbGktYzItaW1nLXR4dC1sLXYyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vc2xpLWMyLWltZy10eHQtbC12Mi5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG59KVxuZXhwb3J0IGNsYXNzIFNsaUMySW1nVHh0TFYyQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gICAgcHJpdmF0ZSBfZGF0YTogU2xpQzJJbWdUeHRMVjJDb250ZW50ID0gZGVmYXVsdERhdGE7XG4gICAgcHJpdmF0ZSBzbGlkZXJJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgdmlld0luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBzd2lwZXJJbnN0YW5jZT86IFN3aXBlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICAgIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcbiAgICBwcml2YXRlIG92ZXJmbG93Q2hlY2tTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICBjdXJyZW50U2xpZGUgPSAxO1xuICAgIHRvdGFsU2xpZGVzID0gdGhpcy5fZGF0YS5tZWRpYS5zbGlkZXMubGVuZ3RoO1xuICAgIGFjdGl2ZVRleHRzPzogQmFieWxvblRleHRJbmZvSTtcbiAgICBjb2xsYXBzZWRMaW5rcyA9IHRydWU7XG4gICAgdGV4dENvbGxhcHNlZEhlaWdodCA9IDA7XG4gICAgdGV4dE92ZXJmbG93cyA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdGV4dHM/OiBCYWJ5bG9uVGV4dEluZm9JO1xuICAgIEBJbnB1dCgpIGl0ZW1zPzogQmFieWxvbkl0ZW1JW107XG4gICAgQElucHV0KCkgbXVsdGltZWRpYT86IEJhYnlsb25NdWx0aW1lZGlhSTtcbiAgICBASW5wdXQoKSBidXR0b25zPzogQmFieWxvbkJ1dHRvbklbXTtcblxuICAgIEBWaWV3Q2hpbGQoJ3NlY3Rpb25TbGlkZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBzZWN0aW9uU2xpZGVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnc2xpZGVyUHJldicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHNsaWRlclByZXY/OiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdzbGlkZXJOZXh0JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgc2xpZGVyTmV4dD86IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ3NsaWRlclBhZ2luYXRpb24nLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBzbGlkZXJQYWdpbmF0aW9uPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZHJlbignaW1hZ2VSZWYnKVxuICAgIGltYWdlUmVmcz86IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG4gICAgQFZpZXdDaGlsZCgndGV4dENvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHRleHRDb250YWluZXI/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdoZWFkZXJSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBoZWFkZXJSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBkYXRhKHZhbHVlOiBTbGlDMkltZ1R4dExWMkNvbnRlbnQpIHtcbiAgICAgICAgdGhpcy5fZGF0YSA9IHZhbHVlID8/IGRlZmF1bHREYXRhO1xuICAgICAgICB0aGlzLnN5bmNTbGlkZXNTdGF0ZSgpO1xuICAgICAgICBpZiAodGhpcy5zbGlkZXJJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5kZXN0cm95U2xpZGVyKCk7XG4gICAgICAgICAgICB0aGlzLmluaXRTbGlkZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBoYXNWYWxpZFNsaWRlcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkodGhpcy5zbGlkZXMpICYmXG4gICAgICAgICAgICB0aGlzLnNsaWRlcy5zb21lKFxuICAgICAgICAgICAgICAgIChzbGlkZSkgPT4gISEoc2xpZGU/LmRhdGFMYXp5aW1nIHx8IHNsaWRlPy5iYWNrZ3JvdW5kSW1hZ2UpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGRhdGEoKTogU2xpQzJJbWdUeHRMVjJDb250ZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gICAgfVxuXG4gICAgZ2V0IHNsaWRlcygpOiBTbGlDMkltZ1R4dExWMlNsaWRlW10ge1xuICAgICAgICBjb25zdCBtdWx0aW1lZGlhU2xpZGVzID0gdGhpcy5tYXBNdWx0aW1lZGlhVG9TbGlkZXMoXG4gICAgICAgICAgICB0aGlzLm11bHRpbWVkaWE/LmltYWdlbmVzXG4gICAgICAgICk7XG4gICAgICAgIGlmIChtdWx0aW1lZGlhU2xpZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBtdWx0aW1lZGlhU2xpZGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXRlbVNsaWRlcyA9IHRoaXMubWFwSXRlbXNUb1NsaWRlcyh0aGlzLml0ZW1zKTtcbiAgICAgICAgaWYgKGl0ZW1TbGlkZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1TbGlkZXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLm1lZGlhLnNsaWRlcyA/PyBbXTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zeW5jU2xpZGVzU3RhdGUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVUZXh0cygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnN5bmNTbGlkZXNTdGF0ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVRleHRzKCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5jaGVja092ZXJmbG93KCk7XG4gICAgICAgIHRoaXMuaW5pdFNsaWRlcigpO1xuXG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50SW5mbyA9IHRoaXMudGV4dENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgID8uY2xvc2VzdCgnLndyYXAtY29udGVudC1pbmZvJyk7XG4gICAgICAgICAgICBpZiAoY29udGVudEluZm8pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU92ZXJmbG93Q2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoY29udGVudEluZm8pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBzaG91bGRSZWZyZXNoID1cbiAgICAgICAgICAgICEhY2hhbmdlc1snbXVsdGltZWRpYSddIHx8ICEhY2hhbmdlc1snaXRlbXMnXSB8fCAhIWNoYW5nZXNbJ2RhdGEnXTtcbiAgICAgICAgaWYgKCFzaG91bGRSZWZyZXNoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN5bmNTbGlkZXNTdGF0ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVRleHRzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMudmlld0luaXRpYWxpemVkICYmIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveVNsaWRlcigpO1xuICAgICAgICAgICAgdGhpcy5pbml0U2xpZGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95U2xpZGVyKCk7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB9XG5cbiAgICB0cmFja1NsaWRlKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuXG4gICAgZm9ybWF0Q291bnRlcih2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlIDwgMTAgPyBgMCR7dmFsdWV9YCA6IGAke3ZhbHVlfWA7XG4gICAgfVxuXG4gICAgdG9nZ2xlVGV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWRMaW5rcyA9ICF0aGlzLmNvbGxhcHNlZExpbmtzO1xuICAgIH1cblxuICAgIGdldCBhY3RpdmVTbGlkZUxpbmtMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBzbGlkZXMgPSB0aGlzLnNsaWRlcztcbiAgICAgICAgaWYgKCFzbGlkZXMubGVuZ3RoKSByZXR1cm4gJ1ZlciBtw6FzJztcbiAgICAgICAgY29uc3QgaWR4ID0gTWF0aC5taW4odGhpcy5jdXJyZW50U2xpZGUgLSAxLCBzbGlkZXMubGVuZ3RoIC0gMSk7XG4gICAgICAgIGNvbnN0IGxpbmsgPSBzbGlkZXNbaWR4XT8ubGlua3M/LlswXTtcbiAgICAgICAgcmV0dXJuIGxpbms/LmxhYmVsIHx8IGxpbms/Lm5hbWUgfHwgJ1ZlciBtw6FzJztcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlQnV0dG9uKCk6IEJhYnlsb25CdXR0b25JIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuYnV0dG9ucz8ubGVuZ3RoICYmIHRoaXMuYnV0dG9uc1swXT8udXJsKSByZXR1cm4gdGhpcy5idXR0b25zWzBdO1xuICAgICAgICBjb25zdCBzbGlkZXMgPSB0aGlzLnNsaWRlcztcbiAgICAgICAgaWYgKCFzbGlkZXMubGVuZ3RoKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBpZHggPSBNYXRoLm1pbih0aGlzLmN1cnJlbnRTbGlkZSAtIDEsIHNsaWRlcy5sZW5ndGggLSAxKTtcbiAgICAgICAgcmV0dXJuIHNsaWRlc1tpZHhdPy5idXR0b25zPy5bMF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzY2hlZHVsZU92ZXJmbG93Q2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJmbG93Q2hlY2tTY2hlZHVsZWQpIHJldHVybjtcbiAgICAgICAgdGhpcy5vdmVyZmxvd0NoZWNrU2NoZWR1bGVkID0gdHJ1ZTtcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmZsb3dDaGVja1NjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jaGVja092ZXJmbG93KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tPdmVyZmxvdygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW1hZ2VzID0gdGhpcy5pbWFnZVJlZnM/LnRvQXJyYXkoKTtcbiAgICAgICAgY29uc3QgdGV4dEVsID0gdGhpcy50ZXh0Q29udGFpbmVyPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBoZWFkZXJFbCA9IHRoaXMuaGVhZGVyUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAoIWltYWdlcz8ubGVuZ3RoIHx8ICF0ZXh0RWwgfHwgIWhlYWRlckVsKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgaWR4ID0gTWF0aC5taW4odGhpcy5jdXJyZW50U2xpZGUgLSAxLCBpbWFnZXMubGVuZ3RoIC0gMSk7XG4gICAgICAgIGNvbnN0IGltYWdlRWwgPSBpbWFnZXNbaWR4XT8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKCFpbWFnZUVsKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgaW1hZ2VIZWlnaHQgPSBpbWFnZUVsLm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgaGVhZGVySGVpZ2h0ID0gaGVhZGVyRWwub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBkZXNjSGVpZ2h0ID0gdGV4dEVsLnNjcm9sbEhlaWdodDtcbiAgICAgICAgY29uc3QgdG90YWxBdmFpbGFibGUgPSAoaW1hZ2VIZWlnaHQgLSBoZWFkZXJIZWlnaHQpICogMC45MDtcbiAgICAgICAgY29uc3QgVE9HR0xFX0hFSUdIVCA9IDY1O1xuICAgICAgICBjb25zdCBDVEFfSEVJR0hUID0gMTIwO1xuICAgICAgICBjb25zdCBoYXNDVEEgPSAhIXRoaXMuYWN0aXZlQnV0dG9uO1xuXG4gICAgICAgIGNvbnN0IG92ZXJmbG93VGhyZXNob2xkID0gdG90YWxBdmFpbGFibGUgLSAoaGFzQ1RBID8gQ1RBX0hFSUdIVCA6IDApO1xuICAgICAgICBjb25zdCBhdmFpbGFibGVGb3JUZXh0ID0gdG90YWxBdmFpbGFibGUgLSBUT0dHTEVfSEVJR0hUIC0gKGhhc0NUQSA/IENUQV9IRUlHSFQgOiAwKTtcblxuICAgICAgICB0aGlzLnRleHRDb2xsYXBzZWRIZWlnaHQgPSBNYXRoLm1heChhdmFpbGFibGVGb3JUZXh0LCAwKTtcbiAgICAgICAgdGhpcy50ZXh0T3ZlcmZsb3dzID0gZGVzY0hlaWdodCA+IG92ZXJmbG93VGhyZXNob2xkO1xuICAgICAgICBpZiAoIXRoaXMudGV4dE92ZXJmbG93cykge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZWRMaW5rcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kSW1hZ2Uoc2xpZGU6IFNsaUMySW1nVHh0TFYyU2xpZGUpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBpbWFnZVVybCA9IHNsaWRlLmRhdGFMYXp5aW1nIHx8IHNsaWRlLmJhY2tncm91bmRJbWFnZTtcbiAgICAgICAgcmV0dXJuIGB1cmwoJHtpbWFnZVVybH0pYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTbGlkZXIoKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHxcbiAgICAgICAgICAgIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8XG4gICAgICAgICAgICAhdGhpcy5zZWN0aW9uU2xpZGVyXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHwgIXRoaXMuc2VjdGlvblNsaWRlcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2xpZGVzID0gdGhpcy5zbGlkZXM7XG4gICAgICAgICAgICBpZiAoc2xpZGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZG9tU2xpZGVzID1cbiAgICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25TbGlkZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICAgICAgICAnLnN3aXBlci1zbGlkZSdcbiAgICAgICAgICAgICAgICApLmxlbmd0aDtcbiAgICAgICAgICAgIGlmIChkb21TbGlkZXMgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNsaWRlckNvbmZpZyA9IHRoaXMuZGF0YS5zbGlkZXI7XG4gICAgICAgICAgICBjb25zdCBtYXhTbGlkZXNQZXJWaWV3ID0gTWF0aC5tYXgoXG4gICAgICAgICAgICAgICAgc2xpZGVyQ29uZmlnLnNsaWRlc1BjLFxuICAgICAgICAgICAgICAgIHNsaWRlckNvbmZpZy5zbGlkZXNMYXB0b3AsXG4gICAgICAgICAgICAgICAgc2xpZGVyQ29uZmlnLnNsaWRlc1RhYmxldCxcbiAgICAgICAgICAgICAgICBzbGlkZXJDb25maWcuc2xpZGVzTW9iaWxlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzTXVsdGlwbGVTbGlkZXMgPSBzbGlkZXMubGVuZ3RoID4gMTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZExvb3AgPVxuICAgICAgICAgICAgICAgIGhhc011bHRpcGxlU2xpZGVzICYmIHNsaWRlcy5sZW5ndGggPiBtYXhTbGlkZXNQZXJWaWV3O1xuICAgICAgICAgICAgY29uc3QgaGFzTmF2aWdhdGlvbiA9XG4gICAgICAgICAgICAgICAgaGFzTXVsdGlwbGVTbGlkZXMgJiZcbiAgICAgICAgICAgICAgICBzbGlkZXJDb25maWcuc2hvd0J1dHRvbnMgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNsaWRlclByZXYgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNsaWRlck5leHQ7XG4gICAgICAgICAgICBjb25zdCBoYXNQYWdpbmF0aW9uID1cbiAgICAgICAgICAgICAgICBoYXNNdWx0aXBsZVNsaWRlcyAmJlxuICAgICAgICAgICAgICAgIHNsaWRlckNvbmZpZy5zaG93RG90cyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVyUGFnaW5hdGlvbjtcblxuICAgICAgICAgICAgdGhpcy50b3RhbFNsaWRlcyA9IHNsaWRlcy5sZW5ndGg7XG5cbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN3aXBlckluc3RhbmNlID0gbmV3IFN3aXBlcihcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWN0aW9uU2xpZGVyIS5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVzOiBbTmF2aWdhdGlvbiwgUGFnaW5hdGlvbiwgQXV0b3BsYXksIEVmZmVjdEZhZGVdLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogc2xpZGVyQ29uZmlnLnNsaWRlc01vYmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1Blckdyb3VwOiBzbGlkZXJDb25maWcuc2xpZGVzTW9iaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3BlZWQ6IDMwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvb3A6IHNob3VsZExvb3AsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvSGVpZ2h0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWZmZWN0OiAnc2xpZGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFkZUVmZmVjdDogc2xpZGVyQ29uZmlnLmZhZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY3Jvc3NGYWRlOiB0cnVlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiBzbGlkZXJDb25maWcuYXV0b3BsYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxheTogMzAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlT25JbnRlcmFjdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IGhhc05hdmlnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0RWw6IHRoaXMuc2xpZGVyTmV4dCEubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2RWw6IHRoaXMuc2xpZGVyUHJldiEubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogaGFzUGFnaW5hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsOiB0aGlzLnNsaWRlclBhZ2luYXRpb24hLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc2ODoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiBzbGlkZXJDb25maWcuc2xpZGVzVGFibGV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJHcm91cDogc2xpZGVyQ29uZmlnLnNsaWRlc1RhYmxldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyODA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogc2xpZGVyQ29uZmlnLnNsaWRlc0xhcHRvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyR3JvdXA6IHNsaWRlckNvbmZpZy5zbGlkZXNMYXB0b3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNjgwOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IHNsaWRlckNvbmZpZy5zbGlkZXNQYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyR3JvdXA6IHNsaWRlckNvbmZpZy5zbGlkZXNQYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdDogKHN3aXBlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3RhbFNsaWRlcyA9IHRoaXMuc2xpZGVzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gc3dpcGVyPy5yZWFsSW5kZXggPz8gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNsaWRlID0gYWN0aXZlSW5kZXggKyAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVUZXh0cyhhY3RpdmVJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrT3ZlcmZsb3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja092ZXJmbG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZUNoYW5nZTogKHN3aXBlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSBzd2lwZXI/LnJlYWxJbmRleCA/PyAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2xpZGUgPSBhY3RpdmVJbmRleCArIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVRleHRzKGFjdGl2ZUluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tPdmVyZmxvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2l6ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU92ZXJmbG93Q2hlY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveVNsaWRlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNsaWRlckluaXRpYWxpemVkIHx8ICF0aGlzLnN3aXBlckluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN3aXBlckluc3RhbmNlLmRlc3Ryb3kodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc3dpcGVySW5zdGFuY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN5bmNTbGlkZXNTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b3RhbFNsaWRlcyA9IHRoaXMuc2xpZGVzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5jdXJyZW50U2xpZGUgPSBNYXRoLm1pbih0aGlzLmN1cnJlbnRTbGlkZSwgdGhpcy50b3RhbFNsaWRlcykgfHwgMTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcE11bHRpbWVkaWFUb1NsaWRlcyhcbiAgICAgICAgaW1hZ2VzPzogQmFieWxvbkltYWdlSVtdXG4gICAgKTogU2xpQzJJbWdUeHRMVjJTbGlkZVtdIHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGltYWdlcykpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbWFnZXMucmVkdWNlPFNsaUMySW1nVHh0TFYyU2xpZGVbXT4oKGFjYywgaW1hZ2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNyYyA9IHRoaXMucmVzb2x2ZUltYWdlU3JjKGltYWdlKTtcbiAgICAgICAgICAgIGNvbnN0IGFsdCA9IGltYWdlPy5pbWc/LmFsdCA/PyBpbWFnZT8uYWx0ID8/ICcnO1xuICAgICAgICAgICAgaWYgKCFzcmMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBzcmMsXG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsOiBhbHQsXG4gICAgICAgICAgICAgICAgZGF0YUZpbGVuYW1lOiBhbHQsXG4gICAgICAgICAgICAgICAgZGF0YUxhenlpbWc6IHNyYyxcbiAgICAgICAgICAgICAgICB0ZXh0czogdGhpcy5leHRyYWN0VGV4dHNGcm9tSW1hZ2UoaW1hZ2UpLFxuICAgICAgICAgICAgICAgIGxpbmtzOiBpbWFnZS5saW5rcyxcbiAgICAgICAgICAgICAgICBidXR0b25zOiBpbWFnZS5idXR0b25zXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIFtdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcEl0ZW1zVG9TbGlkZXMoXG4gICAgICAgIGl0ZW1zPzogQmFieWxvbkl0ZW1JW10gfCBCYWJ5bG9uSW1hZ2VJW11cbiAgICApOiBTbGlDMkltZ1R4dExWMlNsaWRlW10ge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlyc3QgPSBpdGVtc1swXSBhcyBCYWJ5bG9uSXRlbUkgJiBCYWJ5bG9uSW1hZ2VJO1xuICAgICAgICBpZiAoKGZpcnN0IGFzIEJhYnlsb25JdGVtSSk/Lm11bHRpbWVkaWE/LmltYWdlbmVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiAoaXRlbXMgYXMgQmFieWxvbkl0ZW1JW10pLmZsYXRNYXAoKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgdGhpcy5tYXBNdWx0aW1lZGlhVG9TbGlkZXMoaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubWFwTXVsdGltZWRpYVRvU2xpZGVzKGl0ZW1zIGFzIEJhYnlsb25JbWFnZUlbXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNvbHZlSW1hZ2VTcmMoaW1hZ2U6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJhd1NyYyA9XG4gICAgICAgICAgICBpbWFnZT8uaW1nPy5zcmMgPz9cbiAgICAgICAgICAgIGltYWdlPy5zcmMgPz9cbiAgICAgICAgICAgIGltYWdlPy5wYXRoPy53ZWJwID8/XG4gICAgICAgICAgICBpbWFnZT8ucGF0aD8ub3JpZ2luYWwgPz9cbiAgICAgICAgICAgIGltYWdlPy50aHVtYm5haWxzPy5bMTM2Nl0/LndlYnAgPz9cbiAgICAgICAgICAgIGltYWdlPy50aHVtYm5haWxzPy5bMTI4MF0/LndlYnAgPz9cbiAgICAgICAgICAgIGltYWdlPy50aHVtYm5haWxzPy5bMTAyNF0/LndlYnAgPz9cbiAgICAgICAgICAgICcnO1xuXG4gICAgICAgIGlmICghcmF3U3JjIHx8IHR5cGVvZiByYXdTcmMgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICByYXdTcmMuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8XG4gICAgICAgICAgICByYXdTcmMuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSB8fFxuICAgICAgICAgICAgcmF3U3JjLnN0YXJ0c1dpdGgoJy8vJykgfHxcbiAgICAgICAgICAgIHJhd1NyYy5zdGFydHNXaXRoKCdkYXRhOicpIHx8XG4gICAgICAgICAgICByYXdTcmMuc3RhcnRzV2l0aCgnYmxvYjonKSB8fFxuICAgICAgICAgICAgcmF3U3JjLnN0YXJ0c1dpdGgoJy8nKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiByYXdTcmM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYC8ke3Jhd1NyY31gO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQWN0aXZlVGV4dHMoYWN0aXZlSW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2xpZGVzID0gdGhpcy5zbGlkZXM7XG4gICAgICAgIGlmIChzbGlkZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRleHRzID0gdGhpcy50ZXh0cztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZGV4ID1cbiAgICAgICAgICAgIHR5cGVvZiBhY3RpdmVJbmRleCA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICA/IGFjdGl2ZUluZGV4XG4gICAgICAgICAgICAgICAgOiBNYXRoLm1heChcbiAgICAgICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWluKHRoaXMuY3VycmVudFNsaWRlIC0gMSwgc2xpZGVzLmxlbmd0aCAtIDEpXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICBjb25zdCBzbGlkZVRleHRzID0gc2xpZGVzW2luZGV4XT8udGV4dHM7XG4gICAgICAgIHRoaXMuYWN0aXZlVGV4dHMgPSB0aGlzLmhhc0FueVRleHQoc2xpZGVUZXh0cylcbiAgICAgICAgICAgID8gc2xpZGVUZXh0c1xuICAgICAgICAgICAgOiB0aGlzLnRleHRzO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzQW55VGV4dCh0ZXh0cz86IEJhYnlsb25UZXh0SW5mb0kpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0ZXh0cykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgICAgICB0ZXh0cy5wcmV0aXRsZSB8fFxuICAgICAgICAgICAgICAgIHRleHRzLnN1YnRpdGxlIHx8XG4gICAgICAgICAgICAgICAgdGV4dHMudGl0bGUgfHxcbiAgICAgICAgICAgICAgICB0ZXh0cy5kZXNjcmlwdGlvbiB8fFxuICAgICAgICAgICAgICAgIHRleHRzLnRleHRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dHJhY3RUZXh0c0Zyb21JbWFnZShcbiAgICAgICAgaW1hZ2U6IEJhYnlsb25JbWFnZUlcbiAgICApOiBCYWJ5bG9uVGV4dEluZm9JIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgcHJldGl0bGUgPVxuICAgICAgICAgICAgaW1hZ2U/LnByZXRpdGxlID8/XG4gICAgICAgICAgICBpbWFnZT8ubmRQcmV0aXRsZSA/P1xuICAgICAgICAgICAgKGltYWdlIGFzIGFueSk/Lm5kX3ByZXRpdGxlID8/XG4gICAgICAgICAgICAnJztcbiAgICAgICAgY29uc3Qgc3VidGl0bGUgPVxuICAgICAgICAgICAgaW1hZ2U/LnN1YnRpdGxlID8/XG4gICAgICAgICAgICBpbWFnZT8ubmRTdWJ0aXRsZSA/P1xuICAgICAgICAgICAgKGltYWdlIGFzIGFueSk/Lm5kX3N1YnRpdGxlID8/XG4gICAgICAgICAgICAnJztcbiAgICAgICAgY29uc3QgdGl0bGUgPVxuICAgICAgICAgICAgaW1hZ2U/LnRpdGxlID8/IGltYWdlPy5uZFRpdGxlID8/IChpbWFnZSBhcyBhbnkpPy5uZF90aXRsZSA/PyAnJztcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBpbWFnZT8uZGVzY3JpcHRpb24gPz8gJyc7XG5cbiAgICAgICAgY29uc3QgdGV4dHM6IEJhYnlsb25UZXh0SW5mb0kgPSB7XG4gICAgICAgICAgICBzdWJ0aXRsZTogc3VidGl0bGUgfHwgcHJldGl0bGUgfHwgJycsXG4gICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmhhc0FueVRleHQodGV4dHMpID8gdGV4dHMgOiB1bmRlZmluZWQ7XG4gICAgfVxufVxuIiwiICA8c2VjdGlvbiBbYXR0ci5jbGFzc109XCJkYXRhLnNlY3Rpb25DbGFzc1wiICpuZ0lmPVwiaGFzVmFsaWRTbGlkZXNcIj5cbiAgICA8ZGl2IFthdHRyLmNsYXNzXT1cImRhdGEud3JhcHBlckNsYXNzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwid3JhcC1zZWN0aW9uLWdhbGxlcnkgZXN0aWxvdmFyaWFudGVcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2VjdGlvbi1nYWxsZXJ5LWNvbnRlbnQganMtYWN0aXZlLXNsaWRlclwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1zbGlkZXJfbmFtZV09XCJkYXRhLnNsaWRlcj8ubmFtZVwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1zbGlkZXJfc2hvd2J0bnNdPVwiZGF0YS5zbGlkZXI/LnNob3dCdXR0b25zXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXNsaWRlcl9idG5zXT1cImRhdGEuc2xpZGVyPy5idXR0b25zQ2xhc3NcIlxuICAgICAgICAgIFthdHRyLmRhdGEtc2xpZGVyX3Nob3dkb3RzXT1cImRhdGEuc2xpZGVyPy5zaG93RG90c1wiXG4gICAgICAgICAgW2F0dHIuZGF0YS1zbGlkZXJfZmFkZV09XCJkYXRhLnNsaWRlcj8uZmFkZVwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1zbGlkZXJfYXV0b3BsYXldPVwiZGF0YS5zbGlkZXI/LmF1dG9wbGF5XCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXNsaWRlc19wY109XCJkYXRhLnNsaWRlcj8uc2xpZGVzUGNcIlxuICAgICAgICAgIFthdHRyLmRhdGEtc2xpZGVzX2xhcHRvcF09XCJkYXRhLnNsaWRlcj8uc2xpZGVzTGFwdG9wXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXNsaWRlc190YWJsZXRdPVwiZGF0YS5zbGlkZXI/LnNsaWRlc1RhYmxldFwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1zbGlkZXNfbW9iaWxlXT1cImRhdGEuc2xpZGVyPy5zbGlkZXNNb2JpbGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtZ2FsbGVyeS1jb250ZW50XCIgKm5nSWY9XCJzbGlkZXM/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdhbGxlcnktY29udGVudC1lbGVtZW50XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnYWxsZXJ5LWNvbnRlbnQtbXVsdGltZWRpYVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLWNvbnRlbnQtbXVsdGltZWRpYVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tc2xpZGVyLWNvdW50ZXIgY291bnRlclwiICpuZ0lmPVwidG90YWxTbGlkZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyLW51bSBhY3R1YWxcIj57eyBmb3JtYXRDb3VudGVyKGN1cnJlbnRTbGlkZSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlci1udW0gdG90YWxcIj57eyBmb3JtYXRDb3VudGVyKHRvdGFsU2xpZGVzKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tc2xpZGVyLWFycm93cyBqcy1zbGlkZXItYXJyb3dzXCIgKm5nSWY9XCJzbGlkZXMubGVuZ3RoID4gMSAmJiBkYXRhLnNsaWRlcj8uc2hvd0J1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbXBsZXgtaW5mby1tZWRpYV9jb3VudGVyIGNvdW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXItbnVtIGFjdHVhbFwiPnt7IGZvcm1hdENvdW50ZXIoY3VycmVudFNsaWRlKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXItbnVtIHRvdGFsXCI+e3sgZm9ybWF0Q291bnRlcih0b3RhbFNsaWRlcykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzd2lwZXItYnRuIHN3aXBlci1hcnJvdyBzd2lwZXItYnV0dG9uLXByZXZcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGEuc2xpZGVyPy5idXR0b25zQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJBbnRlcmlvclwiXG4gICAgICAgICAgICAgICAgICAgICAgI3NsaWRlclByZXZcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzd2lwZXItYnRuIHN3aXBlci1hcnJvdyBzd2lwZXItYnV0dG9uLW5leHRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGEuc2xpZGVyPy5idXR0b25zQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTaWd1aWVudGVcIlxuICAgICAgICAgICAgICAgICAgICAgICNzbGlkZXJOZXh0XG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbXVsdGltZWRpYS1waG90b3MganMtc2VjdGlvbi1zbGlkZXIgc3dpcGVyXCIgI3NlY3Rpb25TbGlkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzd2lwZXItd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHNsaWRlIG9mIHNsaWRlczsgdHJhY2sgdHJhY2tTbGlkZSgkaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXVsdGltZWRpYS1waG90b3MtZWxlbWVudCBzd2lwZXItc2xpZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtcGhvdG9zLWVsZW1lbnQganMtc2VjdGlvbi1hcnJvd3Mtem9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWd1cmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNpbWFnZVJlZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwaG90b3MtZWxlbWVudC1pbWcgcmVzcG9uc2l2ZS1yZXNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNsaWRlLmFyaWFMYWJlbCB8fCBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtZmlsZW5hbWVdPVwic2xpZGUuZGF0YUZpbGVuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtc3JjXT1cInNsaWRlLmRhdGFMYXp5aW1nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kSW1hZ2VdPVwiKHNsaWRlPy5kYXRhTGF6eWltZyB8fCBzbGlkZT8uYmFja2dyb3VuZEltYWdlKSA/ICd1cmwoJyArIChzbGlkZS5kYXRhTGF6eWltZyB8fCBzbGlkZS5iYWNrZ3JvdW5kSW1hZ2UpICsgJyknIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmlndXJlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc2xpZGVzLmxlbmd0aCA+IDEgJiYgZGF0YS5zbGlkZXI/LnNob3dEb3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN3aXBlci1wYWdpbmF0aW9uXCIgI3NsaWRlclBhZ2luYXRpb24+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdhbGxlcnktY29udGVudC1pbmZvXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtY29udGVudC1pbmZvXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1pbmZvLWJveFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcC1pbmZvLWJveFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgI2hlYWRlclJlZj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYWN0aXZlVGV4dHM/LnN1YnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiaW5mby1ib3gtc3VidGl0bGVcIj57eyBhY3RpdmVUZXh0cz8uc3VidGl0bGUgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGl2ZVRleHRzPy50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJpbmZvLWJveC10aXRsZVwiPnt7IGFjdGl2ZVRleHRzPy50aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChhY3RpdmVUZXh0cz8uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAjdGV4dENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbmZvLWJveC10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50ZXh0LWNvbGxhcHNlXT1cInRleHRPdmVyZmxvd3MgJiYgY29sbGFwc2VkTGlua3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLm1heC1oZWlnaHQucHhdPVwidGV4dE92ZXJmbG93cyAmJiBjb2xsYXBzZWRMaW5rcyA/IHRleHRDb2xsYXBzZWRIZWlnaHQgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFjdGl2ZVRleHRzPy5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKHRleHRPdmVyZmxvd3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiaW5mby1ib3gtdG9nZ2xlXCIgKGNsaWNrKT1cInRvZ2dsZVRleHQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgY29sbGFwc2VkTGlua3MgPyBhY3RpdmVTbGlkZUxpbmtMYWJlbCA6ICdPY3VsdGFyJyB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChhY3RpdmVCdXR0b24/LnVybCAmJiBhY3RpdmVCdXR0b24/LmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLWJ1dHRvbkRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm5vLW1hcmdpbl09XCJ0ZXh0T3ZlcmZsb3dzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImFjdGl2ZUJ1dHRvbj8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJhY3RpdmVCdXR0b24/LmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRhcmdldF09XCJhY3RpdmVCdXR0b24/LnRhcmdldCB8fCAnX3NlbGYnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aXZlQnV0dG9uPy50YXJnZXQgfHwgJ19zZWxmJykgPT09ICdfYmxhbmsnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ25vb3BlbmVyIG5vcmVmZXJyZXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWN0aXZlQnV0dG9uPy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFjdGl2ZUJ1dHRvbj8ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG5cbiJdfQ==
|
|
441
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpLWMyLWltZy10eHQtbC12Mi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL3NsaS1jMi1pbWctdHh0LWwtdjIvc2xpLWMyLWltZy10eHQtbC12Mi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL3NsaS1jMi1pbWctdHh0LWwtdjIvc2xpLWMyLWltZy10eHQtbC12Mi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUdILFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUtMLFdBQVcsRUFHWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQzs7O0FBYTdILE1BQU0sV0FBVyxHQUEwQjtJQUN2QyxZQUFZLEVBQUUseUNBQXlDO0lBQ3ZELFlBQVksRUFBRSxhQUFhO0lBQzNCLE1BQU0sRUFBRTtRQUNKLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLElBQUk7UUFDakIsWUFBWSxFQUFFLGtCQUFrQjtRQUNoQyxRQUFRLEVBQUUsS0FBSztRQUNmLElBQUksRUFBRSxJQUFJO1FBQ1YsUUFBUSxFQUFF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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgU3dpcGVyLCB7IEF1dG9wbGF5LCBFZmZlY3RGYWRlLCBOYXZpZ2F0aW9uLCBQYWdpbmF0aW9uIH0gZnJvbSAnc3dpcGVyJztcbmltcG9ydCB7IEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGluay10eXBlL2xpbmstdHlwZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFieWxvblN3aXBlckNzc0xvYWRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMvYmFieWxvbi1zbGlkZXJzL2JhYnlsb24tc3dpcGVyLWNzcy1sb2FkZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gIEJhYnlsb25CdXR0b25JLFxuICAgIEJhYnlsb25JbWFnZUksXG4gICAgQmFieWxvbkl0ZW1JLFxuICAgIEJhYnlsb25NdWx0aW1lZGlhSSxcbiAgICBCYWJ5bG9uVGV4dEluZm9JLFxufSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gICAgU2xpQzJJbWdUeHRMVjJDb250ZW50LFxuICAgIFNsaUMySW1nVHh0TFYyU2xpZGUsXG59IGZyb20gJy4vc2xpLWMyLWltZy10eHQtbC12Mi5pbnRlcmZhY2VzJztcblxuY29uc3QgZGVmYXVsdERhdGE6IFNsaUMySW1nVHh0TFYyQ29udGVudCA9IHtcbiAgICBzZWN0aW9uQ2xhc3M6ICdzZWN0aW9uLWdhbGxlcnkgaW5mby1sZWZ0IG1vZHVsZS1zcGFjZXInLFxuICAgIHdyYXBwZXJDbGFzczogJ2JpZy13cmFwcGVyJyxcbiAgICBzbGlkZXI6IHtcbiAgICAgICAgbmFtZTogJ2pzLXNlY3Rpb24tc2xpZGVyJyxcbiAgICAgICAgc2hvd0J1dHRvbnM6IHRydWUsXG4gICAgICAgIGJ1dHRvbnNDbGFzczogJ2J0bi1zbGlkZS1jaXJjbGUnLFxuICAgICAgICBzaG93RG90czogZmFsc2UsXG4gICAgICAgIGZhZGU6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5OiB0cnVlLFxuICAgICAgICBzbGlkZXNQYzogMSxcbiAgICAgICAgc2xpZGVzTGFwdG9wOiAxLFxuICAgICAgICBzbGlkZXNUYWJsZXQ6IDEsXG4gICAgICAgIHNsaWRlc01vYmlsZTogMSxcbiAgICB9LFxuICAgIG1lZGlhOiB7XG4gICAgICAgIHNsaWRlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmRJbWFnZTogJycsXG4gICAgICAgICAgICAgICAgZGF0YUxhenlpbWc6ICcnLFxuICAgICAgICAgICAgICAgIGFyaWFMYWJlbDogJycsXG4gICAgICAgICAgICAgICAgZGF0YUZpbGVuYW1lOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgfSxcbiAgICBpbmZvOiB7XG4gICAgICAgIHN1YnRpdGxlOiAnJyxcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICB0ZXh0OiAnJyxcbiAgICB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzbGktYzItaW1nLXR4dC1sLXYyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBCYWJ5bG9uU3dpcGVyQ3NzTG9hZGVyRGlyZWN0aXZlLFxuICAgICAgICBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2xpLWMyLWltZy10eHQtbC12Mi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3NsaS1jMi1pbWctdHh0LWwtdjIuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlDMkltZ1R4dExWMkNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveVxue1xuICAgIHByaXZhdGUgX2RhdGE6IFNsaUMySW1nVHh0TFYyQ29udGVudCA9IGRlZmF1bHREYXRhO1xuICAgIHByaXZhdGUgc2xpZGVySW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIHZpZXdJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgc3dpcGVySW5zdGFuY2U/OiBTd2lwZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyPzogUmVzaXplT2JzZXJ2ZXI7XG4gICAgcHJpdmF0ZSBvdmVyZmxvd0NoZWNrU2NoZWR1bGVkID0gZmFsc2U7XG4gICAgY3VycmVudFNsaWRlID0gMTtcbiAgICB0b3RhbFNsaWRlcyA9IHRoaXMuX2RhdGEubWVkaWEuc2xpZGVzLmxlbmd0aDtcbiAgICBhY3RpdmVUZXh0cz86IEJhYnlsb25UZXh0SW5mb0k7XG4gICAgY29sbGFwc2VkTGlua3MgPSB0cnVlO1xuICAgIHRleHRDb2xsYXBzZWRIZWlnaHQgPSAwO1xuICAgIHRleHRPdmVyZmxvd3MgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHRleHRzPzogQmFieWxvblRleHRJbmZvSTtcbiAgICBASW5wdXQoKSBpdGVtcz86IEJhYnlsb25JdGVtSVtdO1xuICAgIEBJbnB1dCgpIG11bHRpbWVkaWE/OiBCYWJ5bG9uTXVsdGltZWRpYUk7XG4gICAgQElucHV0KCkgYnV0dG9ucz86IEJhYnlsb25CdXR0b25JW107XG5cbiAgICBAVmlld0NoaWxkKCdzZWN0aW9uU2xpZGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgc2VjdGlvblNsaWRlcj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ3NsaWRlclByZXYnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBzbGlkZXJQcmV2PzogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnc2xpZGVyTmV4dCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHNsaWRlck5leHQ/OiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdzbGlkZXJQYWdpbmF0aW9uJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgc2xpZGVyUGFnaW5hdGlvbj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2ltYWdlUmVmJylcbiAgICBpbWFnZVJlZnM/OiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuICAgIEBWaWV3Q2hpbGQoJ3RleHRDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICB0ZXh0Q29udGFpbmVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnaGVhZGVyUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgaGVhZGVyUmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgZGF0YSh2YWx1ZTogU2xpQzJJbWdUeHRMVjJDb250ZW50KSB7XG4gICAgICAgIHRoaXMuX2RhdGEgPSB2YWx1ZSA/PyBkZWZhdWx0RGF0YTtcbiAgICAgICAgdGhpcy5zeW5jU2xpZGVzU3RhdGUoKTtcbiAgICAgICAgaWYgKHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveVNsaWRlcigpO1xuICAgICAgICAgICAgdGhpcy5pbml0U2xpZGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaGFzVmFsaWRTbGlkZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHRoaXMuc2xpZGVzKSAmJlxuICAgICAgICAgICAgdGhpcy5zbGlkZXMuc29tZShcbiAgICAgICAgICAgICAgICAoc2xpZGUpID0+ICEhKHNsaWRlPy5kYXRhTGF6eWltZyB8fCBzbGlkZT8uYmFja2dyb3VuZEltYWdlKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBkYXRhKCk6IFNsaUMySW1nVHh0TFYyQ29udGVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICAgIH1cblxuICAgIGdldCBzbGlkZXMoKTogU2xpQzJJbWdUeHRMVjJTbGlkZVtdIHtcbiAgICAgICAgY29uc3QgbXVsdGltZWRpYVNsaWRlcyA9IHRoaXMubWFwTXVsdGltZWRpYVRvU2xpZGVzKFxuICAgICAgICAgICAgdGhpcy5tdWx0aW1lZGlhPy5pbWFnZW5lc1xuICAgICAgICApO1xuICAgICAgICBpZiAobXVsdGltZWRpYVNsaWRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbXVsdGltZWRpYVNsaWRlcztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW1TbGlkZXMgPSB0aGlzLm1hcEl0ZW1zVG9TbGlkZXModGhpcy5pdGVtcyk7XG4gICAgICAgIGlmIChpdGVtU2xpZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtU2xpZGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5tZWRpYS5zbGlkZXMgPz8gW107XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3luY1NsaWRlc1N0YXRlKCk7XG4gICAgICAgIHRoaXMudXBkYXRlQWN0aXZlVGV4dHMoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlld0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zeW5jU2xpZGVzU3RhdGUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVUZXh0cygpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuY2hlY2tPdmVyZmxvdygpO1xuICAgICAgICB0aGlzLmluaXRTbGlkZXIoKTtcblxuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudEluZm8gPSB0aGlzLnRleHRDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICAgICA/LmNsb3Nlc3QoJy53cmFwLWNvbnRlbnQtaW5mbycpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnRJbmZvKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPdmVyZmxvd0NoZWNrKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKGNvbnRlbnRJbmZvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2hvdWxkUmVmcmVzaCA9XG4gICAgICAgICAgICAhIWNoYW5nZXNbJ211bHRpbWVkaWEnXSB8fCAhIWNoYW5nZXNbJ2l0ZW1zJ10gfHwgISFjaGFuZ2VzWydkYXRhJ107XG4gICAgICAgIGlmICghc2hvdWxkUmVmcmVzaCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zeW5jU2xpZGVzU3RhdGUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVUZXh0cygpO1xuXG4gICAgICAgIGlmICh0aGlzLnZpZXdJbml0aWFsaXplZCAmJiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3lTbGlkZXIoKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdFNsaWRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveVNsaWRlcigpO1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgfVxuXG4gICAgdHJhY2tTbGlkZShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIGZvcm1hdENvdW50ZXIodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA8IDEwID8gYDAke3ZhbHVlfWAgOiBgJHt2YWx1ZX1gO1xuICAgIH1cblxuICAgIHRvZ2dsZVRleHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkTGlua3MgPSAhdGhpcy5jb2xsYXBzZWRMaW5rcztcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlU2xpZGVMaW5rTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc2xpZGVzID0gdGhpcy5zbGlkZXM7XG4gICAgICAgIGlmICghc2xpZGVzLmxlbmd0aCkgcmV0dXJuICdWZXIgbcOhcyc7XG4gICAgICAgIGNvbnN0IGlkeCA9IE1hdGgubWluKHRoaXMuY3VycmVudFNsaWRlIC0gMSwgc2xpZGVzLmxlbmd0aCAtIDEpO1xuICAgICAgICBjb25zdCBsaW5rID0gc2xpZGVzW2lkeF0/LmxpbmtzPy5bMF07XG4gICAgICAgIHJldHVybiBsaW5rPy5sYWJlbCB8fCBsaW5rPy5uYW1lIHx8ICdWZXIgbcOhcyc7XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZUJ1dHRvbigpOiBCYWJ5bG9uQnV0dG9uSSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLmJ1dHRvbnM/Lmxlbmd0aCAmJiB0aGlzLmJ1dHRvbnNbMF0/LnVybCkgcmV0dXJuIHRoaXMuYnV0dG9uc1swXTtcbiAgICAgICAgY29uc3Qgc2xpZGVzID0gdGhpcy5zbGlkZXM7XG4gICAgICAgIGlmICghc2xpZGVzLmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgaWR4ID0gTWF0aC5taW4odGhpcy5jdXJyZW50U2xpZGUgLSAxLCBzbGlkZXMubGVuZ3RoIC0gMSk7XG4gICAgICAgIHJldHVybiBzbGlkZXNbaWR4XT8uYnV0dG9ucz8uWzBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2NoZWR1bGVPdmVyZmxvd0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5vdmVyZmxvd0NoZWNrU2NoZWR1bGVkKSByZXR1cm47XG4gICAgICAgIHRoaXMub3ZlcmZsb3dDaGVja1NjaGVkdWxlZCA9IHRydWU7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm92ZXJmbG93Q2hlY2tTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tPdmVyZmxvdygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrT3ZlcmZsb3coKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGltYWdlcyA9IHRoaXMuaW1hZ2VSZWZzPy50b0FycmF5KCk7XG4gICAgICAgIGNvbnN0IHRleHRFbCA9IHRoaXMudGV4dENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgaGVhZGVyRWwgPSB0aGlzLmhlYWRlclJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKCFpbWFnZXM/Lmxlbmd0aCB8fCAhdGV4dEVsIHx8ICFoZWFkZXJFbCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGlkeCA9IE1hdGgubWluKHRoaXMuY3VycmVudFNsaWRlIC0gMSwgaW1hZ2VzLmxlbmd0aCAtIDEpO1xuICAgICAgICBjb25zdCBpbWFnZUVsID0gaW1hZ2VzW2lkeF0/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmICghaW1hZ2VFbCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGltYWdlSGVpZ2h0ID0gaW1hZ2VFbC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGhlYWRlckhlaWdodCA9IGhlYWRlckVsLm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgZGVzY0hlaWdodCA9IHRleHRFbC5zY3JvbGxIZWlnaHQ7XG4gICAgICAgIGNvbnN0IHRvdGFsQXZhaWxhYmxlID0gKGltYWdlSGVpZ2h0IC0gaGVhZGVySGVpZ2h0KSAqIDAuOTA7XG4gICAgICAgIGNvbnN0IFRPR0dMRV9IRUlHSFQgPSA2NTtcbiAgICAgICAgY29uc3QgQ1RBX0hFSUdIVCA9IDEyMDtcbiAgICAgICAgY29uc3QgaGFzQ1RBID0gISF0aGlzLmFjdGl2ZUJ1dHRvbjtcblxuICAgICAgICBjb25zdCBvdmVyZmxvd1RocmVzaG9sZCA9IHRvdGFsQXZhaWxhYmxlIC0gKGhhc0NUQSA/IENUQV9IRUlHSFQgOiAwKTtcbiAgICAgICAgY29uc3QgYXZhaWxhYmxlRm9yVGV4dCA9IHRvdGFsQXZhaWxhYmxlIC0gVE9HR0xFX0hFSUdIVCAtIChoYXNDVEEgPyBDVEFfSEVJR0hUIDogMCk7XG5cbiAgICAgICAgY29uc3QgTUlOX1RFWFRfSEVJR0hUID0gNjA7XG5cbiAgICAgICAgdGhpcy50ZXh0Q29sbGFwc2VkSGVpZ2h0ID0gTWF0aC5tYXgoYXZhaWxhYmxlRm9yVGV4dCwgTUlOX1RFWFRfSEVJR0hUKTtcbiAgICAgICAgdGhpcy50ZXh0T3ZlcmZsb3dzID0gZGVzY0hlaWdodCA+IG92ZXJmbG93VGhyZXNob2xkO1xuICAgICAgICBpZiAoIXRoaXMudGV4dE92ZXJmbG93cykge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZWRMaW5rcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kSW1hZ2Uoc2xpZGU6IFNsaUMySW1nVHh0TFYyU2xpZGUpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBpbWFnZVVybCA9IHNsaWRlLmRhdGFMYXp5aW1nIHx8IHNsaWRlLmJhY2tncm91bmRJbWFnZTtcbiAgICAgICAgcmV0dXJuIGB1cmwoJHtpbWFnZVVybH0pYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTbGlkZXIoKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHxcbiAgICAgICAgICAgIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8XG4gICAgICAgICAgICAhdGhpcy5zZWN0aW9uU2xpZGVyXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHwgIXRoaXMuc2VjdGlvblNsaWRlcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2xpZGVzID0gdGhpcy5zbGlkZXM7XG4gICAgICAgICAgICBpZiAoc2xpZGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZG9tU2xpZGVzID1cbiAgICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25TbGlkZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICAgICAgICAnLnN3aXBlci1zbGlkZSdcbiAgICAgICAgICAgICAgICApLmxlbmd0aDtcbiAgICAgICAgICAgIGlmIChkb21TbGlkZXMgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNsaWRlckNvbmZpZyA9IHRoaXMuZGF0YS5zbGlkZXI7XG4gICAgICAgICAgICBjb25zdCBtYXhTbGlkZXNQZXJWaWV3ID0gTWF0aC5tYXgoXG4gICAgICAgICAgICAgICAgc2xpZGVyQ29uZmlnLnNsaWRlc1BjLFxuICAgICAgICAgICAgICAgIHNsaWRlckNvbmZpZy5zbGlkZXNMYXB0b3AsXG4gICAgICAgICAgICAgICAgc2xpZGVyQ29uZmlnLnNsaWRlc1RhYmxldCxcbiAgICAgICAgICAgICAgICBzbGlkZXJDb25maWcuc2xpZGVzTW9iaWxlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzTXVsdGlwbGVTbGlkZXMgPSBzbGlkZXMubGVuZ3RoID4gMTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZExvb3AgPVxuICAgICAgICAgICAgICAgIGhhc011bHRpcGxlU2xpZGVzICYmIHNsaWRlcy5sZW5ndGggPiBtYXhTbGlkZXNQZXJWaWV3O1xuICAgICAgICAgICAgY29uc3QgaGFzTmF2aWdhdGlvbiA9XG4gICAgICAgICAgICAgICAgaGFzTXVsdGlwbGVTbGlkZXMgJiZcbiAgICAgICAgICAgICAgICBzbGlkZXJDb25maWcuc2hvd0J1dHRvbnMgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNsaWRlclByZXYgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNsaWRlck5leHQ7XG4gICAgICAgICAgICBjb25zdCBoYXNQYWdpbmF0aW9uID1cbiAgICAgICAgICAgICAgICBoYXNNdWx0aXBsZVNsaWRlcyAmJlxuICAgICAgICAgICAgICAgIHNsaWRlckNvbmZpZy5zaG93RG90cyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVyUGFnaW5hdGlvbjtcblxuICAgICAgICAgICAgdGhpcy50b3RhbFNsaWRlcyA9IHNsaWRlcy5sZW5ndGg7XG5cbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN3aXBlckluc3RhbmNlID0gbmV3IFN3aXBlcihcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWN0aW9uU2xpZGVyIS5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVzOiBbTmF2aWdhdGlvbiwgUGFnaW5hdGlvbiwgQXV0b3BsYXksIEVmZmVjdEZhZGVdLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogc2xpZGVyQ29uZmlnLnNsaWRlc01vYmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1Blckdyb3VwOiBzbGlkZXJDb25maWcuc2xpZGVzTW9iaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3BlZWQ6IDMwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvb3A6IHNob3VsZExvb3AsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvSGVpZ2h0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWZmZWN0OiAnc2xpZGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFkZUVmZmVjdDogc2xpZGVyQ29uZmlnLmZhZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY3Jvc3NGYWRlOiB0cnVlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiBzbGlkZXJDb25maWcuYXV0b3BsYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxheTogMzAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlT25JbnRlcmFjdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IGhhc05hdmlnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0RWw6IHRoaXMuc2xpZGVyTmV4dCEubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2RWw6IHRoaXMuc2xpZGVyUHJldiEubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogaGFzUGFnaW5hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsOiB0aGlzLnNsaWRlclBhZ2luYXRpb24hLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc2ODoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiBzbGlkZXJDb25maWcuc2xpZGVzVGFibGV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJHcm91cDogc2xpZGVyQ29uZmlnLnNsaWRlc1RhYmxldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyODA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogc2xpZGVyQ29uZmlnLnNsaWRlc0xhcHRvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyR3JvdXA6IHNsaWRlckNvbmZpZy5zbGlkZXNMYXB0b3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNjgwOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IHNsaWRlckNvbmZpZy5zbGlkZXNQYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyR3JvdXA6IHNsaWRlckNvbmZpZy5zbGlkZXNQYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdDogKHN3aXBlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3RhbFNsaWRlcyA9IHRoaXMuc2xpZGVzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gc3dpcGVyPy5yZWFsSW5kZXggPz8gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNsaWRlID0gYWN0aXZlSW5kZXggKyAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVUZXh0cyhhY3RpdmVJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrT3ZlcmZsb3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja092ZXJmbG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZUNoYW5nZTogKHN3aXBlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSBzd2lwZXI/LnJlYWxJbmRleCA/PyAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2xpZGUgPSBhY3RpdmVJbmRleCArIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVRleHRzKGFjdGl2ZUluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tPdmVyZmxvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2l6ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU92ZXJmbG93Q2hlY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveVNsaWRlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNsaWRlckluaXRpYWxpemVkIHx8ICF0aGlzLnN3aXBlckluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN3aXBlckluc3RhbmNlLmRlc3Ryb3kodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc3dpcGVySW5zdGFuY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN5bmNTbGlkZXNTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b3RhbFNsaWRlcyA9IHRoaXMuc2xpZGVzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5jdXJyZW50U2xpZGUgPSBNYXRoLm1pbih0aGlzLmN1cnJlbnRTbGlkZSwgdGhpcy50b3RhbFNsaWRlcykgfHwgMTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcE11bHRpbWVkaWFUb1NsaWRlcyhcbiAgICAgICAgaW1hZ2VzPzogQmFieWxvbkltYWdlSVtdXG4gICAgKTogU2xpQzJJbWdUeHRMVjJTbGlkZVtdIHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGltYWdlcykpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbWFnZXMucmVkdWNlPFNsaUMySW1nVHh0TFYyU2xpZGVbXT4oKGFjYywgaW1hZ2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNyYyA9IHRoaXMucmVzb2x2ZUltYWdlU3JjKGltYWdlKTtcbiAgICAgICAgICAgIGNvbnN0IGFsdCA9IGltYWdlPy5pbWc/LmFsdCA/PyBpbWFnZT8uYWx0ID8/ICcnO1xuICAgICAgICAgICAgaWYgKCFzcmMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBzcmMsXG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsOiBhbHQsXG4gICAgICAgICAgICAgICAgZGF0YUZpbGVuYW1lOiBhbHQsXG4gICAgICAgICAgICAgICAgZGF0YUxhenlpbWc6IHNyYyxcbiAgICAgICAgICAgICAgICB0ZXh0czogdGhpcy5leHRyYWN0VGV4dHNGcm9tSW1hZ2UoaW1hZ2UpLFxuICAgICAgICAgICAgICAgIGxpbmtzOiBpbWFnZS5saW5rcyxcbiAgICAgICAgICAgICAgICBidXR0b25zOiBpbWFnZS5idXR0b25zXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIFtdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcEl0ZW1zVG9TbGlkZXMoXG4gICAgICAgIGl0ZW1zPzogQmFieWxvbkl0ZW1JW10gfCBCYWJ5bG9uSW1hZ2VJW11cbiAgICApOiBTbGlDMkltZ1R4dExWMlNsaWRlW10ge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlyc3QgPSBpdGVtc1swXSBhcyBCYWJ5bG9uSXRlbUkgJiBCYWJ5bG9uSW1hZ2VJO1xuICAgICAgICBpZiAoKGZpcnN0IGFzIEJhYnlsb25JdGVtSSk/Lm11bHRpbWVkaWE/LmltYWdlbmVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiAoaXRlbXMgYXMgQmFieWxvbkl0ZW1JW10pLmZsYXRNYXAoKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgdGhpcy5tYXBNdWx0aW1lZGlhVG9TbGlkZXMoaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubWFwTXVsdGltZWRpYVRvU2xpZGVzKGl0ZW1zIGFzIEJhYnlsb25JbWFnZUlbXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNvbHZlSW1hZ2VTcmMoaW1hZ2U6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJhd1NyYyA9XG4gICAgICAgICAgICBpbWFnZT8uaW1nPy5zcmMgPz9cbiAgICAgICAgICAgIGltYWdlPy5zcmMgPz9cbiAgICAgICAgICAgIGltYWdlPy5wYXRoPy53ZWJwID8/XG4gICAgICAgICAgICBpbWFnZT8ucGF0aD8ub3JpZ2luYWwgPz9cbiAgICAgICAgICAgIGltYWdlPy50aHVtYm5haWxzPy5bMTM2Nl0/LndlYnAgPz9cbiAgICAgICAgICAgIGltYWdlPy50aHVtYm5haWxzPy5bMTI4MF0/LndlYnAgPz9cbiAgICAgICAgICAgIGltYWdlPy50aHVtYm5haWxzPy5bMTAyNF0/LndlYnAgPz9cbiAgICAgICAgICAgICcnO1xuXG4gICAgICAgIGlmICghcmF3U3JjIHx8IHR5cGVvZiByYXdTcmMgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICByYXdTcmMuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8XG4gICAgICAgICAgICByYXdTcmMuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSB8fFxuICAgICAgICAgICAgcmF3U3JjLnN0YXJ0c1dpdGgoJy8vJykgfHxcbiAgICAgICAgICAgIHJhd1NyYy5zdGFydHNXaXRoKCdkYXRhOicpIHx8XG4gICAgICAgICAgICByYXdTcmMuc3RhcnRzV2l0aCgnYmxvYjonKSB8fFxuICAgICAgICAgICAgcmF3U3JjLnN0YXJ0c1dpdGgoJy8nKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiByYXdTcmM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYC8ke3Jhd1NyY31gO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQWN0aXZlVGV4dHMoYWN0aXZlSW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2xpZGVzID0gdGhpcy5zbGlkZXM7XG4gICAgICAgIGlmIChzbGlkZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRleHRzID0gdGhpcy50ZXh0cztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZGV4ID1cbiAgICAgICAgICAgIHR5cGVvZiBhY3RpdmVJbmRleCA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICA/IGFjdGl2ZUluZGV4XG4gICAgICAgICAgICAgICAgOiBNYXRoLm1heChcbiAgICAgICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWluKHRoaXMuY3VycmVudFNsaWRlIC0gMSwgc2xpZGVzLmxlbmd0aCAtIDEpXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICBjb25zdCBzbGlkZVRleHRzID0gc2xpZGVzW2luZGV4XT8udGV4dHM7XG4gICAgICAgIHRoaXMuYWN0aXZlVGV4dHMgPSB0aGlzLmhhc0FueVRleHQoc2xpZGVUZXh0cylcbiAgICAgICAgICAgID8gc2xpZGVUZXh0c1xuICAgICAgICAgICAgOiB0aGlzLnRleHRzO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzQW55VGV4dCh0ZXh0cz86IEJhYnlsb25UZXh0SW5mb0kpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0ZXh0cykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgICAgICB0ZXh0cy5wcmV0aXRsZSB8fFxuICAgICAgICAgICAgICAgIHRleHRzLnN1YnRpdGxlIHx8XG4gICAgICAgICAgICAgICAgdGV4dHMudGl0bGUgfHxcbiAgICAgICAgICAgICAgICB0ZXh0cy5kZXNjcmlwdGlvbiB8fFxuICAgICAgICAgICAgICAgIHRleHRzLnRleHRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dHJhY3RUZXh0c0Zyb21JbWFnZShcbiAgICAgICAgaW1hZ2U6IEJhYnlsb25JbWFnZUlcbiAgICApOiBCYWJ5bG9uVGV4dEluZm9JIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgcHJldGl0bGUgPVxuICAgICAgICAgICAgaW1hZ2U/LnByZXRpdGxlID8/XG4gICAgICAgICAgICBpbWFnZT8ubmRQcmV0aXRsZSA/P1xuICAgICAgICAgICAgKGltYWdlIGFzIGFueSk/Lm5kX3ByZXRpdGxlID8/XG4gICAgICAgICAgICAnJztcbiAgICAgICAgY29uc3Qgc3VidGl0bGUgPVxuICAgICAgICAgICAgaW1hZ2U/LnN1YnRpdGxlID8/XG4gICAgICAgICAgICBpbWFnZT8ubmRTdWJ0aXRsZSA/P1xuICAgICAgICAgICAgKGltYWdlIGFzIGFueSk/Lm5kX3N1YnRpdGxlID8/XG4gICAgICAgICAgICAnJztcbiAgICAgICAgY29uc3QgdGl0bGUgPVxuICAgICAgICAgICAgaW1hZ2U/LnRpdGxlID8/IGltYWdlPy5uZFRpdGxlID8/IChpbWFnZSBhcyBhbnkpPy5uZF90aXRsZSA/PyAnJztcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBpbWFnZT8uZGVzY3JpcHRpb24gPz8gJyc7XG5cbiAgICAgICAgY29uc3QgdGV4dHM6IEJhYnlsb25UZXh0SW5mb0kgPSB7XG4gICAgICAgICAgICBzdWJ0aXRsZTogc3VidGl0bGUgfHwgcHJldGl0bGUgfHwgJycsXG4gICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmhhc0FueVRleHQodGV4dHMpID8gdGV4dHMgOiB1bmRlZmluZWQ7XG4gICAgfVxufVxuIiwiICA8c2VjdGlvbiBbYXR0ci5jbGFzc109XCJkYXRhLnNlY3Rpb25DbGFzc1wiICpuZ0lmPVwiaGFzVmFsaWRTbGlkZXNcIj5cbiAgICA8ZGl2IFthdHRyLmNsYXNzXT1cImRhdGEud3JhcHBlckNsYXNzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwid3JhcC1zZWN0aW9uLWdhbGxlcnkgZXN0aWxvdmFyaWFudGVcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2VjdGlvbi1nYWxsZXJ5LWNvbnRlbnQganMtYWN0aXZlLXNsaWRlclwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1zbGlkZXJfbmFtZV09XCJkYXRhLnNsaWRlcj8ubmFtZVwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1zbGlkZXJfc2hvd2J0bnNdPVwiZGF0YS5zbGlkZXI/LnNob3dCdXR0b25zXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXNsaWRlcl9idG5zXT1cImRhdGEuc2xpZGVyPy5idXR0b25zQ2xhc3NcIlxuICAgICAgICAgIFthdHRyLmRhdGEtc2xpZGVyX3Nob3dkb3RzXT1cImRhdGEuc2xpZGVyPy5zaG93RG90c1wiXG4gICAgICAgICAgW2F0dHIuZGF0YS1zbGlkZXJfZmFkZV09XCJkYXRhLnNsaWRlcj8uZmFkZVwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1zbGlkZXJfYXV0b3BsYXldPVwiZGF0YS5zbGlkZXI/LmF1dG9wbGF5XCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXNsaWRlc19wY109XCJkYXRhLnNsaWRlcj8uc2xpZGVzUGNcIlxuICAgICAgICAgIFthdHRyLmRhdGEtc2xpZGVzX2xhcHRvcF09XCJkYXRhLnNsaWRlcj8uc2xpZGVzTGFwdG9wXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXNsaWRlc190YWJsZXRdPVwiZGF0YS5zbGlkZXI/LnNsaWRlc1RhYmxldFwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1zbGlkZXNfbW9iaWxlXT1cImRhdGEuc2xpZGVyPy5zbGlkZXNNb2JpbGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtZ2FsbGVyeS1jb250ZW50XCIgKm5nSWY9XCJzbGlkZXM/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdhbGxlcnktY29udGVudC1lbGVtZW50XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnYWxsZXJ5LWNvbnRlbnQtbXVsdGltZWRpYVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLWNvbnRlbnQtbXVsdGltZWRpYVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tc2xpZGVyLWNvdW50ZXIgY291bnRlclwiICpuZ0lmPVwidG90YWxTbGlkZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyLW51bSBhY3R1YWxcIj57eyBmb3JtYXRDb3VudGVyKGN1cnJlbnRTbGlkZSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlci1udW0gdG90YWxcIj57eyBmb3JtYXRDb3VudGVyKHRvdGFsU2xpZGVzKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tc2xpZGVyLWFycm93cyBqcy1zbGlkZXItYXJyb3dzXCIgKm5nSWY9XCJzbGlkZXMubGVuZ3RoID4gMSAmJiBkYXRhLnNsaWRlcj8uc2hvd0J1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbXBsZXgtaW5mby1tZWRpYV9jb3VudGVyIGNvdW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXItbnVtIGFjdHVhbFwiPnt7IGZvcm1hdENvdW50ZXIoY3VycmVudFNsaWRlKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXItbnVtIHRvdGFsXCI+e3sgZm9ybWF0Q291bnRlcih0b3RhbFNsaWRlcykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzd2lwZXItYnRuIHN3aXBlci1hcnJvdyBzd2lwZXItYnV0dG9uLXByZXZcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGEuc2xpZGVyPy5idXR0b25zQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJBbnRlcmlvclwiXG4gICAgICAgICAgICAgICAgICAgICAgI3NsaWRlclByZXZcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzd2lwZXItYnRuIHN3aXBlci1hcnJvdyBzd2lwZXItYnV0dG9uLW5leHRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGEuc2xpZGVyPy5idXR0b25zQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTaWd1aWVudGVcIlxuICAgICAgICAgICAgICAgICAgICAgICNzbGlkZXJOZXh0XG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbXVsdGltZWRpYS1waG90b3MganMtc2VjdGlvbi1zbGlkZXIgc3dpcGVyXCIgI3NlY3Rpb25TbGlkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzd2lwZXItd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHNsaWRlIG9mIHNsaWRlczsgdHJhY2sgdHJhY2tTbGlkZSgkaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXVsdGltZWRpYS1waG90b3MtZWxlbWVudCBzd2lwZXItc2xpZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtcGhvdG9zLWVsZW1lbnQganMtc2VjdGlvbi1hcnJvd3Mtem9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWd1cmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNpbWFnZVJlZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwaG90b3MtZWxlbWVudC1pbWcgcmVzcG9uc2l2ZS1yZXNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNsaWRlLmFyaWFMYWJlbCB8fCBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtZmlsZW5hbWVdPVwic2xpZGUuZGF0YUZpbGVuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtc3JjXT1cInNsaWRlLmRhdGFMYXp5aW1nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kSW1hZ2VdPVwiKHNsaWRlPy5kYXRhTGF6eWltZyB8fCBzbGlkZT8uYmFja2dyb3VuZEltYWdlKSA/ICd1cmwoJyArIChzbGlkZS5kYXRhTGF6eWltZyB8fCBzbGlkZS5iYWNrZ3JvdW5kSW1hZ2UpICsgJyknIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmlndXJlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc2xpZGVzLmxlbmd0aCA+IDEgJiYgZGF0YS5zbGlkZXI/LnNob3dEb3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN3aXBlci1wYWdpbmF0aW9uXCIgI3NsaWRlclBhZ2luYXRpb24+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdhbGxlcnktY29udGVudC1pbmZvXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtY29udGVudC1pbmZvXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1pbmZvLWJveFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcC1pbmZvLWJveFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgI2hlYWRlclJlZj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYWN0aXZlVGV4dHM/LnN1YnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiaW5mby1ib3gtc3VidGl0bGVcIj57eyBhY3RpdmVUZXh0cz8uc3VidGl0bGUgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGl2ZVRleHRzPy50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJpbmZvLWJveC10aXRsZVwiPnt7IGFjdGl2ZVRleHRzPy50aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChhY3RpdmVUZXh0cz8uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAjdGV4dENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbmZvLWJveC10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50ZXh0LWNvbGxhcHNlXT1cInRleHRPdmVyZmxvd3MgJiYgY29sbGFwc2VkTGlua3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLm1heC1oZWlnaHQucHhdPVwidGV4dE92ZXJmbG93cyAmJiBjb2xsYXBzZWRMaW5rcyA/IHRleHRDb2xsYXBzZWRIZWlnaHQgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFjdGl2ZVRleHRzPy5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKHRleHRPdmVyZmxvd3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiaW5mby1ib3gtdG9nZ2xlXCIgKGNsaWNrKT1cInRvZ2dsZVRleHQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgY29sbGFwc2VkTGlua3MgPyBhY3RpdmVTbGlkZUxpbmtMYWJlbCA6ICdPY3VsdGFyJyB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChhY3RpdmVCdXR0b24/LnVybCAmJiBhY3RpdmVCdXR0b24/LmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLWJ1dHRvbkRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm5vLW1hcmdpbl09XCJ0ZXh0T3ZlcmZsb3dzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImFjdGl2ZUJ1dHRvbj8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJhY3RpdmVCdXR0b24/LmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRhcmdldF09XCJhY3RpdmVCdXR0b24/LnRhcmdldCB8fCAnX3NlbGYnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aXZlQnV0dG9uPy50YXJnZXQgfHwgJ19zZWxmJykgPT09ICdfYmxhbmsnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ25vb3BlbmVyIG5vcmVmZXJyZXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWN0aXZlQnV0dG9uPy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFjdGl2ZUJ1dHRvbj8ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG5cbiJdfQ==
|
package/esm2022/lib/components/external/core/sli-c2-img-txt-r-v2/sli-c2-img-txt-r-v2.component.mjs
CHANGED
|
@@ -172,7 +172,8 @@ export class SliC2ImgTxtRV2Component {
|
|
|
172
172
|
const hasCTA = !!this.activeButton;
|
|
173
173
|
const overflowThreshold = totalAvailable - (hasCTA ? CTA_HEIGHT : 0);
|
|
174
174
|
const availableForText = totalAvailable - TOGGLE_HEIGHT - (hasCTA ? CTA_HEIGHT : 0);
|
|
175
|
-
|
|
175
|
+
const MIN_TEXT_HEIGHT = 60;
|
|
176
|
+
this.textCollapsedHeight = Math.max(availableForText, MIN_TEXT_HEIGHT);
|
|
176
177
|
this.textOverflows = descHeight > overflowThreshold;
|
|
177
178
|
if (!this.textOverflows) {
|
|
178
179
|
this.collapsedLinks = true;
|
|
@@ -438,4 +439,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
438
439
|
}], data: [{
|
|
439
440
|
type: Input
|
|
440
441
|
}] } });
|
|
441
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpLWMyLWltZy10eHQtci12Mi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL3NsaS1jMi1pbWctdHh0LXItdjIvc2xpLWMyLWltZy10eHQtci12Mi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL3NsaS1jMi1pbWctdHh0LXItdjIvc2xpLWMyLWltZy10eHQtci12Mi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUdILFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUtMLFdBQVcsRUFHWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQzs7O0FBYTdILE1BQU0sV0FBVyxHQUEwQjtJQUN2QyxZQUFZLEVBQUUsMENBQTBDO0lBQ3hELFlBQVksRUFBRSxhQUFhO0lBQzNCLE1BQU0sRUFBRTtRQUNKLEtBQUssRUFBRSxFQUFFO0tBQ1o7SUFDRCxNQUFNLEVBQUU7UUFDSixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFlBQVksRUFBRSxrQkFBa0I7UUFDaEMsUUFBUSxFQUFF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LE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBU3JDLElBQUk7c0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgU3dpcGVyLCB7IEF1dG9wbGF5LCBFZmZlY3RGYWRlLCBOYXZpZ2F0aW9uLCBQYWdpbmF0aW9uIH0gZnJvbSAnc3dpcGVyJztcbmltcG9ydCB7IEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGluay10eXBlL2xpbmstdHlwZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFieWxvblN3aXBlckNzc0xvYWRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMvYmFieWxvbi1zbGlkZXJzL2JhYnlsb24tc3dpcGVyLWNzcy1sb2FkZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gIEJhYnlsb25CdXR0b25JLFxuICAgIEJhYnlsb25JbWFnZUksXG4gICAgQmFieWxvbkl0ZW1JLFxuICAgIEJhYnlsb25NdWx0aW1lZGlhSSxcbiAgICBCYWJ5bG9uVGV4dEluZm9JLFxufSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gICAgU2xpQzJJbWdUeHRSVjJDb250ZW50LFxuICAgIFNsaUMySW1nVHh0UlYyU2xpZGUsXG59IGZyb20gJy4vc2xpLWMyLWltZy10eHQtci12Mi5pbnRlcmZhY2VzJztcblxuY29uc3QgZGVmYXVsdERhdGE6IFNsaUMySW1nVHh0UlYyQ29udGVudCA9IHtcbiAgICBzZWN0aW9uQ2xhc3M6ICdzZWN0aW9uLWdhbGxlcnkgaW5mby1yaWdodCBtb2R1bGUtc3BhY2VyJyxcbiAgICB3cmFwcGVyQ2xhc3M6ICdiaWctd3JhcHBlcicsXG4gICAgaGVhZGVyOiB7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICB9LFxuICAgIHNsaWRlcjoge1xuICAgICAgICBuYW1lOiAnanMtc2VjdGlvbi1zbGlkZXInLFxuICAgICAgICBzaG93QnV0dG9uczogdHJ1ZSxcbiAgICAgICAgYnV0dG9uc0NsYXNzOiAnYnRuLXNsaWRlLWNpcmNsZScsXG4gICAgICAgIHNob3dEb3RzOiBmYWxzZSxcbiAgICAgICAgZmFkZTogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIHNsaWRlc1BjOiAxLFxuICAgICAgICBzbGlkZXNMYXB0b3A6IDEsXG4gICAgICAgIHNsaWRlc1RhYmxldDogMSxcbiAgICAgICAgc2xpZGVzTW9iaWxlOiAxLFxuICAgIH0sXG4gICAgbWVkaWE6IHtcbiAgICAgICAgc2xpZGVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOiAnJyxcbiAgICAgICAgICAgICAgICBhcmlhTGFiZWw6ICcnLFxuICAgICAgICAgICAgICAgIGRhdGFGaWxlbmFtZTogJycsXG4gICAgICAgICAgICAgICAgZGF0YUxhenlpbWc6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICB9LFxuICAgIGluZm86IHtcbiAgICAgICAgc3VidGl0bGU6ICcnLFxuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIHRleHQ6ICcnLFxuICAgIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NsaS1jMi1pbWctdHh0LXItdjInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQmFieWxvblN3aXBlckNzc0xvYWRlckRpcmVjdGl2ZSwgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2xpLWMyLWltZy10eHQtci12Mi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3NsaS1jMi1pbWctdHh0LXItdjIuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlDMkltZ1R4dFJWMkNvbXBvbmVudFxuXG4gICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gICAgcHJpdmF0ZSBfZGF0YTogU2xpQzJJbWdUeHRSVjJDb250ZW50ID0gZGVmYXVsdERhdGE7XG4gICAgcHJpdmF0ZSBzbGlkZXJJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgdmlld0luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBzd2lwZXJJbnN0YW5jZT86IFN3aXBlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICAgIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcbiAgICBwcml2YXRlIG92ZXJmbG93Q2hlY2tTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICBjdXJyZW50U2xpZGUgPSAxO1xuICAgIHRvdGFsU2xpZGVzID0gdGhpcy5fZGF0YS5tZWRpYS5zbGlkZXMubGVuZ3RoO1xuICAgIGFjdGl2ZVRleHRzPzogQmFieWxvblRleHRJbmZvSTtcbiAgICBjb2xsYXBzZWRMaW5rcyA9IHRydWU7XG4gICAgdGV4dENvbGxhcHNlZEhlaWdodCA9IDA7XG4gICAgdGV4dE92ZXJmbG93cyA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdGV4dHM/OiBCYWJ5bG9uVGV4dEluZm9JO1xuICAgIEBJbnB1dCgpIGl0ZW1zPzogQmFieWxvbkl0ZW1JW107XG4gICAgQElucHV0KCkgbm9ob3Zlcj86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBtdWx0aW1lZGlhPzogQmFieWxvbk11bHRpbWVkaWFJO1xuICAgIEBJbnB1dCgpIGJ1dHRvbnM/OiBCYWJ5bG9uQnV0dG9uSVtdO1xuXG4gICAgQFZpZXdDaGlsZCgnc2VjdGlvblNsaWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHNlY3Rpb25TbGlkZXI/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdzbGlkZXJQcmV2JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgc2xpZGVyUHJldj86IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ3NsaWRlck5leHQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBzbGlkZXJOZXh0PzogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnc2xpZGVyUGFnaW5hdGlvbicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHNsaWRlclBhZ2luYXRpb24/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkcmVuKCdpbWFnZVJlZicpXG4gICAgaW1hZ2VSZWZzPzogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcbiAgICBAVmlld0NoaWxkKCd0ZXh0Q29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgdGV4dENvbnRhaW5lcj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlclJlZicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGhlYWRlclJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge31cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRhdGEodmFsdWU6IFNsaUMySW1nVHh0UlYyQ29udGVudCkge1xuICAgICAgICB0aGlzLl9kYXRhID0gdmFsdWUgPz8gZGVmYXVsdERhdGE7XG4gICAgICAgIHRoaXMuc3luY1NsaWRlc1N0YXRlKCk7XG4gICAgICAgIGlmICh0aGlzLnNsaWRlckluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3lTbGlkZXIoKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdFNsaWRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGRhdGEoKTogU2xpQzJJbWdUeHRSVjJDb250ZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gICAgfVxuXG5cbiAgICBnZXQgaGFzVmFsaWRTbGlkZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMuc2xpZGVzKSAmJiB0aGlzLnNsaWRlcy5zb21lKHNsaWRlID0+ICEhKHNsaWRlPy5kYXRhTGF6eWltZyB8fCBzbGlkZT8uYmFja2dyb3VuZEltYWdlKSk7XG4gICAgfVxuXG4gICAgZ2V0IHNsaWRlcygpOiBTbGlDMkltZ1R4dFJWMlNsaWRlW10ge1xuICAgICAgICBjb25zdCBtdWx0aW1lZGlhU2xpZGVzID0gdGhpcy5tYXBNdWx0aW1lZGlhVG9TbGlkZXMoXG4gICAgICAgICAgICB0aGlzLm11bHRpbWVkaWE/LmltYWdlbmVzXG4gICAgICAgICk7XG4gICAgICAgIGlmIChtdWx0aW1lZGlhU2xpZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBtdWx0aW1lZGlhU2xpZGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXRlbVNsaWRlcyA9IHRoaXMubWFwSXRlbXNUb1NsaWRlcyh0aGlzLml0ZW1zKTtcbiAgICAgICAgaWYgKGl0ZW1TbGlkZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1TbGlkZXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLm1lZGlhLnNsaWRlcyA/PyBbXTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zeW5jU2xpZGVzU3RhdGUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVUZXh0cygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnN5bmNTbGlkZXNTdGF0ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVRleHRzKCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5jaGVja092ZXJmbG93KCk7XG4gICAgICAgIHRoaXMuaW5pdFNsaWRlcigpO1xuXG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50SW5mbyA9IHRoaXMudGV4dENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgID8uY2xvc2VzdCgnLndyYXAtY29udGVudC1pbmZvJyk7XG4gICAgICAgICAgICBpZiAoY29udGVudEluZm8pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU92ZXJmbG93Q2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoY29udGVudEluZm8pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBzaG91bGRSZWZyZXNoID1cbiAgICAgICAgICAgICEhY2hhbmdlc1snbXVsdGltZWRpYSddIHx8ICEhY2hhbmdlc1snaXRlbXMnXSB8fCAhIWNoYW5nZXNbJ2RhdGEnXTtcbiAgICAgICAgaWYgKCFzaG91bGRSZWZyZXNoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN5bmNTbGlkZXNTdGF0ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVRleHRzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMudmlld0luaXRpYWxpemVkICYmIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveVNsaWRlcigpO1xuICAgICAgICAgICAgdGhpcy5pbml0U2xpZGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95U2xpZGVyKCk7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB9XG5cbiAgICB0cmFja1NsaWRlKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuXG4gICAgZm9ybWF0Q291bnRlcih2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlIDwgMTAgPyBgMCR7dmFsdWV9YCA6IGAke3ZhbHVlfWA7XG4gICAgfVxuXG4gICAgdG9nZ2xlVGV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWRMaW5rcyA9ICF0aGlzLmNvbGxhcHNlZExpbmtzO1xuICAgIH1cblxuICAgIGdldCBhY3RpdmVTbGlkZUxpbmtMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBzbGlkZXMgPSB0aGlzLnNsaWRlcztcbiAgICAgICAgaWYgKCFzbGlkZXMubGVuZ3RoKSByZXR1cm4gJ1ZlciBtw6FzJztcbiAgICAgICAgY29uc3QgaWR4ID0gTWF0aC5taW4odGhpcy5jdXJyZW50U2xpZGUgLSAxLCBzbGlkZXMubGVuZ3RoIC0gMSk7XG4gICAgICAgIGNvbnN0IGxpbmsgPSBzbGlkZXNbaWR4XT8ubGlua3M/LlswXTtcbiAgICAgICAgcmV0dXJuIGxpbms/LmxhYmVsIHx8IGxpbms/Lm5hbWUgfHwgJ1ZlciBtw6FzJztcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlQnV0dG9uKCk6IEJhYnlsb25CdXR0b25JIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuYnV0dG9ucz8ubGVuZ3RoICYmIHRoaXMuYnV0dG9uc1swXT8udXJsKSByZXR1cm4gdGhpcy5idXR0b25zWzBdO1xuICAgICAgICBjb25zdCBzbGlkZXMgPSB0aGlzLnNsaWRlcztcbiAgICAgICAgaWYgKCFzbGlkZXMubGVuZ3RoKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBpZHggPSBNYXRoLm1pbih0aGlzLmN1cnJlbnRTbGlkZSAtIDEsIHNsaWRlcy5sZW5ndGggLSAxKTtcbiAgICAgICAgcmV0dXJuIHNsaWRlc1tpZHhdPy5idXR0b25zPy5bMF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzY2hlZHVsZU92ZXJmbG93Q2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJmbG93Q2hlY2tTY2hlZHVsZWQpIHJldHVybjtcbiAgICAgICAgdGhpcy5vdmVyZmxvd0NoZWNrU2NoZWR1bGVkID0gdHJ1ZTtcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmZsb3dDaGVja1NjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jaGVja092ZXJmbG93KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tPdmVyZmxvdygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW1hZ2VzID0gdGhpcy5pbWFnZVJlZnM/LnRvQXJyYXkoKTtcbiAgICAgICAgY29uc3QgdGV4dEVsID0gdGhpcy50ZXh0Q29udGFpbmVyPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBoZWFkZXJFbCA9IHRoaXMuaGVhZGVyUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAoIWltYWdlcz8ubGVuZ3RoIHx8ICF0ZXh0RWwgfHwgIWhlYWRlckVsKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgaWR4ID0gTWF0aC5taW4odGhpcy5jdXJyZW50U2xpZGUgLSAxLCBpbWFnZXMubGVuZ3RoIC0gMSk7XG4gICAgICAgIGNvbnN0IGltYWdlRWwgPSBpbWFnZXNbaWR4XT8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKCFpbWFnZUVsKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgaW1hZ2VIZWlnaHQgPSBpbWFnZUVsLm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgaGVhZGVySGVpZ2h0ID0gaGVhZGVyRWwub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBkZXNjSGVpZ2h0ID0gdGV4dEVsLnNjcm9sbEhlaWdodDtcbiAgICAgICAgY29uc3QgdG90YWxBdmFpbGFibGUgPSAoaW1hZ2VIZWlnaHQgLSBoZWFkZXJIZWlnaHQpICogMC45MDtcbiAgICAgICAgY29uc3QgVE9HR0xFX0hFSUdIVCA9IDY1O1xuICAgICAgICBjb25zdCBDVEFfSEVJR0hUID0gMTIwO1xuICAgICAgICBjb25zdCBoYXNDVEEgPSAhIXRoaXMuYWN0aXZlQnV0dG9uO1xuXG4gICAgICAgIGNvbnN0IG92ZXJmbG93VGhyZXNob2xkID0gdG90YWxBdmFpbGFibGUgLSAoaGFzQ1RBID8gQ1RBX0hFSUdIVCA6IDApO1xuICAgICAgICBjb25zdCBhdmFpbGFibGVGb3JUZXh0ID0gdG90YWxBdmFpbGFibGUgLSBUT0dHTEVfSEVJR0hUIC0gKGhhc0NUQSA/IENUQV9IRUlHSFQgOiAwKTtcblxuICAgICAgICB0aGlzLnRleHRDb2xsYXBzZWRIZWlnaHQgPSBNYXRoLm1heChhdmFpbGFibGVGb3JUZXh0LCAwKTtcbiAgICAgICAgdGhpcy50ZXh0T3ZlcmZsb3dzID0gZGVzY0hlaWdodCA+IG92ZXJmbG93VGhyZXNob2xkO1xuICAgICAgICBpZiAoIXRoaXMudGV4dE92ZXJmbG93cykge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZWRMaW5rcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kSW1hZ2Uoc2xpZGU6IFNsaUMySW1nVHh0UlYyU2xpZGUpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBpbWFnZVVybCA9IHNsaWRlLmRhdGFMYXp5aW1nIHx8IHNsaWRlLmJhY2tncm91bmRJbWFnZTtcbiAgICAgICAgcmV0dXJuIGB1cmwoJHtpbWFnZVVybH0pYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTbGlkZXIoKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHxcbiAgICAgICAgICAgIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8XG4gICAgICAgICAgICAhdGhpcy5zZWN0aW9uU2xpZGVyXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHwgIXRoaXMuc2VjdGlvblNsaWRlcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2xpZGVzID0gdGhpcy5zbGlkZXM7XG4gICAgICAgICAgICBpZiAoc2xpZGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZG9tU2xpZGVzID1cbiAgICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25TbGlkZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICAgICAgICAnLnN3aXBlci1zbGlkZSdcbiAgICAgICAgICAgICAgICApLmxlbmd0aDtcbiAgICAgICAgICAgIGlmIChkb21TbGlkZXMgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNsaWRlckNvbmZpZyA9IHRoaXMuZGF0YS5zbGlkZXI7XG4gICAgICAgICAgICBjb25zdCBtYXhTbGlkZXNQZXJWaWV3ID0gTWF0aC5tYXgoXG4gICAgICAgICAgICAgICAgc2xpZGVyQ29uZmlnLnNsaWRlc1BjLFxuICAgICAgICAgICAgICAgIHNsaWRlckNvbmZpZy5zbGlkZXNMYXB0b3AsXG4gICAgICAgICAgICAgICAgc2xpZGVyQ29uZmlnLnNsaWRlc1RhYmxldCxcbiAgICAgICAgICAgICAgICBzbGlkZXJDb25maWcuc2xpZGVzTW9iaWxlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzTXVsdGlwbGVTbGlkZXMgPSBzbGlkZXMubGVuZ3RoID4gMTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZExvb3AgPVxuICAgICAgICAgICAgICAgIGhhc011bHRpcGxlU2xpZGVzICYmIHNsaWRlcy5sZW5ndGggPiBtYXhTbGlkZXNQZXJWaWV3O1xuICAgICAgICAgICAgY29uc3QgaGFzTmF2aWdhdGlvbiA9XG4gICAgICAgICAgICAgICAgaGFzTXVsdGlwbGVTbGlkZXMgJiZcbiAgICAgICAgICAgICAgICBzbGlkZXJDb25maWcuc2hvd0J1dHRvbnMgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNsaWRlclByZXYgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNsaWRlck5leHQ7XG4gICAgICAgICAgICBjb25zdCBoYXNQYWdpbmF0aW9uID1cbiAgICAgICAgICAgICAgICBoYXNNdWx0aXBsZVNsaWRlcyAmJlxuICAgICAgICAgICAgICAgIHNsaWRlckNvbmZpZy5zaG93RG90cyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVyUGFnaW5hdGlvbjtcblxuICAgICAgICAgICAgdGhpcy50b3RhbFNsaWRlcyA9IHNsaWRlcy5sZW5ndGg7XG5cbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN3aXBlckluc3RhbmNlID0gbmV3IFN3aXBlcihcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWN0aW9uU2xpZGVyIS5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVzOiBbTmF2aWdhdGlvbiwgUGFnaW5hdGlvbiwgQXV0b3BsYXksIEVmZmVjdEZhZGVdLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogc2xpZGVyQ29uZmlnLnNsaWRlc01vYmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1Blckdyb3VwOiBzbGlkZXJDb25maWcuc2xpZGVzTW9iaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3BlZWQ6IDMwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvb3A6IHNob3VsZExvb3AsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvSGVpZ2h0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWZmZWN0OiAnc2xpZGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFkZUVmZmVjdDogc2xpZGVyQ29uZmlnLmZhZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY3Jvc3NGYWRlOiB0cnVlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiBzbGlkZXJDb25maWcuYXV0b3BsYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxheTogMzAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlT25JbnRlcmFjdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IGhhc05hdmlnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0RWw6IHRoaXMuc2xpZGVyTmV4dCEubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2RWw6IHRoaXMuc2xpZGVyUHJldiEubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogaGFzUGFnaW5hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsOiB0aGlzLnNsaWRlclBhZ2luYXRpb24hLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc2ODoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiBzbGlkZXJDb25maWcuc2xpZGVzVGFibGV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJHcm91cDogc2xpZGVyQ29uZmlnLnNsaWRlc1RhYmxldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyODA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogc2xpZGVyQ29uZmlnLnNsaWRlc0xhcHRvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyR3JvdXA6IHNsaWRlckNvbmZpZy5zbGlkZXNMYXB0b3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNjgwOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IHNsaWRlckNvbmZpZy5zbGlkZXNQYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyR3JvdXA6IHNsaWRlckNvbmZpZy5zbGlkZXNQYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdDogKHN3aXBlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3RhbFNsaWRlcyA9IHRoaXMuc2xpZGVzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gc3dpcGVyPy5yZWFsSW5kZXggPz8gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNsaWRlID0gYWN0aXZlSW5kZXggKyAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVUZXh0cyhhY3RpdmVJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrT3ZlcmZsb3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja092ZXJmbG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZUNoYW5nZTogKHN3aXBlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSBzd2lwZXI/LnJlYWxJbmRleCA/PyAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2xpZGUgPSBhY3RpdmVJbmRleCArIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVRleHRzKGFjdGl2ZUluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tPdmVyZmxvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2l6ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU92ZXJmbG93Q2hlY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveVNsaWRlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNsaWRlckluaXRpYWxpemVkIHx8ICF0aGlzLnN3aXBlckluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN3aXBlckluc3RhbmNlLmRlc3Ryb3kodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc3dpcGVySW5zdGFuY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN5bmNTbGlkZXNTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b3RhbFNsaWRlcyA9IHRoaXMuc2xpZGVzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5jdXJyZW50U2xpZGUgPSBNYXRoLm1pbih0aGlzLmN1cnJlbnRTbGlkZSwgdGhpcy50b3RhbFNsaWRlcykgfHwgMTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcE11bHRpbWVkaWFUb1NsaWRlcyhcbiAgICAgICAgaW1hZ2VzPzogQmFieWxvbkltYWdlSVtdXG4gICAgKTogU2xpQzJJbWdUeHRSVjJTbGlkZVtdIHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGltYWdlcykpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbWFnZXMucmVkdWNlPFNsaUMySW1nVHh0UlYyU2xpZGVbXT4oKGFjYywgaW1hZ2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNyYyA9IHRoaXMucmVzb2x2ZUltYWdlU3JjKGltYWdlKTtcbiAgICAgICAgICAgIGNvbnN0IGFsdCA9IGltYWdlPy5pbWc/LmFsdCA/PyBpbWFnZT8uYWx0ID8/ICcnO1xuICAgICAgICAgICAgaWYgKCFzcmMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBzcmMsXG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsOiBhbHQsXG4gICAgICAgICAgICAgICAgZGF0YUZpbGVuYW1lOiBhbHQsXG4gICAgICAgICAgICAgICAgZGF0YUxhenlpbWc6IHNyYyxcbiAgICAgICAgICAgICAgICB0ZXh0czogdGhpcy5leHRyYWN0VGV4dHNGcm9tSW1hZ2UoaW1hZ2UpLFxuICAgICAgICAgICAgICAgIGxpbmtzOiBpbWFnZS5saW5rcyxcbiAgICAgICAgICAgICAgICBidXR0b25zOiBpbWFnZS5idXR0b25zXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIFtdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcEl0ZW1zVG9TbGlkZXMoXG4gICAgICAgIGl0ZW1zPzogQmFieWxvbkl0ZW1JW10gfCBCYWJ5bG9uSW1hZ2VJW11cbiAgICApOiBTbGlDMkltZ1R4dFJWMlNsaWRlW10ge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlyc3QgPSBpdGVtc1swXSBhcyBCYWJ5bG9uSXRlbUkgJiBCYWJ5bG9uSW1hZ2VJO1xuICAgICAgICBpZiAoKGZpcnN0IGFzIEJhYnlsb25JdGVtSSk/Lm11bHRpbWVkaWE/LmltYWdlbmVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiAoaXRlbXMgYXMgQmFieWxvbkl0ZW1JW10pLmZsYXRNYXAoKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgdGhpcy5tYXBNdWx0aW1lZGlhVG9TbGlkZXMoaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubWFwTXVsdGltZWRpYVRvU2xpZGVzKGl0ZW1zIGFzIEJhYnlsb25JbWFnZUlbXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNvbHZlSW1hZ2VTcmMoaW1hZ2U6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJhd1NyYyA9XG4gICAgICAgICAgICBpbWFnZT8uaW1nPy5zcmMgPz9cbiAgICAgICAgICAgIGltYWdlPy5zcmMgPz9cbiAgICAgICAgICAgIGltYWdlPy5wYXRoPy53ZWJwID8/XG4gICAgICAgICAgICBpbWFnZT8ucGF0aD8ub3JpZ2luYWwgPz9cbiAgICAgICAgICAgIGltYWdlPy50aHVtYm5haWxzPy5bMTM2Nl0/LndlYnAgPz9cbiAgICAgICAgICAgIGltYWdlPy50aHVtYm5haWxzPy5bMTI4MF0/LndlYnAgPz9cbiAgICAgICAgICAgIGltYWdlPy50aHVtYm5haWxzPy5bMTAyNF0/LndlYnAgPz9cbiAgICAgICAgICAgICcnO1xuXG4gICAgICAgIGlmICghcmF3U3JjIHx8IHR5cGVvZiByYXdTcmMgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICByYXdTcmMuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8XG4gICAgICAgICAgICByYXdTcmMuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSB8fFxuICAgICAgICAgICAgcmF3U3JjLnN0YXJ0c1dpdGgoJy8vJykgfHxcbiAgICAgICAgICAgIHJhd1NyYy5zdGFydHNXaXRoKCdkYXRhOicpIHx8XG4gICAgICAgICAgICByYXdTcmMuc3RhcnRzV2l0aCgnYmxvYjonKSB8fFxuICAgICAgICAgICAgcmF3U3JjLnN0YXJ0c1dpdGgoJy8nKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiByYXdTcmM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYC8ke3Jhd1NyY31gO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQWN0aXZlVGV4dHMoYWN0aXZlSW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2xpZGVzID0gdGhpcy5zbGlkZXM7XG4gICAgICAgIGlmIChzbGlkZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRleHRzID0gdGhpcy50ZXh0cztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZGV4ID1cbiAgICAgICAgICAgIHR5cGVvZiBhY3RpdmVJbmRleCA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICA/IGFjdGl2ZUluZGV4XG4gICAgICAgICAgICAgICAgOiBNYXRoLm1heChcbiAgICAgICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWluKHRoaXMuY3VycmVudFNsaWRlIC0gMSwgc2xpZGVzLmxlbmd0aCAtIDEpXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICBjb25zdCBzbGlkZVRleHRzID0gc2xpZGVzW2luZGV4XT8udGV4dHM7XG4gICAgICAgIHRoaXMuYWN0aXZlVGV4dHMgPSB0aGlzLmhhc0FueVRleHQoc2xpZGVUZXh0cylcbiAgICAgICAgICAgID8gc2xpZGVUZXh0c1xuICAgICAgICAgICAgOiB0aGlzLnRleHRzO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzQW55VGV4dCh0ZXh0cz86IEJhYnlsb25UZXh0SW5mb0kpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0ZXh0cykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgICAgICB0ZXh0cy5wcmV0aXRsZSB8fFxuICAgICAgICAgICAgdGV4dHMuc3VidGl0bGUgfHxcbiAgICAgICAgICAgIHRleHRzLnRpdGxlIHx8XG4gICAgICAgICAgICB0ZXh0cy5kZXNjcmlwdGlvbiB8fFxuICAgICAgICAgICAgdGV4dHMudGV4dFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXh0cmFjdFRleHRzRnJvbUltYWdlKFxuICAgICAgICBpbWFnZTogQmFieWxvbkltYWdlSVxuICAgICk6IEJhYnlsb25UZXh0SW5mb0kgfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBwcmV0aXRsZSA9XG4gICAgICAgICAgICBpbWFnZT8ucHJldGl0bGUgPz9cbiAgICAgICAgICAgIGltYWdlPy5uZFByZXRpdGxlID8/XG4gICAgICAgICAgICAoaW1hZ2UgYXMgYW55KT8ubmRfcHJldGl0bGUgPz9cbiAgICAgICAgICAgICcnO1xuICAgICAgICBjb25zdCBzdWJ0aXRsZSA9XG4gICAgICAgICAgICBpbWFnZT8uc3VidGl0bGUgPz9cbiAgICAgICAgICAgIGltYWdlPy5uZFN1YnRpdGxlID8/XG4gICAgICAgICAgICAoaW1hZ2UgYXMgYW55KT8ubmRfc3VidGl0bGUgPz9cbiAgICAgICAgICAgICcnO1xuICAgICAgICBjb25zdCB0aXRsZSA9XG4gICAgICAgICAgICBpbWFnZT8udGl0bGUgPz8gaW1hZ2U/Lm5kVGl0bGUgPz8gKGltYWdlIGFzIGFueSk/Lm5kX3RpdGxlID8/ICcnO1xuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGltYWdlPy5kZXNjcmlwdGlvbiA/PyAnJztcblxuICAgICAgICBjb25zdCB0ZXh0czogQmFieWxvblRleHRJbmZvSSA9IHtcbiAgICAgICAgICAgIHN1YnRpdGxlOiBzdWJ0aXRsZSB8fCBwcmV0aXRsZSB8fCAnJyxcbiAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzQW55VGV4dCh0ZXh0cykgPyB0ZXh0cyA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbn1cbiIsIjxzZWN0aW9uIFthdHRyLmNsYXNzXT1cImRhdGEuc2VjdGlvbkNsYXNzXCIgICpuZ0lmPVwiaGFzVmFsaWRTbGlkZXNcIj5cbiAgPGRpdiBbYXR0ci5jbGFzc109XCJkYXRhLndyYXBwZXJDbGFzc1wiPlxuXG4gICAgPGRpdiBjbGFzcz1cIndyYXAtc2VjdGlvbi1nYWxsZXJ5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1nYWxsZXJ5LWNvbnRlbnQganMtYWN0aXZlLXNsaWRlclwiIFthdHRyLmRhdGEtc2xpZGVyX25hbWVdPVwiZGF0YS5zbGlkZXIubmFtZVwiXG4gICAgICAgIFthdHRyLmRhdGEtc2xpZGVyX3Nob3didG5zXT1cImRhdGEuc2xpZGVyLnNob3dCdXR0b25zXCIgW2F0dHIuZGF0YS1zbGlkZXJfYnRuc109XCJkYXRhLnNsaWRlci5idXR0b25zQ2xhc3NcIlxuICAgICAgICBbYXR0ci5kYXRhLXNsaWRlcl9zaG93ZG90c109XCJkYXRhLnNsaWRlci5zaG93RG90c1wiIFthdHRyLmRhdGEtc2xpZGVyX2ZhZGVdPVwiZGF0YS5zbGlkZXIuZmFkZVwiXG4gICAgICAgIFthdHRyLmRhdGEtc2xpZGVyX2F1dG9wbGF5XT1cImRhdGEuc2xpZGVyLmF1dG9wbGF5XCIgW2F0dHIuZGF0YS1zbGlkZXNfcGNdPVwiZGF0YS5zbGlkZXIuc2xpZGVzUGNcIlxuICAgICAgICBbYXR0ci5kYXRhLXNsaWRlc19sYXB0b3BdPVwiZGF0YS5zbGlkZXIuc2xpZGVzTGFwdG9wXCIgW2F0dHIuZGF0YS1zbGlkZXNfdGFibGV0XT1cImRhdGEuc2xpZGVyLnNsaWRlc1RhYmxldFwiXG4gICAgICAgIFthdHRyLmRhdGEtc2xpZGVzX21vYmlsZV09XCJkYXRhLnNsaWRlci5zbGlkZXNNb2JpbGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtZ2FsbGVyeS1jb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tc2xpZGVyLWFycm93cyBqcy1zbGlkZXItYXJyb3dzIG0tYm90b25lc2Fycm93XCI+XG4gICAgICAgICAgICBAaWYgKHNsaWRlcy5sZW5ndGggPiAxICYmIGRhdGEuc2xpZGVyLnNob3dCdXR0b25zKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21wbGV4LWluZm8tbWVkaWFfY291bnRlciBjb3VudGVyIG0tY291bnRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlci1udW0gYWN0dWFsXCI+e3sgZm9ybWF0Q291bnRlcihjdXJyZW50U2xpZGUpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlci1udW0gdG90YWxcIj57eyBmb3JtYXRDb3VudGVyKHRvdGFsU2xpZGVzKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzd2lwZXItYnRuIHN3aXBlci1hcnJvdyBzd2lwZXItYnV0dG9uLXByZXZcIiBbbmdDbGFzc109XCJkYXRhLnNsaWRlci5idXR0b25zQ2xhc3NcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiQW50ZXJpb3JcIiAjc2xpZGVyUHJldj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInN3aXBlci1idG4gc3dpcGVyLWFycm93IHN3aXBlci1idXR0b24tbmV4dFwiIFtuZ0NsYXNzXT1cImRhdGEuc2xpZGVyLmJ1dHRvbnNDbGFzc1wiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJTaWd1aWVudGVcIiAjc2xpZGVyTmV4dD48L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2FsbGVyeS1jb250ZW50LWVsZW1lbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnYWxsZXJ5LWNvbnRlbnQtbXVsdGltZWRpYVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcC1jb250ZW50LW11bHRpbWVkaWFcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1tdWx0aW1lZGlhLXBob3RvcyBqcy1zZWN0aW9uLXNsaWRlciBzd2lwZXJcIiAjc2VjdGlvblNsaWRlciBiYWJ5bG9uU3dpcGVyQ3NzTG9hZGVyPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN3aXBlci13cmFwcGVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChzbGlkZSBvZiBzbGlkZXM7IHRyYWNrIHRyYWNrU2xpZGUoJGluZGV4KSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXVsdGltZWRpYS1waG90b3MtZWxlbWVudCBzd2lwZXItc2xpZGVcIiBzdHlsZT1cImZsZXgtc2hyaW5rOiAwO1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLXBob3Rvcy1lbGVtZW50IGpzLXNlY3Rpb24tYXJyb3dzLXpvbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmaWd1cmUgI2ltYWdlUmVmIGNsYXNzPVwicGhvdG9zLWVsZW1lbnQtaW1nIHJlc3BvbnNpdmUtcmVzaXplXCIgcm9sZT1cImltZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2xpZGUuYXJpYUxhYmVsIHx8IG51bGxcIiBbYXR0ci5kYXRhLWZpbGVuYW1lXT1cInNsaWRlLmRhdGFGaWxlbmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtc3JjXT1cInNsaWRlLmRhdGFMYXp5aW1nXCIgW3N0eWxlLmJhY2tncm91bmRJbWFnZV09XCJiYWNrZ3JvdW5kSW1hZ2Uoc2xpZGUpXCI+PC9maWd1cmU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIEBpZiAoc2xpZGVzLmxlbmd0aCA+IDEgJiYgZGF0YS5zbGlkZXIuc2hvd0RvdHMpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzd2lwZXItcGFnaW5hdGlvblwiICNzbGlkZXJQYWdpbmF0aW9uPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdhbGxlcnktY29udGVudC1pbmZvXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLWNvbnRlbnQtaW5mb1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWluZm8tYm94XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcC1pbmZvLWJveFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICNoZWFkZXJSZWY+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChhY3RpdmVUZXh0cz8uc3VidGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImluZm8tYm94LXN1YnRpdGxlXCI+e3sgYWN0aXZlVGV4dHM/LnN1YnRpdGxlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGl2ZVRleHRzPy50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImluZm8tYm94LXRpdGxlXCI+e3sgYWN0aXZlVGV4dHM/LnRpdGxlIH19PC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGl2ZVRleHRzPy5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgI3RleHRDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImluZm8tYm94LXRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50ZXh0LWNvbGxhcHNlXT1cInRleHRPdmVyZmxvd3MgJiYgY29sbGFwc2VkTGlua3NcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0LnB4XT1cInRleHRPdmVyZmxvd3MgJiYgY29sbGFwc2VkTGlua3MgPyB0ZXh0Q29sbGFwc2VkSGVpZ2h0IDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGFjdGl2ZVRleHRzPy5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKHRleHRPdmVyZmxvd3MpIHtcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImluZm8tYm94LXRvZ2dsZVwiIChjbGljayk9XCJ0b2dnbGVUZXh0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBjb2xsYXBzZWRMaW5rcyA/IGFjdGl2ZVNsaWRlTGlua0xhYmVsIDogJ09jdWx0YXInIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGl2ZUJ1dHRvbj8udXJsICYmIGFjdGl2ZUJ1dHRvbj8ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS1idXR0b25EXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mubm8tbWFyZ2luXT1cInRleHRPdmVyZmxvd3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImFjdGl2ZUJ1dHRvbj8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiYWN0aXZlQnV0dG9uPy5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cImFjdGl2ZUJ1dHRvbj8udGFyZ2V0IHx8ICdfc2VsZidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2ZUJ1dHRvbj8udGFyZ2V0IHx8ICdfc2VsZicpID09PSAnX2JsYW5rJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnbm9vcGVuZXIgbm9yZWZlcnJlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhY3RpdmVCdXR0b24/LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhY3RpdmVCdXR0b24/LmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
|
|
442
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpLWMyLWltZy10eHQtci12Mi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL3NsaS1jMi1pbWctdHh0LXItdjIvc2xpLWMyLWltZy10eHQtci12Mi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL3NsaS1jMi1pbWctdHh0LXItdjIvc2xpLWMyLWltZy10eHQtci12Mi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUdILFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUtMLFdBQVcsRUFHWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQzs7O0FBYTdILE1BQU0sV0FBVyxHQUEwQjtJQUN2QyxZQUFZLEVBQUUsMENBQTBDO0lBQ3hELFlBQVksRUFBRSxhQUFhO0lBQzNCLE1BQU0sRUFBRTtRQUNKLEtBQUssRUFBRSxFQUFFO0tBQ1o7SUFDRCxNQUFNLEVBQUU7UUFDSixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFlBQVksRUFBRSxrQkFBa0I7UUFDaEMsUUFBUSxFQUFF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c0JBRFIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQVNyQyxJQUFJO3NCQURQLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IFN3aXBlciwgeyBBdXRvcGxheSwgRWZmZWN0RmFkZSwgTmF2aWdhdGlvbiwgUGFnaW5hdGlvbiB9IGZyb20gJ3N3aXBlcic7XG5pbXBvcnQgeyBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL2xpbmstdHlwZS9saW5rLXR5cGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhYnlsb25Td2lwZXJDc3NMb2FkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL2JhYnlsb24tc2xpZGVycy9iYWJ5bG9uLXN3aXBlci1jc3MtbG9hZGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICBCYWJ5bG9uQnV0dG9uSSxcbiAgICBCYWJ5bG9uSW1hZ2VJLFxuICAgIEJhYnlsb25JdGVtSSxcbiAgICBCYWJ5bG9uTXVsdGltZWRpYUksXG4gICAgQmFieWxvblRleHRJbmZvSSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICAgIFNsaUMySW1nVHh0UlYyQ29udGVudCxcbiAgICBTbGlDMkltZ1R4dFJWMlNsaWRlLFxufSBmcm9tICcuL3NsaS1jMi1pbWctdHh0LXItdjIuaW50ZXJmYWNlcyc7XG5cbmNvbnN0IGRlZmF1bHREYXRhOiBTbGlDMkltZ1R4dFJWMkNvbnRlbnQgPSB7XG4gICAgc2VjdGlvbkNsYXNzOiAnc2VjdGlvbi1nYWxsZXJ5IGluZm8tcmlnaHQgbW9kdWxlLXNwYWNlcicsXG4gICAgd3JhcHBlckNsYXNzOiAnYmlnLXdyYXBwZXInLFxuICAgIGhlYWRlcjoge1xuICAgICAgICB0aXRsZTogJycsXG4gICAgfSxcbiAgICBzbGlkZXI6IHtcbiAgICAgICAgbmFtZTogJ2pzLXNlY3Rpb24tc2xpZGVyJyxcbiAgICAgICAgc2hvd0J1dHRvbnM6IHRydWUsXG4gICAgICAgIGJ1dHRvbnNDbGFzczogJ2J0bi1zbGlkZS1jaXJjbGUnLFxuICAgICAgICBzaG93RG90czogZmFsc2UsXG4gICAgICAgIGZhZGU6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5OiB0cnVlLFxuICAgICAgICBzbGlkZXNQYzogMSxcbiAgICAgICAgc2xpZGVzTGFwdG9wOiAxLFxuICAgICAgICBzbGlkZXNUYWJsZXQ6IDEsXG4gICAgICAgIHNsaWRlc01vYmlsZTogMSxcbiAgICB9LFxuICAgIG1lZGlhOiB7XG4gICAgICAgIHNsaWRlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmRJbWFnZTogJycsXG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsOiAnJyxcbiAgICAgICAgICAgICAgICBkYXRhRmlsZW5hbWU6ICcnLFxuICAgICAgICAgICAgICAgIGRhdGFMYXp5aW1nOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgfSxcbiAgICBpbmZvOiB7XG4gICAgICAgIHN1YnRpdGxlOiAnJyxcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICB0ZXh0OiAnJyxcbiAgICB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzbGktYzItaW1nLXR4dC1yLXYyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJhYnlsb25Td2lwZXJDc3NMb2FkZXJEaXJlY3RpdmUsIEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NsaS1jMi1pbWctdHh0LXItdjIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9zbGktYzItaW1nLXR4dC1yLXYyLmNvbXBvbmVudC5zY3NzJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbn0pXG5leHBvcnQgY2xhc3MgU2xpQzJJbWdUeHRSVjJDb21wb25lbnRcblxuICAgIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveVxue1xuICAgIHByaXZhdGUgX2RhdGE6IFNsaUMySW1nVHh0UlYyQ29udGVudCA9IGRlZmF1bHREYXRhO1xuICAgIHByaXZhdGUgc2xpZGVySW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIHZpZXdJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgc3dpcGVySW5zdGFuY2U/OiBTd2lwZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyPzogUmVzaXplT2JzZXJ2ZXI7XG4gICAgcHJpdmF0ZSBvdmVyZmxvd0NoZWNrU2NoZWR1bGVkID0gZmFsc2U7XG4gICAgY3VycmVudFNsaWRlID0gMTtcbiAgICB0b3RhbFNsaWRlcyA9IHRoaXMuX2RhdGEubWVkaWEuc2xpZGVzLmxlbmd0aDtcbiAgICBhY3RpdmVUZXh0cz86IEJhYnlsb25UZXh0SW5mb0k7XG4gICAgY29sbGFwc2VkTGlua3MgPSB0cnVlO1xuICAgIHRleHRDb2xsYXBzZWRIZWlnaHQgPSAwO1xuICAgIHRleHRPdmVyZmxvd3MgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHRleHRzPzogQmFieWxvblRleHRJbmZvSTtcbiAgICBASW5wdXQoKSBpdGVtcz86IEJhYnlsb25JdGVtSVtdO1xuICAgIEBJbnB1dCgpIG5vaG92ZXI/OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgbXVsdGltZWRpYT86IEJhYnlsb25NdWx0aW1lZGlhSTtcbiAgICBASW5wdXQoKSBidXR0b25zPzogQmFieWxvbkJ1dHRvbklbXTtcblxuICAgIEBWaWV3Q2hpbGQoJ3NlY3Rpb25TbGlkZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBzZWN0aW9uU2xpZGVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnc2xpZGVyUHJldicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHNsaWRlclByZXY/OiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdzbGlkZXJOZXh0JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgc2xpZGVyTmV4dD86IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ3NsaWRlclBhZ2luYXRpb24nLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBzbGlkZXJQYWdpbmF0aW9uPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZHJlbignaW1hZ2VSZWYnKVxuICAgIGltYWdlUmVmcz86IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG4gICAgQFZpZXdDaGlsZCgndGV4dENvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHRleHRDb250YWluZXI/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdoZWFkZXJSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBoZWFkZXJSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBkYXRhKHZhbHVlOiBTbGlDMkltZ1R4dFJWMkNvbnRlbnQpIHtcbiAgICAgICAgdGhpcy5fZGF0YSA9IHZhbHVlID8/IGRlZmF1bHREYXRhO1xuICAgICAgICB0aGlzLnN5bmNTbGlkZXNTdGF0ZSgpO1xuICAgICAgICBpZiAodGhpcy5zbGlkZXJJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5kZXN0cm95U2xpZGVyKCk7XG4gICAgICAgICAgICB0aGlzLmluaXRTbGlkZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBkYXRhKCk6IFNsaUMySW1nVHh0UlYyQ29udGVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICAgIH1cblxuXG4gICAgZ2V0IGhhc1ZhbGlkU2xpZGVzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnNsaWRlcykgJiYgdGhpcy5zbGlkZXMuc29tZShzbGlkZSA9PiAhIShzbGlkZT8uZGF0YUxhenlpbWcgfHwgc2xpZGU/LmJhY2tncm91bmRJbWFnZSkpO1xuICAgIH1cblxuICAgIGdldCBzbGlkZXMoKTogU2xpQzJJbWdUeHRSVjJTbGlkZVtdIHtcbiAgICAgICAgY29uc3QgbXVsdGltZWRpYVNsaWRlcyA9IHRoaXMubWFwTXVsdGltZWRpYVRvU2xpZGVzKFxuICAgICAgICAgICAgdGhpcy5tdWx0aW1lZGlhPy5pbWFnZW5lc1xuICAgICAgICApO1xuICAgICAgICBpZiAobXVsdGltZWRpYVNsaWRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbXVsdGltZWRpYVNsaWRlcztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW1TbGlkZXMgPSB0aGlzLm1hcEl0ZW1zVG9TbGlkZXModGhpcy5pdGVtcyk7XG4gICAgICAgIGlmIChpdGVtU2xpZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtU2xpZGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5tZWRpYS5zbGlkZXMgPz8gW107XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3luY1NsaWRlc1N0YXRlKCk7XG4gICAgICAgIHRoaXMudXBkYXRlQWN0aXZlVGV4dHMoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlld0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zeW5jU2xpZGVzU3RhdGUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVUZXh0cygpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuY2hlY2tPdmVyZmxvdygpO1xuICAgICAgICB0aGlzLmluaXRTbGlkZXIoKTtcblxuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudEluZm8gPSB0aGlzLnRleHRDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICAgICA/LmNsb3Nlc3QoJy53cmFwLWNvbnRlbnQtaW5mbycpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnRJbmZvKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPdmVyZmxvd0NoZWNrKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKGNvbnRlbnRJbmZvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2hvdWxkUmVmcmVzaCA9XG4gICAgICAgICAgICAhIWNoYW5nZXNbJ211bHRpbWVkaWEnXSB8fCAhIWNoYW5nZXNbJ2l0ZW1zJ10gfHwgISFjaGFuZ2VzWydkYXRhJ107XG4gICAgICAgIGlmICghc2hvdWxkUmVmcmVzaCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zeW5jU2xpZGVzU3RhdGUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVUZXh0cygpO1xuXG4gICAgICAgIGlmICh0aGlzLnZpZXdJbml0aWFsaXplZCAmJiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3lTbGlkZXIoKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdFNsaWRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveVNsaWRlcigpO1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgfVxuXG4gICAgdHJhY2tTbGlkZShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIGZvcm1hdENvdW50ZXIodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA8IDEwID8gYDAke3ZhbHVlfWAgOiBgJHt2YWx1ZX1gO1xuICAgIH1cblxuICAgIHRvZ2dsZVRleHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkTGlua3MgPSAhdGhpcy5jb2xsYXBzZWRMaW5rcztcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlU2xpZGVMaW5rTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc2xpZGVzID0gdGhpcy5zbGlkZXM7XG4gICAgICAgIGlmICghc2xpZGVzLmxlbmd0aCkgcmV0dXJuICdWZXIgbcOhcyc7XG4gICAgICAgIGNvbnN0IGlkeCA9IE1hdGgubWluKHRoaXMuY3VycmVudFNsaWRlIC0gMSwgc2xpZGVzLmxlbmd0aCAtIDEpO1xuICAgICAgICBjb25zdCBsaW5rID0gc2xpZGVzW2lkeF0/LmxpbmtzPy5bMF07XG4gICAgICAgIHJldHVybiBsaW5rPy5sYWJlbCB8fCBsaW5rPy5uYW1lIHx8ICdWZXIgbcOhcyc7XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZUJ1dHRvbigpOiBCYWJ5bG9uQnV0dG9uSSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLmJ1dHRvbnM/Lmxlbmd0aCAmJiB0aGlzLmJ1dHRvbnNbMF0/LnVybCkgcmV0dXJuIHRoaXMuYnV0dG9uc1swXTtcbiAgICAgICAgY29uc3Qgc2xpZGVzID0gdGhpcy5zbGlkZXM7XG4gICAgICAgIGlmICghc2xpZGVzLmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgaWR4ID0gTWF0aC5taW4odGhpcy5jdXJyZW50U2xpZGUgLSAxLCBzbGlkZXMubGVuZ3RoIC0gMSk7XG4gICAgICAgIHJldHVybiBzbGlkZXNbaWR4XT8uYnV0dG9ucz8uWzBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2NoZWR1bGVPdmVyZmxvd0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5vdmVyZmxvd0NoZWNrU2NoZWR1bGVkKSByZXR1cm47XG4gICAgICAgIHRoaXMub3ZlcmZsb3dDaGVja1NjaGVkdWxlZCA9IHRydWU7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm92ZXJmbG93Q2hlY2tTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tPdmVyZmxvdygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrT3ZlcmZsb3coKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGltYWdlcyA9IHRoaXMuaW1hZ2VSZWZzPy50b0FycmF5KCk7XG4gICAgICAgIGNvbnN0IHRleHRFbCA9IHRoaXMudGV4dENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgaGVhZGVyRWwgPSB0aGlzLmhlYWRlclJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKCFpbWFnZXM/Lmxlbmd0aCB8fCAhdGV4dEVsIHx8ICFoZWFkZXJFbCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGlkeCA9IE1hdGgubWluKHRoaXMuY3VycmVudFNsaWRlIC0gMSwgaW1hZ2VzLmxlbmd0aCAtIDEpO1xuICAgICAgICBjb25zdCBpbWFnZUVsID0gaW1hZ2VzW2lkeF0/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmICghaW1hZ2VFbCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGltYWdlSGVpZ2h0ID0gaW1hZ2VFbC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGhlYWRlckhlaWdodCA9IGhlYWRlckVsLm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgZGVzY0hlaWdodCA9IHRleHRFbC5zY3JvbGxIZWlnaHQ7XG4gICAgICAgIGNvbnN0IHRvdGFsQXZhaWxhYmxlID0gKGltYWdlSGVpZ2h0IC0gaGVhZGVySGVpZ2h0KSAqIDAuOTA7XG4gICAgICAgIGNvbnN0IFRPR0dMRV9IRUlHSFQgPSA2NTtcbiAgICAgICAgY29uc3QgQ1RBX0hFSUdIVCA9IDEyMDtcbiAgICAgICAgY29uc3QgaGFzQ1RBID0gISF0aGlzLmFjdGl2ZUJ1dHRvbjtcblxuICAgICAgICBjb25zdCBvdmVyZmxvd1RocmVzaG9sZCA9IHRvdGFsQXZhaWxhYmxlIC0gKGhhc0NUQSA/IENUQV9IRUlHSFQgOiAwKTtcbiAgICAgICAgY29uc3QgYXZhaWxhYmxlRm9yVGV4dCA9IHRvdGFsQXZhaWxhYmxlIC0gVE9HR0xFX0hFSUdIVCAtIChoYXNDVEEgPyBDVEFfSEVJR0hUIDogMCk7XG5cbiAgICAgICAgY29uc3QgTUlOX1RFWFRfSEVJR0hUID0gNjA7XG5cbiAgICAgICAgdGhpcy50ZXh0Q29sbGFwc2VkSGVpZ2h0ID0gTWF0aC5tYXgoYXZhaWxhYmxlRm9yVGV4dCwgTUlOX1RFWFRfSEVJR0hUKTtcbiAgICAgICAgdGhpcy50ZXh0T3ZlcmZsb3dzID0gZGVzY0hlaWdodCA+IG92ZXJmbG93VGhyZXNob2xkO1xuICAgICAgICBpZiAoIXRoaXMudGV4dE92ZXJmbG93cykge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZWRMaW5rcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kSW1hZ2Uoc2xpZGU6IFNsaUMySW1nVHh0UlYyU2xpZGUpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBpbWFnZVVybCA9IHNsaWRlLmRhdGFMYXp5aW1nIHx8IHNsaWRlLmJhY2tncm91bmRJbWFnZTtcbiAgICAgICAgcmV0dXJuIGB1cmwoJHtpbWFnZVVybH0pYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTbGlkZXIoKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHxcbiAgICAgICAgICAgIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8XG4gICAgICAgICAgICAhdGhpcy5zZWN0aW9uU2xpZGVyXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHwgIXRoaXMuc2VjdGlvblNsaWRlcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2xpZGVzID0gdGhpcy5zbGlkZXM7XG4gICAgICAgICAgICBpZiAoc2xpZGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZG9tU2xpZGVzID1cbiAgICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25TbGlkZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICAgICAgICAnLnN3aXBlci1zbGlkZSdcbiAgICAgICAgICAgICAgICApLmxlbmd0aDtcbiAgICAgICAgICAgIGlmIChkb21TbGlkZXMgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNsaWRlckNvbmZpZyA9IHRoaXMuZGF0YS5zbGlkZXI7XG4gICAgICAgICAgICBjb25zdCBtYXhTbGlkZXNQZXJWaWV3ID0gTWF0aC5tYXgoXG4gICAgICAgICAgICAgICAgc2xpZGVyQ29uZmlnLnNsaWRlc1BjLFxuICAgICAgICAgICAgICAgIHNsaWRlckNvbmZpZy5zbGlkZXNMYXB0b3AsXG4gICAgICAgICAgICAgICAgc2xpZGVyQ29uZmlnLnNsaWRlc1RhYmxldCxcbiAgICAgICAgICAgICAgICBzbGlkZXJDb25maWcuc2xpZGVzTW9iaWxlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzTXVsdGlwbGVTbGlkZXMgPSBzbGlkZXMubGVuZ3RoID4gMTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZExvb3AgPVxuICAgICAgICAgICAgICAgIGhhc011bHRpcGxlU2xpZGVzICYmIHNsaWRlcy5sZW5ndGggPiBtYXhTbGlkZXNQZXJWaWV3O1xuICAgICAgICAgICAgY29uc3QgaGFzTmF2aWdhdGlvbiA9XG4gICAgICAgICAgICAgICAgaGFzTXVsdGlwbGVTbGlkZXMgJiZcbiAgICAgICAgICAgICAgICBzbGlkZXJDb25maWcuc2hvd0J1dHRvbnMgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNsaWRlclByZXYgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNsaWRlck5leHQ7XG4gICAgICAgICAgICBjb25zdCBoYXNQYWdpbmF0aW9uID1cbiAgICAgICAgICAgICAgICBoYXNNdWx0aXBsZVNsaWRlcyAmJlxuICAgICAgICAgICAgICAgIHNsaWRlckNvbmZpZy5zaG93RG90cyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVyUGFnaW5hdGlvbjtcblxuICAgICAgICAgICAgdGhpcy50b3RhbFNsaWRlcyA9IHNsaWRlcy5sZW5ndGg7XG5cbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN3aXBlckluc3RhbmNlID0gbmV3IFN3aXBlcihcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWN0aW9uU2xpZGVyIS5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVzOiBbTmF2aWdhdGlvbiwgUGFnaW5hdGlvbiwgQXV0b3BsYXksIEVmZmVjdEZhZGVdLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogc2xpZGVyQ29uZmlnLnNsaWRlc01vYmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1Blckdyb3VwOiBzbGlkZXJDb25maWcuc2xpZGVzTW9iaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3BlZWQ6IDMwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvb3A6IHNob3VsZExvb3AsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvSGVpZ2h0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWZmZWN0OiAnc2xpZGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFkZUVmZmVjdDogc2xpZGVyQ29uZmlnLmZhZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY3Jvc3NGYWRlOiB0cnVlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiBzbGlkZXJDb25maWcuYXV0b3BsYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxheTogMzAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlT25JbnRlcmFjdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IGhhc05hdmlnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0RWw6IHRoaXMuc2xpZGVyTmV4dCEubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2RWw6IHRoaXMuc2xpZGVyUHJldiEubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogaGFzUGFnaW5hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsOiB0aGlzLnNsaWRlclBhZ2luYXRpb24hLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc2ODoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiBzbGlkZXJDb25maWcuc2xpZGVzVGFibGV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJHcm91cDogc2xpZGVyQ29uZmlnLnNsaWRlc1RhYmxldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyODA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogc2xpZGVyQ29uZmlnLnNsaWRlc0xhcHRvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyR3JvdXA6IHNsaWRlckNvbmZpZy5zbGlkZXNMYXB0b3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNjgwOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IHNsaWRlckNvbmZpZy5zbGlkZXNQYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyR3JvdXA6IHNsaWRlckNvbmZpZy5zbGlkZXNQYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdDogKHN3aXBlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3RhbFNsaWRlcyA9IHRoaXMuc2xpZGVzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gc3dpcGVyPy5yZWFsSW5kZXggPz8gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNsaWRlID0gYWN0aXZlSW5kZXggKyAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVUZXh0cyhhY3RpdmVJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrT3ZlcmZsb3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja092ZXJmbG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZUNoYW5nZTogKHN3aXBlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSBzd2lwZXI/LnJlYWxJbmRleCA/PyAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2xpZGUgPSBhY3RpdmVJbmRleCArIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVRleHRzKGFjdGl2ZUluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tPdmVyZmxvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2l6ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU92ZXJmbG93Q2hlY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveVNsaWRlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNsaWRlckluaXRpYWxpemVkIHx8ICF0aGlzLnN3aXBlckluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN3aXBlckluc3RhbmNlLmRlc3Ryb3kodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc3dpcGVySW5zdGFuY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN5bmNTbGlkZXNTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b3RhbFNsaWRlcyA9IHRoaXMuc2xpZGVzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5jdXJyZW50U2xpZGUgPSBNYXRoLm1pbih0aGlzLmN1cnJlbnRTbGlkZSwgdGhpcy50b3RhbFNsaWRlcykgfHwgMTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcE11bHRpbWVkaWFUb1NsaWRlcyhcbiAgICAgICAgaW1hZ2VzPzogQmFieWxvbkltYWdlSVtdXG4gICAgKTogU2xpQzJJbWdUeHRSVjJTbGlkZVtdIHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGltYWdlcykpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbWFnZXMucmVkdWNlPFNsaUMySW1nVHh0UlYyU2xpZGVbXT4oKGFjYywgaW1hZ2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNyYyA9IHRoaXMucmVzb2x2ZUltYWdlU3JjKGltYWdlKTtcbiAgICAgICAgICAgIGNvbnN0IGFsdCA9IGltYWdlPy5pbWc/LmFsdCA/PyBpbWFnZT8uYWx0ID8/ICcnO1xuICAgICAgICAgICAgaWYgKCFzcmMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBzcmMsXG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsOiBhbHQsXG4gICAgICAgICAgICAgICAgZGF0YUZpbGVuYW1lOiBhbHQsXG4gICAgICAgICAgICAgICAgZGF0YUxhenlpbWc6IHNyYyxcbiAgICAgICAgICAgICAgICB0ZXh0czogdGhpcy5leHRyYWN0VGV4dHNGcm9tSW1hZ2UoaW1hZ2UpLFxuICAgICAgICAgICAgICAgIGxpbmtzOiBpbWFnZS5saW5rcyxcbiAgICAgICAgICAgICAgICBidXR0b25zOiBpbWFnZS5idXR0b25zXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIFtdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcEl0ZW1zVG9TbGlkZXMoXG4gICAgICAgIGl0ZW1zPzogQmFieWxvbkl0ZW1JW10gfCBCYWJ5bG9uSW1hZ2VJW11cbiAgICApOiBTbGlDMkltZ1R4dFJWMlNsaWRlW10ge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlyc3QgPSBpdGVtc1swXSBhcyBCYWJ5bG9uSXRlbUkgJiBCYWJ5bG9uSW1hZ2VJO1xuICAgICAgICBpZiAoKGZpcnN0IGFzIEJhYnlsb25JdGVtSSk/Lm11bHRpbWVkaWE/LmltYWdlbmVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiAoaXRlbXMgYXMgQmFieWxvbkl0ZW1JW10pLmZsYXRNYXAoKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgdGhpcy5tYXBNdWx0aW1lZGlhVG9TbGlkZXMoaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubWFwTXVsdGltZWRpYVRvU2xpZGVzKGl0ZW1zIGFzIEJhYnlsb25JbWFnZUlbXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNvbHZlSW1hZ2VTcmMoaW1hZ2U6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJhd1NyYyA9XG4gICAgICAgICAgICBpbWFnZT8uaW1nPy5zcmMgPz9cbiAgICAgICAgICAgIGltYWdlPy5zcmMgPz9cbiAgICAgICAgICAgIGltYWdlPy5wYXRoPy53ZWJwID8/XG4gICAgICAgICAgICBpbWFnZT8ucGF0aD8ub3JpZ2luYWwgPz9cbiAgICAgICAgICAgIGltYWdlPy50aHVtYm5haWxzPy5bMTM2Nl0/LndlYnAgPz9cbiAgICAgICAgICAgIGltYWdlPy50aHVtYm5haWxzPy5bMTI4MF0/LndlYnAgPz9cbiAgICAgICAgICAgIGltYWdlPy50aHVtYm5haWxzPy5bMTAyNF0/LndlYnAgPz9cbiAgICAgICAgICAgICcnO1xuXG4gICAgICAgIGlmICghcmF3U3JjIHx8IHR5cGVvZiByYXdTcmMgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICByYXdTcmMuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8XG4gICAgICAgICAgICByYXdTcmMuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSB8fFxuICAgICAgICAgICAgcmF3U3JjLnN0YXJ0c1dpdGgoJy8vJykgfHxcbiAgICAgICAgICAgIHJhd1NyYy5zdGFydHNXaXRoKCdkYXRhOicpIHx8XG4gICAgICAgICAgICByYXdTcmMuc3RhcnRzV2l0aCgnYmxvYjonKSB8fFxuICAgICAgICAgICAgcmF3U3JjLnN0YXJ0c1dpdGgoJy8nKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiByYXdTcmM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYC8ke3Jhd1NyY31gO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQWN0aXZlVGV4dHMoYWN0aXZlSW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2xpZGVzID0gdGhpcy5zbGlkZXM7XG4gICAgICAgIGlmIChzbGlkZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRleHRzID0gdGhpcy50ZXh0cztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZGV4ID1cbiAgICAgICAgICAgIHR5cGVvZiBhY3RpdmVJbmRleCA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICA/IGFjdGl2ZUluZGV4XG4gICAgICAgICAgICAgICAgOiBNYXRoLm1heChcbiAgICAgICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWluKHRoaXMuY3VycmVudFNsaWRlIC0gMSwgc2xpZGVzLmxlbmd0aCAtIDEpXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICBjb25zdCBzbGlkZVRleHRzID0gc2xpZGVzW2luZGV4XT8udGV4dHM7XG4gICAgICAgIHRoaXMuYWN0aXZlVGV4dHMgPSB0aGlzLmhhc0FueVRleHQoc2xpZGVUZXh0cylcbiAgICAgICAgICAgID8gc2xpZGVUZXh0c1xuICAgICAgICAgICAgOiB0aGlzLnRleHRzO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzQW55VGV4dCh0ZXh0cz86IEJhYnlsb25UZXh0SW5mb0kpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0ZXh0cykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgICAgICB0ZXh0cy5wcmV0aXRsZSB8fFxuICAgICAgICAgICAgdGV4dHMuc3VidGl0bGUgfHxcbiAgICAgICAgICAgIHRleHRzLnRpdGxlIHx8XG4gICAgICAgICAgICB0ZXh0cy5kZXNjcmlwdGlvbiB8fFxuICAgICAgICAgICAgdGV4dHMudGV4dFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXh0cmFjdFRleHRzRnJvbUltYWdlKFxuICAgICAgICBpbWFnZTogQmFieWxvbkltYWdlSVxuICAgICk6IEJhYnlsb25UZXh0SW5mb0kgfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBwcmV0aXRsZSA9XG4gICAgICAgICAgICBpbWFnZT8ucHJldGl0bGUgPz9cbiAgICAgICAgICAgIGltYWdlPy5uZFByZXRpdGxlID8/XG4gICAgICAgICAgICAoaW1hZ2UgYXMgYW55KT8ubmRfcHJldGl0bGUgPz9cbiAgICAgICAgICAgICcnO1xuICAgICAgICBjb25zdCBzdWJ0aXRsZSA9XG4gICAgICAgICAgICBpbWFnZT8uc3VidGl0bGUgPz9cbiAgICAgICAgICAgIGltYWdlPy5uZFN1YnRpdGxlID8/XG4gICAgICAgICAgICAoaW1hZ2UgYXMgYW55KT8ubmRfc3VidGl0bGUgPz9cbiAgICAgICAgICAgICcnO1xuICAgICAgICBjb25zdCB0aXRsZSA9XG4gICAgICAgICAgICBpbWFnZT8udGl0bGUgPz8gaW1hZ2U/Lm5kVGl0bGUgPz8gKGltYWdlIGFzIGFueSk/Lm5kX3RpdGxlID8/ICcnO1xuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGltYWdlPy5kZXNjcmlwdGlvbiA/PyAnJztcblxuICAgICAgICBjb25zdCB0ZXh0czogQmFieWxvblRleHRJbmZvSSA9IHtcbiAgICAgICAgICAgIHN1YnRpdGxlOiBzdWJ0aXRsZSB8fCBwcmV0aXRsZSB8fCAnJyxcbiAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzQW55VGV4dCh0ZXh0cykgPyB0ZXh0cyA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbn1cbiIsIjxzZWN0aW9uIFthdHRyLmNsYXNzXT1cImRhdGEuc2VjdGlvbkNsYXNzXCIgICpuZ0lmPVwiaGFzVmFsaWRTbGlkZXNcIj5cbiAgPGRpdiBbYXR0ci5jbGFzc109XCJkYXRhLndyYXBwZXJDbGFzc1wiPlxuXG4gICAgPGRpdiBjbGFzcz1cIndyYXAtc2VjdGlvbi1nYWxsZXJ5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1nYWxsZXJ5LWNvbnRlbnQganMtYWN0aXZlLXNsaWRlclwiIFthdHRyLmRhdGEtc2xpZGVyX25hbWVdPVwiZGF0YS5zbGlkZXIubmFtZVwiXG4gICAgICAgIFthdHRyLmRhdGEtc2xpZGVyX3Nob3didG5zXT1cImRhdGEuc2xpZGVyLnNob3dCdXR0b25zXCIgW2F0dHIuZGF0YS1zbGlkZXJfYnRuc109XCJkYXRhLnNsaWRlci5idXR0b25zQ2xhc3NcIlxuICAgICAgICBbYXR0ci5kYXRhLXNsaWRlcl9zaG93ZG90c109XCJkYXRhLnNsaWRlci5zaG93RG90c1wiIFthdHRyLmRhdGEtc2xpZGVyX2ZhZGVdPVwiZGF0YS5zbGlkZXIuZmFkZVwiXG4gICAgICAgIFthdHRyLmRhdGEtc2xpZGVyX2F1dG9wbGF5XT1cImRhdGEuc2xpZGVyLmF1dG9wbGF5XCIgW2F0dHIuZGF0YS1zbGlkZXNfcGNdPVwiZGF0YS5zbGlkZXIuc2xpZGVzUGNcIlxuICAgICAgICBbYXR0ci5kYXRhLXNsaWRlc19sYXB0b3BdPVwiZGF0YS5zbGlkZXIuc2xpZGVzTGFwdG9wXCIgW2F0dHIuZGF0YS1zbGlkZXNfdGFibGV0XT1cImRhdGEuc2xpZGVyLnNsaWRlc1RhYmxldFwiXG4gICAgICAgIFthdHRyLmRhdGEtc2xpZGVzX21vYmlsZV09XCJkYXRhLnNsaWRlci5zbGlkZXNNb2JpbGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtZ2FsbGVyeS1jb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tc2xpZGVyLWFycm93cyBqcy1zbGlkZXItYXJyb3dzIG0tYm90b25lc2Fycm93XCI+XG4gICAgICAgICAgICBAaWYgKHNsaWRlcy5sZW5ndGggPiAxICYmIGRhdGEuc2xpZGVyLnNob3dCdXR0b25zKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21wbGV4LWluZm8tbWVkaWFfY291bnRlciBjb3VudGVyIG0tY291bnRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlci1udW0gYWN0dWFsXCI+e3sgZm9ybWF0Q291bnRlcihjdXJyZW50U2xpZGUpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlci1udW0gdG90YWxcIj57eyBmb3JtYXRDb3VudGVyKHRvdGFsU2xpZGVzKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzd2lwZXItYnRuIHN3aXBlci1hcnJvdyBzd2lwZXItYnV0dG9uLXByZXZcIiBbbmdDbGFzc109XCJkYXRhLnNsaWRlci5idXR0b25zQ2xhc3NcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiQW50ZXJpb3JcIiAjc2xpZGVyUHJldj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInN3aXBlci1idG4gc3dpcGVyLWFycm93IHN3aXBlci1idXR0b24tbmV4dFwiIFtuZ0NsYXNzXT1cImRhdGEuc2xpZGVyLmJ1dHRvbnNDbGFzc1wiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJTaWd1aWVudGVcIiAjc2xpZGVyTmV4dD48L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2FsbGVyeS1jb250ZW50LWVsZW1lbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnYWxsZXJ5LWNvbnRlbnQtbXVsdGltZWRpYVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcC1jb250ZW50LW11bHRpbWVkaWFcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1tdWx0aW1lZGlhLXBob3RvcyBqcy1zZWN0aW9uLXNsaWRlciBzd2lwZXJcIiAjc2VjdGlvblNsaWRlciBiYWJ5bG9uU3dpcGVyQ3NzTG9hZGVyPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN3aXBlci13cmFwcGVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChzbGlkZSBvZiBzbGlkZXM7IHRyYWNrIHRyYWNrU2xpZGUoJGluZGV4KSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXVsdGltZWRpYS1waG90b3MtZWxlbWVudCBzd2lwZXItc2xpZGVcIiBzdHlsZT1cImZsZXgtc2hyaW5rOiAwO1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLXBob3Rvcy1lbGVtZW50IGpzLXNlY3Rpb24tYXJyb3dzLXpvbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmaWd1cmUgI2ltYWdlUmVmIGNsYXNzPVwicGhvdG9zLWVsZW1lbnQtaW1nIHJlc3BvbnNpdmUtcmVzaXplXCIgcm9sZT1cImltZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2xpZGUuYXJpYUxhYmVsIHx8IG51bGxcIiBbYXR0ci5kYXRhLWZpbGVuYW1lXT1cInNsaWRlLmRhdGFGaWxlbmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtc3JjXT1cInNsaWRlLmRhdGFMYXp5aW1nXCIgW3N0eWxlLmJhY2tncm91bmRJbWFnZV09XCJiYWNrZ3JvdW5kSW1hZ2Uoc2xpZGUpXCI+PC9maWd1cmU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIEBpZiAoc2xpZGVzLmxlbmd0aCA+IDEgJiYgZGF0YS5zbGlkZXIuc2hvd0RvdHMpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzd2lwZXItcGFnaW5hdGlvblwiICNzbGlkZXJQYWdpbmF0aW9uPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdhbGxlcnktY29udGVudC1pbmZvXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLWNvbnRlbnQtaW5mb1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWluZm8tYm94XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcC1pbmZvLWJveFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICNoZWFkZXJSZWY+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChhY3RpdmVUZXh0cz8uc3VidGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImluZm8tYm94LXN1YnRpdGxlXCI+e3sgYWN0aXZlVGV4dHM/LnN1YnRpdGxlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGl2ZVRleHRzPy50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImluZm8tYm94LXRpdGxlXCI+e3sgYWN0aXZlVGV4dHM/LnRpdGxlIH19PC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGl2ZVRleHRzPy5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgI3RleHRDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImluZm8tYm94LXRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50ZXh0LWNvbGxhcHNlXT1cInRleHRPdmVyZmxvd3MgJiYgY29sbGFwc2VkTGlua3NcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0LnB4XT1cInRleHRPdmVyZmxvd3MgJiYgY29sbGFwc2VkTGlua3MgPyB0ZXh0Q29sbGFwc2VkSGVpZ2h0IDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGFjdGl2ZVRleHRzPy5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKHRleHRPdmVyZmxvd3MpIHtcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImluZm8tYm94LXRvZ2dsZVwiIChjbGljayk9XCJ0b2dnbGVUZXh0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBjb2xsYXBzZWRMaW5rcyA/IGFjdGl2ZVNsaWRlTGlua0xhYmVsIDogJ09jdWx0YXInIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGl2ZUJ1dHRvbj8udXJsICYmIGFjdGl2ZUJ1dHRvbj8ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS1idXR0b25EXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mubm8tbWFyZ2luXT1cInRleHRPdmVyZmxvd3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImFjdGl2ZUJ1dHRvbj8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiYWN0aXZlQnV0dG9uPy5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cImFjdGl2ZUJ1dHRvbj8udGFyZ2V0IHx8ICdfc2VsZidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2ZUJ1dHRvbj8udGFyZ2V0IHx8ICdfc2VsZicpID09PSAnX2JsYW5rJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnbm9vcGVuZXIgbm9yZWZlcnJlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhY3RpdmVCdXR0b24/LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhY3RpdmVCdXR0b24/LmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
|
package/fesm2022/ctt-babylon.mjs
CHANGED
|
@@ -29607,7 +29607,8 @@ class SliC2ImgTxtLV2Component {
|
|
|
29607
29607
|
const hasCTA = !!this.activeButton;
|
|
29608
29608
|
const overflowThreshold = totalAvailable - (hasCTA ? CTA_HEIGHT : 0);
|
|
29609
29609
|
const availableForText = totalAvailable - TOGGLE_HEIGHT - (hasCTA ? CTA_HEIGHT : 0);
|
|
29610
|
-
|
|
29610
|
+
const MIN_TEXT_HEIGHT = 60;
|
|
29611
|
+
this.textCollapsedHeight = Math.max(availableForText, MIN_TEXT_HEIGHT);
|
|
29611
29612
|
this.textOverflows = descHeight > overflowThreshold;
|
|
29612
29613
|
if (!this.textOverflows) {
|
|
29613
29614
|
this.collapsedLinks = true;
|
|
@@ -31099,7 +31100,8 @@ class SliC2ImgTxtRV2Component {
|
|
|
31099
31100
|
const hasCTA = !!this.activeButton;
|
|
31100
31101
|
const overflowThreshold = totalAvailable - (hasCTA ? CTA_HEIGHT : 0);
|
|
31101
31102
|
const availableForText = totalAvailable - TOGGLE_HEIGHT - (hasCTA ? CTA_HEIGHT : 0);
|
|
31102
|
-
|
|
31103
|
+
const MIN_TEXT_HEIGHT = 60;
|
|
31104
|
+
this.textCollapsedHeight = Math.max(availableForText, MIN_TEXT_HEIGHT);
|
|
31103
31105
|
this.textOverflows = descHeight > overflowThreshold;
|
|
31104
31106
|
if (!this.textOverflows) {
|
|
31105
31107
|
this.collapsedLinks = true;
|