@pepperi-addons/ngx-composite-lib 0.4.2-beta.74 → 0.4.2-beta.75

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.
@@ -223,7 +223,7 @@ export class SectionComponent extends BaseDestroyerDirective {
223
223
  this.sectionColumnKeyPrefix = this.layoutBuilderInternalService.getSectionColumnKey(this.key);
224
224
  }
225
225
  onEditSectionClick() {
226
- this.layoutBuilderInternalService.navigateToEditor('section', this.key);
226
+ this.layoutBuilderInternalService.navigateToEditor('section', this.key, '');
227
227
  }
228
228
  onRemoveSectionClick() {
229
229
  this.layoutBuilderInternalService.removeSection(this.key);
@@ -295,4 +295,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
295
295
  type: HostBinding,
296
296
  args: ['style.height']
297
297
  }] } });
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9zZWN0aW9uL3NlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi9zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFnQixLQUFLLEVBQXVFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEwsT0FBTyxFQUFFLHNCQUFzQixFQUFvQixpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7O0FBU3RHLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxzQkFBc0I7SUF5R3hELFlBQ1ksUUFBbUIsRUFDbkIsNEJBQTBELEVBQzFELGFBQStCO1FBRXZDLEtBQUssRUFBRSxDQUFDO1FBSkEsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBQzFELGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQXRHbEMsUUFBRyxHQUFXLEVBQUUsQ0FBQztRQUNqQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRW5CLFdBQU0sR0FBMEIsU0FBUyxDQUFDO1FBVTFDLFlBQU8sR0FBdUIsU0FBUyxDQUFDO1FBVXhDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQVduQyxhQUFRLEdBQW1DLEVBQUUsQ0FBQztRQVM5QyxZQUFPLEdBQXlCLEVBQUUsQ0FBQztRQWEzQyxtQkFBYyxHQUFHLE9BQU8sQ0FBQztRQUd6QixnQkFBVyxHQUFHLE9BQU8sQ0FBQztRQUVaLDRCQUF1QixHQUFhLEVBQUUsQ0FBQztRQXFCakQseUNBQXlDO1FBQy9CLDJCQUFz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SSxDQUFDLDRCQUE0QixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDN0YsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQW1CO1FBQzNCLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWlCO1FBQ3ZCLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsS0FBa0I7UUFDdkMsRUFBRTtJQUNOLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxLQUFtQjtRQUN6QyxFQUFFO0lBQ04sQ0FBQzs7NkdBdFRRLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLCtrQkNaN0IsdThHQTBDQTsyRkQ5QmEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNJLFNBQVM7MEtBS1ksbUJBQW1CO3NCQUFqRCxTQUFTO3VCQUFDLGtCQUFrQjtnQkFDRyxpQkFBaUI7c0JBQWhELFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUVyQixhQUFhO3NCQUFyQixLQUFLO2dCQUVHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUYsS0FBSztzQkFEUixLQUFLO2dCQVdGLE1BQU07c0JBRFQsS0FBSztnQkFXRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBWUYsT0FBTztzQkFEVixLQUFLO2dCQVVGLE1BQU07c0JBRFQsS0FBSztnQkFTRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdOLGNBQWM7c0JBRGIsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBSS9CLFdBQVc7c0JBRFYsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFF1ZXJ5TGlzdCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENka0RyYWcsIENka0RyYWdEcm9wLCBDZGtEcmFnRW5kLCBDZGtEcmFnRW50ZXIsIENka0RyYWdFeGl0LCBDZGtEcmFnU3RhcnQsIENka0Ryb3BMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBEYXRhVmlld1NjcmVlblNpemUsIFNwbGl0VHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9wYXBpLXNkayc7XG5pbXBvcnQgeyBCYXNlRGVzdHJveWVyRGlyZWN0aXZlLCBQZXBMYXlvdXRTZXJ2aWNlLCBQZXBTY3JlZW5TaXplVHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IExheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci1pbnRlcm5hbC5zZXJ2aWNlJztcbmltcG9ydCB7IElFZGl0b3IsIElQZXBMYXlvdXRTZWN0aW9uQ29sdW1uLCBQZXBMYXlvdXRTaXplVHlwZSB9IGZyb20gJy4uL2xheW91dC1idWlsZGVyLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzZWN0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VjdGlvbi5jb21wb25lbnQuc2NzcycsICcuL3NlY3Rpb24uY29tcG9uZW50LnRoZW1lLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZURlc3Ryb3llckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnc2VjdGlvbkNvbnRhaW5lcicpIHNlY3Rpb25Db250YWluZXJSZWYhOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2NvbHVtbnNXcmFwcGVyJykgY29sdW1uc0VsZW1lbnRSZWYhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cbiAgICBASW5wdXQoKSBibG9ja1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkga2V5OiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSAnJztcblxuICAgIHByaXZhdGUgX3NwbGl0OiBTcGxpdFR5cGUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KClcbiAgICBzZXQgc3BsaXQodmFsdWU6IFNwbGl0VHlwZSB8IHVuZGVmaW5lZCApIHtcbiAgICAgICAgdGhpcy5fc3BsaXQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICB9XG4gICAgZ2V0IHNwbGl0KCk6IFNwbGl0VHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zcGxpdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oZWlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBoZWlnaHQodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9oZWlnaHQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRTdHlsZUhlaWdodCgpO1xuICAgIH1cbiAgICBnZXQgaGVpZ2h0KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29sbGFwc2VPblRhYmxldDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvbGxhcHNlT25UYWJsZXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY29sbGFwc2VPblRhYmxldCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnBlcFNjcmVlblNpemVUb0ZsaXBUb1ZlcnRpY2FsID0gdmFsdWUgPyBQZXBTY3JlZW5TaXplVHlwZS5NRCA6IFBlcFNjcmVlblNpemVUeXBlLlNNO1xuICAgICAgICB0aGlzLnJlZnJlc2hTcGxpdCgpO1xuICAgIH1cbiAgICBnZXQgY29sbGFwc2VPblRhYmxldCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNlT25UYWJsZXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29sdW1uczogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+ID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgY29sdW1ucyh2YWx1ZTogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+KSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMgPSB2YWx1ZSB8fCBbXTtcbiAgICB9XG4gICAgZ2V0IGNvbHVtbnMoKTogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgX2hpZGVJbjogRGF0YVZpZXdTY3JlZW5TaXplW10gPSBbXTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBoaWRlSW4odmFsdWU6IERhdGFWaWV3U2NyZWVuU2l6ZVtdKSB7XG4gICAgICAgIHRoaXMuX2hpZGVJbiA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk7XG4gICAgfVxuICAgIGdldCBoaWRlSW4oKTogRGF0YVZpZXdTY3JlZW5TaXplW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZUluO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGNvbHVtbnNHYXAhOiBQZXBMYXlvdXRTaXplVHlwZTtcbiAgICAgICAgXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtaGVpZ2h0JylcbiAgICBzdHlsZU1heEhlaWdodCA9ICd1bnNldCc7XG4gICAgXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKVxuICAgIHN0eWxlSGVpZ2h0ID0gJ3Vuc2V0JztcbiAgICBcbiAgICBwcm90ZWN0ZWQgc2VjdGlvbnNDb2x1bW5zRHJvcExpc3Q6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBwcml2YXRlIF9lZGl0YWJsZSA9IGZhbHNlO1xuICAgIC8vIHByb3RlY3RlZCBzZXQgZWRpdGFibGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAvLyAgICAgdGhpcy5fZWRpdGFibGUgPSB2YWx1ZTtcbiAgICAvLyAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICAvLyB9XG4gICAgcHJvdGVjdGVkIGdldCBlZGl0YWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5lZGl0YWJsZVN0YXRlOztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zY3JlZW5TaXplITogUGVwU2NyZWVuU2l6ZVR5cGU7XG4gICAgcHJvdGVjdGVkIHNldCBzY3JlZW5TaXplKHZhbHVlOiBQZXBTY3JlZW5TaXplVHlwZSkge1xuICAgICAgICB0aGlzLl9zY3JlZW5TaXplID0gdmFsdWU7XG4gICAgICAgIHRoaXMucmVmcmVzaFNwbGl0KCk7XG4gICAgICAgIHRoaXMuc2V0U2NyZWVuVHlwZSgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgZ2V0IHNjcmVlblNpemUoKTogUGVwU2NyZWVuU2l6ZVR5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2NyZWVuU2l6ZTtcbiAgICB9XG5cbiAgICAvLyBQZXBTY3JlZW5TaXplVHlwZSA9IFBlcFNjcmVlblNpemVUeXBlO1xuICAgIHByb3RlY3RlZCBzZWN0aW9uQ29sdW1uS2V5UHJlZml4ID0gJyc7XG4gICAgXG4gICAgcHJvdGVjdGVkIGlzTWFpbkVkaXRvclN0YXRlID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIGlzRWRpdGluZyA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBzZWxlY3RlZFNlY3Rpb25LZXkgPSAnJztcbiAgICBwcm90ZWN0ZWQgc2VsZWN0ZWRCbG9ja0tleSA9ICcnO1xuICAgIFxuICAgIHByb3RlY3RlZCBjb250YWluc0Jsb2NrcyA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBzaG91bGRTZXREZWZhdWx0SGVpZ2h0ID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHBlcFNjcmVlblNpemVUb0ZsaXBUb1ZlcnRpY2FsID0gUGVwU2NyZWVuU2l6ZVR5cGUuU007XG4gICAgcHJvdGVjdGVkIHNjcmVlblR5cGUhOiBEYXRhVmlld1NjcmVlblNpemU7XG4gICAgcHJvdGVjdGVkIGhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBkcmFnZ2luZ0Jsb2NrS2V5OiBzdHJpbmcgPSAnJztcbiAgICBwcm90ZWN0ZWQgZHJhZ2dpbmdTZWN0aW9uS2V5OiBzdHJpbmcgPSAnJztcbiAgICBwcm90ZWN0ZWQgaG92ZXJTdGF0ZSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBsYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlOiBMYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IFBlcExheW91dFNlcnZpY2UsXG4gICAgKSB7IFxuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlSWZTZWN0aW9uQ29udGFpbnNCbG9ja3MoKSB7XG4gICAgICAgIHRoaXMuY29udGFpbnNCbG9ja3MgPSB0aGlzLmNvbHVtbnMuc29tZShjb2x1bW4gPT4gY29sdW1uLkJsb2NrQ29udGFpbmVyKTtcblxuICAgICAgICBpZiAodGhpcy5lZGl0YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5zaG91bGRTZXREZWZhdWx0SGVpZ2h0ID0gIXRoaXMuY29udGFpbnNCbG9ja3M7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNjcmVlblR5cGUoKSB7XG4gICAgICAgIHRoaXMuc2NyZWVuVHlwZSA9IHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5nZXRTY3JlZW5UeXBlKHRoaXMuc2NyZWVuU2l6ZSk7XG4gICAgICAgIHRoaXMuc2V0SWZIaWRlRm9yQ3VycmVudFNjcmVlblR5cGUoKTtcbiAgICAgICAgdGhpcy5zZXRTdHlsZUhlaWdodCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SWZIaWRlRm9yQ3VycmVudFNjcmVlblR5cGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlID0gdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmdldElzSGlkZGVuKHRoaXMuaGlkZUluLCB0aGlzLnNjcmVlblR5cGUpO1xuICAgIH1cbiAgICBcbiAgICBwcml2YXRlIGdldENzc1NwbGl0U3RyaW5nKCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuc3BsaXQpIHtcbiAgICAgICAgICAgIGNhc2UgJzEvMiAxLzInOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMWZyIDFmcic7XG4gICAgICAgICAgICBjYXNlICcxLzIgMS80IDEvNCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcyZnIgMWZyIDFmcic7XG4gICAgICAgICAgICBjYXNlICcxLzMgMS8zIDEvMyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnIgMWZyIDFmcic7XG4gICAgICAgICAgICBjYXNlICcxLzMgMi8zJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAyZnInO1xuICAgICAgICAgICAgY2FzZSAnMS80IDEvMiAxLzQnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMWZyIDJmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS80IDEvNCAxLzInOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMWZyIDFmciAyZnInO1xuICAgICAgICAgICAgY2FzZSAnMS80IDEvNCAxLzQgMS80JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAxZnIgMWZyIDFmcic7XG4gICAgICAgICAgICBjYXNlICcxLzQgMy80JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAzZnInO1xuICAgICAgICAgICAgY2FzZSAnMi8zIDEvMyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcyZnIgMWZyJztcbiAgICAgICAgICAgIGNhc2UgJzMvNCAxLzQnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnM2ZyIDFmcic7XG4gICAgICAgICAgICBkZWZhdWx0OiAvLyBGb3Igb25lIGNvbHVtbi5cbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmcic7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZnJlc2hTcGxpdCgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWN0aW9uQ29udGFpbmVyUmVmKSB7XG4gICAgICAgICAgICAgICAgbGV0IGNzc1NwbGl0U3RyaW5nID0gdGhpcy5nZXRDc3NTcGxpdFN0cmluZygpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vIEdvIGZvciBhbGwgdGhlIGNvbHVtbnMgaW4gdGhlIGNvbHVtbnNXcmFwcGVyXG4gICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zRWxlbWVudFJlZi50b0FycmF5KCkubWFwKChzZWN0aW9uLCBzZWN0aW9uSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSG9yaXpvbnRhbCAodHJ1ZSkgZm9yIGxhcmdlIHNjcmVlbnMsIGZhbHNlIGZvciBzbWFsbCBzY3JlZW5zLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0hvcml6b250YWxWaWV3ID0gdGhpcy5zY3JlZW5TaXplIDw9IHRoaXMucGVwU2NyZWVuU2l6ZVRvRmxpcFRvVmVydGljYWw7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzSG9yaXpvbnRhbFZpZXcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2VjdGlvbi5uYXRpdmVFbGVtZW50LCAnZ3JpZC1hdXRvLWZsb3cnLCAnY29sdW1uJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtdGVtcGxhdGUtcm93cycsICd1bnNldCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnLCBjc3NTcGxpdFN0cmluZyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtYXV0by1mbG93JywgJ3JvdycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnLCAndW5zZXQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2VjdGlvbi5uYXRpdmVFbGVtZW50LCAnZ3JpZC10ZW1wbGF0ZS1yb3dzJywgY3NzU3BsaXRTdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJbiBydW50aW1lIChvciBwcmV2aWV3IG1vZGUpLlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmVkaXRhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3NzU3BsaXRBcnJheSA9IGNzc1NwbGl0U3RyaW5nLnNwbGl0KCcgJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIHNvbWUgaGlkZGVuIGNvbHVtbnMgY2hhbmdlIHRoZSBjb2x1bW4gd2lkdGggdG8gMCAoZm9yIGN1dCB0aGUgc3BhY2luZyBpbiB0aGUgZ3JpZC10ZW1wbGF0ZS1yb3dzKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbHVtbi5CbG9ja0NvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzU3BsaXRBcnJheVtpbmRleF0gPSAnMCc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtdGVtcGxhdGUtcm93cycsICdhdXRvJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtdGVtcGxhdGUtcm93cycsIGNzc1NwbGl0QXJyYXkuam9pbignICcpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFN0eWxlSGVpZ2h0KCkge1xuICAgICAgICBpZiAodGhpcy5oZWlnaHQgJiYgdGhpcy5oZWlnaHQgPiAwICYmIHRoaXMuc2NyZWVuVHlwZSAhPT0gJ1BoYWJsZXQnKSB7XG4gICAgICAgICAgICB0aGlzLnN0eWxlSGVpZ2h0ID0gdGhpcy5zdHlsZU1heEhlaWdodCA9IGAke3RoaXMuaGVpZ2h0fXB4YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3R5bGVIZWlnaHQgPSB0aGlzLnN0eWxlTWF4SGVpZ2h0ID0gJ3Vuc2V0JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldElzRHJhZ2dpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRyYWdnaW5nQmxvY2tLZXkubGVuZ3RoID4gMCAmJiB0aGlzLmRyYWdnaW5nU2VjdGlvbktleS5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIGdldElzSGlkZGVuKGhpZGVJbjogRGF0YVZpZXdTY3JlZW5TaXplW10gfCB1bmRlZmluZWQsIGN1cnJlbnRTY3JlZW5UeXBlOiBEYXRhVmlld1NjcmVlblNpemUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5nZXRJc0hpZGRlbihoaWRlSW4sIGN1cnJlbnRTY3JlZW5UeXBlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnByZXZpZXdNb2RlQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZShwcmV2aWV3TW9kZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hTcGxpdCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBKdXN0IHRvIGNhbGN1bGF0ZSBpZiBzZWN0aW9ucyBjb250YWlucyBibG9ja3NcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnNlY3Rpb25zQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVJZlNlY3Rpb25Db250YWluc0Jsb2NrcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2Uub25SZXNpemUkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzaXplOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2NyZWVuU2l6ZSA9IHNpemU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zY3JlZW5TaXplQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoc2l6ZTogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNjcmVlblNpemUgPSBzaXplO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5lZGl0YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0Q2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoc2VjdGlvbnNDb2x1bW5zRHJvcExpc3Q6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VjdGlvbnNDb2x1bW5zRHJvcExpc3QgPSBzZWN0aW9uc0NvbHVtbnNEcm9wTGlzdDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZWRpdG9yQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoZWRpdG9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTWFpbkVkaXRvclN0YXRlID0gZWRpdG9yICYmIGVkaXRvci50eXBlID09PSAnbGF5b3V0LWJ1aWxkZXInO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNFZGl0aW5nID0gZWRpdG9yICYmIGVkaXRvci50eXBlID09PSAnc2VjdGlvbicgJiYgZWRpdG9yLmlkID09PSB0aGlzLmtleTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU2VjdGlvbktleSA9IGVkaXRvciAmJiBlZGl0b3IudHlwZSA9PT0gJ3NlY3Rpb24nID8gZWRpdG9yLmlkIDogJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEJsb2NrS2V5ID0gZWRpdG9yICYmIGVkaXRvci50eXBlID09PSAnYmxvY2snID8gZWRpdG9yLmlkIDogJyc7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmRyYWdnaW5nQmxvY2tLZXkucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGRyYWdnaW5nQmxvY2tLZXk6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmdCbG9ja0tleSA9IGRyYWdnaW5nQmxvY2tLZXk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZHJhZ2dpbmdCbG9ja0tleSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVJZlNlY3Rpb25Db250YWluc0Jsb2NrcygpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIG9ubHkgb25lIGJsb2NrIGluIHRoZSBzZWN0aW9uIGFuZCBub3cgaXQncyB0aGlzIGJsb2NrIHRoYXQgdGhlIHVzZXIgaXMgZHJhZ2dpbmcuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2Nrc0xlbmd0aCA9IHRoaXMuY29sdW1ucy5maWx0ZXIoY29sdW1uID0+IGNvbHVtbi5CbG9ja0NvbnRhaW5lcikubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tzTGVuZ3RoID09PSAxICYmIHRoaXMuY29sdW1ucy5maW5kKGMgPT4gYy5CbG9ja0NvbnRhaW5lcj8uQmxvY2tLZXkgPT09IHRoaXMuZHJhZ2dpbmdCbG9ja0tleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvdWxkU2V0RGVmYXVsdEhlaWdodCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZHJhZ2dpbmdTZWN0aW9uS2V5LnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChkcmFnZ2luZ1NlY3Rpb25LZXk6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmdTZWN0aW9uS2V5ID0gZHJhZ2dpbmdTZWN0aW9uS2V5O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlY3Rpb25Db2x1bW5LZXlQcmVmaXggPSB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0U2VjdGlvbkNvbHVtbktleSh0aGlzLmtleSk7XG4gICAgfVxuXG4gICAgb25FZGl0U2VjdGlvbkNsaWNrKCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UubmF2aWdhdGVUb0VkaXRvcignc2VjdGlvbicsIHRoaXMua2V5KTtcbiAgICB9XG5cbiAgICBvblJlbW92ZVNlY3Rpb25DbGljaygpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnJlbW92ZVNlY3Rpb24odGhpcy5rZXkpO1xuICAgIH1cblxuICAgIG9uSGlkZVNlY3Rpb25DaGFuZ2UoaGlkZUluOiBEYXRhVmlld1NjcmVlblNpemVbXSkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuaGlkZVNlY3Rpb24odGhpcy5rZXksIGhpZGVJbik7XG4gICAgfVxuXG4gICAgb25IaWRlSW5NZW51T3BlbmVkKCkge1xuICAgICAgICB0aGlzLmhvdmVyU3RhdGUgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uSGlkZUluTWVudUNsb3NlZCgpIHtcbiAgICAgICAgdGhpcy5ob3ZlclN0YXRlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25CbG9ja0Ryb3BwZWQoZXZlbnQ6IENka0RyYWdEcm9wPElQZXBMYXlvdXRTZWN0aW9uQ29sdW1uLCBhbnksIGFueT4pIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLm9uQmxvY2tEcm9wcGVkKGV2ZW50LCB0aGlzLmtleSk7XG4gICAgfVxuXG4gICAgY2FuRHJvcFByZWRpY2F0ZShjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiAoZHJhZzogQ2RrRHJhZywgZHJvcDogQ2RrRHJvcExpc3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9ICF0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZG9lc0NvbHVtbkNvbnRhaW5CbG9jayh0aGlzLmtleSwgY29sdW1uSW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvbkRyYWdTdGFydChldmVudDogQ2RrRHJhZ1N0YXJ0KSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5vblNlY3Rpb25EcmFnU3RhcnQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uRHJhZ0VuZChldmVudDogQ2RrRHJhZ0VuZCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uub25TZWN0aW9uRHJhZ0VuZChldmVudCk7XG4gICAgfVxuXG4gICAgb25TZWN0aW9uQmxvY2tEcmFnRXhpdGVkKGV2ZW50OiBDZGtEcmFnRXhpdCkge1xuICAgICAgICAvL1xuICAgIH1cblxuICAgIG9uU2VjdGlvbkJsb2NrRHJhZ0VudGVyZWQoZXZlbnQ6IENka0RyYWdFbnRlcikge1xuICAgICAgICAvL1xuICAgIH1cbn1cbiIsIjxkaXYgI3NlY3Rpb25Db250YWluZXIgKm5nSWY9XCJlZGl0YWJsZSB8fCAoY29udGFpbnNCbG9ja3MgJiYgIWhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSlcIiBjbGFzcz1cInNlY3Rpb24tY29udGFpbmVyIFwiXG4gICAgW25nQ2xhc3NdPVwieyBcbiAgICAgICAgJ21vYmlsZSc6IHNjcmVlblR5cGUgPT09ICdQaGFibGV0JyxcbiAgICAgICAgJ2VkaXRhYmxlLXN0YXRlJzogZWRpdGFibGUsICdtYWluLWVkaXRvci1zdGF0ZSc6IGlzTWFpbkVkaXRvclN0YXRlLCAnZGVmYXVsdC1oZWlnaHQnOiBzaG91bGRTZXREZWZhdWx0SGVpZ2h0LCAnYWN0aXZlLXNlY3Rpb24nOiBpc0VkaXRpbmcsXG4gICAgICAgICdzZWN0aW9uLWhpZGRlbi1zdGF0ZSc6IGhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSwgJ3NlY3Rpb24taXMtZHJhZ2dpbmcnOiBkcmFnZ2luZ1NlY3Rpb25LZXkgIT09ICcnLCAnc2hvdy1ob3Zlci1zdGF0ZSc6IGhvdmVyU3RhdGUgfVwiIFxuICAgICAgICBjZGtEcmFnQm91bmRhcnk9XCIubGF5b3V0LWJ1aWxkZXItd3JhcHBlclwiIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cImtleVwiIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IHNlbGVjdGVkU2VjdGlvbktleS5sZW5ndGggPiAwIHx8IHNlbGVjdGVkQmxvY2tLZXkubGVuZ3RoID4gMFwiIChjZGtEcmFnU3RhcnRlZCk9XCJvbkRyYWdTdGFydCgkZXZlbnQpXCIgKGNka0RyYWdFbmRlZCk9XCJvbkRyYWdFbmQoJGV2ZW50KVwiIFxuICAgID5cbiAgICA8cGVwLWRyYWdnYWJsZS1pdGVtICpuZ0lmPVwiZWRpdGFibGUgJiYgaXNNYWluRWRpdG9yU3RhdGUgJiYgZHJhZ2dpbmdTZWN0aW9uS2V5ID09PSAnJ1wiIGNka0RyYWdIYW5kbGUgc3R5bGU9XCJjdXJzb3I6IGdyYWI7XCJcbiAgICAgICAgY2xhc3M9XCJzZWN0aW9uLXRvb2xiYXJcIiBbbmdDbGFzc109XCJ7ICdoaWRlLXRvb2xiYXInOiAhaG92ZXJTdGF0ZSB9XCIgW3RpdGxlXT1cIm5hbWVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBwZXAtYWN0aW9ucz5cbiAgICAgICAgICAgIDxwZXAtYnV0dG9uIGNsYXNzTmFtZXM9XCJjYXV0aW9uXCIgc2l6ZVR5cGU9XCJ4c1wiIGljb25OYW1lPVwic3lzdGVtX2JpblwiIChidXR0b25DbGljayk9XCJvblJlbW92ZVNlY3Rpb25DbGljaygpO1wiPjwvcGVwLWJ1dHRvbj5cbiAgICAgICAgICAgIDxoaWRlLWluIFtoaWRlSW5dPVwiaGlkZUluXCIgKGhpZGVJbkNoYW5nZSk9XCJvbkhpZGVTZWN0aW9uQ2hhbmdlKCRldmVudClcIiAobWVudUNsb3NlZCk9XCJvbkhpZGVJbk1lbnVDbG9zZWQoKVwiIChtZW51T3BlbmVkKT1cIm9uSGlkZUluTWVudU9wZW5lZCgpXCI+PC9oaWRlLWluPlxuICAgICAgICAgICAgPHBlcC1idXR0b24gc2l6ZVR5cGU9XCJ4c1wiIGljb25OYW1lPVwic3lzdGVtX2VkaXRcIiAoYnV0dG9uQ2xpY2spPVwib25FZGl0U2VjdGlvbkNsaWNrKCk7XCI+PC9wZXAtYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3BlcC1kcmFnZ2FibGUtaXRlbT5cblxuICAgIDxkaXYgKm5nSWY9XCJlZGl0YWJsZVwiIGNsYXNzPVwic2VjdGlvbi1iYWNrZ3JvdW5kXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJiYWNrLXRlbXBsYXRlXCIgKm5nRm9yPVwibGV0IG51bWJlciBvZiBbMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMV1cIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICNjb2x1bW5zV3JhcHBlciBjbGFzcz1cImNvbHVtbnMtd3JhcHBlciBnYXAte3sgY29sdW1uc0dhcCB9fVwiIFxuICAgICAgICBbbmdDbGFzc109XCJ7ICdtb2JpbGUnOiBzY3JlZW5UeXBlID09PSAnUGhhYmxldCcsICdpcy1kcmFnZ2luZyc6IGVkaXRhYmxlICYmIGdldElzRHJhZ2dpbmcgfVwiPlxuICAgICAgICA8ZGl2IFtpZF09XCJzZWN0aW9uQ29sdW1uS2V5UHJlZml4ICsgaVwiIFxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgaT1pbmRleDtcIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWN0aW9uLWNvbHVtbiB7e3NjcmVlblNpemUgPD0gcGVwU2NyZWVuU2l6ZVRvRmxpcFRvVmVydGljYWwgPyAnaG9yaXpvbnRhbCcgOiAndmVydGljYWwnfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnYWN0aXZlLWNvbHVtbic6IHNlbGVjdGVkQmxvY2tLZXkgPT09IGNvbHVtbi5CbG9ja0NvbnRhaW5lcj8uQmxvY2tLZXksIFxuICAgICAgICAgICAgICAgICdpcy1oaWRkZW4nOiBnZXRJc0hpZGRlbihjb2x1bW4/LkJsb2NrQ29udGFpbmVyPy5IaWRlLCBzY3JlZW5UeXBlKSxcbiAgICAgICAgICAgICAgICAnYWxyZWFkeS1jb250YWlucy1ibG9jayc6IGVkaXRhYmxlICYmIGNvbHVtbi5CbG9ja0NvbnRhaW5lciAmJiBjb2x1bW4uQmxvY2tDb250YWluZXIuQmxvY2tLZXkgJiYgY29sdW1uLkJsb2NrQ29udGFpbmVyLkJsb2NrS2V5Lmxlbmd0aCA+IDAgJiYgXG4gICAgICAgICAgICAgICAgICAgIGRyYWdnaW5nQmxvY2tLZXkgJiYgZHJhZ2dpbmdCbG9ja0tleS5sZW5ndGggPiAwICYmIGNvbHVtbi5CbG9ja0NvbnRhaW5lci5CbG9ja0tleSAhPT0gZHJhZ2dpbmdCbG9ja0tleSB9XCJcbiAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImNvbHVtblwiXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RPcmllbnRhdGlvbl09XCJzY3JlZW5TaXplIDw9IHBlcFNjcmVlblNpemVUb0ZsaXBUb1ZlcnRpY2FsID8gJ2hvcml6b250YWwnIDogJ3ZlcnRpY2FsJ1wiIFxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwic2VjdGlvbnNDb2x1bW5zRHJvcExpc3RcIlxuICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkJsb2NrRHJvcHBlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImNhbkRyb3BQcmVkaWNhdGUoaSlcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c2VjdGlvbi1ibG9jayAqbmdJZj1cImNvbHVtbi5CbG9ja0NvbnRhaW5lcj8uQmxvY2tLZXlcIiBjbGFzcz1cInNlY3Rpb24tYmxvY2tcIiBbc2VjdGlvbktleV09XCJrZXlcIiBbYmxvY2tUZW1wbGF0ZV09XCJibG9ja1RlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICBbYmxvY2tDb250YWluZXJdPVwiY29sdW1uLkJsb2NrQ29udGFpbmVyXCIgW2VkaXRhYmxlXT1cImVkaXRhYmxlXCIgW2lzTWFpbkVkaXRvclN0YXRlXT1cImlzTWFpbkVkaXRvclN0YXRlXCIgW3NlY3Rpb25IZWlnaHRdPVwic3R5bGVIZWlnaHRcIlxuICAgICAgICAgICAgICAgIFthY3RpdmVdPVwic2VsZWN0ZWRCbG9ja0tleSA9PT0gY29sdW1uLkJsb2NrQ29udGFpbmVyPy5CbG9ja0tleVwiIFtzY3JlZW5UeXBlXT1cInNjcmVlblR5cGVcIlxuICAgICAgICAgICAgICAgIChkcmFnRXhpdGVkKT1cIm9uU2VjdGlvbkJsb2NrRHJhZ0V4aXRlZCgkZXZlbnQpXCIgKGRyYWdFbnRlcmVkKT1cIm9uU2VjdGlvbkJsb2NrRHJhZ0VudGVyZWQoJGV2ZW50KVwiPjwvc2VjdGlvbi1ibG9jaz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
298
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9zZWN0aW9uL3NlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi9zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFnQixLQUFLLEVBQXVFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEwsT0FBTyxFQUFFLHNCQUFzQixFQUFvQixpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7O0FBU3RHLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxzQkFBc0I7SUF5R3hELFlBQ1ksUUFBbUIsRUFDbkIsNEJBQTBELEVBQzFELGFBQStCO1FBRXZDLEtBQUssRUFBRSxDQUFDO1FBSkEsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBQzFELGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQXRHbEMsUUFBRyxHQUFXLEVBQUUsQ0FBQztRQUNqQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRW5CLFdBQU0sR0FBMEIsU0FBUyxDQUFDO1FBVTFDLFlBQU8sR0FBdUIsU0FBUyxDQUFDO1FBVXhDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQVduQyxhQUFRLEdBQW1DLEVBQUUsQ0FBQztRQVM5QyxZQUFPLEdBQXlCLEVBQUUsQ0FBQztRQWEzQyxtQkFBYyxHQUFHLE9BQU8sQ0FBQztRQUd6QixnQkFBVyxHQUFHLE9BQU8sQ0FBQztRQUVaLDRCQUF1QixHQUFhLEVBQUUsQ0FBQztRQXFCakQseUNBQXlDO1FBQy9CLDJCQUFz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RyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzdGLE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFtQjtRQUMzQixJQUFJLENBQUMsNEJBQTRCLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsNEJBQTRCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELHdCQUF3QixDQUFDLEtBQWtCO1FBQ3ZDLEVBQUU7SUFDTixDQUFDO0lBRUQseUJBQXlCLENBQUMsS0FBbUI7UUFDekMsRUFBRTtJQUNOLENBQUM7OzZHQXRUUSxnQkFBZ0I7aUdBQWhCLGdCQUFnQiwra0JDWjdCLHU4R0EwQ0E7MkZEOUJhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDSSxTQUFTOzBLQUtZLG1CQUFtQjtzQkFBakQsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBQ0csaUJBQWlCO3NCQUFoRCxZQUFZO3VCQUFDLGdCQUFnQjtnQkFFckIsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUlGLEtBQUs7c0JBRFIsS0FBSztnQkFXRixNQUFNO3NCQURULEtBQUs7Z0JBV0YsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVlGLE9BQU87c0JBRFYsS0FBSztnQkFVRixNQUFNO3NCQURULEtBQUs7Z0JBU0csVUFBVTtzQkFBbEIsS0FBSztnQkFHTixjQUFjO3NCQURiLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUkvQixXQUFXO3NCQURWLFdBQVc7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJhZ0VuZCwgQ2RrRHJhZ0VudGVyLCBDZGtEcmFnRXhpdCwgQ2RrRHJhZ1N0YXJ0LCBDZGtEcm9wTGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgRGF0YVZpZXdTY3JlZW5TaXplLCBTcGxpdFR5cGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvcGFwaS1zZGsnO1xuaW1wb3J0IHsgQmFzZURlc3Ryb3llckRpcmVjdGl2ZSwgUGVwTGF5b3V0U2VydmljZSwgUGVwU2NyZWVuU2l6ZVR5cGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBMYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlIH0gZnJvbSAnLi4vbGF5b3V0LWJ1aWxkZXItaW50ZXJuYWwuc2VydmljZSc7XG5pbXBvcnQgeyBJRWRpdG9yLCBJUGVwTGF5b3V0U2VjdGlvbkNvbHVtbiwgUGVwTGF5b3V0U2l6ZVR5cGUgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2VjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlY3Rpb24uY29tcG9uZW50LnNjc3MnLCAnLi9zZWN0aW9uLmNvbXBvbmVudC50aGVtZS5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3NlY3Rpb25Db250YWluZXInKSBzZWN0aW9uQ29udGFpbmVyUmVmITogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkcmVuKCdjb2x1bW5zV3JhcHBlcicpIGNvbHVtbnNFbGVtZW50UmVmITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gICAgQElucHV0KCkgYmxvY2tUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGtleTogc3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nID0gJyc7XG5cbiAgICBwcml2YXRlIF9zcGxpdDogU3BsaXRUeXBlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNwbGl0KHZhbHVlOiBTcGxpdFR5cGUgfCB1bmRlZmluZWQgKSB7XG4gICAgICAgIHRoaXMuX3NwbGl0ID0gdmFsdWU7XG4gICAgICAgIHRoaXMucmVmcmVzaFNwbGl0KCk7XG4gICAgfVxuICAgIGdldCBzcGxpdCgpOiBTcGxpdFR5cGUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3BsaXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGVpZ2h0OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KClcbiAgICBzZXQgaGVpZ2h0KHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0U3R5bGVIZWlnaHQoKTtcbiAgICB9XG4gICAgZ2V0IGhlaWdodCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVpZ2h0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbGxhcHNlT25UYWJsZXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBjb2xsYXBzZU9uVGFibGV0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2NvbGxhcHNlT25UYWJsZXQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5wZXBTY3JlZW5TaXplVG9GbGlwVG9WZXJ0aWNhbCA9IHZhbHVlID8gUGVwU2NyZWVuU2l6ZVR5cGUuTUQgOiBQZXBTY3JlZW5TaXplVHlwZS5TTTtcbiAgICAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICB9XG4gICAgZ2V0IGNvbGxhcHNlT25UYWJsZXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xsYXBzZU9uVGFibGV0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbHVtbnM6IEFycmF5PElQZXBMYXlvdXRTZWN0aW9uQ29sdW1uPiA9IFtdO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvbHVtbnModmFsdWU6IEFycmF5PElQZXBMYXlvdXRTZWN0aW9uQ29sdW1uPikge1xuICAgICAgICB0aGlzLl9jb2x1bW5zID0gdmFsdWUgfHwgW107XG4gICAgfVxuICAgIGdldCBjb2x1bW5zKCk6IEFycmF5PElQZXBMYXlvdXRTZWN0aW9uQ29sdW1uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5zO1xuICAgIH1cbiAgICBcbiAgICBwcml2YXRlIF9oaWRlSW46IERhdGFWaWV3U2NyZWVuU2l6ZVtdID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgaGlkZUluKHZhbHVlOiBEYXRhVmlld1NjcmVlblNpemVbXSkge1xuICAgICAgICB0aGlzLl9oaWRlSW4gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRJZkhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSgpO1xuICAgIH1cbiAgICBnZXQgaGlkZUluKCk6IERhdGFWaWV3U2NyZWVuU2l6ZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVJbjtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBjb2x1bW5zR2FwITogUGVwTGF5b3V0U2l6ZVR5cGU7XG4gICAgICAgIFxuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWF4LWhlaWdodCcpXG4gICAgc3R5bGVNYXhIZWlnaHQgPSAndW5zZXQnO1xuICAgIFxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0JylcbiAgICBzdHlsZUhlaWdodCA9ICd1bnNldCc7XG4gICAgXG4gICAgcHJvdGVjdGVkIHNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0OiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLy8gcHJpdmF0ZSBfZWRpdGFibGUgPSBmYWxzZTtcbiAgICAvLyBwcm90ZWN0ZWQgc2V0IGVkaXRhYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgLy8gICAgIHRoaXMuX2VkaXRhYmxlID0gdmFsdWU7XG4gICAgLy8gICAgIHRoaXMucmVmcmVzaFNwbGl0KCk7XG4gICAgLy8gfVxuICAgIHByb3RlY3RlZCBnZXQgZWRpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZWRpdGFibGVTdGF0ZTs7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2NyZWVuU2l6ZSE6IFBlcFNjcmVlblNpemVUeXBlO1xuICAgIHByb3RlY3RlZCBzZXQgc2NyZWVuU2l6ZSh2YWx1ZTogUGVwU2NyZWVuU2l6ZVR5cGUpIHtcbiAgICAgICAgdGhpcy5fc2NyZWVuU2l6ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnJlZnJlc2hTcGxpdCgpO1xuICAgICAgICB0aGlzLnNldFNjcmVlblR5cGUoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldCBzY3JlZW5TaXplKCk6IFBlcFNjcmVlblNpemVUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NjcmVlblNpemU7XG4gICAgfVxuXG4gICAgLy8gUGVwU2NyZWVuU2l6ZVR5cGUgPSBQZXBTY3JlZW5TaXplVHlwZTtcbiAgICBwcm90ZWN0ZWQgc2VjdGlvbkNvbHVtbktleVByZWZpeCA9ICcnO1xuICAgIFxuICAgIHByb3RlY3RlZCBpc01haW5FZGl0b3JTdGF0ZSA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBpc0VkaXRpbmcgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgc2VsZWN0ZWRTZWN0aW9uS2V5ID0gJyc7XG4gICAgcHJvdGVjdGVkIHNlbGVjdGVkQmxvY2tLZXkgPSAnJztcbiAgICBcbiAgICBwcm90ZWN0ZWQgY29udGFpbnNCbG9ja3MgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgc2hvdWxkU2V0RGVmYXVsdEhlaWdodCA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBwZXBTY3JlZW5TaXplVG9GbGlwVG9WZXJ0aWNhbCA9IFBlcFNjcmVlblNpemVUeXBlLlNNO1xuICAgIHByb3RlY3RlZCBzY3JlZW5UeXBlITogRGF0YVZpZXdTY3JlZW5TaXplO1xuICAgIHByb3RlY3RlZCBoaWRlRm9yQ3VycmVudFNjcmVlblR5cGUgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgZHJhZ2dpbmdCbG9ja0tleTogc3RyaW5nID0gJyc7XG4gICAgcHJvdGVjdGVkIGRyYWdnaW5nU2VjdGlvbktleTogc3RyaW5nID0gJyc7XG4gICAgcHJvdGVjdGVkIGhvdmVyU3RhdGUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgbGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZTogTGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBQZXBMYXlvdXRTZXJ2aWNlLFxuICAgICkgeyBcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZUlmU2VjdGlvbkNvbnRhaW5zQmxvY2tzKCkge1xuICAgICAgICB0aGlzLmNvbnRhaW5zQmxvY2tzID0gdGhpcy5jb2x1bW5zLnNvbWUoY29sdW1uID0+IGNvbHVtbi5CbG9ja0NvbnRhaW5lcik7XG5cbiAgICAgICAgaWYgKHRoaXMuZWRpdGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvdWxkU2V0RGVmYXVsdEhlaWdodCA9ICF0aGlzLmNvbnRhaW5zQmxvY2tzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTY3JlZW5UeXBlKCkge1xuICAgICAgICB0aGlzLnNjcmVlblR5cGUgPSB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0U2NyZWVuVHlwZSh0aGlzLnNjcmVlblNpemUpO1xuICAgICAgICB0aGlzLnNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk7XG4gICAgICAgIHRoaXMuc2V0U3R5bGVIZWlnaHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSA9IHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5nZXRJc0hpZGRlbih0aGlzLmhpZGVJbiwgdGhpcy5zY3JlZW5UeXBlKTtcbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBnZXRDc3NTcGxpdFN0cmluZygpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnNwbGl0KSB7XG4gICAgICAgICAgICBjYXNlICcxLzIgMS8yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS8yIDEvNCAxLzQnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMmZyIDFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS8zIDEvMyAxLzMnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMWZyIDFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS8zIDIvMyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnIgMmZyJztcbiAgICAgICAgICAgIGNhc2UgJzEvNCAxLzIgMS80JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAyZnIgMWZyJztcbiAgICAgICAgICAgIGNhc2UgJzEvNCAxLzQgMS8yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAxZnIgMmZyJztcbiAgICAgICAgICAgIGNhc2UgJzEvNCAxLzQgMS80IDEvNCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnIgMWZyIDFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS80IDMvNCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnIgM2ZyJztcbiAgICAgICAgICAgIGNhc2UgJzIvMyAxLzMnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMmZyIDFmcic7XG4gICAgICAgICAgICBjYXNlICczLzQgMS80JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzNmciAxZnInO1xuICAgICAgICAgICAgZGVmYXVsdDogLy8gRm9yIG9uZSBjb2x1bW4uXG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnInO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWZyZXNoU3BsaXQoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VjdGlvbkNvbnRhaW5lclJlZikge1xuICAgICAgICAgICAgICAgIGxldCBjc3NTcGxpdFN0cmluZyA9IHRoaXMuZ2V0Q3NzU3BsaXRTdHJpbmcoKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBHbyBmb3IgYWxsIHRoZSBjb2x1bW5zIGluIHRoZSBjb2x1bW5zV3JhcHBlclxuICAgICAgICAgICAgICAgIHRoaXMuY29sdW1uc0VsZW1lbnRSZWYudG9BcnJheSgpLm1hcCgoc2VjdGlvbiwgc2VjdGlvbkluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEhvcml6b250YWwgKHRydWUpIGZvciBsYXJnZSBzY3JlZW5zLCBmYWxzZSBmb3Igc21hbGwgc2NyZWVucy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNIb3Jpem9udGFsVmlldyA9IHRoaXMuc2NyZWVuU2l6ZSA8PSB0aGlzLnBlcFNjcmVlblNpemVUb0ZsaXBUb1ZlcnRpY2FsO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0hvcml6b250YWxWaWV3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtYXV0by1mbG93JywgJ2NvbHVtbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLXJvd3MnLCAndW5zZXQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2VjdGlvbi5uYXRpdmVFbGVtZW50LCAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJywgY3NzU3BsaXRTdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLWF1dG8tZmxvdycsICdyb3cnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2VjdGlvbi5uYXRpdmVFbGVtZW50LCAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJywgJ3Vuc2V0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtdGVtcGxhdGUtcm93cycsIGNzc1NwbGl0U3RyaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gcnVudGltZSAob3IgcHJldmlldyBtb2RlKS5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5lZGl0YWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNzc1NwbGl0QXJyYXkgPSBjc3NTcGxpdFN0cmluZy5zcGxpdCgnICcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBzb21lIGhpZGRlbiBjb2x1bW5zIGNoYW5nZSB0aGUgY29sdW1uIHdpZHRoIHRvIDAgKGZvciBjdXQgdGhlIHNwYWNpbmcgaW4gdGhlIGdyaWQtdGVtcGxhdGUtcm93cykuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zLmZvckVhY2goKGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb2x1bW4uQmxvY2tDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzc1NwbGl0QXJyYXlbaW5kZXhdID0gJzAnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLXJvd3MnLCAnYXV0bycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLXJvd3MnLCBjc3NTcGxpdEFycmF5LmpvaW4oJyAnKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTdHlsZUhlaWdodCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaGVpZ2h0ICYmIHRoaXMuaGVpZ2h0ID4gMCAmJiB0aGlzLnNjcmVlblR5cGUgIT09ICdQaGFibGV0Jykge1xuICAgICAgICAgICAgdGhpcy5zdHlsZUhlaWdodCA9IHRoaXMuc3R5bGVNYXhIZWlnaHQgPSBgJHt0aGlzLmhlaWdodH1weGA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0eWxlSGVpZ2h0ID0gdGhpcy5zdHlsZU1heEhlaWdodCA9ICd1bnNldCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJc0RyYWdnaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kcmFnZ2luZ0Jsb2NrS2V5Lmxlbmd0aCA+IDAgJiYgdGhpcy5kcmFnZ2luZ1NlY3Rpb25LZXkubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBnZXRJc0hpZGRlbihoaWRlSW46IERhdGFWaWV3U2NyZWVuU2l6ZVtdIHwgdW5kZWZpbmVkLCBjdXJyZW50U2NyZWVuVHlwZTogRGF0YVZpZXdTY3JlZW5TaXplKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0SXNIaWRkZW4oaGlkZUluLCBjdXJyZW50U2NyZWVuVHlwZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5wcmV2aWV3TW9kZUNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUocHJldmlld01vZGUgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gSnVzdCB0byBjYWxjdWxhdGUgaWYgc2VjdGlvbnMgY29udGFpbnMgYmxvY2tzXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zZWN0aW9uc0NoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlSWZTZWN0aW9uQ29udGFpbnNCbG9ja3MoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLm9uUmVzaXplJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoc2l6ZTogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNjcmVlblNpemUgPSBzaXplO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uuc2NyZWVuU2l6ZUNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHNpemU6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zY3JlZW5TaXplID0gc2l6ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZWRpdGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zZWN0aW9uc0NvbHVtbnNEcm9wTGlzdENoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0ID0gc2VjdGlvbnNDb2x1bW5zRHJvcExpc3Q7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmVkaXRvckNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGVkaXRvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc01haW5FZGl0b3JTdGF0ZSA9IGVkaXRvciAmJiBlZGl0b3IudHlwZSA9PT0gJ2xheW91dC1idWlsZGVyJztcbiAgICAgICAgICAgICAgICB0aGlzLmlzRWRpdGluZyA9IGVkaXRvciAmJiBlZGl0b3IudHlwZSA9PT0gJ3NlY3Rpb24nICYmIGVkaXRvci5pZCA9PT0gdGhpcy5rZXk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlY3Rpb25LZXkgPSBlZGl0b3IgJiYgZWRpdG9yLnR5cGUgPT09ICdzZWN0aW9uJyA/IGVkaXRvci5pZCA6ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRCbG9ja0tleSA9IGVkaXRvciAmJiBlZGl0b3IudHlwZSA9PT0gJ2Jsb2NrJyA/IGVkaXRvci5pZCA6ICcnO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5kcmFnZ2luZ0Jsb2NrS2V5LnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChkcmFnZ2luZ0Jsb2NrS2V5OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdnaW5nQmxvY2tLZXkgPSBkcmFnZ2luZ0Jsb2NrS2V5O1xuXG4gICAgICAgICAgICAgICAgaWYgKGRyYWdnaW5nQmxvY2tLZXkgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlSWZTZWN0aW9uQ29udGFpbnNCbG9ja3MoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBvbmx5IG9uZSBibG9jayBpbiB0aGUgc2VjdGlvbiBhbmQgbm93IGl0J3MgdGhpcyBibG9jayB0aGF0IHRoZSB1c2VyIGlzIGRyYWdnaW5nLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja3NMZW5ndGggPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4uQmxvY2tDb250YWluZXIpLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2Nrc0xlbmd0aCA9PT0gMSAmJiB0aGlzLmNvbHVtbnMuZmluZChjID0+IGMuQmxvY2tDb250YWluZXI/LkJsb2NrS2V5ID09PSB0aGlzLmRyYWdnaW5nQmxvY2tLZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3VsZFNldERlZmF1bHRIZWlnaHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmRyYWdnaW5nU2VjdGlvbktleS5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoZHJhZ2dpbmdTZWN0aW9uS2V5OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdnaW5nU2VjdGlvbktleSA9IGRyYWdnaW5nU2VjdGlvbktleTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWN0aW9uQ29sdW1uS2V5UHJlZml4ID0gdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmdldFNlY3Rpb25Db2x1bW5LZXkodGhpcy5rZXkpO1xuICAgIH1cblxuICAgIG9uRWRpdFNlY3Rpb25DbGljaygpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLm5hdmlnYXRlVG9FZGl0b3IoJ3NlY3Rpb24nLCB0aGlzLmtleSwgJycpO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlU2VjdGlvbkNsaWNrKCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UucmVtb3ZlU2VjdGlvbih0aGlzLmtleSk7XG4gICAgfVxuXG4gICAgb25IaWRlU2VjdGlvbkNoYW5nZShoaWRlSW46IERhdGFWaWV3U2NyZWVuU2l6ZVtdKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5oaWRlU2VjdGlvbih0aGlzLmtleSwgaGlkZUluKTtcbiAgICB9XG5cbiAgICBvbkhpZGVJbk1lbnVPcGVuZWQoKSB7XG4gICAgICAgIHRoaXMuaG92ZXJTdGF0ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgb25IaWRlSW5NZW51Q2xvc2VkKCkge1xuICAgICAgICB0aGlzLmhvdmVyU3RhdGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkJsb2NrRHJvcHBlZChldmVudDogQ2RrRHJhZ0Ryb3A8SVBlcExheW91dFNlY3Rpb25Db2x1bW4sIGFueSwgYW55Pikge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uub25CbG9ja0Ryb3BwZWQoZXZlbnQsIHRoaXMua2V5KTtcbiAgICB9XG5cbiAgICBjYW5Ecm9wUHJlZGljYXRlKGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIChkcmFnOiBDZGtEcmFnLCBkcm9wOiBDZGtEcm9wTGlzdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzID0gIXRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5kb2VzQ29sdW1uQ29udGFpbkJsb2NrKHRoaXMua2V5LCBjb2x1bW5JbmRleCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIG9uRHJhZ1N0YXJ0KGV2ZW50OiBDZGtEcmFnU3RhcnQpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLm9uU2VjdGlvbkRyYWdTdGFydChldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnRW5kKGV2ZW50OiBDZGtEcmFnRW5kKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5vblNlY3Rpb25EcmFnRW5kKGV2ZW50KTtcbiAgICB9XG5cbiAgICBvblNlY3Rpb25CbG9ja0RyYWdFeGl0ZWQoZXZlbnQ6IENka0RyYWdFeGl0KSB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgb25TZWN0aW9uQmxvY2tEcmFnRW50ZXJlZChldmVudDogQ2RrRHJhZ0VudGVyKSB7XG4gICAgICAgIC8vXG4gICAgfVxufVxuIiwiPGRpdiAjc2VjdGlvbkNvbnRhaW5lciAqbmdJZj1cImVkaXRhYmxlIHx8IChjb250YWluc0Jsb2NrcyAmJiAhaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKVwiIGNsYXNzPVwic2VjdGlvbi1jb250YWluZXIgXCJcbiAgICBbbmdDbGFzc109XCJ7IFxuICAgICAgICAnbW9iaWxlJzogc2NyZWVuVHlwZSA9PT0gJ1BoYWJsZXQnLFxuICAgICAgICAnZWRpdGFibGUtc3RhdGUnOiBlZGl0YWJsZSwgJ21haW4tZWRpdG9yLXN0YXRlJzogaXNNYWluRWRpdG9yU3RhdGUsICdkZWZhdWx0LWhlaWdodCc6IHNob3VsZFNldERlZmF1bHRIZWlnaHQsICdhY3RpdmUtc2VjdGlvbic6IGlzRWRpdGluZyxcbiAgICAgICAgJ3NlY3Rpb24taGlkZGVuLXN0YXRlJzogaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlLCAnc2VjdGlvbi1pcy1kcmFnZ2luZyc6IGRyYWdnaW5nU2VjdGlvbktleSAhPT0gJycsICdzaG93LWhvdmVyLXN0YXRlJzogaG92ZXJTdGF0ZSB9XCIgXG4gICAgICAgIGNka0RyYWdCb3VuZGFyeT1cIi5sYXlvdXQtYnVpbGRlci13cmFwcGVyXCIgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwia2V5XCIgW2Nka0RyYWdEaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgc2VsZWN0ZWRTZWN0aW9uS2V5Lmxlbmd0aCA+IDAgfHwgc2VsZWN0ZWRCbG9ja0tleS5sZW5ndGggPiAwXCIgKGNka0RyYWdTdGFydGVkKT1cIm9uRHJhZ1N0YXJ0KCRldmVudClcIiAoY2RrRHJhZ0VuZGVkKT1cIm9uRHJhZ0VuZCgkZXZlbnQpXCIgXG4gICAgPlxuICAgIDxwZXAtZHJhZ2dhYmxlLWl0ZW0gKm5nSWY9XCJlZGl0YWJsZSAmJiBpc01haW5FZGl0b3JTdGF0ZSAmJiBkcmFnZ2luZ1NlY3Rpb25LZXkgPT09ICcnXCIgY2RrRHJhZ0hhbmRsZSBzdHlsZT1cImN1cnNvcjogZ3JhYjtcIlxuICAgICAgICBjbGFzcz1cInNlY3Rpb24tdG9vbGJhclwiIFtuZ0NsYXNzXT1cInsgJ2hpZGUtdG9vbGJhcic6ICFob3ZlclN0YXRlIH1cIiBbdGl0bGVdPVwibmFtZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyIHBlcC1hY3Rpb25zPlxuICAgICAgICAgICAgPHBlcC1idXR0b24gY2xhc3NOYW1lcz1cImNhdXRpb25cIiBzaXplVHlwZT1cInhzXCIgaWNvbk5hbWU9XCJzeXN0ZW1fYmluXCIgKGJ1dHRvbkNsaWNrKT1cIm9uUmVtb3ZlU2VjdGlvbkNsaWNrKCk7XCI+PC9wZXAtYnV0dG9uPlxuICAgICAgICAgICAgPGhpZGUtaW4gW2hpZGVJbl09XCJoaWRlSW5cIiAoaGlkZUluQ2hhbmdlKT1cIm9uSGlkZVNlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiIChtZW51Q2xvc2VkKT1cIm9uSGlkZUluTWVudUNsb3NlZCgpXCIgKG1lbnVPcGVuZWQpPVwib25IaWRlSW5NZW51T3BlbmVkKClcIj48L2hpZGUtaW4+XG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBzaXplVHlwZT1cInhzXCIgaWNvbk5hbWU9XCJzeXN0ZW1fZWRpdFwiIChidXR0b25DbGljayk9XCJvbkVkaXRTZWN0aW9uQ2xpY2soKTtcIj48L3BlcC1idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvcGVwLWRyYWdnYWJsZS1pdGVtPlxuXG4gICAgPGRpdiAqbmdJZj1cImVkaXRhYmxlXCIgY2xhc3M9XCJzZWN0aW9uLWJhY2tncm91bmRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJhY2stdGVtcGxhdGVcIiAqbmdGb3I9XCJsZXQgbnVtYmVyIG9mIFswLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExXVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgI2NvbHVtbnNXcmFwcGVyIGNsYXNzPVwiY29sdW1ucy13cmFwcGVyIGdhcC17eyBjb2x1bW5zR2FwIH19XCIgXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ21vYmlsZSc6IHNjcmVlblR5cGUgPT09ICdQaGFibGV0JywgJ2lzLWRyYWdnaW5nJzogZWRpdGFibGUgJiYgZ2V0SXNEcmFnZ2luZyB9XCI+XG4gICAgICAgIDxkaXYgW2lkXT1cInNlY3Rpb25Db2x1bW5LZXlQcmVmaXggKyBpXCIgXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCBpPWluZGV4O1wiXG4gICAgICAgICAgICBjbGFzcz1cInNlY3Rpb24tY29sdW1uIHt7c2NyZWVuU2l6ZSA8PSBwZXBTY3JlZW5TaXplVG9GbGlwVG9WZXJ0aWNhbCA/ICdob3Jpem9udGFsJyA6ICd2ZXJ0aWNhbCd9fVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhY3RpdmUtY29sdW1uJzogc2VsZWN0ZWRCbG9ja0tleSA9PT0gY29sdW1uLkJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSwgXG4gICAgICAgICAgICAgICAgJ2lzLWhpZGRlbic6IGdldElzSGlkZGVuKGNvbHVtbj8uQmxvY2tDb250YWluZXI/LkhpZGUsIHNjcmVlblR5cGUpLFxuICAgICAgICAgICAgICAgICdhbHJlYWR5LWNvbnRhaW5zLWJsb2NrJzogZWRpdGFibGUgJiYgY29sdW1uLkJsb2NrQ29udGFpbmVyICYmIGNvbHVtbi5CbG9ja0NvbnRhaW5lci5CbG9ja0tleSAmJiBjb2x1bW4uQmxvY2tDb250YWluZXIuQmxvY2tLZXkubGVuZ3RoID4gMCAmJiBcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dpbmdCbG9ja0tleSAmJiBkcmFnZ2luZ0Jsb2NrS2V5Lmxlbmd0aCA+IDAgJiYgY29sdW1uLkJsb2NrQ29udGFpbmVyLkJsb2NrS2V5ICE9PSBkcmFnZ2luZ0Jsb2NrS2V5IH1cIlxuICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiY29sdW1uXCJcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdE9yaWVudGF0aW9uXT1cInNjcmVlblNpemUgPD0gcGVwU2NyZWVuU2l6ZVRvRmxpcFRvVmVydGljYWwgPyAnaG9yaXpvbnRhbCcgOiAndmVydGljYWwnXCIgXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJzZWN0aW9uc0NvbHVtbnNEcm9wTGlzdFwiXG4gICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uQmxvY2tEcm9wcGVkKCRldmVudClcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwiY2FuRHJvcFByZWRpY2F0ZShpKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzZWN0aW9uLWJsb2NrICpuZ0lmPVwiY29sdW1uLkJsb2NrQ29udGFpbmVyPy5CbG9ja0tleVwiIGNsYXNzPVwic2VjdGlvbi1ibG9ja1wiIFtzZWN0aW9uS2V5XT1cImtleVwiIFtibG9ja1RlbXBsYXRlXT1cImJsb2NrVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtibG9ja0NvbnRhaW5lcl09XCJjb2x1bW4uQmxvY2tDb250YWluZXJcIiBbZWRpdGFibGVdPVwiZWRpdGFibGVcIiBbaXNNYWluRWRpdG9yU3RhdGVdPVwiaXNNYWluRWRpdG9yU3RhdGVcIiBbc2VjdGlvbkhlaWdodF09XCJzdHlsZUhlaWdodFwiXG4gICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJzZWxlY3RlZEJsb2NrS2V5ID09PSBjb2x1bW4uQmxvY2tDb250YWluZXI/LkJsb2NrS2V5XCIgW3NjcmVlblR5cGVdPVwic2NyZWVuVHlwZVwiXG4gICAgICAgICAgICAgICAgKGRyYWdFeGl0ZWQpPVwib25TZWN0aW9uQmxvY2tEcmFnRXhpdGVkKCRldmVudClcIiAoZHJhZ0VudGVyZWQpPVwib25TZWN0aW9uQmxvY2tEcmFnRW50ZXJlZCgkZXZlbnQpXCI+PC9zZWN0aW9uLWJsb2NrPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -18,12 +18,15 @@ export class SectionBlockComponent extends BaseDestroyerDirective {
18
18
  this.dragExited = new EventEmitter();
19
19
  this.dragEntered = new EventEmitter();
20
20
  this.hideForCurrentScreenType = false;
21
+ // protected remoteLoaderOptions: PepRemoteLoaderOptions;
22
+ // protected availableBlock: IPepDraggableItem | undefined;
23
+ this.blockTitle = '';
21
24
  }
