ngx-bimplus-components 0.0.84-draggable-1 → 0.0.84-draggable-2

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.
@@ -30,7 +30,7 @@ export class BimplusFloatingBarHideObjectsComponent extends BimplusLocalizedWidg
30
30
  this.focusSelectorId = 'hide-menu-id';
31
31
  this.layoutManagerService = layoutManagerService;
32
32
  }
33
- ngOnInit() {
33
+ ngAfterViewInit() {
34
34
  // Subscribe to the observable
35
35
  this.layoutManagerService.registerObject(this.element, this.componentId, '.floating-panel.visible', true, DEFAULT_POSITION_LEFT, DEFAULT_POSITION_TOP);
36
36
  }
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
56
56
  }], items: [{
57
57
  type: Input
58
58
  }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1mbG9hdGluZy1iYXItaGlkZS1vYmplY3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtZmxvYXRpbmctYmFyLWhpZGUtb2JqZWN0cy9iaW1wbHVzLWZsb2F0aW5nLWJhci1oaWRlLW9iamVjdHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbG9hdGluZy1iYXItaGlkZS1vYmplY3RzL2JpbXBsdXMtZmxvYXRpbmctYmFyLWhpZGUtb2JqZWN0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUF3QyxNQUFNLGVBQWUsQ0FBQztBQUNoSSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFBO0FBQ2xILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQzVILE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLHNGQUFzRixDQUFDO0FBQ2hKLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLGdGQUFnRixDQUFDOzs7OztBQUt2SSxNQUFNLHFCQUFxQixHQUFFLEdBQUcsQ0FBQztBQUNqQyxNQUFNLG9CQUFvQixHQUFFLEdBQUcsQ0FBQztBQWlCaEMsTUFBTSxPQUFPLHNDQUF1QyxTQUFRLCtCQUErQjtJQWlCekYsWUFBWSxnQkFBa0MsRUFDNUMsb0JBQTBDLEVBQ2xDLE9BQW1CLEVBQ25CLEdBQXNCLEVBQ3RCLHFCQUEyQztRQUVyRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUpkLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFzQjtRQW5CM0Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzVDLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFDdkIsY0FBUyxHQUFZLElBQUksQ0FBQztRQUNuQyw2Q0FBNkM7UUFDcEMsVUFBSyxHQUEyQixFQUFFLENBQUM7UUFFcEMsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFJeEMsZ0JBQVcsR0FBRyxpQkFBaUIsQ0FBQTtRQUMvQixTQUFJLEdBQUcsbUJBQW1CLENBQUM7UUFDM0IsVUFBSyxHQUFXLEVBQUUsQ0FBQyxDQUFDLCtCQUErQjtRQUNuRCxvQkFBZSxHQUFXLGNBQWMsQ0FBQztRQVN6QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7SUFDakQsQ0FBQztJQUdELFFBQVE7UUFDTiw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMseUJBQXlCLEVBQUMsSUFBSSxFQUFDLHFCQUFxQixFQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDcEosQ0FBQzsrR0EvQlUsc0NBQXNDO21HQUF0QyxzQ0FBc0MsdU1BTHRDLENBQUMsZ0JBQWdCLENBQUMsaURDekIvQixnc0NBcUNBLHl5a0JEbkJJLFlBQVksK0JBQ1osMkJBQTJCLDJLQUMzQixrQ0FBa0Msa0hBQ2xDLHdDQUF3Qyw4SkFDeEMscUNBQXFDLHNJQUNyQyxlQUFlOzs0RkFPTixzQ0FBc0M7a0JBaEJsRCxTQUFTOytCQUNFLHVDQUF1QyxjQUNyQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWiwyQkFBMkI7d0JBQzNCLGtDQUFrQzt3QkFDbEMsd0NBQXdDO3dCQUN4QyxxQ0FBcUM7d0JBQ3JDLGVBQWU7cUJBQ2hCLGFBQ1UsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFHZCxpQkFBaUIsQ0FBQyxTQUFTO3FOQUloQyxhQUFhO3NCQUF0QixNQUFNO2dCQUNFLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbixFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSBcIi4vLi4vYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0L2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC5jb21wb25lbnRcIlxyXG5pbXBvcnQgeyBCaW1wbHVzRmxvYXRpbmdCYXJDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWZsb2F0aW5nLWJhci9iaW1wbHVzLWZsb2F0aW5nLWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzRmxvYXRpbmdCYXJEcmFnZ2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1mbG9hdGluZy1iYXItZHJhZ2dlci9iaW1wbHVzLWZsb2F0aW5nLWJhci1kcmFnZ2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJpbXBsdXNGbG9hdGluZ0JhckhlYWRlckNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItY29udGVudC9iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItY29udGVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzRmxvYXRpbmdCYXJIZWFkZXJMb2dvQ29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28vYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmxvYXRpbmdCYXJJdGVtIH0gZnJvbSAnLi4vYmltcGx1cy1mbG9hdGluZy1iYXIvYmltcGx1cy1mbG9hdGluZy1iYXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgTGF5b3V0TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sYXlvdXQtbWFuYWdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzaXplLW9ic2VydmVyLnNlcnZpY2UnO1xyXG5cclxuY29uc3QgREVGQVVMVF9QT1NJVElPTl9MRUZUID0zNTU7XHJcbmNvbnN0IERFRkFVTFRfUE9TSVRJT05fVE9QID0zNTU7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWJpbXBsdXMtZmxvYXRpbmctYmFyLWhpZGUtb2JqZWN0cycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBCaW1wbHVzRmxvYXRpbmdCYXJDb21wb25lbnQsXHJcbiAgICBCaW1wbHVzRmxvYXRpbmdCYXJEcmFnZ2VyQ29tcG9uZW50LFxyXG4gICAgQmltcGx1c0Zsb2F0aW5nQmFySGVhZGVyQ29udGVudENvbXBvbmVudCxcclxuICAgIEJpbXBsdXNGbG9hdGluZ0JhckhlYWRlckxvZ29Db21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtUcmFuc2xhdGVTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy1mbG9hdGluZy1iYXItaGlkZS1vYmplY3RzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYmltcGx1cy1mbG9hdGluZy1iYXItaGlkZS1vYmplY3RzLmNvbXBvbmVudC5sZXNzJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb21cclxufSlcclxuZXhwb3J0IGNsYXNzIEJpbXBsdXNGbG9hdGluZ0JhckhpZGVPYmplY3RzQ29tcG9uZW50IGV4dGVuZHMgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgXHJcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBASW5wdXQoKSBub0JvZHk6IGJvb2xlYW4gPSB0cnVlOyAgXHJcbiAgQElucHV0KCkgaXNGb2N1c2VkOiBib29sZWFuID0gdHJ1ZTtcclxuICAvLyBJdGVtcyBmb3IgdGhlIGhlYWRlciBjb250ZW50IHN1YiBjb21wb25lbnRcclxuICBASW5wdXQoKSBpdGVtczogQXJyYXk8RmxvYXRpbmdCYXJJdGVtPiA9IFtdO1xyXG5cclxuICBwcml2YXRlIGhhc1ZpZXdDaGVja2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIGxheW91dE1hbmFnZXJTZXJ2aWNlOiBMYXlvdXRNYW5hZ2VyU2VydmljZTtcclxuXHJcblxyXG4gIGNvbXBvbmVudElkID0gJ2hpZGUtbWVudS1mcC1pZCdcclxuICBpY29uID0gJ3VpLWljb24taGlkZS1tZW51JztcclxuICB0aXRsZTogc3RyaW5nID0gXCJcIjsgLy8gbm8gdG9vbHRpcCBpbmZvIG9uIExvZ28gaWNvblxyXG4gIGZvY3VzU2VsZWN0b3JJZDogc3RyaW5nID0gJ2hpZGUtbWVudS1pZCc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBsYXlvdXRNYW5hZ2VyU2VydmljZTogTGF5b3V0TWFuYWdlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyU2VydmljZTpSZXNpemVPYnNlcnZlclNlcnZpY2VcclxuICAgICApeyAgICBcclxuICBzdXBlcih0cmFuc2xhdGVTZXJ2aWNlKTtcclxuICB0aGlzLmxheW91dE1hbmFnZXJTZXJ2aWNlID0gbGF5b3V0TWFuYWdlclNlcnZpY2U7XHJcbiAgfVxyXG4gIFxyXG4gIFxyXG4gIG5nT25Jbml0KCk6dm9pZHtcclxuICAgIC8vIFN1YnNjcmliZSB0byB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5yZWdpc3Rlck9iamVjdCh0aGlzLmVsZW1lbnQsdGhpcy5jb21wb25lbnRJZCwnLmZsb2F0aW5nLXBhbmVsLnZpc2libGUnLHRydWUsREVGQVVMVF9QT1NJVElPTl9MRUZULERFRkFVTFRfUE9TSVRJT05fVE9QKTsgICAgXHJcbiAgfSAgXHJcbn1cclxuIiwiPGxpYi1iaW1wbHVzLWZsb2F0aW5nLWJhclxyXG4gIGlkPVwiaGlkZS1tZW51LWZwLWlkXCJcclxuICBbaWRdID0gXCJjb21wb25lbnRJZFwiXHJcbiAgY2xhc3M9XCJoaWRlLW1lbnVcIlxyXG4gIFtub0JvZHldPVwibm9Cb2R5XCJcclxuICBbaXNGb2N1c2VkXT1cImlzRm9jdXNlZFwiXHJcbiAgW3Jlc2l6ZUVuYWJsZWRdPVwiZmFsc2VcIlxyXG4gIFtmb2N1c1NlbGVjdG9yXT1cImZvY3VzU2VsZWN0b3JJZFwiXHJcbiAgW2lzVmlzaWJsZV09XCJ0cnVlXCJcclxuICBbc2VsZWN0ZWRMYW5ndWFnZV09XCJzZWxlY3RlZExhbmd1YWdlXCJcclxuICBbbG9jYWxpemVkU3RyaW5nc109XCJsb2NhbGl6ZWRTdHJpbmdzXCIgIFxyXG4+XHJcbiAgPGxpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItbG9nb1xyXG4gICAgY2xhc3M9XCJmbG9hdGluZy1iYXItaGVhZGVyLWxvZ29cIlxyXG4gICAgW3BhcmVudElkXSA9IFwiY29tcG9uZW50SWRcIlxyXG4gICAgW2ljb25dPVwiaWNvblwiXHJcbiAgICBbc2VsZWN0ZWRMYW5ndWFnZV09XCJzZWxlY3RlZExhbmd1YWdlXCJcclxuICAgIFtsb2NhbGl6ZWRTdHJpbmdzXT1cImxvY2FsaXplZFN0cmluZ3NcIlxyXG4gID5cclxuICA8L2xpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItbG9nbz5cclxuXHJcbiAgPGxpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItY29udGVudFxyXG4gICAgW3NlbGVjdGVkTGFuZ3VhZ2VdPVwic2VsZWN0ZWRMYW5ndWFnZVwiXHJcbiAgICBbbG9jYWxpemVkU3RyaW5nc109XCJsb2NhbGl6ZWRTdHJpbmdzXCJcclxuICAgIFtwYXJlbnRJZF0gPSBcImNvbXBvbmVudElkXCJcclxuICAgIGNsYXNzPVwiZmxvYXRpbmctYmFyLWhlYWRlci1jb250ZW50XCJcclxuICAgIFtpdGVtc109XCJpdGVtc1wiICAgIFxyXG4gICAgKGFjdGlvbkNsaWNrZWQpPVwiYWN0aW9uQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gID5cclxuICA8L2xpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItY29udGVudD5cclxuXHJcbiAgPGxpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1kcmFnZ2VyXHJcbiAgICBjbGFzcz1cImZsb2F0aW5nLWJhci1kcmFnZ2VyXCIgICAgXHJcbiAgICBbcGFyZW50SWRdID0gXCJjb21wb25lbnRJZFwiXHJcbiAgPlxyXG4gIDwvbGliLWJpbXBsdXMtZmxvYXRpbmctYmFyLWRyYWdnZXI+XHJcbjwvbGliLWJpbXBsdXMtZmxvYXRpbmctYmFyPlxyXG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1mbG9hdGluZy1iYXItaGlkZS1vYmplY3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtZmxvYXRpbmctYmFyLWhpZGUtb2JqZWN0cy9iaW1wbHVzLWZsb2F0aW5nLWJhci1oaWRlLW9iamVjdHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbG9hdGluZy1iYXItaGlkZS1vYmplY3RzL2JpbXBsdXMtZmxvYXRpbmctYmFyLWhpZGUtb2JqZWN0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUN2SSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFBO0FBQ2xILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQzVILE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLHNGQUFzRixDQUFDO0FBQ2hKLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLGdGQUFnRixDQUFDOzs7OztBQUt2SSxNQUFNLHFCQUFxQixHQUFFLEdBQUcsQ0FBQztBQUNqQyxNQUFNLG9CQUFvQixHQUFFLEdBQUcsQ0FBQztBQWlCaEMsTUFBTSxPQUFPLHNDQUF1QyxTQUFRLCtCQUErQjtJQWlCekYsWUFBWSxnQkFBa0MsRUFDNUMsb0JBQTBDLEVBQ2xDLE9BQW1CLEVBQ25CLEdBQXNCLEVBQ3RCLHFCQUEyQztRQUVyRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUpkLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFzQjtRQW5CM0Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzVDLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFDdkIsY0FBUyxHQUFZLElBQUksQ0FBQztRQUNuQyw2Q0FBNkM7UUFDcEMsVUFBSyxHQUEyQixFQUFFLENBQUM7UUFFcEMsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFJeEMsZ0JBQVcsR0FBRyxpQkFBaUIsQ0FBQTtRQUMvQixTQUFJLEdBQUcsbUJBQW1CLENBQUM7UUFDM0IsVUFBSyxHQUFXLEVBQUUsQ0FBQyxDQUFDLCtCQUErQjtRQUNuRCxvQkFBZSxHQUFXLGNBQWMsQ0FBQztRQVN6QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7SUFDakQsQ0FBQztJQUdELGVBQWU7UUFDYiw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMseUJBQXlCLEVBQUMsSUFBSSxFQUFDLHFCQUFxQixFQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDcEosQ0FBQzsrR0EvQlUsc0NBQXNDO21HQUF0QyxzQ0FBc0MsdU1BTHRDLENBQUMsZ0JBQWdCLENBQUMsaURDekIvQixnc0NBcUNBLHl5a0JEbkJJLFlBQVksK0JBQ1osMkJBQTJCLDJLQUMzQixrQ0FBa0Msa0hBQ2xDLHdDQUF3Qyw4SkFDeEMscUNBQXFDLHNJQUNyQyxlQUFlOzs0RkFPTixzQ0FBc0M7a0JBaEJsRCxTQUFTOytCQUNFLHVDQUF1QyxjQUNyQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWiwyQkFBMkI7d0JBQzNCLGtDQUFrQzt3QkFDbEMsd0NBQXdDO3dCQUN4QyxxQ0FBcUM7d0JBQ3JDLGVBQWU7cUJBQ2hCLGFBQ1UsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFHZCxpQkFBaUIsQ0FBQyxTQUFTO3FOQUloQyxhQUFhO3NCQUF0QixNQUFNO2dCQUNFLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbixFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlLCBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudCB9IGZyb20gXCIuLy4uL2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQuY29tcG9uZW50XCJcclxuaW1wb3J0IHsgQmltcGx1c0Zsb2F0aW5nQmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1mbG9hdGluZy1iYXIvYmltcGx1cy1mbG9hdGluZy1iYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmltcGx1c0Zsb2F0aW5nQmFyRHJhZ2dlckNvbXBvbmVudCB9IGZyb20gJy4uL2JpbXBsdXMtZmxvYXRpbmctYmFyLWRyYWdnZXIvYmltcGx1cy1mbG9hdGluZy1iYXItZHJhZ2dlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzRmxvYXRpbmdCYXJIZWFkZXJDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWNvbnRlbnQvYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWNvbnRlbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmltcGx1c0Zsb2F0aW5nQmFySGVhZGVyTG9nb0NvbXBvbmVudCB9IGZyb20gJy4uL2JpbXBsdXMtZmxvYXRpbmctYmFyLWhlYWRlci1sb2dvL2JpbXBsdXMtZmxvYXRpbmctYmFyLWhlYWRlci1sb2dvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZsb2F0aW5nQmFySXRlbSB9IGZyb20gJy4uL2JpbXBsdXMtZmxvYXRpbmctYmFyL2JpbXBsdXMtZmxvYXRpbmctYmFyLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IExheW91dE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LW1hbmFnZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlc2l6ZU9ic2VydmVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc2l6ZS1vYnNlcnZlci5zZXJ2aWNlJztcclxuXHJcbmNvbnN0IERFRkFVTFRfUE9TSVRJT05fTEVGVCA9MzU1O1xyXG5jb25zdCBERUZBVUxUX1BPU0lUSU9OX1RPUCA9MzU1O1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1oaWRlLW9iamVjdHMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQmltcGx1c0Zsb2F0aW5nQmFyQ29tcG9uZW50LFxyXG4gICAgQmltcGx1c0Zsb2F0aW5nQmFyRHJhZ2dlckNvbXBvbmVudCxcclxuICAgIEJpbXBsdXNGbG9hdGluZ0JhckhlYWRlckNvbnRlbnRDb21wb25lbnQsXHJcbiAgICBCaW1wbHVzRmxvYXRpbmdCYXJIZWFkZXJMb2dvQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbVHJhbnNsYXRlU2VydmljZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JpbXBsdXMtZmxvYXRpbmctYmFyLWhpZGUtb2JqZWN0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JpbXBsdXMtZmxvYXRpbmctYmFyLWhpZGUtb2JqZWN0cy5jb21wb25lbnQubGVzcycsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uU2hhZG93RG9tXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCaW1wbHVzRmxvYXRpbmdCYXJIaWRlT2JqZWN0c0NvbXBvbmVudCBleHRlbmRzIEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBcclxuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBJbnB1dCgpIG5vQm9keTogYm9vbGVhbiA9IHRydWU7ICBcclxuICBASW5wdXQoKSBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIC8vIEl0ZW1zIGZvciB0aGUgaGVhZGVyIGNvbnRlbnQgc3ViIGNvbXBvbmVudFxyXG4gIEBJbnB1dCgpIGl0ZW1zOiBBcnJheTxGbG9hdGluZ0Jhckl0ZW0+ID0gW107XHJcblxyXG4gIHByaXZhdGUgaGFzVmlld0NoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcm90ZWN0ZWQgbGF5b3V0TWFuYWdlclNlcnZpY2U6IExheW91dE1hbmFnZXJTZXJ2aWNlO1xyXG5cclxuXHJcbiAgY29tcG9uZW50SWQgPSAnaGlkZS1tZW51LWZwLWlkJ1xyXG4gIGljb24gPSAndWktaWNvbi1oaWRlLW1lbnUnO1xyXG4gIHRpdGxlOiBzdHJpbmcgPSBcIlwiOyAvLyBubyB0b29sdGlwIGluZm8gb24gTG9nbyBpY29uXHJcbiAgZm9jdXNTZWxlY3RvcklkOiBzdHJpbmcgPSAnaGlkZS1tZW51LWlkJztcclxuXHJcbiAgY29uc3RydWN0b3IodHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIGxheW91dE1hbmFnZXJTZXJ2aWNlOiBMYXlvdXRNYW5hZ2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXJTZXJ2aWNlOlJlc2l6ZU9ic2VydmVyU2VydmljZVxyXG4gICAgICl7ICAgIFxyXG4gIHN1cGVyKHRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gIHRoaXMubGF5b3V0TWFuYWdlclNlcnZpY2UgPSBsYXlvdXRNYW5hZ2VyU2VydmljZTtcclxuICB9XHJcbiAgXHJcbiAgXHJcbiAgbmdBZnRlclZpZXdJbml0KCl7XHJcbiAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIG9ic2VydmFibGVcclxuICAgIHRoaXMubGF5b3V0TWFuYWdlclNlcnZpY2UucmVnaXN0ZXJPYmplY3QodGhpcy5lbGVtZW50LHRoaXMuY29tcG9uZW50SWQsJy5mbG9hdGluZy1wYW5lbC52aXNpYmxlJyx0cnVlLERFRkFVTFRfUE9TSVRJT05fTEVGVCxERUZBVUxUX1BPU0lUSU9OX1RPUCk7ICAgIFxyXG4gIH0gICAgXHJcbn1cclxuIiwiPGxpYi1iaW1wbHVzLWZsb2F0aW5nLWJhclxyXG4gIGlkPVwiaGlkZS1tZW51LWZwLWlkXCJcclxuICBbaWRdID0gXCJjb21wb25lbnRJZFwiXHJcbiAgY2xhc3M9XCJoaWRlLW1lbnVcIlxyXG4gIFtub0JvZHldPVwibm9Cb2R5XCJcclxuICBbaXNGb2N1c2VkXT1cImlzRm9jdXNlZFwiXHJcbiAgW3Jlc2l6ZUVuYWJsZWRdPVwiZmFsc2VcIlxyXG4gIFtmb2N1c1NlbGVjdG9yXT1cImZvY3VzU2VsZWN0b3JJZFwiXHJcbiAgW2lzVmlzaWJsZV09XCJ0cnVlXCJcclxuICBbc2VsZWN0ZWRMYW5ndWFnZV09XCJzZWxlY3RlZExhbmd1YWdlXCJcclxuICBbbG9jYWxpemVkU3RyaW5nc109XCJsb2NhbGl6ZWRTdHJpbmdzXCIgIFxyXG4+XHJcbiAgPGxpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItbG9nb1xyXG4gICAgY2xhc3M9XCJmbG9hdGluZy1iYXItaGVhZGVyLWxvZ29cIlxyXG4gICAgW3BhcmVudElkXSA9IFwiY29tcG9uZW50SWRcIlxyXG4gICAgW2ljb25dPVwiaWNvblwiXHJcbiAgICBbc2VsZWN0ZWRMYW5ndWFnZV09XCJzZWxlY3RlZExhbmd1YWdlXCJcclxuICAgIFtsb2NhbGl6ZWRTdHJpbmdzXT1cImxvY2FsaXplZFN0cmluZ3NcIlxyXG4gID5cclxuICA8L2xpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItbG9nbz5cclxuXHJcbiAgPGxpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItY29udGVudFxyXG4gICAgW3NlbGVjdGVkTGFuZ3VhZ2VdPVwic2VsZWN0ZWRMYW5ndWFnZVwiXHJcbiAgICBbbG9jYWxpemVkU3RyaW5nc109XCJsb2NhbGl6ZWRTdHJpbmdzXCJcclxuICAgIFtwYXJlbnRJZF0gPSBcImNvbXBvbmVudElkXCJcclxuICAgIGNsYXNzPVwiZmxvYXRpbmctYmFyLWhlYWRlci1jb250ZW50XCJcclxuICAgIFtpdGVtc109XCJpdGVtc1wiICAgIFxyXG4gICAgKGFjdGlvbkNsaWNrZWQpPVwiYWN0aW9uQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gID5cclxuICA8L2xpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItY29udGVudD5cclxuXHJcbiAgPGxpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1kcmFnZ2VyXHJcbiAgICBjbGFzcz1cImZsb2F0aW5nLWJhci1kcmFnZ2VyXCIgICAgXHJcbiAgICBbcGFyZW50SWRdID0gXCJjb21wb25lbnRJZFwiXHJcbiAgPlxyXG4gIDwvbGliLWJpbXBsdXMtZmxvYXRpbmctYmFyLWRyYWdnZXI+XHJcbjwvbGliLWJpbXBsdXMtZmxvYXRpbmctYmFyPlxyXG4iXX0=
@@ -28,7 +28,7 @@ export class BimplusFloatingBarIsolationObjectsComponent extends BimplusLocalize
28
28
  this.focusSelectorId = 'isolation-menu-id';
29
29
  this.componentId = 'isolation-menu-fp-id';
30
30
  }
