ngx-bimplus-components 0.0.113 → 0.0.114-eslint-fix

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.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1jb250ZXh0LW1lbnUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1jb250ZXh0LW1lbnUvYmltcGx1cy1jb250ZXh0LW1lbnUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEJpbXBsdXNDb250ZXh0TWVudUl0ZW0ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgaWNvbkNsYXNzPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgdG9vbHRpcD86IHN0cmluZztcclxuICBkaXNhYmxlZD86IEZ1bmN0aW9uIHwgYm9vbGVhbjtcclxuICBhY3Rpb24/OiBGdW5jdGlvbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCaW1wbHVzQ29udGV4dE1lbnVQb3NpdGlvbiB7XHJcbiAgcG9zWDogbnVtYmVyO1xyXG4gIHBvc1k6IG51bWJlclxyXG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1jb250ZXh0LW1lbnUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1jb250ZXh0LW1lbnUvYmltcGx1cy1jb250ZXh0LW1lbnUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEJpbXBsdXNDb250ZXh0TWVudUl0ZW0ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgaWNvbkNsYXNzPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgdG9vbHRpcD86IHN0cmluZztcclxuICBkaXNhYmxlZD86IChkYXRhOiBvYmplY3QgfCB1bmRlZmluZWQpID0+IGJvb2xlYW47IC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIGJvb2xlYW5cclxuICBhY3Rpb24/OiAoZGF0YTogb2JqZWN0IHwgdW5kZWZpbmVkKSA9PiB2b2lkOyAvLyBGdW5jdGlvbiB0aGF0IHJldHVybnMgdm9pZFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJpbXBsdXNDb250ZXh0TWVudVBvc2l0aW9uIHtcclxuICBwb3NYOiBudW1iZXI7XHJcbiAgcG9zWTogbnVtYmVyXHJcbn0iXX0=
@@ -240,11 +240,13 @@ export class BimplusToolHubComponent extends BimplusLocalizedWidgetComponent {
240
240
  }
241
241
  set items(value) {
242
242
  this._items = value;
243
- const buttonsLength = ((this._items?.length) > 0) ? this._items.length : 1;
243
+ const buttonsLength = (this._items?.length) > 0 ? this._items.length : 1;
244
244
  const rootStyle = document?.documentElement?.style;
245
245
  if (rootStyle) {
246
246
  const menuItems = rootStyle.getPropertyValue("--menu-items");
247
- parseInt(menuItems) != buttonsLength && rootStyle.setProperty("--menu-items", buttonsLength.toString());
247
+ if (parseInt(menuItems) !== buttonsLength) {
248
+ rootStyle.setProperty("--menu-items", buttonsLength.toString());
249
+ }
248
250
  }
249
251
  // Transfer disabled states, which can defined by host app
250
252
  this.setItemStates(this._itemStates);
@@ -446,4 +448,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
446
448
  }], subItemClicked: [{
447
449
  type: Output
448
450
  }] } });