22
25
  set blockContainer(value) {
23
26
  this._blockContainer = value;
24
- if (this._blockContainer) {
25
- this.availableBlock = this.layoutBuilderInternalService.availableBlocksForDragMap?.get(this._blockContainer?.DraggableItemKey);
26
- }
27
+ // if (this._blockContainer) {
28
+ // this.availableBlock = this.layoutBuilderInternalService.availableBlocksForDragMap?.get(this._blockContainer?.DraggableItemKey);
29
+ // }
27
30
  this.setIfHideForCurrentScreenType();
28
31
  }
29
32
  get blockContainer() {
@@ -41,16 +44,17 @@ export class SectionBlockComponent extends BaseDestroyerDirective {
41
44
  this.layoutBuilderInternalService.getIsHidden(this.blockContainer.Hide, this.screenType) : false;
42
45
  }
43
46
  ngOnInit() {
47
+ this.blockTitle = this.blockContainer?.BlockKey || '';
44
48
  //
45
- this.layoutBuilderInternalService.availableBlocksForDragMapChange$.pipe(this.getDestroyer()).subscribe((availableBlocksForDragMap) => {
46
- if (availableBlocksForDragMap && this.blockContainer) {
47
- this.availableBlock = availableBlocksForDragMap.get(this.blockContainer.DraggableItemKey);
48
- }
49
- });
49
+ // this.layoutBuilderInternalService.availableBlocksForDragMapChange$.pipe(this.getDestroyer()).subscribe((availableBlocksForDragMap) => {
50
+ // if (availableBlocksForDragMap && this.blockContainer) {
51
+ // this.availableBlock = (availableBlocksForDragMap as ReadonlyMap<string, IPepDraggableItem>).get(this.blockContainer.DraggableItemKey);
52
+ // }
53
+ // });
50
54
  }
51
55
  onEditBlockClick() {
52
56
  if (this.blockContainer?.BlockKey) {
53
- this.layoutBuilderInternalService.navigateToEditor('block', this.blockContainer.BlockKey);
57
+ this.layoutBuilderInternalService.navigateToEditor('block', this.blockContainer.BlockKey, this.blockTitle);
54
58
  }
55
59
  }
56
60
  onRemoveBlockClick() {
@@ -81,10 +85,10 @@ export class SectionBlockComponent extends BaseDestroyerDirective {
81
85
  }
82
86
  }
83
87
  SectionBlockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionBlockComponent, deps: [{ token: i1.LayoutBuilderInternalService }], target: i0.ɵɵFactoryTarget.Component });
