@huntsman-cancer-institute/dashboard 17.9.2 → 17.9.4
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/configure/widget-add.component.mjs +4 -4
- package/esm2022/configure/widget-attribute.component.mjs +4 -4
- package/esm2022/configure/widget-configure.component.mjs +4 -4
- package/esm2022/dashboard.component.mjs +4 -4
- package/esm2022/dashboard.module.mjs +5 -5
- package/esm2022/pipes/has-editable-attributes.pipe.mjs +4 -4
- package/esm2022/services/dashboard-global.service.mjs +4 -4
- package/esm2022/services/dashboard.service.mjs +4 -4
- package/esm2022/widget/widget-container.component.mjs +4 -4
- package/esm2022/widget/widget-host.component.mjs +4 -4
- package/esm2022/widget/widget.component.mjs +4 -4
- package/fesm2022/huntsman-cancer-institute-dashboard.mjs +36 -36
- package/fesm2022/huntsman-cancer-institute-dashboard.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -123,8 +123,8 @@ export class WidgetAddComponent {
|
|
|
123
123
|
searchWidgets(filter) {
|
|
124
124
|
this.widgets = this.dashboardService.getWidgetsByFilter(filter);
|
|
125
125
|
}
|
|
126
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
127
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
126
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetAddComponent, deps: [{ token: i1.DashboardService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
127
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WidgetAddComponent, selector: "widget-add", inputs: { dashboardIndex: "dashboardIndex" }, viewQueries: [{ propertyName: "widgetConfigureComponent", first: true, predicate: WidgetConfigureComponent, descendants: true }], ngImport: i0, template: `
|
|
128
128
|
<div class="overlay" [@openBacksplash]="openState">
|
|
129
129
|
<div class="modal-dialog" [@openModal]="openState" role="document">
|
|
130
130
|
<div class="modal-header">
|
|
@@ -257,7 +257,7 @@ export class WidgetAddComponent {
|
|
|
257
257
|
])
|
|
258
258
|
] }); }
|
|
259
259
|
}
|
|
260
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetAddComponent, decorators: [{
|
|
261
261
|
type: Component,
|
|
262
262
|
args: [{ selector: "widget-add", template: `
|
|
263
263
|
<div class="overlay" [@openBacksplash]="openState">
|
|
@@ -397,4 +397,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
397
397
|
type: ViewChild,
|
|
398
398
|
args: [WidgetConfigureComponent, { static: false }]
|
|
399
399
|
}] } });
|
|
400
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWFkZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2NvbmZpZ3VyZS93aWRnZXQtYWRkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBSS9FLE9BQU8sRUFBMEIsY0FBYyxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUEyQixNQUFNLGdCQUFnQixDQUFDO0FBQ2hKLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRS9ELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDOzs7O0FBRXRFOztHQUVHO0FBK1BILE1BQU0sT0FBTyxrQkFBa0I7SUF3QjdCLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBckJ0RCxtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUVwQixTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBS2pCLGdCQUFXLEdBQVcsTUFBTSxDQUFDO1FBQzdCLGNBQVMsR0FBVyxRQUFRLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7SUFZa0IsQ0FBQztJQUUxRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQWtCLEVBQUUsRUFBRTtZQUN0RSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJ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QUMsR0FBRyxDQUFDLENBQUM7eUJBQzdDLENBQ0Y7d0JBQ0QsT0FBTyxDQUFDLFdBQVcsRUFDakI7NEJBQ0UsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7Z0NBQ2hCLE9BQU8sRUFBRSxHQUFHOzZCQUNiLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztnQ0FDcEIsT0FBTyxFQUFFLEdBQUc7NkJBQ2IsQ0FBQyxDQUFDOzRCQUNILEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDO2dDQUNwQixPQUFPLEVBQUUsR0FBRzs2QkFDYixDQUFDLENBQUM7NEJBQ0gsVUFBVSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDNUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzt5QkFDN0MsQ0FDRjtxQkFDRjtxRkF1SEQsY0FBYztzQkFEYixLQUFLO2dCQW9CRSx3QkFBd0I7c0JBRC9CLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSAyMDE2IEh1bnRzbWFuIENhbmNlciBJbnN0aXR1dGUgYXQgdGhlIFVuaXZlcnNpdHkgb2YgVXRhaCwgQ29uZmlkZW50aWFsIGFuZCBQcm9wcmlldGFyeVxyXG4gKi9cclxuaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xyXG5cclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcblxyXG5pbXBvcnQgeyBXaWRnZXQsIFdpZGdldENhdGVnb3J5LCBXaWRnZXRJbnN0YW5jZSwgV2lkZ2V0QXR0cmlidXRlVmFsdWUsIFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0LCBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXJ9IGZyb20gXCIuLi9tb2RlbC9tb2RlbFwiO1xyXG5pbXBvcnQge0Rhc2hib2FyZFNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy9kYXNoYm9hcmQuc2VydmljZVwiO1xyXG5pbXBvcnQge1dpZGdldENvbXBvbmVudH0gZnJvbSBcIi4uL3dpZGdldC93aWRnZXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7V2lkZ2V0Q29uZmlndXJlQ29tcG9uZW50fSBmcm9tIFwiLi93aWRnZXQtY29uZmlndXJlLmNvbXBvbmVudFwiO1xyXG5cclxuLyoqXHJcbiAqIEBzaW5jZSAxLjAuMFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwid2lkZ2V0LWFkZFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheVwiIFtAb3BlbkJhY2tzcGxhc2hdPVwib3BlblN0YXRlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIiBbQG9wZW5Nb2RhbF09XCJvcGVuU3RhdGVcIiByb2xlPVwiZG9jdW1lbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZVwiPkFkZCBXaWRnZXQ8L2g0PlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiIFtzdHlsZS5kaXNwbGF5XT1cInN0ZXAgPT09IDEgPyAnYmxvY2snIDogJ25vbmUnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5LWxlZnRcIj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LXdpZGdldENhdGVnb3J5IFtuZ0Zvck9mXT1cIndpZGdldENhdGVnb3JpZXNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtY2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3aWRnZXRDYXRlZ29yeS5pZFdpZGdldENhdGVnb3J5ID09PSBzZWxlY3RlZFdpZGdldENhdGVnb3J5Py5pZFdpZGdldENhdGVnb3J5ID8gJ3NlbGVjdGVkJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFdpZGdldENhdGVnb3J5KHdpZGdldENhdGVnb3J5KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwid2lkZ2V0Q2F0ZWdvcnkuaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aWRnZXRDYXRlZ29yeS5pY29uLmluZGV4T2YoJy5zdmcnKSA+IDA7IGVsc2UgZmFJY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwid2lkZ2V0Q2F0ZWdvcnkuaWNvblwiIGNsYXNzPVwid2lkZ2V0LWNhdGVnb3J5LWljb25cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZmFJY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e3dpZGdldENhdGVnb3J5Lmljb259fSBmYS0yeCB3aWRnZXQtY2F0ZWdvcnktaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF3aWRnZXRDYXRlZ29yeS5pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcXVlc3Rpb24tY2lyY2xlIGZhLTJ4IHdpZGdldC1jYXRlZ29yeS1pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHktcmlnaHRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgd2lkZ2V0LXNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLXByZXBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCIgaWQ9XCJzZWFyY2hcIj48aSBjbGFzcz1cImZhcyBmYS1zZWFyY2ggZmEtbGdcIj48L2k+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICNzZWFyY2hXaWRnZXRcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJzZWFyY2hXaWRnZXRzKHNlYXJjaFdpZGdldC52YWx1ZSlcIiBhcmlhLWxhYmVsPVwiaGNpLW5nLXNlYXJjaC13aWRnZXQtYWRkXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogMTBweDtcIiAoY2xpY2spPVwic2V0RGlzcGxheU1vZGUoJ2xpc3QnKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1saXN0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogMTBweDtcIiAoY2xpY2spPVwic2V0RGlzcGxheU1vZGUoJ2dyaWQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aFwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aWRnZXRzICYmIHdpZGdldHMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5ObyB3aWRnZXRzIG1hdGNoZWQgdGhlIHNlYXJjaCBjcml0ZXJpYS48L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LXdpZGdldCBbbmdGb3JPZl09XCJ3aWRnZXRzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkaXNwbGF5TW9kZSA9PT0gJ2xpc3QnXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFdpZGdldCh3aWRnZXQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtaWNvbi1ob3N0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndpZGdldC5pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwid2lkZ2V0Lmljb24uaW5kZXhPZignLnN2ZycpID4gMDsgZWxzZSBmYUljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIndpZGdldC5pY29uXCIgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZmFJY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7d2lkZ2V0Lmljb259fSBmYS0yeCB3aWRnZXQtaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF3aWRnZXQuaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcXVlc3Rpb24tY2lyY2xlIGZhLTJ4IHdpZGdldC1pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndpZGdldC1kZXNjcmlwdGlvbi1ob3N0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndpZGdldC10aXRsZVwiPnt7d2lkZ2V0LnRpdGxlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7d2lkZ2V0LmRlc2NyaXB0aW9ufX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIHdpZGdldC1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheU1vZGUgPT09ICdncmlkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RXaWRnZXQod2lkZ2V0KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCB3aWRnZXQtaWNvbi1ob3N0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndpZGdldC5pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwid2lkZ2V0Lmljb24uaW5kZXhPZignLnN2ZycpID4gMDsgZWxzZSBmYUljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIndpZGdldC5pY29uXCIgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZmFJY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7d2lkZ2V0Lmljb259fSBmYS0yeCB3aWRnZXQtaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF3aWRnZXQuaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcXVlc3Rpb24tY2lyY2xlIGZhLTJ4IHdpZGdldC1pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgd2lkZ2V0LWRlc2NyaXB0aW9uLWhvc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCB3aWRnZXQtdGl0bGVcIj57e3dpZGdldC50aXRsZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0ZXAgPT09IDFcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJjbG9zZSgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiAoY2xpY2spPVwiYWRkKClcIj5BZGQ8L2J1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcihcIm9wZW5CYWNrc3BsYXNoXCIsXHJcbiAgICAgIFtcclxuICAgICAgICBzdGF0ZShcImluXCIsIHN0eWxlKHtcclxuICAgICAgICAgIGRpc3BsYXk6IFwibm9uZVwiXHJcbiAgICAgICAgfSkpLFxyXG4gICAgICAgIHN0YXRlKFwiaGlkZGVuXCIsIHN0eWxlKHtcclxuICAgICAgICAgIGRpc3BsYXk6IFwibm9uZVwiXHJcbiAgICAgICAgfSkpLFxyXG4gICAgICAgIHN0YXRlKFwib3BlbmVkXCIsIHN0eWxlKHtcclxuICAgICAgICAgIGRpc3BsYXk6IFwiZmxleFwiXHJcbiAgICAgICAgfSkpLFxyXG4gICAgICAgIHRyYW5zaXRpb24oXCJoaWRkZW4gPT4gb3BlbmVkXCIsIGFuaW1hdGUoMCkpLFxyXG4gICAgICAgIHRyYW5zaXRpb24oXCJvcGVuZWQgPT4gaGlkZGVuXCIsIGFuaW1hdGUoMjAwKSlcclxuICAgICAgXVxyXG4gICAgKSxcclxuICAgIHRyaWdnZXIoXCJvcGVuTW9kYWxcIixcclxuICAgICAgW1xyXG4gICAgICAgIHN0YXRlKFwiaW5cIiwgc3R5bGUoe1xyXG4gICAgICAgICAgb3BhY2l0eTogXCIwXCJcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgc3RhdGUoXCJoaWRkZW5cIiwgc3R5bGUoe1xyXG4gICAgICAgICAgb3BhY2l0eTogXCIwXCJcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgc3RhdGUoXCJvcGVuZWRcIiwgc3R5bGUoe1xyXG4gICAgICAgICAgb3BhY2l0eTogXCIxXCJcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgdHJhbnNpdGlvbihcImhpZGRlbiA9PiBvcGVuZWRcIiwgYW5pbWF0ZSg1MDApKSxcclxuICAgICAgICB0cmFuc2l0aW9uKFwib3BlbmVkID0+IGhpZGRlblwiLCBhbmltYXRlKDIwMCkpXHJcbiAgICAgIF1cclxuICAgIClcclxuICBdLFxyXG4gIHN0eWxlczogW2BcclxuXHJcbiAgICAub3ZlcmxheSB7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgei1pbmRleDogOTk5OTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcclxuICAgICAgd2lkdGg6IDEwMHZ3O1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC5tb2RhbC1kaWFsb2cge1xyXG4gICAgICBtYXgtd2lkdGg6IDc1dnc7XHJcbiAgICAgIG1pbi13aWR0aDogNzV2dztcclxuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgICAgbWFyZ2luLXRvcDogYXV0bztcclxuICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkO1xyXG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcclxuICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcclxuICAgIH1cclxuXHJcbiAgICAubW9kYWwtYm9keSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIH1cclxuXHJcbiAgICAubW9kYWwtYm9keS1sZWZ0IHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xyXG4gICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcclxuICAgIH1cclxuXHJcbiAgICAubW9kYWwtYm9keS1yaWdodCB7XHJcbiAgICAgIHdpZHRoOiA3MCU7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxuICAgICAgYm9yZGVyLWxlZnQ6IGJsYWNrIDFweCBzb2xpZDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgICAgbWluLWhlaWdodDogMzAwcHg7XHJcbiAgICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC53aWRnZXQtY2F0ZWdvcnkge1xyXG4gICAgICBtYXJnaW46IDEwcHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XHJcbiAgICB9XHJcblxyXG4gICAgLndpZGdldC1jYXRlZ29yeS5zZWxlY3RlZCB7XHJcbiAgICAgIGJvcmRlcjogcmVkIDJweCBzb2xpZDtcclxuICAgIH1cclxuXHJcbiAgICAud2lkZ2V0LWNhdGVnb3J5LWljb24ge1xyXG4gICAgICB3aWR0aDogODBweDtcclxuICAgICAgaGVpZ2h0OiA4MHB4O1xyXG4gICAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB9XHJcblxyXG4gICAgLndpZGdldC1zZWFyY2gge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC53aWRnZXQtbGFiZWwge1xyXG4gICAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLndpZGdldC1sYWJlbC5ncmlkIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB3aWR0aDogMTUwcHg7XHJcbiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgICBtYXgtaGVpZ2h0OiAxMDBweDtcclxuICAgICAgbWluLWhlaWdodDogMTAwcHg7XHJcbiAgICAgIG1hcmdpbjogNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIC53aWRnZXQtaWNvbi1ob3N0IHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB3aWR0aDogNTBweDtcclxuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIH1cclxuXHJcbiAgICAud2lkZ2V0LWljb24ge1xyXG4gICAgICB3aWR0aDogNTBweDtcclxuICAgICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgfVxyXG5cclxuICAgIC53aWRnZXQtdGl0bGUge1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuXHJcbiAgICAud2lkZ2V0LWRlc2NyaXB0aW9uLWhvc3Qge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA1NXB4KTtcclxuICAgIH1cclxuXHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFdpZGdldEFkZENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGFzaGJvYXJkSW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG4gIHB1YmxpYyBzdGVwOiBudW1iZXIgPSAwO1xyXG5cclxuICBwdWJsaWMgd2lkZ2V0czogV2lkZ2V0W107XHJcbiAgcHVibGljIHdpZGdldENhdGVnb3JpZXM6IFdpZGdldENhdGVnb3J5W107XHJcblxyXG4gIHB1YmxpYyBkaXNwbGF5TW9kZTogc3RyaW5nID0gXCJsaXN0XCI7XHJcbiAgcHVibGljIG9wZW5TdGF0ZTogc3RyaW5nID0gXCJoaWRkZW5cIjtcclxuICBwdWJsaWMgd2lkZ2V0UmVuZGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIHNlbGVjdGVkV2lkZ2V0OiBXaWRnZXQ7XHJcbiAgcHVibGljIHNlbGVjdGVkV2lkZ2V0Q2F0ZWdvcnk6IFdpZGdldENhdGVnb3J5O1xyXG5cclxuICBwcml2YXRlIHdpZGdldEluc3RhbmNlOiBXaWRnZXRJbnN0YW5jZTtcclxuXHJcbiAgcHJpdmF0ZSB3aWRnZXRSZW5kZXJlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBAVmlld0NoaWxkKFdpZGdldENvbmZpZ3VyZUNvbXBvbmVudCwge3N0YXRpYzogZmFsc2V9KVxyXG4gIHByaXZhdGUgd2lkZ2V0Q29uZmlndXJlQ29tcG9uZW50OiBXaWRnZXRDb25maWd1cmVDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogRGFzaGJvYXJkU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuYWRkV2lkZ2V0U3ViamVjdC5zdWJzY3JpYmUoKGFkZFdpZGdldDogYm9vbGVhbikgPT4ge1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgdGhpcy5vcGVuU3RhdGUgPSBcIm9wZW5lZFwiO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgdGhpcy53aWRnZXRSZW5kZXJlZFN1YnNjcmlwdGlvbiA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRXaWRnZXRSZW5kZXJlZCgpLnN1YnNjcmliZSgod2lkZ2V0UmVuZGVyZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKHdpZGdldFJlbmRlcmVkICYmIHRoaXMuc3RlcCA9PT0gMikge1xyXG4gICAgICAgIHRoaXMud2lkZ2V0UmVuZGVyZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMud2lkZ2V0UmVuZGVyZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMud2lkZ2V0cyA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRXaWRnZXRzQnlGaWx0ZXIodW5kZWZpbmVkKTtcclxuICAgIHRoaXMud2lkZ2V0Q2F0ZWdvcmllcyA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRXaWRnZXRDYXRlZ29yaWVzKCk7XHJcbiAgICB0aGlzLnN0ZXAgPSAxO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmUtZmlsdGVyIHRoZSB3aWRnZXQgbGlzdCBiYXNlZCB1cG9uIGEgY2hhbmdlIGluIHdpZGdldCBjYXRlZ29yeS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7V2lkZ2V0Q2F0ZWdvcnl9IHdpZGdldENhdGVnb3J5XHJcbiAgICovXHJcbiAgc2VsZWN0V2lkZ2V0Q2F0ZWdvcnkoc2VsZWN0ZWRXaWRnZXRDYXRlZ29yeTogV2lkZ2V0Q2F0ZWdvcnkpIHtcclxuICAgIHRoaXMud2lkZ2V0cyA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRXaWRnZXRzQnlGaWx0ZXIodW5kZWZpbmVkKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkV2lkZ2V0Q2F0ZWdvcnkgJiYgdGhpcy5zZWxlY3RlZFdpZGdldENhdGVnb3J5LmlkV2lkZ2V0Q2F0ZWdvcnkgPT09IHNlbGVjdGVkV2lkZ2V0Q2F0ZWdvcnkuaWRXaWRnZXRDYXRlZ29yeSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0Q2F0ZWdvcnkgPSB1bmRlZmluZWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0Q2F0ZWdvcnkgPSBzZWxlY3RlZFdpZGdldENhdGVnb3J5O1xyXG4gICAgICB0aGlzLndpZGdldHMgPSB0aGlzLndpZGdldHMuZmlsdGVyKCh3aWRnZXQ6IFdpZGdldCkgPT4ge1xyXG4gICAgICAgIGlmICh3aWRnZXQud2lkZ2V0Q2F0ZWdvcmllcyAmJiB3aWRnZXQud2lkZ2V0Q2F0ZWdvcmllcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICByZXR1cm4gd2lkZ2V0LndpZGdldENhdGVnb3JpZXMuZmlsdGVyKCh3aWRnZXRDYXRlZ29yeTogV2lkZ2V0Q2F0ZWdvcnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHdpZGdldENhdGVnb3J5LmlkV2lkZ2V0Q2F0ZWdvcnkgPT09IHNlbGVjdGVkV2lkZ2V0Q2F0ZWdvcnkuaWRXaWRnZXRDYXRlZ29yeTtcclxuICAgICAgICAgIH0pLmxlbmd0aCA+IDA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gIElmIHRoZXJlIGFyZSBubyBhdHRyaWJ1dGVzIHRvIGJlIHNldCBieSB0aGUgdXNlciwgdGhlbiBhZGQgdGhlXHJcbiAgICogd2lkZ2V0LiAgSWYgdGhlcmUgYXJlIGluc3RhbmNlIGF0dHJpYnV0ZXMgdGhhdCBtdXN0IGJlIHNldCwgdGhlbiBzd2l0Y2ggdG8gYSB3aWRnZXQgY29uZmlndXJhdGlvbiBzY3JlZW4uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gd2lkZ2V0XHJcbiAgICovXHJcbiAgc2VsZWN0V2lkZ2V0KHdpZGdldDogV2lkZ2V0KSB7XHJcbiAgICB0aGlzLndpZGdldEluc3RhbmNlID0gbmV3IFdpZGdldEluc3RhbmNlKCk7XHJcbiAgICB0aGlzLndpZGdldEluc3RhbmNlLmlkV2lkZ2V0SW5zdGFuY2UgPSB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0SWROZXcoKTtcclxuICAgIHRoaXMud2lkZ2V0SW5zdGFuY2Uud2lkZ2V0ID0gd2lkZ2V0O1xyXG4gICAgdGhpcy53aWRnZXRJbnN0YW5jZS5hdHRyaWJ1dGVWYWx1ZVNldCA9IHRoaXMuZ2V0RGVmYXVsdFdpZGdldEF0dHJpYnV0ZVZhbHVlcyh0aGlzLndpZGdldEluc3RhbmNlLmlkV2lkZ2V0SW5zdGFuY2UsIHdpZGdldC5hdHRyaWJ1dGVDb250YWluZXJzKTtcclxuICAgIHRoaXMuYWRkKCk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5TW9kZShkaXNwbGF5TW9kZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpc3BsYXlNb2RlID0gZGlzcGxheU1vZGU7XHJcbiAgfVxyXG5cclxuICBnZXREZWZhdWx0V2lkZ2V0QXR0cmlidXRlVmFsdWVzKGlkV2lkZ2V0SW5zdGFuY2U6IG51bWJlciwgYXR0cmlidXRlQ29udGFpbmVyczogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyW10pOiBXaWRnZXRBdHRyaWJ1dGVWYWx1ZVNldCB7XHJcbiAgICBsZXQgdmFsdWVTZXQ6IFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0ID0gbmV3IFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0KCk7XHJcbiAgICB2YWx1ZVNldC5pZFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0ID0gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdldElkTmV3KCk7XHJcbiAgICBsZXQgdmFsdWVzOiBXaWRnZXRBdHRyaWJ1dGVWYWx1ZVtdID0gW107XHJcblxyXG4gICAgZm9yIChsZXQgY29udGFpbmVyIG9mIGF0dHJpYnV0ZUNvbnRhaW5lcnMpIHtcclxuICAgICAgZm9yIChsZXQgYXR0cmlidXRlIG9mIGNvbnRhaW5lci5hdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgaWYgKCFhdHRyaWJ1dGUudXNlckVkaXRhYmxlKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGF0dHJpYnV0ZS5tdWx0aVZhbHVlKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB2YWx1ZSA9IG5ldyBXaWRnZXRBdHRyaWJ1dGVWYWx1ZSgpO1xyXG4gICAgICAgIHZhbHVlLmlkV2lkZ2V0QXR0cmlidXRlVmFsdWUgPSB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0SWROZXcoKTtcclxuICAgICAgICB2YWx1ZS5pZFdpZGdldEF0dHJpYnV0ZSA9IGF0dHJpYnV0ZS5pZFdpZGdldEF0dHJpYnV0ZTtcclxuXHJcbiAgICAgICAgaWYgKGF0dHJpYnV0ZS5kYXRhVHlwZSA9PT0gXCJpbnRlZ2VyXCIpIHtcclxuICAgICAgICAgIHZhbHVlLnZhbHVlSW50ZWdlciA9IHBhcnNlSW50KGF0dHJpYnV0ZS5kZWZhdWx0VmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2YWx1ZS52YWx1ZVN0cmluZyA9IGF0dHJpYnV0ZS5kZWZhdWx0VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhbHVlcy5wdXNoKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlcyA9IHZhbHVlcztcclxuICAgIHJldHVybiB2YWx1ZVNldDtcclxuICB9XHJcblxyXG4gIGFkZCgpIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5hZGRXaWRnZXQodGhpcy5zZWxlY3RlZFdpZGdldCwgdGhpcy53aWRnZXRJbnN0YW5jZSwgdGhpcy5kYXNoYm9hcmRJbmRleCwgdGhpcy5zdGVwKTtcclxuICAgIHRoaXMuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGJhY2soKSB7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2Uuc2V0V2lkZ2V0UmVuZGVyZWQoZmFsc2UpO1xyXG4gICAgdGhpcy53aWRnZXRSZW5kZXJlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zdGVwID0gMTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnNldFdpZGdldFJlbmRlcmVkKGZhbHNlKTtcclxuICAgIHRoaXMud2lkZ2V0UmVuZGVyZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuc3RlcCA9IDA7XHJcbiAgICB0aGlzLm9wZW5TdGF0ZSA9IFwiaGlkZGVuXCI7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hXaWRnZXRzKGZpbHRlcjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLndpZGdldHMgPSB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0V2lkZ2V0c0J5RmlsdGVyKGZpbHRlcik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
400
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWFkZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2NvbmZpZ3VyZS93aWRnZXQtYWRkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBSS9FLE9BQU8sRUFBMEIsY0FBYyxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUEyQixNQUFNLGdCQUFnQixDQUFDO0FBQ2hKLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRS9ELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDOzs7O0FBRXRFOztHQUVHO0FBK1BILE1BQU0sT0FBTyxrQkFBa0I7SUF3QjdCLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBckJ0RCxtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUVwQixTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBS2pCLGdCQUFXLEdBQVcsTUFBTSxDQUFDO1FBQzdCLGNBQVMsR0FBVyxRQUFRLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7SUFZa0IsQ0FBQztJQUUxRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQWtCLEVBQUUsRUFBRTtZQUN0RSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJ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QUMsR0FBRyxDQUFDLENBQUM7eUJBQzdDLENBQ0Y7d0JBQ0QsT0FBTyxDQUFDLFdBQVcsRUFDakI7NEJBQ0UsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7Z0NBQ2hCLE9BQU8sRUFBRSxHQUFHOzZCQUNiLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztnQ0FDcEIsT0FBTyxFQUFFLEdBQUc7NkJBQ2IsQ0FBQyxDQUFDOzRCQUNILEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDO2dDQUNwQixPQUFPLEVBQUUsR0FBRzs2QkFDYixDQUFDLENBQUM7NEJBQ0gsVUFBVSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDNUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzt5QkFDN0MsQ0FDRjtxQkFDRjtxRkF1SEQsY0FBYztzQkFEYixLQUFLO2dCQW9CRSx3QkFBd0I7c0JBRC9CLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSAyMDE2IEh1bnRzbWFuIENhbmNlciBJbnN0aXR1dGUgYXQgdGhlIFVuaXZlcnNpdHkgb2YgVXRhaCwgQ29uZmlkZW50aWFsIGFuZCBQcm9wcmlldGFyeVxyXG4gKi9cclxuaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xyXG5cclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcblxyXG5pbXBvcnQgeyBXaWRnZXQsIFdpZGdldENhdGVnb3J5LCBXaWRnZXRJbnN0YW5jZSwgV2lkZ2V0QXR0cmlidXRlVmFsdWUsIFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0LCBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXJ9IGZyb20gXCIuLi9tb2RlbC9tb2RlbFwiO1xyXG5pbXBvcnQge0Rhc2hib2FyZFNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy9kYXNoYm9hcmQuc2VydmljZVwiO1xyXG5pbXBvcnQge1dpZGdldENvbXBvbmVudH0gZnJvbSBcIi4uL3dpZGdldC93aWRnZXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7V2lkZ2V0Q29uZmlndXJlQ29tcG9uZW50fSBmcm9tIFwiLi93aWRnZXQtY29uZmlndXJlLmNvbXBvbmVudFwiO1xyXG5cclxuLyoqXHJcbiAqIEBzaW5jZSAxLjAuMFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwid2lkZ2V0LWFkZFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheVwiIFtAb3BlbkJhY2tzcGxhc2hdPVwib3BlblN0YXRlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIiBbQG9wZW5Nb2RhbF09XCJvcGVuU3RhdGVcIiByb2xlPVwiZG9jdW1lbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZVwiPkFkZCBXaWRnZXQ8L2g0PlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiIFtzdHlsZS5kaXNwbGF5XT1cInN0ZXAgPT09IDEgPyAnYmxvY2snIDogJ25vbmUnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5LWxlZnRcIj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LXdpZGdldENhdGVnb3J5IFtuZ0Zvck9mXT1cIndpZGdldENhdGVnb3JpZXNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtY2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3aWRnZXRDYXRlZ29yeS5pZFdpZGdldENhdGVnb3J5ID09PSBzZWxlY3RlZFdpZGdldENhdGVnb3J5Py5pZFdpZGdldENhdGVnb3J5ID8gJ3NlbGVjdGVkJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFdpZGdldENhdGVnb3J5KHdpZGdldENhdGVnb3J5KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwid2lkZ2V0Q2F0ZWdvcnkuaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aWRnZXRDYXRlZ29yeS5pY29uLmluZGV4T2YoJy5zdmcnKSA+IDA7IGVsc2UgZmFJY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwid2lkZ2V0Q2F0ZWdvcnkuaWNvblwiIGNsYXNzPVwid2lkZ2V0LWNhdGVnb3J5LWljb25cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZmFJY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e3dpZGdldENhdGVnb3J5Lmljb259fSBmYS0yeCB3aWRnZXQtY2F0ZWdvcnktaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF3aWRnZXRDYXRlZ29yeS5pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcXVlc3Rpb24tY2lyY2xlIGZhLTJ4IHdpZGdldC1jYXRlZ29yeS1pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHktcmlnaHRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgd2lkZ2V0LXNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLXByZXBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCIgaWQ9XCJzZWFyY2hcIj48aSBjbGFzcz1cImZhcyBmYS1zZWFyY2ggZmEtbGdcIj48L2k+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICNzZWFyY2hXaWRnZXRcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJzZWFyY2hXaWRnZXRzKHNlYXJjaFdpZGdldC52YWx1ZSlcIiBhcmlhLWxhYmVsPVwiaGNpLW5nLXNlYXJjaC13aWRnZXQtYWRkXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogMTBweDtcIiAoY2xpY2spPVwic2V0RGlzcGxheU1vZGUoJ2xpc3QnKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1saXN0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogMTBweDtcIiAoY2xpY2spPVwic2V0RGlzcGxheU1vZGUoJ2dyaWQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aFwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aWRnZXRzICYmIHdpZGdldHMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5ObyB3aWRnZXRzIG1hdGNoZWQgdGhlIHNlYXJjaCBjcml0ZXJpYS48L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LXdpZGdldCBbbmdGb3JPZl09XCJ3aWRnZXRzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkaXNwbGF5TW9kZSA9PT0gJ2xpc3QnXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFdpZGdldCh3aWRnZXQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtaWNvbi1ob3N0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndpZGdldC5pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwid2lkZ2V0Lmljb24uaW5kZXhPZignLnN2ZycpID4gMDsgZWxzZSBmYUljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIndpZGdldC5pY29uXCIgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZmFJY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7d2lkZ2V0Lmljb259fSBmYS0yeCB3aWRnZXQtaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF3aWRnZXQuaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcXVlc3Rpb24tY2lyY2xlIGZhLTJ4IHdpZGdldC1pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndpZGdldC1kZXNjcmlwdGlvbi1ob3N0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndpZGdldC10aXRsZVwiPnt7d2lkZ2V0LnRpdGxlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7d2lkZ2V0LmRlc2NyaXB0aW9ufX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIHdpZGdldC1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheU1vZGUgPT09ICdncmlkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RXaWRnZXQod2lkZ2V0KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCB3aWRnZXQtaWNvbi1ob3N0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndpZGdldC5pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwid2lkZ2V0Lmljb24uaW5kZXhPZignLnN2ZycpID4gMDsgZWxzZSBmYUljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIndpZGdldC5pY29uXCIgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZmFJY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7d2lkZ2V0Lmljb259fSBmYS0yeCB3aWRnZXQtaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF3aWRnZXQuaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcXVlc3Rpb24tY2lyY2xlIGZhLTJ4IHdpZGdldC1pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgd2lkZ2V0LWRlc2NyaXB0aW9uLWhvc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCB3aWRnZXQtdGl0bGVcIj57e3dpZGdldC50aXRsZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0ZXAgPT09IDFcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJjbG9zZSgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiAoY2xpY2spPVwiYWRkKClcIj5BZGQ8L2J1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcihcIm9wZW5CYWNrc3BsYXNoXCIsXHJcbiAgICAgIFtcclxuICAgICAgICBzdGF0ZShcImluXCIsIHN0eWxlKHtcclxuICAgICAgICAgIGRpc3BsYXk6IFwibm9uZVwiXHJcbiAgICAgICAgfSkpLFxyXG4gICAgICAgIHN0YXRlKFwiaGlkZGVuXCIsIHN0eWxlKHtcclxuICAgICAgICAgIGRpc3BsYXk6IFwibm9uZVwiXHJcbiAgICAgICAgfSkpLFxyXG4gICAgICAgIHN0YXRlKFwib3BlbmVkXCIsIHN0eWxlKHtcclxuICAgICAgICAgIGRpc3BsYXk6IFwiZmxleFwiXHJcbiAgICAgICAgfSkpLFxyXG4gICAgICAgIHRyYW5zaXRpb24oXCJoaWRkZW4gPT4gb3BlbmVkXCIsIGFuaW1hdGUoMCkpLFxyXG4gICAgICAgIHRyYW5zaXRpb24oXCJvcGVuZWQgPT4gaGlkZGVuXCIsIGFuaW1hdGUoMjAwKSlcclxuICAgICAgXVxyXG4gICAgKSxcclxuICAgIHRyaWdnZXIoXCJvcGVuTW9kYWxcIixcclxuICAgICAgW1xyXG4gICAgICAgIHN0YXRlKFwiaW5cIiwgc3R5bGUoe1xyXG4gICAgICAgICAgb3BhY2l0eTogXCIwXCJcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgc3RhdGUoXCJoaWRkZW5cIiwgc3R5bGUoe1xyXG4gICAgICAgICAgb3BhY2l0eTogXCIwXCJcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgc3RhdGUoXCJvcGVuZWRcIiwgc3R5bGUoe1xyXG4gICAgICAgICAgb3BhY2l0eTogXCIxXCJcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgdHJhbnNpdGlvbihcImhpZGRlbiA9PiBvcGVuZWRcIiwgYW5pbWF0ZSg1MDApKSxcclxuICAgICAgICB0cmFuc2l0aW9uKFwib3BlbmVkID0+IGhpZGRlblwiLCBhbmltYXRlKDIwMCkpXHJcbiAgICAgIF1cclxuICAgIClcclxuICBdLFxyXG4gIHN0eWxlczogW2BcclxuXHJcbiAgICAub3ZlcmxheSB7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgei1pbmRleDogOTk5OTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcclxuICAgICAgd2lkdGg6IDEwMHZ3O1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC5tb2RhbC1kaWFsb2cge1xyXG4gICAgICBtYXgtd2lkdGg6IDc1dnc7XHJcbiAgICAgIG1pbi13aWR0aDogNzV2dztcclxuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgICAgbWFyZ2luLXRvcDogYXV0bztcclxuICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkO1xyXG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcclxuICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcclxuICAgIH1cclxuXHJcbiAgICAubW9kYWwtYm9keSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIH1cclxuXHJcbiAgICAubW9kYWwtYm9keS1sZWZ0IHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xyXG4gICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcclxuICAgIH1cclxuXHJcbiAgICAubW9kYWwtYm9keS1yaWdodCB7XHJcbiAgICAgIHdpZHRoOiA3MCU7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxuICAgICAgYm9yZGVyLWxlZnQ6IGJsYWNrIDFweCBzb2xpZDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgICAgbWluLWhlaWdodDogMzAwcHg7XHJcbiAgICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC53aWRnZXQtY2F0ZWdvcnkge1xyXG4gICAgICBtYXJnaW46IDEwcHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XHJcbiAgICB9XHJcblxyXG4gICAgLndpZGdldC1jYXRlZ29yeS5zZWxlY3RlZCB7XHJcbiAgICAgIGJvcmRlcjogcmVkIDJweCBzb2xpZDtcclxuICAgIH1cclxuXHJcbiAgICAud2lkZ2V0LWNhdGVnb3J5LWljb24ge1xyXG4gICAgICB3aWR0aDogODBweDtcclxuICAgICAgaGVpZ2h0OiA4MHB4O1xyXG4gICAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB9XHJcblxyXG4gICAgLndpZGdldC1zZWFyY2gge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC53aWRnZXQtbGFiZWwge1xyXG4gICAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLndpZGdldC1sYWJlbC5ncmlkIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB3aWR0aDogMTUwcHg7XHJcbiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgICBtYXgtaGVpZ2h0OiAxMDBweDtcclxuICAgICAgbWluLWhlaWdodDogMTAwcHg7XHJcbiAgICAgIG1hcmdpbjogNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIC53aWRnZXQtaWNvbi1ob3N0IHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB3aWR0aDogNTBweDtcclxuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIH1cclxuXHJcbiAgICAud2lkZ2V0LWljb24ge1xyXG4gICAgICB3aWR0aDogNTBweDtcclxuICAgICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgfVxyXG5cclxuICAgIC53aWRnZXQtdGl0bGUge1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuXHJcbiAgICAud2lkZ2V0LWRlc2NyaXB0aW9uLWhvc3Qge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA1NXB4KTtcclxuICAgIH1cclxuXHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFdpZGdldEFkZENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGFzaGJvYXJkSW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG4gIHB1YmxpYyBzdGVwOiBudW1iZXIgPSAwO1xyXG5cclxuICBwdWJsaWMgd2lkZ2V0czogV2lkZ2V0W107XHJcbiAgcHVibGljIHdpZGdldENhdGVnb3JpZXM6IFdpZGdldENhdGVnb3J5W107XHJcblxyXG4gIHB1YmxpYyBkaXNwbGF5TW9kZTogc3RyaW5nID0gXCJsaXN0XCI7XHJcbiAgcHVibGljIG9wZW5TdGF0ZTogc3RyaW5nID0gXCJoaWRkZW5cIjtcclxuICBwdWJsaWMgd2lkZ2V0UmVuZGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIHNlbGVjdGVkV2lkZ2V0OiBXaWRnZXQ7XHJcbiAgcHVibGljIHNlbGVjdGVkV2lkZ2V0Q2F0ZWdvcnk6IFdpZGdldENhdGVnb3J5O1xyXG5cclxuICBwcml2YXRlIHdpZGdldEluc3RhbmNlOiBXaWRnZXRJbnN0YW5jZTtcclxuXHJcbiAgcHJpdmF0ZSB3aWRnZXRSZW5kZXJlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBAVmlld0NoaWxkKFdpZGdldENvbmZpZ3VyZUNvbXBvbmVudCwge3N0YXRpYzogZmFsc2V9KVxyXG4gIHByaXZhdGUgd2lkZ2V0Q29uZmlndXJlQ29tcG9uZW50OiBXaWRnZXRDb25maWd1cmVDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogRGFzaGJvYXJkU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuYWRkV2lkZ2V0U3ViamVjdC5zdWJzY3JpYmUoKGFkZFdpZGdldDogYm9vbGVhbikgPT4ge1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgdGhpcy5vcGVuU3RhdGUgPSBcIm9wZW5lZFwiO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgdGhpcy53aWRnZXRSZW5kZXJlZFN1YnNjcmlwdGlvbiA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRXaWRnZXRSZW5kZXJlZCgpLnN1YnNjcmliZSgod2lkZ2V0UmVuZGVyZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKHdpZGdldFJlbmRlcmVkICYmIHRoaXMuc3RlcCA9PT0gMikge1xyXG4gICAgICAgIHRoaXMud2lkZ2V0UmVuZGVyZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMud2lkZ2V0UmVuZGVyZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMud2lkZ2V0cyA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRXaWRnZXRzQnlGaWx0ZXIodW5kZWZpbmVkKTtcclxuICAgIHRoaXMud2lkZ2V0Q2F0ZWdvcmllcyA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRXaWRnZXRDYXRlZ29yaWVzKCk7XHJcbiAgICB0aGlzLnN0ZXAgPSAxO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmUtZmlsdGVyIHRoZSB3aWRnZXQgbGlzdCBiYXNlZCB1cG9uIGEgY2hhbmdlIGluIHdpZGdldCBjYXRlZ29yeS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7V2lkZ2V0Q2F0ZWdvcnl9IHdpZGdldENhdGVnb3J5XHJcbiAgICovXHJcbiAgc2VsZWN0V2lkZ2V0Q2F0ZWdvcnkoc2VsZWN0ZWRXaWRnZXRDYXRlZ29yeTogV2lkZ2V0Q2F0ZWdvcnkpIHtcclxuICAgIHRoaXMud2lkZ2V0cyA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRXaWRnZXRzQnlGaWx0ZXIodW5kZWZpbmVkKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkV2lkZ2V0Q2F0ZWdvcnkgJiYgdGhpcy5zZWxlY3RlZFdpZGdldENhdGVnb3J5LmlkV2lkZ2V0Q2F0ZWdvcnkgPT09IHNlbGVjdGVkV2lkZ2V0Q2F0ZWdvcnkuaWRXaWRnZXRDYXRlZ29yeSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0Q2F0ZWdvcnkgPSB1bmRlZmluZWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0Q2F0ZWdvcnkgPSBzZWxlY3RlZFdpZGdldENhdGVnb3J5O1xyXG4gICAgICB0aGlzLndpZGdldHMgPSB0aGlzLndpZGdldHMuZmlsdGVyKCh3aWRnZXQ6IFdpZGdldCkgPT4ge1xyXG4gICAgICAgIGlmICh3aWRnZXQud2lkZ2V0Q2F0ZWdvcmllcyAmJiB3aWRnZXQud2lkZ2V0Q2F0ZWdvcmllcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICByZXR1cm4gd2lkZ2V0LndpZGdldENhdGVnb3JpZXMuZmlsdGVyKCh3aWRnZXRDYXRlZ29yeTogV2lkZ2V0Q2F0ZWdvcnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHdpZGdldENhdGVnb3J5LmlkV2lkZ2V0Q2F0ZWdvcnkgPT09IHNlbGVjdGVkV2lkZ2V0Q2F0ZWdvcnkuaWRXaWRnZXRDYXRlZ29yeTtcclxuICAgICAgICAgIH0pLmxlbmd0aCA+IDA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gIElmIHRoZXJlIGFyZSBubyBhdHRyaWJ1dGVzIHRvIGJlIHNldCBieSB0aGUgdXNlciwgdGhlbiBhZGQgdGhlXHJcbiAgICogd2lkZ2V0LiAgSWYgdGhlcmUgYXJlIGluc3RhbmNlIGF0dHJpYnV0ZXMgdGhhdCBtdXN0IGJlIHNldCwgdGhlbiBzd2l0Y2ggdG8gYSB3aWRnZXQgY29uZmlndXJhdGlvbiBzY3JlZW4uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gd2lkZ2V0XHJcbiAgICovXHJcbiAgc2VsZWN0V2lkZ2V0KHdpZGdldDogV2lkZ2V0KSB7XHJcbiAgICB0aGlzLndpZGdldEluc3RhbmNlID0gbmV3IFdpZGdldEluc3RhbmNlKCk7XHJcbiAgICB0aGlzLndpZGdldEluc3RhbmNlLmlkV2lkZ2V0SW5zdGFuY2UgPSB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0SWROZXcoKTtcclxuICAgIHRoaXMud2lkZ2V0SW5zdGFuY2Uud2lkZ2V0ID0gd2lkZ2V0O1xyXG4gICAgdGhpcy53aWRnZXRJbnN0YW5jZS5hdHRyaWJ1dGVWYWx1ZVNldCA9IHRoaXMuZ2V0RGVmYXVsdFdpZGdldEF0dHJpYnV0ZVZhbHVlcyh0aGlzLndpZGdldEluc3RhbmNlLmlkV2lkZ2V0SW5zdGFuY2UsIHdpZGdldC5hdHRyaWJ1dGVDb250YWluZXJzKTtcclxuICAgIHRoaXMuYWRkKCk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5TW9kZShkaXNwbGF5TW9kZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpc3BsYXlNb2RlID0gZGlzcGxheU1vZGU7XHJcbiAgfVxyXG5cclxuICBnZXREZWZhdWx0V2lkZ2V0QXR0cmlidXRlVmFsdWVzKGlkV2lkZ2V0SW5zdGFuY2U6IG51bWJlciwgYXR0cmlidXRlQ29udGFpbmVyczogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyW10pOiBXaWRnZXRBdHRyaWJ1dGVWYWx1ZVNldCB7XHJcbiAgICBsZXQgdmFsdWVTZXQ6IFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0ID0gbmV3IFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0KCk7XHJcbiAgICB2YWx1ZVNldC5pZFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0ID0gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdldElkTmV3KCk7XHJcbiAgICBsZXQgdmFsdWVzOiBXaWRnZXRBdHRyaWJ1dGVWYWx1ZVtdID0gW107XHJcblxyXG4gICAgZm9yIChsZXQgY29udGFpbmVyIG9mIGF0dHJpYnV0ZUNvbnRhaW5lcnMpIHtcclxuICAgICAgZm9yIChsZXQgYXR0cmlidXRlIG9mIGNvbnRhaW5lci5hdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgaWYgKCFhdHRyaWJ1dGUudXNlckVkaXRhYmxlKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGF0dHJpYnV0ZS5tdWx0aVZhbHVlKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB2YWx1ZSA9IG5ldyBXaWRnZXRBdHRyaWJ1dGVWYWx1ZSgpO1xyXG4gICAgICAgIHZhbHVlLmlkV2lkZ2V0QXR0cmlidXRlVmFsdWUgPSB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0SWROZXcoKTtcclxuICAgICAgICB2YWx1ZS5pZFdpZGdldEF0dHJpYnV0ZSA9IGF0dHJpYnV0ZS5pZFdpZGdldEF0dHJpYnV0ZTtcclxuXHJcbiAgICAgICAgaWYgKGF0dHJpYnV0ZS5kYXRhVHlwZSA9PT0gXCJpbnRlZ2VyXCIpIHtcclxuICAgICAgICAgIHZhbHVlLnZhbHVlSW50ZWdlciA9IHBhcnNlSW50KGF0dHJpYnV0ZS5kZWZhdWx0VmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2YWx1ZS52YWx1ZVN0cmluZyA9IGF0dHJpYnV0ZS5kZWZhdWx0VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhbHVlcy5wdXNoKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlcyA9IHZhbHVlcztcclxuICAgIHJldHVybiB2YWx1ZVNldDtcclxuICB9XHJcblxyXG4gIGFkZCgpIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5hZGRXaWRnZXQodGhpcy5zZWxlY3RlZFdpZGdldCwgdGhpcy53aWRnZXRJbnN0YW5jZSwgdGhpcy5kYXNoYm9hcmRJbmRleCwgdGhpcy5zdGVwKTtcclxuICAgIHRoaXMuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGJhY2soKSB7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2Uuc2V0V2lkZ2V0UmVuZGVyZWQoZmFsc2UpO1xyXG4gICAgdGhpcy53aWRnZXRSZW5kZXJlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zdGVwID0gMTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnNldFdpZGdldFJlbmRlcmVkKGZhbHNlKTtcclxuICAgIHRoaXMud2lkZ2V0UmVuZGVyZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuc3RlcCA9IDA7XHJcbiAgICB0aGlzLm9wZW5TdGF0ZSA9IFwiaGlkZGVuXCI7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hXaWRnZXRzKGZpbHRlcjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLndpZGdldHMgPSB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0V2lkZ2V0c0J5RmlsdGVyKGZpbHRlcik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -154,8 +154,8 @@ export class WidgetAttributeComponent {
|
|
|
154
154
|
this.widgetComponent.config(this.dashboardService.getConfigWidgetComponent().widgetInstance.attributeValueSet.attributeValues);
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
157
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetAttributeComponent, deps: [{ token: i1.DashboardService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
158
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WidgetAttributeComponent, selector: "widget-attribute", inputs: { idWidgetAttributeValueSet: "idWidgetAttributeValueSet", attribute: "attribute", widgetComponent: "widgetComponent" }, outputs: { changed: "changed" }, usesOnChanges: true, ngImport: i0, template: `
|
|
159
159
|
<ng-container *ngIf="init && attributeValues?.length > 0">
|
|
160
160
|
<div *ngIf="attribute.dataType === 'string'" class="form-group">
|
|
161
161
|
<label for="attr-string" class="bold">{{attribute.name}}</label>
|
|
@@ -248,7 +248,7 @@ export class WidgetAttributeComponent {
|
|
|
248
248
|
</ng-container>
|
|
249
249
|
`, isInline: true, styles: [".color-picker,div.color-picker{left:inherit!important;top:inherit!important}.form-control.checkbox{width:inherit;float:left;margin-top:5px;margin-left:4px;margin-right:4px}.graphical-choice{width:64px;padding:5px}.graphical-choice.selected{border:red 1px solid!important;border-radius:10px!important}label.bold{font-weight:700}.form-control.centered{margin-top:auto;margin-bottom:auto}.form-check-input{height:1rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.ColorPickerDirective, selector: "[colorPicker]", inputs: ["colorPicker", "cpWidth", "cpHeight", "cpToggle", "cpDisabled", "cpIgnoredElements", "cpFallbackColor", "cpColorMode", "cpCmykEnabled", "cpOutputFormat", "cpAlphaChannel", "cpDisableInput", "cpDialogDisplay", "cpSaveClickOutside", "cpCloseClickOutside", "cpUseRootViewContainer", "cpPosition", "cpPositionOffset", "cpPositionRelativeToArrow", "cpOKButton", "cpOKButtonText", "cpOKButtonClass", "cpCancelButton", "cpCancelButtonText", "cpCancelButtonClass", "cpEyeDropper", "cpPresetLabel", "cpPresetColors", "cpPresetColorsClass", "cpMaxPresetColorsLength", "cpPresetEmptyMessage", "cpPresetEmptyMessageClass", "cpAddColorButton", "cpAddColorButtonText", "cpAddColorButtonClass", "cpRemoveColorButtonClass", "cpArrowPosition", "cpExtraTemplate"], outputs: ["cpInputChange", "cpToggleChange", "cpSliderChange", "cpSliderDragEnd", "cpSliderDragStart", "colorPickerOpen", "colorPickerClose", "colorPickerCancel", "colorPickerSelect", "colorPickerChange", "cpCmykColorChange", "cpPresetColorsChange"], exportAs: ["ngxColorPicker"] }, { kind: "directive", type: i5.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i5.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i5.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
250
250
|
}
|
|
251
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
251
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetAttributeComponent, decorators: [{
|
|
252
252
|
type: Component,
|
|
253
253
|
args: [{ selector: "widget-attribute", template: `
|
|
254
254
|
<ng-container *ngIf="init && attributeValues?.length > 0">
|
|
@@ -351,4 +351,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
351
351
|
}], changed: [{
|
|
352
352
|
type: Output
|
|
353
353
|
}] } });
|
|
354
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWF0dHJpYnV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2NvbmZpZ3VyZS93aWRnZXQtYXR0cmlidXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWEsTUFBTSxFQUFnQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUk1SCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsZUFBZSxFQUF3QyxNQUFNLGdCQUFnQixDQUFDO0FBQzVHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQUUzRDs7R0FFRztBQW9JSCxNQUFNLE9BQU8sd0JBQXdCO0lBY25DLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBUjVDLFlBQU8sR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVoRSxTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLG9CQUFlLEdBQTJCLEVBQUUsQ0FBQztJQUtLLENBQUM7SUFFMUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBRWxCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQ0FBa0MsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUE4QixFQUFFLEVBQUU7WUFDcEcsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxrQ0FBa0MsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQyxTQUFTLENB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QXdCLDhPQWpJekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyRlQ7OzJGQXNDVSx3QkFBd0I7a0JBbklwQyxTQUFTOytCQUNFLGtCQUFrQixZQUNsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJGVCxpQkFvQ2MsaUJBQWlCLENBQUMsSUFBSTtxRkFJNUIseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSAyMDE2IEh1bnRzbWFuIENhbmNlciBJbnN0aXR1dGUgYXQgdGhlIFVuaXZlcnNpdHkgb2YgVXRhaCwgQ29uZmlkZW50aWFsIGFuZCBQcm9wcmlldGFyeVxyXG4gKi9cclxuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIGlzRGV2TW9kZSwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZSwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmltcG9ydCB7V2lkZ2V0QXR0cmlidXRlVmFsdWUsIFdpZGdldEF0dHJpYnV0ZSwgV2lkZ2V0QXR0cmlidXRlQ2hvaWNlLCBXaWRnZXRJbnN0YW5jZX0gZnJvbSBcIi4uL21vZGVsL21vZGVsXCI7XHJcbmltcG9ydCB7RGFzaGJvYXJkU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2Rhc2hib2FyZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7V2lkZ2V0Q29tcG9uZW50fSBmcm9tIFwiLi4vd2lkZ2V0L3dpZGdldC5jb21wb25lbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBAc2luY2UgMS4wLjBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcIndpZGdldC1hdHRyaWJ1dGVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImluaXQgJiYgYXR0cmlidXRlVmFsdWVzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGF0YVR5cGUgPT09ICdzdHJpbmcnXCIgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImF0dHItc3RyaW5nXCIgY2xhc3M9XCJib2xkXCI+e3thdHRyaWJ1dGUubmFtZX19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgaWQ9XCJhdHRyLXN0cmluZ1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nXCJcclxuICAgICAgICAgICAgICAgKGtleXByZXNzKT1cIm9uQ2hhbmdlU3RyaW5nKCRldmVudClcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJpYnV0ZS5kYXRhVHlwZSA9PT0gJ2ludGVnZXInXCIgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImF0dHItaW50ZWdlclwiIGNsYXNzPVwiYm9sZFwiPnt7YXR0cmlidXRlLm5hbWV9fTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IGlkPVwiYXR0ci1pbnRlZ2VyXCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVJbnRlZ2VyXCJcclxuICAgICAgICAgICAgICAgKGtleXByZXNzKT1cIm9uQ2hhbmdlSW50ZWdlcigkZXZlbnQpXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGF0YVR5cGUgPT09ICdjb2xvcidcIiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYXR0ci1jb2xvclwiIGNsYXNzPVwiYm9sZFwiPnt7YXR0cmlidXRlLmRpc3BsYXl9fTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IGlkPVwiYXR0ci1jb2xvclwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgW2NvbG9yUGlja2VyXT1cImF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZVN0cmluZ1wiXHJcbiAgICAgICAgICAgICAgIChjb2xvclBpY2tlckNoYW5nZSk9XCJvbkNoYW5nZUNvbG9yKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmdcIlxyXG4gICAgICAgICAgICAgICBbY3BQb3NpdGlvblJlbGF0aXZlVG9BcnJvd109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgW2NwQ2FuY2VsQnV0dG9uXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICBbY3BPS0J1dHRvbkNsYXNzXT1cIididG4gYnRuLXByaW1hcnkgYnRuLXhzJ1wiXHJcbiAgICAgICAgICAgICAgIFtjcFBvc2l0aW9uXT1cIidib3R0b20nXCIvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJpYnV0ZS5kYXRhVHlwZSA9PT0gJ2Nob2ljZSdcIiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYXR0ci1jaG9pY2VcIiBjbGFzcz1cImJvbGRcIj57e2F0dHJpYnV0ZS5kaXNwbGF5fX08L2xhYmVsPlxyXG4gICAgICAgIDxzZWxlY3QgaWQ9XCJhdHRyLWNob2ljZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmdcIlxyXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaG9pY2VDaGFuZ2UoJGV2ZW50KVwiID5cclxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGNob2ljZSBvZiBhdHRyaWJ1dGUud2lkZ2V0QXR0cmlidXRlQ2hvaWNlc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cImNob2ljZS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCIoYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nID09PSBjaG9pY2UudmFsdWUpID8gdHJ1ZSA6IHVuZGVmaW5lZFwiPlxyXG4gICAgICAgICAgICB7e2Nob2ljZS5kaXNwbGF5fX08L29wdGlvbj5cclxuICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGF0YVR5cGUgPT09ICdjaGVja2JveCdcIiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImF0dHItY2hlY2tib3hcIiBjbGFzcz1cImNvbC02IGJvbGRcIj57e2F0dHJpYnV0ZS5kaXNwbGF5fX08L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBpZD1cImF0dHItY2hlY2tib3hcIiBjbGFzcz1cImNvbC02IGZvcm0tY2hlY2staW5wdXQgY2VudGVyZWRcIiB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVCb29sZWFuXCIgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlKCRldmVudClcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJpYnV0ZS5kYXRhVHlwZSA9PT0gJ2dyYXBoaWNhbC1jaG9pY2UnXCIgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImF0dHItY2hvaWNlXCIgY2xhc3M9XCJib2xkXCI+e3thdHRyaWJ1dGUuZGlzcGxheX19PC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ncm91cFwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1jaG9pY2UgW25nRm9yT2ZdPVwiYXR0cmlidXRlLndpZGdldEF0dHJpYnV0ZUNob2ljZXNcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJncmFwaGljYWwtY2hvaWNlXCJcclxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nID09PSBjaG9pY2UudmFsdWUgPyAnc2VsZWN0ZWQnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0R3JhcGhpY2FsQ2hvaWNlKGNob2ljZSlcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hvaWNlLmRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJjaG9pY2UuZGlzcGxheS5pbmRleE9mKCcuc3ZnJykgPiAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJjaG9pY2UuZGlzcGxheVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hvaWNlLmRpc3BsYXkuaW5kZXhPZignLnN2ZycpID09PSAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7Y2hvaWNlLmRpc3BsYXl9fSBmYS0yeFwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY2hvaWNlLmRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXF1ZXN0aW9uLWNpcmNsZSBmYS0yeFwiPjwvaT5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGF0YVR5cGUgPT09ICd3aWRnZXQtY2hvaWNlJ1wiIGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxkaXYgbmdiRHJvcGRvd24gW2F1dG9DbG9zZV09XCJ0cnVlXCIgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5XCIgaWQ9XCJhdHRyLXdpZGdldC1jaG9pY2VcIiBuZ2JEcm9wZG93blRvZ2dsZT57e2F0dHJpYnV0ZS5kaXNwbGF5fX08L2J1dHRvbj5cclxuICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIGFyaWEtbGFiZWxsZWRieT1cImF0dHItd2lkZ2V0LWNob2ljZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWNob2ljZSBbbmdGb3JPZl09XCJhdHRyaWJ1dGUud2lkZ2V0QXR0cmlidXRlQ2hvaWNlc1wiPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwiZHJvcGRvd24taXRlbSBib2xkXCIgKGNsaWNrKT1cInNldFdpZGdldENob2ljZShjaG9pY2UpXCI+e3tjaG9pY2UuZGlzcGxheX19PC9hPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0cmlidXRlLmRhdGFUeXBlID09PSAnd2lkZ2V0LW11bHRpLWNob2ljZSdcIiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIFthdXRvQ2xvc2VdPVwidHJ1ZVwiIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeVwiIGlkPVwiYXR0ci13aWRnZXQtY2hvaWNlXCIgbmdiRHJvcGRvd25Ub2dnbGU+e3thdHRyaWJ1dGUuZGlzcGxheX19PC9idXR0b24+XHJcbiAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiBhcmlhLWxhYmVsbGVkYnk9XCJhdHRyLXdpZGdldC1jaG9pY2VcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1jaG9pY2UgW25nRm9yT2ZdPVwiYXR0cmlidXRlLndpZGdldEF0dHJpYnV0ZUNob2ljZXNcIj5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImF0dHItY2hlY2tib3hcIiBjbGFzcz1cImJvbGRcIj57e2Nob2ljZS5kaXNwbGF5fX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiYXR0ci1jaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImlzTXVsdGlTZWxlY3RlZChjaG9pY2UpXCIgKGNoYW5nZSk9XCJzZXRXaWRnZXRNdWx0aUNob2ljZShjaG9pY2UpXCIgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgLmNvbG9yLXBpY2tlciB7XHJcbiAgICAgIGxlZnQ6IGluaGVyaXQgIWltcG9ydGFudDtcclxuICAgICAgdG9wOiBpbmhlcml0ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICBkaXYuY29sb3ItcGlja2VyIHtcclxuICAgICAgbGVmdDogaW5oZXJpdCAhaW1wb3J0YW50O1xyXG4gICAgICB0b3A6IGluaGVyaXQgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIC5mb3JtLWNvbnRyb2wuY2hlY2tib3gge1xyXG4gICAgICB3aWR0aDogaW5oZXJpdDtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XHJcbiAgICB9XHJcbiAgICAuZ3JhcGhpY2FsLWNob2ljZSB7XHJcbiAgICAgIHdpZHRoOiA2NHB4O1xyXG4gICAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICB9XHJcbiAgICAuZ3JhcGhpY2FsLWNob2ljZS5zZWxlY3RlZCB7XHJcbiAgICAgIGJvcmRlcjogcmVkIDFweCBzb2xpZCAhaW1wb3J0YW50O1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5ib2xkIHtcclxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9XHJcbiAgICAuZm9ybS1jb250cm9sLmNlbnRlcmVkIHtcclxuICAgICAgbWFyZ2luLXRvcDogYXV0bztcclxuICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcclxuICAgIH1cclxuICAgIC5mb3JtLWNoZWNrLWlucHV0IHtcclxuICAgICAgaGVpZ2h0OiAxcmVtO1xyXG4gICAgfVxyXG4gIGBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFdpZGdldEF0dHJpYnV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIGlkV2lkZ2V0QXR0cmlidXRlVmFsdWVTZXQ6IG51bWJlcjtcclxuICBASW5wdXQoKSBhdHRyaWJ1dGU6IFdpZGdldEF0dHJpYnV0ZTtcclxuICBASW5wdXQoKSB3aWRnZXRDb21wb25lbnQ6IFdpZGdldENvbXBvbmVudDtcclxuXHJcbiAgQE91dHB1dCgpIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgcHVibGljIGluaXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYXR0cmlidXRlVmFsdWVzOiBXaWRnZXRBdHRyaWJ1dGVWYWx1ZVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgd2lkZ2V0QXR0cmlidXRlVXBkYXRlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgd2lkZ2V0QXR0cmlidXRlQ2hvaWNlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhc2hib2FyZFNlcnZpY2U6IERhc2hib2FyZFNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0ID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZVN1YmplY3Quc3Vic2NyaWJlKCh3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2UpID0+IHtcclxuICAgICAgaWYgKHdpZGdldEluc3RhbmNlKSB7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMud2lkZ2V0QXR0cmlidXRlVXBkYXRlZFN1YnNjcmlwdGlvbiA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRXaWRnZXRBdHRyaWJ1dGVVcGRhdGVkU3ViamVjdCgpLnN1YnNjcmliZSgoaWRXaWRnZXRBdHRyaWJ1dGU6IG51bWJlcikgPT4ge1xyXG4gICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy53aWRnZXRBdHRyaWJ1dGVVcGRhdGVkU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMud2lkZ2V0QXR0cmlidXRlVXBkYXRlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMud2lkZ2V0QXR0cmlidXRlQ2hvaWNlc1N1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLndpZGdldEF0dHJpYnV0ZUNob2ljZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHtbcHJvcE5hbWU6IHN0cmluZ106IFNpbXBsZUNoYW5nZX0pIHtcclxuICAgIGlmICh0aGlzLmluaXQgJiYgY2hhbmdlc1tcImF0dHJpYnV0ZVwiXSkge1xyXG4gICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZnJlc2goKSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcInJlZnJlc2g6IFwiICsgdGhpcy5hdHRyaWJ1dGUubmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hdHRyaWJ1dGVWYWx1ZXMgPSB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0Q29uZmlndXJhdGlvbkF0dHJpYnV0ZVZhbHVlcyh0aGlzLmF0dHJpYnV0ZS5pZFdpZGdldEF0dHJpYnV0ZSk7XHJcblxyXG4gICAgaWYgKHRoaXMuYXR0cmlidXRlLmRhdGFUeXBlID09PSBcIndpZGdldC1jaG9pY2VcIiB8fCB0aGlzLmF0dHJpYnV0ZS5kYXRhVHlwZSA9PT0gXCJ3aWRnZXQtbXVsdGktY2hvaWNlXCIpIHtcclxuICAgICAgdGhpcy53aWRnZXRBdHRyaWJ1dGVDaG9pY2VzU3Vic2NyaXB0aW9uID0gdGhpcy53aWRnZXRDb21wb25lbnQuZ2V0V2lkZ2V0Q2hvaWNlcyh0aGlzLmF0dHJpYnV0ZS5uYW1lKS5zdWJzY3JpYmUoKHdpZGdldEF0dHJpYnV0ZUNob2ljZXM6IFdpZGdldEF0dHJpYnV0ZUNob2ljZVtdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGUud2lkZ2V0QXR0cmlidXRlQ2hvaWNlcyA9IHdpZGdldEF0dHJpYnV0ZUNob2ljZXM7XHJcbiAgICAgICAgdGhpcy5pbml0ID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmluaXQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGVja2JveENoYW5nZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgLy8gVE9ETzogSW1wbGVtZW50XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUNvbG9yKGNvbG9yOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmluaXQgJiYgdGhpcy5hdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmcgIT09IGNvbG9yKSB7XHJcbiAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nID0gY29sb3I7XHJcbiAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzID0gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnNldENvbmZpZ3VyYXRpb25BdHRyaWJ1dGVWYWx1ZXModGhpcy5hdHRyaWJ1dGUuaWRXaWRnZXRBdHRyaWJ1dGUsIHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgICAgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uV2lkZ2V0VmFsdWVzKHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hvaWNlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmluaXQgJiYgdGhpcy5hdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmcgIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzID0gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnNldENvbmZpZ3VyYXRpb25BdHRyaWJ1dGVWYWx1ZXModGhpcy5hdHRyaWJ1dGUuaWRXaWRnZXRBdHRyaWJ1dGUsIHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgICAgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uV2lkZ2V0VmFsdWVzKHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlU3RyaW5nKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pbml0KSB7XHJcbiAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSAxMyAmJiB0aGlzLmF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZVN0cmluZyAhPT0gZXZlbnQudGFyZ2V0W1widmFsdWVcIl0pIHtcclxuICAgICAgICB0aGlzLmF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZVN0cmluZyA9IGV2ZW50LnRhcmdldFtcInZhbHVlXCJdO1xyXG4gICAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzID0gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnNldENvbmZpZ3VyYXRpb25BdHRyaWJ1dGVWYWx1ZXModGhpcy5hdHRyaWJ1dGUuaWRXaWRnZXRBdHRyaWJ1dGUsIHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUNvbmZpZ3VyYXRpb25XaWRnZXRWYWx1ZXModGhpcy5hdHRyaWJ1dGVWYWx1ZXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUludGVnZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmluaXQpIHtcclxuICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDEzICYmIHRoaXMuYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlSW50ZWdlciAhPT0gZXZlbnQudGFyZ2V0W1widmFsdWVcIl0pIHtcclxuICAgICAgICB0aGlzLmF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZUludGVnZXIgPSBldmVudC50YXJnZXRbXCJ2YWx1ZVwiXTtcclxuICAgICAgICB0aGlzLmF0dHJpYnV0ZVZhbHVlcyA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5zZXRDb25maWd1cmF0aW9uQXR0cmlidXRlVmFsdWVzKHRoaXMuYXR0cmlidXRlLmlkV2lkZ2V0QXR0cmlidXRlLCB0aGlzLmF0dHJpYnV0ZVZhbHVlcyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uV2lkZ2V0VmFsdWVzKHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0R3JhcGhpY2FsQ2hvaWNlKHdpZGdldEF0dHJpYnV0ZUNob2ljZTogV2lkZ2V0QXR0cmlidXRlQ2hvaWNlKSB7XHJcbiAgICBpZiAodGhpcy5pbml0ICYmIHRoaXMuYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nICE9PSB3aWRnZXRBdHRyaWJ1dGVDaG9pY2UudmFsdWUpIHtcclxuICAgICAgdGhpcy5hdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmcgPSB3aWRnZXRBdHRyaWJ1dGVDaG9pY2UudmFsdWU7XHJcbiAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzID0gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnNldENvbmZpZ3VyYXRpb25BdHRyaWJ1dGVWYWx1ZXModGhpcy5hdHRyaWJ1dGUuaWRXaWRnZXRBdHRyaWJ1dGUsIHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgICAgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uV2lkZ2V0VmFsdWVzKHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzTXVsdGlTZWxlY3RlZCh3aWRnZXRBdHRyaWJ1dGVDaG9pY2U6IFdpZGdldEF0dHJpYnV0ZUNob2ljZSkge1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmF0dHJpYnV0ZVZhbHVlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAodGhpcy5hdHRyaWJ1dGVWYWx1ZXNbaV0udmFsdWVTdHJpbmcgPT09IHdpZGdldEF0dHJpYnV0ZUNob2ljZS52YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXRXaWRnZXRDaG9pY2Uod2lkZ2V0QXR0cmlidXRlQ2hvaWNlOiBXaWRnZXRBdHRyaWJ1dGVDaG9pY2UpIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwic2V0V2lkZ2V0Q2hvaWNlOiBcIiArIHdpZGdldEF0dHJpYnV0ZUNob2ljZS5pZFdpZGdldEF0dHJpYnV0ZUNob2ljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaW5pdCAmJiB0aGlzLmF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZVN0cmluZyAhPT0gd2lkZ2V0QXR0cmlidXRlQ2hvaWNlLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nID0gd2lkZ2V0QXR0cmlidXRlQ2hvaWNlLnZhbHVlO1xyXG4gICAgICB0aGlzLmF0dHJpYnV0ZVZhbHVlcyA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5zZXRDb25maWd1cmF0aW9uQXR0cmlidXRlVmFsdWVzKHRoaXMuYXR0cmlidXRlLmlkV2lkZ2V0QXR0cmlidXRlLCB0aGlzLmF0dHJpYnV0ZVZhbHVlcyk7XHJcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlndXJhdGlvbldpZGdldFZhbHVlcyh0aGlzLmF0dHJpYnV0ZVZhbHVlcyk7XHJcbiAgICAgIHRoaXMuY2hhbmdlZC5lbWl0KHRydWUpO1xyXG5cclxuICAgICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnNldFdpZGdldEF0dHJpYnV0ZVVwZGF0ZWRTdWJqZWN0KHRoaXMuYXR0cmlidXRlLmlkV2lkZ2V0QXR0cmlidXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFdpZGdldE11bHRpQ2hvaWNlKHdpZGdldEF0dHJpYnV0ZUNob2ljZTogV2lkZ2V0QXR0cmlidXRlQ2hvaWNlKSB7XHJcbiAgICBpZiAodGhpcy5pbml0KSB7XHJcbiAgICAgIGxldCBleGlzdHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmF0dHJpYnV0ZVZhbHVlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLmF0dHJpYnV0ZVZhbHVlc1tpXS52YWx1ZVN0cmluZyA9PT0gd2lkZ2V0QXR0cmlidXRlQ2hvaWNlLnZhbHVlKSB7XHJcbiAgICAgICAgICBleGlzdHMgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5hdHRyaWJ1dGVWYWx1ZXMuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICghZXhpc3RzKSB7XHJcbiAgICAgICAgbGV0IHZhbHVlOiBXaWRnZXRBdHRyaWJ1dGVWYWx1ZSA9IG5ldyBXaWRnZXRBdHRyaWJ1dGVWYWx1ZSgpO1xyXG4gICAgICAgIHZhbHVlLmlkV2lkZ2V0QXR0cmlidXRlVmFsdWUgPSB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0SWROZXcoKTtcclxuICAgICAgICB2YWx1ZS5pZFdpZGdldEF0dHJpYnV0ZSA9IHRoaXMuYXR0cmlidXRlLmlkV2lkZ2V0QXR0cmlidXRlO1xyXG4gICAgICAgIHZhbHVlLnZhbHVlU3RyaW5nID0gd2lkZ2V0QXR0cmlidXRlQ2hvaWNlLnZhbHVlO1xyXG4gICAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzLnB1c2godmFsdWUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmF0dHJpYnV0ZVZhbHVlcyA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5zZXRDb25maWd1cmF0aW9uQXR0cmlidXRlVmFsdWVzKHRoaXMuYXR0cmlidXRlLmlkV2lkZ2V0QXR0cmlidXRlLCB0aGlzLmF0dHJpYnV0ZVZhbHVlcyk7XHJcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlndXJhdGlvbldpZGdldFZhbHVlcyh0aGlzLmF0dHJpYnV0ZVZhbHVlcyk7XHJcbiAgICAgIHRoaXMuY2hhbmdlZC5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ29uZmlndXJhdGlvbldpZGdldFZhbHVlcyhhdHRyaWJ1dGVWYWx1ZXM6IFdpZGdldEF0dHJpYnV0ZVZhbHVlW10pIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwidXBkYXRlQ29uZmlndXJhdGlvbldpZGdldFZhbHVlc1wiKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiBzZXRWYWx1ZXMgcmV0dXJucyB0cnVlLCByZS1jb25maWcgdGhlIHdpZGdldC5cclxuICAgIGlmICh0aGlzLndpZGdldENvbXBvbmVudC5zZXRWYWx1ZXModGhpcy5hdHRyaWJ1dGUubmFtZSwgYXR0cmlidXRlVmFsdWVzKSkge1xyXG4gICAgICB0aGlzLndpZGdldENvbXBvbmVudC5jb25maWcodGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdldENvbmZpZ1dpZGdldENvbXBvbmVudCgpLndpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
354
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWF0dHJpYnV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2NvbmZpZ3VyZS93aWRnZXQtYXR0cmlidXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWEsTUFBTSxFQUFnQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUk1SCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsZUFBZSxFQUF3QyxNQUFNLGdCQUFnQixDQUFDO0FBQzVHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQUUzRDs7R0FFRztBQW9JSCxNQUFNLE9BQU8sd0JBQXdCO0lBY25DLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBUjVDLFlBQU8sR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVoRSxTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLG9CQUFlLEdBQTJCLEVBQUUsQ0FBQztJQUtLLENBQUM7SUFFMUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBRWxCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQ0FBa0MsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUE4QixFQUFFLEVBQUU7WUFDcEcsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxrQ0FBa0MsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQyxTQUFTLENB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QXdCLDhPQWpJekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyRlQ7OzRGQXNDVSx3QkFBd0I7a0JBbklwQyxTQUFTOytCQUNFLGtCQUFrQixZQUNsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJGVCxpQkFvQ2MsaUJBQWlCLENBQUMsSUFBSTtxRkFJNUIseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSAyMDE2IEh1bnRzbWFuIENhbmNlciBJbnN0aXR1dGUgYXQgdGhlIFVuaXZlcnNpdHkgb2YgVXRhaCwgQ29uZmlkZW50aWFsIGFuZCBQcm9wcmlldGFyeVxyXG4gKi9cclxuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIGlzRGV2TW9kZSwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZSwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmltcG9ydCB7V2lkZ2V0QXR0cmlidXRlVmFsdWUsIFdpZGdldEF0dHJpYnV0ZSwgV2lkZ2V0QXR0cmlidXRlQ2hvaWNlLCBXaWRnZXRJbnN0YW5jZX0gZnJvbSBcIi4uL21vZGVsL21vZGVsXCI7XHJcbmltcG9ydCB7RGFzaGJvYXJkU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2Rhc2hib2FyZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7V2lkZ2V0Q29tcG9uZW50fSBmcm9tIFwiLi4vd2lkZ2V0L3dpZGdldC5jb21wb25lbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBAc2luY2UgMS4wLjBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcIndpZGdldC1hdHRyaWJ1dGVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImluaXQgJiYgYXR0cmlidXRlVmFsdWVzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGF0YVR5cGUgPT09ICdzdHJpbmcnXCIgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImF0dHItc3RyaW5nXCIgY2xhc3M9XCJib2xkXCI+e3thdHRyaWJ1dGUubmFtZX19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgaWQ9XCJhdHRyLXN0cmluZ1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nXCJcclxuICAgICAgICAgICAgICAgKGtleXByZXNzKT1cIm9uQ2hhbmdlU3RyaW5nKCRldmVudClcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJpYnV0ZS5kYXRhVHlwZSA9PT0gJ2ludGVnZXInXCIgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImF0dHItaW50ZWdlclwiIGNsYXNzPVwiYm9sZFwiPnt7YXR0cmlidXRlLm5hbWV9fTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IGlkPVwiYXR0ci1pbnRlZ2VyXCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVJbnRlZ2VyXCJcclxuICAgICAgICAgICAgICAgKGtleXByZXNzKT1cIm9uQ2hhbmdlSW50ZWdlcigkZXZlbnQpXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGF0YVR5cGUgPT09ICdjb2xvcidcIiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYXR0ci1jb2xvclwiIGNsYXNzPVwiYm9sZFwiPnt7YXR0cmlidXRlLmRpc3BsYXl9fTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IGlkPVwiYXR0ci1jb2xvclwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgW2NvbG9yUGlja2VyXT1cImF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZVN0cmluZ1wiXHJcbiAgICAgICAgICAgICAgIChjb2xvclBpY2tlckNoYW5nZSk9XCJvbkNoYW5nZUNvbG9yKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmdcIlxyXG4gICAgICAgICAgICAgICBbY3BQb3NpdGlvblJlbGF0aXZlVG9BcnJvd109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgW2NwQ2FuY2VsQnV0dG9uXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICBbY3BPS0J1dHRvbkNsYXNzXT1cIididG4gYnRuLXByaW1hcnkgYnRuLXhzJ1wiXHJcbiAgICAgICAgICAgICAgIFtjcFBvc2l0aW9uXT1cIidib3R0b20nXCIvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJpYnV0ZS5kYXRhVHlwZSA9PT0gJ2Nob2ljZSdcIiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYXR0ci1jaG9pY2VcIiBjbGFzcz1cImJvbGRcIj57e2F0dHJpYnV0ZS5kaXNwbGF5fX08L2xhYmVsPlxyXG4gICAgICAgIDxzZWxlY3QgaWQ9XCJhdHRyLWNob2ljZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmdcIlxyXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaG9pY2VDaGFuZ2UoJGV2ZW50KVwiID5cclxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGNob2ljZSBvZiBhdHRyaWJ1dGUud2lkZ2V0QXR0cmlidXRlQ2hvaWNlc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cImNob2ljZS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCIoYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nID09PSBjaG9pY2UudmFsdWUpID8gdHJ1ZSA6IHVuZGVmaW5lZFwiPlxyXG4gICAgICAgICAgICB7e2Nob2ljZS5kaXNwbGF5fX08L29wdGlvbj5cclxuICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGF0YVR5cGUgPT09ICdjaGVja2JveCdcIiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImF0dHItY2hlY2tib3hcIiBjbGFzcz1cImNvbC02IGJvbGRcIj57e2F0dHJpYnV0ZS5kaXNwbGF5fX08L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBpZD1cImF0dHItY2hlY2tib3hcIiBjbGFzcz1cImNvbC02IGZvcm0tY2hlY2staW5wdXQgY2VudGVyZWRcIiB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVCb29sZWFuXCIgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlKCRldmVudClcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJpYnV0ZS5kYXRhVHlwZSA9PT0gJ2dyYXBoaWNhbC1jaG9pY2UnXCIgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImF0dHItY2hvaWNlXCIgY2xhc3M9XCJib2xkXCI+e3thdHRyaWJ1dGUuZGlzcGxheX19PC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ncm91cFwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1jaG9pY2UgW25nRm9yT2ZdPVwiYXR0cmlidXRlLndpZGdldEF0dHJpYnV0ZUNob2ljZXNcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJncmFwaGljYWwtY2hvaWNlXCJcclxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nID09PSBjaG9pY2UudmFsdWUgPyAnc2VsZWN0ZWQnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0R3JhcGhpY2FsQ2hvaWNlKGNob2ljZSlcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hvaWNlLmRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJjaG9pY2UuZGlzcGxheS5pbmRleE9mKCcuc3ZnJykgPiAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJjaG9pY2UuZGlzcGxheVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hvaWNlLmRpc3BsYXkuaW5kZXhPZignLnN2ZycpID09PSAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7Y2hvaWNlLmRpc3BsYXl9fSBmYS0yeFwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY2hvaWNlLmRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXF1ZXN0aW9uLWNpcmNsZSBmYS0yeFwiPjwvaT5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGF0YVR5cGUgPT09ICd3aWRnZXQtY2hvaWNlJ1wiIGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxkaXYgbmdiRHJvcGRvd24gW2F1dG9DbG9zZV09XCJ0cnVlXCIgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5XCIgaWQ9XCJhdHRyLXdpZGdldC1jaG9pY2VcIiBuZ2JEcm9wZG93blRvZ2dsZT57e2F0dHJpYnV0ZS5kaXNwbGF5fX08L2J1dHRvbj5cclxuICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIGFyaWEtbGFiZWxsZWRieT1cImF0dHItd2lkZ2V0LWNob2ljZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWNob2ljZSBbbmdGb3JPZl09XCJhdHRyaWJ1dGUud2lkZ2V0QXR0cmlidXRlQ2hvaWNlc1wiPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwiZHJvcGRvd24taXRlbSBib2xkXCIgKGNsaWNrKT1cInNldFdpZGdldENob2ljZShjaG9pY2UpXCI+e3tjaG9pY2UuZGlzcGxheX19PC9hPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0cmlidXRlLmRhdGFUeXBlID09PSAnd2lkZ2V0LW11bHRpLWNob2ljZSdcIiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIFthdXRvQ2xvc2VdPVwidHJ1ZVwiIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeVwiIGlkPVwiYXR0ci13aWRnZXQtY2hvaWNlXCIgbmdiRHJvcGRvd25Ub2dnbGU+e3thdHRyaWJ1dGUuZGlzcGxheX19PC9idXR0b24+XHJcbiAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiBhcmlhLWxhYmVsbGVkYnk9XCJhdHRyLXdpZGdldC1jaG9pY2VcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1jaG9pY2UgW25nRm9yT2ZdPVwiYXR0cmlidXRlLndpZGdldEF0dHJpYnV0ZUNob2ljZXNcIj5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImF0dHItY2hlY2tib3hcIiBjbGFzcz1cImJvbGRcIj57e2Nob2ljZS5kaXNwbGF5fX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiYXR0ci1jaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImlzTXVsdGlTZWxlY3RlZChjaG9pY2UpXCIgKGNoYW5nZSk9XCJzZXRXaWRnZXRNdWx0aUNob2ljZShjaG9pY2UpXCIgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgLmNvbG9yLXBpY2tlciB7XHJcbiAgICAgIGxlZnQ6IGluaGVyaXQgIWltcG9ydGFudDtcclxuICAgICAgdG9wOiBpbmhlcml0ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICBkaXYuY29sb3ItcGlja2VyIHtcclxuICAgICAgbGVmdDogaW5oZXJpdCAhaW1wb3J0YW50O1xyXG4gICAgICB0b3A6IGluaGVyaXQgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIC5mb3JtLWNvbnRyb2wuY2hlY2tib3gge1xyXG4gICAgICB3aWR0aDogaW5oZXJpdDtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XHJcbiAgICB9XHJcbiAgICAuZ3JhcGhpY2FsLWNob2ljZSB7XHJcbiAgICAgIHdpZHRoOiA2NHB4O1xyXG4gICAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICB9XHJcbiAgICAuZ3JhcGhpY2FsLWNob2ljZS5zZWxlY3RlZCB7XHJcbiAgICAgIGJvcmRlcjogcmVkIDFweCBzb2xpZCAhaW1wb3J0YW50O1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5ib2xkIHtcclxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9XHJcbiAgICAuZm9ybS1jb250cm9sLmNlbnRlcmVkIHtcclxuICAgICAgbWFyZ2luLXRvcDogYXV0bztcclxuICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcclxuICAgIH1cclxuICAgIC5mb3JtLWNoZWNrLWlucHV0IHtcclxuICAgICAgaGVpZ2h0OiAxcmVtO1xyXG4gICAgfVxyXG4gIGBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFdpZGdldEF0dHJpYnV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIGlkV2lkZ2V0QXR0cmlidXRlVmFsdWVTZXQ6IG51bWJlcjtcclxuICBASW5wdXQoKSBhdHRyaWJ1dGU6IFdpZGdldEF0dHJpYnV0ZTtcclxuICBASW5wdXQoKSB3aWRnZXRDb21wb25lbnQ6IFdpZGdldENvbXBvbmVudDtcclxuXHJcbiAgQE91dHB1dCgpIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgcHVibGljIGluaXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYXR0cmlidXRlVmFsdWVzOiBXaWRnZXRBdHRyaWJ1dGVWYWx1ZVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgd2lkZ2V0QXR0cmlidXRlVXBkYXRlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgd2lkZ2V0QXR0cmlidXRlQ2hvaWNlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhc2hib2FyZFNlcnZpY2U6IERhc2hib2FyZFNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0ID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZVN1YmplY3Quc3Vic2NyaWJlKCh3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2UpID0+IHtcclxuICAgICAgaWYgKHdpZGdldEluc3RhbmNlKSB7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMud2lkZ2V0QXR0cmlidXRlVXBkYXRlZFN1YnNjcmlwdGlvbiA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRXaWRnZXRBdHRyaWJ1dGVVcGRhdGVkU3ViamVjdCgpLnN1YnNjcmliZSgoaWRXaWRnZXRBdHRyaWJ1dGU6IG51bWJlcikgPT4ge1xyXG4gICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy53aWRnZXRBdHRyaWJ1dGVVcGRhdGVkU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMud2lkZ2V0QXR0cmlidXRlVXBkYXRlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMud2lkZ2V0QXR0cmlidXRlQ2hvaWNlc1N1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLndpZGdldEF0dHJpYnV0ZUNob2ljZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHtbcHJvcE5hbWU6IHN0cmluZ106IFNpbXBsZUNoYW5nZX0pIHtcclxuICAgIGlmICh0aGlzLmluaXQgJiYgY2hhbmdlc1tcImF0dHJpYnV0ZVwiXSkge1xyXG4gICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZnJlc2goKSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcInJlZnJlc2g6IFwiICsgdGhpcy5hdHRyaWJ1dGUubmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hdHRyaWJ1dGVWYWx1ZXMgPSB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0Q29uZmlndXJhdGlvbkF0dHJpYnV0ZVZhbHVlcyh0aGlzLmF0dHJpYnV0ZS5pZFdpZGdldEF0dHJpYnV0ZSk7XHJcblxyXG4gICAgaWYgKHRoaXMuYXR0cmlidXRlLmRhdGFUeXBlID09PSBcIndpZGdldC1jaG9pY2VcIiB8fCB0aGlzLmF0dHJpYnV0ZS5kYXRhVHlwZSA9PT0gXCJ3aWRnZXQtbXVsdGktY2hvaWNlXCIpIHtcclxuICAgICAgdGhpcy53aWRnZXRBdHRyaWJ1dGVDaG9pY2VzU3Vic2NyaXB0aW9uID0gdGhpcy53aWRnZXRDb21wb25lbnQuZ2V0V2lkZ2V0Q2hvaWNlcyh0aGlzLmF0dHJpYnV0ZS5uYW1lKS5zdWJzY3JpYmUoKHdpZGdldEF0dHJpYnV0ZUNob2ljZXM6IFdpZGdldEF0dHJpYnV0ZUNob2ljZVtdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGUud2lkZ2V0QXR0cmlidXRlQ2hvaWNlcyA9IHdpZGdldEF0dHJpYnV0ZUNob2ljZXM7XHJcbiAgICAgICAgdGhpcy5pbml0ID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmluaXQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGVja2JveENoYW5nZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgLy8gVE9ETzogSW1wbGVtZW50XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUNvbG9yKGNvbG9yOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmluaXQgJiYgdGhpcy5hdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmcgIT09IGNvbG9yKSB7XHJcbiAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nID0gY29sb3I7XHJcbiAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzID0gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnNldENvbmZpZ3VyYXRpb25BdHRyaWJ1dGVWYWx1ZXModGhpcy5hdHRyaWJ1dGUuaWRXaWRnZXRBdHRyaWJ1dGUsIHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgICAgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uV2lkZ2V0VmFsdWVzKHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hvaWNlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmluaXQgJiYgdGhpcy5hdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmcgIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzID0gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnNldENvbmZpZ3VyYXRpb25BdHRyaWJ1dGVWYWx1ZXModGhpcy5hdHRyaWJ1dGUuaWRXaWRnZXRBdHRyaWJ1dGUsIHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgICAgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uV2lkZ2V0VmFsdWVzKHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlU3RyaW5nKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pbml0KSB7XHJcbiAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSAxMyAmJiB0aGlzLmF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZVN0cmluZyAhPT0gZXZlbnQudGFyZ2V0W1widmFsdWVcIl0pIHtcclxuICAgICAgICB0aGlzLmF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZVN0cmluZyA9IGV2ZW50LnRhcmdldFtcInZhbHVlXCJdO1xyXG4gICAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzID0gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnNldENvbmZpZ3VyYXRpb25BdHRyaWJ1dGVWYWx1ZXModGhpcy5hdHRyaWJ1dGUuaWRXaWRnZXRBdHRyaWJ1dGUsIHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUNvbmZpZ3VyYXRpb25XaWRnZXRWYWx1ZXModGhpcy5hdHRyaWJ1dGVWYWx1ZXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUludGVnZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmluaXQpIHtcclxuICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDEzICYmIHRoaXMuYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlSW50ZWdlciAhPT0gZXZlbnQudGFyZ2V0W1widmFsdWVcIl0pIHtcclxuICAgICAgICB0aGlzLmF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZUludGVnZXIgPSBldmVudC50YXJnZXRbXCJ2YWx1ZVwiXTtcclxuICAgICAgICB0aGlzLmF0dHJpYnV0ZVZhbHVlcyA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5zZXRDb25maWd1cmF0aW9uQXR0cmlidXRlVmFsdWVzKHRoaXMuYXR0cmlidXRlLmlkV2lkZ2V0QXR0cmlidXRlLCB0aGlzLmF0dHJpYnV0ZVZhbHVlcyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uV2lkZ2V0VmFsdWVzKHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0R3JhcGhpY2FsQ2hvaWNlKHdpZGdldEF0dHJpYnV0ZUNob2ljZTogV2lkZ2V0QXR0cmlidXRlQ2hvaWNlKSB7XHJcbiAgICBpZiAodGhpcy5pbml0ICYmIHRoaXMuYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nICE9PSB3aWRnZXRBdHRyaWJ1dGVDaG9pY2UudmFsdWUpIHtcclxuICAgICAgdGhpcy5hdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmcgPSB3aWRnZXRBdHRyaWJ1dGVDaG9pY2UudmFsdWU7XHJcbiAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzID0gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnNldENvbmZpZ3VyYXRpb25BdHRyaWJ1dGVWYWx1ZXModGhpcy5hdHRyaWJ1dGUuaWRXaWRnZXRBdHRyaWJ1dGUsIHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgICAgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uV2lkZ2V0VmFsdWVzKHRoaXMuYXR0cmlidXRlVmFsdWVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzTXVsdGlTZWxlY3RlZCh3aWRnZXRBdHRyaWJ1dGVDaG9pY2U6IFdpZGdldEF0dHJpYnV0ZUNob2ljZSkge1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmF0dHJpYnV0ZVZhbHVlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAodGhpcy5hdHRyaWJ1dGVWYWx1ZXNbaV0udmFsdWVTdHJpbmcgPT09IHdpZGdldEF0dHJpYnV0ZUNob2ljZS52YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXRXaWRnZXRDaG9pY2Uod2lkZ2V0QXR0cmlidXRlQ2hvaWNlOiBXaWRnZXRBdHRyaWJ1dGVDaG9pY2UpIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwic2V0V2lkZ2V0Q2hvaWNlOiBcIiArIHdpZGdldEF0dHJpYnV0ZUNob2ljZS5pZFdpZGdldEF0dHJpYnV0ZUNob2ljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaW5pdCAmJiB0aGlzLmF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZVN0cmluZyAhPT0gd2lkZ2V0QXR0cmlidXRlQ2hvaWNlLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nID0gd2lkZ2V0QXR0cmlidXRlQ2hvaWNlLnZhbHVlO1xyXG4gICAgICB0aGlzLmF0dHJpYnV0ZVZhbHVlcyA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5zZXRDb25maWd1cmF0aW9uQXR0cmlidXRlVmFsdWVzKHRoaXMuYXR0cmlidXRlLmlkV2lkZ2V0QXR0cmlidXRlLCB0aGlzLmF0dHJpYnV0ZVZhbHVlcyk7XHJcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlndXJhdGlvbldpZGdldFZhbHVlcyh0aGlzLmF0dHJpYnV0ZVZhbHVlcyk7XHJcbiAgICAgIHRoaXMuY2hhbmdlZC5lbWl0KHRydWUpO1xyXG5cclxuICAgICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnNldFdpZGdldEF0dHJpYnV0ZVVwZGF0ZWRTdWJqZWN0KHRoaXMuYXR0cmlidXRlLmlkV2lkZ2V0QXR0cmlidXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFdpZGdldE11bHRpQ2hvaWNlKHdpZGdldEF0dHJpYnV0ZUNob2ljZTogV2lkZ2V0QXR0cmlidXRlQ2hvaWNlKSB7XHJcbiAgICBpZiAodGhpcy5pbml0KSB7XHJcbiAgICAgIGxldCBleGlzdHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmF0dHJpYnV0ZVZhbHVlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLmF0dHJpYnV0ZVZhbHVlc1tpXS52YWx1ZVN0cmluZyA9PT0gd2lkZ2V0QXR0cmlidXRlQ2hvaWNlLnZhbHVlKSB7XHJcbiAgICAgICAgICBleGlzdHMgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5hdHRyaWJ1dGVWYWx1ZXMuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICghZXhpc3RzKSB7XHJcbiAgICAgICAgbGV0IHZhbHVlOiBXaWRnZXRBdHRyaWJ1dGVWYWx1ZSA9IG5ldyBXaWRnZXRBdHRyaWJ1dGVWYWx1ZSgpO1xyXG4gICAgICAgIHZhbHVlLmlkV2lkZ2V0QXR0cmlidXRlVmFsdWUgPSB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0SWROZXcoKTtcclxuICAgICAgICB2YWx1ZS5pZFdpZGdldEF0dHJpYnV0ZSA9IHRoaXMuYXR0cmlidXRlLmlkV2lkZ2V0QXR0cmlidXRlO1xyXG4gICAgICAgIHZhbHVlLnZhbHVlU3RyaW5nID0gd2lkZ2V0QXR0cmlidXRlQ2hvaWNlLnZhbHVlO1xyXG4gICAgICAgIHRoaXMuYXR0cmlidXRlVmFsdWVzLnB1c2godmFsdWUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmF0dHJpYnV0ZVZhbHVlcyA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5zZXRDb25maWd1cmF0aW9uQXR0cmlidXRlVmFsdWVzKHRoaXMuYXR0cmlidXRlLmlkV2lkZ2V0QXR0cmlidXRlLCB0aGlzLmF0dHJpYnV0ZVZhbHVlcyk7XHJcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlndXJhdGlvbldpZGdldFZhbHVlcyh0aGlzLmF0dHJpYnV0ZVZhbHVlcyk7XHJcbiAgICAgIHRoaXMuY2hhbmdlZC5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ29uZmlndXJhdGlvbldpZGdldFZhbHVlcyhhdHRyaWJ1dGVWYWx1ZXM6IFdpZGdldEF0dHJpYnV0ZVZhbHVlW10pIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwidXBkYXRlQ29uZmlndXJhdGlvbldpZGdldFZhbHVlc1wiKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiBzZXRWYWx1ZXMgcmV0dXJucyB0cnVlLCByZS1jb25maWcgdGhlIHdpZGdldC5cclxuICAgIGlmICh0aGlzLndpZGdldENvbXBvbmVudC5zZXRWYWx1ZXModGhpcy5hdHRyaWJ1dGUubmFtZSwgYXR0cmlidXRlVmFsdWVzKSkge1xyXG4gICAgICB0aGlzLndpZGdldENvbXBvbmVudC5jb25maWcodGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdldENvbmZpZ1dpZGdldENvbXBvbmVudCgpLndpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -162,8 +162,8 @@ export class WidgetConfigureComponent {
|
|
|
162
162
|
}
|
|
163
163
|
return true;
|
|
164
164
|
}
|
|
165
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
166
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
165
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetConfigureComponent, deps: [{ token: i1.DashboardService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
166
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WidgetConfigureComponent, selector: "widget-configure", host: { properties: { "class": "this.classList" } }, ngImport: i0, template: `
|
|
167
167
|
<ng-container *ngIf="widgetInstance && selectedAttributeContainer">
|
|
168
168
|
<div class="attribute-container-header-parent">
|
|
169
169
|
<ng-template ngFor let-attributeContainer let-i="index" [ngForOf]="attributeContainers | hasEditableAttributes">
|
|
@@ -191,7 +191,7 @@ export class WidgetConfigureComponent {
|
|
|
191
191
|
</ng-container>
|
|
192
192
|
`, isInline: true, styles: [".attribute-container-header-parent{border-bottom:black 2px solid;padding-bottom:5px;margin-bottom:5px}.attribute-container-header{display:inline-block;width:35px;background-color:#6af;border:black 1px solid;border-radius:20px;padding:4px;font-size:large;font-weight:700;text-align:center;min-height:35px;vertical-align:top}.attribute-container-header.selected{width:45%}.attribute-container{overflow-y:auto;overflow-x:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i4.WidgetAttributeComponent, selector: "widget-attribute", inputs: ["idWidgetAttributeValueSet", "attribute", "widgetComponent"], outputs: ["changed"] }, { kind: "pipe", type: i5.HasEditableAttributesPipe, name: "hasEditableAttributes" }] }); }
|
|
193
193
|
}
|
|
194
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetConfigureComponent, decorators: [{
|
|
195
195
|
type: Component,
|
|
196
196
|
args: [{ selector: "widget-configure", template: `
|
|
197
197
|
<ng-container *ngIf="widgetInstance && selectedAttributeContainer">
|
|
@@ -224,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
224
224
|
type: HostBinding,
|
|
225
225
|
args: ["class"]
|
|
226
226
|
}] } });
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbmZpZ3VyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2NvbmZpZ3VyZS93aWRnZXQtY29uZmlndXJlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUloRSxPQUFPLEVBQTRELE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7O0FBRy9EOztHQUVHO0FBK0RILE1BQU0sT0FBTyx3QkFBd0I7SUFnQm5DLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBZGhDLGNBQVMsR0FBVyxlQUFlLENBQUM7UUFJbkQsd0JBQW1CLEdBQStCLEVBQUUsQ0FBQztJQVVILENBQUM7SUFFMUQsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQ0FBa0MsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUE4QixFQUFFLEVBQUU7WUFDcEcsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO2dCQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7Z0JBQ3hGLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsU0FBUyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztnQkFFN0IsSUFBSSxD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cmlnaHQgKGMpIDIwMTYgSHVudHNtYW4gQ2FuY2VyIEluc3RpdHV0ZSBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoLCBDb25maWRlbnRpYWwgYW5kIFByb3ByaWV0YXJ5XHJcbiAqL1xyXG5pbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGlzRGV2TW9kZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5cclxuaW1wb3J0IHtXaWRnZXRBdHRyaWJ1dGUsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lciwgV2lkZ2V0SW5zdGFuY2UsIFdpZGdldH0gZnJvbSBcIi4uL21vZGVsL21vZGVsXCI7XHJcbmltcG9ydCB7RGFzaGJvYXJkU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2Rhc2hib2FyZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7V2lkZ2V0Q29tcG9uZW50fSBmcm9tIFwiLi4vd2lkZ2V0L3dpZGdldC5jb21wb25lbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBAc2luY2UgMS4wLjBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcIndpZGdldC1jb25maWd1cmVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndpZGdldEluc3RhbmNlICYmIHNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhdHRyaWJ1dGUtY29udGFpbmVyLWhlYWRlci1wYXJlbnRcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWF0dHJpYnV0ZUNvbnRhaW5lciBsZXQtaT1cImluZGV4XCIgW25nRm9yT2ZdPVwiYXR0cmlidXRlQ29udGFpbmVycyB8IGhhc0VkaXRhYmxlQXR0cmlidXRlc1wiPlxyXG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwic2VsZWN0ZWRBdHRyaWJ1dGVDb250YWluZXIgPSBhdHRyaWJ1dGVDb250YWluZXI7IGlTZWxlY3RlZCA9IGk7XCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJhdHRyaWJ1dGUtY29udGFpbmVyLWhlYWRlclwiXHJcbiAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyLm5hbWUgPT09IGF0dHJpYnV0ZUNvbnRhaW5lci5uYW1lID8gJ3NlbGVjdGVkJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwiYXR0cmlidXRlQ29udGFpbmVyLm5hbWVcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lci5uYW1lID09PSBhdHRyaWJ1dGVDb250YWluZXIubmFtZVwiPnt7c2VsZWN0ZWRBdHRyaWJ1dGVDb250YWluZXIubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1ncm93LTEgYXR0cmlidXRlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1ncm93LTEgeS1hdXRvXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWF0dHJpYnV0ZSBbbmdGb3JPZl09XCJzZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lci5hdHRyaWJ1dGVzXCI+XHJcbiAgICAgICAgICAgIDx3aWRnZXQtYXR0cmlidXRlIFthdHRyaWJ1dGVdPVwiYXR0cmlidXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkV2lkZ2V0QXR0cmlidXRlVmFsdWVTZXRdPVwid2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQuaWRXaWRnZXRBdHRyaWJ1dGVWYWx1ZVNldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt3aWRnZXRDb21wb25lbnRdPVwid2lkZ2V0Q29tcG9uZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhdHRyaWJ1dGUudXNlckVkaXRhYmxlXCI+PC93aWRnZXQtYXR0cmlidXRlPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGVDb250YWluZXJzLmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgIFRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgd2lkZ2V0LlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG5cclxuICAgIC5hdHRyaWJ1dGUtY29udGFpbmVyLWhlYWRlci1wYXJlbnQge1xyXG4gICAgICBib3JkZXItYm90dG9tOiBibGFjayAycHggc29saWQ7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgIH1cclxuXHJcbiAgICAuYXR0cmlidXRlLWNvbnRhaW5lci1oZWFkZXIge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHdpZHRoOiAzNXB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjZhYWZmO1xyXG4gICAgICBib3JkZXI6IGJsYWNrIDFweCBzb2xpZDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcclxuICAgICAgcGFkZGluZzogNHB4O1xyXG4gICAgICBmb250LXNpemU6IGxhcmdlO1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBtaW4taGVpZ2h0OiAzNXB4O1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgfVxyXG5cclxuICAgIC5hdHRyaWJ1dGUtY29udGFpbmVyLWhlYWRlci5zZWxlY3RlZCB7XHJcbiAgICAgIHdpZHRoOiA0NSU7XHJcbiAgICB9XHJcblxyXG4gICAgLmF0dHJpYnV0ZS1jb250YWluZXIge1xyXG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICB9XHJcblxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXaWRnZXRDb25maWd1cmVDb21wb25lbnQge1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKSBjbGFzc0xpc3Q6IHN0cmluZyA9IFwib3V0bGV0LWNvbHVtblwiO1xyXG5cclxuICBwdWJsaWMgaVNlbGVjdGVkOiBudW1iZXI7XHJcbiAgcHVibGljIHNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyOiBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXI7XHJcbiAgcHVibGljIGF0dHJpYnV0ZUNvbnRhaW5lcnM6IFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcltdID0gW107XHJcblxyXG4gIHB1YmxpYyB3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2U7XHJcbiAgXHJcbiAgd2lkZ2V0Q29tcG9uZW50OiBXaWRnZXRDb21wb25lbnQ7XHJcbiAgYXR0cmlidXRlQ29udGFpbmVyTWFwOiBNYXA8c3RyaW5nLCBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXI+O1xyXG5cclxuICB3aWRnZXRDb21wb25lbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBhdHRyaWJ1dGVDb250YWluZXJzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogRGFzaGJvYXJkU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlU3ViamVjdC5zdWJzY3JpYmUoKHdpZGdldEluc3RhbmNlOiBXaWRnZXRJbnN0YW5jZSkgPT4ge1xyXG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiV2lkZ2V0Q29uZmlndXJlQ29tcG9uZW50LmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZVN1YmplY3Quc3Vic2NyaWJlOlwiKTtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKHdpZGdldEluc3RhbmNlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF3aWRnZXRJbnN0YW5jZSkge1xyXG4gICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy53aWRnZXRDb21wb25lbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lciA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmlTZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuXHJcblx0XHQgICAgdGhpcy51bnN1YnNjcmliZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2UgPSB3aWRnZXRJbnN0YW5jZTtcclxuXHJcbiAgICAgICAgdGhpcy53aWRnZXRDb21wb25lbnRTdWJzY3JpcHRpb24gPSB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0V2lkZ2V0Q29tcG9uZW50U3ViamVjdCh3aWRnZXRJbnN0YW5jZS5pZFdpZGdldEluc3RhbmNlKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh3aWRnZXRDb21wb25lbnQ6IFdpZGdldENvbXBvbmVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXRDb25maWd1cmVDb21wb25lbnQuZ2V0V2lkZ2V0Q29tcG9uZW50U3ViamVjdC5zdWJzY3JpYmVcIik7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcod2lkZ2V0Q29tcG9uZW50KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5hdHRyaWJ1dGVDb250YWluZXJzU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlQ29udGFpbmVyc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMud2lkZ2V0Q29tcG9uZW50ID0gd2lkZ2V0Q29tcG9uZW50O1xyXG4gICAgICAgICAgaWYgKHRoaXMud2lkZ2V0Q29tcG9uZW50KSB7XHJcblx0XHRcdCAgICAgIHRoaXMud2lkZ2V0Q29tcG9uZW50LmNvbmZpZyh1bmRlZmluZWQpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzU3Vic2NyaXB0aW9uID0gdGhpcy53aWRnZXRDb21wb25lbnQuYXR0cmlidXRlQ29udGFpbmVycy5zdWJzY3JpYmUoKGF0dHJpYnV0ZUNvbnRhaW5lcnM6IE1hcDxzdHJpbmcsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcj4pID0+IHtcclxuICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXRDb25maWd1cmVDb21wb25lbnQuYXR0cmlidXRlQ29udGFpbmVyc1N1YnNjcmlwdGlvblwiKTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYXR0cmlidXRlQ29udGFpbmVycyk7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlQ29udGFpbmVycykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVDb250YWluZXJNYXAgPSBXaWRnZXQubWVyZ2UoYXR0cmlidXRlQ29udGFpbmVycywgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdldENvbW1vbkF0dHJpYnV0ZXMoKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlQXR0cmlidXRlQ29udGFpbmVycygpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lck1hcCA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRDb21tb25BdHRyaWJ1dGVzKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlQXR0cmlidXRlQ29udGFpbmVycygpO1xyXG4gICAgICAgICAgICAgIH1cclxuXHRcdFx0ICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICB1bnN1YnNjcmliZSgpIHtcclxuICAgIGlmICh0aGlzLndpZGdldENvbXBvbmVudFN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLndpZGdldENvbXBvbmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYXR0cmlidXRlQ29udGFpbmVyc1N1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRob3VnaCBhIG1hcCBpcyB1c2VkIHRvIG92ZXJyaWRlIGF0dHJpYnV0ZXMgZWFzaWx5LCB0cmFuc2ZlciBiYWNrIHRvIGFuIGFycmF5IGZvciBlYXN5IHNvcnRpbmcgYW5kIHRvIG1ha2VcclxuICAgKiB0aGUgbmdGb3IgaGFwcHkuXHJcbiAgICovXHJcbiAgZ2VuZXJhdGVBdHRyaWJ1dGVDb250YWluZXJzKCkge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXRDb25maWd1cmVDb21wb25lbnQuZ2VuZXJhdGVBdHRyaWJ1dGVDb250YWluZXJzOiBcIiArIHRoaXMuYXR0cmlidXRlQ29udGFpbmVyTWFwLnNpemUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB0ZW1wQ29udGFpbmVyczogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyW10gPSBbXTtcclxuICAgIGZvciAobGV0IGF0dHJpYnV0ZUNvbnRhaW5lciBvZiB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lck1hcC52YWx1ZXMoKSkge1xyXG4gICAgICBpZiAoYXR0cmlidXRlQ29udGFpbmVyLmhpZGRlbikge1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhdHRyaWJ1dGVDb250YWluZXIuYXR0cmlidXRlcyA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBhdHRyaWJ1dGUgb2YgYXR0cmlidXRlQ29udGFpbmVyLmF0dHJpYnV0ZU1hcC52YWx1ZXMoKSkge1xyXG4gICAgICAgIC8qaWYgKGF0dHJpYnV0ZS51c2VyRWRpdGFibGUpIHtcclxuICAgICAgICAgIGF0dHJpYnV0ZUNvbnRhaW5lci5hdHRyaWJ1dGVzLnB1c2goYXR0cmlidXRlKTtcclxuICAgICAgICB9Ki9cclxuICAgICAgICBhdHRyaWJ1dGVDb250YWluZXIuYXR0cmlidXRlcy5wdXNoKGF0dHJpYnV0ZSk7XHJcbiAgICAgIH1cclxuICAgICAgYXR0cmlidXRlQ29udGFpbmVyLmF0dHJpYnV0ZXMuc29ydCgoYTogV2lkZ2V0QXR0cmlidXRlLCBiOiBXaWRnZXRBdHRyaWJ1dGUpID0+IHtcclxuICAgICAgICBpZiAoYS5zb3J0T3JkZXIgPCBiLnNvcnRPcmRlcikge1xyXG4gICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYS5zb3J0T3JkZXIgPiBiLnNvcnRPcmRlcikge1xyXG4gICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0ZW1wQ29udGFpbmVycy5wdXNoKGF0dHJpYnV0ZUNvbnRhaW5lcik7XHJcbiAgICB9XHJcblxyXG4gICAgdGVtcENvbnRhaW5lcnMuc29ydCgoYTogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyLCBiOiBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXIpID0+IHtcclxuICAgICAgaWYgKGEuc29ydE9yZGVyIDwgYi5zb3J0T3JkZXIpIHtcclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgIH0gZWxzZSBpZiAoYS5zb3J0T3JkZXIgPiBiLnNvcnRPcmRlcikge1xyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5hdHRyaWJ1dGVDb250YWluZXJzLmxlbmd0aCA9PT0gMCB8fCAhdGhpcy53YWNFcXVhbHModGVtcENvbnRhaW5lcnMsIHRoaXMuYXR0cmlidXRlQ29udGFpbmVycykpIHtcclxuICAgICAgdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzID0gdGVtcENvbnRhaW5lcnM7XHJcblxyXG4gICAgICBpZiAodGhpcy5pU2VsZWN0ZWQgJiYgdGhpcy5pU2VsZWN0ZWQgPCB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnMubGVuZ3RoICYmIHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGVDb250YWluZXIubmFtZSA9PT0gdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzW3RoaXMuaVNlbGVjdGVkXS5uYW1lKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lciA9IHRoaXMuYXR0cmlidXRlQ29udGFpbmVyc1t0aGlzLmlTZWxlY3RlZF07XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5hdHRyaWJ1dGVDb250YWluZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyID0gdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzWzBdO1xyXG4gICAgICAgIHRoaXMuaVNlbGVjdGVkID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuaVNlbGVjdGVkID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5zZXRDb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVycyh0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnMpO1xyXG5cclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgY29uc29sZS5kZWJ1Zyh0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3YWNFcXVhbHMoYTogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyW10sIGI6IFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcltdKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChhW2ldLm5hbWUgIT09IGJbaV0ubmFtZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYVtpXS5hdHRyaWJ1dGVzLmxlbmd0aCAhPT0gYltpXS5hdHRyaWJ1dGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFbaV0uYXR0cmlidXRlcy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZiAoYVtpXS5hdHRyaWJ1dGVzW2pdLm5hbWUgIT09IGJbaV0uYXR0cmlidXRlc1tqXS5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn1cclxuIl19
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbmZpZ3VyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2NvbmZpZ3VyZS93aWRnZXQtY29uZmlndXJlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUloRSxPQUFPLEVBQTRELE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7O0FBRy9EOztHQUVHO0FBK0RILE1BQU0sT0FBTyx3QkFBd0I7SUFnQm5DLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBZGhDLGNBQVMsR0FBVyxlQUFlLENBQUM7UUFJbkQsd0JBQW1CLEdBQStCLEVBQUUsQ0FBQztJQVVILENBQUM7SUFFMUQsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQ0FBa0MsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUE4QixFQUFFLEVBQUU7WUFDcEcsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO2dCQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7Z0JBQ3hGLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsU0FBUyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztnQkFFN0IsSUFBSSxD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cmlnaHQgKGMpIDIwMTYgSHVudHNtYW4gQ2FuY2VyIEluc3RpdHV0ZSBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoLCBDb25maWRlbnRpYWwgYW5kIFByb3ByaWV0YXJ5XHJcbiAqL1xyXG5pbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGlzRGV2TW9kZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5cclxuaW1wb3J0IHtXaWRnZXRBdHRyaWJ1dGUsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lciwgV2lkZ2V0SW5zdGFuY2UsIFdpZGdldH0gZnJvbSBcIi4uL21vZGVsL21vZGVsXCI7XHJcbmltcG9ydCB7RGFzaGJvYXJkU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2Rhc2hib2FyZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7V2lkZ2V0Q29tcG9uZW50fSBmcm9tIFwiLi4vd2lkZ2V0L3dpZGdldC5jb21wb25lbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBAc2luY2UgMS4wLjBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcIndpZGdldC1jb25maWd1cmVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndpZGdldEluc3RhbmNlICYmIHNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhdHRyaWJ1dGUtY29udGFpbmVyLWhlYWRlci1wYXJlbnRcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWF0dHJpYnV0ZUNvbnRhaW5lciBsZXQtaT1cImluZGV4XCIgW25nRm9yT2ZdPVwiYXR0cmlidXRlQ29udGFpbmVycyB8IGhhc0VkaXRhYmxlQXR0cmlidXRlc1wiPlxyXG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwic2VsZWN0ZWRBdHRyaWJ1dGVDb250YWluZXIgPSBhdHRyaWJ1dGVDb250YWluZXI7IGlTZWxlY3RlZCA9IGk7XCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJhdHRyaWJ1dGUtY29udGFpbmVyLWhlYWRlclwiXHJcbiAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyLm5hbWUgPT09IGF0dHJpYnV0ZUNvbnRhaW5lci5uYW1lID8gJ3NlbGVjdGVkJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwiYXR0cmlidXRlQ29udGFpbmVyLm5hbWVcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lci5uYW1lID09PSBhdHRyaWJ1dGVDb250YWluZXIubmFtZVwiPnt7c2VsZWN0ZWRBdHRyaWJ1dGVDb250YWluZXIubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1ncm93LTEgYXR0cmlidXRlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1ncm93LTEgeS1hdXRvXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWF0dHJpYnV0ZSBbbmdGb3JPZl09XCJzZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lci5hdHRyaWJ1dGVzXCI+XHJcbiAgICAgICAgICAgIDx3aWRnZXQtYXR0cmlidXRlIFthdHRyaWJ1dGVdPVwiYXR0cmlidXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkV2lkZ2V0QXR0cmlidXRlVmFsdWVTZXRdPVwid2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQuaWRXaWRnZXRBdHRyaWJ1dGVWYWx1ZVNldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt3aWRnZXRDb21wb25lbnRdPVwid2lkZ2V0Q29tcG9uZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhdHRyaWJ1dGUudXNlckVkaXRhYmxlXCI+PC93aWRnZXQtYXR0cmlidXRlPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGVDb250YWluZXJzLmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgIFRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgd2lkZ2V0LlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG5cclxuICAgIC5hdHRyaWJ1dGUtY29udGFpbmVyLWhlYWRlci1wYXJlbnQge1xyXG4gICAgICBib3JkZXItYm90dG9tOiBibGFjayAycHggc29saWQ7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgIH1cclxuXHJcbiAgICAuYXR0cmlidXRlLWNvbnRhaW5lci1oZWFkZXIge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHdpZHRoOiAzNXB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjZhYWZmO1xyXG4gICAgICBib3JkZXI6IGJsYWNrIDFweCBzb2xpZDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcclxuICAgICAgcGFkZGluZzogNHB4O1xyXG4gICAgICBmb250LXNpemU6IGxhcmdlO1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBtaW4taGVpZ2h0OiAzNXB4O1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgfVxyXG5cclxuICAgIC5hdHRyaWJ1dGUtY29udGFpbmVyLWhlYWRlci5zZWxlY3RlZCB7XHJcbiAgICAgIHdpZHRoOiA0NSU7XHJcbiAgICB9XHJcblxyXG4gICAgLmF0dHJpYnV0ZS1jb250YWluZXIge1xyXG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICB9XHJcblxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXaWRnZXRDb25maWd1cmVDb21wb25lbnQge1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKSBjbGFzc0xpc3Q6IHN0cmluZyA9IFwib3V0bGV0LWNvbHVtblwiO1xyXG5cclxuICBwdWJsaWMgaVNlbGVjdGVkOiBudW1iZXI7XHJcbiAgcHVibGljIHNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyOiBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXI7XHJcbiAgcHVibGljIGF0dHJpYnV0ZUNvbnRhaW5lcnM6IFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcltdID0gW107XHJcblxyXG4gIHB1YmxpYyB3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2U7XHJcbiAgXHJcbiAgd2lkZ2V0Q29tcG9uZW50OiBXaWRnZXRDb21wb25lbnQ7XHJcbiAgYXR0cmlidXRlQ29udGFpbmVyTWFwOiBNYXA8c3RyaW5nLCBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXI+O1xyXG5cclxuICB3aWRnZXRDb21wb25lbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBhdHRyaWJ1dGVDb250YWluZXJzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogRGFzaGJvYXJkU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlU3ViamVjdC5zdWJzY3JpYmUoKHdpZGdldEluc3RhbmNlOiBXaWRnZXRJbnN0YW5jZSkgPT4ge1xyXG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiV2lkZ2V0Q29uZmlndXJlQ29tcG9uZW50LmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZVN1YmplY3Quc3Vic2NyaWJlOlwiKTtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKHdpZGdldEluc3RhbmNlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF3aWRnZXRJbnN0YW5jZSkge1xyXG4gICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy53aWRnZXRDb21wb25lbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lciA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmlTZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuXHJcblx0XHQgICAgdGhpcy51bnN1YnNjcmliZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2UgPSB3aWRnZXRJbnN0YW5jZTtcclxuXHJcbiAgICAgICAgdGhpcy53aWRnZXRDb21wb25lbnRTdWJzY3JpcHRpb24gPSB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0V2lkZ2V0Q29tcG9uZW50U3ViamVjdCh3aWRnZXRJbnN0YW5jZS5pZFdpZGdldEluc3RhbmNlKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh3aWRnZXRDb21wb25lbnQ6IFdpZGdldENvbXBvbmVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXRDb25maWd1cmVDb21wb25lbnQuZ2V0V2lkZ2V0Q29tcG9uZW50U3ViamVjdC5zdWJzY3JpYmVcIik7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcod2lkZ2V0Q29tcG9uZW50KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5hdHRyaWJ1dGVDb250YWluZXJzU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlQ29udGFpbmVyc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMud2lkZ2V0Q29tcG9uZW50ID0gd2lkZ2V0Q29tcG9uZW50O1xyXG4gICAgICAgICAgaWYgKHRoaXMud2lkZ2V0Q29tcG9uZW50KSB7XHJcblx0XHRcdCAgICAgIHRoaXMud2lkZ2V0Q29tcG9uZW50LmNvbmZpZyh1bmRlZmluZWQpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzU3Vic2NyaXB0aW9uID0gdGhpcy53aWRnZXRDb21wb25lbnQuYXR0cmlidXRlQ29udGFpbmVycy5zdWJzY3JpYmUoKGF0dHJpYnV0ZUNvbnRhaW5lcnM6IE1hcDxzdHJpbmcsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcj4pID0+IHtcclxuICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXRDb25maWd1cmVDb21wb25lbnQuYXR0cmlidXRlQ29udGFpbmVyc1N1YnNjcmlwdGlvblwiKTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYXR0cmlidXRlQ29udGFpbmVycyk7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlQ29udGFpbmVycykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVDb250YWluZXJNYXAgPSBXaWRnZXQubWVyZ2UoYXR0cmlidXRlQ29udGFpbmVycywgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdldENvbW1vbkF0dHJpYnV0ZXMoKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlQXR0cmlidXRlQ29udGFpbmVycygpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lck1hcCA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRDb21tb25BdHRyaWJ1dGVzKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlQXR0cmlidXRlQ29udGFpbmVycygpO1xyXG4gICAgICAgICAgICAgIH1cclxuXHRcdFx0ICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICB1bnN1YnNjcmliZSgpIHtcclxuICAgIGlmICh0aGlzLndpZGdldENvbXBvbmVudFN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLndpZGdldENvbXBvbmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYXR0cmlidXRlQ29udGFpbmVyc1N1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRob3VnaCBhIG1hcCBpcyB1c2VkIHRvIG92ZXJyaWRlIGF0dHJpYnV0ZXMgZWFzaWx5LCB0cmFuc2ZlciBiYWNrIHRvIGFuIGFycmF5IGZvciBlYXN5IHNvcnRpbmcgYW5kIHRvIG1ha2VcclxuICAgKiB0aGUgbmdGb3IgaGFwcHkuXHJcbiAgICovXHJcbiAgZ2VuZXJhdGVBdHRyaWJ1dGVDb250YWluZXJzKCkge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXRDb25maWd1cmVDb21wb25lbnQuZ2VuZXJhdGVBdHRyaWJ1dGVDb250YWluZXJzOiBcIiArIHRoaXMuYXR0cmlidXRlQ29udGFpbmVyTWFwLnNpemUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB0ZW1wQ29udGFpbmVyczogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyW10gPSBbXTtcclxuICAgIGZvciAobGV0IGF0dHJpYnV0ZUNvbnRhaW5lciBvZiB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lck1hcC52YWx1ZXMoKSkge1xyXG4gICAgICBpZiAoYXR0cmlidXRlQ29udGFpbmVyLmhpZGRlbikge1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhdHRyaWJ1dGVDb250YWluZXIuYXR0cmlidXRlcyA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBhdHRyaWJ1dGUgb2YgYXR0cmlidXRlQ29udGFpbmVyLmF0dHJpYnV0ZU1hcC52YWx1ZXMoKSkge1xyXG4gICAgICAgIC8qaWYgKGF0dHJpYnV0ZS51c2VyRWRpdGFibGUpIHtcclxuICAgICAgICAgIGF0dHJpYnV0ZUNvbnRhaW5lci5hdHRyaWJ1dGVzLnB1c2goYXR0cmlidXRlKTtcclxuICAgICAgICB9Ki9cclxuICAgICAgICBhdHRyaWJ1dGVDb250YWluZXIuYXR0cmlidXRlcy5wdXNoKGF0dHJpYnV0ZSk7XHJcbiAgICAgIH1cclxuICAgICAgYXR0cmlidXRlQ29udGFpbmVyLmF0dHJpYnV0ZXMuc29ydCgoYTogV2lkZ2V0QXR0cmlidXRlLCBiOiBXaWRnZXRBdHRyaWJ1dGUpID0+IHtcclxuICAgICAgICBpZiAoYS5zb3J0T3JkZXIgPCBiLnNvcnRPcmRlcikge1xyXG4gICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYS5zb3J0T3JkZXIgPiBiLnNvcnRPcmRlcikge1xyXG4gICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0ZW1wQ29udGFpbmVycy5wdXNoKGF0dHJpYnV0ZUNvbnRhaW5lcik7XHJcbiAgICB9XHJcblxyXG4gICAgdGVtcENvbnRhaW5lcnMuc29ydCgoYTogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyLCBiOiBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXIpID0+IHtcclxuICAgICAgaWYgKGEuc29ydE9yZGVyIDwgYi5zb3J0T3JkZXIpIHtcclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgIH0gZWxzZSBpZiAoYS5zb3J0T3JkZXIgPiBiLnNvcnRPcmRlcikge1xyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5hdHRyaWJ1dGVDb250YWluZXJzLmxlbmd0aCA9PT0gMCB8fCAhdGhpcy53YWNFcXVhbHModGVtcENvbnRhaW5lcnMsIHRoaXMuYXR0cmlidXRlQ29udGFpbmVycykpIHtcclxuICAgICAgdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzID0gdGVtcENvbnRhaW5lcnM7XHJcblxyXG4gICAgICBpZiAodGhpcy5pU2VsZWN0ZWQgJiYgdGhpcy5pU2VsZWN0ZWQgPCB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnMubGVuZ3RoICYmIHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGVDb250YWluZXIubmFtZSA9PT0gdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzW3RoaXMuaVNlbGVjdGVkXS5uYW1lKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lciA9IHRoaXMuYXR0cmlidXRlQ29udGFpbmVyc1t0aGlzLmlTZWxlY3RlZF07XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5hdHRyaWJ1dGVDb250YWluZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyID0gdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzWzBdO1xyXG4gICAgICAgIHRoaXMuaVNlbGVjdGVkID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuaVNlbGVjdGVkID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5zZXRDb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVycyh0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnMpO1xyXG5cclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgY29uc29sZS5kZWJ1Zyh0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3YWNFcXVhbHMoYTogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyW10sIGI6IFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcltdKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChhW2ldLm5hbWUgIT09IGJbaV0ubmFtZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYVtpXS5hdHRyaWJ1dGVzLmxlbmd0aCAhPT0gYltpXS5hdHRyaWJ1dGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFbaV0uYXR0cmlidXRlcy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZiAoYVtpXS5hdHRyaWJ1dGVzW2pdLm5hbWUgIT09IGJbaV0uYXR0cmlidXRlc1tqXS5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn1cclxuIl19
|