31
- ngOnInit() {
31
+ ngAfterViewInit() {
32
32
  this.layoutManagerService.registerObject(this.element, this.componentId, '.floating-panel.visible', true, DEFAULT_POSITION_LEFT, DEFAULT_POSITION_TOP);
33
33
  }
34
34
  ngAfterViewChecked() {
@@ -62,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
62
62
  }], items: [{
63
63
  type: Input
64
64
  }] } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1mbG9hdGluZy1iYXItaXNvbGF0aW9uLW9iamVjdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbG9hdGluZy1iYXItaXNvbGF0aW9uLW9iamVjdHMvYmltcGx1cy1mbG9hdGluZy1iYXItaXNvbGF0aW9uLW9iamVjdHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbG9hdGluZy1iYXItaXNvbGF0aW9uLW9iamVjdHMvYmltcGx1cy1mbG9hdGluZy1iYXItaXNvbGF0aW9uLW9iamVjdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBMkQsTUFBTSxlQUFlLENBQUM7QUFDbkosT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQTtBQUNsSCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNyRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUM1SCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxzRkFBc0YsQ0FBQztBQUNoSixPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7OztBQUl2SSxNQUFNLHFCQUFxQixHQUFFLEdBQUcsQ0FBQztBQUNqQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQW1CakMsTUFBTSxPQUFPLDJDQUE0QyxTQUFRLCtCQUErQjtJQUM5RixZQUFZLGdCQUFrQyxFQUMxQixvQkFBMEMsRUFDMUMsT0FBbUIsRUFDbkIsR0FBc0I7UUFDeEMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFITix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFJbEMsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFHOUIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTVDLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFDdkIsY0FBUyxHQUFZLElBQUksQ0FBQztRQUVuQyw2Q0FBNkM7UUFDcEMsVUFBSyxHQUEyQixFQUFFLENBQUM7UUFFNUMsU0FBSSxHQUFHLHdCQUF3QixDQUFDO1FBQ2hDLFVBQUssR0FBVyxFQUFFLENBQUMsQ0FBQywrQkFBK0I7UUFDbkQsb0JBQWUsR0FBVyxtQkFBbUIsQ0FBQztRQUM5QyxnQkFBVyxHQUFHLHNCQUFzQixDQUFDO0lBZnJDLENBQUM7SUFnQkQsUUFBUTtRQUNOLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsV0FBVyxFQUFDLHlCQUF5QixFQUFDLElBQUksRUFBQyxxQkFBcUIsRUFBQyxvQkFBb0IsQ0FBRSxDQUFDO0lBQ3JKLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxDQUFDLDZDQUE2QztZQUN6RSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsK0JBQStCO1lBQ3pELFVBQVUsQ0FBQyxHQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLHlCQUF5QixFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pHLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7K0dBbkNVLDJDQUEyQzttR0FBM0MsMkNBQTJDLDRNQU4zQyxDQUFDLGdCQUFnQixDQUFDLGlEQzFCL0Isc3NDQXFDQSx5eWtCRGxCSSxZQUFZLCtCQUNaLDJCQUEyQiwyS0FDM0Isa0NBQWtDLGtIQUNsQyx3Q0FBd0MsOEpBQ3hDLHFDQUFxQyxzSUFDckMsZUFBZTs7NEZBUU4sMkNBQTJDO2tCQWpCdkQsU0FBUzsrQkFDRSw0Q0FBNEMsY0FDMUMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osMkJBQTJCO3dCQUMzQixrQ0FBa0M7d0JBQ2xDLHdDQUF3Qzt3QkFDeEMscUNBQXFDO3dCQUNyQyxlQUFlO3FCQUNoQixhQUNVLENBQUMsZ0JBQWdCLENBQUMsaUJBR2QsaUJBQWlCLENBQUMsU0FBUztpTEFjaEMsYUFBYTtzQkFBdEIsTUFBTTtnQkFFRSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gLEVsZW1lbnRSZWYsIEFmdGVyVmlld0NoZWNrZWQsIENoYW5nZURldGVjdG9yUmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSwgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSBcIi4vLi4vYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0L2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC5jb21wb25lbnRcIlxyXG5pbXBvcnQgeyBCaW1wbHVzRmxvYXRpbmdCYXJDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWZsb2F0aW5nLWJhci9iaW1wbHVzLWZsb2F0aW5nLWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzRmxvYXRpbmdCYXJEcmFnZ2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1mbG9hdGluZy1iYXItZHJhZ2dlci9iaW1wbHVzLWZsb2F0aW5nLWJhci1kcmFnZ2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJpbXBsdXNGbG9hdGluZ0JhckhlYWRlckNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItY29udGVudC9iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItY29udGVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzRmxvYXRpbmdCYXJIZWFkZXJMb2dvQ29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28vYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmxvYXRpbmdCYXJJdGVtIH0gZnJvbSAnLi4vYmltcGx1cy1mbG9hdGluZy1iYXIvYmltcGx1cy1mbG9hdGluZy1iYXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgTGF5b3V0TWFuYWdlclNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xheW91dC1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5cclxuY29uc3QgREVGQVVMVF9QT1NJVElPTl9MRUZUID0zNTU7XHJcbmNvbnN0IERFRkFVTFRfUE9TSVRJT05fVE9QID0gMzIwO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYmltcGx1cy1mbG9hdGluZy1iYXItaXNvbGF0aW9uLW9iamVjdHMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQmltcGx1c0Zsb2F0aW5nQmFyQ29tcG9uZW50LFxyXG4gICAgQmltcGx1c0Zsb2F0aW5nQmFyRHJhZ2dlckNvbXBvbmVudCxcclxuICAgIEJpbXBsdXNGbG9hdGluZ0JhckhlYWRlckNvbnRlbnRDb21wb25lbnQsXHJcbiAgICBCaW1wbHVzRmxvYXRpbmdCYXJIZWFkZXJMb2dvQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbVHJhbnNsYXRlU2VydmljZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JpbXBsdXMtZmxvYXRpbmctYmFyLWlzb2xhdGlvbi1vYmplY3RzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYmltcGx1cy1mbG9hdGluZy1iYXItaXNvbGF0aW9uLW9iamVjdHMuY29tcG9uZW50Lmxlc3MnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEJpbXBsdXNGbG9hdGluZ0Jhcklzb2xhdGlvbk9iamVjdHNDb21wb25lbnQgZXh0ZW5kcyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2Vke1xyXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsIFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgbGF5b3V0TWFuYWdlclNlcnZpY2U6IExheW91dE1hbmFnZXJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcclxuICAgICAgICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpeyAgICBcclxuICAgIHN1cGVyKHRyYW5zbGF0ZVNlcnZpY2UpOyAgICBcclxuICAgIFxyXG4gIH1cclxuICBwcml2YXRlIGhhc1ZpZXdDaGVja2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIFxyXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBJbnB1dCgpIG5vQm9keTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgaXNGb2N1c2VkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLy8gSXRlbXMgZm9yIHRoZSBoZWFkZXIgY29udGVudCBzdWIgY29tcG9uZW50XHJcbiAgQElucHV0KCkgaXRlbXM6IEFycmF5PEZsb2F0aW5nQmFySXRlbT4gPSBbXTtcclxuXHJcbiAgaWNvbiA9ICd1aS1pY29uLWlzb2xhdGlvbi1tZW51JztcclxuICB0aXRsZTogc3RyaW5nID0gXCJcIjsgLy8gbm8gdG9vbHRpcCBpbmZvIG9uIExvZ28gaWNvblxyXG4gIGZvY3VzU2VsZWN0b3JJZDogc3RyaW5nID0gJ2lzb2xhdGlvbi1tZW51LWlkJztcclxuICBjb21wb25lbnRJZCA9ICdpc29sYXRpb24tbWVudS1mcC1pZCc7XHJcbiAgbmdPbkluaXQoKTp2b2lke1xyXG4gICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5yZWdpc3Rlck9iamVjdCh0aGlzLmVsZW1lbnQsdGhpcy5jb21wb25lbnRJZCwnLmZsb2F0aW5nLXBhbmVsLnZpc2libGUnLHRydWUsREVGQVVMVF9QT1NJVElPTl9MRUZULERFRkFVTFRfUE9TSVRJT05fVE9QLCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICBpZiAoIXRoaXMuaGFzVmlld0NoZWNrZWQpIHtcclxuICAgICAgdGhpcy5oYXNWaWV3Q2hlY2tlZCA9IHRydWU7IC8vIFNldCB0aGUgZmxhZyB0byBwcmV2ZW50IHJlcGVhdGVkIGV4ZWN1dGlvblxyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7IC8vIFRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiAgICBcclxuICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgIHRoaXMubGF5b3V0TWFuYWdlclNlcnZpY2UuY2hlY2tQb3NpdGlvbih0aGlzLmNvbXBvbmVudElkLCcuZmxvYXRpbmctcGFuZWwudmlzaWJsZScsdW5kZWZpbmVkLDAsMCx0cnVlKTsgICAgICAgIFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGxpYi1iaW1wbHVzLWZsb2F0aW5nLWJhclxyXG4gIGlkPVwiaXNvbGF0aW9uLW1lbnUtZnAtaWRcIlxyXG4gIFtpZF0gPSBcImNvbXBvbmVudElkXCJcclxuICBjbGFzcz1cImlzb2xhdGlvbi1tZW51XCJcclxuICBbbm9Cb2R5XT1cIm5vQm9keVwiXHJcbiAgW2lzRm9jdXNlZF09XCJpc0ZvY3VzZWRcIlxyXG4gIFtyZXNpemVFbmFibGVkXT1cImZhbHNlXCJcclxuICBbZm9jdXNTZWxlY3Rvcl09XCJmb2N1c1NlbGVjdG9ySWRcIlxyXG4gIFtpc1Zpc2libGVdPVwidHJ1ZVwiXHJcbiAgW3NlbGVjdGVkTGFuZ3VhZ2VdPVwic2VsZWN0ZWRMYW5ndWFnZVwiXHJcbiAgW2xvY2FsaXplZFN0cmluZ3NdPVwibG9jYWxpemVkU3RyaW5nc1wiXHJcbj5cclxuICA8bGliLWJpbXBsdXMtZmxvYXRpbmctYmFyLWhlYWRlci1sb2dvXHJcbiAgICBjbGFzcz1cImZsb2F0aW5nLWJhci1oZWFkZXItbG9nb1wiXHJcbiAgICBbcGFyZW50SWRdID0gXCJjb21wb25lbnRJZFwiXHJcbiAgICBbaWNvbl09XCJpY29uXCJcclxuICAgIFtzZWxlY3RlZExhbmd1YWdlXT1cInNlbGVjdGVkTGFuZ3VhZ2VcIlxyXG4gICAgW2xvY2FsaXplZFN0cmluZ3NdPVwibG9jYWxpemVkU3RyaW5nc1wiXHJcbiAgICA+XHJcbiAgPC9saWItYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28+XHJcblxyXG4gIDxsaWItYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWNvbnRlbnRcclxuICAgIFtzZWxlY3RlZExhbmd1YWdlXT1cInNlbGVjdGVkTGFuZ3VhZ2VcIlxyXG4gICAgW2xvY2FsaXplZFN0cmluZ3NdPVwibG9jYWxpemVkU3RyaW5nc1wiXHJcbiAgICBbcGFyZW50SWRdID0gXCJjb21wb25lbnRJZFwiICAgIFxyXG4gICAgY2xhc3M9XCJmbG9hdGluZy1iYXItaGVhZGVyLWNvbnRlbnRcIlxyXG4gICAgW2l0ZW1zXT1cIml0ZW1zXCJcclxuICAgIChhY3Rpb25DbGlja2VkKT1cImFjdGlvbkNsaWNrZWQuZW1pdCgkZXZlbnQpXCJcclxuICA+XHJcbiAgPC9saWItYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWNvbnRlbnQ+XHJcblxyXG4gIDxsaWItYmltcGx1cy1mbG9hdGluZy1iYXItZHJhZ2dlclxyXG4gICAgY2xhc3M9XCJmbG9hdGluZy1iYXItZHJhZ2dlclwiXHJcbiAgICBbcGFyZW50SWRdID0gXCJjb21wb25lbnRJZFwiXHJcbiAgPlxyXG4gIDwvbGliLWJpbXBsdXMtZmxvYXRpbmctYmFyLWRyYWdnZXI+XHJcbjwvbGliLWJpbXBsdXMtZmxvYXRpbmctYmFyPlxyXG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1mbG9hdGluZy1iYXItaXNvbGF0aW9uLW9iamVjdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbG9hdGluZy1iYXItaXNvbGF0aW9uLW9iamVjdHMvYmltcGx1cy1mbG9hdGluZy1iYXItaXNvbGF0aW9uLW9iamVjdHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbG9hdGluZy1iYXItaXNvbGF0aW9uLW9iamVjdHMvYmltcGx1cy1mbG9hdGluZy1iYXItaXNvbGF0aW9uLW9iamVjdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBa0UsTUFBTSxlQUFlLENBQUM7QUFDMUosT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQTtBQUNsSCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNyRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUM1SCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxzRkFBc0YsQ0FBQztBQUNoSixPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7OztBQUl2SSxNQUFNLHFCQUFxQixHQUFFLEdBQUcsQ0FBQztBQUNqQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQW1CakMsTUFBTSxPQUFPLDJDQUE0QyxTQUFRLCtCQUErQjtJQUM5RixZQUFZLGdCQUFrQyxFQUMxQixvQkFBMEMsRUFDMUMsT0FBbUIsRUFDbkIsR0FBc0I7UUFDeEMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFITix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFJbEMsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFHOUIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTVDLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFDdkIsY0FBUyxHQUFZLElBQUksQ0FBQztRQUVuQyw2Q0FBNkM7UUFDcEMsVUFBSyxHQUEyQixFQUFFLENBQUM7UUFFNUMsU0FBSSxHQUFHLHdCQUF3QixDQUFDO1FBQ2hDLFVBQUssR0FBVyxFQUFFLENBQUMsQ0FBQywrQkFBK0I7UUFDbkQsb0JBQWUsR0FBVyxtQkFBbUIsQ0FBQztRQUM5QyxnQkFBVyxHQUFHLHNCQUFzQixDQUFDO0lBZnJDLENBQUM7SUFpQkQsZUFBZTtRQUNiLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsV0FBVyxFQUFDLHlCQUF5QixFQUFDLElBQUksRUFBQyxxQkFBcUIsRUFBQyxvQkFBb0IsQ0FBRSxDQUFDO0lBQ3JKLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxDQUFDLDZDQUE2QztZQUN6RSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsK0JBQStCO1lBQ3pELFVBQVUsQ0FBQyxHQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLHlCQUF5QixFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pHLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7K0dBcENVLDJDQUEyQzttR0FBM0MsMkNBQTJDLDRNQU4zQyxDQUFDLGdCQUFnQixDQUFDLGlEQzFCL0Isc3NDQXFDQSx5eWtCRGxCSSxZQUFZLCtCQUNaLDJCQUEyQiwyS0FDM0Isa0NBQWtDLGtIQUNsQyx3Q0FBd0MsOEpBQ3hDLHFDQUFxQyxzSUFDckMsZUFBZTs7NEZBUU4sMkNBQTJDO2tCQWpCdkQsU0FBUzsrQkFDRSw0Q0FBNEMsY0FDMUMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osMkJBQTJCO3dCQUMzQixrQ0FBa0M7d0JBQ2xDLHdDQUF3Qzt3QkFDeEMscUNBQXFDO3dCQUNyQyxlQUFlO3FCQUNoQixhQUNVLENBQUMsZ0JBQWdCLENBQUMsaUJBR2QsaUJBQWlCLENBQUMsU0FBUztpTEFjaEMsYUFBYTtzQkFBdEIsTUFBTTtnQkFFRSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gLEVsZW1lbnRSZWYsIEFmdGVyVmlld0NoZWNrZWQsIENoYW5nZURldGVjdG9yUmVmLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudCB9IGZyb20gXCIuLy4uL2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQuY29tcG9uZW50XCJcclxuaW1wb3J0IHsgQmltcGx1c0Zsb2F0aW5nQmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1mbG9hdGluZy1iYXIvYmltcGx1cy1mbG9hdGluZy1iYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmltcGx1c0Zsb2F0aW5nQmFyRHJhZ2dlckNvbXBvbmVudCB9IGZyb20gJy4uL2JpbXBsdXMtZmxvYXRpbmctYmFyLWRyYWdnZXIvYmltcGx1cy1mbG9hdGluZy1iYXItZHJhZ2dlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzRmxvYXRpbmdCYXJIZWFkZXJDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWNvbnRlbnQvYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWNvbnRlbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmltcGx1c0Zsb2F0aW5nQmFySGVhZGVyTG9nb0NvbXBvbmVudCB9IGZyb20gJy4uL2JpbXBsdXMtZmxvYXRpbmctYmFyLWhlYWRlci1sb2dvL2JpbXBsdXMtZmxvYXRpbmctYmFyLWhlYWRlci1sb2dvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZsb2F0aW5nQmFySXRlbSB9IGZyb20gJy4uL2JpbXBsdXMtZmxvYXRpbmctYmFyL2JpbXBsdXMtZmxvYXRpbmctYmFyLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IExheW91dE1hbmFnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sYXlvdXQtbWFuYWdlci5zZXJ2aWNlJztcclxuXHJcbmNvbnN0IERFRkFVTFRfUE9TSVRJT05fTEVGVCA9MzU1O1xyXG5jb25zdCBERUZBVUxUX1BPU0lUSU9OX1RPUCA9IDMyMDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWJpbXBsdXMtZmxvYXRpbmctYmFyLWlzb2xhdGlvbi1vYmplY3RzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEJpbXBsdXNGbG9hdGluZ0JhckNvbXBvbmVudCxcclxuICAgIEJpbXBsdXNGbG9hdGluZ0JhckRyYWdnZXJDb21wb25lbnQsXHJcbiAgICBCaW1wbHVzRmxvYXRpbmdCYXJIZWFkZXJDb250ZW50Q29tcG9uZW50LFxyXG4gICAgQmltcGx1c0Zsb2F0aW5nQmFySGVhZGVyTG9nb0NvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1RyYW5zbGF0ZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iaW1wbHVzLWZsb2F0aW5nLWJhci1pc29sYXRpb24tb2JqZWN0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JpbXBsdXMtZmxvYXRpbmctYmFyLWlzb2xhdGlvbi1vYmplY3RzLmNvbXBvbmVudC5sZXNzJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb21cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBCaW1wbHVzRmxvYXRpbmdCYXJJc29sYXRpb25PYmplY3RzQ29tcG9uZW50IGV4dGVuZHMgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWR7XHJcbiAgY29uc3RydWN0b3IodHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSwgXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsYXlvdXRNYW5hZ2VyU2VydmljZTogTGF5b3V0TWFuYWdlclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZil7ICAgIFxyXG4gICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSk7ICAgIFxyXG4gICAgXHJcbiAgfVxyXG4gIHByaXZhdGUgaGFzVmlld0NoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgXHJcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgQElucHV0KCkgbm9Cb2R5OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvLyBJdGVtcyBmb3IgdGhlIGhlYWRlciBjb250ZW50IHN1YiBjb21wb25lbnRcclxuICBASW5wdXQoKSBpdGVtczogQXJyYXk8RmxvYXRpbmdCYXJJdGVtPiA9IFtdO1xyXG5cclxuICBpY29uID0gJ3VpLWljb24taXNvbGF0aW9uLW1lbnUnO1xyXG4gIHRpdGxlOiBzdHJpbmcgPSBcIlwiOyAvLyBubyB0b29sdGlwIGluZm8gb24gTG9nbyBpY29uXHJcbiAgZm9jdXNTZWxlY3RvcklkOiBzdHJpbmcgPSAnaXNvbGF0aW9uLW1lbnUtaWQnO1xyXG4gIGNvbXBvbmVudElkID0gJ2lzb2xhdGlvbi1tZW51LWZwLWlkJztcclxuICBcclxuICBuZ0FmdGVyVmlld0luaXQoKXtcclxuICAgIHRoaXMubGF5b3V0TWFuYWdlclNlcnZpY2UucmVnaXN0ZXJPYmplY3QodGhpcy5lbGVtZW50LHRoaXMuY29tcG9uZW50SWQsJy5mbG9hdGluZy1wYW5lbC52aXNpYmxlJyx0cnVlLERFRkFVTFRfUE9TSVRJT05fTEVGVCxERUZBVUxUX1BPU0lUSU9OX1RPUCwpOyAgICBcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgIGlmICghdGhpcy5oYXNWaWV3Q2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmhhc1ZpZXdDaGVja2VkID0gdHJ1ZTsgLy8gU2V0IHRoZSBmbGFnIHRvIHByZXZlbnQgcmVwZWF0ZWQgZXhlY3V0aW9uXHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTsgLy8gVHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uICAgIFxyXG4gICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5jaGVja1Bvc2l0aW9uKHRoaXMuY29tcG9uZW50SWQsJy5mbG9hdGluZy1wYW5lbC52aXNpYmxlJyx1bmRlZmluZWQsMCwwLHRydWUpOyAgICAgICAgXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8bGliLWJpbXBsdXMtZmxvYXRpbmctYmFyXHJcbiAgaWQ9XCJpc29sYXRpb24tbWVudS1mcC1pZFwiXHJcbiAgW2lkXSA9IFwiY29tcG9uZW50SWRcIlxyXG4gIGNsYXNzPVwiaXNvbGF0aW9uLW1lbnVcIlxyXG4gIFtub0JvZHldPVwibm9Cb2R5XCJcclxuICBbaXNGb2N1c2VkXT1cImlzRm9jdXNlZFwiXHJcbiAgW3Jlc2l6ZUVuYWJsZWRdPVwiZmFsc2VcIlxyXG4gIFtmb2N1c1NlbGVjdG9yXT1cImZvY3VzU2VsZWN0b3JJZFwiXHJcbiAgW2lzVmlzaWJsZV09XCJ0cnVlXCJcclxuICBbc2VsZWN0ZWRMYW5ndWFnZV09XCJzZWxlY3RlZExhbmd1YWdlXCJcclxuICBbbG9jYWxpemVkU3RyaW5nc109XCJsb2NhbGl6ZWRTdHJpbmdzXCJcclxuPlxyXG4gIDxsaWItYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ29cclxuICAgIGNsYXNzPVwiZmxvYXRpbmctYmFyLWhlYWRlci1sb2dvXCJcclxuICAgIFtwYXJlbnRJZF0gPSBcImNvbXBvbmVudElkXCJcclxuICAgIFtpY29uXT1cImljb25cIlxyXG4gICAgW3NlbGVjdGVkTGFuZ3VhZ2VdPVwic2VsZWN0ZWRMYW5ndWFnZVwiXHJcbiAgICBbbG9jYWxpemVkU3RyaW5nc109XCJsb2NhbGl6ZWRTdHJpbmdzXCJcclxuICAgID5cclxuICA8L2xpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItbG9nbz5cclxuXHJcbiAgPGxpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItY29udGVudFxyXG4gICAgW3NlbGVjdGVkTGFuZ3VhZ2VdPVwic2VsZWN0ZWRMYW5ndWFnZVwiXHJcbiAgICBbbG9jYWxpemVkU3RyaW5nc109XCJsb2NhbGl6ZWRTdHJpbmdzXCJcclxuICAgIFtwYXJlbnRJZF0gPSBcImNvbXBvbmVudElkXCIgICAgXHJcbiAgICBjbGFzcz1cImZsb2F0aW5nLWJhci1oZWFkZXItY29udGVudFwiXHJcbiAgICBbaXRlbXNdPVwiaXRlbXNcIlxyXG4gICAgKGFjdGlvbkNsaWNrZWQpPVwiYWN0aW9uQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gID5cclxuICA8L2xpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItY29udGVudD5cclxuXHJcbiAgPGxpYi1iaW1wbHVzLWZsb2F0aW5nLWJhci1kcmFnZ2VyXHJcbiAgICBjbGFzcz1cImZsb2F0aW5nLWJhci1kcmFnZ2VyXCJcclxuICAgIFtwYXJlbnRJZF0gPSBcImNvbXBvbmVudElkXCJcclxuICA+XHJcbiAgPC9saWItYmltcGx1cy1mbG9hdGluZy1iYXItZHJhZ2dlcj5cclxuPC9saWItYmltcGx1cy1mbG9hdGluZy1iYXI+XHJcbiJdfQ==