84
- SectionBlockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: SectionBlockComponent, selector: "section-block", inputs: { blockTemplate: "blockTemplate", sectionKey: "sectionKey", sectionHeight: "sectionHeight", isMainEditorState: "isMainEditorState", editable: "editable", active: "active", blockContainer: "blockContainer", screenType: "screenType" }, outputs: { dragExited: "dragExited", dragEntered: "dragEntered" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"blockContainer?.BlockKey && (editable || !hideForCurrentScreenType)\" \n class=\"section-block-container\"\n [ngClass]=\"{ 'editable-state': editable, 'block-hidden-state': hideForCurrentScreenType, 'active-block': active }\"\n cdkDrag [cdkDragData]=\"blockContainer\" [cdkDragDisabled]=\"!editable || !isMainEditorState\" \n (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\"\n (cdkDragExited)=\"onDragExited($event)\" (cdkDragEntered)=\"onDragEntered($event)\">\n \n <pep-draggable-item *ngIf=\"editable && isMainEditorState\" cdkDragHandle style=\"cursor: grab;\"\n class=\"block-toolbar\" [title]=\"availableBlock?.title || blockContainer?.BlockKey || ''\" >\n <ng-container pep-actions>\n <pep-button classNames=\"caution\" sizeType=\"xs\" iconName=\"system_bin\" (buttonClick)=\"onRemoveBlockClick();\"></pep-button>\n <!-- <hide-in [hideIn]=\"blockContainer.Hide\" (hideInChange)=\"onHideBlockChange($event)\"></hide-in> -->\n <pep-button sizeType=\"xs\" iconName=\"system_edit\" (buttonClick)=\"onEditBlockClick();\"></pep-button>\n </ng-container>f\n </pep-draggable-item>\n <div class=\"block-template-wrapper\" [ngStyle]=\"{ 'overflow': (sectionHeight === 'unset' ? 'unset' : 'auto') }\">\n <div *ngIf=\"blockTemplate\" class=\"block-template\">\n <ng-container *ngTemplateOutlet=\"blockTemplate; context: { blockKey: blockContainer?.BlockKey, draggableItemKey: blockContainer?.DraggableItemKey }\">\n </ng-container>\n </div>\n <!-- <pep-remote-loader-element *ngIf=\"remoteLoaderOptions\" class=\"remote-loader\"\n [options]=\"remoteLoaderOptions\"\n [props]=\"{ hostObject: hostObject }\"\n [events]=\"{ hostEvents: onBlockHostEventsCallback }\"\n (load)=\"onBlockLoad($event)\">\n </pep-remote-loader-element> -->\n </div>\n</div>\n", styles: [".section-block-container{height:100%;width:100%}.section-block-container.editable-state:not(.active-block) .block-template-wrapper .block-template{pointer-events:none;opacity:.5}.section-block-container.editable-state.cdk-drag-preview .block-template-wrapper,.section-block-container.editable-state.cdk-drag-placeholder .block-toolbar{opacity:0}.section-block-container.editable-state .block-toolbar{position:absolute;top:50%;left:50%;width:95%;max-width:240px;transform:translate(-50%,-50%);z-index:3}.section-block-container.editable-state .block-toolbar:hover{z-index:12!important}.section-block-container .block-template-wrapper{height:100%;position:relative}.section-block-container .block-template-wrapper .block-template{display:block;height:100%;width:100%}\n", ".section-block-container.editable-state.block-hidden-state:not(.active-block){background:repeating-linear-gradient(45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem),repeating-linear-gradient(-45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i4.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i5.DraggableItemComponent, selector: "pep-draggable-item", inputs: ["title", "titlePrefix", "titleClassNames", "data", "disabled", "shadow", "styleType", "toggleContent", "isToggleContentOpen", "actionsMenu", "menuStyleType"], outputs: ["contentToggle", "actionsMenuItemClick"] }] });
88
+ SectionBlockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: SectionBlockComponent, selector: "section-block", inputs: { blockTemplate: "blockTemplate", sectionKey: "sectionKey", sectionHeight: "sectionHeight", isMainEditorState: "isMainEditorState", editable: "editable", active: "active", blockContainer: "blockContainer", screenType: "screenType" }, outputs: { dragExited: "dragExited", dragEntered: "dragEntered" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"blockContainer?.BlockKey && (editable || !hideForCurrentScreenType)\" \n class=\"section-block-container\"\n [ngClass]=\"{ 'editable-state': editable, 'block-hidden-state': hideForCurrentScreenType, 'active-block': active }\"\n cdkDrag [cdkDragData]=\"blockContainer\" [cdkDragDisabled]=\"!editable || !isMainEditorState\" \n (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\"\n (cdkDragExited)=\"onDragExited($event)\" (cdkDragEntered)=\"onDragEntered($event)\">\n \n <pep-draggable-item *ngIf=\"editable && isMainEditorState\" cdkDragHandle style=\"cursor: grab;\"\n class=\"block-toolbar\" [title]=\"blockTitle\" >\n <ng-container pep-actions>\n <pep-button classNames=\"caution\" sizeType=\"xs\" iconName=\"system_bin\" (buttonClick)=\"onRemoveBlockClick();\"></pep-button>\n <!-- <hide-in [hideIn]=\"blockContainer.Hide\" (hideInChange)=\"onHideBlockChange($event)\"></hide-in> -->\n <pep-button sizeType=\"xs\" iconName=\"system_edit\" (buttonClick)=\"onEditBlockClick();\"></pep-button>\n </ng-container>\n </pep-draggable-item>\n <div class=\"block-template-wrapper\" [ngStyle]=\"{ 'overflow': (sectionHeight === 'unset' ? 'unset' : 'auto') }\">\n <div *ngIf=\"blockTemplate\" class=\"block-template\">\n <ng-container *ngTemplateOutlet=\"blockTemplate; context: { blockKey: blockContainer?.BlockKey }\">\n </ng-container>\n </div>\n <!-- <pep-remote-loader-element *ngIf=\"remoteLoaderOptions\" class=\"remote-loader\"\n [options]=\"remoteLoaderOptions\"\n [props]=\"{ hostObject: hostObject }\"\n [events]=\"{ hostEvents: onBlockHostEventsCallback }\"\n (load)=\"onBlockLoad($event)\">\n </pep-remote-loader-element> -->\n </div>\n</div>\n", styles: [".section-block-container{height:100%;width:100%}.section-block-container.editable-state:not(.active-block) .block-template-wrapper .block-template{pointer-events:none;opacity:.5}.section-block-container.editable-state.cdk-drag-preview .block-template-wrapper,.section-block-container.editable-state.cdk-drag-placeholder .block-toolbar{opacity:0}.section-block-container.editable-state .block-toolbar{position:absolute;top:50%;left:50%;width:95%;max-width:240px;transform:translate(-50%,-50%);z-index:3}.section-block-container.editable-state .block-toolbar:hover{z-index:12!important}.section-block-container .block-template-wrapper{height:100%;position:relative}.section-block-container .block-template-wrapper .block-template{display:block;height:100%;width:100%}\n", ".section-block-container.editable-state.block-hidden-state:not(.active-block){background:repeating-linear-gradient(45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem),repeating-linear-gradient(-45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i4.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i5.DraggableItemComponent, selector: "pep-draggable-item", inputs: ["title", "titlePrefix", "titleClassNames", "data", "disabled", "shadow", "styleType", "toggleContent", "isToggleContentOpen", "actionsMenu", "menuStyleType"], outputs: ["contentToggle", "actionsMenuItemClick"] }] });
85
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionBlockComponent, decorators: [{
86
90
  type: Component,
87
- args: [{ selector: 'section-block', template: "<div *ngIf=\"blockContainer?.BlockKey && (editable || !hideForCurrentScreenType)\" \n class=\"section-block-container\"\n [ngClass]=\"{ 'editable-state': editable, 'block-hidden-state': hideForCurrentScreenType, 'active-block': active }\"\n cdkDrag [cdkDragData]=\"blockContainer\" [cdkDragDisabled]=\"!editable || !isMainEditorState\" \n (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\"\n (cdkDragExited)=\"onDragExited($event)\" (cdkDragEntered)=\"onDragEntered($event)\">\n \n <pep-draggable-item *ngIf=\"editable && isMainEditorState\" cdkDragHandle style=\"cursor: grab;\"\n class=\"block-toolbar\" [title]=\"availableBlock?.title || blockContainer?.BlockKey || ''\" >\n <ng-container pep-actions>\n <pep-button classNames=\"caution\" sizeType=\"xs\" iconName=\"system_bin\" (buttonClick)=\"onRemoveBlockClick();\"></pep-button>\n <!-- <hide-in [hideIn]=\"blockContainer.Hide\" (hideInChange)=\"onHideBlockChange($event)\"></hide-in> -->\n <pep-button sizeType=\"xs\" iconName=\"system_edit\" (buttonClick)=\"onEditBlockClick();\"></pep-button>\n </ng-container>f\n </pep-draggable-item>\n <div class=\"block-template-wrapper\" [ngStyle]=\"{ 'overflow': (sectionHeight === 'unset' ? 'unset' : 'auto') }\">\n <div *ngIf=\"blockTemplate\" class=\"block-template\">\n <ng-container *ngTemplateOutlet=\"blockTemplate; context: { blockKey: blockContainer?.BlockKey, draggableItemKey: blockContainer?.DraggableItemKey }\">\n </ng-container>\n </div>\n <!-- <pep-remote-loader-element *ngIf=\"remoteLoaderOptions\" class=\"remote-loader\"\n [options]=\"remoteLoaderOptions\"\n [props]=\"{ hostObject: hostObject }\"\n [events]=\"{ hostEvents: onBlockHostEventsCallback }\"\n (load)=\"onBlockLoad($event)\">\n </pep-remote-loader-element> -->\n </div>\n</div>\n", styles: [".section-block-container{height:100%;width:100%}.section-block-container.editable-state:not(.active-block) .block-template-wrapper .block-template{pointer-events:none;opacity:.5}.section-block-container.editable-state.cdk-drag-preview .block-template-wrapper,.section-block-container.editable-state.cdk-drag-placeholder .block-toolbar{opacity:0}.section-block-container.editable-state .block-toolbar{position:absolute;top:50%;left:50%;width:95%;max-width:240px;transform:translate(-50%,-50%);z-index:3}.section-block-container.editable-state .block-toolbar:hover{z-index:12!important}.section-block-container .block-template-wrapper{height:100%;position:relative}.section-block-container .block-template-wrapper .block-template{display:block;height:100%;width:100%}\n", ".section-block-container.editable-state.block-hidden-state:not(.active-block){background:repeating-linear-gradient(45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem),repeating-linear-gradient(-45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem)}\n"] }]
91
+ args: [{ selector: 'section-block', template: "<div *ngIf=\"blockContainer?.BlockKey && (editable || !hideForCurrentScreenType)\" \n class=\"section-block-container\"\n [ngClass]=\"{ 'editable-state': editable, 'block-hidden-state': hideForCurrentScreenType, 'active-block': active }\"\n cdkDrag [cdkDragData]=\"blockContainer\" [cdkDragDisabled]=\"!editable || !isMainEditorState\" \n (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\"\n (cdkDragExited)=\"onDragExited($event)\" (cdkDragEntered)=\"onDragEntered($event)\">\n \n <pep-draggable-item *ngIf=\"editable && isMainEditorState\" cdkDragHandle style=\"cursor: grab;\"\n class=\"block-toolbar\" [title]=\"blockTitle\" >\n <ng-container pep-actions>\n <pep-button classNames=\"caution\" sizeType=\"xs\" iconName=\"system_bin\" (buttonClick)=\"onRemoveBlockClick();\"></pep-button>\n <!-- <hide-in [hideIn]=\"blockContainer.Hide\" (hideInChange)=\"onHideBlockChange($event)\"></hide-in> -->\n <pep-button sizeType=\"xs\" iconName=\"system_edit\" (buttonClick)=\"onEditBlockClick();\"></pep-button>\n </ng-container>\n </pep-draggable-item>\n <div class=\"block-template-wrapper\" [ngStyle]=\"{ 'overflow': (sectionHeight === 'unset' ? 'unset' : 'auto') }\">\n <div *ngIf=\"blockTemplate\" class=\"block-template\">\n <ng-container *ngTemplateOutlet=\"blockTemplate; context: { blockKey: blockContainer?.BlockKey }\">\n </ng-container>\n </div>\n <!-- <pep-remote-loader-element *ngIf=\"remoteLoaderOptions\" class=\"remote-loader\"\n [options]=\"remoteLoaderOptions\"\n [props]=\"{ hostObject: hostObject }\"\n [events]=\"{ hostEvents: onBlockHostEventsCallback }\"\n (load)=\"onBlockLoad($event)\">\n </pep-remote-loader-element> -->\n </div>\n</div>\n", styles: [".section-block-container{height:100%;width:100%}.section-block-container.editable-state:not(.active-block) .block-template-wrapper .block-template{pointer-events:none;opacity:.5}.section-block-container.editable-state.cdk-drag-preview .block-template-wrapper,.section-block-container.editable-state.cdk-drag-placeholder .block-toolbar{opacity:0}.section-block-container.editable-state .block-toolbar{position:absolute;top:50%;left:50%;width:95%;max-width:240px;transform:translate(-50%,-50%);z-index:3}.section-block-container.editable-state .block-toolbar:hover{z-index:12!important}.section-block-container .block-template-wrapper{height:100%;position:relative}.section-block-container .block-template-wrapper .block-template{display:block;height:100%;width:100%}\n", ".section-block-container.editable-state.block-hidden-state:not(.active-block){background:repeating-linear-gradient(45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem),repeating-linear-gradient(-45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem)}\n"] }]
88
92
  }], ctorParameters: function () { return [{ type: i1.LayoutBuilderInternalService }]; }, propDecorators: { blockTemplate: [{
89
93
  type: Input
90
94
  }], sectionKey: [{
@@ -106,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
106
110
  }], dragEntered: [{
107
111
  type: Output
108
112
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1ibG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9zZWN0aW9uLWJsb2NrL3NlY3Rpb24tYmxvY2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi1ibG9jay9zZWN0aW9uLWJsb2NrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBSXZHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBV2pFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxzQkFBc0I7SUF3QzdELFlBQ1ksNEJBQTBEO1FBRWxFLEtBQUssRUFBRSxDQUFDO1FBRkEsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQXRDN0QsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBMEJkLGVBQVUsR0FBOEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzRCxnQkFBVyxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTdELDZCQUF3QixHQUFHLEtBQUssQ0FBQztJQVEzQyxDQUFDO0lBbENELElBQ0ksY0FBYyxDQUFDLEtBQTJDO1FBQzFELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElB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TWhCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFJRixjQUFjO3NCQURqQixLQUFLO2dCQWVGLFVBQVU7c0JBRGIsS0FBSztnQkFTSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtEcmFnRW5kLCBDZGtEcmFnRW50ZXIsIENka0RyYWdFeGl0LCBDZGtEcmFnU3RhcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuaW1wb3J0IHsgRGF0YVZpZXdTY3JlZW5TaXplIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL3BhcGktc2RrJztcbmltcG9ydCB7IEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBJUGVwRHJhZ2dhYmxlSXRlbSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2RyYWdnYWJsZS1pdGVtcyc7XG5pbXBvcnQgeyBQZXBSZW1vdGVMb2FkZXJPcHRpb25zIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvcmVtb3RlLWxvYWRlcic7XG5pbXBvcnQgeyBMYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlIH0gZnJvbSAnLi4vbGF5b3V0LWJ1aWxkZXItaW50ZXJuYWwuc2VydmljZSc7XG5pbXBvcnQgeyBJUGVwTGF5b3V0QmxvY2tDb250YWluZXIgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2VjdGlvbi1ibG9jaycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlY3Rpb24tYmxvY2suY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlY3Rpb24tYmxvY2suY29tcG9uZW50LnNjc3MnLCAnLi9zZWN0aW9uLWJsb2NrLmNvbXBvbmVudC50aGVtZS5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbkJsb2NrQ29tcG9uZW50IGV4dGVuZHMgQmFzZURlc3Ryb3llckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgXG4gICAgQElucHV0KCkgYmxvY2tUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBzZWN0aW9uS2V5OiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBzZWN0aW9uSGVpZ2h0OiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBpc01haW5FZGl0b3JTdGF0ZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGVkaXRhYmxlID0gZmFsc2U7XG4gICAgQElucHV0KCkgYWN0aXZlID0gZmFsc2U7XG4gICAgXG4gICAgcHJpdmF0ZSBfYmxvY2tDb250YWluZXI6IElQZXBMYXlvdXRCbG9ja0NvbnRhaW5lciB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBibG9ja0NvbnRhaW5lcih2YWx1ZTogSVBlcExheW91dEJsb2NrQ29udGFpbmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX2Jsb2NrQ29udGFpbmVyID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9ibG9ja0NvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5hdmFpbGFibGVCbG9jayA9IHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5hdmFpbGFibGVCbG9ja3NGb3JEcmFnTWFwPy5nZXQodGhpcy5fYmxvY2tDb250YWluZXI/LkRyYWdnYWJsZUl0ZW1LZXkpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICB0aGlzLnNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk7XG4gICAgfVxuICAgIGdldCBibG9ja0NvbnRhaW5lcigpOiBJUGVwTGF5b3V0QmxvY2tDb250YWluZXIgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fYmxvY2tDb250YWluZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2NyZWVuVHlwZSE6IERhdGFWaWV3U2NyZWVuU2l6ZTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBzY3JlZW5UeXBlKHZhbHVlOiBEYXRhVmlld1NjcmVlblNpemUpIHtcbiAgICAgICAgdGhpcy5fc2NyZWVuVHlwZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk7XG4gICAgfVxuICAgIGdldCBzY3JlZW5UeXBlKCk6IERhdGFWaWV3U2NyZWVuU2l6ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zY3JlZW5UeXBlO1xuICAgIH1cbiAgICBcbiAgICBAT3V0cHV0KCkgZHJhZ0V4aXRlZDogRXZlbnRFbWl0dGVyPENka0RyYWdFeGl0PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZHJhZ0VudGVyZWQ6IEV2ZW50RW1pdHRlcjxDZGtEcmFnRW50ZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHJvdGVjdGVkIGhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSA9IGZhbHNlO1xuICAgIC8vIHByb3RlY3RlZCByZW1vdGVMb2FkZXJPcHRpb25zOiBQZXBSZW1vdGVMb2FkZXJPcHRpb25zO1xuICAgIHByb3RlY3RlZCBhdmFpbGFibGVCbG9jazogSVBlcERyYWdnYWJsZUl0ZW0gfCB1bmRlZmluZWQ7XG4gICAgXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZTogTGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBzZXRJZkhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlRm9yQ3VycmVudFNjcmVlblR5cGUgPSB0aGlzLmJsb2NrQ29udGFpbmVyID8gXG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0SXNIaWRkZW4odGhpcy5ibG9ja0NvbnRhaW5lci5IaWRlLCB0aGlzLnNjcmVlblR5cGUpIDogZmFsc2U7XG4gICAgfVxuICAgIFxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmF2YWlsYWJsZUJsb2Nrc0ZvckRyYWdNYXBDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChhdmFpbGFibGVCbG9ja3NGb3JEcmFnTWFwKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXZhaWxhYmxlQmxvY2tzRm9yRHJhZ01hcCAmJiB0aGlzLmJsb2NrQ29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hdmFpbGFibGVCbG9jayA9IChhdmFpbGFibGVCbG9ja3NGb3JEcmFnTWFwIGFzIFJlYWRvbmx5TWFwPHN0cmluZywgSVBlcERyYWdnYWJsZUl0ZW0+KS5nZXQodGhpcy5ibG9ja0NvbnRhaW5lci5EcmFnZ2FibGVJdGVtS2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25FZGl0QmxvY2tDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMuYmxvY2tDb250YWluZXI/LkJsb2NrS2V5KSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UubmF2aWdhdGVUb0VkaXRvcignYmxvY2snLCB0aGlzLmJsb2NrQ29udGFpbmVyLkJsb2NrS2V5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUmVtb3ZlQmxvY2tDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMuYmxvY2tDb250YWluZXI/LkJsb2NrS2V5KSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UucmVtb3ZlQmxvY2tGcm9tU2VjdGlvbih0aGlzLmJsb2NrQ29udGFpbmVyLkJsb2NrS2V5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSGlkZUJsb2NrQ2hhbmdlKGhpZGVJbjogRGF0YVZpZXdTY3JlZW5TaXplW10pIHtcbiAgICAgICAgaWYgKHRoaXMuYmxvY2tDb250YWluZXI/LkJsb2NrS2V5KSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuaGlkZUJsb2NrKHRoaXMuc2VjdGlvbktleSwgdGhpcy5ibG9ja0NvbnRhaW5lci5CbG9ja0tleSwgaGlkZUluKTtcbiAgICAgICAgICAgIHRoaXMuc2V0SWZIaWRlRm9yQ3VycmVudFNjcmVlblR5cGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIG9uQmxvY2tMb2FkKGV2ZW50OiBhbnkpIHtcbiAgICAvLyAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS51cGRhdGVCbG9ja0xvYWRlZCh0aGlzLmJsb2NrQ29udGFpbmVyLkJsb2NrS2V5KTtcbiAgICAvLyB9XG5cbiAgICBvbkRyYWdTdGFydChldmVudDogQ2RrRHJhZ1N0YXJ0KSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5vbkJsb2NrRHJhZ1N0YXJ0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkRyYWdFbmQoZXZlbnQ6IENka0RyYWdFbmQpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLm9uQmxvY2tEcmFnRW5kKGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkRyYWdFeGl0ZWQoZXZlbnQ6IENka0RyYWdFeGl0KSB7XG4gICAgICAgIHRoaXMuZHJhZ0V4aXRlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkRyYWdFbnRlcmVkKGV2ZW50OiBDZGtEcmFnRW50ZXIpIHtcbiAgICAgICAgdGhpcy5kcmFnRW50ZXJlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiYmxvY2tDb250YWluZXI/LkJsb2NrS2V5ICYmIChlZGl0YWJsZSB8fCAhaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKVwiIFxuICAgIGNsYXNzPVwic2VjdGlvbi1ibG9jay1jb250YWluZXJcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2VkaXRhYmxlLXN0YXRlJzogZWRpdGFibGUsICdibG9jay1oaWRkZW4tc3RhdGUnOiBoaWRlRm9yQ3VycmVudFNjcmVlblR5cGUsICdhY3RpdmUtYmxvY2snOiBhY3RpdmUgfVwiXG4gICAgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwiYmxvY2tDb250YWluZXJcIiBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCAhaXNNYWluRWRpdG9yU3RhdGVcIiBcbiAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwib25EcmFnU3RhcnQoJGV2ZW50KVwiIChjZGtEcmFnRW5kZWQpPVwib25EcmFnRW5kKCRldmVudClcIlxuICAgIChjZGtEcmFnRXhpdGVkKT1cIm9uRHJhZ0V4aXRlZCgkZXZlbnQpXCIgKGNka0RyYWdFbnRlcmVkKT1cIm9uRHJhZ0VudGVyZWQoJGV2ZW50KVwiPlxuICAgXG4gICAgPHBlcC1kcmFnZ2FibGUtaXRlbSAqbmdJZj1cImVkaXRhYmxlICYmIGlzTWFpbkVkaXRvclN0YXRlXCIgY2RrRHJhZ0hhbmRsZSBzdHlsZT1cImN1cnNvcjogZ3JhYjtcIlxuICAgICAgICBjbGFzcz1cImJsb2NrLXRvb2xiYXJcIiBbdGl0bGVdPVwiYXZhaWxhYmxlQmxvY2s/LnRpdGxlIHx8IGJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSB8fCAnJ1wiID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBwZXAtYWN0aW9ucz5cbiAgICAgICAgICAgIDxwZXAtYnV0dG9uIGNsYXNzTmFtZXM9XCJjYXV0aW9uXCIgc2l6ZVR5cGU9XCJ4c1wiIGljb25OYW1lPVwic3lzdGVtX2JpblwiIChidXR0b25DbGljayk9XCJvblJlbW92ZUJsb2NrQ2xpY2soKTtcIj48L3BlcC1idXR0b24+XG4gICAgICAgICAgICA8IS0tIDxoaWRlLWluIFtoaWRlSW5dPVwiYmxvY2tDb250YWluZXIuSGlkZVwiIChoaWRlSW5DaGFuZ2UpPVwib25IaWRlQmxvY2tDaGFuZ2UoJGV2ZW50KVwiPjwvaGlkZS1pbj4gLS0+XG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBzaXplVHlwZT1cInhzXCIgaWNvbk5hbWU9XCJzeXN0ZW1fZWRpdFwiIChidXR0b25DbGljayk9XCJvbkVkaXRCbG9ja0NsaWNrKCk7XCI+PC9wZXAtYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5mXG4gICAgPC9wZXAtZHJhZ2dhYmxlLWl0ZW0+XG4gICAgPGRpdiBjbGFzcz1cImJsb2NrLXRlbXBsYXRlLXdyYXBwZXJcIiBbbmdTdHlsZV09XCJ7ICdvdmVyZmxvdyc6IChzZWN0aW9uSGVpZ2h0ID09PSAndW5zZXQnID8gJ3Vuc2V0JyA6ICdhdXRvJykgfVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiYmxvY2tUZW1wbGF0ZVwiIGNsYXNzPVwiYmxvY2stdGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJibG9ja1RlbXBsYXRlOyBjb250ZXh0OiB7IGJsb2NrS2V5OiBibG9ja0NvbnRhaW5lcj8uQmxvY2tLZXksIGRyYWdnYWJsZUl0ZW1LZXk6IGJsb2NrQ29udGFpbmVyPy5EcmFnZ2FibGVJdGVtS2V5IH1cIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSA8cGVwLXJlbW90ZS1sb2FkZXItZWxlbWVudCAqbmdJZj1cInJlbW90ZUxvYWRlck9wdGlvbnNcIiBjbGFzcz1cInJlbW90ZS1sb2FkZXJcIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwicmVtb3RlTG9hZGVyT3B0aW9uc1wiXG4gICAgICAgICAgICBbcHJvcHNdPVwieyBob3N0T2JqZWN0OiBob3N0T2JqZWN0IH1cIlxuICAgICAgICAgICAgW2V2ZW50c109XCJ7IGhvc3RFdmVudHM6IG9uQmxvY2tIb3N0RXZlbnRzQ2FsbGJhY2sgfVwiXG4gICAgICAgICAgICAobG9hZCk9XCJvbkJsb2NrTG9hZCgkZXZlbnQpXCI+XG4gICAgICAgIDwvcGVwLXJlbW90ZS1sb2FkZXItZWxlbWVudD4gLS0+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1ibG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9zZWN0aW9uLWJsb2NrL3NlY3Rpb24tYmxvY2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi1ibG9jay9zZWN0aW9uLWJsb2NrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBSXZHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBV2pFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxzQkFBc0I7SUF5QzdELFlBQ1ksNEJBQTBEO1FBRWxFLEtBQUssRUFBRSxDQUFDO1FBRkEsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQXZDN0QsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBMEJkLGVBQVUsR0FBOEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzRCxnQkFBVyxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTdELDZCQUF3QixHQUFHLEtBQUssQ0FBQztRQUMzQyx5REFBeUQ7UUFDekQsMkRBQTJEO1FBQ2pELGVBQVUsR0FBRyxFQUFFLENBQUM7SUFNMUIsQ0FBQztJQW5DRCxJQUNJLGNBQWMsQ0FBQyxLQUEyQztRQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3Qiw4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YixLQUFLO2dCQVNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENka0RyYWdFbmQsIENka0RyYWdFbnRlciwgQ2RrRHJhZ0V4aXQsIENka0RyYWdTdGFydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuXG5pbXBvcnQgeyBEYXRhVmlld1NjcmVlblNpemUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvcGFwaS1zZGsnO1xuaW1wb3J0IHsgQmFzZURlc3Ryb3llckRpcmVjdGl2ZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IElQZXBEcmFnZ2FibGVJdGVtIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvZHJhZ2dhYmxlLWl0ZW1zJztcbmltcG9ydCB7IFBlcFJlbW90ZUxvYWRlck9wdGlvbnMgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9yZW1vdGUtbG9hZGVyJztcbmltcG9ydCB7IExheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci1pbnRlcm5hbC5zZXJ2aWNlJztcbmltcG9ydCB7IElQZXBMYXlvdXRCbG9ja0NvbnRhaW5lciB9IGZyb20gJy4uL2xheW91dC1idWlsZGVyLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzZWN0aW9uLWJsb2NrJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VjdGlvbi1ibG9jay5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VjdGlvbi1ibG9jay5jb21wb25lbnQuc2NzcycsICcuL3NlY3Rpb24tYmxvY2suY29tcG9uZW50LnRoZW1lLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWN0aW9uQmxvY2tDb21wb25lbnQgZXh0ZW5kcyBCYXNlRGVzdHJveWVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBcbiAgICBASW5wdXQoKSBibG9ja1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHNlY3Rpb25LZXk6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIHNlY3Rpb25IZWlnaHQ6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIGlzTWFpbkVkaXRvclN0YXRlID0gZmFsc2U7XG4gICAgQElucHV0KCkgZWRpdGFibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhY3RpdmUgPSBmYWxzZTtcbiAgICBcbiAgICBwcml2YXRlIF9ibG9ja0NvbnRhaW5lcjogSVBlcExheW91dEJsb2NrQ29udGFpbmVyIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGJsb2NrQ29udGFpbmVyKHZhbHVlOiBJUGVwTGF5b3V0QmxvY2tDb250YWluZXIgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fYmxvY2tDb250YWluZXIgPSB2YWx1ZTtcbiAgICAgICAgLy8gaWYgKHRoaXMuX2Jsb2NrQ29udGFpbmVyKSB7XG4gICAgICAgIC8vICAgICB0aGlzLmF2YWlsYWJsZUJsb2NrID0gdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmF2YWlsYWJsZUJsb2Nrc0ZvckRyYWdNYXA/LmdldCh0aGlzLl9ibG9ja0NvbnRhaW5lcj8uRHJhZ2dhYmxlSXRlbUtleSk7XG4gICAgICAgIC8vIH1cbiAgICAgICAgXG4gICAgICAgIHRoaXMuc2V0SWZIaWRlRm9yQ3VycmVudFNjcmVlblR5cGUoKTtcbiAgICB9XG4gICAgZ2V0IGJsb2NrQ29udGFpbmVyKCk6IElQZXBMYXlvdXRCbG9ja0NvbnRhaW5lciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ibG9ja0NvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zY3JlZW5UeXBlITogRGF0YVZpZXdTY3JlZW5TaXplO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNjcmVlblR5cGUodmFsdWU6IERhdGFWaWV3U2NyZWVuU2l6ZSkge1xuICAgICAgICB0aGlzLl9zY3JlZW5UeXBlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0SWZIaWRlRm9yQ3VycmVudFNjcmVlblR5cGUoKTtcbiAgICB9XG4gICAgZ2V0IHNjcmVlblR5cGUoKTogRGF0YVZpZXdTY3JlZW5TaXplIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NjcmVlblR5cGU7XG4gICAgfVxuICAgIFxuICAgIEBPdXRwdXQoKSBkcmFnRXhpdGVkOiBFdmVudEVtaXR0ZXI8Q2RrRHJhZ0V4aXQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBkcmFnRW50ZXJlZDogRXZlbnRFbWl0dGVyPENka0RyYWdFbnRlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcm90ZWN0ZWQgaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlID0gZmFsc2U7XG4gICAgLy8gcHJvdGVjdGVkIHJlbW90ZUxvYWRlck9wdGlvbnM6IFBlcFJlbW90ZUxvYWRlck9wdGlvbnM7XG4gICAgLy8gcHJvdGVjdGVkIGF2YWlsYWJsZUJsb2NrOiBJUGVwRHJhZ2dhYmxlSXRlbSB8IHVuZGVmaW5lZDtcbiAgICBwcm90ZWN0ZWQgYmxvY2tUaXRsZSA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZTogTGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBzZXRJZkhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlRm9yQ3VycmVudFNjcmVlblR5cGUgPSB0aGlzLmJsb2NrQ29udGFpbmVyID8gXG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0SXNIaWRkZW4odGhpcy5ibG9ja0NvbnRhaW5lci5IaWRlLCB0aGlzLnNjcmVlblR5cGUpIDogZmFsc2U7XG4gICAgfVxuICAgIFxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJsb2NrVGl0bGUgPSAgdGhpcy5ibG9ja0NvbnRhaW5lcj8uQmxvY2tLZXkgfHwgJyc7XG4gICAgICAgIC8vIFxuICAgICAgICAvLyB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuYXZhaWxhYmxlQmxvY2tzRm9yRHJhZ01hcENoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWdNYXApID0+IHtcbiAgICAgICAgLy8gICAgIGlmIChhdmFpbGFibGVCbG9ja3NGb3JEcmFnTWFwICYmIHRoaXMuYmxvY2tDb250YWluZXIpIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLmF2YWlsYWJsZUJsb2NrID0gKGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWdNYXAgYXMgUmVhZG9ubHlNYXA8c3RyaW5nLCBJUGVwRHJhZ2dhYmxlSXRlbT4pLmdldCh0aGlzLmJsb2NrQ29udGFpbmVyLkRyYWdnYWJsZUl0ZW1LZXkpO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9KTtcbiAgICB9XG5cbiAgICBvbkVkaXRCbG9ja0NsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy5ibG9ja0NvbnRhaW5lcj8uQmxvY2tLZXkpIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5uYXZpZ2F0ZVRvRWRpdG9yKCdibG9jaycsIHRoaXMuYmxvY2tDb250YWluZXIuQmxvY2tLZXksIHRoaXMuYmxvY2tUaXRsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJlbW92ZUJsb2NrQ2xpY2soKSB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSkge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnJlbW92ZUJsb2NrRnJvbVNlY3Rpb24odGhpcy5ibG9ja0NvbnRhaW5lci5CbG9ja0tleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkhpZGVCbG9ja0NoYW5nZShoaWRlSW46IERhdGFWaWV3U2NyZWVuU2l6ZVtdKSB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSkge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmhpZGVCbG9jayh0aGlzLnNlY3Rpb25LZXksIHRoaXMuYmxvY2tDb250YWluZXIuQmxvY2tLZXksIGhpZGVJbik7XG4gICAgICAgICAgICB0aGlzLnNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBvbkJsb2NrTG9hZChldmVudDogYW55KSB7XG4gICAgLy8gICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UudXBkYXRlQmxvY2tMb2FkZWQodGhpcy5ibG9ja0NvbnRhaW5lci5CbG9ja0tleSk7XG4gICAgLy8gfVxuXG4gICAgb25EcmFnU3RhcnQoZXZlbnQ6IENka0RyYWdTdGFydCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uub25CbG9ja0RyYWdTdGFydChldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnRW5kKGV2ZW50OiBDZGtEcmFnRW5kKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5vbkJsb2NrRHJhZ0VuZChldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnRXhpdGVkKGV2ZW50OiBDZGtEcmFnRXhpdCkge1xuICAgICAgICB0aGlzLmRyYWdFeGl0ZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnRW50ZXJlZChldmVudDogQ2RrRHJhZ0VudGVyKSB7XG4gICAgICAgIHRoaXMuZHJhZ0VudGVyZWQuZW1pdChldmVudCk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSAmJiAoZWRpdGFibGUgfHwgIWhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSlcIiBcbiAgICBjbGFzcz1cInNlY3Rpb24tYmxvY2stY29udGFpbmVyXCJcbiAgICBbbmdDbGFzc109XCJ7ICdlZGl0YWJsZS1zdGF0ZSc6IGVkaXRhYmxlLCAnYmxvY2staGlkZGVuLXN0YXRlJzogaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlLCAnYWN0aXZlLWJsb2NrJzogYWN0aXZlIH1cIlxuICAgIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cImJsb2NrQ29udGFpbmVyXCIgW2Nka0RyYWdEaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgIWlzTWFpbkVkaXRvclN0YXRlXCIgXG4gICAgKGNka0RyYWdTdGFydGVkKT1cIm9uRHJhZ1N0YXJ0KCRldmVudClcIiAoY2RrRHJhZ0VuZGVkKT1cIm9uRHJhZ0VuZCgkZXZlbnQpXCJcbiAgICAoY2RrRHJhZ0V4aXRlZCk9XCJvbkRyYWdFeGl0ZWQoJGV2ZW50KVwiIChjZGtEcmFnRW50ZXJlZCk9XCJvbkRyYWdFbnRlcmVkKCRldmVudClcIj5cbiAgIFxuICAgIDxwZXAtZHJhZ2dhYmxlLWl0ZW0gKm5nSWY9XCJlZGl0YWJsZSAmJiBpc01haW5FZGl0b3JTdGF0ZVwiIGNka0RyYWdIYW5kbGUgc3R5bGU9XCJjdXJzb3I6IGdyYWI7XCJcbiAgICAgICAgY2xhc3M9XCJibG9jay10b29sYmFyXCIgW3RpdGxlXT1cImJsb2NrVGl0bGVcIiA+XG4gICAgICAgIDxuZy1jb250YWluZXIgcGVwLWFjdGlvbnM+XG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBjbGFzc05hbWVzPVwiY2F1dGlvblwiIHNpemVUeXBlPVwieHNcIiBpY29uTmFtZT1cInN5c3RlbV9iaW5cIiAoYnV0dG9uQ2xpY2spPVwib25SZW1vdmVCbG9ja0NsaWNrKCk7XCI+PC9wZXAtYnV0dG9uPlxuICAgICAgICAgICAgPCEtLSA8aGlkZS1pbiBbaGlkZUluXT1cImJsb2NrQ29udGFpbmVyLkhpZGVcIiAoaGlkZUluQ2hhbmdlKT1cIm9uSGlkZUJsb2NrQ2hhbmdlKCRldmVudClcIj48L2hpZGUtaW4+IC0tPlxuICAgICAgICAgICAgPHBlcC1idXR0b24gc2l6ZVR5cGU9XCJ4c1wiIGljb25OYW1lPVwic3lzdGVtX2VkaXRcIiAoYnV0dG9uQ2xpY2spPVwib25FZGl0QmxvY2tDbGljaygpO1wiPjwvcGVwLWJ1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9wZXAtZHJhZ2dhYmxlLWl0ZW0+XG4gICAgPGRpdiBjbGFzcz1cImJsb2NrLXRlbXBsYXRlLXdyYXBwZXJcIiBbbmdTdHlsZV09XCJ7ICdvdmVyZmxvdyc6IChzZWN0aW9uSGVpZ2h0ID09PSAndW5zZXQnID8gJ3Vuc2V0JyA6ICdhdXRvJykgfVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiYmxvY2tUZW1wbGF0ZVwiIGNsYXNzPVwiYmxvY2stdGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJibG9ja1RlbXBsYXRlOyBjb250ZXh0OiB7IGJsb2NrS2V5OiBibG9ja0NvbnRhaW5lcj8uQmxvY2tLZXkgfVwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIDxwZXAtcmVtb3RlLWxvYWRlci1lbGVtZW50ICpuZ0lmPVwicmVtb3RlTG9hZGVyT3B0aW9uc1wiIGNsYXNzPVwicmVtb3RlLWxvYWRlclwiXG4gICAgICAgICAgICBbb3B0aW9uc109XCJyZW1vdGVMb2FkZXJPcHRpb25zXCJcbiAgICAgICAgICAgIFtwcm9wc109XCJ7IGhvc3RPYmplY3Q6IGhvc3RPYmplY3QgfVwiXG4gICAgICAgICAgICBbZXZlbnRzXT1cInsgaG9zdEV2ZW50czogb25CbG9ja0hvc3RFdmVudHNDYWxsYmFjayB9XCJcbiAgICAgICAgICAgIChsb2FkKT1cIm9uQmxvY2tMb2FkKCRldmVudClcIj5cbiAgICAgICAgPC9wZXAtcmVtb3RlLWxvYWRlci1lbGVtZW50PiAtLT5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19