449
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy10b29sLWh1Yi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9iaW1wbHVzLXRvb2wtaHViL2JpbXBsdXMtdG9vbC1odWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy10b29sLWh1Yi9iaW1wbHVzLXRvb2wtaHViLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUNoSixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQTtBQUNsSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFBOzs7Ozs7QUFJekUsZ0RBQWdEO0FBRWhELFNBQVMsMkJBQTJCO0lBQ2xDLE1BQU0sUUFBUSxHQUEwQjtRQUN0QyxpQkFBaUIsRUFBRSxFQUFFO1FBQ3JCLGVBQWUsRUFBRSxHQUFHO1FBQ3BCLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7UUFDNUIsYUFBYSxFQUFFLElBQUk7UUFDbkIsWUFBWSxFQUFFLEVBQUU7UUFDaEIsY0FBYyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUN4QixhQUFhLEVBQUUsR0FBRztRQUNsQixjQUFjLEVBQUUsRUFBRTtRQUNsQixrQkFBa0IsRUFBRSxFQUFFO1FBQ3RCLGdCQUFnQixFQUFFLEdBQUc7S0FDdEIsQ0FBQTtJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxzQ0FBc0M7QUFDdEMsNkRBQTZEO0FBQzdELCtDQUErQztBQUMvQyw4QkFBOEI7QUFDOUIsNkJBQTZCO0FBQzdCLDBCQUEwQjtBQUMxQix3QkFBd0I7QUFDeEIscUNBQXFDO0FBQ3JDLDRCQUE0QjtBQUM1Qix5QkFBeUI7QUFDekIsbUNBQW1DO0FBQ25DLDJCQUEyQjtBQUMzQiwyQkFBMkI7QUFDM0IsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUM3QixNQUFNO0FBQ04scUJBQXFCO0FBQ3JCLElBQUk7QUFFSixTQUFTLGtCQUFrQjtJQUN6QixNQUFNLEtBQUssR0FBdUI7UUFDaEMscUVBQXFFO1FBQ3JFO1lBQ0UsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUUscUJBQXFCO1lBQ2hDLElBQUksRUFBRSxtQ0FBbUM7WUFDekMsT0FBTyxFQUFFLG1DQUFtQztZQUM1QyxlQUFlLEVBQUUsbUNBQW1DO1NBQ3JEO1FBRUQsMEVBQTBFO1FBQzFFO1lBQ0UsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUUsMkJBQTJCO1lBQ3RDLElBQUksRUFBRSx3Q0FBd0M7WUFDOUMsT0FBTyxFQUFFLHdDQUF3QztZQUNqRCxlQUFlLEVBQUUsd0NBQXdDO1NBQzFEO1FBRUQsZ0VBQWdFO1FBQ2hFO1lBQ0UsUUFBUSxFQUFFLGFBQWE7WUFDdkIsU0FBUyxFQUFFLGdCQUFnQjtZQUMzQixJQUFJLEVBQUUsOEJBQThCO1lBQ3BDLE9BQU8sRUFBRSw4QkFBOEI7WUFDdkMsZUFBZSxFQUFFLDhCQUE4QjtTQUNoRDtRQUVELGlFQUFpRTtRQUNqRTtZQUNFLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRSxpQkFBaUI7WUFDNUIsSUFBSSxFQUFFLGlDQUFpQztZQUN2QyxPQUFPLEVBQUUsaUNBQWlDO1lBQzFDLGVBQWUsRUFBRSxpQ0FBaUM7U0FDbkQ7UUFFRCw4REFBOEQ7UUFDOUQ7WUFDRSxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLFNBQVMsRUFBRSxvQkFBb0I7WUFDL0IsSUFBSSxFQUFFLG1DQUFtQztZQUN6QyxPQUFPLEVBQUUsbUNBQW1DO1lBQzVDLGVBQWUsRUFBRSxtQ0FBbUM7U0FDckQ7UUFFRCxpRUFBaUU7UUFDakU7WUFDRSxRQUFRLEVBQUUsYUFBYTtZQUN2QixTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsT0FBTyxFQUFFLHNDQUFzQztZQUMvQyxlQUFlLEVBQUUsc0NBQXNDO1NBQ3hEO1FBRUQsd0VBQXdFO1FBQ3hFO1lBQ0UsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixTQUFTLEVBQUUsd0JBQXdCO1lBQ25DLElBQUksRUFBRSxxQ0FBcUM7WUFDM0MsT0FBTyxFQUFFLHFDQUFxQztZQUM5QyxlQUFlLEVBQUUscUNBQXFDO1NBQ3ZEO1FBRUQsK0RBQStEO1FBQy9EO1lBQ0UsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsT0FBTyxFQUFFLHNDQUFzQztZQUMvQyxlQUFlLEVBQUUsc0NBQXNDO1NBQ3hEO1FBQ0QsK0RBQStEO1FBQy9EO1lBQ0UsUUFBUSxFQUFFLHVCQUF1QjtZQUNqQyxTQUFTLEVBQUUsMkJBQTJCO1lBQ3RDLElBQUksRUFBRSx3Q0FBd0M7WUFDOUMsT0FBTyxFQUFFLHdDQUF3QztZQUNqRCxlQUFlLEVBQUUsd0NBQXdDO1NBQzFEO1FBRUQsK0RBQStEO1FBQy9EO1lBQ0UsU0FBUyxFQUFFLG1CQUFtQjtZQUM5QixRQUFRLEVBQUUsZUFBZTtZQUN6QixJQUFJLEVBQUUscUNBQXFDO1lBQzNDLE9BQU8sRUFBRSxxQ0FBcUM7WUFDOUMsZUFBZSxFQUFFLHFDQUFxQztTQUN2RDtRQUNELDhEQUE4RDtRQUM5RDtZQUNFLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRSxrQkFBa0I7WUFDN0IsSUFBSSxFQUFFLGtDQUFrQztZQUN4QyxPQUFPLEVBQUUsa0NBQWtDO1lBQzNDLGVBQWUsRUFBRSxrQ0FBa0M7WUFDbkQsU0FBUyxFQUFFLGtCQUFrQjtZQUM3QixRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsU0FBUyxFQUFFLG9CQUFvQjtvQkFDL0IsSUFBSSxFQUFFLGlDQUFpQztvQkFDdkMsT0FBTyxFQUFFLGlDQUFpQztvQkFDMUMsZUFBZSxFQUFFLGlDQUFpQztvQkFDbEQsV0FBVyxFQUFFLDBCQUEwQjtpQkFDeEM7Z0JBRUQsa0VBQWtFO2dCQUNsRTtvQkFDRSxRQUFRLEVBQUUsY0FBYztvQkFDeEIsU0FBUyxFQUFFLGtCQUFrQjtvQkFDN0IsSUFBSSxFQUFFLCtCQUErQjtvQkFDckMsT0FBTyxFQUFFLCtCQUErQjtvQkFDeEMsZUFBZSxFQUFFLCtCQUErQjtvQkFDaEQsV0FBVyxFQUFFLHdCQUF3QjtpQkFDdEM7Z0JBQ0QsbUVBQW1FO2dCQUNuRTtvQkFDRSxRQUFRLEVBQUUsZUFBZTtvQkFDekIsU0FBUyxFQUFFLG1CQUFtQjtvQkFDOUIsSUFBSSxFQUFFLGdDQUFnQztvQkFDdEMsT0FBTyxFQUFFLGdDQUFnQztvQkFDekMsZUFBZSxFQUFFLGdDQUFnQztvQkFDakQsV0FBVyxFQUFFLHlCQUF5QjtpQkFDdkM7Z0JBQ0QsMEVBQTBFO2dCQUMxRTtvQkFDRSxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxTQUFTLEVBQUUsMEJBQTBCO29CQUNyQyxJQUFJLEVBQUUsdUNBQXVDO29CQUM3QyxPQUFPLEVBQUUsdUNBQXVDO29CQUNoRCxlQUFlLEVBQUUsdUNBQXVDO29CQUN4RCxXQUFXLEVBQUUsZ0NBQWdDO2lCQUM5QzthQUNGO1NBQ0Y7S0FDRixDQUFBO0lBRUQsc0ZBQXNGO0lBQ3RGLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFaEUsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUFDbEMsTUFBTSxvQkFBb0IsR0FBSSxHQUFHLENBQUM7QUFnQmxDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSwrQkFBK0I7SUFDMUUsWUFBWSxnQkFBa0MsRUFDMUIsb0JBQTBDLEVBQzFDLHFCQUEyQyxFQUMzQyxPQUFtQjtRQUNyQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUhOLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFzQjtRQUMzQyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBeUZDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3ZELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFdEQsc0VBQXNFO1FBQ3RFLGlFQUFpRTtRQUV6RCxnQkFBVyxHQUFHLG1CQUFtQixDQUFDO1FBQ2xDLGlCQUFZLEdBQXdCLElBQUksQ0FBQyxDQUFFLHFCQUFxQjtRQWdKeEUsNEJBQTRCO1FBRTVCLHlCQUF5QjtRQUNqQixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixnQkFBVyxHQUE2QixLQUFLLEVBQXFCLENBQUM7UUFDbkUsV0FBTSxHQUF1QixLQUFLLEVBQWUsQ0FBQztRQUNsRCx3QkFBbUIsR0FBdUIsSUFBSSxDQUFDO1FBQy9DLG9CQUFlLEdBQWlDLElBQUksQ0FBQztRQU9yRCxxQkFBZ0IsR0FBa0IsS0FBSyxFQUFVLENBQUM7UUE5UHhELElBQUksQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLDJCQUEyQixFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO1FBQzdELElBQUksQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsWUFBWSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMsc0JBQXNCLEdBQUcsWUFBWSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUVqRyxDQUFDO0lBRUQsd0JBQXdCO0lBRXhCLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBYSxVQUFVLENBQUMsS0FBK0I7UUFDckQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFvQztRQUNoRCxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFLENBQUM7b0JBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztnQkFDakMsQ0FBQztnQkFDRCxJQUFJLFNBQVMsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztnQkFDckMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUdELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBYSxLQUFLLENBQUMsS0FBeUI7UUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFcEIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0UsTUFBTSxTQUFTLEdBQUcsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLENBQUM7UUFDbkQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM3RCxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksYUFBYSxJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFHLENBQUM7UUFFRCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFDSSxXQUFXLENBQUMsS0FBYztRQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7SUFjRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMsb0JBQW9CLEVBQUMsSUFBSSxFQUFDLHFCQUFxQixFQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDN0ksSUFBSSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzRCxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO0lBRUQsZUFBZTtRQUNkLG1FQUFtRTtRQUNuRSw4QkFBOEI7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5RSxJQUFJLENBQUMsNkJBQTZCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsMkJBQTJCO0lBRTNCLHlCQUF5QjtJQUNsQixhQUFhO1FBQ2xCLE9BQU8sWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLG9CQUFvQjtRQUN6QixPQUFPLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLHdCQUF3QjtRQUM3QixPQUFPLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLDJCQUEyQjtRQUNoQyxPQUFPLFlBQVksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyQyxVQUFVLENBQUMsR0FBRSxFQUFFO1lBQ2IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkcsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsbUJBQW1CLENBQUMsRUFBVTtRQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBYztRQUM3QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDNUIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBYztRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzFCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELHVCQUF1QixDQUFDLFFBQWdCO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMzQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRTNCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxRQUFnQjtRQUNqQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDeEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUNsQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFlLEVBQUUsT0FBZ0I7UUFDL0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7UUFFdkQsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUVELElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLGlCQUFpQixHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBRWhFLG9IQUFvSDtZQUNwSCxXQUFXLENBQUMsR0FBRyxFQUFFO2dCQUNmLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDdkMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7Z0JBQ2pDLENBQUM7WUFDSCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDWCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQSxDQUFDLENBQUEsaUJBQWlCLENBQUM7SUFDeEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUF1QjtRQUNqQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLEVBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsT0FBTyxDQUFDLENBQUE7SUFDM0csQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQWlCRCw0QkFBNEI7SUFFNUIsMEJBQTBCO0lBQ2xCLDZCQUE2QjtRQUNuQyxPQUFPLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hKLENBQUM7SUFFTyxnQ0FBZ0M7UUFDdEMsT0FBTyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEksQ0FBQztJQUVPLDZCQUE2QixDQUFDLFVBQThCO1FBQ2xFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixLQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQztZQUM1QixJQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSTtnQkFDckIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQzthQUFJLENBQUM7WUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQzsrR0FwU1UsdUJBQXVCO21HQUF2Qix1QkFBdUIsd0pBb0VkLGdCQUFnQiw0Q0F5QmhCLGdCQUFnQix5Q0FDaEIsZ0JBQWdCLHNDQUNoQixnQkFBZ0IsMkZBcEd6QixDQUFDLGdCQUFnQixDQUFDLGlEQ2hOL0IsOHRJQW1IQSw2N3FDRHVGSSxlQUFlLDJGQUNmLFlBQVksMFBBQ1osb0JBQW9CLHVHQUNwQix1QkFBdUIsMkdBQ3ZCLGtCQUFrQjs7NEZBT1QsdUJBQXVCO2tCQWZuQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3dCQUN2QixrQkFBa0I7cUJBQ25CLGFBQ1UsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFHZCxpQkFBaUIsQ0FBQyxTQUFTO3FMQXdCN0IsVUFBVTtzQkFBdEIsS0FBSztnQkF5Qk8sS0FBSztzQkFBakIsS0FBSztnQkFzQkYsV0FBVztzQkFEZCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQXlCRSxVQUFVO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFNBQVM7c0JBQWhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDNUIsV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBib29sZWFuQXR0cmlidXRlLCBFbGVtZW50UmVmLCBPbkluaXQsIEFmdGVyVmlld0luaXQgIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgfSBmcm9tIFwiLi8uLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudFwiXHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU1ZHR2VuZXJhdG9yIH0gZnJvbSAnLi9zdmdHZW5lcmF0b3InO1xyXG5pbXBvcnQgeyBUb29sSHViSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdG9vbC1odWItaXRlbS90b29sLWh1Yi1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2xIdWJTdWJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi90b29sLWh1Yi1zdWItaXRlbS90b29sLWh1Yi1zdWItaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEcmFnZ2FibGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RyYWdnYWJsZS5kaXJlY3RpdmUnXHJcbmltcG9ydCB7IFRvb2xIdWJJdGVtLCBUb29sSHViU3ViSXRlbSwgVG9vbEh1YlZpc3VhbFNldHRpbmdzLCBUb29sSHViSXRlbVVuaXRzLCBUb29sSHViSXRlbVN0YXRlcyB9IGZyb20gJy4vYmltcGx1cy10b29sLWh1Yi5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBMYXlvdXRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xheW91dC1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXNpemUtb2JzZXJ2ZXIuc2VydmljZSc7XHJcbi8vaW1wb3J0IHsgZmlyZUV2ZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xyXG5cclxuZnVuY3Rpb24gY3JlYXRlRGVmYXVsdFZpc3VhbFNldHRpbmdzKCk6IFRvb2xIdWJWaXN1YWxTZXR0aW5ncyB7XHJcbiAgY29uc3Qgc2V0dGluZ3M6IFRvb2xIdWJWaXN1YWxTZXR0aW5ncyA9IHtcclxuICAgIHN1Yk1lbnVTdGFydEFuZ2xlOiA1MCxcclxuICAgIHN1Yk1lbnVFbmRBbmdsZTogMTMwLFxyXG4gICAgc3ZnUmFkaXVzSW5uZXI6IDUuNzUsXHJcbiAgICBzdmdSYWRpdXM6IDEwLjI1LFxyXG4gICAgc3ViTWVudUNlbnRlcjogWzE3LjI1LCAxNy41XSxcclxuICAgIHN1Yk1lbnVSYWRpdXM6IDE1LjUsXHJcbiAgICBzdWJNZW51V2lkdGg6IDUyLFxyXG4gICAgZGVhZFpvbmVDZW50ZXI6IFsxNywgMThdLFxyXG4gICAgZGVhZFpvbmVXaWR0aDogMTQwLFxyXG4gICAgZGVhZFpvbmVSYWRpdXM6IDIyLFxyXG4gICAgZGVhZFpvbmVTdGFydEFuZ2xlOiA0NSxcclxuICAgIGRlYWRab25lRW5kQW5nbGU6IDEzNVxyXG4gIH1cclxuICByZXR1cm4gc2V0dGluZ3M7XHJcbn1cclxuXHJcbi8vIFVzZSB3aGVuIGltcGxlbWVudGluZyBlbWJlZGRlZCBtb2RlXHJcbi8vIGZ1bmN0aW9uIGNyZWF0ZUVtYmVkZGVkU2V0dGluZ3MoKSA6IFRvb2xIdWJWaXN1YWxTZXR0aW5nc3tcclxuLy8gICBjb25zdCBzZXR0aW5ncyA6IFRvb2xIdWJWaXN1YWxTZXR0aW5ncyA9IHtcclxuLy8gICAgIHN1Yk1lbnVTdGFydEFuZ2xlIDogNTAsXHJcbi8vICAgICBzdWJNZW51RW5kQW5nbGUgOiAxMzAsXHJcbi8vICAgICBzdmdSYWRpdXNJbm5lciA6IDQsXHJcbi8vICAgICBzdmdSYWRpdXMgOiA3LjI1LFxyXG4vLyAgICAgc3ViTWVudUNlbnRlciA6IFsxNy4yNSwgMTcuM10sXHJcbi8vICAgICBzdWJNZW51UmFkaXVzIDogMTYuMixcclxuLy8gICAgIHN1Yk1lbnVXaWR0aCA6IDYyLFxyXG4vLyAgICAgZGVhZFpvbmVDZW50ZXIgOiBbMTYuNSwgMTZdLFxyXG4vLyAgICAgZGVhZFpvbmVXaWR0aCA6IDEyMCxcclxuLy8gICAgIGRlYWRab25lUmFkaXVzIDogMTgsXHJcbi8vICAgICBkZWFkWm9uZVN0YXJ0QW5nbGUgOiAzNSxcclxuLy8gICAgIGRlYWRab25lRW5kQW5nbGUgOiAxNDVcclxuLy8gICB9XHJcbi8vICAgcmV0dXJuIHNldHRpbmdzO1xyXG4vLyB9XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVEZWZhdWx0SXRlbXMoKTogQXJyYXk8VG9vbEh1Ykl0ZW0+IHtcclxuICBjb25zdCBpdGVtczogQXJyYXk8VG9vbEh1Ykl0ZW0+ID0gW1xyXG4gICAgLy8tLS0gY3JlYXRlIHRhc2sgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB7XHJcbiAgICAgIGJ1dHRvbklkOiAnY21CdXRDcmVhdGVUYXNrJyxcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1jcmVhdGUtdGFzaycsXHJcbiAgICAgIHRleHQ6ICdfQ3JlYXRlX2lzc3VlX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX0NyZWF0ZV9pc3N1ZV9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcERpc2FibGVkOiAnX0NyZWF0ZV9pc3N1ZV9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcblxyXG4gICAgLy8tLS0gcXVhbnRpdHkgdGFrZW9mZiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgYnV0dG9uSWQ6ICdjbUJ1dFF1YW50aXR5VGFrZU9mZicsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tcXVhbnRpdHktdGFrZS1vZmYnLFxyXG4gICAgICB0ZXh0OiAnX1F1YW50aXR5X3Rha2VfT2ZmX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX1F1YW50aXR5X3Rha2VfT2ZmX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfUXVhbnRpdHlfdGFrZV9PZmZfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICB9LFxyXG5cclxuICAgIC8vLS0tIG1hcmt1cCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgYnV0dG9uSWQ6ICdjbUJ1dE1hcmt1cCcsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tbWFya3VwJyxcclxuICAgICAgdGV4dDogJ19NYXJrdXBzX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX01hcmt1cHNfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19NYXJrdXBzX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgfSxcclxuXHJcbiAgICAvLy0tLSBzZWN0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0U2VjdGlvbicsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tc2VjdGlvbicsXHJcbiAgICAgIHRleHQ6ICdfU2VjdGlvbmluZ19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcDogJ19TZWN0aW9uaW5nX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfU2VjdGlvbmluZ19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcblxyXG4gICAgLy8tLS0gaGlkZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgYnV0dG9uSWQ6ICdjbUJ1dE9ialRyYW5zcE1lbnUnLFxyXG4gICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLW9iai10cmFuc3AnLFxyXG4gICAgICB0ZXh0OiAnX0hpZGVfb2JqZWN0c19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcDogJ19IaWRlX29iamVjdHNfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19IaWRlX29iamVjdHNfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICB9LFxyXG5cclxuICAgIC8vLS0tIGlzb2xhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB7XHJcbiAgICAgIGJ1dHRvbklkOiAnY21CdXRPYmpTZWwnLFxyXG4gICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLW9iai1zZWxlY3QnLFxyXG4gICAgICB0ZXh0OiAnX0lzb2xhdGVfb2JqZWN0c19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcDogJ19Jc29sYXRlX29iamVjdHNfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19Jc29sYXRlX29iamVjdHNfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICB9LFxyXG5cclxuICAgIC8vLS0tIG5hdmlnYXRpb24gbWFwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0TmF2aWdhdGlvbk1hcCcsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tbmF2aWdhdGlvbi1tYXAnLFxyXG4gICAgICB0ZXh0OiAnX05hdmlnYXRpb25fbmFwX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX05hdmlnYXRpb25fbmFwX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfTmF2aWdhdGlvbl9uYXBfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICB9LFxyXG5cclxuICAgIC8vLS0tIGZ1bGxzY3JlZW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0RnVsbFNjcmVlbicsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tZnVsbHNjcmVlbicsXHJcbiAgICAgIHRleHQ6ICdfRnVsbHNjcmVlbl9ub2RlX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX0Z1bGxzY3JlZW5fbm9kZV9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcERpc2FibGVkOiAnX0Z1bGxzY3JlZW5fbm9kZV9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcbiAgICAvLy0tLSBwcm9qZWN0IG5hdmlnYXRvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgYnV0dG9uSWQ6ICdjbUJ1dFByb2plY3ROYXZpZ2F0b3InLFxyXG4gICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLXByb2plY3QtbmF2aWdhdG9yJyxcclxuICAgICAgdGV4dDogJ19Qcm9qZWN0X25hdmlnYXRvcl9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcDogJ19Qcm9qZWN0X25hdmlnYXRvcl9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcERpc2FibGVkOiAnX1Byb2plY3RfbmF2aWdhdG9yX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgfSxcclxuXHJcbiAgICAvLy0tLSByZXNldCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1vYmotcmVzZXQnLFxyXG4gICAgICBidXR0b25JZDogJ2NtQnV0UmVzZXRPYmonLFxyXG4gICAgICB0ZXh0OiAnX1Jlc2V0X3ZpZXdwb3J0X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX1Jlc2V0X3ZpZXdwb3J0X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfUmVzZXRfdmlld3BvcnRfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICB9LFxyXG4gICAgLy8tLS0gdmlldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgYnV0dG9uSWQ6ICdjbUJ1dFJlc2V0VnAnLFxyXG4gICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLXJlc2V0LXZwJyxcclxuICAgICAgdGV4dDogJ19TZWxlY3Rfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcDogJ19TZWxlY3Rfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcERpc2FibGVkOiAnX1NlbGVjdF92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICBzdWJNZW51SWQ6ICdjbWItdmlldy1zdWJtZW51JyxcclxuICAgICAgc3ViSXRlbXM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBidXR0b25JZDogJ2NtQnV0RnJvbnRWaWV3JyxcclxuICAgICAgICAgIGljb25DbGFzczogJ3VpLWljb24tZnJvbnQtdmlldycsXHJcbiAgICAgICAgICB0ZXh0OiAnX0Zyb250X3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwOiAnX0Zyb250X3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfRnJvbnRfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIGFjdGlvbkNsaWNrOiAnY2VudGVyTWVudUZyb250Vmlld0NsaWNrJyxcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICAvLy0tLSBUb3AgVmlldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgICAgICB7XHJcbiAgICAgICAgICBidXR0b25JZDogJ2NtQnV0VG9wVmlldycsXHJcbiAgICAgICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLXRvcC12aWV3JyxcclxuICAgICAgICAgIHRleHQ6ICdfVG9wX3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwOiAnX1RvcF92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICAgICAgdG9vbHRpcERpc2FibGVkOiAnX1RvcF92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICAgICAgYWN0aW9uQ2xpY2s6ICdjZW50ZXJNZW51VG9wVmlld0NsaWNrJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vLS0tIFNpZGUgVmlldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgICAgICB7XHJcbiAgICAgICAgICBidXR0b25JZDogJ2NtQnV0U2lkZVZpZXcnLFxyXG4gICAgICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1zaWRlLXZpZXcnLFxyXG4gICAgICAgICAgdGV4dDogJ19TaWRlX3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwOiAnX1NpZGVfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19TaWRlX3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICBhY3Rpb25DbGljazogJ2NlbnRlck1lbnVTaWRlVmlld0NsaWNrJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vLS0tIFBlcnNwZWN0aXZlIFZpZXcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgYnV0dG9uSWQ6ICdjbUJ1dFBlcnNwZWN0aXZlVmlldycsXHJcbiAgICAgICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLXBlcnNwZWN0aXZlLXZpZXcnLFxyXG4gICAgICAgICAgdGV4dDogJ19QZXJzcGVjdGl2ZV92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICAgICAgdG9vbHRpcDogJ19QZXJzcGVjdGl2ZV92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICAgICAgdG9vbHRpcERpc2FibGVkOiAnX1BlcnNwZWN0aXZlX3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICBhY3Rpb25DbGljazogJ2NlbnRlck1lbnVQZXJzcGVjdGl2ZVZpZXdDbGljaycsXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9XHJcbiAgXVxyXG5cclxuICAvLyBTZXQgYWxsIHRvb2wgaHViIGl0ZW1zIHN0YXRlcyB0byBpbmFjdGl2ZSBhbmQgZGlzYWJsZWQuIEhvc3QgQXBwIG11c3QgZGVmaW5lIHN0YXRlc1xyXG4gIGl0ZW1zLm1hcChpdGVtID0+IHsgaXRlbS5hY3RpdmUgPSBmYWxzZTsgaXRlbS5kaXNhYmxlZCA9IHRydWUgfSlcclxuXHJcbiAgcmV0dXJuIGl0ZW1zO1xyXG59XHJcblxyXG5jb25zdCBERUZBVUxUX1BPU0lUSU9OX0xFRlQgPSAzNTA7XHJcbmNvbnN0IERFRkFVTFRfUE9TSVRJT05fVE9QICA9IDY3MDtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYmltcGx1cy10b29sLWh1YicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBUb29sSHViSXRlbUNvbXBvbmVudCxcclxuICAgIFRvb2xIdWJTdWJJdGVtQ29tcG9uZW50LFxyXG4gICAgRHJhZ2dhYmxlRGlyZWN0aXZlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtUcmFuc2xhdGVTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy10b29sLWh1Yi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JpbXBsdXMtdG9vbC1odWIuY29tcG9uZW50Lmxlc3MnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmltcGx1c1Rvb2xIdWJDb21wb25lbnQgZXh0ZW5kcyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LEFmdGVyVmlld0luaXQge1xyXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsYXlvdXRNYW5hZ2VyU2VydmljZTogTGF5b3V0TWFuYWdlclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZXNpemVPYnNlcnZlclNlcnZpY2U6UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSk7XHJcbiAgICAgICAgICAgXHJcbiAgICB0aGlzLml0ZW1zID0gY3JlYXRlRGVmYXVsdEl0ZW1zKCk7XHJcbiAgICB0aGlzLl92aXN1YWxTZXR0aW5ncyA9IGNyZWF0ZURlZmF1bHRWaXN1YWxTZXR0aW5ncygpO1xyXG4gICAgdGhpcy5fdW5pdHMgPSB0aGlzLmNhbGN1bGF0ZUN1cnJlbnRNZW51SXRlbVVuaXRzKCk7XHJcbiAgICB0aGlzLl9zdWJNZW51VW5pdHMgPSB0aGlzLmNhbGN1bGF0ZUN1cnJlbnRTdWJNZW51SXRlbVVuaXRzKCk7XHJcbiAgICB0aGlzLl9hbm51bGFyU2VjdG9yID0gU1ZHR2VuZXJhdG9yLmdlbmVyYXRlQW5udWxhclNlY3Rvcih0aGlzLl92aXN1YWxTZXR0aW5ncyk7XHJcbiAgICB0aGlzLl9hbm51bGFyU2VjdG9yQm9yZGVyID0gU1ZHR2VuZXJhdG9yLmdlbmVyYXRlQW5udWxhclNlY3RvckJvcmRlcih0aGlzLl92aXN1YWxTZXR0aW5ncyk7XHJcbiAgICB0aGlzLl9kZWFkWm9uZUFubnVsYXJTZWN0b3IgPSBTVkdHZW5lcmF0b3IuZ2VuZXJhdGVEZWFkWm9uZUFubnVsYXJTZWN0b3IodGhpcy5fdmlzdWFsU2V0dGluZ3MpO1xyXG5cclxuICB9XHJcblxyXG4gIC8vICNyZWdpb24gcHVibGljIGZpZWxkc1xyXG4gIFxyXG4gIGdldCBpdGVtU3RhdGVzKCk6IEFycmF5PFRvb2xIdWJJdGVtU3RhdGVzPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbVN0YXRlcztcclxuICB9XHJcbiAgQElucHV0KCkgc2V0IGl0ZW1TdGF0ZXModmFsdWU6IEFycmF5PFRvb2xIdWJJdGVtU3RhdGVzPikge1xyXG4gICAgdGhpcy5faXRlbVN0YXRlcyA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZXRJdGVtU3RhdGVzKHRoaXMuX2l0ZW1TdGF0ZXMpO1xyXG4gIH1cclxuXHJcbiAgc2V0SXRlbVN0YXRlcyhpdGVtU3RhdGVzOiBBcnJheTxUb29sSHViSXRlbVN0YXRlcz4pIHtcclxuICAgIGZvciAoY29uc3QgaXRlbVN0YXRlIG9mIGl0ZW1TdGF0ZXMpIHtcclxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuX2l0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmJ1dHRvbklkID09PSBpdGVtU3RhdGUuYnV0dG9uSWQpO1xyXG4gICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgIGlmIChpdGVtU3RhdGUuYWN0aXZlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgaXRlbS5hY3RpdmUgPSBpdGVtU3RhdGUuYWN0aXZlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXRlbVN0YXRlLmRpc2FibGVkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgPSBpdGVtU3RhdGUuZGlzYWJsZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlQWN0aXZhdGlvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0IGl0ZW1zKCk6IEFycmF5PFRvb2xIdWJJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyh2YWx1ZTogQXJyYXk8VG9vbEh1Ykl0ZW0+KSB7XHJcbiAgICB0aGlzLl9pdGVtcyA9IHZhbHVlO1xyXG5cclxuICAgIGNvbnN0IGJ1dHRvbnNMZW5ndGggPSAoKHRoaXMuX2l0ZW1zPy5sZW5ndGgpID4gMCkgPyB0aGlzLl9pdGVtcy5sZW5ndGggOiAxO1xyXG4gICAgY29uc3Qgcm9vdFN0eWxlID0gZG9jdW1lbnQ/LmRvY3VtZW50RWxlbWVudD8uc3R5bGU7XHJcbiAgICBpZiAocm9vdFN0eWxlKSB7XHJcbiAgICAgIGNvbnN0IG1lbnVJdGVtcyA9IHJvb3RTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFwiLS1tZW51LWl0ZW1zXCIpO1xyXG4gICAgICBwYXJzZUludChtZW51SXRlbXMpICE9IGJ1dHRvbnNMZW5ndGggJiYgcm9vdFN0eWxlLnNldFByb3BlcnR5KFwiLS1tZW51LWl0ZW1zXCIsIGJ1dHRvbnNMZW5ndGgudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVHJhbnNmZXIgZGlzYWJsZWQgc3RhdGVzLCB3aGljaCBjYW4gZGVmaW5lZCBieSBob3N0IGFwcFxyXG4gICAgdGhpcy5zZXRJdGVtU3RhdGVzKHRoaXMuX2l0ZW1TdGF0ZXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjdGl2ZVN1Ykl0ZW1zKCk6IEFycmF5PFRvb2xIdWJTdWJJdGVtPiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVN1Ykl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzQ29sbGFwc2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzQ29sbGFwc2VkO1xyXG4gIH1cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcclxuICBzZXQgaXNDb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2lzQ29sbGFwc2VkID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgdW5pdHMoKTogVG9vbEh1Ykl0ZW1Vbml0cyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdW5pdHM7XHJcbiAgfVxyXG5cclxuICBnZXQgc3ViTWVudVVuaXRzKCk6IFRvb2xIdWJJdGVtVW5pdHMge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N1Yk1lbnVVbml0cztcclxuICB9XHJcblxyXG4gIGdldCBhbm51bGFyU2VjdG9yKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYW5udWxhclNlY3RvcjtcclxuICB9XHJcblxyXG4gIGdldCBhbm51bGFyU2VjdG9yQm9yZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYW5udWxhclNlY3RvckJvcmRlcjtcclxuICB9XHJcblxyXG4gIGdldCBkZWFkWm9uZUFubnVsYXJTZWN0b3IoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWFkWm9uZUFubnVsYXJTZWN0b3I7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNFbWJlZGRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNBY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBPdXRwdXQoKSBpdGVtQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBzdWJJdGVtQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIFxyXG4gIC8vIERlZmluZSBldmVudCBoYW5kbGVyIGZvciByZXVzaW5nIGRyYWdnYWJsZSBhbHNvIGZyb20gcmVzaXplIHBhcmVudCBcclxuICAvL0BPdXRwdXQoKSByZXNpemVkcmFnZ2luZyA9IG5ldyBFdmVudEVtaXR0ZXI8W251bWJlcixudW1iZXJdPigpO1xyXG5cclxuICBwcml2YXRlIGNvbXBvbmVudElkID0gJ2NlbnRlci1tZW51LWZwLWlkJztcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7ICAvLyBJbml0aWFsaXplIHRvIG51bGxcclxuXHJcbiAgbmdPbkluaXQoKTp2b2lkeyAgIFxyXG4gICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5yZWdpc3Rlck9iamVjdCh0aGlzLmVsZW1lbnQsdGhpcy5jb21wb25lbnRJZCwnI2NlbnRlci1tZW51LWZwLWlkJyx0cnVlLERFRkFVTFRfUE9TSVRJT05fTEVGVCxERUZBVUxUX1BPU0lUSU9OX1RPUCk7XHJcbiAgICB0aGlzLmxheW91dE1hbmFnZXJTZXJ2aWNlLnJlZ2lzdGVyZWRJdGVtcyQuc3Vic2NyaWJlKGl0ZW1zID0+IHtcclxuICAgICAgY29uc3QgbGF5b3V0TWFuYWdlckl0ZW0gPSBpdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gdGhpcy5jb21wb25lbnRJZCk7XHJcbiAgICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhIWxheW91dE1hbmFnZXJJdGVtPy5pc0NvbGxhcHNlZDtcclxuICAgIH0pO1xyXG4gICAgXHJcbiAgfVxyXG4gIFxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOnZvaWR7XHJcbiAgIC8vIGlmIHRoZSBjb21wb25lbnQgd2FudHMgdG8gYmUgcmVnaXN0ZXJlZCBpbiBsYXlvdXQgbWFuYWdlciBzeXN0ZW1cclxuICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBvYnNlcnZhYmxlXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMucmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLnBhcmVudEFwcFJlY3QkLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgIHRoaXMuaGFuZGxlUGFyZW50QXBwUmVjdFNpemVDaGFuZ2UodmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIC8vICNlbmRyZWdpb24gcHVibGljIGZpZWxkc1xyXG4gXHJcbiAgLy8gI3JlZ2lvbiBwdWJsaWMgbWV0aG9kc1xyXG4gIHB1YmxpYyBnZXRTVkdWaWV3Qm94KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmdldFNWR1ZpZXdCb3godGhpcy5fdW5pdHMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNWR0NlbnRlck1lbnVQYXRoKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmdldFNWR0NlbnRlck1lbnVQYXRoKHRoaXMuX3VuaXRzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTVkdDZW50ZXJNZW51SXRlbVBhdGgoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTVkdHZW5lcmF0b3IuZ2V0U1ZHQ2VudGVyTWVudUl0ZW1QYXRoKHRoaXMuX3VuaXRzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTVkdDZW50ZXJTdWJNZW51SXRlbVBhdGgoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTVkdHZW5lcmF0b3IuZ2V0U1ZHQ2VudGVyU3ViTWVudUl0ZW1QYXRoKHRoaXMuX3N1Yk1lbnVVbml0cyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlTWVudSgpIHtcclxuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcclxuICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5jaGVja1Bvc2l0aW9uKCdjZW50ZXItbWVudS1mcC1pZCcsdGhpcy5nZXRTZWxlY3RvcigpLHVuZGVmaW5lZCwwLDAsdHJ1ZSk7ICAgICAgXHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBmaW5kVG9vbEh1Ykl0ZW1CeUlkKGlkOiBzdHJpbmcpOiBUb29sSHViSXRlbSB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbXMuZmluZCh4ID0+IHguYnV0dG9uSWQgPT09IGlkKTtcclxuICB9XHJcblxyXG4gIGNsaWNrVG9vbEh1Ykl0ZW0oYWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZpbmRUb29sSHViSXRlbUJ5SWQoYWN0aW9uKTtcclxuICAgIGlmICghaXRlbSB8fCBpdGVtPy5kaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pdGVtQ2xpY2tlZC5lbWl0KGFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBjbGlja1Rvb2xIdWJTdWJJdGVtKGFjdGlvbjogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRoaXMuX2FjdGl2ZVN1Ykl0ZW1zKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpdGVtID0gdGhpcy5fYWN0aXZlU3ViSXRlbXMuZmluZCh4ID0+IHguYnV0dG9uSWQgPT09IGFjdGlvbik7XHJcbiAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3ViSXRlbUNsaWNrZWQuZW1pdChhY3Rpb24pO1xyXG4gICAgdGhpcy5jbG9zZUFjdGl2ZVN1Ykl0ZW1zVmlldygpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlVG9vbEh1Ykl0ZW1BY3RpdmUoYnV0dG9uSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZmluZFRvb2xIdWJJdGVtQnlJZChidXR0b25JZCk7XHJcbiAgICBpZiAoIWl0ZW0gfHwgaXRlbS5kaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaXRlbS5hY3RpdmUgPSAhaXRlbS5hY3RpdmU7XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlQWN0aXZhdGlvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVTdWJJdGVtc1ZpZXcoYnV0dG9uSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZmluZFRvb2xIdWJJdGVtQnlJZChidXR0b25JZCk7XHJcbiAgICBpZiAoIWl0ZW0gfHwgaXRlbS5kaXNhYmxlZCB8fCAhaXRlbS5zdWJJdGVtcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaXRlbS5hY3RpdmUgPSAhaXRlbS5hY3RpdmU7XHJcbiAgICBpZiAoaXRlbS5hY3RpdmUpIHtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXNWaWV3ID0gaXRlbTtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXMgPSBpdGVtLnN1Ykl0ZW1zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXNWaWV3ID0gbnVsbDtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXMgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VBY3RpdmVTdWJJdGVtc1ZpZXcoKSB7XHJcbiAgICBpZiAodGhpcy5fYWN0aXZlU3ViSXRlbXNWaWV3KSB7XHJcbiAgICAgIHRoaXMuX2FjdGl2ZVN1Ykl0ZW1zVmlldy5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXNWaWV3ID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuX2FjdGl2ZVN1Ykl0ZW1zID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHNldEhvdmVyZWRTdGF0ZShlbGVtZW50OiBzdHJpbmcsIGhvdmVyZWQ6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5faG92ZXJlZEVsZW1lbnRzLmluZGV4T2YoZWxlbWVudCk7XHJcbiAgICBjb25zdCBzdG9yZWRDb3VudEhvdmVyZCA9IHRoaXMuX2hvdmVyZWRFbGVtZW50cy5sZW5ndGg7XHJcblxyXG4gICAgaWYgKGluZGV4ID49IDAgJiYgIWhvdmVyZWQpIHtcclxuICAgICAgdGhpcy5faG92ZXJlZEVsZW1lbnRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGluZGV4IDwgMCAmJiBob3ZlcmVkKSB7XHJcbiAgICAgIHRoaXMuX2hvdmVyZWRFbGVtZW50cy5wdXNoKGVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdG9yZWRDb3VudEhvdmVyZCA+IDAgJiYgdGhpcy5faG92ZXJlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG5cclxuICAgICAgLy8gSWYgaG92ZXJlZCBlbGVtZW50cyBjb3VudCByZWFjaGVzIHplcm8sIGNoZWNrIGFnYWluIGEgYml0IGRlbGF5ZWQuIElmIG5vdGhpbmcgaG92ZXJlZCBhdCB0aGF0IHRpbWUsIGNsb3NlIHN1Ym1lbnVcclxuICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9ob3ZlcmVkRWxlbWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlQWN0aXZlU3ViSXRlbXNWaWV3KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAxMDAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2VsZWN0b3IoKTpzdHJpbmd7XHJcbiAgICByZXR1cm4gdGhpcy5pc0NvbGxhcHNlZCA/ICcjY2VudGVyLW1lbnUtY29udHJvbGxlcic6Jy5jZW50ZXItbWVudS1mcCc7XHJcbiAgfVxyXG5cclxuICBkcmFnRWxlbWVudChldmVudDogW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xyXG4gICAgY29uc3QgZGVsdGFYMSA9IGV2ZW50WzBdO1xyXG4gICAgY29uc3QgZGVsdGFZMSA9IGV2ZW50WzFdOyAgICAgICAgXHJcbiAgICB0aGlzLmxheW91dE1hbmFnZXJTZXJ2aWNlLmNoZWNrUG9zaXRpb24oJ2NlbnRlci1tZW51LWZwLWlkJyx0aGlzLmdldFNlbGVjdG9yKCksdW5kZWZpbmVkLGRlbHRhWDEsZGVsdGFZMSkgICAgXHJcbiAgfVxyXG5cclxuICBvbkRyYWdFbmQoKXtcclxuICAgIHRoaXMubGF5b3V0TWFuYWdlclNlcnZpY2UuaGFuZGxlRHJhZ0VuZCgnY2VudGVyLW1lbnUtZnAtaWQnKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gcHVibGljIG1ldGhvZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBwcml2YXRlIGZpZWxkc1xyXG4gIHByaXZhdGUgX2lzQ29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfaXRlbVN0YXRlczogQXJyYXk8VG9vbEh1Ykl0ZW1TdGF0ZXM+ID0gQXJyYXk8VG9vbEh1Ykl0ZW1TdGF0ZXM+KCk7XHJcbiAgcHJpdmF0ZSBfaXRlbXM6IEFycmF5PFRvb2xIdWJJdGVtPiA9IEFycmF5PFRvb2xIdWJJdGVtPigpO1xyXG4gIHByaXZhdGUgX2FjdGl2ZVN1Ykl0ZW1zVmlldzogVG9vbEh1Ykl0ZW0gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9hY3RpdmVTdWJJdGVtczogQXJyYXk8VG9vbEh1YlN1Ykl0ZW0+IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfdmlzdWFsU2V0dGluZ3M6IFRvb2xIdWJWaXN1YWxTZXR0aW5ncztcclxuICBwcml2YXRlIF91bml0czogVG9vbEh1Ykl0ZW1Vbml0cztcclxuICBwcml2YXRlIF9zdWJNZW51VW5pdHM6IFRvb2xIdWJJdGVtVW5pdHM7XHJcbiAgcHJpdmF0ZSBfYW5udWxhclNlY3Rvcjogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2FubnVsYXJTZWN0b3JCb3JkZXI6IHN0cmluZztcclxuICBwcml2YXRlIF9kZWFkWm9uZUFubnVsYXJTZWN0b3I6IHN0cmluZztcclxuICBwcml2YXRlIF9ob3ZlcmVkRWxlbWVudHM6IEFycmF5PHN0cmluZz4gPSBBcnJheTxzdHJpbmc+KCk7XHJcbiAgLy8gI2VuZHJlZ2lvbiBwcml2YXRlIGZpZWxkc1xyXG5cclxuICAvLyAjcmVnaW9uIHByaXZhdGUgbWV0aG9kc1xyXG4gIHByaXZhdGUgY2FsY3VsYXRlQ3VycmVudE1lbnVJdGVtVW5pdHMoKTogVG9vbEh1Ykl0ZW1Vbml0cyB7XHJcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmRyYXdNZW51SXRlbVN2Zyh0aGlzLl92aXN1YWxTZXR0aW5ncy5zdmdSYWRpdXMsIHRoaXMuX3Zpc3VhbFNldHRpbmdzLnN2Z1JhZGl1c0lubmVyLCB0aGlzLl9pdGVtcy5sZW5ndGgsIHRoaXMuaXNFbWJlZGRlZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGN1bGF0ZUN1cnJlbnRTdWJNZW51SXRlbVVuaXRzKCk6IFRvb2xIdWJJdGVtVW5pdHMge1xyXG4gICAgcmV0dXJuIFNWR0dlbmVyYXRvci5kcmF3TWVudUl0ZW1TdmcodGhpcy5fdmlzdWFsU2V0dGluZ3Muc3ZnUmFkaXVzLCB0aGlzLl92aXN1YWxTZXR0aW5ncy5zdmdSYWRpdXNJbm5lciwgMjAsIHRoaXMuaXNFbWJlZGRlZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVBhcmVudEFwcFJlY3RTaXplQ2hhbmdlKHBhcmVudFJlY3Q6RE9NUmVjdCB8IHVuZGVmaW5lZCk6dm9pZHtcclxuICAgIHRoaXMubGF5b3V0TWFuYWdlclNlcnZpY2UuY2hlY2tQb3NpdGlvbih0aGlzLmNvbXBvbmVudElkLHRoaXMuZ2V0U2VsZWN0b3IoKSxwYXJlbnRSZWN0LDAsMCx0cnVlKTsgICAgXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9vbmVPck1vcmVJdGVtc0FjdGl2ZSgpe1xyXG4gICAgZm9yKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtcyl7XHJcbiAgICAgIGlmKGl0ZW0uYWN0aXZlID09PSB0cnVlKVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZUFjdGl2YXRpb25TdGF0ZSgpe1xyXG4gICAgaWYodGhpcy5fb25lT3JNb3JlSXRlbXNBY3RpdmUoKSl7XHJcbiAgICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gI3JlZ2lvbiBwcml2YXRlIG1ldGhvZHNcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2VudGVyLW1lbnVcIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImNlbnRlci1tZW51LWZwXCJcclxuICAgIGlkPVwiY2VudGVyLW1lbnUtZnAtaWRcIlxyXG4gICAgW25nQ2xhc3NdPVwiYWN0aXZlU3ViSXRlbXMgPyAnc3VibWVudS1hY3RpdmUnIDogJydcIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgbGliRHJhZ2dhYmxlXHJcbiAgICAgIGlkPVwiY2VudGVyLW1lbnUtY29udHJvbGxlclwiXHJcbiAgICAgIGNsYXNzPVwiY2VudGVyLW1lbnUtY29udHJvbGxlciBkcmFnZ2VyXCJcclxuICAgICAgZGF0YS10ZXN0PVwidG9vbGh1Yl9jb250cm9sbGVyXCJcclxuICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgIG9wZW5lZDogIWlzQ29sbGFwc2VkLFxyXG4gICAgICAgIGFjdGl2ZTogaXNBY3RpdmVcclxuICAgICAgfVwiXHJcbiAgICAgIFt0aXRsZV09XCJcclxuICAgICAgICBpc0NvbGxhcHNlZFxyXG4gICAgICAgICAgPyAoJ19TaG93X3Rvb2xodWJfdG9vbHRpcCcgfCB0cmFuc2xhdGUpXHJcbiAgICAgICAgICA6ICgnX01pbmltaXplX3Rvb2xodWJfdG9vbHRpcCcgfCB0cmFuc2xhdGUpICAgICAgICAgIFxyXG4gICAgICBcIlxyXG4gICAgICAoY2xpY2tlZCk9XCJ0b2dnbGVNZW51KClcIlxyXG4gICAgICAoZHJhZ2dpbmcpPVwiZHJhZ0VsZW1lbnQoJGV2ZW50KVwiXHJcbiAgICAgIChkcmFnRW5kKSA9XCJvbkRyYWdFbmQoKVwiXHJcbiAgICA+PC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY2VudGVyLW1lbnUtY2lyY2xlLWJvcmRlci1pbm5lclwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImlzQ29sbGFwc2VkID8gJ2hpZGRlbicgOiAnJ1wiXHJcbiAgICA+PC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY2VudGVyLW1lbnUtY2lyY2xlLWJvcmRlci1vdXRlclwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImlzQ29sbGFwc2VkID8gJ2hpZGRlbicgOiAnJ1wiXHJcbiAgICAgIChtb3VzZWxlYXZlKT1cInNldEhvdmVyZWRTdGF0ZSgnbWVudUNpcmNsZUJvcmRlck91dGVyJywgZmFsc2UpXCJcclxuICAgICAgKG1vdXNlZW50ZXIpPVwic2V0SG92ZXJlZFN0YXRlKCdtZW51Q2lyY2xlQm9yZGVyT3V0ZXInLCB0cnVlKVwiXHJcbiAgICA+PC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGxpYkRyYWdnYWJsZVxyXG4gICAgICBjbGFzcz1cImNlbnRlci1tZW51LWNpcmNsZVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImlzQ29sbGFwc2VkID8gJ2hpZGRlbicgOiAnJ1wiXHJcbiAgICAgIChtb3VzZWxlYXZlKT1cInNldEhvdmVyZWRTdGF0ZSgnbWVudUNpcmNsZScsIGZhbHNlKVwiXHJcbiAgICAgIChtb3VzZWVudGVyKT1cInNldEhvdmVyZWRTdGF0ZSgnbWVudUNpcmNsZScsIHRydWUpXCJcclxuICAgICAgKGRyYWdnaW5nKT1cImRyYWdFbGVtZW50KCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8bGliLXRvb2wtaHViLWl0ZW1cclxuICAgICAgICBsaWJEcmFnZ2FibGVcclxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXHJcbiAgICAgICAgW2F0dHIuZGF0YS10ZXN0XT1cIid0b29saHViX2l0ZW1fJyArIGl0ZW0uYnV0dG9uSWRcIlxyXG4gICAgICAgIFt0aXRsZV09XCJpdGVtLnRvb2x0aXAgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtpdGVtXT1cIml0ZW1cIlxyXG4gICAgICAgIFthY3RpdmVdPVwiISFpdGVtLmFjdGl2ZVwiXHJcbiAgICAgICAgW2lzRW5hYmxlZF09XCIhaXRlbS5kaXNhYmxlZFwiXHJcbiAgICAgICAgKGNsaWNrZWQpPVwiY2xpY2tUb29sSHViSXRlbShpdGVtLmJ1dHRvbklkKVwiXHJcbiAgICAgID48L2xpYi10b29sLWh1Yi1pdGVtPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2VudGVybWVudS1idXR0b24tc3ZnXCJcclxuICAgICAgICBbYXR0ci52aWV3Qm94XT1cImdldFNWR1ZpZXdCb3goKVwiXHJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNsaXBQYXRoIGlkPVwic3ZnQ2VudGVyTWVudVwiIGNsaXBQYXRoVW5pdHM9XCJvYmplY3RCb3VuZGluZ0JveFwiPlxyXG4gICAgICAgICAgPHBhdGggW2F0dHIuZF09XCJnZXRTVkdDZW50ZXJNZW51UGF0aCgpXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgIDxjbGlwUGF0aCBpZD1cInN2Z0NlbnRlck1lbnVJdGVtXCIgY2xpcFBhdGhVbml0cz1cIm9iamVjdEJvdW5kaW5nQm94XCI+XHJcbiAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImdldFNWR0NlbnRlck1lbnVJdGVtUGF0aCgpXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgIDxjbGlwUGF0aCBpZD1cInN2Z0NlbnRlclN1Yk1lbnVJdGVtXCIgY2xpcFBhdGhVbml0cz1cIm9iamVjdEJvdW5kaW5nQm94XCI+XHJcbiAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImdldFNWR0NlbnRlclN1Yk1lbnVJdGVtUGF0aCgpXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgIDxjbGlwUGF0aCBpZD1cInN2Z0NlbnRlck1lbnVTdWJNZW51XCIgY2xpcFBhdGhVbml0cz1cIm9iamVjdEJvdW5kaW5nQm94XCI+XHJcbiAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImFubnVsYXJTZWN0b3JcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICA8Y2xpcFBhdGhcclxuICAgICAgICAgIGlkPVwic3ZnQ2VudGVyTWVudVN1Yk1lbnVCb3JkZXJcIlxyXG4gICAgICAgICAgY2xpcFBhdGhVbml0cz1cIm9iamVjdEJvdW5kaW5nQm94XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImFubnVsYXJTZWN0b3JCb3JkZXJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICA8Y2xpcFBhdGhcclxuICAgICAgICAgIGlkPVwic3ZnQ2VudGVyTWVudVN1Yk1lbnVEZWFkWm9uZVwiXHJcbiAgICAgICAgICBjbGlwUGF0aFVuaXRzPVwib2JqZWN0Qm91bmRpbmdCb3hcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxwYXRoIFthdHRyLmRdPVwiZGVhZFpvbmVBbm51bGFyU2VjdG9yXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgQGlmIChhY3RpdmVTdWJJdGVtcykge1xyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImNlbnRlci1tZW51LXN1Yi1tZW51LWJvcmRlclwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImlzQ29sbGFwc2VkID8gJ2hpZGRlbicgOiAnJ1wiXHJcbiAgICAgIChtb3VzZWxlYXZlKT1cInNldEhvdmVyZWRTdGF0ZSgnc3VibWVudUJvcmRlcicsIGZhbHNlKVwiXHJcbiAgICAgIChtb3VzZWVudGVyKT1cInNldEhvdmVyZWRTdGF0ZSgnc3VibWVudUJvcmRlcicsIHRydWUpXCJcclxuICAgID48L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJjZW50ZXItbWVudS1zdWItbWVudVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImlzQ29sbGFwc2VkID8gJ2hpZGRlbicgOiAnJ1wiXHJcbiAgICAgIChtb3VzZWxlYXZlKT1cInNldEhvdmVyZWRTdGF0ZSgnc3VibWVudScsIGZhbHNlKVwiXHJcbiAgICAgIChtb3VzZWVudGVyKT1cInNldEhvdmVyZWRTdGF0ZSgnc3VibWVudScsIHRydWUpXCJcclxuICAgID5cclxuICAgICAgPGxpYi10b29sLWh1Yi1zdWItaXRlbVxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFjdGl2ZVN1Ykl0ZW1zXCJcclxuICAgICAgICBbYXR0ci5kYXRhLXRlc3RdPVwiJ3Rvb2xodWJfc3ViaXRlbV8nICsgaXRlbS5idXR0b25JZFwiXHJcbiAgICAgICAgW3RpdGxlXT1cIml0ZW0udG9vbHRpcCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNsaWNrVG9vbEh1YlN1Ykl0ZW0oaXRlbS5idXR0b25JZClcIlxyXG4gICAgICA+PC9saWItdG9vbC1odWItc3ViLWl0ZW0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJjZW50ZXItbWVudS1zdWItbWVudS1kZWFkLXpvbmVcIlxyXG4gICAgICBbbmdDbGFzc109XCJpc0NvbGxhcHNlZCA/ICdoaWRkZW4nIDogJydcIlxyXG4gICAgICAobW91c2VsZWF2ZSk9XCJzZXRIb3ZlcmVkU3RhdGUoJ2RlYWRab25lJywgZmFsc2UpXCJcclxuICAgICAgKG1vdXNlZW50ZXIpPVwic2V0SG92ZXJlZFN0YXRlKCdkZWFkWm9uZScsIHRydWUpXCJcclxuICAgID48L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
451
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy10b29sLWh1Yi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9iaW1wbHVzLXRvb2wtaHViL2JpbXBsdXMtdG9vbC1odWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy10b29sLWh1Yi9iaW1wbHVzLXRvb2wtaHViLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUNoSixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQTtBQUNsSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFBOzs7Ozs7QUFJekUsZ0RBQWdEO0FBRWhELFNBQVMsMkJBQTJCO0lBQ2xDLE1BQU0sUUFBUSxHQUEwQjtRQUN0QyxpQkFBaUIsRUFBRSxFQUFFO1FBQ3JCLGVBQWUsRUFBRSxHQUFHO1FBQ3BCLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFNBQVMsRUFBRSxLQUFL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VSxDQUFDLGdCQUFnQixDQUFDLGlCQUdkLGlCQUFpQixDQUFDLFNBQVM7cUxBd0I3QixVQUFVO3NCQUF0QixLQUFLO2dCQXlCTyxLQUFLO3NCQUFqQixLQUFLO2dCQXdCRixXQUFXO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBeUJFLFVBQVU7c0JBQWpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsU0FBUztzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUM1QixXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIGJvb2xlYW5BdHRyaWJ1dGUsIEVsZW1lbnRSZWYsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCAgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudCB9IGZyb20gXCIuLy4uL2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQuY29tcG9uZW50XCJcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSwgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTVkdHZW5lcmF0b3IgfSBmcm9tICcuL3N2Z0dlbmVyYXRvcic7XHJcbmltcG9ydCB7IFRvb2xIdWJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi90b29sLWh1Yi1pdGVtL3Rvb2wtaHViLWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbEh1YlN1Ykl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3Rvb2wtaHViLXN1Yi1pdGVtL3Rvb2wtaHViLXN1Yi1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyYWdnYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZHJhZ2dhYmxlLmRpcmVjdGl2ZSdcclxuaW1wb3J0IHsgVG9vbEh1Ykl0ZW0sIFRvb2xIdWJTdWJJdGVtLCBUb29sSHViVmlzdWFsU2V0dGluZ3MsIFRvb2xIdWJJdGVtVW5pdHMsIFRvb2xIdWJJdGVtU3RhdGVzIH0gZnJvbSAnLi9iaW1wbHVzLXRvb2wtaHViLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IExheW91dE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LW1hbmFnZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlc2l6ZU9ic2VydmVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc2l6ZS1vYnNlcnZlci5zZXJ2aWNlJztcclxuLy9pbXBvcnQgeyBmaXJlRXZlbnQgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVEZWZhdWx0VmlzdWFsU2V0dGluZ3MoKTogVG9vbEh1YlZpc3VhbFNldHRpbmdzIHtcclxuICBjb25zdCBzZXR0aW5nczogVG9vbEh1YlZpc3VhbFNldHRpbmdzID0ge1xyXG4gICAgc3ViTWVudVN0YXJ0QW5nbGU6IDUwLFxyXG4gICAgc3ViTWVudUVuZEFuZ2xlOiAxMzAsXHJcbiAgICBzdmdSYWRpdXNJbm5lcjogNS43NSxcclxuICAgIHN2Z1JhZGl1czogMTAuMjUsXHJcbiAgICBzdWJNZW51Q2VudGVyOiBbMTcuMjUsIDE3LjVdLFxyXG4gICAgc3ViTWVudVJhZGl1czogMTUuNSxcclxuICAgIHN1Yk1lbnVXaWR0aDogNTIsXHJcbiAgICBkZWFkWm9uZUNlbnRlcjogWzE3LCAxOF0sXHJcbiAgICBkZWFkWm9uZVdpZHRoOiAxNDAsXHJcbiAgICBkZWFkWm9uZVJhZGl1czogMjIsXHJcbiAgICBkZWFkWm9uZVN0YXJ0QW5nbGU6IDQ1LFxyXG4gICAgZGVhZFpvbmVFbmRBbmdsZTogMTM1XHJcbiAgfVxyXG4gIHJldHVybiBzZXR0aW5ncztcclxufVxyXG5cclxuLy8gVXNlIHdoZW4gaW1wbGVtZW50aW5nIGVtYmVkZGVkIG1vZGVcclxuLy8gZnVuY3Rpb24gY3JlYXRlRW1iZWRkZWRTZXR0aW5ncygpIDogVG9vbEh1YlZpc3VhbFNldHRpbmdze1xyXG4vLyAgIGNvbnN0IHNldHRpbmdzIDogVG9vbEh1YlZpc3VhbFNldHRpbmdzID0ge1xyXG4vLyAgICAgc3ViTWVudVN0YXJ0QW5nbGUgOiA1MCxcclxuLy8gICAgIHN1Yk1lbnVFbmRBbmdsZSA6IDEzMCxcclxuLy8gICAgIHN2Z1JhZGl1c0lubmVyIDogNCxcclxuLy8gICAgIHN2Z1JhZGl1cyA6IDcuMjUsXHJcbi8vICAgICBzdWJNZW51Q2VudGVyIDogWzE3LjI1LCAxNy4zXSxcclxuLy8gICAgIHN1Yk1lbnVSYWRpdXMgOiAxNi4yLFxyXG4vLyAgICAgc3ViTWVudVdpZHRoIDogNjIsXHJcbi8vICAgICBkZWFkWm9uZUNlbnRlciA6IFsxNi41LCAxNl0sXHJcbi8vICAgICBkZWFkWm9uZVdpZHRoIDogMTIwLFxyXG4vLyAgICAgZGVhZFpvbmVSYWRpdXMgOiAxOCxcclxuLy8gICAgIGRlYWRab25lU3RhcnRBbmdsZSA6IDM1LFxyXG4vLyAgICAgZGVhZFpvbmVFbmRBbmdsZSA6IDE0NVxyXG4vLyAgIH1cclxuLy8gICByZXR1cm4gc2V0dGluZ3M7XHJcbi8vIH1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRJdGVtcygpOiBBcnJheTxUb29sSHViSXRlbT4ge1xyXG4gIGNvbnN0IGl0ZW1zOiBBcnJheTxUb29sSHViSXRlbT4gPSBbXHJcbiAgICAvLy0tLSBjcmVhdGUgdGFzayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgYnV0dG9uSWQ6ICdjbUJ1dENyZWF0ZVRhc2snLFxyXG4gICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLWNyZWF0ZS10YXNrJyxcclxuICAgICAgdGV4dDogJ19DcmVhdGVfaXNzdWVfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXA6ICdfQ3JlYXRlX2lzc3VlX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfQ3JlYXRlX2lzc3VlX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgfSxcclxuXHJcbiAgICAvLy0tLSBxdWFudGl0eSB0YWtlb2ZmIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0UXVhbnRpdHlUYWtlT2ZmJyxcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1xdWFudGl0eS10YWtlLW9mZicsXHJcbiAgICAgIHRleHQ6ICdfUXVhbnRpdHlfdGFrZV9PZmZfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXA6ICdfUXVhbnRpdHlfdGFrZV9PZmZfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19RdWFudGl0eV90YWtlX09mZl9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcblxyXG4gICAgLy8tLS0gbWFya3VwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0TWFya3VwJyxcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1tYXJrdXAnLFxyXG4gICAgICB0ZXh0OiAnX01hcmt1cHNfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXA6ICdfTWFya3Vwc19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcERpc2FibGVkOiAnX01hcmt1cHNfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICB9LFxyXG5cclxuICAgIC8vLS0tIHNlY3Rpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB7XHJcbiAgICAgIGJ1dHRvbklkOiAnY21CdXRTZWN0aW9uJyxcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1zZWN0aW9uJyxcclxuICAgICAgdGV4dDogJ19TZWN0aW9uaW5nX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX1NlY3Rpb25pbmdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19TZWN0aW9uaW5nX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgfSxcclxuXHJcbiAgICAvLy0tLSBoaWRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0T2JqVHJhbnNwTWVudScsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tb2JqLXRyYW5zcCcsXHJcbiAgICAgIHRleHQ6ICdfSGlkZV9vYmplY3RzX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX0hpZGVfb2JqZWN0c19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcERpc2FibGVkOiAnX0hpZGVfb2JqZWN0c19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcblxyXG4gICAgLy8tLS0gaXNvbGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgYnV0dG9uSWQ6ICdjbUJ1dE9ialNlbCcsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tb2JqLXNlbGVjdCcsXHJcbiAgICAgIHRleHQ6ICdfSXNvbGF0ZV9vYmplY3RzX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX0lzb2xhdGVfb2JqZWN0c19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcERpc2FibGVkOiAnX0lzb2xhdGVfb2JqZWN0c19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcblxyXG4gICAgLy8tLS0gbmF2aWdhdGlvbiBtYXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB7XHJcbiAgICAgIGJ1dHRvbklkOiAnY21CdXROYXZpZ2F0aW9uTWFwJyxcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1uYXZpZ2F0aW9uLW1hcCcsXHJcbiAgICAgIHRleHQ6ICdfTmF2aWdhdGlvbl9uYXBfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXA6ICdfTmF2aWdhdGlvbl9uYXBfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19OYXZpZ2F0aW9uX25hcF9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcblxyXG4gICAgLy8tLS0gZnVsbHNjcmVlbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB7XHJcbiAgICAgIGJ1dHRvbklkOiAnY21CdXRGdWxsU2NyZWVuJyxcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1mdWxsc2NyZWVuJyxcclxuICAgICAgdGV4dDogJ19GdWxsc2NyZWVuX25vZGVfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXA6ICdfRnVsbHNjcmVlbl9ub2RlX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfRnVsbHNjcmVlbl9ub2RlX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgfSxcclxuICAgIC8vLS0tIHByb2plY3QgbmF2aWdhdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0UHJvamVjdE5hdmlnYXRvcicsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tcHJvamVjdC1uYXZpZ2F0b3InLFxyXG4gICAgICB0ZXh0OiAnX1Byb2plY3RfbmF2aWdhdG9yX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX1Byb2plY3RfbmF2aWdhdG9yX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfUHJvamVjdF9uYXZpZ2F0b3JfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICB9LFxyXG5cclxuICAgIC8vLS0tIHJlc2V0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLW9iai1yZXNldCcsXHJcbiAgICAgIGJ1dHRvbklkOiAnY21CdXRSZXNldE9iaicsXHJcbiAgICAgIHRleHQ6ICdfUmVzZXRfdmlld3BvcnRfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXA6ICdfUmVzZXRfdmlld3BvcnRfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19SZXNldF92aWV3cG9ydF9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcbiAgICAvLy0tLSB2aWV3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0UmVzZXRWcCcsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tcmVzZXQtdnAnLFxyXG4gICAgICB0ZXh0OiAnX1NlbGVjdF92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX1NlbGVjdF92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfU2VsZWN0X3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHN1Yk1lbnVJZDogJ2NtYi12aWV3LXN1Ym1lbnUnLFxyXG4gICAgICBzdWJJdGVtczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGJ1dHRvbklkOiAnY21CdXRGcm9udFZpZXcnLFxyXG4gICAgICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1mcm9udC12aWV3JyxcclxuICAgICAgICAgIHRleHQ6ICdfRnJvbnRfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIHRvb2x0aXA6ICdfRnJvbnRfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19Gcm9udF92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICAgICAgYWN0aW9uQ2xpY2s6ICdjZW50ZXJNZW51RnJvbnRWaWV3Q2xpY2snLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIC8vLS0tIFRvcCBWaWV3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGJ1dHRvbklkOiAnY21CdXRUb3BWaWV3JyxcclxuICAgICAgICAgIGljb25DbGFzczogJ3VpLWljb24tdG9wLXZpZXcnLFxyXG4gICAgICAgICAgdGV4dDogJ19Ub3Bfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIHRvb2x0aXA6ICdfVG9wX3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfVG9wX3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICBhY3Rpb25DbGljazogJ2NlbnRlck1lbnVUb3BWaWV3Q2xpY2snLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8tLS0gU2lkZSBWaWV3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGJ1dHRvbklkOiAnY21CdXRTaWRlVmlldycsXHJcbiAgICAgICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLXNpZGUtdmlldycsXHJcbiAgICAgICAgICB0ZXh0OiAnX1NpZGVfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIHRvb2x0aXA6ICdfU2lkZV92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICAgICAgdG9vbHRpcERpc2FibGVkOiAnX1NpZGVfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIGFjdGlvbkNsaWNrOiAnY2VudGVyTWVudVNpZGVWaWV3Q2xpY2snLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8tLS0gUGVyc3BlY3RpdmUgVmlldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgICAgICB7XHJcbiAgICAgICAgICBidXR0b25JZDogJ2NtQnV0UGVyc3BlY3RpdmVWaWV3JyxcclxuICAgICAgICAgIGljb25DbGFzczogJ3VpLWljb24tcGVyc3BlY3RpdmUtdmlldycsXHJcbiAgICAgICAgICB0ZXh0OiAnX1BlcnNwZWN0aXZlX3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwOiAnX1BlcnNwZWN0aXZlX3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfUGVyc3BlY3RpdmVfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIGFjdGlvbkNsaWNrOiAnY2VudGVyTWVudVBlcnNwZWN0aXZlVmlld0NsaWNrJyxcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH1cclxuICBdXHJcblxyXG4gIC8vIFNldCBhbGwgdG9vbCBodWIgaXRlbXMgc3RhdGVzIHRvIGluYWN0aXZlIGFuZCBkaXNhYmxlZC4gSG9zdCBBcHAgbXVzdCBkZWZpbmUgc3RhdGVzXHJcbiAgaXRlbXMubWFwKGl0ZW0gPT4geyBpdGVtLmFjdGl2ZSA9IGZhbHNlOyBpdGVtLmRpc2FibGVkID0gdHJ1ZSB9KVxyXG5cclxuICByZXR1cm4gaXRlbXM7XHJcbn1cclxuXHJcbmNvbnN0IERFRkFVTFRfUE9TSVRJT05fTEVGVCA9IDM1MDtcclxuY29uc3QgREVGQVVMVF9QT1NJVElPTl9UT1AgID0gNjcwO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1iaW1wbHVzLXRvb2wtaHViJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRvb2xIdWJJdGVtQ29tcG9uZW50LFxyXG4gICAgVG9vbEh1YlN1Ykl0ZW1Db21wb25lbnQsXHJcbiAgICBEcmFnZ2FibGVEaXJlY3RpdmVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1RyYW5zbGF0ZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iaW1wbHVzLXRvb2wtaHViLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYmltcGx1cy10b29sLWh1Yi5jb21wb25lbnQubGVzcycsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uU2hhZG93RG9tXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCaW1wbHVzVG9vbEh1YkNvbXBvbmVudCBleHRlbmRzIEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgY29uc3RydWN0b3IodHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGxheW91dE1hbmFnZXJTZXJ2aWNlOiBMYXlvdXRNYW5hZ2VyU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyU2VydmljZTpSZXNpemVPYnNlcnZlclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7XHJcbiAgICBzdXBlcih0cmFuc2xhdGVTZXJ2aWNlKTtcclxuICAgICAgICAgICBcclxuICAgIHRoaXMuaXRlbXMgPSBjcmVhdGVEZWZhdWx0SXRlbXMoKTtcclxuICAgIHRoaXMuX3Zpc3VhbFNldHRpbmdzID0gY3JlYXRlRGVmYXVsdFZpc3VhbFNldHRpbmdzKCk7XHJcbiAgICB0aGlzLl91bml0cyA9IHRoaXMuY2FsY3VsYXRlQ3VycmVudE1lbnVJdGVtVW5pdHMoKTtcclxuICAgIHRoaXMuX3N1Yk1lbnVVbml0cyA9IHRoaXMuY2FsY3VsYXRlQ3VycmVudFN1Yk1lbnVJdGVtVW5pdHMoKTtcclxuICAgIHRoaXMuX2FubnVsYXJTZWN0b3IgPSBTVkdHZW5lcmF0b3IuZ2VuZXJhdGVBbm51bGFyU2VjdG9yKHRoaXMuX3Zpc3VhbFNldHRpbmdzKTtcclxuICAgIHRoaXMuX2FubnVsYXJTZWN0b3JCb3JkZXIgPSBTVkdHZW5lcmF0b3IuZ2VuZXJhdGVBbm51bGFyU2VjdG9yQm9yZGVyKHRoaXMuX3Zpc3VhbFNldHRpbmdzKTtcclxuICAgIHRoaXMuX2RlYWRab25lQW5udWxhclNlY3RvciA9IFNWR0dlbmVyYXRvci5nZW5lcmF0ZURlYWRab25lQW5udWxhclNlY3Rvcih0aGlzLl92aXN1YWxTZXR0aW5ncyk7XHJcblxyXG4gIH1cclxuXHJcbiAgLy8gI3JlZ2lvbiBwdWJsaWMgZmllbGRzXHJcbiAgXHJcbiAgZ2V0IGl0ZW1TdGF0ZXMoKTogQXJyYXk8VG9vbEh1Ykl0ZW1TdGF0ZXM+IHtcclxuICAgIHJldHVybiB0aGlzLl9pdGVtU3RhdGVzO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgaXRlbVN0YXRlcyh2YWx1ZTogQXJyYXk8VG9vbEh1Ykl0ZW1TdGF0ZXM+KSB7XHJcbiAgICB0aGlzLl9pdGVtU3RhdGVzID0gdmFsdWU7XHJcbiAgICB0aGlzLnNldEl0ZW1TdGF0ZXModGhpcy5faXRlbVN0YXRlcyk7XHJcbiAgfVxyXG5cclxuICBzZXRJdGVtU3RhdGVzKGl0ZW1TdGF0ZXM6IEFycmF5PFRvb2xIdWJJdGVtU3RhdGVzPikge1xyXG4gICAgZm9yIChjb25zdCBpdGVtU3RhdGUgb2YgaXRlbVN0YXRlcykge1xyXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5faXRlbXMuZmluZChpdGVtID0+IGl0ZW0uYnV0dG9uSWQgPT09IGl0ZW1TdGF0ZS5idXR0b25JZCk7XHJcbiAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgaWYgKGl0ZW1TdGF0ZS5hY3RpdmUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBpdGVtLmFjdGl2ZSA9IGl0ZW1TdGF0ZS5hY3RpdmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpdGVtU3RhdGUuZGlzYWJsZWQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgaXRlbS5kaXNhYmxlZCA9IGl0ZW1TdGF0ZS5kaXNhYmxlZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl91cGRhdGVBY3RpdmF0aW9uU3RhdGUoKTtcclxuICB9XHJcblxyXG5cclxuICBnZXQgaXRlbXMoKTogQXJyYXk8VG9vbEh1Ykl0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLl9pdGVtcztcclxuICB9XHJcbiAgQElucHV0KCkgc2V0IGl0ZW1zKHZhbHVlOiBBcnJheTxUb29sSHViSXRlbT4pIHtcclxuICAgIHRoaXMuX2l0ZW1zID0gdmFsdWU7XHJcblxyXG4gICAgY29uc3QgYnV0dG9uc0xlbmd0aCA9ICh0aGlzLl9pdGVtcz8ubGVuZ3RoKSA+IDAgPyB0aGlzLl9pdGVtcy5sZW5ndGggOiAxO1xyXG4gICAgY29uc3Qgcm9vdFN0eWxlID0gZG9jdW1lbnQ/LmRvY3VtZW50RWxlbWVudD8uc3R5bGU7XHJcbiAgICBpZiAocm9vdFN0eWxlKSB7XHJcbiAgICAgIGNvbnN0IG1lbnVJdGVtcyA9IHJvb3RTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFwiLS1tZW51LWl0ZW1zXCIpO1xyXG4gICAgICBpZiAocGFyc2VJbnQobWVudUl0ZW1zKSAhPT0gYnV0dG9uc0xlbmd0aCkge1xyXG4gICAgICAgIHJvb3RTdHlsZS5zZXRQcm9wZXJ0eShcIi0tbWVudS1pdGVtc1wiLCBidXR0b25zTGVuZ3RoLnRvU3RyaW5nKCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVHJhbnNmZXIgZGlzYWJsZWQgc3RhdGVzLCB3aGljaCBjYW4gZGVmaW5lZCBieSBob3N0IGFwcFxyXG4gICAgdGhpcy5zZXRJdGVtU3RhdGVzKHRoaXMuX2l0ZW1TdGF0ZXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjdGl2ZVN1Ykl0ZW1zKCk6IEFycmF5PFRvb2xIdWJTdWJJdGVtPiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVN1Ykl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzQ29sbGFwc2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzQ29sbGFwc2VkO1xyXG4gIH1cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcclxuICBzZXQgaXNDb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2lzQ29sbGFwc2VkID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgdW5pdHMoKTogVG9vbEh1Ykl0ZW1Vbml0cyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdW5pdHM7XHJcbiAgfVxyXG5cclxuICBnZXQgc3ViTWVudVVuaXRzKCk6IFRvb2xIdWJJdGVtVW5pdHMge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N1Yk1lbnVVbml0cztcclxuICB9XHJcblxyXG4gIGdldCBhbm51bGFyU2VjdG9yKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYW5udWxhclNlY3RvcjtcclxuICB9XHJcblxyXG4gIGdldCBhbm51bGFyU2VjdG9yQm9yZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYW5udWxhclNlY3RvckJvcmRlcjtcclxuICB9XHJcblxyXG4gIGdldCBkZWFkWm9uZUFubnVsYXJTZWN0b3IoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWFkWm9uZUFubnVsYXJTZWN0b3I7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNFbWJlZGRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNBY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBPdXRwdXQoKSBpdGVtQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBzdWJJdGVtQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIFxyXG4gIC8vIERlZmluZSBldmVudCBoYW5kbGVyIGZvciByZXVzaW5nIGRyYWdnYWJsZSBhbHNvIGZyb20gcmVzaXplIHBhcmVudCBcclxuICAvL0BPdXRwdXQoKSByZXNpemVkcmFnZ2luZyA9IG5ldyBFdmVudEVtaXR0ZXI8W251bWJlcixudW1iZXJdPigpO1xyXG5cclxuICBwcml2YXRlIGNvbXBvbmVudElkID0gJ2NlbnRlci1tZW51LWZwLWlkJztcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7ICAvLyBJbml0aWFsaXplIHRvIG51bGxcclxuXHJcbiAgbmdPbkluaXQoKTp2b2lkeyAgIFxyXG4gICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5yZWdpc3Rlck9iamVjdCh0aGlzLmVsZW1lbnQsdGhpcy5jb21wb25lbnRJZCwnI2NlbnRlci1tZW51LWZwLWlkJyx0cnVlLERFRkFVTFRfUE9TSVRJT05fTEVGVCxERUZBVUxUX1BPU0lUSU9OX1RPUCk7XHJcbiAgICB0aGlzLmxheW91dE1hbmFnZXJTZXJ2aWNlLnJlZ2lzdGVyZWRJdGVtcyQuc3Vic2NyaWJlKGl0ZW1zID0+IHtcclxuICAgICAgY29uc3QgbGF5b3V0TWFuYWdlckl0ZW0gPSBpdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gdGhpcy5jb21wb25lbnRJZCk7XHJcbiAgICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhIWxheW91dE1hbmFnZXJJdGVtPy5pc0NvbGxhcHNlZDtcclxuICAgIH0pO1xyXG4gICAgXHJcbiAgfVxyXG4gIFxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOnZvaWR7XHJcbiAgIC8vIGlmIHRoZSBjb21wb25lbnQgd2FudHMgdG8gYmUgcmVnaXN0ZXJlZCBpbiBsYXlvdXQgbWFuYWdlciBzeXN0ZW1cclxuICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBvYnNlcnZhYmxlXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMucmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLnBhcmVudEFwcFJlY3QkLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgIHRoaXMuaGFuZGxlUGFyZW50QXBwUmVjdFNpemVDaGFuZ2UodmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIC8vICNlbmRyZWdpb24gcHVibGljIGZpZWxkc1xyXG4gXHJcbiAgLy8gI3JlZ2lvbiBwdWJsaWMgbWV0aG9kc1xyXG4gIHB1YmxpYyBnZXRTVkdWaWV3Qm94KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmdldFNWR1ZpZXdCb3godGhpcy5fdW5pdHMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNWR0NlbnRlck1lbnVQYXRoKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmdldFNWR0NlbnRlck1lbnVQYXRoKHRoaXMuX3VuaXRzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTVkdDZW50ZXJNZW51SXRlbVBhdGgoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTVkdHZW5lcmF0b3IuZ2V0U1ZHQ2VudGVyTWVudUl0ZW1QYXRoKHRoaXMuX3VuaXRzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTVkdDZW50ZXJTdWJNZW51SXRlbVBhdGgoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTVkdHZW5lcmF0b3IuZ2V0U1ZHQ2VudGVyU3ViTWVudUl0ZW1QYXRoKHRoaXMuX3N1Yk1lbnVVbml0cyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlTWVudSgpIHtcclxuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcclxuICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5jaGVja1Bvc2l0aW9uKCdjZW50ZXItbWVudS1mcC1pZCcsdGhpcy5nZXRTZWxlY3RvcigpLHVuZGVmaW5lZCwwLDAsdHJ1ZSk7ICAgICAgXHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBmaW5kVG9vbEh1Ykl0ZW1CeUlkKGlkOiBzdHJpbmcpOiBUb29sSHViSXRlbSB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbXMuZmluZCh4ID0+IHguYnV0dG9uSWQgPT09IGlkKTtcclxuICB9XHJcblxyXG4gIGNsaWNrVG9vbEh1Ykl0ZW0oYWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZpbmRUb29sSHViSXRlbUJ5SWQoYWN0aW9uKTtcclxuICAgIGlmICghaXRlbSB8fCBpdGVtPy5kaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pdGVtQ2xpY2tlZC5lbWl0KGFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBjbGlja1Rvb2xIdWJTdWJJdGVtKGFjdGlvbjogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRoaXMuX2FjdGl2ZVN1Ykl0ZW1zKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpdGVtID0gdGhpcy5fYWN0aXZlU3ViSXRlbXMuZmluZCh4ID0+IHguYnV0dG9uSWQgPT09IGFjdGlvbik7XHJcbiAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3ViSXRlbUNsaWNrZWQuZW1pdChhY3Rpb24pO1xyXG4gICAgdGhpcy5jbG9zZUFjdGl2ZVN1Ykl0ZW1zVmlldygpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlVG9vbEh1Ykl0ZW1BY3RpdmUoYnV0dG9uSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZmluZFRvb2xIdWJJdGVtQnlJZChidXR0b25JZCk7XHJcbiAgICBpZiAoIWl0ZW0gfHwgaXRlbS5kaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaXRlbS5hY3RpdmUgPSAhaXRlbS5hY3RpdmU7XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlQWN0aXZhdGlvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVTdWJJdGVtc1ZpZXcoYnV0dG9uSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZmluZFRvb2xIdWJJdGVtQnlJZChidXR0b25JZCk7XHJcbiAgICBpZiAoIWl0ZW0gfHwgaXRlbS5kaXNhYmxlZCB8fCAhaXRlbS5zdWJJdGVtcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaXRlbS5hY3RpdmUgPSAhaXRlbS5hY3RpdmU7XHJcbiAgICBpZiAoaXRlbS5hY3RpdmUpIHtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXNWaWV3ID0gaXRlbTtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXMgPSBpdGVtLnN1Ykl0ZW1zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXNWaWV3ID0gbnVsbDtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXMgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VBY3RpdmVTdWJJdGVtc1ZpZXcoKSB7XHJcbiAgICBpZiAodGhpcy5fYWN0aXZlU3ViSXRlbXNWaWV3KSB7XHJcbiAgICAgIHRoaXMuX2FjdGl2ZVN1Ykl0ZW1zVmlldy5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXNWaWV3ID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuX2FjdGl2ZVN1Ykl0ZW1zID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHNldEhvdmVyZWRTdGF0ZShlbGVtZW50OiBzdHJpbmcsIGhvdmVyZWQ6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5faG92ZXJlZEVsZW1lbnRzLmluZGV4T2YoZWxlbWVudCk7XHJcbiAgICBjb25zdCBzdG9yZWRDb3VudEhvdmVyZCA9IHRoaXMuX2hvdmVyZWRFbGVtZW50cy5sZW5ndGg7XHJcblxyXG4gICAgaWYgKGluZGV4ID49IDAgJiYgIWhvdmVyZWQpIHtcclxuICAgICAgdGhpcy5faG92ZXJlZEVsZW1lbnRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGluZGV4IDwgMCAmJiBob3ZlcmVkKSB7XHJcbiAgICAgIHRoaXMuX2hvdmVyZWRFbGVtZW50cy5wdXNoKGVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdG9yZWRDb3VudEhvdmVyZCA+IDAgJiYgdGhpcy5faG92ZXJlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG5cclxuICAgICAgLy8gSWYgaG92ZXJlZCBlbGVtZW50cyBjb3VudCByZWFjaGVzIHplcm8sIGNoZWNrIGFnYWluIGEgYml0IGRlbGF5ZWQuIElmIG5vdGhpbmcgaG92ZXJlZCBhdCB0aGF0IHRpbWUsIGNsb3NlIHN1Ym1lbnVcclxuICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9ob3ZlcmVkRWxlbWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlQWN0aXZlU3ViSXRlbXNWaWV3KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAxMDAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2VsZWN0b3IoKTpzdHJpbmd7XHJcbiAgICByZXR1cm4gdGhpcy5pc0NvbGxhcHNlZCA/ICcjY2VudGVyLW1lbnUtY29udHJvbGxlcic6Jy5jZW50ZXItbWVudS1mcCc7XHJcbiAgfVxyXG5cclxuICBkcmFnRWxlbWVudChldmVudDogW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xyXG4gICAgY29uc3QgZGVsdGFYMSA9IGV2ZW50WzBdO1xyXG4gICAgY29uc3QgZGVsdGFZMSA9IGV2ZW50WzFdOyAgICAgICAgXHJcbiAgICB0aGlzLmxheW91dE1hbmFnZXJTZXJ2aWNlLmNoZWNrUG9zaXRpb24oJ2NlbnRlci1tZW51LWZwLWlkJyx0aGlzLmdldFNlbGVjdG9yKCksdW5kZWZpbmVkLGRlbHRhWDEsZGVsdGFZMSkgICAgXHJcbiAgfVxyXG5cclxuICBvbkRyYWdFbmQoKXtcclxuICAgIHRoaXMubGF5b3V0TWFuYWdlclNlcnZpY2UuaGFuZGxlRHJhZ0VuZCgnY2VudGVyLW1lbnUtZnAtaWQnKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gcHVibGljIG1ldGhvZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBwcml2YXRlIGZpZWxkc1xyXG4gIHByaXZhdGUgX2lzQ29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfaXRlbVN0YXRlczogQXJyYXk8VG9vbEh1Ykl0ZW1TdGF0ZXM+ID0gQXJyYXk8VG9vbEh1Ykl0ZW1TdGF0ZXM+KCk7XHJcbiAgcHJpdmF0ZSBfaXRlbXM6IEFycmF5PFRvb2xIdWJJdGVtPiA9IEFycmF5PFRvb2xIdWJJdGVtPigpO1xyXG4gIHByaXZhdGUgX2FjdGl2ZVN1Ykl0ZW1zVmlldzogVG9vbEh1Ykl0ZW0gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9hY3RpdmVTdWJJdGVtczogQXJyYXk8VG9vbEh1YlN1Ykl0ZW0+IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfdmlzdWFsU2V0dGluZ3M6IFRvb2xIdWJWaXN1YWxTZXR0aW5ncztcclxuICBwcml2YXRlIF91bml0czogVG9vbEh1Ykl0ZW1Vbml0cztcclxuICBwcml2YXRlIF9zdWJNZW51VW5pdHM6IFRvb2xIdWJJdGVtVW5pdHM7XHJcbiAgcHJpdmF0ZSBfYW5udWxhclNlY3Rvcjogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2FubnVsYXJTZWN0b3JCb3JkZXI6IHN0cmluZztcclxuICBwcml2YXRlIF9kZWFkWm9uZUFubnVsYXJTZWN0b3I6IHN0cmluZztcclxuICBwcml2YXRlIF9ob3ZlcmVkRWxlbWVudHM6IEFycmF5PHN0cmluZz4gPSBBcnJheTxzdHJpbmc+KCk7XHJcbiAgLy8gI2VuZHJlZ2lvbiBwcml2YXRlIGZpZWxkc1xyXG5cclxuICAvLyAjcmVnaW9uIHByaXZhdGUgbWV0aG9kc1xyXG4gIHByaXZhdGUgY2FsY3VsYXRlQ3VycmVudE1lbnVJdGVtVW5pdHMoKTogVG9vbEh1Ykl0ZW1Vbml0cyB7XHJcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmRyYXdNZW51SXRlbVN2Zyh0aGlzLl92aXN1YWxTZXR0aW5ncy5zdmdSYWRpdXMsIHRoaXMuX3Zpc3VhbFNldHRpbmdzLnN2Z1JhZGl1c0lubmVyLCB0aGlzLl9pdGVtcy5sZW5ndGgsIHRoaXMuaXNFbWJlZGRlZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGN1bGF0ZUN1cnJlbnRTdWJNZW51SXRlbVVuaXRzKCk6IFRvb2xIdWJJdGVtVW5pdHMge1xyXG4gICAgcmV0dXJuIFNWR0dlbmVyYXRvci5kcmF3TWVudUl0ZW1TdmcodGhpcy5fdmlzdWFsU2V0dGluZ3Muc3ZnUmFkaXVzLCB0aGlzLl92aXN1YWxTZXR0aW5ncy5zdmdSYWRpdXNJbm5lciwgMjAsIHRoaXMuaXNFbWJlZGRlZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVBhcmVudEFwcFJlY3RTaXplQ2hhbmdlKHBhcmVudFJlY3Q6RE9NUmVjdCB8IHVuZGVmaW5lZCk6dm9pZHtcclxuICAgIHRoaXMubGF5b3V0TWFuYWdlclNlcnZpY2UuY2hlY2tQb3NpdGlvbih0aGlzLmNvbXBvbmVudElkLHRoaXMuZ2V0U2VsZWN0b3IoKSxwYXJlbnRSZWN0LDAsMCx0cnVlKTsgICAgXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9vbmVPck1vcmVJdGVtc0FjdGl2ZSgpe1xyXG4gICAgZm9yKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtcyl7XHJcbiAgICAgIGlmKGl0ZW0uYWN0aXZlID09PSB0cnVlKVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZUFjdGl2YXRpb25TdGF0ZSgpe1xyXG4gICAgaWYodGhpcy5fb25lT3JNb3JlSXRlbXNBY3RpdmUoKSl7XHJcbiAgICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gI3JlZ2lvbiBwcml2YXRlIG1ldGhvZHNcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2VudGVyLW1lbnVcIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImNlbnRlci1tZW51LWZwXCJcclxuICAgIGlkPVwiY2VudGVyLW1lbnUtZnAtaWRcIlxyXG4gICAgW25nQ2xhc3NdPVwiYWN0aXZlU3ViSXRlbXMgPyAnc3VibWVudS1hY3RpdmUnIDogJydcIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgbGliRHJhZ2dhYmxlXHJcbiAgICAgIGlkPVwiY2VudGVyLW1lbnUtY29udHJvbGxlclwiXHJcbiAgICAgIGNsYXNzPVwiY2VudGVyLW1lbnUtY29udHJvbGxlciBkcmFnZ2VyXCJcclxuICAgICAgZGF0YS10ZXN0PVwidG9vbGh1Yl9jb250cm9sbGVyXCJcclxuICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgIG9wZW5lZDogIWlzQ29sbGFwc2VkLFxyXG4gICAgICAgIGFjdGl2ZTogaXNBY3RpdmVcclxuICAgICAgfVwiXHJcbiAgICAgIFt0aXRsZV09XCJcclxuICAgICAgICBpc0NvbGxhcHNlZFxyXG4gICAgICAgICAgPyAoJ19TaG93X3Rvb2xodWJfdG9vbHRpcCcgfCB0cmFuc2xhdGUpXHJcbiAgICAgICAgICA6ICgnX01pbmltaXplX3Rvb2xodWJfdG9vbHRpcCcgfCB0cmFuc2xhdGUpICAgICAgICAgIFxyXG4gICAgICBcIlxyXG4gICAgICAoY2xpY2tlZCk9XCJ0b2dnbGVNZW51KClcIlxyXG4gICAgICAoZHJhZ2dpbmcpPVwiZHJhZ0VsZW1lbnQoJGV2ZW50KVwiXHJcbiAgICAgIChkcmFnRW5kKSA9XCJvbkRyYWdFbmQoKVwiXHJcbiAgICA+PC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY2VudGVyLW1lbnUtY2lyY2xlLWJvcmRlci1pbm5lclwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImlzQ29sbGFwc2VkID8gJ2hpZGRlbicgOiAnJ1wiXHJcbiAgICA+PC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY2VudGVyLW1lbnUtY2lyY2xlLWJvcmRlci1vdXRlclwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImlzQ29sbGFwc2VkID8gJ2hpZGRlbicgOiAnJ1wiXHJcbiAgICAgIChtb3VzZWxlYXZlKT1cInNldEhvdmVyZWRTdGF0ZSgnbWVudUNpcmNsZUJvcmRlck91dGVyJywgZmFsc2UpXCJcclxuICAgICAgKG1vdXNlZW50ZXIpPVwic2V0SG92ZXJlZFN0YXRlKCdtZW51Q2lyY2xlQm9yZGVyT3V0ZXInLCB0cnVlKVwiXHJcbiAgICA+PC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGxpYkRyYWdnYWJsZVxyXG4gICAgICBjbGFzcz1cImNlbnRlci1tZW51LWNpcmNsZVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImlzQ29sbGFwc2VkID8gJ2hpZGRlbicgOiAnJ1wiXHJcbiAgICAgIChtb3VzZWxlYXZlKT1cInNldEhvdmVyZWRTdGF0ZSgnbWVudUNpcmNsZScsIGZhbHNlKVwiXHJcbiAgICAgIChtb3VzZWVudGVyKT1cInNldEhvdmVyZWRTdGF0ZSgnbWVudUNpcmNsZScsIHRydWUpXCJcclxuICAgICAgKGRyYWdnaW5nKT1cImRyYWdFbGVtZW50KCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8bGliLXRvb2wtaHViLWl0ZW1cclxuICAgICAgICBsaWJEcmFnZ2FibGVcclxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXHJcbiAgICAgICAgW2F0dHIuZGF0YS10ZXN0XT1cIid0b29saHViX2l0ZW1fJyArIGl0ZW0uYnV0dG9uSWRcIlxyXG4gICAgICAgIFt0aXRsZV09XCJpdGVtLnRvb2x0aXAgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtpdGVtXT1cIml0ZW1cIlxyXG4gICAgICAgIFthY3RpdmVdPVwiISFpdGVtLmFjdGl2ZVwiXHJcbiAgICAgICAgW2lzRW5hYmxlZF09XCIhaXRlbS5kaXNhYmxlZFwiXHJcbiAgICAgICAgKGNsaWNrZWQpPVwiY2xpY2tUb29sSHViSXRlbShpdGVtLmJ1dHRvbklkKVwiXHJcbiAgICAgID48L2xpYi10b29sLWh1Yi1pdGVtPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2VudGVybWVudS1idXR0b24tc3ZnXCJcclxuICAgICAgICBbYXR0ci52aWV3Qm94XT1cImdldFNWR1ZpZXdCb3goKVwiXHJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNsaXBQYXRoIGlkPVwic3ZnQ2VudGVyTWVudVwiIGNsaXBQYXRoVW5pdHM9XCJvYmplY3RCb3VuZGluZ0JveFwiPlxyXG4gICAgICAgICAgPHBhdGggW2F0dHIuZF09XCJnZXRTVkdDZW50ZXJNZW51UGF0aCgpXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgIDxjbGlwUGF0aCBpZD1cInN2Z0NlbnRlck1lbnVJdGVtXCIgY2xpcFBhdGhVbml0cz1cIm9iamVjdEJvdW5kaW5nQm94XCI+XHJcbiAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImdldFNWR0NlbnRlck1lbnVJdGVtUGF0aCgpXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgIDxjbGlwUGF0aCBpZD1cInN2Z0NlbnRlclN1Yk1lbnVJdGVtXCIgY2xpcFBhdGhVbml0cz1cIm9iamVjdEJvdW5kaW5nQm94XCI+XHJcbiAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImdldFNWR0NlbnRlclN1Yk1lbnVJdGVtUGF0aCgpXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgIDxjbGlwUGF0aCBpZD1cInN2Z0NlbnRlck1lbnVTdWJNZW51XCIgY2xpcFBhdGhVbml0cz1cIm9iamVjdEJvdW5kaW5nQm94XCI+XHJcbiAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImFubnVsYXJTZWN0b3JcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICA8Y2xpcFBhdGhcclxuICAgICAgICAgIGlkPVwic3ZnQ2VudGVyTWVudVN1Yk1lbnVCb3JkZXJcIlxyXG4gICAgICAgICAgY2xpcFBhdGhVbml0cz1cIm9iamVjdEJvdW5kaW5nQm94XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImFubnVsYXJTZWN0b3JCb3JkZXJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICA8Y2xpcFBhdGhcclxuICAgICAgICAgIGlkPVwic3ZnQ2VudGVyTWVudVN1Yk1lbnVEZWFkWm9uZVwiXHJcbiAgICAgICAgICBjbGlwUGF0aFVuaXRzPVwib2JqZWN0Qm91bmRpbmdCb3hcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxwYXRoIFthdHRyLmRdPVwiZGVhZFpvbmVBbm51bGFyU2VjdG9yXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgQGlmIChhY3RpdmVTdWJJdGVtcykge1xyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImNlbnRlci1tZW51LXN1Yi1tZW51LWJvcmRlclwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImlzQ29sbGFwc2VkID8gJ2hpZGRlbicgOiAnJ1wiXHJcbiAgICAgIChtb3VzZWxlYXZlKT1cInNldEhvdmVyZWRTdGF0ZSgnc3VibWVudUJvcmRlcicsIGZhbHNlKVwiXHJcbiAgICAgIChtb3VzZWVudGVyKT1cInNldEhvdmVyZWRTdGF0ZSgnc3VibWVudUJvcmRlcicsIHRydWUpXCJcclxuICAgID48L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJjZW50ZXItbWVudS1zdWItbWVudVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImlzQ29sbGFwc2VkID8gJ2hpZGRlbicgOiAnJ1wiXHJcbiAgICAgIChtb3VzZWxlYXZlKT1cInNldEhvdmVyZWRTdGF0ZSgnc3VibWVudScsIGZhbHNlKVwiXHJcbiAgICAgIChtb3VzZWVudGVyKT1cInNldEhvdmVyZWRTdGF0ZSgnc3VibWVudScsIHRydWUpXCJcclxuICAgID5cclxuICAgICAgPGxpYi10b29sLWh1Yi1zdWItaXRlbVxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFjdGl2ZVN1Ykl0ZW1zXCJcclxuICAgICAgICBbYXR0ci5kYXRhLXRlc3RdPVwiJ3Rvb2xodWJfc3ViaXRlbV8nICsgaXRlbS5idXR0b25JZFwiXHJcbiAgICAgICAgW3RpdGxlXT1cIml0ZW0udG9vbHRpcCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNsaWNrVG9vbEh1YlN1Ykl0ZW0oaXRlbS5idXR0b25JZClcIlxyXG4gICAgICA+PC9saWItdG9vbC1odWItc3ViLWl0ZW0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJjZW50ZXItbWVudS1zdWItbWVudS1kZWFkLXpvbmVcIlxyXG4gICAgICBbbmdDbGFzc109XCJpc0NvbGxhcHNlZCA/ICdoaWRkZW4nIDogJydcIlxyXG4gICAgICAobW91c2VsZWF2ZSk9XCJzZXRIb3ZlcmVkU3RhdGUoJ2RlYWRab25lJywgZmFsc2UpXCJcclxuICAgICAgKG1vdXNlZW50ZXIpPVwic2V0SG92ZXJlZFN0YXRlKCdkZWFkWm9uZScsIHRydWUpXCJcclxuICAgID48L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -218,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
218
218
  }], bimplusLanguageSelected: [{
219
219
  type: Output
220
220
  }] } });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy11c2VyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy11c2VyLW1lbnUvYmltcGx1cy11c2VyLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy11c2VyLW1lbnUvYmltcGx1cy11c2VyLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQ3RJLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQTtBQUM5RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFrQzlDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSwrQkFBK0I7SUFDM0UsWUFBWSxnQkFBa0M7UUFDNUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFHekIsbUJBQWMsR0FBZTtZQUMzQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQzdDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDN0MsRUFBRSxNQUFNLEVBQUUsSUFB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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBib29sZWFuQXR0cmlidXRlLE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyAgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlLCBUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQge0JpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnR9IGZyb20gXCIuLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudFwiXHJcbmltcG9ydCB7IGZpcmVFdmVudCB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVudUl0ZW0ge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgYWN0aW9uOiBzdHJpbmcsXHJcbiAgY2xhc3M6IHN0cmluZyxcclxuICB0ZXh0SWQ6IHN0cmluZyxcclxuICB0eXBlOiBzdHJpbmcsXHJcbiAgY2hlY2tTdGF0ZTogc3RyaW5nLFxyXG4gIHVybDogc3RyaW5nLFxyXG4gIF91cmw/OiBGdW5jdGlvbixcclxuICB0ZXh0Q2xhc3M6IHN0cmluZyxcclxuICBxdWVyeVBhcmFtczogc3RyaW5nXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBNZW51SXRlbUV2ZW50RGF0YSB7XHJcbiAgaW5kZXg6IG51bWJlcixcclxuICBhY3Rpb246IHN0cmluZ1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ0l0ZW0ge1xyXG4gIHN5bWJvbDogc3RyaW5nLFxyXG4gIHRleHQ6IHN0cmluZyxcclxuICBsQ29kZTogc3RyaW5nIHwgdW5kZWZpbmVkXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWJpbXBsdXMtdXNlci1tZW51JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXHJcbiAgcHJvdmlkZXJzIDogW1RyYW5zbGF0ZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iaW1wbHVzLXVzZXItbWVudS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JpbXBsdXMtdXNlci1tZW51LmNvbXBvbmVudC5sZXNzJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb21cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBCaW1wbHVzVXNlck1lbnVDb21wb25lbnQgZXh0ZW5kcyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2Vze1xyXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2Upe1xyXG4gICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSlcclxuICB9XHJcblxyXG4gIF9sYW5ndWFnZXNMaXN0OiBMYW5nSXRlbVtdID0gW1xyXG4gICAgeyBzeW1ib2w6IFwiY3NcIiwgdGV4dDogXCLEjGXFoXRpbmFcIiwgbENvZGU6IFwiM1wiIH0sXHJcbiAgICB7IHN5bWJvbDogXCJkZVwiLCB0ZXh0OiBcIkRldXRzY2hcIiwgbENvZGU6IFwiMVwiIH0sXHJcbiAgICB7IHN5bWJvbDogXCJlblwiLCB0ZXh0OiBcIkVuZ2xpc2ggKFVLKVwiLCBsQ29kZTogXCIwXCIgfSxcclxuICAgIHsgc3ltYm9sOiBcInVzXCIsIHRleHQ6IFwiRW5nbGlzaCAoVVMpXCIsIGxDb2RlOiB1bmRlZmluZWQgfSxcclxuICAgIHsgc3ltYm9sOiBcImVzXCIsIHRleHQ6IFwiRXNwYcOxb2xcIiwgbENvZGU6IFwiMThcIiB9LFxyXG4gICAgeyBzeW1ib2w6IFwiZnJcIiwgdGV4dDogXCJGcmFuw6dhaXNcIiwgbENvZGU6IFwiNFwiIH0sXHJcbiAgICB7IHN5bWJvbDogXCJpdFwiLCB0ZXh0OiBcIkl0YWxpYW5vXCIsIGxDb2RlOiBcIjJcIiB9LFxyXG4gICAgeyBzeW1ib2w6IFwicnVcIiwgdGV4dDogXCLQoNGD0YHRgdC60LjQuVwiLCBsQ29kZTogXCIxNFwiIH0sXHJcbiAgICB7IHN5bWJvbDogXCJyb1wiLCB0ZXh0OiBcIlJvbWFuYVwiLCBsQ29kZTogdW5kZWZpbmVkIH0sXHJcbiAgICB7IHN5bWJvbDogXCJ0clwiLCB0ZXh0OiBcIlTDvHJrw6dlXCIsIGxDb2RlOiB1bmRlZmluZWQgfVxyXG4gIF07XHJcblxyXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiBTdGF0ZXNcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX21lbnVPcGVuZWQgPSBmYWxzZTtcclxuICBfbGFuZ3VhZ2VzTWVudU9wZW5lZCA9IGZhbHNlO1xyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogcHJvcGVydGllc1xyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYWNjb3VudFNldHRpbmdzVmlzaWJsZSA6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByZW1vdmVDb25uZWN0ZWRBcHBzVmlzaWJsZSA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdXNlckd1aWRlVmlzaWJsZSA6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzdXBwb3J0VmlzaWJsZSA6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBmb3J1bVZpc2libGUgOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc3VibWVudVZpc2libGUgOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgY2xlYXJDYWNoZVZpc2libGUgOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGl2aWRlckxvZ2dlZEluVmlzaWJsZSA6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBsb2dvdXRWaXNpYmxlIDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzRW1iZWRkZWQgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzVG91Y2ggOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFsbG93UmNhSXRlbSA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIHByb3BlcnRpZXNcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgQElucHV0KCkgYnV0dG9uVGl0bGUgOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSB1c2VyTmFtZSA6IHN0cmluZyA9ICdVbmtub3duIHVzZXInO1xyXG4gIEBJbnB1dCgpIHVzZXJQaG90b1VybCA6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHVzZXJHdWlkZUxpbmtVcmwgOiBzdHJpbmcgPSAnaHR0cHM6Ly9kb2MuYWxscGxhbi5jb20vZGlzcGxheS9CSU1QTFVTTUFOVUFML0JpbXBsdXMrQmVudXR6ZXJoYW5kYnVjaCc7XHJcbiAgQElucHV0KCkgc3VwcG9ydExpbmtVcmwgOiBzdHJpbmcgPSAnaHR0cHM6Ly9jb25uZWN0Mi5hbGxwbGFuLmNvbS9zZXJ2aWNlcy9zdXBwb3J0JztcclxuICBASW5wdXQoKSBmb3J1bUxpbmtVcmwgOiBzdHJpbmcgPSAnaHR0cHM6Ly9jb25uZWN0LmFsbHBsYW4uY29tL2RlL2ZvcnVtL3RoZW1lbi9iaW0tYmVudXR6ZXItZm9ydW0uY3QnO1xyXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiBDb21wb25lbnQgZXZlbnRzXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIEBPdXRwdXQoKSBiaW1wbHVzVXNlck1lbnVDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNZW51SXRlbUV2ZW50RGF0YT4oKTtcclxuICBAT3V0cHV0KCkgYmltcGx1c0xhbmd1YWdlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydsb2NhbGl6ZWRTdHJpbmdzJ10pIHtcclxuICAgICAgdGhpcy5sb2NhbGl6ZWRTdHJpbmdzID0gY2hhbmdlc1snbG9jYWxpemVkU3RyaW5ncyddLmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiBMaXN0IG9mIG1lbnUgaXRlbXNcclxuICAqIE5vdGUgOiBhY3Rpb24gaXMgdXNlZCB0byBpZGVudGlmeSBhY3Rpb24gd2hpY2ggc2hvdWxkIGJlIGV4ZWN1dGVkXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIF9tZW51SXRlbXNMaXN0OiBNZW51SXRlbVtdID0gW1xyXG4gICAgeyBpZDpcImFjY291bnRTZXR0aW5nc1BhZ2VcIiwgYWN0aW9uOlwiYWNjb3VudFNldHRpbmdzXCIsIGNsYXNzOiBcImljb24tYWNjb3VudC1zZXR0aW5nc1wiLCB0ZXh0SWQ6IFwiX0VkaXRfcHJvZmlsZVwiLCB0eXBlOiBcIlwiLCBjaGVja1N0YXRlOiBcIlwiLCB0ZXh0Q2xhc3M6IFwiXCIsIHF1ZXJ5UGFyYW1zOiBcIlwiLCB1cmw6IFwiXCIsfSxcclxuICAgIHsgaWQ6XCJyZW1vdmVDb25uZWN0ZWRBcHBzXCIsIGFjdGlvbjpcInJlbW92ZUNvbm5lY3RlZEFwcHNcIiwgY2hlY2tTdGF0ZTogXCJhbGxvd1JjYUl0ZW1cIiwgY2xhc3M6IFwiaWNvbi1yY2FcIiwgdGV4dENsYXNzOiBcInRleHQtY2FwaXRhbGl6ZWRcIiwgdGV4dElkOiBcIl9SZW1vdmVfY29ubmVjdGVkX2FwcHNcIiwgdHlwZTogXCJcIiwgdXJsOiBcIlwiLCBxdWVyeVBhcmFtczogXCJcIn0sXHJcbiAgICB7IGlkOlwidXNlckd1aWRlTGlua1wiLCBhY3Rpb246XCJ1c2VyR3VpZGVcIiwgY2xhc3M6IFwiaWNvbi11c2VyLWd1aWRlXCIsIHRleHRJZDogXCJfVXNlckd1aWRlXCIsIGdldCB1cmwoKSB7IHJldHVybiB0aGlzLl91cmw/LigpID8/ICcnOyB9LCBfdXJsOiAoKSA9PiB0aGlzLnVzZXJHdWlkZUxpbmtVcmwsIHR5cGU6IFwiXCIsIGNoZWNrU3RhdGU6IFwiXCIsIHRleHRDbGFzczogXCJcIiwgcXVlcnlQYXJhbXM6IFwiXCJ9LFxyXG4gICAgeyBpZDpcInN1cHBvcnRMaW5rXCIsIGFjdGlvbjpcInN1cHBvcnRcIiwgY2xhc3M6IFwiaWNvbi1zdXBwb3J0XCIsIHRleHRJZDogXCJfU3VwcG9ydFwiLCBnZXQgdXJsKCkgeyByZXR1cm4gdGhpcy5fdXJsPy4oKSA/PyAnJzsgfSwgX3VybDogKCkgPT4gdGhpcy5zdXBwb3J0TGlua1VybCwgcXVlcnlQYXJhbXM6IFwibm9fY2FjaGU9MVwiLCB0eXBlOiBcIlwiLCBjaGVja1N0YXRlOiBcIlwiLCB0ZXh0Q2xhc3M6IFwiXCJ9LFxyXG4gICAgeyBpZDpcImZvcnVtTGlua1wiLCBhY3Rpb246XCJmb3J1bVwiLCBjbGFzczogXCJpY29uLWZvcnVtXCIsIHRleHRJZDogXCJfRm9ydW1cIiwgZ2V0IHVybCgpIHsgcmV0dXJuIHRoaXMuX3VybD8uKCkgPz8gJyc7IH0sIF91cmw6ICgpID0+IHRoaXMuZm9ydW1MaW5rVXJsLCB0eXBlOiBcIlwiLCBjaGVja1N0YXRlOiBcIlwiLCB0ZXh0Q2xhc3M6IFwiXCIsIHF1ZXJ5UGFyYW1zOiBcIlwifSxcclxuICAgIHsgaWQ6XCJsYW5ndWFnZXNTdWJtZW51XCIsIGFjdGlvbjpcInN1Ym1lbnVcIiwgY2xhc3M6IFwiaWNvbi1sYW5ndWFnZXNcIiwgdGV4dElkOiBcIl9MYW5ndWFnZXNcIiwgdHlwZTogXCJcIiwgY2hlY2tTdGF0ZTogXCJcIiwgdXJsOiBcIlwiLCB0ZXh0Q2xhc3M6IFwiXCIsIHF1ZXJ5UGFyYW1zOiBcIlwifSxcclxuICAgIHsgaWQ6XCJjbGVhckNhY2hlXCIsIGFjdGlvbjpcImNsZWFyQ2FjaGVcIiwgY2xhc3M6IFwiaWNvbi1jbGVhci1jYWNoZVwiLCB0ZXh0SWQ6IFwiX0NsZWFyIGNhY2hlXCIsIHR5cGU6IFwiXCIsIGNoZWNrU3RhdGU6IFwiXCIsIHVybDogXCJcIiwgdGV4dENsYXNzOiBcIlwiLCBxdWVyeVBhcmFtczogXCJcIn0sXHJcbiAgICB7IGlkOlwiZGl2aWRlckxvZ2dlZEluXCIsIHR5cGU6IFwiZGl2aWRlclwiLCBhY3Rpb246IFwiXCIsIGNsYXNzOiBcIlwiLCB0ZXh0SWQ6IFwiXCIsIGNoZWNrU3RhdGU6IFwiXCIsIHVybDogXCJcIiwgdGV4dENsYXNzOiBcIlwiLCBxdWVyeVBhcmFtczogXCJcIn0sXHJcbiAgICB7IGlkOlwibG9nb3V0XCIsIGFjdGlvbjpcImxvZ291dFwiLCBjbGFzczogXCJpY29uLWxvZy1vdXRcIiwgdGV4dElkOiBcIl9Mb2dvdXRcIiwgdHlwZTogXCJcIiwgY2hlY2tTdGF0ZTogXCJcIiwgdXJsOiBcIlwiLCB0ZXh0Q2xhc3M6IFwiXCIsIHF1ZXJ5UGFyYW1zOiBcIlwifVxyXG4gIF07XHJcblxyXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiBJdGVtIGNsaWNrZWRcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX21lbnVJdGVtQ2xpY2tlZCggaXRlbTogTWVudUl0ZW0sIGluZGV4IDogbnVtYmVyICl7XHJcbiAgICBpZiAoIWl0ZW0gfHwgaXRlbS50eXBlID09PSAnZGl2aWRlcicpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAoaXRlbS5hY3Rpb24gPT09ICdzdWJtZW51Jykge1xyXG4gICAgICB0aGlzLl90b2dnbGVMYW5ndWFnZXNTdWJtZW51T3BlbmVkKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5fbGFuZ3VhZ2VzTWVudU9wZW5lZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLl9tZW51T3BlbmVkID0gZmFsc2U7XHJcbiAgICAgIGZpcmVFdmVudCh0aGlzLCBcImJpbXBsdXNVc2VyTWVudUNsaWNrZWRcIiwgeyBpbmRleCwgYWN0aW9uOiBpdGVtLmFjdGlvbiA/IGl0ZW0uYWN0aW9uIDogJycgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogbGFuZ3VhZ2Ugc3VibWVudSBpdGVtIGNsaWNrZWRcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX3N3aXRjaExhbmd1YWdlKCBsYW5ndWFnZTogc3RyaW5nICl7XHJcbiAgICB0aGlzLl9sYW5ndWFnZXNNZW51T3BlbmVkID0gZmFsc2U7XHJcbiAgICB0aGlzLl9tZW51T3BlbmVkID0gZmFsc2U7XHJcbiAgICBmaXJlRXZlbnQodGhpcywgXCJiaW1wbHVzTGFuZ3VhZ2VTZWxlY3RlZFwiLCBsYW5ndWFnZSk7XHJcbiAgfVxyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogdG9nZ2xlIG1lbnUgb3BlblxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBfdG9nZ2xlT3BlbmVkKCl7XHJcbiAgICB0aGlzLl9tZW51T3BlbmVkID0gIXRoaXMuX21lbnVPcGVuZWQ7XHJcbiAgICBpZighdGhpcy5fbWVudU9wZW5lZCkge1xyXG4gICAgICB0aGlzLl9sYW5ndWFnZXNNZW51T3BlbmVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogdG9nZ2xlIGxhbmd1YWdlIHN1Ym1lbnUgb3BlblxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBfdG9nZ2xlTGFuZ3VhZ2VzU3VibWVudU9wZW5lZCgpe1xyXG4gICAgaWYoIXRoaXMuX21lbnVPcGVuZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fbGFuZ3VhZ2VzTWVudU9wZW5lZCA9ICF0aGlzLl9sYW5ndWFnZXNNZW51T3BlbmVkO1xyXG4gIH1cclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIGNoZWNrIGlmIGl0ZW0gaXMgdmlzaWJsZVxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBfaXNIaWRkZW4oaXRlbTogTWVudUl0ZW0pIHtcclxuXHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICByZXR1cm4gIXRoaXNbKGAke2l0ZW0uYWN0aW9uID8gaXRlbS5hY3Rpb24gOiBpdGVtLmlkfVZpc2libGVgIGFzIGtleW9mIEJpbXBsdXNVc2VyTWVudUNvbXBvbmVudCldO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vLS0tIGFkZCBsYW5nIGNvZGUgYW5kIGFkZGl0aW9uYWwgcXVlcnkgcGFyYW1zIHRvIHN1cHBvcnRlZCB1cmxzXHJcbiAgX2J1aWxkVXJsKGl0ZW06IE1lbnVJdGVtIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBsZXQgaXRlbVVybCA9IGl0ZW0/LnVybDtcclxuICAgIGNvbnN0IGFjdHVhbExhbmcgPSB0aGlzLl9sYW5ndWFnZXNMaXN0LmZpbmQobGFuZz0+IGxhbmcuc3ltYm9sID09PSB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UpO1xyXG4gICAgY29uc3QgbGFuZ0NvZGUgPSBhY3R1YWxMYW5nPy5sQ29kZTtcclxuICAgIGNvbnN0IHN1cHBvcnRzTGFuZ0NvZGUgPSBpdGVtVXJsPy5lbmRzV2l0aD8uKCcuY3QnKSAmJiBsYW5nQ29kZTtcclxuICAgIGlmIChpdGVtPy5xdWVyeVBhcmFtcyB8fCBzdXBwb3J0c0xhbmdDb2RlKSB7XHJcbiAgICAgIGl0ZW1VcmwgPSBpdGVtVXJsICsgJz8nO1xyXG4gICAgICBpZiAoc3VwcG9ydHNMYW5nQ29kZSkge1xyXG4gICAgICAgIGl0ZW1VcmwgPSBpdGVtVXJsICsgJ0w9JyArIGxhbmdDb2RlO1xyXG4gICAgICAgIGlmIChpdGVtPy5xdWVyeVBhcmFtcykge1xyXG4gICAgICAgICAgaXRlbVVybCA9IGl0ZW1VcmwgKyAnJic7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChpdGVtPy5xdWVyeVBhcmFtcykge1xyXG4gICAgICAgIGl0ZW1VcmwgPSBpdGVtVXJsICsgaXRlbS5xdWVyeVBhcmFtcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW1Vcmw7XHJcbiAgfVxyXG5cclxuICBfZ2V0TWVudUl0ZW1zKCkge1xyXG4gICAgY29uc3QgbWVudUl0ZW1zTGlzdEZpbHRlcmVkID0gdGhpcy5pc0VtYmVkZGVkID8gdGhpcy5fbWVudUl0ZW1zTGlzdC5zbGljZSgwLC0zKSA6IHRoaXMuX21lbnVJdGVtc0xpc3Q7XHJcbiAgICByZXR1cm4gbWVudUl0ZW1zTGlzdEZpbHRlcmVkLm1hcCggKGl0ZW0pID0+IHtcclxuXHJcbiAgICAgIGlmICh0aGlzLl9pc0hpZGRlbihpdGVtKSB8fCAoaXRlbS5jaGVja1N0YXRlICYmICF0aGlzWyhpdGVtLmNoZWNrU3RhdGUgYXMga2V5b2YgQmltcGx1c1VzZXJNZW51Q29tcG9uZW50KV0pKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBfZ2V0TGFuZ0lkKGxhbmc6IExhbmdJdGVtIHwgdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gXCJwb3J0YWxMYW5ndWFnZVwiICsgbGFuZz8uc3ltYm9sLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbGFuZz8uc3ltYm9sLnNsaWNlKDEpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFthdHRyLmtleV09XCInYmltY29tcE92ZXJsYXknXCIgY2xhc3M9XCJiaW1jb21wLW92ZXJsYXlcIiBbbmdDbGFzc109XCJfbWVudU9wZW5lZCA/ICdvcGVuJyA6ICcnXCJcclxuICAoY2xpY2spPVwiX3RvZ2dsZU9wZW5lZCgpXCI+PC9kaXY+XHJcbjxkaXYgW2F0dHIua2V5XT1cIid1c2VyTWVudSdcIiBjbGFzcz1cImRyb3Bkb3duXCIgW25nQ2xhc3NdPVwiX21lbnVPcGVuZWQgPyAnb3BlbicgOiAnJ1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJkcm9wZG93bi10b2dnbGVcIiBbdGl0bGVdPVwiYnV0dG9uVGl0bGUgPyBidXR0b25UaXRsZSA6ICcnXCIgKGNsaWNrKT1cIl90b2dnbGVPcGVuZWQoKVwiPlxyXG4gICAgPGltZyBjbGFzcz1cInVzZXItcGhvdG9cIiBzcmM9XCJ7e3VzZXJQaG90b1VybCA/IHVzZXJQaG90b1VybCA6ICcnfX1cIiBhbHQ9XCJ7e2J1dHRvblRpdGxlID8gYnV0dG9uVGl0bGUgOiAnJ319XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidXNlci1uYW1lXCI+XHJcbiAgICAgIEBpZiAoIWlzVG91Y2gpIHtcclxuICAgICAge3sgdXNlck5hbWUgfX1cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICA8c3BhbiBjbGFzcz1cImNhcmV0XCI+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDx1bCBjbGFzcz1cImJpbWNvbXAtZHJvcGRvd24tbWVudVwiIFtuZ0NsYXNzXT1cIl9tZW51T3BlbmVkID8gJ29wZW4nIDogJydcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX2dldE1lbnVJdGVtcygpOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgIDxsaSAqbmdJZj1cIml0ZW1cIiBbYXR0ci5rZXldPVwiaXRlbS5pZFwiIFthdHRyLnJvbGVdPVwiaXRlbS50eXBlID09PSAnZGl2aWRlcicgPyAnc2VwYXJhdG9yJyA6ICcnXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICdkaXZpZGVyJzogaXRlbS50eXBlID09PSAnZGl2aWRlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgJ2xhbmd1YWdlTWVudUl0ZW0nOiBpdGVtLmFjdGlvbiA9PT0gJ3N1Ym1lbnUnLFxyXG4gICAgICAgICAgICAgICAgICAgICdzdWJtZW51LWhpZGRlbicgOiAoIWl0ZW0udXJsIHx8IGl0ZW0udXJsLnNsaWNlKDAsMikgPT09ICcjLycpICYmIGl0ZW0uYWN0aW9uICE9PSAnc3VibWVudSdcclxuICAgICAgICAgICAgICAgICAgICB9XCIgKGNsaWNrKT1cIl9tZW51SXRlbUNsaWNrZWQoaXRlbSwgaSlcIj5cclxuICAgICAgICBAaWYgKGl0ZW0uYWN0aW9uID09PSAnc3VibWVudScpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3VibWVudSBhcnJvd1wiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCIgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc1wiPjwvZGl2PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIiBbbmdDbGFzc109XCJpdGVtLnRleHRDbGFzcyA/IGl0ZW0udGV4dENsYXNzIDogJydcIj5cclxuICAgICAgICAgIHt7aXRlbS50ZXh0SWQgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGFuZ3VhZ2VzU3VibWVudVwiIFtuZ0NsYXNzXT1cIl9sYW5ndWFnZXNNZW51T3BlbmVkID8gJ29wZW4nIDogJydcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYW5ndWFnZVN1Ym1lbnVJdGVtc1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBsYW5nIG9mIF9sYW5ndWFnZXNMaXN0XCIgW2F0dHIua2V5XT1cIl9nZXRMYW5nSWQobGFuZylcIiBpZD1cInt7X2dldExhbmdJZChsYW5nKX19XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImxhbmd1YWdlU3VibWVudUl0ZW1cIiBbbmdDbGFzc109XCJsYW5nLnN5bWJvbCA9PT0gdGhpcy5zZWxlY3RlZExhbmd1YWdlID8gJ3NlbGVjdGVkJyA6ICcnXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiX3N3aXRjaExhbmd1YWdlKGxhbmcuc3ltYm9sKVwiPlxyXG4gICAgICAgICAgICAgIHt7bGFuZy50ZXh0fX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9IEBlbHNlIGlmICghaXRlbS51cmwgfHwgaXRlbS51cmwuc2xpY2UoMCwyKSA9PT0gXCIjL1wiKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIiBbbmdDbGFzc109XCJpdGVtLmNsYXNzXCI+PC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiIFtuZ0NsYXNzXT1cIml0ZW0udGV4dENsYXNzID8gaXRlbS50ZXh0Q2xhc3MgOiAnJ1wiPlxyXG4gICAgICAgICAge3tpdGVtLnRleHRJZCB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIH0gQGVsc2UgaWYgKCFpdGVtLnR5cGUgfHwgaXRlbS50eXBlICE9PSBcImRpdmlkZXJcIikge1xyXG4gICAgICAgIDxhIGhyZWY9XCJ7eyBfYnVpbGRVcmwoaXRlbSkgfX1cIiByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwic3VibWVudS1oaWRkZW5cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCIgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc1wiPjwvZGl2PlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiIFtuZ0NsYXNzXT1cIml0ZW0udGV4dENsYXNzID8gaXRlbS50ZXh0Q2xhc3MgOiAnJ1wiPlxyXG4gICAgICAgICAgICB7e2l0ZW0udGV4dElkIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2xpPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC91bD5cclxuPC9kaXY+XHJcbiJdfQ==
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy11c2VyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy11c2VyLW1lbnUvYmltcGx1cy11c2VyLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy11c2VyLW1lbnUvYmltcGx1cy11c2VyLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQ3RJLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQTtBQUM5RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFrQzlDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSwrQkFBK0I7SUFDM0UsWUFBWSxnQkFBa0M7UUFDNUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFHekIsbUJBQWMsR0FBZTtZQUMzQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQzdDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDN0MsRUFBRSxNQUFNLEVBQUUsSUFB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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBib29sZWFuQXR0cmlidXRlLE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyAgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlLCBUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQge0JpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnR9IGZyb20gXCIuLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudFwiXHJcbmltcG9ydCB7IGZpcmVFdmVudCB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVudUl0ZW0ge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgYWN0aW9uOiBzdHJpbmcsXHJcbiAgY2xhc3M6IHN0cmluZyxcclxuICB0ZXh0SWQ6IHN0cmluZyxcclxuICB0eXBlOiBzdHJpbmcsXHJcbiAgY2hlY2tTdGF0ZTogc3RyaW5nLFxyXG4gIHVybDogc3RyaW5nLFxyXG4gIF91cmw/OiAoKSA9PiBzdHJpbmc7IC8vIEZ1bmN0aW9uIHRoYXQgdGFrZXMgbm8gYXJndW1lbnRzIGFuZCByZXR1cm5zIGEgc3RyaW5nXHJcbiAgdGV4dENsYXNzOiBzdHJpbmcsXHJcbiAgcXVlcnlQYXJhbXM6IHN0cmluZ1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVudUl0ZW1FdmVudERhdGEge1xyXG4gIGluZGV4OiBudW1iZXIsXHJcbiAgYWN0aW9uOiBzdHJpbmdcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIExhbmdJdGVtIHtcclxuICBzeW1ib2w6IHN0cmluZyxcclxuICB0ZXh0OiBzdHJpbmcsXHJcbiAgbENvZGU6IHN0cmluZyB8IHVuZGVmaW5lZFxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1iaW1wbHVzLXVzZXItbWVudScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxyXG4gIHByb3ZpZGVycyA6IFtUcmFuc2xhdGVTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy11c2VyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9iaW1wbHVzLXVzZXItbWVudS5jb21wb25lbnQubGVzcycsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uU2hhZG93RG9tXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQmltcGx1c1VzZXJNZW51Q29tcG9uZW50IGV4dGVuZHMgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlc3tcclxuICBjb25zdHJ1Y3Rvcih0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKXtcclxuICAgIHN1cGVyKHRyYW5zbGF0ZVNlcnZpY2UpXHJcbiAgfVxyXG5cclxuICBfbGFuZ3VhZ2VzTGlzdDogTGFuZ0l0ZW1bXSA9IFtcclxuICAgIHsgc3ltYm9sOiBcImNzXCIsIHRleHQ6IFwixIxlxaF0aW5hXCIsIGxDb2RlOiBcIjNcIiB9LFxyXG4gICAgeyBzeW1ib2w6IFwiZGVcIiwgdGV4dDogXCJEZXV0c2NoXCIsIGxDb2RlOiBcIjFcIiB9LFxyXG4gICAgeyBzeW1ib2w6IFwiZW5cIiwgdGV4dDogXCJFbmdsaXNoIChVSylcIiwgbENvZGU6IFwiMFwiIH0sXHJcbiAgICB7IHN5bWJvbDogXCJ1c1wiLCB0ZXh0OiBcIkVuZ2xpc2ggKFVTKVwiLCBsQ29kZTogdW5kZWZpbmVkIH0sXHJcbiAgICB7IHN5bWJvbDogXCJlc1wiLCB0ZXh0OiBcIkVzcGHDsW9sXCIsIGxDb2RlOiBcIjE4XCIgfSxcclxuICAgIHsgc3ltYm9sOiBcImZyXCIsIHRleHQ6IFwiRnJhbsOnYWlzXCIsIGxDb2RlOiBcIjRcIiB9LFxyXG4gICAgeyBzeW1ib2w6IFwiaXRcIiwgdGV4dDogXCJJdGFsaWFub1wiLCBsQ29kZTogXCIyXCIgfSxcclxuICAgIHsgc3ltYm9sOiBcInJ1XCIsIHRleHQ6IFwi0KDRg9GB0YHQutC40LlcIiwgbENvZGU6IFwiMTRcIiB9LFxyXG4gICAgeyBzeW1ib2w6IFwicm9cIiwgdGV4dDogXCJSb21hbmFcIiwgbENvZGU6IHVuZGVmaW5lZCB9LFxyXG4gICAgeyBzeW1ib2w6IFwidHJcIiwgdGV4dDogXCJUw7xya8OnZVwiLCBsQ29kZTogdW5kZWZpbmVkIH1cclxuICBdO1xyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogU3RhdGVzXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIF9tZW51T3BlbmVkID0gZmFsc2U7XHJcbiAgX2xhbmd1YWdlc01lbnVPcGVuZWQgPSBmYWxzZTtcclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIHByb3BlcnRpZXNcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFjY291bnRTZXR0aW5nc1Zpc2libGUgOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcmVtb3ZlQ29ubmVjdGVkQXBwc1Zpc2libGUgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHVzZXJHdWlkZVZpc2libGUgOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc3VwcG9ydFZpc2libGUgOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZm9ydW1WaXNpYmxlIDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHN1Ym1lbnVWaXNpYmxlIDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNsZWFyQ2FjaGVWaXNpYmxlIDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpdmlkZXJMb2dnZWRJblZpc2libGUgOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgbG9nb3V0VmlzaWJsZSA6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0VtYmVkZGVkIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc1RvdWNoIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhbGxvd1JjYUl0ZW0gOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiBwcm9wZXJ0aWVzXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIEBJbnB1dCgpIGJ1dHRvblRpdGxlIDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdXNlck5hbWUgOiBzdHJpbmcgPSAnVW5rbm93biB1c2VyJztcclxuICBASW5wdXQoKSB1c2VyUGhvdG9VcmwgOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSB1c2VyR3VpZGVMaW5rVXJsIDogc3RyaW5nID0gJ2h0dHBzOi8vZG9jLmFsbHBsYW4uY29tL2Rpc3BsYXkvQklNUExVU01BTlVBTC9CaW1wbHVzK0JlbnV0emVyaGFuZGJ1Y2gnO1xyXG4gIEBJbnB1dCgpIHN1cHBvcnRMaW5rVXJsIDogc3RyaW5nID0gJ2h0dHBzOi8vY29ubmVjdDIuYWxscGxhbi5jb20vc2VydmljZXMvc3VwcG9ydCc7XHJcbiAgQElucHV0KCkgZm9ydW1MaW5rVXJsIDogc3RyaW5nID0gJ2h0dHBzOi8vY29ubmVjdC5hbGxwbGFuLmNvbS9kZS9mb3J1bS90aGVtZW4vYmltLWJlbnV0emVyLWZvcnVtLmN0JztcclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogQ29tcG9uZW50IGV2ZW50c1xyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBAT3V0cHV0KCkgYmltcGx1c1VzZXJNZW51Q2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TWVudUl0ZW1FdmVudERhdGE+KCk7XHJcbiAgQE91dHB1dCgpIGJpbXBsdXNMYW5ndWFnZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snbG9jYWxpemVkU3RyaW5ncyddKSB7XHJcbiAgICAgIHRoaXMubG9jYWxpemVkU3RyaW5ncyA9IGNoYW5nZXNbJ2xvY2FsaXplZFN0cmluZ3MnXS5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogTGlzdCBvZiBtZW51IGl0ZW1zXHJcbiAgKiBOb3RlIDogYWN0aW9uIGlzIHVzZWQgdG8gaWRlbnRpZnkgYWN0aW9uIHdoaWNoIHNob3VsZCBiZSBleGVjdXRlZFxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBfbWVudUl0ZW1zTGlzdDogTWVudUl0ZW1bXSA9IFtcclxuICAgIHsgaWQ6XCJhY2NvdW50U2V0dGluZ3NQYWdlXCIsIGFjdGlvbjpcImFjY291bnRTZXR0aW5nc1wiLCBjbGFzczogXCJpY29uLWFjY291bnQtc2V0dGluZ3NcIiwgdGV4dElkOiBcIl9FZGl0X3Byb2ZpbGVcIiwgdHlwZTogXCJcIiwgY2hlY2tTdGF0ZTogXCJcIiwgdGV4dENsYXNzOiBcIlwiLCBxdWVyeVBhcmFtczogXCJcIiwgdXJsOiBcIlwiLH0sXHJcbiAgICB7IGlkOlwicmVtb3ZlQ29ubmVjdGVkQXBwc1wiLCBhY3Rpb246XCJyZW1vdmVDb25uZWN0ZWRBcHBzXCIsIGNoZWNrU3RhdGU6IFwiYWxsb3dSY2FJdGVtXCIsIGNsYXNzOiBcImljb24tcmNhXCIsIHRleHRDbGFzczogXCJ0ZXh0LWNhcGl0YWxpemVkXCIsIHRleHRJZDogXCJfUmVtb3ZlX2Nvbm5lY3RlZF9hcHBzXCIsIHR5cGU6IFwiXCIsIHVybDogXCJcIiwgcXVlcnlQYXJhbXM6IFwiXCJ9LFxyXG4gICAgeyBpZDpcInVzZXJHdWlkZUxpbmtcIiwgYWN0aW9uOlwidXNlckd1aWRlXCIsIGNsYXNzOiBcImljb24tdXNlci1ndWlkZVwiLCB0ZXh0SWQ6IFwiX1VzZXJHdWlkZVwiLCBnZXQgdXJsKCkgeyByZXR1cm4gdGhpcy5fdXJsPy4oKSA/PyAnJzsgfSwgX3VybDogKCkgPT4gdGhpcy51c2VyR3VpZGVMaW5rVXJsLCB0eXBlOiBcIlwiLCBjaGVja1N0YXRlOiBcIlwiLCB0ZXh0Q2xhc3M6IFwiXCIsIHF1ZXJ5UGFyYW1zOiBcIlwifSxcclxuICAgIHsgaWQ6XCJzdXBwb3J0TGlua1wiLCBhY3Rpb246XCJzdXBwb3J0XCIsIGNsYXNzOiBcImljb24tc3VwcG9ydFwiLCB0ZXh0SWQ6IFwiX1N1cHBvcnRcIiwgZ2V0IHVybCgpIHsgcmV0dXJuIHRoaXMuX3VybD8uKCkgPz8gJyc7IH0sIF91cmw6ICgpID0+IHRoaXMuc3VwcG9ydExpbmtVcmwsIHF1ZXJ5UGFyYW1zOiBcIm5vX2NhY2hlPTFcIiwgdHlwZTogXCJcIiwgY2hlY2tTdGF0ZTogXCJcIiwgdGV4dENsYXNzOiBcIlwifSxcclxuICAgIHsgaWQ6XCJmb3J1bUxpbmtcIiwgYWN0aW9uOlwiZm9ydW1cIiwgY2xhc3M6IFwiaWNvbi1mb3J1bVwiLCB0ZXh0SWQ6IFwiX0ZvcnVtXCIsIGdldCB1cmwoKSB7IHJldHVybiB0aGlzLl91cmw/LigpID8/ICcnOyB9LCBfdXJsOiAoKSA9PiB0aGlzLmZvcnVtTGlua1VybCwgdHlwZTogXCJcIiwgY2hlY2tTdGF0ZTogXCJcIiwgdGV4dENsYXNzOiBcIlwiLCBxdWVyeVBhcmFtczogXCJcIn0sXHJcbiAgICB7IGlkOlwibGFuZ3VhZ2VzU3VibWVudVwiLCBhY3Rpb246XCJzdWJtZW51XCIsIGNsYXNzOiBcImljb24tbGFuZ3VhZ2VzXCIsIHRleHRJZDogXCJfTGFuZ3VhZ2VzXCIsIHR5cGU6IFwiXCIsIGNoZWNrU3RhdGU6IFwiXCIsIHVybDogXCJcIiwgdGV4dENsYXNzOiBcIlwiLCBxdWVyeVBhcmFtczogXCJcIn0sXHJcbiAgICB7IGlkOlwiY2xlYXJDYWNoZVwiLCBhY3Rpb246XCJjbGVhckNhY2hlXCIsIGNsYXNzOiBcImljb24tY2xlYXItY2FjaGVcIiwgdGV4dElkOiBcIl9DbGVhciBjYWNoZVwiLCB0eXBlOiBcIlwiLCBjaGVja1N0YXRlOiBcIlwiLCB1cmw6IFwiXCIsIHRleHRDbGFzczogXCJcIiwgcXVlcnlQYXJhbXM6IFwiXCJ9LFxyXG4gICAgeyBpZDpcImRpdmlkZXJMb2dnZWRJblwiLCB0eXBlOiBcImRpdmlkZXJcIiwgYWN0aW9uOiBcIlwiLCBjbGFzczogXCJcIiwgdGV4dElkOiBcIlwiLCBjaGVja1N0YXRlOiBcIlwiLCB1cmw6IFwiXCIsIHRleHRDbGFzczogXCJcIiwgcXVlcnlQYXJhbXM6IFwiXCJ9LFxyXG4gICAgeyBpZDpcImxvZ291dFwiLCBhY3Rpb246XCJsb2dvdXRcIiwgY2xhc3M6IFwiaWNvbi1sb2ctb3V0XCIsIHRleHRJZDogXCJfTG9nb3V0XCIsIHR5cGU6IFwiXCIsIGNoZWNrU3RhdGU6IFwiXCIsIHVybDogXCJcIiwgdGV4dENsYXNzOiBcIlwiLCBxdWVyeVBhcmFtczogXCJcIn1cclxuICBdO1xyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogSXRlbSBjbGlja2VkXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIF9tZW51SXRlbUNsaWNrZWQoIGl0ZW06IE1lbnVJdGVtLCBpbmRleCA6IG51bWJlciApe1xyXG4gICAgaWYgKCFpdGVtIHx8IGl0ZW0udHlwZSA9PT0gJ2RpdmlkZXInKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKGl0ZW0uYWN0aW9uID09PSAnc3VibWVudScpIHtcclxuICAgICAgdGhpcy5fdG9nZ2xlTGFuZ3VhZ2VzU3VibWVudU9wZW5lZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX2xhbmd1YWdlc01lbnVPcGVuZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5fbWVudU9wZW5lZCA9IGZhbHNlO1xyXG4gICAgICBmaXJlRXZlbnQodGhpcywgXCJiaW1wbHVzVXNlck1lbnVDbGlja2VkXCIsIHsgaW5kZXgsIGFjdGlvbjogaXRlbS5hY3Rpb24gPyBpdGVtLmFjdGlvbiA6ICcnIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIGxhbmd1YWdlIHN1Ym1lbnUgaXRlbSBjbGlja2VkXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIF9zd2l0Y2hMYW5ndWFnZSggbGFuZ3VhZ2U6IHN0cmluZyApe1xyXG4gICAgdGhpcy5fbGFuZ3VhZ2VzTWVudU9wZW5lZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5fbWVudU9wZW5lZCA9IGZhbHNlO1xyXG4gICAgZmlyZUV2ZW50KHRoaXMsIFwiYmltcGx1c0xhbmd1YWdlU2VsZWN0ZWRcIiwgbGFuZ3VhZ2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIHRvZ2dsZSBtZW51IG9wZW5cclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX3RvZ2dsZU9wZW5lZCgpe1xyXG4gICAgdGhpcy5fbWVudU9wZW5lZCA9ICF0aGlzLl9tZW51T3BlbmVkO1xyXG4gICAgaWYoIXRoaXMuX21lbnVPcGVuZWQpIHtcclxuICAgICAgdGhpcy5fbGFuZ3VhZ2VzTWVudU9wZW5lZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIHRvZ2dsZSBsYW5ndWFnZSBzdWJtZW51IG9wZW5cclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX3RvZ2dsZUxhbmd1YWdlc1N1Ym1lbnVPcGVuZWQoKXtcclxuICAgIGlmKCF0aGlzLl9tZW51T3BlbmVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX2xhbmd1YWdlc01lbnVPcGVuZWQgPSAhdGhpcy5fbGFuZ3VhZ2VzTWVudU9wZW5lZDtcclxuICB9XHJcblxyXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiBjaGVjayBpZiBpdGVtIGlzIHZpc2libGVcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX2lzSGlkZGVuKGl0ZW06IE1lbnVJdGVtKSB7XHJcblxyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgcmV0dXJuICF0aGlzWyhgJHtpdGVtLmFjdGlvbiA/IGl0ZW0uYWN0aW9uIDogaXRlbS5pZH1WaXNpYmxlYCBhcyBrZXlvZiBCaW1wbHVzVXNlck1lbnVDb21wb25lbnQpXTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLy0tLSBhZGQgbGFuZyBjb2RlIGFuZCBhZGRpdGlvbmFsIHF1ZXJ5IHBhcmFtcyB0byBzdXBwb3J0ZWQgdXJsc1xyXG4gIF9idWlsZFVybChpdGVtOiBNZW51SXRlbSB8IHVuZGVmaW5lZCkge1xyXG4gICAgbGV0IGl0ZW1VcmwgPSBpdGVtPy51cmw7XHJcbiAgICBjb25zdCBhY3R1YWxMYW5nID0gdGhpcy5fbGFuZ3VhZ2VzTGlzdC5maW5kKGxhbmc9PiBsYW5nLnN5bWJvbCA9PT0gdGhpcy5zZWxlY3RlZExhbmd1YWdlKTtcclxuICAgIGNvbnN0IGxhbmdDb2RlID0gYWN0dWFsTGFuZz8ubENvZGU7XHJcbiAgICBjb25zdCBzdXBwb3J0c0xhbmdDb2RlID0gaXRlbVVybD8uZW5kc1dpdGg/LignLmN0JykgJiYgbGFuZ0NvZGU7XHJcbiAgICBpZiAoaXRlbT8ucXVlcnlQYXJhbXMgfHwgc3VwcG9ydHNMYW5nQ29kZSkge1xyXG4gICAgICBpdGVtVXJsID0gaXRlbVVybCArICc/JztcclxuICAgICAgaWYgKHN1cHBvcnRzTGFuZ0NvZGUpIHtcclxuICAgICAgICBpdGVtVXJsID0gaXRlbVVybCArICdMPScgKyBsYW5nQ29kZTtcclxuICAgICAgICBpZiAoaXRlbT8ucXVlcnlQYXJhbXMpIHtcclxuICAgICAgICAgIGl0ZW1VcmwgPSBpdGVtVXJsICsgJyYnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbT8ucXVlcnlQYXJhbXMpIHtcclxuICAgICAgICBpdGVtVXJsID0gaXRlbVVybCArIGl0ZW0ucXVlcnlQYXJhbXM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtVXJsO1xyXG4gIH1cclxuXHJcbiAgX2dldE1lbnVJdGVtcygpIHtcclxuICAgIGNvbnN0IG1lbnVJdGVtc0xpc3RGaWx0ZXJlZCA9IHRoaXMuaXNFbWJlZGRlZCA/IHRoaXMuX21lbnVJdGVtc0xpc3Quc2xpY2UoMCwtMykgOiB0aGlzLl9tZW51SXRlbXNMaXN0O1xyXG4gICAgcmV0dXJuIG1lbnVJdGVtc0xpc3RGaWx0ZXJlZC5tYXAoIChpdGVtKSA9PiB7XHJcblxyXG4gICAgICBpZiAodGhpcy5faXNIaWRkZW4oaXRlbSkgfHwgKGl0ZW0uY2hlY2tTdGF0ZSAmJiAhdGhpc1soaXRlbS5jaGVja1N0YXRlIGFzIGtleW9mIEJpbXBsdXNVc2VyTWVudUNvbXBvbmVudCldKSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gaXRlbTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgX2dldExhbmdJZChsYW5nOiBMYW5nSXRlbSB8IHVuZGVmaW5lZCkge1xyXG4gICAgcmV0dXJuIFwicG9ydGFsTGFuZ3VhZ2VcIiArIGxhbmc/LnN5bWJvbC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGxhbmc/LnN5bWJvbC5zbGljZSgxKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBbYXR0ci5rZXldPVwiJ2JpbWNvbXBPdmVybGF5J1wiIGNsYXNzPVwiYmltY29tcC1vdmVybGF5XCIgW25nQ2xhc3NdPVwiX21lbnVPcGVuZWQgPyAnb3BlbicgOiAnJ1wiXHJcbiAgKGNsaWNrKT1cIl90b2dnbGVPcGVuZWQoKVwiPjwvZGl2PlxyXG48ZGl2IFthdHRyLmtleV09XCIndXNlck1lbnUnXCIgY2xhc3M9XCJkcm9wZG93blwiIFtuZ0NsYXNzXT1cIl9tZW51T3BlbmVkID8gJ29wZW4nIDogJydcIj5cclxuICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tdG9nZ2xlXCIgW3RpdGxlXT1cImJ1dHRvblRpdGxlID8gYnV0dG9uVGl0bGUgOiAnJ1wiIChjbGljayk9XCJfdG9nZ2xlT3BlbmVkKClcIj5cclxuICAgIDxpbWcgY2xhc3M9XCJ1c2VyLXBob3RvXCIgc3JjPVwie3t1c2VyUGhvdG9VcmwgPyB1c2VyUGhvdG9VcmwgOiAnJ319XCIgYWx0PVwie3tidXR0b25UaXRsZSA/IGJ1dHRvblRpdGxlIDogJyd9fVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInVzZXItbmFtZVwiPlxyXG4gICAgICBAaWYgKCFpc1RvdWNoKSB7XHJcbiAgICAgIHt7IHVzZXJOYW1lIH19XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgPHNwYW4gY2xhc3M9XCJjYXJldFwiPjwvc3Bhbj5cclxuICA8L2Rpdj5cclxuICA8dWwgY2xhc3M9XCJiaW1jb21wLWRyb3Bkb3duLW1lbnVcIiBbbmdDbGFzc109XCJfbWVudU9wZW5lZCA/ICdvcGVuJyA6ICcnXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9nZXRNZW51SXRlbXMoKTsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICA8bGkgKm5nSWY9XCJpdGVtXCIgW2F0dHIua2V5XT1cIml0ZW0uaWRcIiBbYXR0ci5yb2xlXT1cIml0ZW0udHlwZSA9PT0gJ2RpdmlkZXInID8gJ3NlcGFyYXRvcicgOiAnJ1wiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAnZGl2aWRlcic6IGl0ZW0udHlwZSA9PT0gJ2RpdmlkZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICdsYW5ndWFnZU1lbnVJdGVtJzogaXRlbS5hY3Rpb24gPT09ICdzdWJtZW51JyxcclxuICAgICAgICAgICAgICAgICAgICAnc3VibWVudS1oaWRkZW4nIDogKCFpdGVtLnVybCB8fCBpdGVtLnVybC5zbGljZSgwLDIpID09PSAnIy8nKSAmJiBpdGVtLmFjdGlvbiAhPT0gJ3N1Ym1lbnUnXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiIChjbGljayk9XCJfbWVudUl0ZW1DbGlja2VkKGl0ZW0sIGkpXCI+XHJcbiAgICAgICAgQGlmIChpdGVtLmFjdGlvbiA9PT0gJ3N1Ym1lbnUnKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1Ym1lbnUgYXJyb3dcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NcIj48L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCIgW25nQ2xhc3NdPVwiaXRlbS50ZXh0Q2xhc3MgPyBpdGVtLnRleHRDbGFzcyA6ICcnXCI+XHJcbiAgICAgICAgICB7e2l0ZW0udGV4dElkIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxhbmd1YWdlc1N1Ym1lbnVcIiBbbmdDbGFzc109XCJfbGFuZ3VhZ2VzTWVudU9wZW5lZCA/ICdvcGVuJyA6ICcnXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFuZ3VhZ2VTdWJtZW51SXRlbXNcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbGFuZyBvZiBfbGFuZ3VhZ2VzTGlzdFwiIFthdHRyLmtleV09XCJfZ2V0TGFuZ0lkKGxhbmcpXCIgaWQ9XCJ7e19nZXRMYW5nSWQobGFuZyl9fVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsYW5ndWFnZVN1Ym1lbnVJdGVtXCIgW25nQ2xhc3NdPVwibGFuZy5zeW1ib2wgPT09IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA/ICdzZWxlY3RlZCcgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIl9zd2l0Y2hMYW5ndWFnZShsYW5nLnN5bWJvbClcIj5cclxuICAgICAgICAgICAgICB7e2xhbmcudGV4dH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfSBAZWxzZSBpZiAoIWl0ZW0udXJsIHx8IGl0ZW0udXJsLnNsaWNlKDAsMikgPT09IFwiIy9cIikge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCIgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc1wiPjwvZGl2PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIiBbbmdDbGFzc109XCJpdGVtLnRleHRDbGFzcyA/IGl0ZW0udGV4dENsYXNzIDogJydcIj5cclxuICAgICAgICAgIHt7aXRlbS50ZXh0SWQgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICB9IEBlbHNlIGlmICghaXRlbS50eXBlIHx8IGl0ZW0udHlwZSAhPT0gXCJkaXZpZGVyXCIpIHtcclxuICAgICAgICA8YSBocmVmPVwie3sgX2J1aWxkVXJsKGl0ZW0pIH19XCIgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cInN1Ym1lbnUtaGlkZGVuXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NcIj48L2Rpdj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIiBbbmdDbGFzc109XCJpdGVtLnRleHRDbGFzcyA/IGl0ZW0udGV4dENsYXNzIDogJydcIj5cclxuICAgICAgICAgICAge3tpdGVtLnRleHRJZCB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9saT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvdWw+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -3371,11 +3371,13 @@ class BimplusToolHubComponent extends BimplusLocalizedWidgetComponent {
3371
3371
  }
3372
3372
  set items(value) {
3373
3373
  this._items = value;
3374
- const buttonsLength = ((this._items?.length) > 0) ? this._items.length : 1;
3374
+ const buttonsLength = (this._items?.length) > 0 ? this._items.length : 1;
3375
3375
  const rootStyle = document?.documentElement?.style;
3376
3376
  if (rootStyle) {
3377
3377
  const menuItems = rootStyle.getPropertyValue("--menu-items");
3378
- parseInt(menuItems) != buttonsLength && rootStyle.setProperty("--menu-items", buttonsLength.toString());
3378
+ if (parseInt(menuItems) !== buttonsLength) {
3379
+ rootStyle.setProperty("--menu-items", buttonsLength.toString());
3380
+ }
3379
3381
  }
3380
3382
  // Transfer disabled states, which can defined by host app
3381
3383
  this.setItemStates(this._itemStates);