@@ -71,17 +71,18 @@ export class LayoutManagerService {
71
71
  if (!config) {
72
72
  return;
73
73
  }
74
- const element = this._getDomElement(obj, '');
75
- if (!element) {
74
+ const parentElement = this._getDomParentElement(obj);
75
+ const internalElement = this._getDomInternalElement(obj, '');
76
+ if (!parentElement || !internalElement) {
76
77
  return;
77
78
  }
78
- element.style.left = (config.left) + 'px';
79
- element.style.top = (config.top) + 'px';
79
+ parentElement.style.left = (config.left) + 'px';
80
+ parentElement.style.top = (config.top) + 'px';
80
81
  if (config.width && config.width > 0) {
81
- element.style.width = config.width + 'px';
82
+ internalElement.style.width = config.width + 'px';
82
83
  }
83
84
  if (config.height && config.height > 0) {
84
- element.style.height = config.height + 'px';
85
+ internalElement.style.height = config.height + 'px';
85
86
  }
86
87
  this.checkPosition(obj.id, "", undefined, 0, 0, true);
87
88
  }
@@ -135,18 +136,31 @@ export class LayoutManagerService {
135
136
  config[objId] = newItem;
136
137
  this.localStorageService.setObject(this.CONFIG, config);
137
138
  }
138
- _getDomElement(item, selector) {
139
+ _getDomParentElement(item) {
140
+ const element = item.element?.nativeElement; //?.shadowRoot || item.element?.nativeElement;
141
+ if (!element) {
142
+ console.error('_getDomParentElement: missing element');
143
+ return null;
144
+ }
145
+ return element;
146
+ }
147
+ _getDomInternalElement(item, selector) {
139
148
  const element = item.element?.nativeElement?.shadowRoot || item.element?.nativeElement;
140
149
  if (!element) {
141
- console.error('_getDomElement: missing element');
150
+ console.error('_getDomInternalElement: missing element');
142
151
  return null;
143
152
  }
144
153
  const mySelector = selector && selector?.length > 0 ? selector : item.selector;
145
- return mySelector ? element.querySelector(mySelector) : element;
154
+ const retval = mySelector ? element.querySelector(mySelector) : element;
155
+ if (!retval) {
156
+ console.error(`_getDomInternalElement: selection of element ${element} failed with selector ${mySelector}`);
157
+ }
158
+ return retval;
146
159
  }
147
160
  _getElementRect(item, selector, parentRectangle) {
148
- const selectedObj = this._getDomElement(item, selector);
161
+ const selectedObj = this._getDomInternalElement(item, selector);
149
162
  if (!selectedObj) {
163
+ console.error('_getElementRect: missing selected object');
150
164
  return null;
151
165
  }
152
166
  const parentRect = parentRectangle || this.resizeObserverService.getParentAppRect();
@@ -155,6 +169,9 @@ export class LayoutManagerService {
155
169
  return null;
156
170
  }
157
171
  const elementRect = selectedObj.getBoundingClientRect();
172
+ if (!elementRect) {
173
+ console.error('_getElementRect: missing bounding rect');
174
+ }
158
175
  return elementRect;
159
176
  }
160
177
  // checks whether element or element with additional selection of subelement is placed within the give rectangle
@@ -170,11 +187,11 @@ export class LayoutManagerService {
170
187
  const parentRect = parentRectangle || this.resizeObserverService.getParentAppRect();
171
188
  const elementRect = this._getElementRect(e1, selector, parentRect);
172
189
  if (!elementRect) {
173
- console.error('checkPosition: missing element');
190
+ console.error('checkPosition: missing elementRect');
174
191
  return { deltaX: 0, deltaY: 0 };
175
192
  }
176
193
  if (!elementRect?.width || !elementRect?.height) {
177
- console.error('checkPosition:missing element rect');
194
+ console.error('checkPosition:element rect empty ');
178
195
  return { deltaX: 0, deltaY: 0 };
179
196
  }
180
197
  let checkBoundaries = true;
@@ -201,7 +218,7 @@ export class LayoutManagerService {
201
218
  this._translateRectangle(elementDOMRect, deltaX, deltaY);
202
219
  }
203
220
  }
204
- const selectedElement = this._getDomElement(e1, ''); //e1.element.nativeElement;
221
+ const selectedElement = this._getDomParentElement(e1);
205
222
  if (!selectedElement) {
206
223
  return;
207
224
  }
@@ -312,7 +329,7 @@ export class LayoutManagerService {
312
329
  if (!item) {
313
330
  return;
314
331
  }
315
- const element = this._getDomElement(item, '');
332
+ const element = this._getDomParentElement(item);
316
333
  if (!element) {
317
334
  return;
318
335
  }
@@ -331,4 +348,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
331
348
  providedIn: 'root'
332
349
  }]
333
350
  }], ctorParameters: () => [{ type: i1.ResizeObserverService }, { type: i2.LocalStorageService }] });
334
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9sYXlvdXQtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQWlDdkMsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUFvQixxQkFBMkMsRUFDM0MsbUJBQXdDO1FBRHhDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFDM0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUY1RCxxQkFBZ0IsR0FBeUMsSUFBSSxlQUFlLENBQXNCLEVBQUUsQ0FBQyxDQUFBO1FBSTdGLG9CQUFlLEdBQXVCLEVBQUUsQ0FBQztRQUtqRCxXQUFNLEdBQVUscUJBQXFCLENBQUM7SUFObEMsQ0FBQztJQUdMLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUlIOztrRkFFOEU7SUFDNUUsY0FBYyxDQUFDLEdBQWMsRUFBRSxFQUFTLEVBQUUsUUFBMkIsRUFBRSxnQkFBd0IsRUFBQyxPQUFjLEdBQUcsRUFBRSxNQUFhLEdBQUcsRUFBQyxRQUFlLENBQUMsRUFBRSxTQUFnQixDQUFDO1FBQ3JLLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUMsS0FBSyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDOUIsSUFBRyxNQUFNLEVBQUMsQ0FBQztnQkFDVCxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsRUFBQyxDQUFDO1lBQ0osSUFBRyxVQUFVLElBQUksQ0FBQyxFQUFDLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFzQjtZQUNqQyxPQUFPLEVBQUMsR0FBRztZQUNYLEVBQUUsRUFBQyxFQUFFO1lBQ0wsUUFBUSxFQUFDLFFBQVE7WUFDakIsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQjtZQUNuQyxJQUFJLEVBQUMsSUFBSTtZQUNULEdBQUcsRUFBQyxHQUFHO1lBQ1AsS0FBSyxFQUFDLEtBQUs7WUFDWCxNQUFNLEVBQUMsTUFBTTtZQUNiLFdBQVcsRUFBRSxLQUFLO1NBQ2xCLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBcUI7UUFDL0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV0QyxDQUFDO0lBQ0Q7OztnRkFHNEU7SUFDNUUsZ0JBQWdCLENBQUMsR0FBcUI7UUFDcEMsSUFBRyxDQUFDLEdBQUcsRUFBQyxDQUFDO1lBQ1AsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEUsTUFBTyxNQUFNLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0QsTUFBTyxLQUFLLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBRTtRQUN2QixJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2QsU0FBUyxHQUFHLEVBQUMsRUFBRSxFQUFDLEtBQUssRUFBQyxJQUFJLEVBQUMsR0FBRyxDQUFDLElBQUksRUFBQyxHQUFHLEVBQUMsR0FBRyxDQUFDLEdBQUcsRUFBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsR0FBRyxDQUFDLE1BQU0sRUFBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQscUJBQXFCLENBQUMsR0FBcUI7UUFDekMsTUFBTSxNQUFNLEdBQWdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2RSxJQUFHLENBQUMsTUFBTSxFQUFDLENBQUM7WUFDVixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU8sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLElBQUcsQ0FBQyxPQUFPLEVBQUMsQ0FBQztZQUNYLE9BQU87UUFDVCxDQUFDO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4QyxJQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUMsQ0FBQztZQUNuQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBRyxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDLENBQUM7WUFDckMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDOUMsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELHlCQUF5QixDQUFDLEdBQXFCO1FBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOztnRkFFNEU7SUFDNUUsT0FBTyxDQUFDLEVBQVU7UUFDaEIsSUFBSSxTQUFTLEdBQTBCLElBQUksQ0FBQztRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNsQyxJQUFHLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFDLENBQUM7Z0JBQ2pCLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOztnRkFFNEU7SUFDNUUsZ0JBQWdCLENBQUMsR0FBcUIsRUFBRSxJQUFXLEVBQUMsR0FBVSxFQUFDLEtBQVksRUFBQyxNQUFhO1FBQ3ZGLE1BQU0sS0FBSyxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUU7UUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQXdCLENBQUM7UUFDcEYsNkVBQTZFO1FBQzdFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBRyxHQUFHLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBRSxpQ0FBaUM7WUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNuQixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ3RCLENBQUM7WUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUMxQixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFJLEdBQUcsQ0FBQztZQUN6Qiw4QkFBOEI7WUFDOUIsaUNBQWlDO1lBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN4RCxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUE0QjtZQUN2QyxFQUFFLEVBQUUsS0FBSztZQUNULFdBQVcsRUFBRSxLQUFLO1lBQ2xCLElBQUksRUFBRSxJQUFJO1lBQ1YsR0FBRyxFQUFFLEdBQUc7WUFDUixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQztRQUNGLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxjQUFjLENBQUMsSUFBc0IsRUFBQyxRQUEyQjtRQUMvRCxNQUFNLE9BQU8sR0FBZSxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUM7UUFDbkcsSUFBRyxDQUFDLE9BQU8sRUFBQyxDQUFDO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQ2pELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFFLFFBQVEsSUFBSSxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsUUFBUSxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzNFLE9BQU8sVUFBVSxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUM7SUFDOUQsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFzQixFQUFDLFFBQTJCLEVBQUUsZUFBa0M7UUFDcEcsTUFBTSxXQUFXLEdBQXNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFFLElBQUcsQ0FBQyxXQUFXLEVBQUMsQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFZLGVBQWUsSUFBSyxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM5RixJQUFJLENBQUMsVUFBVSxJQUFLLFVBQVUsRUFBRSxLQUFLLElBQUUsQ0FBQyxJQUFJLFVBQVUsRUFBRSxNQUFNLElBQUUsQ0FBQyxFQUFHLENBQUM7WUFDbkUsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU8sV0FBVyxHQUFnQixXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN0RSxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsZ0hBQWdIO0lBQ2hILDBEQUEwRDtJQUMxRCxhQUFhLENBQUMsRUFBUyxFQUFDLFFBQWUsRUFBQyxlQUFpQyxFQUFFLE1BQWEsRUFBQyxNQUFhLEVBQUMsYUFBcUIsS0FBSztRQUMvSCxJQUFHLENBQUMsRUFBRSxFQUFDLENBQUM7WUFDTixPQUFPLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsSUFBRyxDQUFDLEVBQUUsRUFBQyxDQUFDO1lBQ04sT0FBTyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBWSxlQUFlLElBQUssSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDOUYsTUFBTSxXQUFXLEdBQWtCLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFDLFFBQVEsRUFBQyxVQUFVLENBQUMsQ0FBQztRQUNoRixJQUFHLENBQUMsV0FBVyxFQUFDLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7WUFDaEQsT0FBTyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxJQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUMsQ0FBQztZQUM5QyxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7WUFDcEQsT0FBTyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4RSxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7UUFFRCw0RkFBNEY7UUFDNUYsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVyRCxxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFekQsSUFBRyxlQUFlLEVBQUUsQ0FBQztZQUNuQixJQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUM1RCxNQUFPLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUMzRSxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMzRCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ3BFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ2xGLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNELENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSwyQkFBMkI7UUFDOUUsSUFBRyxDQUFDLGVBQWUsRUFBQyxDQUFDO1lBQ25CLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNsRCxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDcEQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0Q7O2dGQUU0RTtJQUM1RSxhQUFhLENBQUMsRUFBVSxFQUFFLEVBQVU7UUFDbEMsSUFBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBUSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDcEcsQ0FBQztJQUVEOztnRkFFNEU7SUFDNUUsb0JBQW9CLENBQUMsRUFBVSxFQUFFLEVBQVU7UUFDekMsSUFBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsTUFBTyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUMxRCxNQUFPLFFBQVEsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDO1FBQzFELE9BQU8sUUFBUSxJQUFJLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O2dGQUU0RTtJQUM1RSxrQkFBa0IsQ0FBQyxFQUFVLEVBQUUsRUFBVTtRQUN2QyxJQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDZCxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7UUFDbkIsQ0FBQztRQUNELE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoQyw0Q0FBNEM7UUFDNUMsSUFBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDZCxDQUFDO2FBQU0sSUFBRyxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM5QixFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUM3QixDQUFDO1FBQ0QscUNBQXFDO1FBQ3JDLElBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDbkIsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2QsQ0FBQzthQUFNLElBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDL0IsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOztnRkFFNEU7SUFDNUUsMEJBQTBCLENBQUMsRUFBVSxFQUFFLEVBQVU7UUFDL0MsSUFBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2QsT0FBUSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1FBQ3BCLENBQUM7UUFFRCxNQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakMsWUFBWTtRQUNaLElBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2QsQ0FBQztRQUNELFdBQVc7UUFDWCxJQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ25CLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFQTs7K0VBRTJFO0lBQzVFLG1CQUFtQixDQUFDLElBQVksRUFBRSxVQUFpQixFQUFFLFVBQWlCO1FBQ3BFLElBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNULE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUM7UUFDckIsSUFBSSxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUM7UUFDckIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWEsRUFBRSxLQUFZLEVBQUU7UUFDM0MsTUFBTyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQyxJQUFHLENBQUMsU0FBUyxFQUFDLENBQUM7WUFDYixPQUFPO1FBQ1QsQ0FBQztRQUNELFNBQVMsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pELFVBQVUsQ0FBQyxHQUFFLEVBQUU7WUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxFQUFFLEdBQVMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFDLEVBQUU7WUFDbkMsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUksQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxhQUFhLENBQUMsRUFBUztRQUNyQixJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7Z0ZBRzRFO0lBQzVFLHFCQUFxQixDQUFDLEVBQVM7UUFDN0IsTUFBTSxJQUFJLEdBQTJCLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBRyxDQUFDLElBQUksRUFBQyxDQUFDO1lBQ1IsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBQyxFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFHLENBQUMsT0FBTyxFQUFDLENBQUM7WUFDWCxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU5QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUNiLFdBQVcsSUFBSSxXQUFXLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUMxRCxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7K0dBMVZVLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXNpemUtb2JzZXJ2ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSAgIGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbi8vaW1wb3J0IHsgSXRlbXNMaXN0IH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QvbGliL2l0ZW1zLWxpc3QnO1xyXG4vL2ltcG9ydCB7IE5vdEZvdW5kRXJyb3IgfSBmcm9tICdyeGpzJztcclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExheW91dE1hbmFnZXJJdGVtIHtcclxuICBlbGVtZW50OkVsZW1lbnRSZWY7XHJcbiAgaWQ6IHN0cmluZztcclxuICBzZWxlY3Rvcj86c3RyaW5nO1xyXG4gIGlzQ29sbGFwc2VkOmJvb2xlYW47XHJcbiAgcmVtZW1iZXJQb3NpdGlvbj86Ym9vbGVhblxyXG4gIGxlZnQ/OiBudW1iZXI7XHJcbiAgdG9wPzpudW1iZXI7XHJcbiAgd2lkdGg/Om51bWJlcjtcclxuICBoZWlnaHQ/Om51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRNYW5hZ2VyQ29uZmlnSXRlbSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBpc0NvbGxhcHNlZDpib29sZWFuOyAgXHJcbiAgbGVmdD86IG51bWJlcjtcclxuICB0b3A/Om51bWJlcjsgIFxyXG4gIHdpZHRoPzpudW1iZXI7XHJcbiAgaGVpZ2h0PzpudW1iZXI7XHJcbn1cclxuXHJcblxyXG5pbnRlcmZhY2UgTGF5b3V0TWFuYWdlckNvbmZpZyB7XHJcbiAgW2tleTpzdHJpbmddOiBMYXlvdXRNYW5hZ2VyQ29uZmlnSXRlbVxyXG59XHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExheW91dE1hbmFnZXJTZXJ2aWNlIHtcclxuXHJcbiAgcmVnaXN0ZXJlZEl0ZW1zJDogQmVoYXZpb3JTdWJqZWN0PExheW91dE1hbmFnZXJJdGVtW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMYXlvdXRNYW5hZ2VySXRlbVtdPihbXSlcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc2l6ZU9ic2VydmVyU2VydmljZTpSZXNpemVPYnNlcnZlclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2VTZXJ2aWNlIDpMb2NhbFN0b3JhZ2VTZXJ2aWNlIFxyXG4gICkgeyB9XHJcbiAgcHJpdmF0ZSByZWdpc3RlcmVkSXRlbXM6TGF5b3V0TWFuYWdlckl0ZW1bXSA9IFtdO1xyXG4gIFxyXG4gIGdldCBSZWdpc3RlcmVkSXRlbXMoKTogTGF5b3V0TWFuYWdlckl0ZW1bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RlcmVkSXRlbXM7XHJcbiAgfVxyXG4gIENPTkZJRzpzdHJpbmcgPSAnbGF5b3V0TWFuYWdlckNvbmZpZyc7XHJcblxyXG4gIFxyXG4vKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogcmVnaXN0ZXIgb2JqZWN0LiBvYmplY3QgbXVzdCBoYXZlIHVuaXF1ZSBpZCBvciBlbGVtZW50SWRcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgcmVnaXN0ZXJPYmplY3Qob2JqOkVsZW1lbnRSZWYsIGlkOnN0cmluZywgc2VsZWN0b3I6c3RyaW5nIHwgdW5kZWZpbmVkLCByZW1lbWJlclBvc2l0aW9uOmJvb2xlYW4sbGVmdDpudW1iZXIgPSAxMDAsIHRvcDpudW1iZXIgPSAxMDAsd2lkdGg6bnVtYmVyID0gMCwgaGVpZ2h0Om51bWJlciA9IDApIHtcclxuICAgIGxldCBmb3VuZEluZGV4ID0gLTE7XHJcbiAgICBpZih0aGlzLnJlZ2lzdGVyZWRJdGVtcy5zb21lKChpdGVtLGluZGV4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmV0dmFsID0gaXRlbS5pZCA9PT0gaWQ7XHJcbiAgICAgICAgaWYocmV0dmFsKXtcclxuICAgICAgICAgIGZvdW5kSW5kZXggPSBpbmRleDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJldHZhbDtcclxuICAgICAgfSkpe1xyXG4gICAgICBpZihmb3VuZEluZGV4ID49IDApe1xyXG4gICAgICAgIHRoaXMucmVnaXN0ZXJlZEl0ZW1zLnNwbGljZShmb3VuZEluZGV4LDEpO1xyXG4gICAgICB9ICAgICAgXHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdJdGVtOiBMYXlvdXRNYW5hZ2VySXRlbSA9IHsgXHJcbiAgICAgIGVsZW1lbnQ6b2JqLFxyXG4gICAgICBpZDppZCxcclxuICAgICAgc2VsZWN0b3I6c2VsZWN0b3IsXHJcbiAgICAgIHJlbWVtYmVyUG9zaXRpb246ISFyZW1lbWJlclBvc2l0aW9uLFxyXG4gICAgICBsZWZ0OmxlZnQsXHJcbiAgICAgIHRvcDp0b3AsXHJcbiAgICAgIHdpZHRoOndpZHRoLFxyXG4gICAgICBoZWlnaHQ6aGVpZ2h0LFxyXG4gICAgICBpc0NvbGxhcHNlZDogZmFsc2UgICAgXHJcbiAgICAgfTtcclxuXHJcbiAgICB0aGlzLnJlZ2lzdGVyZWRJdGVtcy5wdXNoKG5ld0l0ZW0pO1xyXG4gICAgdGhpcy5yZWdpc3RlcmVkSXRlbXMkLm5leHQodGhpcy5yZWdpc3RlcmVkSXRlbXMpO1xyXG4gICAgdGhpcy5faW5pdE9iamVjdChuZXdJdGVtKTtcclxuICB9XHJcbiAgXHJcbiAgX2luaXRPYmplY3Qob2JqOkxheW91dE1hbmFnZXJJdGVtKXtcclxuICAgIHRoaXMuX2FkanVzdE9iamVjdEJ5Q29uZmlnKG9iaik7XHJcbiAgICB0aGlzLl9hZGp1c3RPYmplY3RCeVdpbmRvd1NpemUob2JqKTtcclxuICAgIFxyXG4gIH1cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogZ2V0IG9iamVjdCBjb25maWd1cmF0aW9uXHJcbiAgKiByZXR1cm4ge2xlZnQsIHRvcCwgd2lkdGgsIGhlaWd0aH1cclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX2dldE9iamVjdENvbmZpZyhvYmo6TGF5b3V0TWFuYWdlckl0ZW0pOkxheW91dE1hbmFnZXJDb25maWdJdGVtfG51bGwge1xyXG4gICAgaWYoIW9iail7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29uZmlnVmFsdWUgPSB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSh0aGlzLkNPTkZJRyk7XHJcbiAgICBjb25zdCAgY29uZmlnID0gY29uZmlnVmFsdWUgPyBKU09OLnBhcnNlKGNvbmZpZ1ZhbHVlKSA6IHt9O1xyXG4gICAgY29uc3QgIG9iaklkID0gb2JqLmlkIDtcclxuICAgIGxldCBjb25maWdPYmogPSBjb25maWdbb2JqSWRdO1xyXG4gICAgaWYoIWNvbmZpZ09iaikge1xyXG4gICAgICBjb25maWdPYmogPSB7aWQ6b2JqSWQsbGVmdDpvYmoubGVmdCx0b3A6b2JqLnRvcCx3aWR0aDpvYmoud2lkdGgsaGVpZ2h0Om9iai5oZWlnaHR9OyAgICAgICAgXHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29uZmlnT2JqO1xyXG4gIH1cclxuXHJcbiAgX2FkanVzdE9iamVjdEJ5Q29uZmlnKG9iajpMYXlvdXRNYW5hZ2VySXRlbSl7XHJcbiAgICBjb25zdCBjb25maWc6TGF5b3V0TWFuYWdlckNvbmZpZ0l0ZW18bnVsbCA9IHRoaXMuX2dldE9iamVjdENvbmZpZyhvYmopO1xyXG4gICAgaWYoIWNvbmZpZyl7XHJcbiAgICAgIHJldHVybjsgICAgICBcclxuICAgIH1cclxuICAgIGNvbnN0ICBlbGVtZW50ID0gdGhpcy5fZ2V0RG9tRWxlbWVudChvYmosJycpO1xyXG4gICAgaWYoIWVsZW1lbnQpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSAoY29uZmlnLmxlZnQpICsgJ3B4JztcclxuICAgIGVsZW1lbnQuc3R5bGUudG9wID0gKGNvbmZpZy50b3ApICsgJ3B4JztcclxuICAgIGlmKGNvbmZpZy53aWR0aCAmJiBjb25maWcud2lkdGggPiAwKXtcclxuICAgICAgZWxlbWVudC5zdHlsZS53aWR0aCA9IGNvbmZpZy53aWR0aCArICdweCc7XHJcbiAgICB9XHJcbiAgICBpZihjb25maWcuaGVpZ2h0ICYmIGNvbmZpZy5oZWlnaHQgPiAwKXtcclxuICAgICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBjb25maWcuaGVpZ2h0ICsgJ3B4JztcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5jaGVja1Bvc2l0aW9uKG9iai5pZCxcIlwiLHVuZGVmaW5lZCwwLDAsdHJ1ZSk7ICAgIFxyXG4gIH1cclxuXHJcbiAgX2FkanVzdE9iamVjdEJ5V2luZG93U2l6ZShvYmo6TGF5b3V0TWFuYWdlckl0ZW0pe1xyXG4gICAgdGhpcy5jaGVja1Bvc2l0aW9uKG9iai5pZCxcIlwiLHVuZGVmaW5lZCwwLDAsdHJ1ZSk7ICBcclxuICB9XHJcbiAgXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIHJldHVybnMgb2JqZWN0ICByZWdpc3RlcmVkIGluIHRoZSBsYXlvdXQgbWFuYWdlciBcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgZ2V0SXRlbShpZDogc3RyaW5nICk6TGF5b3V0TWFuYWdlckl0ZW18bnVsbCB7ICAgXHJcbiAgICBsZXQgZm91bmRJdGVtOkxheW91dE1hbmFnZXJJdGVtfG51bGwgPSBudWxsO1xyXG4gICAgdGhpcy5yZWdpc3RlcmVkSXRlbXMuZm9yRWFjaChpdGVtID0+e1xyXG4gICAgICBpZihpdGVtLmlkID09PSBpZCl7XHJcbiAgICAgICAgZm91bmRJdGVtID0gaXRlbTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZm91bmRJdGVtO1xyXG4gIH1cclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIHNldCBvYmplY3QgY29uZmlndXJhdGlvblxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBfc2V0T2JqZWN0Q29uZmlnKG9iajpMYXlvdXRNYW5hZ2VySXRlbSwgbGVmdDpudW1iZXIsdG9wOm51bWJlcix3aWR0aDpudW1iZXIsaGVpZ2h0Om51bWJlcikge1xyXG4gICAgY29uc3Qgb2JqSWQgPSBvYmo/LmlkIDtcclxuICAgIGlmICghb2JqSWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGNvbmZpZyA9IHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5nZXRPYmplY3QodGhpcy5DT05GSUcpIGFzIExheW91dE1hbmFnZXJDb25maWc7XHJcbiAgICAvL2xldCBjb25maWcgPSBjb25maWdWYWx1ZSAmJiBKU09OLnBhcnNlKGNvbmZpZ1ZhbHVlKSBhcyBMYXlvdXRNYW5hZ2VyQ29uZmlnO1xyXG4gICAgaWYgKCFjb25maWcpIHtcclxuICAgICAgY29uZmlnID0ge307XHJcbiAgICB9XHJcbiAgICBpZihvYmo/LmlzQ29sbGFwc2VkKXsgIC8vIGRvIG5vdCBvdmVydGFrZSBjb2xsYXBzZWQgc2l6ZVxyXG4gICAgICBpZiAoIWNvbmZpZ1tvYmpJZF0pIHsgICAgICAgIFxyXG4gICAgICAgIGNvbmZpZ1tvYmpJZF0gPSBvYmo7XHJcbiAgICAgIH1cclxuICAgICAgY29uZmlnW29iaklkXS5sZWZ0ID0gbGVmdDtcclxuICAgICAgY29uZmlnW29iaklkXS50b3AgID0gdG9wO1xyXG4gICAgICAvL2NvbmZpZ1tvYmpJZF0ud2lkdGggPSB3aWR0aDtcclxuICAgICAgLy9jb25maWdbb2JqSWRdLmhlaWdodCA9IGhlaWdodCA7XHJcbiAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXRPYmplY3QodGhpcy5DT05GSUcsIGNvbmZpZyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXdJdGVtIDpMYXlvdXRNYW5hZ2VyQ29uZmlnSXRlbSA9IHtcclxuICAgICAgaWQ6IG9iaklkLFxyXG4gICAgICBpc0NvbGxhcHNlZDogZmFsc2UsXHJcbiAgICAgIGxlZnQ6IGxlZnQsXHJcbiAgICAgIHRvcDogdG9wLFxyXG4gICAgICB3aWR0aDogd2lkdGgsXHJcbiAgICAgIGhlaWdodDogaGVpZ2h0XHJcbiAgICB9O1xyXG4gICAgY29uZmlnW29iaklkXSA9IG5ld0l0ZW07XHJcbiAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0T2JqZWN0KHRoaXMuQ09ORklHLGNvbmZpZyk7XHJcbiAgfVxyXG4gIF9nZXREb21FbGVtZW50KGl0ZW06TGF5b3V0TWFuYWdlckl0ZW0sc2VsZWN0b3I6c3RyaW5nIHwgdW5kZWZpbmVkICk6SFRNTEVsZW1lbnR8bnVsbCB7XHJcbiAgICBjb25zdCBlbGVtZW50OkhUTUxFbGVtZW50ID0gaXRlbS5lbGVtZW50Py5uYXRpdmVFbGVtZW50Py5zaGFkb3dSb290IHx8IGl0ZW0uZWxlbWVudD8ubmF0aXZlRWxlbWVudDsgICAgXHJcbiAgICBpZighZWxlbWVudCl7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ19nZXREb21FbGVtZW50OiBtaXNzaW5nIGVsZW1lbnQnKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBteVNlbGVjdG9yID1zZWxlY3RvciAmJiBzZWxlY3Rvcj8ubGVuZ3RoID4gMCA/c2VsZWN0b3I6aXRlbS5zZWxlY3RvcjsgICBcclxuICAgIHJldHVybiBteVNlbGVjdG9yP2VsZW1lbnQucXVlcnlTZWxlY3RvcihteVNlbGVjdG9yKTplbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgX2dldEVsZW1lbnRSZWN0KGl0ZW06TGF5b3V0TWFuYWdlckl0ZW0sc2VsZWN0b3I6c3RyaW5nIHwgdW5kZWZpbmVkICxwYXJlbnRSZWN0YW5nbGU6RE9NUmVjdCB8dW5kZWZpbmVkICk6RE9NUmVjdCB8IG51bGx7XHJcbiAgICBjb25zdCBzZWxlY3RlZE9iaiA6IEhUTUxFbGVtZW50fG51bGwgPSB0aGlzLl9nZXREb21FbGVtZW50KGl0ZW0sc2VsZWN0b3IpO1xyXG4gICAgaWYoIXNlbGVjdGVkT2JqKXtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGFyZW50UmVjdDpET01SZWN0ID0gIHBhcmVudFJlY3RhbmdsZSB8fCAgdGhpcy5yZXNpemVPYnNlcnZlclNlcnZpY2UuZ2V0UGFyZW50QXBwUmVjdCgpO1xyXG4gICAgaWYoICFwYXJlbnRSZWN0IHx8ICBwYXJlbnRSZWN0Py53aWR0aDw9MSB8fCBwYXJlbnRSZWN0Py5oZWlnaHQ8PTEgKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ19nZXRFbGVtZW50UmVjdDogbWlzc2luZyBwYXJlbnQgcmVjdCcpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0ICBlbGVtZW50UmVjdDpET01SZWN0fG51bGwgPSBzZWxlY3RlZE9iai5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHJldHVybiBlbGVtZW50UmVjdDtcclxuICB9XHJcblxyXG4gIC8vIGNoZWNrcyB3aGV0aGVyIGVsZW1lbnQgb3IgZWxlbWVudCB3aXRoIGFkZGl0aW9uYWwgc2VsZWN0aW9uIG9mIHN1YmVsZW1lbnQgaXMgcGxhY2VkIHdpdGhpbiB0aGUgZ2l2ZSByZWN0YW5nbGVcclxuICAvLyBpZiBub3QgdGhlbiBjYWxjdWxhdGVzIHRoZSBvZmZzZXQgdG8gYmUgbW92ZWQgdG8gZml0IGluXHJcbiAgY2hlY2tQb3NpdGlvbihpZDpzdHJpbmcsc2VsZWN0b3I6c3RyaW5nLHBhcmVudFJlY3RhbmdsZTpET01SZWN0fHVuZGVmaW5lZCAsZGVsdGFYOm51bWJlcixkZWx0YVk6bnVtYmVyLGZvcmNlQ2hlY2s6Ym9vbGVhbiA9IGZhbHNlKXtcclxuICAgIGlmKCFpZCl7XHJcbiAgICAgIHJldHVybiB7ZGVsdGFYOjAsZGVsdGFZOjB9O1xyXG4gICAgfVxyXG4gICAgY29uc3QgZTEgPSB0aGlzLmdldEl0ZW0oaWQpO1xyXG4gICAgaWYoIWUxKXtcclxuICAgICAgcmV0dXJuIHtkZWx0YVg6MCxkZWx0YVk6MH07XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXJlbnRSZWN0OkRPTVJlY3QgPSAgcGFyZW50UmVjdGFuZ2xlIHx8ICB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS5nZXRQYXJlbnRBcHBSZWN0KCk7XHJcbiAgICBjb25zdCBlbGVtZW50UmVjdDpET01SZWN0IHwgbnVsbCA9IHRoaXMuX2dldEVsZW1lbnRSZWN0KGUxLHNlbGVjdG9yLHBhcmVudFJlY3QpO1xyXG4gICAgaWYoIWVsZW1lbnRSZWN0KXtcclxuICAgICAgY29uc29sZS5lcnJvcignY2hlY2tQb3NpdGlvbjogbWlzc2luZyBlbGVtZW50Jyk7XHJcbiAgICAgIHJldHVybiB7ZGVsdGFYOjAsZGVsdGFZOjB9O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZighZWxlbWVudFJlY3Q/LndpZHRoIHx8ICFlbGVtZW50UmVjdD8uaGVpZ2h0KXtcclxuICAgICAgY29uc29sZS5lcnJvcignY2hlY2tQb3NpdGlvbjptaXNzaW5nIGVsZW1lbnQgcmVjdCcpO1xyXG4gICAgICByZXR1cm4ge2RlbHRhWDowLGRlbHRhWTowfTtcclxuICAgIH0gXHJcbiAgICBsZXQgY2hlY2tCb3VuZGFyaWVzID0gdHJ1ZTtcclxuICAgIGlmKHRoaXMuX2lzSW5zaWRlUmVjdChlbGVtZW50UmVjdCwgcGFyZW50UmVjdCkgPT09IGZhbHNlICYmICFmb3JjZUNoZWNrKSB7XHJcbiAgICAgIGNoZWNrQm91bmRhcmllcyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gXHJcbiAgICAvLyBjb3B5IG9mIHJlYWwgZWxlbWVudCByZWN0YW5nbGUgdG8gcGVyZm9ybSBjYWxjdWxhdGlvbiBvdmVyIGJlZm9yZSBzZXQgdG8gdGhlIHJlYWwgZWxlbWVudFxyXG4gICAgY29uc3QgZWxlbWVudERPTVJlY3QgPSBET01SZWN0LmZyb21SZWN0KGVsZW1lbnRSZWN0KTtcclxuXHJcbiAgICAvL3NldCB0aGUgZWxlbWVudCByZWN0YW5nbGUgYnkgZGVsdGFzXHJcbiAgICB0aGlzLl90cmFuc2xhdGVSZWN0YW5nbGUoZWxlbWVudERPTVJlY3QsIGRlbHRhWCwgZGVsdGFZKTtcclxuXHJcbiAgICBpZihjaGVja0JvdW5kYXJpZXMpIHtcclxuICAgICAgaWYodGhpcy5faXNJbnNpZGVSZWN0KGVsZW1lbnRET01SZWN0LCBwYXJlbnRSZWN0KSA9PT0gZmFsc2UpIHtcclxuICAgICAgICBjb25zdCAgbmV3RWxlbWVudFBvcyA9IHRoaXMuZ2V0QWxpZ25lZFBvc2l0aW9uKGVsZW1lbnRET01SZWN0LCBwYXJlbnRSZWN0KTtcclxuICAgICAgICBkZWx0YVggPSBuZXdFbGVtZW50UG9zLnggLSBlbGVtZW50UmVjdC54O1xyXG4gICAgICAgIGRlbHRhWSA9IG5ld0VsZW1lbnRQb3MueSAtIGVsZW1lbnRSZWN0Lnk7XHJcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRlUmVjdGFuZ2xlKGVsZW1lbnRET01SZWN0LCBkZWx0YVgsIGRlbHRhWSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLl9pc0luc2lkZUxlZnRUb3BSZWN0KHBhcmVudFJlY3QsIGVsZW1lbnRET01SZWN0KSA9PT0gZmFsc2UpIHtcclxuICAgICAgICBjb25zdCBuZXdFbGVtZW50UG9zID0gdGhpcy5fZ2V0QWxpZ25lZExlZnRUb3BQb3NpdGlvbihlbGVtZW50RE9NUmVjdCwgcGFyZW50UmVjdCk7XHJcbiAgICAgICAgZGVsdGFYID0gbmV3RWxlbWVudFBvcy54IC0gZWxlbWVudFJlY3QueDtcclxuICAgICAgICBkZWx0YVkgPSBuZXdFbGVtZW50UG9zLnkgLSBlbGVtZW50UmVjdC55O1xyXG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZVJlY3RhbmdsZShlbGVtZW50RE9NUmVjdCwgZGVsdGFYLCBkZWx0YVkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLl9nZXREb21FbGVtZW50KGUxLCcnKTsvL2UxLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgIGlmKCFzZWxlY3RlZEVsZW1lbnQpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoc2VsZWN0ZWRFbGVtZW50KTtcclxuICAgIGNvbnN0IHRvcCA9IHBhcnNlSW50KGNvbXB1dGVkU3R5bGUudG9wLCAxMCk7XHJcbiAgICBjb25zdCBsZWZ0ID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5sZWZ0LCAxMCk7XHJcbiAgICBzZWxlY3RlZEVsZW1lbnQuc3R5bGUudG9wID0gKHRvcCArIGRlbHRhWSkgKyAncHgnO1xyXG4gICAgc2VsZWN0ZWRFbGVtZW50LnN0eWxlLmxlZnQgPSAobGVmdCArIGRlbHRhWCkgKyAncHgnO1xyXG4gICAgcmV0dXJuIHtkZWx0YVgsZGVsdGFZfTtcclxuICB9XHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIGZpbmQgaWYgcmVjdGFuZ2xlIDEgaXMgaW5zaWRlIHJlY3RhbmdsZSAyXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIF9pc0luc2lkZVJlY3QocjE6RE9NUmVjdCwgcjI6RE9NUmVjdCkge1xyXG4gICAgaWYoIXIxIHx8ICFyMikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gIHIyLmxlZnQgPD0gcjEubGVmdCAgJiYgcjIudG9wIDw9IHIxLnRvcCAmJiByMi5yaWdodCA+PSByMS5yaWdodCAmJiByMi5ib3R0b20gPj0gcjEuYm90dG9tO1xyXG4gIH1cclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIGZpbmQgaWYgcmVjdGFuZ2xlcyBkbyBub3Qgb3ZlcmxhcCB0aGUgbGVmdCBhbmQgdG9wIHNpZGVzXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIF9pc0luc2lkZUxlZnRUb3BSZWN0KHIxOkRPTVJlY3QsIHIyOkRPTVJlY3QpIHtcclxuICAgIGlmKCFyMSB8fCAhcjIpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgIHIxSW5zaWRlID0gcjIubGVmdCA8PSByMS5sZWZ0ICAmJiByMi50b3AgPD0gcjEudG9wO1xyXG4gICAgY29uc3QgIHIySW5zaWRlID0gcjEubGVmdCA8PSByMi5sZWZ0ICAmJiByMS50b3AgPD0gcjIudG9wO1xyXG4gICAgcmV0dXJuIHIxSW5zaWRlIHx8IHIySW5zaWRlO1xyXG4gIH1cclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIGdldCBwb3NpdGlvbiBvZiByMSBhbGlnbmVkIHdpdGggdGhlIHIyIHNpZGVzXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIGdldEFsaWduZWRQb3NpdGlvbihyMTpET01SZWN0LCByMjpET01SZWN0KSB7XHJcbiAgICBpZighcjEgfHwgIXIyKSB7XHJcbiAgICAgIHJldHVybiB7eDowLHk6MH07XHJcbiAgICB9XHJcbiAgICBjb25zdCB0byA9IHsgeDogcjEueCwgeTogcjEueSB9O1xyXG4gICAgLy9hbGlnbiBsZWZ0IG9yIHJpZ2h0IHNpZGVzLiBwcmVmZXJhYmx5IGxlZnRcclxuICAgIGlmKHIxLmxlZnQgPCByMi5sZWZ0KSB7XHJcbiAgICAgIHRvLnggPSByMi54O1xyXG4gICAgfSBlbHNlIGlmKHIxLnJpZ2h0ID4gcjIucmlnaHQpIHtcclxuICAgICAgdG8ueCA9IHIyLnJpZ2h0IC0gcjEud2lkdGg7XHJcbiAgICB9XHJcbiAgICAvL2FsaWduIHRvcCBvciBib3R0b20uIHByZWZlcmFibHkgdG9wXHJcbiAgICBpZihyMS50b3AgPCByMi50b3ApIHtcclxuICAgICAgdG8ueSA9IHIyLnk7XHJcbiAgICB9IGVsc2UgaWYocjEuYm90dG9tID4gcjIuYm90dG9tKSB7XHJcbiAgICAgIHRvLnkgPSByMi5ib3R0b20gLSByMS5oZWlnaHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG87XHJcbiAgfVxyXG4gIFxyXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiBnZXQgcG9zaXRpb24gb2YgcjEgYWxpZ25lZCB3aXRoIHRoZSByMiBsZWZ0LCB0b3Agc2lkZXNcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX2dldEFsaWduZWRMZWZ0VG9wUG9zaXRpb24ocjE6RE9NUmVjdCwgcjI6RE9NUmVjdCkge1xyXG4gICAgaWYoIXIxIHx8ICFyMikge1xyXG4gICAgICByZXR1cm4gIHt4OjAseTowfTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCAgdG8gPSB7IHg6IHIxLngsIHk6IHIxLnkgfTtcclxuICAgIC8vYWxpZ24gbGVmdFxyXG4gICAgaWYocjEubGVmdCA8IHIyLmxlZnQpIHtcclxuICAgICAgdG8ueCA9IHIyLng7XHJcbiAgICB9XHJcbiAgICAvL2FsaWduIHRvcFxyXG4gICAgaWYocjEudG9wIDwgcjIudG9wKSB7XHJcbiAgICAgIHRvLnkgPSByMi55O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvO1xyXG4gIH1cclxuXHJcbiAgIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiB0cmFuc2xhdGUgcmVjdGFuZ2xlIGJ5IHgsIHlcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX3RyYW5zbGF0ZVJlY3RhbmdsZShyZWN0OkRPTVJlY3QsIHRyYW5zbGF0ZVg6bnVtYmVyLCB0cmFuc2xhdGVZOm51bWJlcikge1xyXG4gICAgaWYoIXJlY3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcmVjdC54ICs9IHRyYW5zbGF0ZVg7XHJcbiAgICByZWN0LnkgKz0gdHJhbnNsYXRlWTtcclxuICAgIHJldHVybiByZWN0O1xyXG4gIH1cclxuICBcclxuICB1cGRhdGVDb2xsYXBzZWQodmFsdWU6Ym9vbGVhbiwgaWQ6c3RyaW5nID0gJycpOnZvaWR7ICAgIFxyXG4gICAgY29uc3QgIGZvdW5kSXRlbSA9IHRoaXMuZ2V0SXRlbShpZCk7XHJcbiAgICBpZighZm91bmRJdGVtKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZm91bmRJdGVtLmlzQ29sbGFwc2VkID0gdmFsdWU7XHJcbiAgICB0aGlzLnJlZ2lzdGVyZWRJdGVtcyQubmV4dCh0aGlzLnJlZ2lzdGVyZWRJdGVtcyk7XHJcbiAgICBzZXRUaW1lb3V0KCgpPT57ICAgICAgXHJcbiAgICAgIHRoaXMuY2hlY2tQb3NpdGlvbihmb3VuZEl0ZW0uaWQsXCJcIix1bmRlZmluZWQsMCwwLHRydWUpOyAgICAgIFxyXG4gICAgfSk7XHJcbiAgICBsZXQgczE6c3RyaW5nID0nJztcclxuICAgIHRoaXMucmVnaXN0ZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW0pPT57XHJcbiAgICAgIHMxID0gczEgKyBgJHtpdGVtLmlkfTo8JHtpdGVtLmlzQ29sbGFwc2VkPzE6MH0+IGA7XHJcbiAgICB9KTtcclxuICB9ICBcclxuXHJcblxyXG4gIGhhbmRsZURyYWdFbmQoaWQ6c3RyaW5nKXsvL30sbGVmdDpudW1iZXIsdG9wOm51bWJlcil7XHJcbiAgICB0aGlzLmZpbmFsaXplT2JqZWN0Q2hhbmdlcyhpZCk7XHJcbiAgfVxyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogZmluYWxpemUgb2JqZWN0IGNoYW5nZXMgKHBvc2l0aW9uKS4gb2JqZWN0IG11c3QgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgbGF5b3V0IG1hbmFnZXJcclxuICAqIG9iamVjdDogb2JqZWN0IHRvIGZpbmFsaXplICBcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgZmluYWxpemVPYmplY3RDaGFuZ2VzKGlkOnN0cmluZyk6dm9pZCB7XHJcbiAgICBjb25zdCBpdGVtOkxheW91dE1hbmFnZXJJdGVtfG51bGwgID0gdGhpcy5nZXRJdGVtKGlkKTtcclxuICAgIGlmKCFpdGVtKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2dldERvbUVsZW1lbnQoaXRlbSwnJyk7XHJcbiAgICBpZighZWxlbWVudCl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTsgIFxyXG4gICAgY29uc3QgdG9wID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS50b3AsIDEwKTtcclxuICAgIGNvbnN0IGxlZnQgPSBwYXJzZUludChjb21wdXRlZFN0eWxlLmxlZnQsIDEwKTtcclxuICAgIFxyXG4gICAgY29uc3QgZWxlbWVudFJlY3QgPSB0aGlzLl9nZXRFbGVtZW50UmVjdChpdGVtLHVuZGVmaW5lZCx1bmRlZmluZWQpO1xyXG4gICAgdGhpcy5fc2V0T2JqZWN0Q29uZmlnKGl0ZW0sbGVmdCx0b3AsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudFJlY3QgJiYgZWxlbWVudFJlY3Qud2lkdGggPiAwID8gZWxlbWVudFJlY3Qud2lkdGg6MCAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudFJlY3QgJiYgZWxlbWVudFJlY3QuaGVpZ2h0ID4gMCA/IGVsZW1lbnRSZWN0LmhlaWdodDowKTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
351
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9sYXlvdXQtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQWlDdkMsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUFvQixxQkFBMkMsRUFDM0MsbUJBQXdDO1FBRHhDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFDM0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUY1RCxxQkFBZ0IsR0FBeUMsSUFBSSxlQUFlLENBQXNCLEVBQUUsQ0FBQyxDQUFBO1FBSTdGLG9CQUFlLEdBQXVCLEVBQUUsQ0FBQztRQUtqRCxXQUFNLEdBQVUscUJBQXFCLENBQUM7SUFObEMsQ0FBQztJQUdMLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUlIOztrRkFFOEU7SUFDNUUsY0FBYyxDQUFDLEdBQWMsRUFBRSxFQUFTLEVBQUUsUUFBMkIsRUFBRSxnQkFBd0IsRUFBQyxPQUFjLEdBQUcsRUFBRSxNQUFhLEdBQUcsRUFBQyxRQUFlLENBQUMsRUFBRSxTQUFnQixDQUFDO1FBQ3JLLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUMsS0FBSyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDOUIsSUFBRyxNQUFNLEVBQUMsQ0FBQztnQkFDVCxVQUFVLEdBQUcsS0FB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QUMsS0FBSyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQzFELFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQzsrR0E3V1Usb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuL3Jlc2l6ZS1vYnNlcnZlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9ICAgZnJvbSAnLi9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuLy9pbXBvcnQgeyBJdGVtc0xpc3QgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdC9saWIvaXRlbXMtbGlzdCc7XHJcbi8vaW1wb3J0IHsgTm90Rm91bmRFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGF5b3V0TWFuYWdlckl0ZW0ge1xyXG4gIGVsZW1lbnQ6RWxlbWVudFJlZjtcclxuICBpZDogc3RyaW5nO1xyXG4gIHNlbGVjdG9yPzpzdHJpbmc7XHJcbiAgaXNDb2xsYXBzZWQ6Ym9vbGVhbjtcclxuICByZW1lbWJlclBvc2l0aW9uPzpib29sZWFuXHJcbiAgbGVmdD86IG51bWJlcjtcclxuICB0b3A/Om51bWJlcjtcclxuICB3aWR0aD86bnVtYmVyO1xyXG4gIGhlaWdodD86bnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExheW91dE1hbmFnZXJDb25maWdJdGVtIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIGlzQ29sbGFwc2VkOmJvb2xlYW47ICBcclxuICBsZWZ0PzogbnVtYmVyO1xyXG4gIHRvcD86bnVtYmVyOyAgXHJcbiAgd2lkdGg/Om51bWJlcjtcclxuICBoZWlnaHQ/Om51bWJlcjtcclxufVxyXG5cclxuXHJcbmludGVyZmFjZSBMYXlvdXRNYW5hZ2VyQ29uZmlnIHtcclxuICBba2V5OnN0cmluZ106IExheW91dE1hbmFnZXJDb25maWdJdGVtXHJcbn1cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTGF5b3V0TWFuYWdlclNlcnZpY2Uge1xyXG5cclxuICByZWdpc3RlcmVkSXRlbXMkOiBCZWhhdmlvclN1YmplY3Q8TGF5b3V0TWFuYWdlckl0ZW1bXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PExheW91dE1hbmFnZXJJdGVtW10+KFtdKVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzaXplT2JzZXJ2ZXJTZXJ2aWNlOlJlc2l6ZU9ic2VydmVyU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGxvY2FsU3RvcmFnZVNlcnZpY2UgOkxvY2FsU3RvcmFnZVNlcnZpY2UgXHJcbiAgKSB7IH1cclxuICBwcml2YXRlIHJlZ2lzdGVyZWRJdGVtczpMYXlvdXRNYW5hZ2VySXRlbVtdID0gW107XHJcbiAgXHJcbiAgZ2V0IFJlZ2lzdGVyZWRJdGVtcygpOiBMYXlvdXRNYW5hZ2VySXRlbVtdIHtcclxuICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyZWRJdGVtcztcclxuICB9XHJcbiAgQ09ORklHOnN0cmluZyA9ICdsYXlvdXRNYW5hZ2VyQ29uZmlnJztcclxuXHJcbiAgXHJcbi8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiByZWdpc3RlciBvYmplY3QuIG9iamVjdCBtdXN0IGhhdmUgdW5pcXVlIGlkIG9yIGVsZW1lbnRJZFxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICByZWdpc3Rlck9iamVjdChvYmo6RWxlbWVudFJlZiwgaWQ6c3RyaW5nLCBzZWxlY3RvcjpzdHJpbmcgfCB1bmRlZmluZWQsIHJlbWVtYmVyUG9zaXRpb246Ym9vbGVhbixsZWZ0Om51bWJlciA9IDEwMCwgdG9wOm51bWJlciA9IDEwMCx3aWR0aDpudW1iZXIgPSAwLCBoZWlnaHQ6bnVtYmVyID0gMCkge1xyXG4gICAgbGV0IGZvdW5kSW5kZXggPSAtMTtcclxuICAgIGlmKHRoaXMucmVnaXN0ZXJlZEl0ZW1zLnNvbWUoKGl0ZW0saW5kZXgpID0+IHtcclxuICAgICAgICBjb25zdCByZXR2YWwgPSBpdGVtLmlkID09PSBpZDtcclxuICAgICAgICBpZihyZXR2YWwpe1xyXG4gICAgICAgICAgZm91bmRJbmRleCA9IGluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmV0dmFsO1xyXG4gICAgICB9KSl7XHJcbiAgICAgIGlmKGZvdW5kSW5kZXggPj0gMCl7XHJcbiAgICAgICAgdGhpcy5yZWdpc3RlcmVkSXRlbXMuc3BsaWNlKGZvdW5kSW5kZXgsMSk7XHJcbiAgICAgIH0gICAgICBcclxuICAgIH1cclxuICAgIGNvbnN0IG5ld0l0ZW06IExheW91dE1hbmFnZXJJdGVtID0geyBcclxuICAgICAgZWxlbWVudDpvYmosXHJcbiAgICAgIGlkOmlkLFxyXG4gICAgICBzZWxlY3RvcjpzZWxlY3RvcixcclxuICAgICAgcmVtZW1iZXJQb3NpdGlvbjohIXJlbWVtYmVyUG9zaXRpb24sXHJcbiAgICAgIGxlZnQ6bGVmdCxcclxuICAgICAgdG9wOnRvcCxcclxuICAgICAgd2lkdGg6d2lkdGgsXHJcbiAgICAgIGhlaWdodDpoZWlnaHQsXHJcbiAgICAgIGlzQ29sbGFwc2VkOiBmYWxzZSAgICBcclxuICAgICB9O1xyXG5cclxuICAgIHRoaXMucmVnaXN0ZXJlZEl0ZW1zLnB1c2gobmV3SXRlbSk7XHJcbiAgICB0aGlzLnJlZ2lzdGVyZWRJdGVtcyQubmV4dCh0aGlzLnJlZ2lzdGVyZWRJdGVtcyk7XHJcbiAgICB0aGlzLl9pbml0T2JqZWN0KG5ld0l0ZW0pO1xyXG4gIH1cclxuICBcclxuICBfaW5pdE9iamVjdChvYmo6TGF5b3V0TWFuYWdlckl0ZW0pe1xyXG4gICAgdGhpcy5fYWRqdXN0T2JqZWN0QnlDb25maWcob2JqKTtcclxuICAgIHRoaXMuX2FkanVzdE9iamVjdEJ5V2luZG93U2l6ZShvYmopO1xyXG4gICAgXHJcbiAgfVxyXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiBnZXQgb2JqZWN0IGNvbmZpZ3VyYXRpb25cclxuICAqIHJldHVybiB7bGVmdCwgdG9wLCB3aWR0aCwgaGVpZ3RofVxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBfZ2V0T2JqZWN0Q29uZmlnKG9iajpMYXlvdXRNYW5hZ2VySXRlbSk6TGF5b3V0TWFuYWdlckNvbmZpZ0l0ZW18bnVsbCB7XHJcbiAgICBpZighb2JqKXtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWdWYWx1ZSA9IHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuQ09ORklHKTtcclxuICAgIGNvbnN0ICBjb25maWcgPSBjb25maWdWYWx1ZSA/IEpTT04ucGFyc2UoY29uZmlnVmFsdWUpIDoge307XHJcbiAgICBjb25zdCAgb2JqSWQgPSBvYmouaWQgO1xyXG4gICAgbGV0IGNvbmZpZ09iaiA9IGNvbmZpZ1tvYmpJZF07XHJcbiAgICBpZighY29uZmlnT2JqKSB7XHJcbiAgICAgIGNvbmZpZ09iaiA9IHtpZDpvYmpJZCxsZWZ0Om9iai5sZWZ0LHRvcDpvYmoudG9wLHdpZHRoOm9iai53aWR0aCxoZWlnaHQ6b2JqLmhlaWdodH07ICAgICAgICBcclxuICAgIH1cclxuICAgIHJldHVybiBjb25maWdPYmo7XHJcbiAgfVxyXG5cclxuICBfYWRqdXN0T2JqZWN0QnlDb25maWcob2JqOkxheW91dE1hbmFnZXJJdGVtKXtcclxuICAgIGNvbnN0IGNvbmZpZzpMYXlvdXRNYW5hZ2VyQ29uZmlnSXRlbXxudWxsID0gdGhpcy5fZ2V0T2JqZWN0Q29uZmlnKG9iaik7XHJcbiAgICBpZighY29uZmlnKXtcclxuICAgICAgcmV0dXJuOyAgICAgIFxyXG4gICAgfVxyXG4gICAgY29uc3QgIHBhcmVudEVsZW1lbnQgPSB0aGlzLl9nZXREb21QYXJlbnRFbGVtZW50KG9iaik7XHJcbiAgICBjb25zdCAgaW50ZXJuYWxFbGVtZW50ID0gdGhpcy5fZ2V0RG9tSW50ZXJuYWxFbGVtZW50KG9iaiwnJyk7XHJcbiAgICBpZighcGFyZW50RWxlbWVudCB8fCAhaW50ZXJuYWxFbGVtZW50KXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcGFyZW50RWxlbWVudC5zdHlsZS5sZWZ0ID0gKGNvbmZpZy5sZWZ0KSArICdweCc7XHJcbiAgICBwYXJlbnRFbGVtZW50LnN0eWxlLnRvcCA9IChjb25maWcudG9wKSArICdweCc7XHJcbiAgICBpZihjb25maWcud2lkdGggJiYgY29uZmlnLndpZHRoID4gMCl7XHJcbiAgICAgIGludGVybmFsRWxlbWVudC5zdHlsZS53aWR0aCA9IGNvbmZpZy53aWR0aCArICdweCc7XHJcbiAgICB9XHJcbiAgICBpZihjb25maWcuaGVpZ2h0ICYmIGNvbmZpZy5oZWlnaHQgPiAwKXtcclxuICAgICAgaW50ZXJuYWxFbGVtZW50LnN0eWxlLmhlaWdodCA9IGNvbmZpZy5oZWlnaHQgKyAncHgnO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLmNoZWNrUG9zaXRpb24ob2JqLmlkLFwiXCIsdW5kZWZpbmVkLDAsMCx0cnVlKTsgICAgXHJcbiAgfVxyXG5cclxuICBfYWRqdXN0T2JqZWN0QnlXaW5kb3dTaXplKG9iajpMYXlvdXRNYW5hZ2VySXRlbSl7XHJcbiAgICB0aGlzLmNoZWNrUG9zaXRpb24ob2JqLmlkLFwiXCIsdW5kZWZpbmVkLDAsMCx0cnVlKTsgIFxyXG4gIH1cclxuICBcclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogcmV0dXJucyBvYmplY3QgIHJlZ2lzdGVyZWQgaW4gdGhlIGxheW91dCBtYW5hZ2VyIFxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBnZXRJdGVtKGlkOiBzdHJpbmcgKTpMYXlvdXRNYW5hZ2VySXRlbXxudWxsIHsgICBcclxuICAgIGxldCBmb3VuZEl0ZW06TGF5b3V0TWFuYWdlckl0ZW18bnVsbCA9IG51bGw7XHJcbiAgICB0aGlzLnJlZ2lzdGVyZWRJdGVtcy5mb3JFYWNoKGl0ZW0gPT57XHJcbiAgICAgIGlmKGl0ZW0uaWQgPT09IGlkKXtcclxuICAgICAgICBmb3VuZEl0ZW0gPSBpdGVtO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmb3VuZEl0ZW07XHJcbiAgfVxyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogc2V0IG9iamVjdCBjb25maWd1cmF0aW9uXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIF9zZXRPYmplY3RDb25maWcob2JqOkxheW91dE1hbmFnZXJJdGVtLCBsZWZ0Om51bWJlcix0b3A6bnVtYmVyLHdpZHRoOm51bWJlcixoZWlnaHQ6bnVtYmVyKSB7XHJcbiAgICBjb25zdCBvYmpJZCA9IG9iaj8uaWQgO1xyXG4gICAgaWYgKCFvYmpJZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgY29uZmlnID0gdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldE9iamVjdCh0aGlzLkNPTkZJRykgYXMgTGF5b3V0TWFuYWdlckNvbmZpZztcclxuICAgIC8vbGV0IGNvbmZpZyA9IGNvbmZpZ1ZhbHVlICYmIEpTT04ucGFyc2UoY29uZmlnVmFsdWUpIGFzIExheW91dE1hbmFnZXJDb25maWc7XHJcbiAgICBpZiAoIWNvbmZpZykge1xyXG4gICAgICBjb25maWcgPSB7fTtcclxuICAgIH1cclxuICAgIGlmKG9iaj8uaXNDb2xsYXBzZWQpeyAgLy8gZG8gbm90IG92ZXJ0YWtlIGNvbGxhcHNlZCBzaXplXHJcbiAgICAgIGlmICghY29uZmlnW29iaklkXSkgeyAgICAgICAgXHJcbiAgICAgICAgY29uZmlnW29iaklkXSA9IG9iajtcclxuICAgICAgfVxyXG4gICAgICBjb25maWdbb2JqSWRdLmxlZnQgPSBsZWZ0O1xyXG4gICAgICBjb25maWdbb2JqSWRdLnRvcCAgPSB0b3A7XHJcbiAgICAgIC8vY29uZmlnW29iaklkXS53aWR0aCA9IHdpZHRoO1xyXG4gICAgICAvL2NvbmZpZ1tvYmpJZF0uaGVpZ2h0ID0gaGVpZ2h0IDtcclxuICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldE9iamVjdCh0aGlzLkNPTkZJRywgY29uZmlnKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5ld0l0ZW0gOkxheW91dE1hbmFnZXJDb25maWdJdGVtID0ge1xyXG4gICAgICBpZDogb2JqSWQsXHJcbiAgICAgIGlzQ29sbGFwc2VkOiBmYWxzZSxcclxuICAgICAgbGVmdDogbGVmdCxcclxuICAgICAgdG9wOiB0b3AsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHRcclxuICAgIH07XHJcbiAgICBjb25maWdbb2JqSWRdID0gbmV3SXRlbTtcclxuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXRPYmplY3QodGhpcy5DT05GSUcsY29uZmlnKTtcclxuICB9XHJcbiAgX2dldERvbVBhcmVudEVsZW1lbnQoaXRlbTpMYXlvdXRNYW5hZ2VySXRlbSApOkhUTUxFbGVtZW50fG51bGwge1xyXG4gICAgY29uc3QgZWxlbWVudDpIVE1MRWxlbWVudCA9IGl0ZW0uZWxlbWVudD8ubmF0aXZlRWxlbWVudDsvLz8uc2hhZG93Um9vdCB8fCBpdGVtLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7ICAgIFxyXG4gICAgaWYoIWVsZW1lbnQpe1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdfZ2V0RG9tUGFyZW50RWxlbWVudDogbWlzc2luZyBlbGVtZW50Jyk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVsZW1lbnQ7ICAgIFxyXG4gIH1cclxuXHJcbiAgX2dldERvbUludGVybmFsRWxlbWVudChpdGVtOkxheW91dE1hbmFnZXJJdGVtLHNlbGVjdG9yOnN0cmluZyB8IHVuZGVmaW5lZCApOkhUTUxFbGVtZW50fG51bGwge1xyXG4gICAgY29uc3QgZWxlbWVudDpIVE1MRWxlbWVudCA9IGl0ZW0uZWxlbWVudD8ubmF0aXZlRWxlbWVudD8uc2hhZG93Um9vdCB8fCBpdGVtLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7ICAgIFxyXG4gICAgaWYoIWVsZW1lbnQpe1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdfZ2V0RG9tSW50ZXJuYWxFbGVtZW50OiBtaXNzaW5nIGVsZW1lbnQnKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBteVNlbGVjdG9yID1zZWxlY3RvciAmJiBzZWxlY3Rvcj8ubGVuZ3RoID4gMCA/c2VsZWN0b3I6aXRlbS5zZWxlY3RvcjsgICBcclxuICAgIGNvbnN0IHJldHZhbDogSFRNTEVsZW1lbnR8bnVsbD0gbXlTZWxlY3Rvcj9lbGVtZW50LnF1ZXJ5U2VsZWN0b3IobXlTZWxlY3Rvcik6ZWxlbWVudDtcclxuICAgIGlmKCFyZXR2YWwpe1xyXG4gICAgICBjb25zb2xlLmVycm9yKGBfZ2V0RG9tSW50ZXJuYWxFbGVtZW50OiBzZWxlY3Rpb24gb2YgZWxlbWVudCAke2VsZW1lbnR9ICBmYWlsZWQgd2l0aCBzZWxlY3RvciAke215U2VsZWN0b3J9YCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmV0dmFsO1xyXG4gIH1cclxuXHJcblxyXG4gIF9nZXRFbGVtZW50UmVjdChpdGVtOkxheW91dE1hbmFnZXJJdGVtLHNlbGVjdG9yOnN0cmluZyB8IHVuZGVmaW5lZCAscGFyZW50UmVjdGFuZ2xlOkRPTVJlY3QgfHVuZGVmaW5lZCApOkRPTVJlY3QgfCBudWxse1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRPYmogOiBIVE1MRWxlbWVudHxudWxsID0gdGhpcy5fZ2V0RG9tSW50ZXJuYWxFbGVtZW50KGl0ZW0sc2VsZWN0b3IpO1xyXG4gICAgaWYoIXNlbGVjdGVkT2JqKXtcclxuICAgICAgY29uc29sZS5lcnJvcignX2dldEVsZW1lbnRSZWN0OiBtaXNzaW5nIHNlbGVjdGVkIG9iamVjdCcpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwYXJlbnRSZWN0OkRPTVJlY3QgPSAgcGFyZW50UmVjdGFuZ2xlIHx8ICB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS5nZXRQYXJlbnRBcHBSZWN0KCk7XHJcbiAgICBpZiggIXBhcmVudFJlY3QgfHwgIHBhcmVudFJlY3Q/LndpZHRoPD0xIHx8IHBhcmVudFJlY3Q/LmhlaWdodDw9MSApIHtcclxuICAgICAgY29uc29sZS5lcnJvcignX2dldEVsZW1lbnRSZWN0OiBtaXNzaW5nIHBhcmVudCByZWN0Jyk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgIGVsZW1lbnRSZWN0OkRPTVJlY3R8bnVsbCA9IHNlbGVjdGVkT2JqLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYoIWVsZW1lbnRSZWN0KXtcclxuICAgICAgY29uc29sZS5lcnJvcignX2dldEVsZW1lbnRSZWN0OiBtaXNzaW5nIGJvdW5kaW5nIHJlY3QnKTtcclxuICAgIH1cclxuICAgIHJldHVybiBlbGVtZW50UmVjdDtcclxuICB9XHJcblxyXG4gIC8vIGNoZWNrcyB3aGV0aGVyIGVsZW1lbnQgb3IgZWxlbWVudCB3aXRoIGFkZGl0aW9uYWwgc2VsZWN0aW9uIG9mIHN1YmVsZW1lbnQgaXMgcGxhY2VkIHdpdGhpbiB0aGUgZ2l2ZSByZWN0YW5nbGVcclxuICAvLyBpZiBub3QgdGhlbiBjYWxjdWxhdGVzIHRoZSBvZmZzZXQgdG8gYmUgbW92ZWQgdG8gZml0IGluXHJcbiAgY2hlY2tQb3NpdGlvbihpZDpzdHJpbmcsc2VsZWN0b3I6c3RyaW5nLHBhcmVudFJlY3RhbmdsZTpET01SZWN0fHVuZGVmaW5lZCAsZGVsdGFYOm51bWJlcixkZWx0YVk6bnVtYmVyLGZvcmNlQ2hlY2s6Ym9vbGVhbiA9IGZhbHNlKXtcclxuICAgIGlmKCFpZCl7XHJcbiAgICAgIHJldHVybiB7ZGVsdGFYOjAsZGVsdGFZOjB9O1xyXG4gICAgfVxyXG4gICAgY29uc3QgZTEgPSB0aGlzLmdldEl0ZW0oaWQpO1xyXG4gICAgaWYoIWUxKXtcclxuICAgICAgcmV0dXJuIHtkZWx0YVg6MCxkZWx0YVk6MH07XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXJlbnRSZWN0OkRPTVJlY3QgPSAgcGFyZW50UmVjdGFuZ2xlIHx8ICB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS5nZXRQYXJlbnRBcHBSZWN0KCk7XHJcbiAgICBjb25zdCBlbGVtZW50UmVjdDpET01SZWN0IHwgbnVsbCA9IHRoaXMuX2dldEVsZW1lbnRSZWN0KGUxLHNlbGVjdG9yLHBhcmVudFJlY3QpO1xyXG4gICAgaWYoIWVsZW1lbnRSZWN0KXtcclxuICAgICAgY29uc29sZS5lcnJvcignY2hlY2tQb3NpdGlvbjogbWlzc2luZyBlbGVtZW50UmVjdCcpO1xyXG4gICAgICByZXR1cm4ge2RlbHRhWDowLGRlbHRhWTowfTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYoIWVsZW1lbnRSZWN0Py53aWR0aCB8fCAhZWxlbWVudFJlY3Q/LmhlaWdodCl7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2NoZWNrUG9zaXRpb246ZWxlbWVudCByZWN0IGVtcHR5ICcpO1xyXG4gICAgICByZXR1cm4ge2RlbHRhWDowLGRlbHRhWTowfTtcclxuICAgIH0gXHJcbiAgICBsZXQgY2hlY2tCb3VuZGFyaWVzID0gdHJ1ZTtcclxuICAgIGlmKHRoaXMuX2lzSW5zaWRlUmVjdChlbGVtZW50UmVjdCwgcGFyZW50UmVjdCkgPT09IGZhbHNlICYmICFmb3JjZUNoZWNrKSB7XHJcbiAgICAgIGNoZWNrQm91bmRhcmllcyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gXHJcbiAgICAvLyBjb3B5IG9mIHJlYWwgZWxlbWVudCByZWN0YW5nbGUgdG8gcGVyZm9ybSBjYWxjdWxhdGlvbiBvdmVyIGJlZm9yZSBzZXQgdG8gdGhlIHJlYWwgZWxlbWVudFxyXG4gICAgY29uc3QgZWxlbWVudERPTVJlY3QgPSBET01SZWN0LmZyb21SZWN0KGVsZW1lbnRSZWN0KTtcclxuXHJcbiAgICAvL3NldCB0aGUgZWxlbWVudCByZWN0YW5nbGUgYnkgZGVsdGFzXHJcbiAgICB0aGlzLl90cmFuc2xhdGVSZWN0YW5nbGUoZWxlbWVudERPTVJlY3QsIGRlbHRhWCwgZGVsdGFZKTtcclxuXHJcbiAgICBpZihjaGVja0JvdW5kYXJpZXMpIHtcclxuICAgICAgaWYodGhpcy5faXNJbnNpZGVSZWN0KGVsZW1lbnRET01SZWN0LCBwYXJlbnRSZWN0KSA9PT0gZmFsc2UpIHtcclxuICAgICAgICBjb25zdCAgbmV3RWxlbWVudFBvcyA9IHRoaXMuZ2V0QWxpZ25lZFBvc2l0aW9uKGVsZW1lbnRET01SZWN0LCBwYXJlbnRSZWN0KTtcclxuICAgICAgICBkZWx0YVggPSBuZXdFbGVtZW50UG9zLnggLSBlbGVtZW50UmVjdC54O1xyXG4gICAgICAgIGRlbHRhWSA9IG5ld0VsZW1lbnRQb3MueSAtIGVsZW1lbnRSZWN0Lnk7XHJcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRlUmVjdGFuZ2xlKGVsZW1lbnRET01SZWN0LCBkZWx0YVgsIGRlbHRhWSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLl9pc0luc2lkZUxlZnRUb3BSZWN0KHBhcmVudFJlY3QsIGVsZW1lbnRET01SZWN0KSA9PT0gZmFsc2UpIHtcclxuICAgICAgICBjb25zdCBuZXdFbGVtZW50UG9zID0gdGhpcy5fZ2V0QWxpZ25lZExlZnRUb3BQb3NpdGlvbihlbGVtZW50RE9NUmVjdCwgcGFyZW50UmVjdCk7XHJcbiAgICAgICAgZGVsdGFYID0gbmV3RWxlbWVudFBvcy54IC0gZWxlbWVudFJlY3QueDtcclxuICAgICAgICBkZWx0YVkgPSBuZXdFbGVtZW50UG9zLnkgLSBlbGVtZW50UmVjdC55O1xyXG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZVJlY3RhbmdsZShlbGVtZW50RE9NUmVjdCwgZGVsdGFYLCBkZWx0YVkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLl9nZXREb21QYXJlbnRFbGVtZW50KGUxKTtcclxuICAgIGlmKCFzZWxlY3RlZEVsZW1lbnQpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoc2VsZWN0ZWRFbGVtZW50KTtcclxuICAgIGNvbnN0IHRvcCA9IHBhcnNlSW50KGNvbXB1dGVkU3R5bGUudG9wLCAxMCk7XHJcbiAgICBjb25zdCBsZWZ0ID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5sZWZ0LCAxMCk7XHJcbiAgICBzZWxlY3RlZEVsZW1lbnQuc3R5bGUudG9wID0gKHRvcCArIGRlbHRhWSkgKyAncHgnO1xyXG4gICAgc2VsZWN0ZWRFbGVtZW50LnN0eWxlLmxlZnQgPSAobGVmdCArIGRlbHRhWCkgKyAncHgnO1xyXG4gICAgcmV0dXJuIHtkZWx0YVgsZGVsdGFZfTtcclxuICB9XHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIGZpbmQgaWYgcmVjdGFuZ2xlIDEgaXMgaW5zaWRlIHJlY3RhbmdsZSAyXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIF9pc0luc2lkZVJlY3QocjE6RE9NUmVjdCwgcjI6RE9NUmVjdCkge1xyXG4gICAgaWYoIXIxIHx8ICFyMikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gIHIyLmxlZnQgPD0gcjEubGVmdCAgJiYgcjIudG9wIDw9IHIxLnRvcCAmJiByMi5yaWdodCA+PSByMS5yaWdodCAmJiByMi5ib3R0b20gPj0gcjEuYm90dG9tO1xyXG4gIH1cclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIGZpbmQgaWYgcmVjdGFuZ2xlcyBkbyBub3Qgb3ZlcmxhcCB0aGUgbGVmdCBhbmQgdG9wIHNpZGVzXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIF9pc0luc2lkZUxlZnRUb3BSZWN0KHIxOkRPTVJlY3QsIHIyOkRPTVJlY3QpIHtcclxuICAgIGlmKCFyMSB8fCAhcjIpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgIHIxSW5zaWRlID0gcjIubGVmdCA8PSByMS5sZWZ0ICAmJiByMi50b3AgPD0gcjEudG9wO1xyXG4gICAgY29uc3QgIHIySW5zaWRlID0gcjEubGVmdCA8PSByMi5sZWZ0ICAmJiByMS50b3AgPD0gcjIudG9wO1xyXG4gICAgcmV0dXJuIHIxSW5zaWRlIHx8IHIySW5zaWRlO1xyXG4gIH1cclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIGdldCBwb3NpdGlvbiBvZiByMSBhbGlnbmVkIHdpdGggdGhlIHIyIHNpZGVzXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIGdldEFsaWduZWRQb3NpdGlvbihyMTpET01SZWN0LCByMjpET01SZWN0KSB7XHJcbiAgICBpZighcjEgfHwgIXIyKSB7XHJcbiAgICAgIHJldHVybiB7eDowLHk6MH07XHJcbiAgICB9XHJcbiAgICBjb25zdCB0byA9IHsgeDogcjEueCwgeTogcjEueSB9O1xyXG4gICAgLy9hbGlnbiBsZWZ0IG9yIHJpZ2h0IHNpZGVzLiBwcmVmZXJhYmx5IGxlZnRcclxuICAgIGlmKHIxLmxlZnQgPCByMi5sZWZ0KSB7XHJcbiAgICAgIHRvLnggPSByMi54O1xyXG4gICAgfSBlbHNlIGlmKHIxLnJpZ2h0ID4gcjIucmlnaHQpIHtcclxuICAgICAgdG8ueCA9IHIyLnJpZ2h0IC0gcjEud2lkdGg7XHJcbiAgICB9XHJcbiAgICAvL2FsaWduIHRvcCBvciBib3R0b20uIHByZWZlcmFibHkgdG9wXHJcbiAgICBpZihyMS50b3AgPCByMi50b3ApIHtcclxuICAgICAgdG8ueSA9IHIyLnk7XHJcbiAgICB9IGVsc2UgaWYocjEuYm90dG9tID4gcjIuYm90dG9tKSB7XHJcbiAgICAgIHRvLnkgPSByMi5ib3R0b20gLSByMS5oZWlnaHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG87XHJcbiAgfVxyXG4gIFxyXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiBnZXQgcG9zaXRpb24gb2YgcjEgYWxpZ25lZCB3aXRoIHRoZSByMiBsZWZ0LCB0b3Agc2lkZXNcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX2dldEFsaWduZWRMZWZ0VG9wUG9zaXRpb24ocjE6RE9NUmVjdCwgcjI6RE9NUmVjdCkge1xyXG4gICAgaWYoIXIxIHx8ICFyMikge1xyXG4gICAgICByZXR1cm4gIHt4OjAseTowfTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCAgdG8gPSB7IHg6IHIxLngsIHk6IHIxLnkgfTtcclxuICAgIC8vYWxpZ24gbGVmdFxyXG4gICAgaWYocjEubGVmdCA8IHIyLmxlZnQpIHtcclxuICAgICAgdG8ueCA9IHIyLng7XHJcbiAgICB9XHJcbiAgICAvL2FsaWduIHRvcFxyXG4gICAgaWYocjEudG9wIDwgcjIudG9wKSB7XHJcbiAgICAgIHRvLnkgPSByMi55O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvO1xyXG4gIH1cclxuXHJcbiAgIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiB0cmFuc2xhdGUgcmVjdGFuZ2xlIGJ5IHgsIHlcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX3RyYW5zbGF0ZVJlY3RhbmdsZShyZWN0OkRPTVJlY3QsIHRyYW5zbGF0ZVg6bnVtYmVyLCB0cmFuc2xhdGVZOm51bWJlcikge1xyXG4gICAgaWYoIXJlY3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcmVjdC54ICs9IHRyYW5zbGF0ZVg7XHJcbiAgICByZWN0LnkgKz0gdHJhbnNsYXRlWTtcclxuICAgIHJldHVybiByZWN0O1xyXG4gIH1cclxuICBcclxuICB1cGRhdGVDb2xsYXBzZWQodmFsdWU6Ym9vbGVhbiwgaWQ6c3RyaW5nID0gJycpOnZvaWR7ICAgIFxyXG4gICAgY29uc3QgIGZvdW5kSXRlbSA9IHRoaXMuZ2V0SXRlbShpZCk7XHJcbiAgICBpZighZm91bmRJdGVtKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZm91bmRJdGVtLmlzQ29sbGFwc2VkID0gdmFsdWU7XHJcbiAgICB0aGlzLnJlZ2lzdGVyZWRJdGVtcyQubmV4dCh0aGlzLnJlZ2lzdGVyZWRJdGVtcyk7XHJcbiAgICBzZXRUaW1lb3V0KCgpPT57ICAgICAgXHJcbiAgICAgIHRoaXMuY2hlY2tQb3NpdGlvbihmb3VuZEl0ZW0uaWQsXCJcIix1bmRlZmluZWQsMCwwLHRydWUpOyAgICAgIFxyXG4gICAgfSk7XHJcbiAgICBsZXQgczE6c3RyaW5nID0nJztcclxuICAgIHRoaXMucmVnaXN0ZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW0pPT57XHJcbiAgICAgIHMxID0gczEgKyBgJHtpdGVtLmlkfTo8JHtpdGVtLmlzQ29sbGFwc2VkPzE6MH0+IGA7XHJcbiAgICB9KTtcclxuICB9ICBcclxuXHJcblxyXG4gIGhhbmRsZURyYWdFbmQoaWQ6c3RyaW5nKXsvL30sbGVmdDpudW1iZXIsdG9wOm51bWJlcil7XHJcbiAgICB0aGlzLmZpbmFsaXplT2JqZWN0Q2hhbmdlcyhpZCk7XHJcbiAgfVxyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogZmluYWxpemUgb2JqZWN0IGNoYW5nZXMgKHBvc2l0aW9uKS4gb2JqZWN0IG11c3QgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgbGF5b3V0IG1hbmFnZXJcclxuICAqIG9iamVjdDogb2JqZWN0IHRvIGZpbmFsaXplICBcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgZmluYWxpemVPYmplY3RDaGFuZ2VzKGlkOnN0cmluZyk6dm9pZCB7XHJcbiAgICBjb25zdCBpdGVtOkxheW91dE1hbmFnZXJJdGVtfG51bGwgID0gdGhpcy5nZXRJdGVtKGlkKTtcclxuICAgIGlmKCFpdGVtKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2dldERvbVBhcmVudEVsZW1lbnQoaXRlbSk7XHJcbiAgICBpZighZWxlbWVudCl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTsgIFxyXG4gICAgY29uc3QgdG9wID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS50b3AsIDEwKTtcclxuICAgIGNvbnN0IGxlZnQgPSBwYXJzZUludChjb21wdXRlZFN0eWxlLmxlZnQsIDEwKTtcclxuICAgIFxyXG4gICAgY29uc3QgZWxlbWVudFJlY3QgPSB0aGlzLl9nZXRFbGVtZW50UmVjdChpdGVtLHVuZGVmaW5lZCx1bmRlZmluZWQpO1xyXG4gICAgdGhpcy5fc2V0T2JqZWN0Q29uZmlnKGl0ZW0sbGVmdCx0b3AsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudFJlY3QgJiYgZWxlbWVudFJlY3Qud2lkdGggPiAwID8gZWxlbWVudFJlY3Qud2lkdGg6MCAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudFJlY3QgJiYgZWxlbWVudFJlY3QuaGVpZ2h0ID4gMCA/IGVsZW1lbnRSZWN0LmhlaWdodDowKTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -814,17 +814,18 @@ class LayoutManagerService {
814
814
  if (!config) {
815
815
  return;
816
816
  }
817
- const element = this._getDomElement(obj, '');
818
- if (!element) {
817
+ const parentElement = this._getDomParentElement(obj);
818
+ const internalElement = this._getDomInternalElement(obj, '');
819
+ if (!parentElement || !internalElement) {
819
820
  return;
820
821
  }
821
- element.style.left = (config.left) + 'px';
822
- element.style.top = (config.top) + 'px';
822
+ parentElement.style.left = (config.left) + 'px';
823
+ parentElement.style.top = (config.top) + 'px';
823
824
  if (config.width && config.width > 0) {
824
- element.style.width = config.width + 'px';
825
+ internalElement.style.width = config.width + 'px';
825
826
  }
826
827
  if (config.height && config.height > 0) {
827
- element.style.height = config.height + 'px';
828
+ internalElement.style.height = config.height + 'px';
828
829
  }
829
830
  this.checkPosition(obj.id, "", undefined, 0, 0, true);
830
831
  }
@@ -878,18 +879,31 @@ class LayoutManagerService {
878
879
  config[objId] = newItem;
879
880
  this.localStorageService.setObject(this.CONFIG, config);
880
881
  }
881
- _getDomElement(item, selector) {
882
+ _getDomParentElement(item) {
883
+ const element = item.element?.nativeElement; //?.shadowRoot || item.element?.nativeElement;
884
+ if (!element) {
885
+ console.error('_getDomParentElement: missing element');
886
+ return null;
887
+ }
888
+ return element;
889
+ }
890
+ _getDomInternalElement(item, selector) {
882
891
  const element = item.element?.nativeElement?.shadowRoot || item.element?.nativeElement;
883
892
  if (!element) {
884
- console.error('_getDomElement: missing element');
893
+ console.error('_getDomInternalElement: missing element');
885
894
  return null;
886
895
  }
887
896
  const mySelector = selector && selector?.length > 0 ? selector : item.selector;
888
- return mySelector ? element.querySelector(mySelector) : element;
897
+ const retval = mySelector ? element.querySelector(mySelector) : element;
898
+ if (!retval) {
899
+ console.error(`_getDomInternalElement: selection of element ${element} failed with selector ${mySelector}`);
900
+ }
901
+ return retval;
889
902
  }
890
903
  _getElementRect(item, selector, parentRectangle) {
891
- const selectedObj = this._getDomElement(item, selector);
904
+ const selectedObj = this._getDomInternalElement(item, selector);
892
905
  if (!selectedObj) {
906
+ console.error('_getElementRect: missing selected object');
893
907
  return null;
894
908
  }
895
909
  const parentRect = parentRectangle || this.resizeObserverService.getParentAppRect();
@@ -898,6 +912,9 @@ class LayoutManagerService {
898
912
  return null;
899
913
  }
900
914
  const elementRect = selectedObj.getBoundingClientRect();
915
+ if (!elementRect) {
916
+ console.error('_getElementRect: missing bounding rect');
917
+ }
901
918
  return elementRect;
902
919
  }
903
920
  // checks whether element or element with additional selection of subelement is placed within the give rectangle
@@ -913,11 +930,11 @@ class LayoutManagerService {
913
930
  const parentRect = parentRectangle || this.resizeObserverService.getParentAppRect();
914
931
  const elementRect = this._getElementRect(e1, selector, parentRect);
915
932
  if (!elementRect) {
916
- console.error('checkPosition: missing element');
933
+ console.error('checkPosition: missing elementRect');
917
934
  return { deltaX: 0, deltaY: 0 };
918
935
  }
919
936
  if (!elementRect?.width || !elementRect?.height) {
920
- console.error('checkPosition:missing element rect');
937
+ console.error('checkPosition:element rect empty ');
921
938
  return { deltaX: 0, deltaY: 0 };
922
939
  }
923
940
  let checkBoundaries = true;
@@ -944,7 +961,7 @@ class LayoutManagerService {
944
961
  this._translateRectangle(elementDOMRect, deltaX, deltaY);
945
962
  }
946
963
  }
947
- const selectedElement = this._getDomElement(e1, ''); //e1.element.nativeElement;
964
+ const selectedElement = this._getDomParentElement(e1);
948
965
  if (!selectedElement) {
949
966
  return;
950
967
  }
@@ -1055,7 +1072,7 @@ class LayoutManagerService {
1055
1072
  if (!item) {
1056
1073
  return;
1057
1074
  }
1058
- const element = this._getDomElement(item, '');
1075
+ const element = this._getDomParentElement(item);
1059
1076
  if (!element) {
1060
1077
  return;
1061
1078
  }
@@ -1603,7 +1620,7 @@ class BimplusFloatingBarHideObjectsComponent extends BimplusLocalizedWidgetCompo
1603
1620
  this.focusSelectorId = 'hide-menu-id';
1604
1621
  this.layoutManagerService = layoutManagerService;
1605
1622
  }
1606
- ngOnInit() {
1623
+ ngAfterViewInit() {
1607
1624
  // Subscribe to the observable
1608
1625
  this.layoutManagerService.registerObject(this.element, this.componentId, '.floating-panel.visible', true, DEFAULT_POSITION_LEFT$3, DEFAULT_POSITION_TOP$3);
1609
1626
  }
@@ -1649,7 +1666,7 @@ class BimplusFloatingBarIsolationObjectsComponent extends BimplusLocalizedWidget
1649
1666
  this.focusSelectorId = 'isolation-menu-id';
1650
1667
  this.componentId = 'isolation-menu-fp-id';
1651
1668
  }
1652
- ngOnInit() {
1669
+ ngAfterViewInit() {
1653
1670
  this.layoutManagerService.registerObject(this.element, this.componentId, '.floating-panel.visible', true, DEFAULT_POSITION_LEFT$2, DEFAULT_POSITION_TOP$2);
1654
1671
  }
1655
1672
  ngAfterViewChecked() {