@mediusinc/mng-commons 5.3.0-rc.2 → 5.3.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/form/components/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/table/api/descriptors/table.descriptor.mjs +12 -2
- package/esm2022/table/api/index.mjs +2 -1
- package/esm2022/table/api/models/row-expandable-component.model.mjs +2 -0
- package/esm2022/table/components/column-value/column-value.component.mjs +3 -3
- package/esm2022/table/components/filter/filter-overlay-with-tag/filter-overlay-with-tag.component.mjs +3 -3
- package/esm2022/table/components/table/table.component.mjs +3 -3
- package/esm2022/tableview/action/components/action/action.component.mjs +3 -3
- package/esm2022/tableview/action/components/table/action-table.component.mjs +3 -3
- package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +1 -3
- package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +14 -1
- package/esm2022/tableview/api/editor/models/field-image-preview.model.mjs +2 -0
- package/esm2022/tableview/api/index.mjs +2 -1
- package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +9 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +3 -3
- package/fesm2022/mediusinc-mng-commons-form.mjs +2 -2
- package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-api.mjs +11 -1
- package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table.mjs +6 -6
- package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +13 -2
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +23 -18
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
- package/package.json +7 -7
- package/table/api/descriptors/table.descriptor.d.ts +8 -1
- package/table/api/index.d.ts +1 -0
- package/table/api/models/row-expandable-component.model.d.ts +4 -0
- package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +4 -4
- package/tableview/api/editor/descriptors/field.descriptor.d.ts +10 -0
- package/tableview/api/editor/models/field-image-preview.model.d.ts +4 -0
- package/tableview/api/index.d.ts +1 -0
- package/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.d.ts +1 -0
- package/version-info.json +5 -5
|
@@ -215,10 +215,10 @@ export class FormlyFieldTableDialogFormComponent extends ACommonsFormlyFieldType
|
|
|
215
215
|
return false;
|
|
216
216
|
}
|
|
217
217
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FormlyFieldTableDialogFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
218
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: FormlyFieldTableDialogFormComponent, isStandalone: true, selector: "mng-formly-table-dialog-form-field", providers: [provideViewContainer(false)], usesInheritance: true, ngImport: i0, template: "<mng-action-table [descriptor]=\"descriptor.tableDescriptor\" [items]=\"items()\" [actions]=\"actions\" [rowReorderEnabled]=\"!disableRowReorder()\" (rowReorder)=\"onRowReorder($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex
|
|
218
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: FormlyFieldTableDialogFormComponent, isStandalone: true, selector: "mng-formly-table-dialog-form-field", providers: [provideViewContainer(false)], usesInheritance: true, ngImport: i0, template: "<mng-action-table [descriptor]=\"descriptor.tableDescriptor\" [items]=\"items()\" [actions]=\"actions\" [rowReorderEnabled]=\"!disableRowReorder()\" (rowReorder)=\"onRowReorder($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex justify-content-end align-items-center\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\"\n >{{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n </label>\n <div>\n @for (action of toolbarRightActions; track action) {\n <mng-action [action]=\"action\"></mng-action>\n }\n </div>\n </div>\n </ng-template>\n</mng-action-table>\n", styles: [".submit-button{display:none!important;visibility:hidden}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "dataListParams", "dataProvider", "hostComponent", "route", "disabled", "loading", "selectedItems"], outputs: ["finish"] }, { kind: "component", type: ActionTableComponent, selector: "mng-action-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "globalFilterFields", "rowReorderEnabled", "actions", "captionComponent", "columnActionComponent", "columnActionMinWidth"], outputs: ["tableLoad", "selectionChange", "captionComponentInstance", "columnActionComponentInstance", "rowReorder"] }, { kind: "directive", type: TemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
219
219
|
}
|
|
220
220
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FormlyFieldTableDialogFormComponent, decorators: [{
|
|
221
221
|
type: Component,
|
|
222
|
-
args: [{ standalone: true, selector: 'mng-formly-table-dialog-form-field', imports: [TranslateModule, ActionComponent, ActionTableComponent, TemplateDirective, AsyncPipe, FormlyFieldLabelPipe], providers: [provideViewContainer(false)], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-action-table [descriptor]=\"descriptor.tableDescriptor\" [items]=\"items()\" [actions]=\"actions\" [rowReorderEnabled]=\"!disableRowReorder()\" (rowReorder)=\"onRowReorder($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex
|
|
222
|
+
args: [{ standalone: true, selector: 'mng-formly-table-dialog-form-field', imports: [TranslateModule, ActionComponent, ActionTableComponent, TemplateDirective, AsyncPipe, FormlyFieldLabelPipe], providers: [provideViewContainer(false)], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-action-table [descriptor]=\"descriptor.tableDescriptor\" [items]=\"items()\" [actions]=\"actions\" [rowReorderEnabled]=\"!disableRowReorder()\" (rowReorder)=\"onRowReorder($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex justify-content-end align-items-center\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\"\n >{{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n </label>\n <div>\n @for (action of toolbarRightActions; track action) {\n <mng-action [action]=\"action\"></mng-action>\n }\n </div>\n </div>\n </ng-template>\n</mng-action-table>\n", styles: [".submit-button{display:none!important;visibility:hidden}\n"] }]
|
|
223
223
|
}] });
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLWZvcm0vZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLWZvcm0vZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQWdCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQXFCLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0gsT0FBTyxFQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRXhFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsZUFBZSxFQUFFLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNuSSxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxpQ0FB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QUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsMEJBQTJDLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7Z0JBQzlKLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs4R0FyT1EsbUNBQW1DO2tHQUFuQyxtQ0FBbUMsaUZBSGpDLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsaURDbkM1QywrMEJBZUEsbUhEbUJjLGVBQWUsNEZBQUUsZUFBZSxvT0FBRSxvQkFBb0IsMmFBQUUsaUJBQWlCLHNGQUFhLG9CQUFvQjs7MkZBSTNHLG1DQUFtQztrQkFUL0MsU0FBUztpQ0FDTSxJQUFJLFlBQ04sb0NBQW9DLFdBR3JDLENBQUMsZUFBZSxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLENBQUMsYUFDMUcsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxtQkFDdkIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3RvciwgT25EZXN0cm95LCBPbkluaXQsIGluamVjdCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkLCB0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1RhYmxlUm93UmVvcmRlckV2ZW50fSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgb2YsIHRocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0NvbW1vbnNJbnRlcm5hbEVycm9yLCBDb21tb25zU2VydmljZSwgU3R5bGVMZXZlbEVudW0sIFN0eWxlU2l6ZUVudW0sIFRlbXBsYXRlRGlyZWN0aXZlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtBY3Rpb25CdXR0b25EZXNjcmlwdG9yLCBCdXR0b25TdHlsZUJ1aWxkZXJ9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvZm9ybS9hcGknO1xuaW1wb3J0IHtcbiAgICBBY3Rpb25Db250ZXh0VmFsaWRhdGlvbixcbiAgICBBY3Rpb25EZXNjcmlwdG9ySW5zdCxcbiAgICBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yLFxuICAgIEFjdGlvblBvc2l0aW9uRW51bSxcbiAgICBGaWVsZE1hbnlFZGl0b3JBY3Rpb25FbnVtLFxuICAgIEZpZWxkTWFueUVkaXRvckRlc2NyaXB0b3IsXG4gICAgRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLFxuICAgIEZvcm1GaWVsZEV2ZW50VHlwZUVudW0sXG4gICAgYWN0aW9uRWRpdG9yQ2FuY2VsXG59IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbmltcG9ydCB7QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi8uLi9hY3Rpb24vY29tcG9uZW50cy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge0FjdGlvblRhYmxlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi8uLi9hY3Rpb24vY29tcG9uZW50cy90YWJsZS9hY3Rpb24tdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7cHJvdmlkZVZpZXdDb250YWluZXJ9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2FjdGlvbi9zZXJ2aWNlcy9wcm92aWRlcnMvcHJvdmlkZS12aWV3LWNvbnRhaW5lcic7XG5pbXBvcnQge0Zvcm1seUZpZWxkTGFiZWxQaXBlfSBmcm9tICcuLi8uLi9waXBlcy9mb3JtbHktZmllbGQtbGFiZWwucGlwZSc7XG5pbXBvcnQge0FDb21tb25zRm9ybWx5RmllbGRUeXBlfSBmcm9tICcuLi9mb3JtbHktZmllbGQtdHlwZS5hYnN0cmFjdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm1seS10YWJsZS1kaWFsb2ctZm9ybS1maWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgQWN0aW9uQ29tcG9uZW50LCBBY3Rpb25UYWJsZUNvbXBvbmVudCwgVGVtcGxhdGVEaXJlY3RpdmUsIEFzeW5jUGlwZSwgRm9ybWx5RmllbGRMYWJlbFBpcGVdLFxuICAgIHByb3ZpZGVyczogW3Byb3ZpZGVWaWV3Q29udGFpbmVyKGZhbHNlKV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybWx5RmllbGRUYWJsZURpYWxvZ0Zvcm1Db21wb25lbnQ8VCA9IGFueSwgRVQgPSBhbnk+XG4gICAgZXh0ZW5kcyBBQ29tbW9uc0Zvcm1seUZpZWxkVHlwZTxUW10sIEVULCBGaWVsZE1hbnlFZGl0b3JEZXNjcmlwdG9yPFQsIEVUPj5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgICBwdWJsaWMgaXRlbXMgPSBzaWduYWw8VFtdPihbXSk7XG5cbiAgICBwdWJsaWMgYWN0aW9uczogQXJyYXk8QWN0aW9uRGVzY3JpcHRvckluc3Q8VD4+ID0gW107XG4gICAgcHVibGljIHRvb2xiYXJSaWdodEFjdGlvbnM6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3JJbnN0PFQ+PiA9IFtdO1xuXG4gICAgcHJpdmF0ZSBpc0Rpc2FibGVkU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgaXNFbmFibGVkJCA9IHRoaXMuaXNEaXNhYmxlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgbWFwKGUgPT4gIWUpXG4gICAgKTtcblxuICAgIHB1YmxpYyBkaXNhYmxlUm93UmVvcmRlciA9IHRvU2lnbmFsPGJvb2xlYW4+KHRoaXMuZm9ybVN0YXRlRGlzYWJsZWQkKTtcblxuICAgIHB1YmxpYyBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICBjb25zdCBoYXNWaWV3QWN0aW9uID0gdGhpcy5kZXNjcmlwdG9yLmZpZWxkQWN0aW9ucy5zb21lKGEgPT4gYSA9PT0gRmllbGRNYW55RWRpdG9yQWN0aW9uRW51bS5WaWV3KTtcbiAgICAgICAgY29uc3QgaGFzQWRkQWN0aW9uID0gdGhpcy5kZXNjcmlwdG9yLmZpZWxkQWN0aW9ucy5zb21lKGEgPT4gYSA9PT0gRmllbGRNYW55RWRpdG9yQWN0aW9uRW51bS5BZGQpO1xuICAgICAgICBjb25zdCBoYXNFZGl0QWN0aW9uID0gdGhpcy5kZXNjcmlwdG9yLmZpZWxkQWN0aW9ucy5zb21lKGEgPT4gYSA9PT0gRmllbGRNYW55RWRpdG9yQWN0aW9uRW51bS5FZGl0KTtcbiAgICAgICAgY29uc3QgaGFzRGVsZXRlQWN0aW9uID0gdGhpcy5kZXNjcmlwdG9yLmZpZWxkQWN0aW9ucy5zb21lKGEgPT4gYSA9PT0gRmllbGRNYW55RWRpdG9yQWN0aW9uRW51bS5EZWxldGUpO1xuXG4gICAgICAgIGlmIChoYXNWaWV3QWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCB2aWV3QWN0aW9uID0gQWN0aW9uRWRpdG9yRGVzY3JpcHRvci5jcmVhdGUodGhpcy5kZXNjcmlwdG9yLnRhYmxldmlld0Rlc2NyaXB0b3IuZGV0YWlsc0VkaXRvciwgJ2RldGFpbHMnLCB7XG4gICAgICAgICAgICAgICAgcGFyZW50TW9kZWw6IHRoaXMuZWRpdG9yRGVzY3JpcHRvci5tb2RlbCxcbiAgICAgICAgICAgICAgICBwYXJlbnRQcm9wZXJ0eTogdGhpcy5kZXNjcmlwdG9yLnByb3BlcnR5XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLlJvd0NsaWNrKVxuICAgICAgICAgICAgICAgIC53aXRoRGlhbG9nU2l6ZShTdHlsZVNpemVFbnVtLlNtYWxsKVxuICAgICAgICAgICAgICAgIC53aXRoRmV0Y2hGdW5jdGlvbihjdHggPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGN0eC5wYXJhbWV0ZXJzLml0ZW0gfHwgKHt9IGFzIFQpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZpZXdBY3Rpb24ud2l0aEVkaXRvckFjdGlvbnMoW2FjdGlvbkVkaXRvckNhbmNlbCh2aWV3QWN0aW9uKV0pO1xuICAgICAgICAgICAgdmlld0FjdGlvbi5idXR0b24ud2l0aExhYmVsKG51bGwpO1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zLnB1c2godmlld0FjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzQWRkQWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBhZGRBY3Rpb24gPSBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yLmNyZWF0ZSh0aGlzLmRlc2NyaXB0b3IudGFibGV2aWV3RGVzY3JpcHRvci5hZGRFZGl0b3IsICdhZGQnLCB7XG4gICAgICAgICAgICAgICAgcGFyZW50TW9kZWw6IHRoaXMuZWRpdG9yRGVzY3JpcHRvci5tb2RlbCxcbiAgICAgICAgICAgICAgICBwYXJlbnRQcm9wZXJ0eTogdGhpcy5kZXNjcmlwdG9yLnByb3BlcnR5XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLlRvb2xiYXJSaWdodClcbiAgICAgICAgICAgICAgICAud2l0aERpYWxvZ1NpemUoU3R5bGVTaXplRW51bS5TbWFsbClcbiAgICAgICAgICAgICAgICAud2l0aEJ1dHRvbkRlc2NyaXB0b3IobmV3IEFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IoKS53aXRoU3R5bGVDbGFzcyhuZXcgQnV0dG9uU3R5bGVCdWlsZGVyKCkud2l0aFNpemUoU3R5bGVTaXplRW51bS5FeHRyYVNtYWxsKSkpXG4gICAgICAgICAgICAgICAgLndpdGhGZXRjaEZ1bmN0aW9uKGN0eCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGN0eC5wYXJhbWV0ZXJzLml0ZW0gfHwgKHt9IGFzIFQpKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC53aXRoU3VibWl0RnVuY3Rpb24oY3R4ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjdHgucGFyYW1ldGVycy5pdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYE5vIGl0ZW0gd2FzIHByb3ZpZGVkIGluIGNvbnRleHQsIGFkZCBjYW5ub3QgYmUgZG9uZS5gLCB7bmFtZTogJ0Zvcm1seUZpZWxkVGFibGVEaWFsb2dGb3JtQ29tcG9uZW50RXJyb3InfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtU3RhdGUuc3VibWl0dGVkT24gPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IFsuLi52YWx1ZSwgY3R4LnBhcmFtZXRlcnMuaXRlbV07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihjdHgucGFyYW1ldGVycy5pdGVtKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC53aXRoUnVuTm90aWZpY2F0aW9uU3VjY2Vzcyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgLndpdGhSdW5Ob3RpZmljYXRpb25FcnJvcih1bmRlZmluZWQsIHVuZGVmaW5lZCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgLndpdGhJc1Zpc2libGVGdW5jdGlvbigoKSA9PiB0aGlzLmZvcm1TdGF0ZURpc2FibGVkJC5waXBlKG1hcCh2ID0+ICF2KSkpXG4gICAgICAgICAgICAgICAgLndpdGhJc0VuYWJsZWRGdW5jdGlvbigoKSA9PiB0aGlzLmlzRW5hYmxlZCQpO1xuICAgICAgICAgICAgYWRkQWN0aW9uLmJ1dHRvbi53aXRoTGFiZWwobnVsbCkud2l0aEljb24oJ3BpIHBpLXBsdXMnKTtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9ucy5wdXNoKGFkZEFjdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhc0VkaXRBY3Rpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGVkaXRBY3Rpb24gPSBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yLmNyZWF0ZSh0aGlzLmRlc2NyaXB0b3IudGFibGV2aWV3RGVzY3JpcHRvci5lZGl0RWRpdG9yLCAnZWRpdCcsIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRNb2RlbDogdGhpcy5lZGl0b3JEZXNjcmlwdG9yLm1vZGVsLFxuICAgICAgICAgICAgICAgIHBhcmVudFByb3BlcnR5OiB0aGlzLmRlc2NyaXB0b3IucHJvcGVydHlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLndpdGhQb3NpdGlvbihBY3Rpb25Qb3NpdGlvbkVudW0uUm93SW5saW5lKVxuICAgICAgICAgICAgICAgIC53aXRoRGlhbG9nU2l6ZShTdHlsZVNpemVFbnVtLlNtYWxsKVxuICAgICAgICAgICAgICAgIC53aXRoQnV0dG9uRGVzY3JpcHRvcihuZXcgQWN0aW9uQnV0dG9uRGVzY3JpcHRvcigpLndpdGhTdHlsZUNsYXNzKG5ldyBCdXR0b25TdHlsZUJ1aWxkZXIoKS53aXRoU2l6ZShTdHlsZVNpemVFbnVtLkV4dHJhU21hbGwpKSlcbiAgICAgICAgICAgICAgICAud2l0aEZldGNoRnVuY3Rpb24oY3R4ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihjdHgucGFyYW1ldGVycy5pdGVtIHx8ICh7fSBhcyBUKSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAud2l0aFN1Ym1pdEZ1bmN0aW9uKGN0eCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY3R4LnBhcmFtZXRlcnMuaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBObyBpdGVtIHdhcyBwcm92aWRlZCBpbiBjb250ZXh0LCBlZGl0IGNhbm5vdCBiZSBkb25lLmAsIHtuYW1lOiAnRm9ybWx5RmllbGRUYWJsZURpYWxvZ0Zvcm1Db21wb25lbnRFcnJvcid9KVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1TdGF0ZS5zdWJtaXR0ZWRPbiA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1Db250cm9sVmFsdWUgPSBbLi4udGhpcy5mb3JtQ29udHJvbC52YWx1ZV07XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sVmFsdWVbY3R4LnBhcmFtZXRlcnMuYWN0aW9uRGF0YT8uWydpdGVtSW5kZXgnXV0gPSBjdHgucGFyYW1ldGVycy5pdGVtO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUoZm9ybUNvbnRyb2xWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihjdHgucGFyYW1ldGVycy5pdGVtKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC53aXRoUnVuTm90aWZpY2F0aW9uU3VjY2Vzcyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgLndpdGhSdW5Ob3RpZmljYXRpb25FcnJvcih1bmRlZmluZWQsIHVuZGVmaW5lZCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgLndpdGhJc1Zpc2libGVGdW5jdGlvbihjdHggPT4gKHRoaXMuaGlkZUFjdGlvbnNGb3JSb3dXaXRoRGVmYXVsdExvY2FsaXphdGlvbihjdHgpID8gb2YoZmFsc2UpIDogdGhpcy5mb3JtU3RhdGVEaXNhYmxlZCQucGlwZShtYXAodiA9PiAhdikpKSlcbiAgICAgICAgICAgICAgICAud2l0aElzRW5hYmxlZEZ1bmN0aW9uKCgpID0+IHRoaXMuaXNFbmFibGVkJCk7XG4gICAgICAgICAgICBlZGl0QWN0aW9uLmJ1dHRvbi53aXRoTGFiZWwobnVsbCkud2l0aEljb24oJ3BpIHBpLXBlbmNpbCcpO1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zLnB1c2goZWRpdEFjdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhc0RlbGV0ZUFjdGlvbikge1xuICAgICAgICAgICAgY29uc3QgZGVsZXRlQWN0aW9uID0gbmV3IEFjdGlvbkRlc2NyaXB0b3JJbnN0KCdkZWxldGUnLCB7XG4gICAgICAgICAgICAgICAgbW9kZWw6IHRoaXMuZGVzY3JpcHRvci50YWJsZXZpZXdEZXNjcmlwdG9yLm1vZGVsLFxuICAgICAgICAgICAgICAgIHBhcmVudE1vZGVsOiB0aGlzLmVkaXRvckRlc2NyaXB0b3IubW9kZWwsXG4gICAgICAgICAgICAgICAgcGFyZW50UHJvcGVydHk6IHRoaXMuZGVzY3JpcHRvci5wcm9wZXJ0eVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Sb3dJbmxpbmUpXG4gICAgICAgICAgICAgICAgLndpdGhCdXR0b25EZXNjcmlwdG9yKG5ldyBBY3Rpb25CdXR0b25EZXNjcmlwdG9yKCkud2l0aFN0eWxlQ2xhc3MobmV3IEJ1dHRvblN0eWxlQnVpbGRlcihTdHlsZUxldmVsRW51bS5EYW5nZXIpLndpdGhTaXplKFN0eWxlU2l6ZUVudW0uRXh0cmFTbWFsbCkpKVxuICAgICAgICAgICAgICAgIC53aXRoUnVuRnVuY3Rpb24oY3R4ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjdHgucGFyYW1ldGVycy5pdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYE5vIGl0ZW0gd2FzIHByb3ZpZGVkIGluIGNvbnRleHQsIGRlbGV0ZSBjYW5ub3QgYmUgZG9uZS5gLCB7bmFtZTogJ0Zvcm1seUZpZWxkVGFibGVEaWFsb2dGb3JtQ29tcG9uZW50RXJyb3InfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbGV0IGZvcm1Db250cm9sVmFsdWUgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wYXJlUHJvcGVydHkgPSB0aGlzLmRlc2NyaXB0b3IudGFibGVEZXNjcmlwdG9yLnRyYWNrUHJvcGVydHlcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5kZXNjcmlwdG9yLnRhYmxlRGVzY3JpcHRvci50cmFja1Byb3BlcnR5XG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZGVzY3JpcHRvci50YWJsZURlc2NyaXB0b3IubW9kZWwuaWRQcm9wZXJ0eTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3R4SXRlbTogYW55ID0gY3R4LnBhcmFtZXRlcnMuaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVQcm9wZXJ0eSAmJiBjdHhJdGVtPy5bY29tcGFyZVByb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xWYWx1ZSA9IGZvcm1Db250cm9sVmFsdWUuZmlsdGVyKChpOiBhbnkpID0+IGlbY29tcGFyZVByb3BlcnR5XSAhPT0gY3R4SXRlbVtjb21wYXJlUHJvcGVydHldKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShmb3JtQ29udHJvbFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY3R4LnBhcmFtZXRlcnMuYWN0aW9uRGF0YT8uWydpdGVtSW5kZXgnXSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sVmFsdWUuc3BsaWNlKGN0eC5wYXJhbWV0ZXJzLmFjdGlvbkRhdGFbJ2l0ZW1JbmRleCddLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShbLi4uZm9ybUNvbnRyb2xWYWx1ZV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKCdDYW5ub3QgY29tcGFyZSBpdGVtcywgcGxlYXNlIHByb3ZpZGUgbWFpbiB0YWJsZSBkYXRhIGtleSBwcm9wZXJ0eSBvciBtb2RlbCBpZCBwcm9wZXJ0eS4nLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnRm9ybWx5RmllbGRUYWJsZURpYWxvZ0Zvcm1Db21wb25lbnRFcnJvcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoY3R4SXRlbSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAud2l0aFJ1bk5vdGlmaWNhdGlvblN1Y2Nlc3ModW5kZWZpbmVkLCB1bmRlZmluZWQsIGZhbHNlKVxuICAgICAgICAgICAgICAgIC53aXRoUnVuTm90aWZpY2F0aW9uRXJyb3IodW5kZWZpbmVkLCB1bmRlZmluZWQsIGZhbHNlKVxuICAgICAgICAgICAgICAgIC53aXRoSXNWaXNpYmxlRnVuY3Rpb24oY3R4ID0+ICh0aGlzLmhpZGVBY3Rpb25zRm9yUm93V2l0aERlZmF1bHRMb2NhbGl6YXRpb24oY3R4KSA/IG9mKGZhbHNlKSA6IHRoaXMuZm9ybVN0YXRlRGlzYWJsZWQkLnBpcGUobWFwKHYgPT4gIXYpKSkpXG4gICAgICAgICAgICAgICAgLndpdGhJc0VuYWJsZWRGdW5jdGlvbigoKSA9PiB0aGlzLmlzRW5hYmxlZCQpO1xuICAgICAgICAgICAgZGVsZXRlQWN0aW9uLmJ1dHRvbi53aXRoTGFiZWwobnVsbCkud2l0aEljb24oJ3BpIHBpLXRyYXNoJyk7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbnMucHVzaChkZWxldGVBY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3Rpb25zLnB1c2goLi4udGhpcy5kZXNjcmlwdG9yLmFjdGlvbnMpO1xuICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiB0aGlzLmFjdGlvbnMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhclJpZ2h0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGluaXQgdmFsdWVzXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5mb3JtQ29udHJvbC52YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdGhpcy5mb3JtQ29udHJvbC52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKFtdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0lOSVRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtQ29udHJvbC52YWx1ZSksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUodiA9PiB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zLnNldCh2ID8/IFtdKTtcblxuICAgICAgICAgICAgLy8gZW1pdCBsaWZlY3ljbGUgZXZlbnRcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5WYWx1ZUNoYW5nZSwgdGhpcywge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB2XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5wcm9wcy5vblZhbHVlQ2hhbmdlPy4odGhpcy5maWVsZCwgdik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZFN1YmplY3QubmV4dCh0aGlzLmZvcm1Db250cm9sLmRpc2FibGVkKTtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZShzdGF0dXMgPT4ge1xuICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ0RJU0FCTEVEJyAmJiAhdGhpcy5pc0Rpc2FibGVkU3ViamVjdC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZFN1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzICE9PSAnRElTQUJMRUQnICYmIHRoaXMuaXNEaXNhYmxlZFN1YmplY3QudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRGlzYWJsZWRTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Sb3dSZW9yZGVyKGV2ZW50OiBUYWJsZVJvd1Jlb3JkZXJFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQuZHJhZ0luZGV4ID09PSB1bmRlZmluZWQgfHwgZXZlbnQuZHJvcEluZGV4ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgICAgLy8gdXBkYXRlIGZvcm1Db250cm9sXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gWy4uLnRoaXMuZm9ybUNvbnRyb2wudmFsdWVdO1xuICAgICAgICBjb25zdCBkcmFnZ2VkSXRlbSA9IG5ld1ZhbHVlW2V2ZW50LmRyYWdJbmRleF07XG4gICAgICAgIG5ld1ZhbHVlLnNwbGljZShldmVudC5kcmFnSW5kZXgsIDEpO1xuICAgICAgICBuZXdWYWx1ZS5zcGxpY2UoZXZlbnQuZHJvcEluZGV4LCAwLCBkcmFnZ2VkSXRlbSk7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobmV3VmFsdWUpO1xuXG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Sb3dSZW9yZGVyLCB0aGlzLCB7ZHJhZ0luZGV4OiBldmVudC5kcmFnSW5kZXgsIGRyb3BJbmRleDogZXZlbnQuZHJvcEluZGV4fSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yLm5leHRFdmVudChGb3JtRmllbGRFdmVudFR5cGVFbnVtLkNvbXBvbmVudExpZmVjeWNsZSwgdGhpcywge1xuICAgICAgICAgICAgZXZlbnRTdWJ0eXBlOiBGb3JtRmllbGRFdmVudENvbXBvbmVudFN1YnR5cGUuT05fVklFV19JTklUXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gZW1pdCBsaWZlY3ljbGUgZXZlbnRcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yPy5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0RFU1RST1lcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWRlQWN0aW9uc0ZvclJvd1dpdGhEZWZhdWx0TG9jYWxpemF0aW9uKGN0eDogQWN0aW9uQ29udGV4dFZhbGlkYXRpb248VD4pIHtcbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvci50YWJsZURlc2NyaXB0b3IuaXNMb2NhbGl6ZWQpIHtcbiAgICAgICAgICAgIGlmIChjdHgucGFyYW1ldGVycy5pdGVtPy5bdGhpcy5kZXNjcmlwdG9yLnRhYmxlRGVzY3JpcHRvci5sb2NhbGl6YXRpb25Mb2NhbGVQcm9wZXJ0eSEgYXMga2V5b2Ygb2JqZWN0XSA9PT0gdGhpcy5pbmplY3Rvci5nZXQoQ29tbW9uc1NlcnZpY2UpLmdldERlZmF1bHRMb2NhbGUoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCI8bW5nLWFjdGlvbi10YWJsZSBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yLnRhYmxlRGVzY3JpcHRvclwiIFtpdGVtc109XCJpdGVtcygpXCIgW2FjdGlvbnNdPVwiYWN0aW9uc1wiIFtyb3dSZW9yZGVyRW5hYmxlZF09XCIhZGlzYWJsZVJvd1Jlb3JkZXIoKVwiIChyb3dSZW9yZGVyKT1cIm9uUm93UmVvcmRlcigkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlIG1uZ1RlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciB0YWJsZS1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm1uZy1kYXRhdGFibGUtZm9ybS1sYWJlbCBwLTAgbS0wXCIgW2Zvcl09XCJrZXlcIlxuICAgICAgICAgICAgICAgID57eyBkZXNjcmlwdG9yIHwgbW5nRm9ybWx5RmllbGRMYWJlbDogZWRpdG9yRGVzY3JpcHRvciB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIEBpZiAocHJvcHMucmVxdWlyZWQgJiYgcHJvcHNbJ2hpZGVSZXF1aXJlZE1hcmtlciddICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPio8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiB0b29sYmFyUmlnaHRBY3Rpb25zOyB0cmFjayBhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICA8bW5nLWFjdGlvbiBbYWN0aW9uXT1cImFjdGlvblwiPjwvbW5nLWFjdGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbW5nLWFjdGlvbi10YWJsZT5cbiJdfQ==
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLWZvcm0vZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLWZvcm0vZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQWdCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQXFCLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0gsT0FBTyxFQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRXhFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsZUFBZSxFQUFFLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNuSSxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRixPQUFPLEVBRUgsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIseUJBQXlCLEVBRXpCLDhCQUE4QixFQUM5QixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ3JCLE1BQU0sc0NBQXNDLENBQUM7QUFFOUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ25HLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDOzs7QUFXaEYsTUFBTSxPQUFPLG1DQUNULFNBQVEsdUJBQWtFO0lBVjlFOztRQWFxQixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXRDLFVBQUssR0FBRyxNQUFNLENBQU0sRUFBRSxDQUFDLENBQUM7UUFFeEIsWUFBTyxHQUFtQyxFQUFFLENBQUM7UUFDN0Msd0JBQW1CLEdBQW1DLEVBQUUsQ0FBQztRQUV4RCxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUN4RCxlQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDM0Qsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRUssc0JBQWlCLEdBQUcsUUFBUSxDQUFVLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0tBcU56RTtJQW5ObUIsUUFBUTtRQUNwQixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25HLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUsseUJBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkcsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXZHLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRTtnQkFDM0csV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLO2dCQUN4QyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRO2FBQzNDLENBQUM7aUJBQ0csWUFBWSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztpQkFDekMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7aUJBQ25DLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNqQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSyxFQUFRLENBQUMsQ0FBQztZQUNoRCxDQUFDLENBQUMsQ0FBQztZQUNQLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvRCxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNmLE1BQU0sU0FBUyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUU7Z0JBQ2xHLFdBQVcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSztnQkFDeEMsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUTthQUMzQyxDQUFDO2lCQUNHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUM7aUJBQzdDLGNBQWMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO2lCQUNuQyxvQkFBb0IsQ0FBQyxJQUFJLHNCQUFzQixFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7aUJBQzlILGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQixVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzlDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFLLEVBQVEsQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FBQztpQkFDRCxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3ZCLE9BQU8sVUFBVSxDQUNiLEdBQUcsRUFBRSxDQUFDLElBQUksb0JBQW9CLENBQUMsc0RBQXNELEVBQUUsRUFBQyxJQUFJLEVBQUUsMENBQTBDLEVBQUMsQ0FBQyxDQUM3SSxDQUFDO2dCQUNOLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztnQkFDbkMsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDO2lCQUNELDBCQUEwQixDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDO2lCQUN2RCx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQztpQkFDckQscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3ZFLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsRCxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRTtnQkFDckcsV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLO2dCQUN4QyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRO2FBQzNDLENBQUM7aUJBQ0csWUFBWSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztpQkFDMUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7aUJBQ25DLG9CQUFvQixDQUFDLElBQUksc0JBQXNCLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztpQkFDOUgsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFLLEVBQVEsQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FBQztpQkFDRCxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3ZCLE9BQU8sVUFBVSxDQUNiLEdBQUcsRUFBRSxDQUFDLElBQUksb0JBQW9CLENBQUMsdURBQXVELEVBQUUsRUFBQyxJQUFJLEVBQUUsMENBQTBDLEVBQUMsQ0FBQyxDQUM5SSxDQUFDO2dCQUNOLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyRCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pGLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDO2lCQUNELDBCQUEwQixDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDO2lCQUN2RCx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQztpQkFDckQscUJBQXFCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUMzSSxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sWUFBWSxHQUFHLElBQUksb0JBQW9CLENBQUMsUUFBUSxFQUFFO2dCQUNwRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLO2dCQUNoRCxXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUs7Z0JBQ3hDLGNBQWMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVE7YUFDM0MsQ0FBQztpQkFDRyxZQUFZLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDO2lCQUMxQyxvQkFBb0IsQ0FBQyxJQUFJLHNCQUFzQixFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksa0JBQWtCLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztpQkFDbkosZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDdkIsT0FBTyxVQUFVLENBQ2IsR0FBRyxFQUFFLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyx5REFBeUQsRUFBRSxFQUFDLElBQUksRUFBRSwwQ0FBMEMsRUFBQyxDQUFDLENBQ2hKLENBQUM7Z0JBQ04sQ0FBQztnQkFDRCxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO2dCQUM5QyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxhQUFhO29CQUNqRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsYUFBYTtvQkFDL0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7Z0JBQ3ZELE1BQU0sT0FBTyxHQUFRLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUN6QyxJQUFJLGVBQWUsSUFBSSxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO29CQUNoRCxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztvQkFDeEcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbkMsQ0FBQztxQkFBTSxJQUFJLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDdEUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNuRSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO29CQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuQyxDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTyxVQUFVLENBQ2IsR0FBRyxFQUFFLENBQ0QsSUFBSSxvQkFBb0IsQ0FBQyx5RkFBeUYsRUFBRTt3QkFDaEgsSUFBSSxFQUFFLDBDQUEwQztxQkFDbkQsQ0FBQyxDQUNULENBQUM7Z0JBQ04sQ0FBQztnQkFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUVqQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QixDQUFDLENBQUM7aUJBQ0QsMEJBQTBCLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7aUJBQ3ZELHdCQUF3QixDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDO2lCQUNyRCxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzNJLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsRCxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoQyxRQUFRLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdEIsS0FBSyxrQkFBa0IsQ0FBQyxZQUFZO29CQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN0QyxNQUFNO1lBQ2QsQ0FBQztRQUNMLENBQUM7UUFFRCxjQUFjO1FBQ2QsSUFBSSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNuRixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixFQUFFLElBQUksRUFBRTtZQUN2RSxZQUFZLEVBQUUsOEJBQThCLENBQUMsT0FBTztTQUN2RCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JILElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUV4Qix1QkFBdUI7WUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFDaEUsS0FBSyxFQUFFLENBQUM7YUFDWCxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN4RixJQUFJLE1BQU0sS0FBSyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsQ0FBQztpQkFBTSxJQUFJLE1BQU0sS0FBSyxVQUFVLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMvRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxZQUFZLENBQUMsS0FBMkI7UUFDM0MsSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBQzNFLHFCQUFxQjtRQUNyQixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUM7SUFDakksQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxFQUFFO1lBQ3ZFLFlBQVksRUFBRSw4QkFBOEIsQ0FBQyxZQUFZO1NBQzVELENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2QsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixFQUFFLElBQUksRUFBRTtZQUN4RSxZQUFZLEVBQUUsOEJBQThCLENBQUMsVUFBVTtTQUMxRCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sd0NBQXdDLENBQUMsR0FBK0I7UUFDNUUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsMEJBQTJDLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7Z0JBQzlKLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs4R0FyT1EsbUNBQW1DO2tHQUFuQyxtQ0FBbUMsaUZBSGpDLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsaURDbkM1Qyw0MkJBaUJBLG1IRGlCYyxlQUFlLDRGQUFFLGVBQWUsb09BQUUsb0JBQW9CLDJhQUFFLGlCQUFpQixzRkFBYSxvQkFBb0I7OzJGQUkzRyxtQ0FBbUM7a0JBVC9DLFNBQVM7aUNBQ00sSUFBSSxZQUNOLG9DQUFvQyxXQUdyQyxDQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixDQUFDLGFBQzFHLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsbUJBQ3ZCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0LCBpbmplY3QsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtUYWJsZVJvd1Jlb3JkZXJFdmVudH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG9mLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtDb21tb25zSW50ZXJuYWxFcnJvciwgQ29tbW9uc1NlcnZpY2UsIFN0eWxlTGV2ZWxFbnVtLCBTdHlsZVNpemVFbnVtLCBUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7QWN0aW9uQnV0dG9uRGVzY3JpcHRvciwgQnV0dG9uU3R5bGVCdWlsZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0vYXBpJztcbmltcG9ydCB7XG4gICAgQWN0aW9uQ29udGV4dFZhbGlkYXRpb24sXG4gICAgQWN0aW9uRGVzY3JpcHRvckluc3QsXG4gICAgQWN0aW9uRWRpdG9yRGVzY3JpcHRvcixcbiAgICBBY3Rpb25Qb3NpdGlvbkVudW0sXG4gICAgRmllbGRNYW55RWRpdG9yQWN0aW9uRW51bSxcbiAgICBGaWVsZE1hbnlFZGl0b3JEZXNjcmlwdG9yLFxuICAgIEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZSxcbiAgICBGb3JtRmllbGRFdmVudFR5cGVFbnVtLFxuICAgIGFjdGlvbkVkaXRvckNhbmNlbFxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge0FjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vYWN0aW9uL2NvbXBvbmVudHMvYWN0aW9uL2FjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtBY3Rpb25UYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vYWN0aW9uL2NvbXBvbmVudHMvdGFibGUvYWN0aW9uLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQge3Byb3ZpZGVWaWV3Q29udGFpbmVyfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9hY3Rpb24vc2VydmljZXMvcHJvdmlkZXJzL3Byb3ZpZGUtdmlldy1jb250YWluZXInO1xuaW1wb3J0IHtGb3JtbHlGaWVsZExhYmVsUGlwZX0gZnJvbSAnLi4vLi4vcGlwZXMvZm9ybWx5LWZpZWxkLWxhYmVsLnBpcGUnO1xuaW1wb3J0IHtBQ29tbW9uc0Zvcm1seUZpZWxkVHlwZX0gZnJvbSAnLi4vZm9ybWx5LWZpZWxkLXR5cGUuYWJzdHJhY3QuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ21uZy1mb3JtbHktdGFibGUtZGlhbG9nLWZvcm0tZmllbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtUcmFuc2xhdGVNb2R1bGUsIEFjdGlvbkNvbXBvbmVudCwgQWN0aW9uVGFibGVDb21wb25lbnQsIFRlbXBsYXRlRGlyZWN0aXZlLCBBc3luY1BpcGUsIEZvcm1seUZpZWxkTGFiZWxQaXBlXSxcbiAgICBwcm92aWRlcnM6IFtwcm92aWRlVmlld0NvbnRhaW5lcihmYWxzZSldLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkVGFibGVEaWFsb2dGb3JtQ29tcG9uZW50PFQgPSBhbnksIEVUID0gYW55PlxuICAgIGV4dGVuZHMgQUNvbW1vbnNGb3JtbHlGaWVsZFR5cGU8VFtdLCBFVCwgRmllbGRNYW55RWRpdG9yRGVzY3JpcHRvcjxULCBFVD4+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gICAgcHVibGljIGl0ZW1zID0gc2lnbmFsPFRbXT4oW10pO1xuXG4gICAgcHVibGljIGFjdGlvbnM6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3JJbnN0PFQ+PiA9IFtdO1xuICAgIHB1YmxpYyB0b29sYmFyUmlnaHRBY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9ySW5zdDxUPj4gPSBbXTtcblxuICAgIHByaXZhdGUgaXNEaXNhYmxlZFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIGlzRW5hYmxlZCQgPSB0aGlzLmlzRGlzYWJsZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIG1hcChlID0+ICFlKVxuICAgICk7XG5cbiAgICBwdWJsaWMgZGlzYWJsZVJvd1Jlb3JkZXIgPSB0b1NpZ25hbDxib29sZWFuPih0aGlzLmZvcm1TdGF0ZURpc2FibGVkJCk7XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgY29uc3QgaGFzVmlld0FjdGlvbiA9IHRoaXMuZGVzY3JpcHRvci5maWVsZEFjdGlvbnMuc29tZShhID0+IGEgPT09IEZpZWxkTWFueUVkaXRvckFjdGlvbkVudW0uVmlldyk7XG4gICAgICAgIGNvbnN0IGhhc0FkZEFjdGlvbiA9IHRoaXMuZGVzY3JpcHRvci5maWVsZEFjdGlvbnMuc29tZShhID0+IGEgPT09IEZpZWxkTWFueUVkaXRvckFjdGlvbkVudW0uQWRkKTtcbiAgICAgICAgY29uc3QgaGFzRWRpdEFjdGlvbiA9IHRoaXMuZGVzY3JpcHRvci5maWVsZEFjdGlvbnMuc29tZShhID0+IGEgPT09IEZpZWxkTWFueUVkaXRvckFjdGlvbkVudW0uRWRpdCk7XG4gICAgICAgIGNvbnN0IGhhc0RlbGV0ZUFjdGlvbiA9IHRoaXMuZGVzY3JpcHRvci5maWVsZEFjdGlvbnMuc29tZShhID0+IGEgPT09IEZpZWxkTWFueUVkaXRvckFjdGlvbkVudW0uRGVsZXRlKTtcblxuICAgICAgICBpZiAoaGFzVmlld0FjdGlvbikge1xuICAgICAgICAgICAgY29uc3Qgdmlld0FjdGlvbiA9IEFjdGlvbkVkaXRvckRlc2NyaXB0b3IuY3JlYXRlKHRoaXMuZGVzY3JpcHRvci50YWJsZXZpZXdEZXNjcmlwdG9yLmRldGFpbHNFZGl0b3IsICdkZXRhaWxzJywge1xuICAgICAgICAgICAgICAgIHBhcmVudE1vZGVsOiB0aGlzLmVkaXRvckRlc2NyaXB0b3IubW9kZWwsXG4gICAgICAgICAgICAgICAgcGFyZW50UHJvcGVydHk6IHRoaXMuZGVzY3JpcHRvci5wcm9wZXJ0eVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Sb3dDbGljaylcbiAgICAgICAgICAgICAgICAud2l0aERpYWxvZ1NpemUoU3R5bGVTaXplRW51bS5TbWFsbClcbiAgICAgICAgICAgICAgICAud2l0aEZldGNoRnVuY3Rpb24oY3R4ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihjdHgucGFyYW1ldGVycy5pdGVtIHx8ICh7fSBhcyBUKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2aWV3QWN0aW9uLndpdGhFZGl0b3JBY3Rpb25zKFthY3Rpb25FZGl0b3JDYW5jZWwodmlld0FjdGlvbildKTtcbiAgICAgICAgICAgIHZpZXdBY3Rpb24uYnV0dG9uLndpdGhMYWJlbChudWxsKTtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9ucy5wdXNoKHZpZXdBY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0FkZEFjdGlvbikge1xuICAgICAgICAgICAgY29uc3QgYWRkQWN0aW9uID0gQWN0aW9uRWRpdG9yRGVzY3JpcHRvci5jcmVhdGUodGhpcy5kZXNjcmlwdG9yLnRhYmxldmlld0Rlc2NyaXB0b3IuYWRkRWRpdG9yLCAnYWRkJywge1xuICAgICAgICAgICAgICAgIHBhcmVudE1vZGVsOiB0aGlzLmVkaXRvckRlc2NyaXB0b3IubW9kZWwsXG4gICAgICAgICAgICAgICAgcGFyZW50UHJvcGVydHk6IHRoaXMuZGVzY3JpcHRvci5wcm9wZXJ0eVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyUmlnaHQpXG4gICAgICAgICAgICAgICAgLndpdGhEaWFsb2dTaXplKFN0eWxlU2l6ZUVudW0uU21hbGwpXG4gICAgICAgICAgICAgICAgLndpdGhCdXR0b25EZXNjcmlwdG9yKG5ldyBBY3Rpb25CdXR0b25EZXNjcmlwdG9yKCkud2l0aFN0eWxlQ2xhc3MobmV3IEJ1dHRvblN0eWxlQnVpbGRlcigpLndpdGhTaXplKFN0eWxlU2l6ZUVudW0uRXh0cmFTbWFsbCkpKVxuICAgICAgICAgICAgICAgIC53aXRoRmV0Y2hGdW5jdGlvbihjdHggPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCwgMCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihjdHgucGFyYW1ldGVycy5pdGVtIHx8ICh7fSBhcyBUKSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAud2l0aFN1Ym1pdEZ1bmN0aW9uKGN0eCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY3R4LnBhcmFtZXRlcnMuaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBObyBpdGVtIHdhcyBwcm92aWRlZCBpbiBjb250ZXh0LCBhZGQgY2Fubm90IGJlIGRvbmUuYCwge25hbWU6ICdGb3JtbHlGaWVsZFRhYmxlRGlhbG9nRm9ybUNvbXBvbmVudEVycm9yJ30pXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybVN0YXRlLnN1Ym1pdHRlZE9uID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBbLi4udmFsdWUsIGN0eC5wYXJhbWV0ZXJzLml0ZW1dO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoY3R4LnBhcmFtZXRlcnMuaXRlbSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAud2l0aFJ1bk5vdGlmaWNhdGlvblN1Y2Nlc3ModW5kZWZpbmVkLCB1bmRlZmluZWQsIGZhbHNlKVxuICAgICAgICAgICAgICAgIC53aXRoUnVuTm90aWZpY2F0aW9uRXJyb3IodW5kZWZpbmVkLCB1bmRlZmluZWQsIGZhbHNlKVxuICAgICAgICAgICAgICAgIC53aXRoSXNWaXNpYmxlRnVuY3Rpb24oKCkgPT4gdGhpcy5mb3JtU3RhdGVEaXNhYmxlZCQucGlwZShtYXAodiA9PiAhdikpKVxuICAgICAgICAgICAgICAgIC53aXRoSXNFbmFibGVkRnVuY3Rpb24oKCkgPT4gdGhpcy5pc0VuYWJsZWQkKTtcbiAgICAgICAgICAgIGFkZEFjdGlvbi5idXR0b24ud2l0aExhYmVsKG51bGwpLndpdGhJY29uKCdwaSBwaS1wbHVzJyk7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbnMucHVzaChhZGRBY3Rpb24pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNFZGl0QWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBlZGl0QWN0aW9uID0gQWN0aW9uRWRpdG9yRGVzY3JpcHRvci5jcmVhdGUodGhpcy5kZXNjcmlwdG9yLnRhYmxldmlld0Rlc2NyaXB0b3IuZWRpdEVkaXRvciwgJ2VkaXQnLCB7XG4gICAgICAgICAgICAgICAgcGFyZW50TW9kZWw6IHRoaXMuZWRpdG9yRGVzY3JpcHRvci5tb2RlbCxcbiAgICAgICAgICAgICAgICBwYXJlbnRQcm9wZXJ0eTogdGhpcy5kZXNjcmlwdG9yLnByb3BlcnR5XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLlJvd0lubGluZSlcbiAgICAgICAgICAgICAgICAud2l0aERpYWxvZ1NpemUoU3R5bGVTaXplRW51bS5TbWFsbClcbiAgICAgICAgICAgICAgICAud2l0aEJ1dHRvbkRlc2NyaXB0b3IobmV3IEFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IoKS53aXRoU3R5bGVDbGFzcyhuZXcgQnV0dG9uU3R5bGVCdWlsZGVyKCkud2l0aFNpemUoU3R5bGVTaXplRW51bS5FeHRyYVNtYWxsKSkpXG4gICAgICAgICAgICAgICAgLndpdGhGZXRjaEZ1bmN0aW9uKGN0eCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoY3R4LnBhcmFtZXRlcnMuaXRlbSB8fCAoe30gYXMgVCkpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLndpdGhTdWJtaXRGdW5jdGlvbihjdHggPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWN0eC5wYXJhbWV0ZXJzLml0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgTm8gaXRlbSB3YXMgcHJvdmlkZWQgaW4gY29udGV4dCwgZWRpdCBjYW5ub3QgYmUgZG9uZS5gLCB7bmFtZTogJ0Zvcm1seUZpZWxkVGFibGVEaWFsb2dGb3JtQ29tcG9uZW50RXJyb3InfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtU3RhdGUuc3VibWl0dGVkT24gPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtQ29udHJvbFZhbHVlID0gWy4uLnRoaXMuZm9ybUNvbnRyb2wudmFsdWVdO1xuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbFZhbHVlW2N0eC5wYXJhbWV0ZXJzLmFjdGlvbkRhdGE/LlsnaXRlbUluZGV4J11dID0gY3R4LnBhcmFtZXRlcnMuaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKGZvcm1Db250cm9sVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoY3R4LnBhcmFtZXRlcnMuaXRlbSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAud2l0aFJ1bk5vdGlmaWNhdGlvblN1Y2Nlc3ModW5kZWZpbmVkLCB1bmRlZmluZWQsIGZhbHNlKVxuICAgICAgICAgICAgICAgIC53aXRoUnVuTm90aWZpY2F0aW9uRXJyb3IodW5kZWZpbmVkLCB1bmRlZmluZWQsIGZhbHNlKVxuICAgICAgICAgICAgICAgIC53aXRoSXNWaXNpYmxlRnVuY3Rpb24oY3R4ID0+ICh0aGlzLmhpZGVBY3Rpb25zRm9yUm93V2l0aERlZmF1bHRMb2NhbGl6YXRpb24oY3R4KSA/IG9mKGZhbHNlKSA6IHRoaXMuZm9ybVN0YXRlRGlzYWJsZWQkLnBpcGUobWFwKHYgPT4gIXYpKSkpXG4gICAgICAgICAgICAgICAgLndpdGhJc0VuYWJsZWRGdW5jdGlvbigoKSA9PiB0aGlzLmlzRW5hYmxlZCQpO1xuICAgICAgICAgICAgZWRpdEFjdGlvbi5idXR0b24ud2l0aExhYmVsKG51bGwpLndpdGhJY29uKCdwaSBwaS1wZW5jaWwnKTtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9ucy5wdXNoKGVkaXRBY3Rpb24pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNEZWxldGVBY3Rpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGRlbGV0ZUFjdGlvbiA9IG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdCgnZGVsZXRlJywge1xuICAgICAgICAgICAgICAgIG1vZGVsOiB0aGlzLmRlc2NyaXB0b3IudGFibGV2aWV3RGVzY3JpcHRvci5tb2RlbCxcbiAgICAgICAgICAgICAgICBwYXJlbnRNb2RlbDogdGhpcy5lZGl0b3JEZXNjcmlwdG9yLm1vZGVsLFxuICAgICAgICAgICAgICAgIHBhcmVudFByb3BlcnR5OiB0aGlzLmRlc2NyaXB0b3IucHJvcGVydHlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLndpdGhQb3NpdGlvbihBY3Rpb25Qb3NpdGlvbkVudW0uUm93SW5saW5lKVxuICAgICAgICAgICAgICAgIC53aXRoQnV0dG9uRGVzY3JpcHRvcihuZXcgQWN0aW9uQnV0dG9uRGVzY3JpcHRvcigpLndpdGhTdHlsZUNsYXNzKG5ldyBCdXR0b25TdHlsZUJ1aWxkZXIoU3R5bGVMZXZlbEVudW0uRGFuZ2VyKS53aXRoU2l6ZShTdHlsZVNpemVFbnVtLkV4dHJhU21hbGwpKSlcbiAgICAgICAgICAgICAgICAud2l0aFJ1bkZ1bmN0aW9uKGN0eCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY3R4LnBhcmFtZXRlcnMuaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBObyBpdGVtIHdhcyBwcm92aWRlZCBpbiBjb250ZXh0LCBkZWxldGUgY2Fubm90IGJlIGRvbmUuYCwge25hbWU6ICdGb3JtbHlGaWVsZFRhYmxlRGlhbG9nRm9ybUNvbXBvbmVudEVycm9yJ30pXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxldCBmb3JtQ29udHJvbFZhbHVlID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcGFyZVByb3BlcnR5ID0gdGhpcy5kZXNjcmlwdG9yLnRhYmxlRGVzY3JpcHRvci50cmFja1Byb3BlcnR5XG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZGVzY3JpcHRvci50YWJsZURlc2NyaXB0b3IudHJhY2tQcm9wZXJ0eVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmRlc2NyaXB0b3IudGFibGVEZXNjcmlwdG9yLm1vZGVsLmlkUHJvcGVydHk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN0eEl0ZW06IGFueSA9IGN0eC5wYXJhbWV0ZXJzLml0ZW07XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21wYXJlUHJvcGVydHkgJiYgY3R4SXRlbT8uW2NvbXBhcmVQcm9wZXJ0eV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sVmFsdWUgPSBmb3JtQ29udHJvbFZhbHVlLmZpbHRlcigoaTogYW55KSA9PiBpW2NvbXBhcmVQcm9wZXJ0eV0gIT09IGN0eEl0ZW1bY29tcGFyZVByb3BlcnR5XSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUoZm9ybUNvbnRyb2xWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGN0eC5wYXJhbWV0ZXJzLmFjdGlvbkRhdGE/LlsnaXRlbUluZGV4J10gPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbFZhbHVlLnNwbGljZShjdHgucGFyYW1ldGVycy5hY3Rpb25EYXRhWydpdGVtSW5kZXgnXSwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUoWy4uLmZvcm1Db250cm9sVmFsdWVdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcignQ2Fubm90IGNvbXBhcmUgaXRlbXMsIHBsZWFzZSBwcm92aWRlIG1haW4gdGFibGUgZGF0YSBrZXkgcHJvcGVydHkgb3IgbW9kZWwgaWQgcHJvcGVydHkuJywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0Zvcm1seUZpZWxkVGFibGVEaWFsb2dGb3JtQ29tcG9uZW50RXJyb3InXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGN0eEl0ZW0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLndpdGhSdW5Ob3RpZmljYXRpb25TdWNjZXNzKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBmYWxzZSlcbiAgICAgICAgICAgICAgICAud2l0aFJ1bk5vdGlmaWNhdGlvbkVycm9yKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBmYWxzZSlcbiAgICAgICAgICAgICAgICAud2l0aElzVmlzaWJsZUZ1bmN0aW9uKGN0eCA9PiAodGhpcy5oaWRlQWN0aW9uc0ZvclJvd1dpdGhEZWZhdWx0TG9jYWxpemF0aW9uKGN0eCkgPyBvZihmYWxzZSkgOiB0aGlzLmZvcm1TdGF0ZURpc2FibGVkJC5waXBlKG1hcCh2ID0+ICF2KSkpKVxuICAgICAgICAgICAgICAgIC53aXRoSXNFbmFibGVkRnVuY3Rpb24oKCkgPT4gdGhpcy5pc0VuYWJsZWQkKTtcbiAgICAgICAgICAgIGRlbGV0ZUFjdGlvbi5idXR0b24ud2l0aExhYmVsKG51bGwpLndpdGhJY29uKCdwaSBwaS10cmFzaCcpO1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zLnB1c2goZGVsZXRlQWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aW9ucy5wdXNoKC4uLnRoaXMuZGVzY3JpcHRvci5hY3Rpb25zKTtcbiAgICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5hY3Rpb25zKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi5wb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uUG9zaXRpb25FbnVtLlRvb2xiYXJSaWdodDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sYmFyUmlnaHRBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpbml0IHZhbHVlc1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShbXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlbWl0IGxpZmVjeWNsZSBldmVudFxuICAgICAgICB0aGlzLmRlc2NyaXB0b3IubmV4dEV2ZW50KEZvcm1GaWVsZEV2ZW50VHlwZUVudW0uQ29tcG9uZW50TGlmZWN5Y2xlLCB0aGlzLCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZS5PTl9JTklUXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgICAgICAgdGhpcy5pdGVtcy5zZXQodiA/PyBbXSk7XG5cbiAgICAgICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IubmV4dEV2ZW50KEZvcm1GaWVsZEV2ZW50VHlwZUVudW0uVmFsdWVDaGFuZ2UsIHRoaXMsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdlxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMucHJvcHMub25WYWx1ZUNoYW5nZT8uKHRoaXMuZmllbGQsIHYpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmlzRGlzYWJsZWRTdWJqZWN0Lm5leHQodGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlZCk7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoc3RhdHVzID0+IHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdESVNBQkxFRCcgJiYgIXRoaXMuaXNEaXNhYmxlZFN1YmplY3QudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRGlzYWJsZWRTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cyAhPT0gJ0RJU0FCTEVEJyAmJiB0aGlzLmlzRGlzYWJsZWRTdWJqZWN0LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVkU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUm93UmVvcmRlcihldmVudDogVGFibGVSb3dSZW9yZGVyRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmRyYWdJbmRleCA9PT0gdW5kZWZpbmVkIHx8IGV2ZW50LmRyb3BJbmRleCA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgIC8vIHVwZGF0ZSBmb3JtQ29udHJvbFxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IFsuLi50aGlzLmZvcm1Db250cm9sLnZhbHVlXTtcbiAgICAgICAgY29uc3QgZHJhZ2dlZEl0ZW0gPSBuZXdWYWx1ZVtldmVudC5kcmFnSW5kZXhdO1xuICAgICAgICBuZXdWYWx1ZS5zcGxpY2UoZXZlbnQuZHJhZ0luZGV4LCAxKTtcbiAgICAgICAgbmV3VmFsdWUuc3BsaWNlKGV2ZW50LmRyb3BJbmRleCwgMCwgZHJhZ2dlZEl0ZW0pO1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKG5ld1ZhbHVlKTtcblxuICAgICAgICB0aGlzLmRlc2NyaXB0b3IubmV4dEV2ZW50KEZvcm1GaWVsZEV2ZW50VHlwZUVudW0uUm93UmVvcmRlciwgdGhpcywge2RyYWdJbmRleDogZXZlbnQuZHJhZ0luZGV4LCBkcm9wSW5kZXg6IGV2ZW50LmRyb3BJbmRleH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX1ZJRVdfSU5JVFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvcj8ubmV4dEV2ZW50KEZvcm1GaWVsZEV2ZW50VHlwZUVudW0uQ29tcG9uZW50TGlmZWN5Y2xlLCB0aGlzLCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZS5PTl9ERVNUUk9ZXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZUFjdGlvbnNGb3JSb3dXaXRoRGVmYXVsdExvY2FsaXphdGlvbihjdHg6IEFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPFQ+KSB7XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IudGFibGVEZXNjcmlwdG9yLmlzTG9jYWxpemVkKSB7XG4gICAgICAgICAgICBpZiAoY3R4LnBhcmFtZXRlcnMuaXRlbT8uW3RoaXMuZGVzY3JpcHRvci50YWJsZURlc2NyaXB0b3IubG9jYWxpemF0aW9uTG9jYWxlUHJvcGVydHkhIGFzIGtleW9mIG9iamVjdF0gPT09IHRoaXMuaW5qZWN0b3IuZ2V0KENvbW1vbnNTZXJ2aWNlKS5nZXREZWZhdWx0TG9jYWxlKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIiwiPG1uZy1hY3Rpb24tdGFibGUgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvci50YWJsZURlc2NyaXB0b3JcIiBbaXRlbXNdPVwiaXRlbXMoKVwiIFthY3Rpb25zXT1cImFjdGlvbnNcIiBbcm93UmVvcmRlckVuYWJsZWRdPVwiIWRpc2FibGVSb3dSZW9yZGVyKClcIiAocm93UmVvcmRlcik9XCJvblJvd1Jlb3JkZXIoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBtbmdUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm1uZy1kYXRhdGFibGUtZm9ybS1sYWJlbCBwLTAgbS0wXCIgW2Zvcl09XCJrZXlcIlxuICAgICAgICAgICAgICAgID57eyBkZXNjcmlwdG9yIHwgbW5nRm9ybWx5RmllbGRMYWJlbDogZWRpdG9yRGVzY3JpcHRvciB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIEBpZiAocHJvcHMucmVxdWlyZWQgJiYgcHJvcHNbJ2hpZGVSZXF1aXJlZE1hcmtlciddICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPio8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIHRvb2xiYXJSaWdodEFjdGlvbnM7IHRyYWNrIGFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICA8bW5nLWFjdGlvbiBbYWN0aW9uXT1cImFjdGlvblwiPjwvbW5nLWFjdGlvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbW5nLWFjdGlvbi10YWJsZT5cbiJdfQ==
|
|
@@ -190,13 +190,13 @@ export class FormlyFieldTableDialogMultiselectComponent extends ACommonsFormlyFi
|
|
|
190
190
|
this.descriptor.nextEvent(FormFieldEventTypeEnum.RowReorder, this, { dragIndex: event.dragIndex, dropIndex: event.dropIndex });
|
|
191
191
|
}
|
|
192
192
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FormlyFieldTableDialogMultiselectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
193
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: FormlyFieldTableDialogMultiselectComponent, isStandalone: true, selector: "mng-formly-table-multiselect-add-field", providers: [provideViewContainer(false)], viewQueries: [{ propertyName: "addTableComponent", first: true, predicate: ["addTableComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"items()\" [rowReorderEnabled]=\"!disableRowReorder()\" (rowReorder)=\"onRowReorder($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex
|
|
193
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: FormlyFieldTableDialogMultiselectComponent, isStandalone: true, selector: "mng-formly-table-multiselect-add-field", providers: [provideViewContainer(false)], viewQueries: [{ propertyName: "addTableComponent", first: true, predicate: ["addTableComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"items()\" [rowReorderEnabled]=\"!disableRowReorder()\" (rowReorder)=\"onRowReorder($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex justify-content-end align-items-center\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\">\n {{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n </label>\n <div>\n @if (hasAddAction && !options.formState?.disabled) {\n <button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n }\n </div>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnCustomLast\" let-item=\"rowItem\">\n @if (hasDeleteAction && !options.formState?.disabled) {\n <button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n }\n </ng-template>\n</mng-table>\n\n@if (hasAddAction) {\n <p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: props.label! | translate}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-dialog mng-dialog-sm mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\" class=\"table-container\" mngDialogKeydownHandler>\n <div class=\"h-full flex flex-column\">\n <div class=\"flex-grow-1 formly-field-table-multiselect-dialog-form-container\">\n <div class=\"mng-formly-field-table-multiselect-dialog-table\">\n <mng-table\n #addTableComponent\n [descriptor]=\"descriptor.lookupTableDescriptor\"\n [globalFilterFields]=\"descriptor.searchFields\"\n [result]=\"addItems()\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading()\"\n (selectionChange)=\"onSelectionChange($event)\">\n @if (descriptor.searchEnabled) {\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex\">\n <span class=\"p-input-icon-left ml-auto\" [ngStyle]=\"{width: 'unset'}\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" (input)=\"onSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n </span>\n </div>\n </ng-template>\n }\n </mng-table>\n </div>\n </div>\n <div class=\"flex flex-row justify-content-end mng-formly-field-table-multiselect-dialog-footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-primary\"\n (click)=\"onAddItems()\"\n [loading]=\"dialogIsLoading()\"\n loadingIcon=\"pi pi-spin pi-spinner\"\n [disabled]=\"form.disabled\"></button>\n </div>\n </div>\n </ng-template>\n </p-dialog>\n}\n", styles: [".table-footer{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:flex-end;align-items:center;align-content:center;margin-top:2rem}.table-container{overflow:hidden}.table-footer button{width:8rem}.table-footer button:not(:first-child){margin-left:1.5rem}.table-scroll{max-height:75vh;overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: TableComponent, selector: "mng-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "cellClickEnabled", "selectionMode", "selectionEnabled", "rowReorderEnabled", "columnLastMinWidth", "captionComponent", "columnCustomLastComponent", "globalFilterFields"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnCustomLastComponentInstance", "rowReorder"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i2.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i5.Ripple, selector: "[pRipple]" }, { kind: "directive", type: TemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i6.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
194
194
|
}
|
|
195
195
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FormlyFieldTableDialogMultiselectComponent, decorators: [{
|
|
196
196
|
type: Component,
|
|
197
|
-
args: [{ standalone: true, selector: 'mng-formly-table-multiselect-add-field', imports: [TranslateModule, AsyncPipe, TableComponent, DialogModule, ButtonModule, RippleModule, TemplateDirective, InputTextModule, NgStyle, FormlyFieldLabelPipe], providers: [provideViewContainer(false)], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"items()\" [rowReorderEnabled]=\"!disableRowReorder()\" (rowReorder)=\"onRowReorder($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex
|
|
197
|
+
args: [{ standalone: true, selector: 'mng-formly-table-multiselect-add-field', imports: [TranslateModule, AsyncPipe, TableComponent, DialogModule, ButtonModule, RippleModule, TemplateDirective, InputTextModule, NgStyle, FormlyFieldLabelPipe], providers: [provideViewContainer(false)], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"items()\" [rowReorderEnabled]=\"!disableRowReorder()\" (rowReorder)=\"onRowReorder($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex justify-content-end align-items-center\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\">\n {{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n </label>\n <div>\n @if (hasAddAction && !options.formState?.disabled) {\n <button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n }\n </div>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnCustomLast\" let-item=\"rowItem\">\n @if (hasDeleteAction && !options.formState?.disabled) {\n <button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n }\n </ng-template>\n</mng-table>\n\n@if (hasAddAction) {\n <p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: props.label! | translate}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-dialog mng-dialog-sm mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\" class=\"table-container\" mngDialogKeydownHandler>\n <div class=\"h-full flex flex-column\">\n <div class=\"flex-grow-1 formly-field-table-multiselect-dialog-form-container\">\n <div class=\"mng-formly-field-table-multiselect-dialog-table\">\n <mng-table\n #addTableComponent\n [descriptor]=\"descriptor.lookupTableDescriptor\"\n [globalFilterFields]=\"descriptor.searchFields\"\n [result]=\"addItems()\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading()\"\n (selectionChange)=\"onSelectionChange($event)\">\n @if (descriptor.searchEnabled) {\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex\">\n <span class=\"p-input-icon-left ml-auto\" [ngStyle]=\"{width: 'unset'}\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" (input)=\"onSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n </span>\n </div>\n </ng-template>\n }\n </mng-table>\n </div>\n </div>\n <div class=\"flex flex-row justify-content-end mng-formly-field-table-multiselect-dialog-footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-primary\"\n (click)=\"onAddItems()\"\n [loading]=\"dialogIsLoading()\"\n loadingIcon=\"pi pi-spin pi-spinner\"\n [disabled]=\"form.disabled\"></button>\n </div>\n </div>\n </ng-template>\n </p-dialog>\n}\n", styles: [".table-footer{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:flex-end;align-items:center;align-content:center;margin-top:2rem}.table-container{overflow:hidden}.table-footer button{width:8rem}.table-footer button:not(:first-child){margin-left:1.5rem}.table-scroll{max-height:75vh;overflow-y:auto}\n"] }]
|
|
198
198
|
}], propDecorators: { addTableComponent: [{
|
|
199
199
|
type: ViewChild,
|
|
200
200
|
args: ['addTableComponent']
|
|
201
201
|
}] } });
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2VkaXRvci9jb21wb25lbnRzL2Zvcm1seS9maWVsZHMvZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLW11bHRpc2VsZWN0L2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQWdCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hJLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV4RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxPQUFPLEVBQWdCLFlBQVksRUFB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QUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDO0lBQ2pJLENBQUM7OEdBek1RLDBDQUEwQztrR0FBMUMsMENBQTBDLHFGQUh4QyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLHlLQzVDNUMsZzRJQXNGQSxvWEQzQ2MsZUFBZSw0RkFBYSxjQUFjLCtiQUFFLFlBQVksODBCQUFFLFlBQVksNE9BQUUsWUFBWSw4RkFBRSxpQkFBaUIsMEZBQUUsZUFBZSx5SEFBRSxPQUFPLHNFQUFFLG9CQUFvQjs7MkZBSXhKLDBDQUEwQztrQkFUdEQsU0FBUztpQ0FDTSxJQUFJLFlBQ04sd0NBQXdDLFdBR3pDLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxhQUN2SixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLG1CQUN2Qix1QkFBdUIsQ0FBQyxNQUFNOzhCQTBCZixpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGUsIE5nU3R5bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0FmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBpbmplY3QsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7RGlhbG9nTW9kdWxlfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQge0lucHV0VGV4dE1vZHVsZX0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xuaW1wb3J0IHtSaXBwbGVNb2R1bGV9IGZyb20gJ3ByaW1lbmcvcmlwcGxlJztcbmltcG9ydCB7VGFibGVSb3dSZW9yZGVyRXZlbnR9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBDb21tb25zSW50ZXJuYWxFcnJvcixcbiAgICBEYXRhTGlzdFBhcmFtcyxcbiAgICBEYXRhTGlzdFJlc3VsdCxcbiAgICBGaWx0ZXJNYXRjaE1vZGUsXG4gICAgTG9nZ2VyU2VydmljZSxcbiAgICBUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBmcm9tU3Vic2NyaWJlRXJyb3IsXG4gICAgZ2V0RXJyb3JMb2dMZXZlbCxcbiAgICBnZXRPYmplY3RQcm9wZXJ0eUJ5UGF0aCxcbiAgICB0b09ic2VydmFibGVcbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7VGFibGVDb21wb25lbnR9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGUnO1xuaW1wb3J0IHtcbiAgICBGaWVsZE1hbnlUb01hbnlFZGl0b3JBY3Rpb25FbnVtLFxuICAgIEZpZWxkTWFueVRvTWFueUVkaXRvckRlc2NyaXB0b3IsXG4gICAgRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLFxuICAgIEZvcm1GaWVsZEV2ZW50RGlhbG9nU3VidHlwZSxcbiAgICBGb3JtRmllbGRFdmVudFR5cGVFbnVtXG59IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbmltcG9ydCB7cHJvdmlkZVZpZXdDb250YWluZXJ9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2FjdGlvbi9zZXJ2aWNlcy9wcm92aWRlcnMvcHJvdmlkZS12aWV3LWNvbnRhaW5lcic7XG5pbXBvcnQge0Zvcm1seUZpZWxkTGFiZWxQaXBlfSBmcm9tICcuLi8uLi9waXBlcy9mb3JtbHktZmllbGQtbGFiZWwucGlwZSc7XG5pbXBvcnQge0FDb21tb25zRm9ybWx5RmllbGRUeXBlfSBmcm9tICcuLi9mb3JtbHktZmllbGQtdHlwZS5hYnN0cmFjdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm1seS10YWJsZS1tdWx0aXNlbGVjdC1hZGQtZmllbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLW11bHRpc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgQXN5bmNQaXBlLCBUYWJsZUNvbXBvbmVudCwgRGlhbG9nTW9kdWxlLCBCdXR0b25Nb2R1bGUsIFJpcHBsZU1vZHVsZSwgVGVtcGxhdGVEaXJlY3RpdmUsIElucHV0VGV4dE1vZHVsZSwgTmdTdHlsZSwgRm9ybWx5RmllbGRMYWJlbFBpcGVdLFxuICAgIHByb3ZpZGVyczogW3Byb3ZpZGVWaWV3Q29udGFpbmVyKGZhbHNlKV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybWx5RmllbGRUYWJsZURpYWxvZ011bHRpc2VsZWN0Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBBQ29tbW9uc0Zvcm1seUZpZWxkVHlwZTxhbnksIGFueSwgRmllbGRNYW55VG9NYW55RWRpdG9yRGVzY3JpcHRvcjxhbnksIGFueT4+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gaW5qZWN0KExvZ2dlclNlcnZpY2UpLmNyZWF0ZSgnRm9ybWx5RmllbGRUYWJsZURpYWxvZ011bHRpc2VsZWN0Q29tcG9uZW50Jyk7XG5cbiAgICBwdWJsaWMgaXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcbiAgICBwdWJsaWMgYWRkSXRlbXMgPSBzaWduYWw8RGF0YUxpc3RSZXN1bHQ+KHtkYXRhOiBbXSwgdG90YWxDb3VudDogMH0pO1xuXG4gICAgcHJpdmF0ZSBkaWFsb2dEYXRhUHJvdmlkZXJTZXJ2aWNlOiBhbnkgPSBudWxsO1xuXG4gICAgcHVibGljIGlzRGlhbG9nVmlzaWJsZSA9IGZhbHNlO1xuICAgIHB1YmxpYyBkaWFsb2dBcmVJdGVtc0xvYWRlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBkaWFsb2dTZWxlY3RlZEFkZEl0ZW1zOiBBcnJheTxhbnk+ID0gW107XG4gICAgcHVibGljIGRpYWxvZ0lzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBwdWJsaWMgaGFzQWRkQWN0aW9uID0gZmFsc2U7XG4gICAgcHVibGljIGhhc0RlbGV0ZUFjdGlvbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBzZWFyY2hEZWJvdW5jZVN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgICBwcml2YXRlIGxvb2t1cERhdGFQcm92aWRlclN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIEBWaWV3Q2hpbGQoJ2FkZFRhYmxlQ29tcG9uZW50JykgYWRkVGFibGVDb21wb25lbnQ/OiBUYWJsZUNvbXBvbmVudDtcblxuICAgIHB1YmxpYyBkaXNhYmxlUm93UmVvcmRlciA9IHRvU2lnbmFsPGJvb2xlYW4+KHRoaXMuZm9ybVN0YXRlRGlzYWJsZWQkKTtcblxuICAgIHB1YmxpYyBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmxvb2t1cFRhYmxlRGF0YVByb3ZpZGVyLnNlcnZpY2VUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0RhdGFQcm92aWRlclNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxhbnk+KHRoaXMuZGVzY3JpcHRvci5sb29rdXBUYWJsZURhdGFQcm92aWRlci5zZXJ2aWNlVHlwZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYXNBZGRBY3Rpb24gPSB0aGlzLmRlc2NyaXB0b3IuYWN0aW9ucy5zb21lKGEgPT4gYSA9PT0gRmllbGRNYW55VG9NYW55RWRpdG9yQWN0aW9uRW51bS5BZGQpO1xuICAgICAgICB0aGlzLmhhc0RlbGV0ZUFjdGlvbiA9IHRoaXMuZGVzY3JpcHRvci5hY3Rpb25zLnNvbWUoYSA9PiBhID09PSBGaWVsZE1hbnlUb01hbnlFZGl0b3JBY3Rpb25FbnVtLkRlbGV0ZSk7XG5cbiAgICAgICAgLy8gaW5pdCB2YWx1ZXNcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZvcm1Db250cm9sLnZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB0aGlzLmZvcm1Db250cm9sLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUoW10pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZW1pdCBsaWZlY3ljbGUgZXZlbnRcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yPy5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0lOSVRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtQ29udHJvbC52YWx1ZSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUodiA9PiB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zLnNldCh2ID8/IFtdKTtcblxuICAgICAgICAgICAgLy8gZW1pdCBsaWZlY3ljbGUgZXZlbnRcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5WYWx1ZUNoYW5nZSwgdGhpcywge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB2ID8/IFtdXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5wcm9wcy5vblZhbHVlQ2hhbmdlPy4odGhpcy5maWVsZCwgdik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2VhcmNoRGVib3VuY2VTdWJqZWN0LnBpcGUoZGVib3VuY2VUaW1lKDIwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUocXVlcnkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hZGRUYWJsZUNvbXBvbmVudD8ucHJpbWVUYWJsZSgpLmZpbHRlckdsb2JhbChxdWVyeSwgJ2NvbnRhaW5zJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvcj8ubmV4dEV2ZW50KEZvcm1GaWVsZEV2ZW50VHlwZUVudW0uQ29tcG9uZW50TGlmZWN5Y2xlLCB0aGlzLCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZS5PTl9WSUVXX0lOSVRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmxvb2t1cERhdGFQcm92aWRlclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICAvLyBlbWl0IGxpZmVjeWNsZSBldmVudFxuICAgICAgICB0aGlzLmRlc2NyaXB0b3I/Lm5leHRFdmVudChGb3JtRmllbGRFdmVudFR5cGVFbnVtLkNvbXBvbmVudExpZmVjeWNsZSwgdGhpcywge1xuICAgICAgICAgICAgZXZlbnRTdWJ0eXBlOiBGb3JtRmllbGRFdmVudENvbXBvbmVudFN1YnR5cGUuT05fREVTVFJPWVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvcGVuQWRkRGlhbG9nKCkge1xuICAgICAgICB0aGlzLmRpYWxvZ1NlbGVjdGVkQWRkSXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy5pc0RpYWxvZ1Zpc2libGUgPSB0cnVlO1xuXG4gICAgICAgIGlmICghdGhpcy5kaWFsb2dBcmVJdGVtc0xvYWRlZCkge1xuICAgICAgICAgICAgLy8gd3JhcHBlZCBpbiByZXF1ZXN0IGFuaW1hdGlvbiBmcmFtZSBkdWUgdG8gcHJpbWVuZyBidWc6IGh0dHBzOi8vZ2l0aHViLmNvbS9wcmltZWZhY2VzL3ByaW1lbmcvaXNzdWVzLzEyOTgwXG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nSXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJhbXM6IERhdGFMaXN0UGFyYW1zID0ge2xpbWl0OiA1MCwgc29ydDogW119O1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IubG9va3VwVGFibGVEZXNjcmlwdG9yLnNvcnRzLnNvbWUocyA9PiBzLmRlZmF1bHRJc0VuYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvci5sb29rdXBUYWJsZURlc2NyaXB0b3Iuc29ydHMuZm9yRWFjaChzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzLmRlZmF1bHRJc0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuc29ydD8ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiBzLnByb3BlcnR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc2NlbmRpbmc6IHMuZGVmYXVsdElzQXNjZW5kaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmhhc0xvb2t1cEV4Y2x1ZGVWYWx1ZXMgJiYgdGhpcy5kZXNjcmlwdG9yLmxvb2t1cFRhYmxlRGF0YVByb3ZpZGVyLmlzTGF6eSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZXMgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlLm1hcCgoaTogYW55KSA9PiBnZXRPYmplY3RQcm9wZXJ0eUJ5UGF0aChpLCB0aGlzLmRlc2NyaXB0b3IuZXhjbHVkZVZhbHVlUHJvcGVydHkpKTtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmZpbHRlcnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBbdGhpcy5kZXNjcmlwdG9yLmV4Y2x1ZGVGaWx0ZXJQcm9wZXJ0eSBhcyBrZXlvZiBvYmplY3RdOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hNb2RlOiBGaWx0ZXJNYXRjaE1vZGUuTm90SW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlclZhbHVlc1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmxvb2t1cERhdGFQcm92aWRlclN1YnNjcmlwdGlvbiA9IHRvT2JzZXJ2YWJsZSh0aGlzLmRlc2NyaXB0b3IubG9va3VwVGFibGVEYXRhUHJvdmlkZXI/LmdldEFsbChwYXJhbXMsIHRoaXMuZGlhbG9nRGF0YVByb3ZpZGVyU2VydmljZSkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmhhc0xvb2t1cEV4Y2x1ZGVWYWx1ZXMgJiYgIXRoaXMuZGVzY3JpcHRvci5sb29rdXBUYWJsZURhdGFQcm92aWRlci5pc0xhenkgJiYgcmVzICYmIEFycmF5LmlzQXJyYXkocmVzLmRhdGEpICYmIHJlcy5kYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZXMgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlLm1hcCgoaTogYW55KSA9PiBnZXRPYmplY3RQcm9wZXJ0eUJ5UGF0aChpLCB0aGlzLmRlc2NyaXB0b3IuZXhjbHVkZVZhbHVlUHJvcGVydHkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YSA9IHJlcy5kYXRhLmZpbHRlcihpID0+IGZpbHRlclZhbHVlcy5pbmRleE9mKGlbdGhpcy5kZXNjcmlwdG9yLmV4Y2x1ZGVGaWx0ZXJQcm9wZXJ0eV0pIDwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnRvdGFsQ291bnQgPSByZXMuZGF0YS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkSXRlbXMuc2V0KHJlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0FyZUl0ZW1zTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nSXNMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dJc0xvYWRpbmcuc2V0KGZhbHNlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBmcm9tU3Vic2NyaWJlRXJyb3IoZXJyLCAnRm9ybWx5RmllbGRUYWJsZURpYWxvZ011bHRpc2VsZWN0Q29tcG9uZW50Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyhlcnJvciwgZ2V0RXJyb3JMb2dMZXZlbChlcnJvcikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuXG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5EaWFsb2dMaWZlY3ljbGUsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnREaWFsb2dTdWJ0eXBlLlZJU0lCSUxJVFksXG4gICAgICAgICAgICBkaWFsb2dWaXNpYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uU2VsZWN0aW9uQ2hhbmdlKGl0ZW1zOiBBcnJheTxhbnk+KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nU2VsZWN0ZWRBZGRJdGVtcyA9IGl0ZW1zO1xuICAgIH1cblxuICAgIGhpZGVEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuaXNEaWFsb2dWaXNpYmxlID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yLm5leHRFdmVudChGb3JtRmllbGRFdmVudFR5cGVFbnVtLkRpYWxvZ0xpZmVjeWNsZSwgdGhpcywge1xuICAgICAgICAgICAgZXZlbnRTdWJ0eXBlOiBGb3JtRmllbGRFdmVudERpYWxvZ1N1YnR5cGUuVklTSUJJTElUWSxcbiAgICAgICAgICAgIGRpYWxvZ1Zpc2libGU6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQWRkSXRlbXMoKSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gW107XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSBbLi4udmFsdWUsIC4uLnRoaXMuZGlhbG9nU2VsZWN0ZWRBZGRJdGVtc107XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZGlhbG9nU2VsZWN0ZWRBZGRJdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLmRpYWxvZ0FyZUl0ZW1zTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaGlkZURpYWxvZygpO1xuICAgIH1cblxuICAgIHJlbW92ZUl0ZW0oaXRlbTogYW55KSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gW107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcGFyZVByb3BlcnR5ID0gdGhpcy5kZXNjcmlwdG9yLm1haW5UYWJsZURlc2NyaXB0b3IudHJhY2tQcm9wZXJ0eVxuICAgICAgICAgICAgPyB0aGlzLmRlc2NyaXB0b3IubWFpblRhYmxlRGVzY3JpcHRvci50cmFja1Byb3BlcnR5XG4gICAgICAgICAgICA6IHRoaXMuZGVzY3JpcHRvci5tYWluVGFibGVEZXNjcmlwdG9yLm1vZGVsLmlkUHJvcGVydHk7XG4gICAgICAgIGlmICghY29tcGFyZVByb3BlcnR5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoJ0Nhbm5vdCBjb21wYXJlIGl0ZW1zLCBwbGVhc2UgcHJvdmlkZSBtYWluIHRhYmxlIGRhdGEga2V5IHByb3BlcnR5IG9yIG1vZGVsIGlkIHByb3BlcnR5LicsIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnRm9ybWx5RmllbGRUYWJsZURpYWxvZ011bHRpc2VsZWN0Q29tcG9uZW50RXJyb3InXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcigoaTogYW55KSA9PiBnZXRPYmplY3RQcm9wZXJ0eUJ5UGF0aChpLCBjb21wYXJlUHJvcGVydHkpICE9PSBnZXRPYmplY3RQcm9wZXJ0eUJ5UGF0aChpdGVtLCBjb21wYXJlUHJvcGVydHkpKTtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgICAgdGhpcy5kaWFsb2dBcmVJdGVtc0xvYWRlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNlYXJjaChldmVudDogRXZlbnQpIHtcbiAgICAgICAgY29uc3QgcXVlcnkgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgICAgICB0aGlzLnNlYXJjaERlYm91bmNlU3ViamVjdC5uZXh0KHF1ZXJ5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Sb3dSZW9yZGVyKGV2ZW50OiBUYWJsZVJvd1Jlb3JkZXJFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQuZHJhZ0luZGV4ID09PSB1bmRlZmluZWQgfHwgZXZlbnQuZHJvcEluZGV4ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgICAgLy8gdXBkYXRlIGZvcm1Db250cm9sXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gWy4uLnRoaXMuZm9ybUNvbnRyb2wudmFsdWVdO1xuICAgICAgICBjb25zdCBkcmFnZ2VkSXRlbSA9IG5ld1ZhbHVlW2V2ZW50LmRyYWdJbmRleF07XG4gICAgICAgIG5ld1ZhbHVlLnNwbGljZShldmVudC5kcmFnSW5kZXgsIDEpO1xuICAgICAgICBuZXdWYWx1ZS5zcGxpY2UoZXZlbnQuZHJvcEluZGV4LCAwLCBkcmFnZ2VkSXRlbSk7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobmV3VmFsdWUpO1xuXG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Sb3dSZW9yZGVyLCB0aGlzLCB7ZHJhZ0luZGV4OiBldmVudC5kcmFnSW5kZXgsIGRyb3BJbmRleDogZXZlbnQuZHJvcEluZGV4fSk7XG4gICAgfVxufVxuIiwiPG1uZy10YWJsZSBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yLm1haW5UYWJsZURlc2NyaXB0b3JcIiBbaXRlbXNdPVwiaXRlbXMoKVwiIFtyb3dSZW9yZGVyRW5hYmxlZF09XCIhZGlzYWJsZVJvd1Jlb3JkZXIoKVwiIChyb3dSZW9yZGVyKT1cIm9uUm93UmVvcmRlcigkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlIG1uZ1RlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciB0YWJsZS1oZWFkZXIgcHQtMFwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibW5nLWRhdGF0YWJsZS1mb3JtLWxhYmVsIHAtMCBtLTBcIiBbZm9yXT1cImtleVwiPlxuICAgICAgICAgICAgICAgIHt7IGRlc2NyaXB0b3IgfCBtbmdGb3JtbHlGaWVsZExhYmVsOiBlZGl0b3JEZXNjcmlwdG9yIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgQGlmIChwcm9wcy5yZXF1aXJlZCAmJiBwcm9wc1snaGlkZVJlcXVpcmVkTWFya2VyJ10gIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Kjwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgQGlmIChoYXNBZGRBY3Rpb24gJiYgIW9wdGlvbnMuZm9ybVN0YXRlPy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktcGx1c1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBtbmctYnV0dG9uLXhzXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5BZGREaWFsb2coKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtQ29udHJvbCEuZGlzYWJsZWRcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJjb2x1bW5DdXN0b21MYXN0XCIgbGV0LWl0ZW09XCJyb3dJdGVtXCI+XG4gICAgICAgIEBpZiAoaGFzRGVsZXRlQWN0aW9uICYmICFvcHRpb25zLmZvcm1TdGF0ZT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGljb249XCJwaSBwaS10cmFzaFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWRhbmdlciBtbmctYnV0dG9uLXhzXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSXRlbShpdGVtKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm1Db250cm9sIS5kaXNhYmxlZFwiPjwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbW5nLXRhYmxlPlxuXG5AaWYgKGhhc0FkZEFjdGlvbikge1xuICAgIDxwLWRpYWxvZ1xuICAgICAgICBbKHZpc2libGUpXT1cImlzRGlhbG9nVmlzaWJsZVwiXG4gICAgICAgIFtkcmFnZ2FibGVdPVwiZmFsc2VcIlxuICAgICAgICBbaGVhZGVyXT1cIidnZW5lcmFsLmFkZEl0ZW0nIHwgdHJhbnNsYXRlOiB7aXRlbTogcHJvcHMubGFiZWwhIHwgdHJhbnNsYXRlfVwiXG4gICAgICAgIFttb2RhbF09XCJ0cnVlXCJcbiAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgc3R5bGVDbGFzcz1cInAtZmx1aWQgbW5nLWRpYWxvZyBtbmctZGlhbG9nLXNtIG1uZy1mb3JtbHktZmllbGQtdGFibGUtbXVsdGlzZWxlY3QtZGlhbG9nXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb250ZW50XCIgY2xhc3M9XCJ0YWJsZS1jb250YWluZXJcIiBtbmdEaWFsb2dLZXlkb3duSGFuZGxlcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgZmxleCBmbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMSBmb3JtbHktZmllbGQtdGFibGUtbXVsdGlzZWxlY3QtZGlhbG9nLWZvcm0tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbmctZm9ybWx5LWZpZWxkLXRhYmxlLW11bHRpc2VsZWN0LWRpYWxvZy10YWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1uZy10YWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNhZGRUYWJsZUNvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZXNjcmlwdG9yXT1cImRlc2NyaXB0b3IubG9va3VwVGFibGVEZXNjcmlwdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2xvYmFsRmlsdGVyRmllbGRzXT1cImRlc2NyaXB0b3Iuc2VhcmNoRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVzdWx0XT1cImFkZEl0ZW1zKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3Rpb25FbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cImRpYWxvZ0lzTG9hZGluZygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGRlc2NyaXB0b3Iuc2VhcmNoRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1pbnB1dC1pY29uLWxlZnQgbWwtYXV0b1wiIFtuZ1N0eWxlXT1cInt3aWR0aDogJ3Vuc2V0J31cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1zZWFyY2hcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBwSW5wdXRUZXh0IHR5cGU9XCJ0ZXh0XCIgKGlucHV0KT1cIm9uU2VhcmNoKCRldmVudClcIiBbcGxhY2Vob2xkZXJdPVwiJ2dlbmVyYWwuc2VhcmNoJyB8IHRyYW5zbGF0ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tbmctdGFibGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1lbmQgbW5nLWZvcm1seS1maWVsZC10YWJsZS1tdWx0aXNlbGVjdC1kaWFsb2ctZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBbbGFiZWxdPVwiJ2dlbmVyYWwuY2FuY2VsJyB8IHRyYW5zbGF0ZVwiIGljb249XCJwaSBwaS10aW1lc1wiIGNsYXNzPVwicC1idXR0b24tdGV4dFwiIChjbGljayk9XCJoaWRlRGlhbG9nKClcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2dlbmVyYWwuYWRkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktY2hlY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFkZEl0ZW1zKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwiZGlhbG9nSXNMb2FkaW5nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ0ljb249XCJwaSBwaS1zcGluIHBpLXNwaW5uZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uZGlzYWJsZWRcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC1kaWFsb2c+XG59XG4iXX0=
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2VkaXRvci9jb21wb25lbnRzL2Zvcm1seS9maWVsZHMvZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLW11bHRpc2VsZWN0L2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQWdCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hJLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV4RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxPQUFPLEVBQWdCLFlBQVksRUFB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QUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDO0lBQ2pJLENBQUM7OEdBek1RLDBDQUEwQztrR0FBMUMsMENBQTBDLHFGQUh4QyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLHlLQzVDNUMsbzdJQXdGQSxvWEQ3Q2MsZUFBZSw0RkFBYSxjQUFjLCtiQUFFLFlBQVksODBCQUFFLFlBQVksNE9BQUUsWUFBWSw4RkFBRSxpQkFBaUIsMEZBQUUsZUFBZSx5SEFBRSxPQUFPLHNFQUFFLG9CQUFvQjs7MkZBSXhKLDBDQUEwQztrQkFUdEQsU0FBUztpQ0FDTSxJQUFJLFlBQ04sd0NBQXdDLFdBR3pDLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxhQUN2SixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLG1CQUN2Qix1QkFBdUIsQ0FBQyxNQUFNOzhCQTBCZixpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGUsIE5nU3R5bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0FmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBpbmplY3QsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7RGlhbG9nTW9kdWxlfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQge0lucHV0VGV4dE1vZHVsZX0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xuaW1wb3J0IHtSaXBwbGVNb2R1bGV9IGZyb20gJ3ByaW1lbmcvcmlwcGxlJztcbmltcG9ydCB7VGFibGVSb3dSZW9yZGVyRXZlbnR9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBDb21tb25zSW50ZXJuYWxFcnJvcixcbiAgICBEYXRhTGlzdFBhcmFtcyxcbiAgICBEYXRhTGlzdFJlc3VsdCxcbiAgICBGaWx0ZXJNYXRjaE1vZGUsXG4gICAgTG9nZ2VyU2VydmljZSxcbiAgICBUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBmcm9tU3Vic2NyaWJlRXJyb3IsXG4gICAgZ2V0RXJyb3JMb2dMZXZlbCxcbiAgICBnZXRPYmplY3RQcm9wZXJ0eUJ5UGF0aCxcbiAgICB0b09ic2VydmFibGVcbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7VGFibGVDb21wb25lbnR9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGUnO1xuaW1wb3J0IHtcbiAgICBGaWVsZE1hbnlUb01hbnlFZGl0b3JBY3Rpb25FbnVtLFxuICAgIEZpZWxkTWFueVRvTWFueUVkaXRvckRlc2NyaXB0b3IsXG4gICAgRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLFxuICAgIEZvcm1GaWVsZEV2ZW50RGlhbG9nU3VidHlwZSxcbiAgICBGb3JtRmllbGRFdmVudFR5cGVFbnVtXG59IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbmltcG9ydCB7cHJvdmlkZVZpZXdDb250YWluZXJ9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2FjdGlvbi9zZXJ2aWNlcy9wcm92aWRlcnMvcHJvdmlkZS12aWV3LWNvbnRhaW5lcic7XG5pbXBvcnQge0Zvcm1seUZpZWxkTGFiZWxQaXBlfSBmcm9tICcuLi8uLi9waXBlcy9mb3JtbHktZmllbGQtbGFiZWwucGlwZSc7XG5pbXBvcnQge0FDb21tb25zRm9ybWx5RmllbGRUeXBlfSBmcm9tICcuLi9mb3JtbHktZmllbGQtdHlwZS5hYnN0cmFjdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm1seS10YWJsZS1tdWx0aXNlbGVjdC1hZGQtZmllbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLW11bHRpc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgQXN5bmNQaXBlLCBUYWJsZUNvbXBvbmVudCwgRGlhbG9nTW9kdWxlLCBCdXR0b25Nb2R1bGUsIFJpcHBsZU1vZHVsZSwgVGVtcGxhdGVEaXJlY3RpdmUsIElucHV0VGV4dE1vZHVsZSwgTmdTdHlsZSwgRm9ybWx5RmllbGRMYWJlbFBpcGVdLFxuICAgIHByb3ZpZGVyczogW3Byb3ZpZGVWaWV3Q29udGFpbmVyKGZhbHNlKV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybWx5RmllbGRUYWJsZURpYWxvZ011bHRpc2VsZWN0Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBBQ29tbW9uc0Zvcm1seUZpZWxkVHlwZTxhbnksIGFueSwgRmllbGRNYW55VG9NYW55RWRpdG9yRGVzY3JpcHRvcjxhbnksIGFueT4+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gaW5qZWN0KExvZ2dlclNlcnZpY2UpLmNyZWF0ZSgnRm9ybWx5RmllbGRUYWJsZURpYWxvZ011bHRpc2VsZWN0Q29tcG9uZW50Jyk7XG5cbiAgICBwdWJsaWMgaXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcbiAgICBwdWJsaWMgYWRkSXRlbXMgPSBzaWduYWw8RGF0YUxpc3RSZXN1bHQ+KHtkYXRhOiBbXSwgdG90YWxDb3VudDogMH0pO1xuXG4gICAgcHJpdmF0ZSBkaWFsb2dEYXRhUHJvdmlkZXJTZXJ2aWNlOiBhbnkgPSBudWxsO1xuXG4gICAgcHVibGljIGlzRGlhbG9nVmlzaWJsZSA9IGZhbHNlO1xuICAgIHB1YmxpYyBkaWFsb2dBcmVJdGVtc0xvYWRlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBkaWFsb2dTZWxlY3RlZEFkZEl0ZW1zOiBBcnJheTxhbnk+ID0gW107XG4gICAgcHVibGljIGRpYWxvZ0lzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBwdWJsaWMgaGFzQWRkQWN0aW9uID0gZmFsc2U7XG4gICAgcHVibGljIGhhc0RlbGV0ZUFjdGlvbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBzZWFyY2hEZWJvdW5jZVN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgICBwcml2YXRlIGxvb2t1cERhdGFQcm92aWRlclN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIEBWaWV3Q2hpbGQoJ2FkZFRhYmxlQ29tcG9uZW50JykgYWRkVGFibGVDb21wb25lbnQ/OiBUYWJsZUNvbXBvbmVudDtcblxuICAgIHB1YmxpYyBkaXNhYmxlUm93UmVvcmRlciA9IHRvU2lnbmFsPGJvb2xlYW4+KHRoaXMuZm9ybVN0YXRlRGlzYWJsZWQkKTtcblxuICAgIHB1YmxpYyBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmxvb2t1cFRhYmxlRGF0YVByb3ZpZGVyLnNlcnZpY2VUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0RhdGFQcm92aWRlclNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxhbnk+KHRoaXMuZGVzY3JpcHRvci5sb29rdXBUYWJsZURhdGFQcm92aWRlci5zZXJ2aWNlVHlwZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYXNBZGRBY3Rpb24gPSB0aGlzLmRlc2NyaXB0b3IuYWN0aW9ucy5zb21lKGEgPT4gYSA9PT0gRmllbGRNYW55VG9NYW55RWRpdG9yQWN0aW9uRW51bS5BZGQpO1xuICAgICAgICB0aGlzLmhhc0RlbGV0ZUFjdGlvbiA9IHRoaXMuZGVzY3JpcHRvci5hY3Rpb25zLnNvbWUoYSA9PiBhID09PSBGaWVsZE1hbnlUb01hbnlFZGl0b3JBY3Rpb25FbnVtLkRlbGV0ZSk7XG5cbiAgICAgICAgLy8gaW5pdCB2YWx1ZXNcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZvcm1Db250cm9sLnZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB0aGlzLmZvcm1Db250cm9sLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUoW10pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZW1pdCBsaWZlY3ljbGUgZXZlbnRcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yPy5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0lOSVRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtQ29udHJvbC52YWx1ZSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUodiA9PiB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zLnNldCh2ID8/IFtdKTtcblxuICAgICAgICAgICAgLy8gZW1pdCBsaWZlY3ljbGUgZXZlbnRcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5WYWx1ZUNoYW5nZSwgdGhpcywge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB2ID8/IFtdXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5wcm9wcy5vblZhbHVlQ2hhbmdlPy4odGhpcy5maWVsZCwgdik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2VhcmNoRGVib3VuY2VTdWJqZWN0LnBpcGUoZGVib3VuY2VUaW1lKDIwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUocXVlcnkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hZGRUYWJsZUNvbXBvbmVudD8ucHJpbWVUYWJsZSgpLmZpbHRlckdsb2JhbChxdWVyeSwgJ2NvbnRhaW5zJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvcj8ubmV4dEV2ZW50KEZvcm1GaWVsZEV2ZW50VHlwZUVudW0uQ29tcG9uZW50TGlmZWN5Y2xlLCB0aGlzLCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZS5PTl9WSUVXX0lOSVRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmxvb2t1cERhdGFQcm92aWRlclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICAvLyBlbWl0IGxpZmVjeWNsZSBldmVudFxuICAgICAgICB0aGlzLmRlc2NyaXB0b3I/Lm5leHRFdmVudChGb3JtRmllbGRFdmVudFR5cGVFbnVtLkNvbXBvbmVudExpZmVjeWNsZSwgdGhpcywge1xuICAgICAgICAgICAgZXZlbnRTdWJ0eXBlOiBGb3JtRmllbGRFdmVudENvbXBvbmVudFN1YnR5cGUuT05fREVTVFJPWVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvcGVuQWRkRGlhbG9nKCkge1xuICAgICAgICB0aGlzLmRpYWxvZ1NlbGVjdGVkQWRkSXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy5pc0RpYWxvZ1Zpc2libGUgPSB0cnVlO1xuXG4gICAgICAgIGlmICghdGhpcy5kaWFsb2dBcmVJdGVtc0xvYWRlZCkge1xuICAgICAgICAgICAgLy8gd3JhcHBlZCBpbiByZXF1ZXN0IGFuaW1hdGlvbiBmcmFtZSBkdWUgdG8gcHJpbWVuZyBidWc6IGh0dHBzOi8vZ2l0aHViLmNvbS9wcmltZWZhY2VzL3ByaW1lbmcvaXNzdWVzLzEyOTgwXG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nSXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJhbXM6IERhdGFMaXN0UGFyYW1zID0ge2xpbWl0OiA1MCwgc29ydDogW119O1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IubG9va3VwVGFibGVEZXNjcmlwdG9yLnNvcnRzLnNvbWUocyA9PiBzLmRlZmF1bHRJc0VuYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvci5sb29rdXBUYWJsZURlc2NyaXB0b3Iuc29ydHMuZm9yRWFjaChzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzLmRlZmF1bHRJc0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuc29ydD8ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiBzLnByb3BlcnR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc2NlbmRpbmc6IHMuZGVmYXVsdElzQXNjZW5kaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmhhc0xvb2t1cEV4Y2x1ZGVWYWx1ZXMgJiYgdGhpcy5kZXNjcmlwdG9yLmxvb2t1cFRhYmxlRGF0YVByb3ZpZGVyLmlzTGF6eSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZXMgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlLm1hcCgoaTogYW55KSA9PiBnZXRPYmplY3RQcm9wZXJ0eUJ5UGF0aChpLCB0aGlzLmRlc2NyaXB0b3IuZXhjbHVkZVZhbHVlUHJvcGVydHkpKTtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmZpbHRlcnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBbdGhpcy5kZXNjcmlwdG9yLmV4Y2x1ZGVGaWx0ZXJQcm9wZXJ0eSBhcyBrZXlvZiBvYmplY3RdOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hNb2RlOiBGaWx0ZXJNYXRjaE1vZGUuTm90SW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlclZhbHVlc1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmxvb2t1cERhdGFQcm92aWRlclN1YnNjcmlwdGlvbiA9IHRvT2JzZXJ2YWJsZSh0aGlzLmRlc2NyaXB0b3IubG9va3VwVGFibGVEYXRhUHJvdmlkZXI/LmdldEFsbChwYXJhbXMsIHRoaXMuZGlhbG9nRGF0YVByb3ZpZGVyU2VydmljZSkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmhhc0xvb2t1cEV4Y2x1ZGVWYWx1ZXMgJiYgIXRoaXMuZGVzY3JpcHRvci5sb29rdXBUYWJsZURhdGFQcm92aWRlci5pc0xhenkgJiYgcmVzICYmIEFycmF5LmlzQXJyYXkocmVzLmRhdGEpICYmIHJlcy5kYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZXMgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlLm1hcCgoaTogYW55KSA9PiBnZXRPYmplY3RQcm9wZXJ0eUJ5UGF0aChpLCB0aGlzLmRlc2NyaXB0b3IuZXhjbHVkZVZhbHVlUHJvcGVydHkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YSA9IHJlcy5kYXRhLmZpbHRlcihpID0+IGZpbHRlclZhbHVlcy5pbmRleE9mKGlbdGhpcy5kZXNjcmlwdG9yLmV4Y2x1ZGVGaWx0ZXJQcm9wZXJ0eV0pIDwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnRvdGFsQ291bnQgPSByZXMuZGF0YS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkSXRlbXMuc2V0KHJlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0FyZUl0ZW1zTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nSXNMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dJc0xvYWRpbmcuc2V0KGZhbHNlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBmcm9tU3Vic2NyaWJlRXJyb3IoZXJyLCAnRm9ybWx5RmllbGRUYWJsZURpYWxvZ011bHRpc2VsZWN0Q29tcG9uZW50Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyhlcnJvciwgZ2V0RXJyb3JMb2dMZXZlbChlcnJvcikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuXG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5EaWFsb2dMaWZlY3ljbGUsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnREaWFsb2dTdWJ0eXBlLlZJU0lCSUxJVFksXG4gICAgICAgICAgICBkaWFsb2dWaXNpYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uU2VsZWN0aW9uQ2hhbmdlKGl0ZW1zOiBBcnJheTxhbnk+KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nU2VsZWN0ZWRBZGRJdGVtcyA9IGl0ZW1zO1xuICAgIH1cblxuICAgIGhpZGVEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuaXNEaWFsb2dWaXNpYmxlID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yLm5leHRFdmVudChGb3JtRmllbGRFdmVudFR5cGVFbnVtLkRpYWxvZ0xpZmVjeWNsZSwgdGhpcywge1xuICAgICAgICAgICAgZXZlbnRTdWJ0eXBlOiBGb3JtRmllbGRFdmVudERpYWxvZ1N1YnR5cGUuVklTSUJJTElUWSxcbiAgICAgICAgICAgIGRpYWxvZ1Zpc2libGU6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQWRkSXRlbXMoKSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gW107XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSBbLi4udmFsdWUsIC4uLnRoaXMuZGlhbG9nU2VsZWN0ZWRBZGRJdGVtc107XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZGlhbG9nU2VsZWN0ZWRBZGRJdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLmRpYWxvZ0FyZUl0ZW1zTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaGlkZURpYWxvZygpO1xuICAgIH1cblxuICAgIHJlbW92ZUl0ZW0oaXRlbTogYW55KSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gW107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcGFyZVByb3BlcnR5ID0gdGhpcy5kZXNjcmlwdG9yLm1haW5UYWJsZURlc2NyaXB0b3IudHJhY2tQcm9wZXJ0eVxuICAgICAgICAgICAgPyB0aGlzLmRlc2NyaXB0b3IubWFpblRhYmxlRGVzY3JpcHRvci50cmFja1Byb3BlcnR5XG4gICAgICAgICAgICA6IHRoaXMuZGVzY3JpcHRvci5tYWluVGFibGVEZXNjcmlwdG9yLm1vZGVsLmlkUHJvcGVydHk7XG4gICAgICAgIGlmICghY29tcGFyZVByb3BlcnR5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoJ0Nhbm5vdCBjb21wYXJlIGl0ZW1zLCBwbGVhc2UgcHJvdmlkZSBtYWluIHRhYmxlIGRhdGEga2V5IHByb3BlcnR5IG9yIG1vZGVsIGlkIHByb3BlcnR5LicsIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnRm9ybWx5RmllbGRUYWJsZURpYWxvZ011bHRpc2VsZWN0Q29tcG9uZW50RXJyb3InXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcigoaTogYW55KSA9PiBnZXRPYmplY3RQcm9wZXJ0eUJ5UGF0aChpLCBjb21wYXJlUHJvcGVydHkpICE9PSBnZXRPYmplY3RQcm9wZXJ0eUJ5UGF0aChpdGVtLCBjb21wYXJlUHJvcGVydHkpKTtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgICAgdGhpcy5kaWFsb2dBcmVJdGVtc0xvYWRlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNlYXJjaChldmVudDogRXZlbnQpIHtcbiAgICAgICAgY29uc3QgcXVlcnkgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgICAgICB0aGlzLnNlYXJjaERlYm91bmNlU3ViamVjdC5uZXh0KHF1ZXJ5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Sb3dSZW9yZGVyKGV2ZW50OiBUYWJsZVJvd1Jlb3JkZXJFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQuZHJhZ0luZGV4ID09PSB1bmRlZmluZWQgfHwgZXZlbnQuZHJvcEluZGV4ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgICAgLy8gdXBkYXRlIGZvcm1Db250cm9sXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gWy4uLnRoaXMuZm9ybUNvbnRyb2wudmFsdWVdO1xuICAgICAgICBjb25zdCBkcmFnZ2VkSXRlbSA9IG5ld1ZhbHVlW2V2ZW50LmRyYWdJbmRleF07XG4gICAgICAgIG5ld1ZhbHVlLnNwbGljZShldmVudC5kcmFnSW5kZXgsIDEpO1xuICAgICAgICBuZXdWYWx1ZS5zcGxpY2UoZXZlbnQuZHJvcEluZGV4LCAwLCBkcmFnZ2VkSXRlbSk7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobmV3VmFsdWUpO1xuXG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Sb3dSZW9yZGVyLCB0aGlzLCB7ZHJhZ0luZGV4OiBldmVudC5kcmFnSW5kZXgsIGRyb3BJbmRleDogZXZlbnQuZHJvcEluZGV4fSk7XG4gICAgfVxufVxuIiwiPG1uZy10YWJsZSBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yLm1haW5UYWJsZURlc2NyaXB0b3JcIiBbaXRlbXNdPVwiaXRlbXMoKVwiIFtyb3dSZW9yZGVyRW5hYmxlZF09XCIhZGlzYWJsZVJvd1Jlb3JkZXIoKVwiIChyb3dSZW9yZGVyKT1cIm9uUm93UmVvcmRlcigkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlIG1uZ1RlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibW5nLWRhdGF0YWJsZS1mb3JtLWxhYmVsIHAtMCBtLTBcIiBbZm9yXT1cImtleVwiPlxuICAgICAgICAgICAgICAgIHt7IGRlc2NyaXB0b3IgfCBtbmdGb3JtbHlGaWVsZExhYmVsOiBlZGl0b3JEZXNjcmlwdG9yIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgQGlmIChwcm9wcy5yZXF1aXJlZCAmJiBwcm9wc1snaGlkZVJlcXVpcmVkTWFya2VyJ10gIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Kjwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICBAaWYgKGhhc0FkZEFjdGlvbiAmJiAhb3B0aW9ucy5mb3JtU3RhdGU/LmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLXBsdXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIG1uZy1idXR0b24teHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5BZGREaWFsb2coKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybUNvbnRyb2whLmRpc2FibGVkXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIG1uZ1RlbXBsYXRlPVwiY29sdW1uQ3VzdG9tTGFzdFwiIGxldC1pdGVtPVwicm93SXRlbVwiPlxuICAgICAgICBAaWYgKGhhc0RlbGV0ZUFjdGlvbiAmJiAhb3B0aW9ucy5mb3JtU3RhdGU/LmRpc2FibGVkKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktdHJhc2hcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbW5nLWJ1dHRvbi14c1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaXRlbSlcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtQ29udHJvbCEuZGlzYWJsZWRcIj48L2J1dHRvbj5cbiAgICAgICAgfVxuICAgIDwvbmctdGVtcGxhdGU+XG48L21uZy10YWJsZT5cblxuQGlmIChoYXNBZGRBY3Rpb24pIHtcbiAgICA8cC1kaWFsb2dcbiAgICAgICAgWyh2aXNpYmxlKV09XCJpc0RpYWxvZ1Zpc2libGVcIlxuICAgICAgICBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgW2hlYWRlcl09XCInZ2VuZXJhbC5hZGRJdGVtJyB8IHRyYW5zbGF0ZToge2l0ZW06IHByb3BzLmxhYmVsISB8IHRyYW5zbGF0ZX1cIlxuICAgICAgICBbbW9kYWxdPVwidHJ1ZVwiXG4gICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgIHN0eWxlQ2xhc3M9XCJwLWZsdWlkIG1uZy1kaWFsb2cgbW5nLWRpYWxvZy1zbSBtbmctZm9ybWx5LWZpZWxkLXRhYmxlLW11bHRpc2VsZWN0LWRpYWxvZ1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGVudFwiIGNsYXNzPVwidGFibGUtY29udGFpbmVyXCIgbW5nRGlhbG9nS2V5ZG93bkhhbmRsZXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC1mdWxsIGZsZXggZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgZm9ybWx5LWZpZWxkLXRhYmxlLW11bHRpc2VsZWN0LWRpYWxvZy1mb3JtLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW5nLWZvcm1seS1maWVsZC10YWJsZS1tdWx0aXNlbGVjdC1kaWFsb2ctdGFibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtbmctdGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYWRkVGFibGVDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yLmxvb2t1cFRhYmxlRGVzY3JpcHRvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dsb2JhbEZpbHRlckZpZWxkc109XCJkZXNjcmlwdG9yLnNlYXJjaEZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jlc3VsdF09XCJhZGRJdGVtcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0aW9uRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9hZGluZ109XCJkaWFsb2dJc0xvYWRpbmcoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChkZXNjcmlwdG9yLnNlYXJjaEVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1uZ1RlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtaW5wdXQtaWNvbi1sZWZ0IG1sLWF1dG9cIiBbbmdTdHlsZV09XCJ7d2lkdGg6ICd1bnNldCd9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktc2VhcmNoXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCB0eXBlPVwidGV4dFwiIChpbnB1dCk9XCJvblNlYXJjaCgkZXZlbnQpXCIgW3BsYWNlaG9sZGVyXT1cIidnZW5lcmFsLnNlYXJjaCcgfCB0cmFuc2xhdGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbW5nLXRhYmxlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIG1uZy1mb3JtbHktZmllbGQtdGFibGUtbXVsdGlzZWxlY3QtZGlhbG9nLWZvb3RlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgW2xhYmVsXT1cIidnZW5lcmFsLmNhbmNlbCcgfCB0cmFuc2xhdGVcIiBpY29uPVwicGkgcGktdGltZXNcIiBjbGFzcz1cInAtYnV0dG9uLXRleHRcIiAoY2xpY2spPVwiaGlkZURpYWxvZygpXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidnZW5lcmFsLmFkZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLWNoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BZGRJdGVtcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cImRpYWxvZ0lzTG9hZGluZygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmdJY29uPVwicGkgcGktc3BpbiBwaS1zcGlubmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmRpc2FibGVkXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3AtZGlhbG9nPlxufVxuIl19
|
|
@@ -778,11 +778,11 @@ class DropdownComponent {
|
|
|
778
778
|
this.valueChange.emit(value);
|
|
779
779
|
}
|
|
780
780
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
781
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: DropdownComponent, isStandalone: true, selector: "mng-dropdown", inputs: { dataProvider: { classPropertyName: "dataProvider", publicName: "dataProvider", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionsTrackProperty: { classPropertyName: "optionsTrackProperty", publicName: "optionsTrackProperty", isSignal: true, isRequired: false, transformFunction: null }, optionsLabelPropertyInit: { classPropertyName: "optionsLabelPropertyInit", publicName: "optionsLabelProperty", isSignal: true, isRequired: false, transformFunction: null }, optionsLabelTranslate: { classPropertyName: "optionsLabelTranslate", publicName: "optionsLabelTranslate", isSignal: true, isRequired: false, transformFunction: null }, optionsValuePropertyInput: { classPropertyName: "optionsValuePropertyInput", publicName: "optionsValueProperty", isSignal: true, isRequired: false, transformFunction: null }, optionsDisabledProperty: { classPropertyName: "optionsDisabledProperty", publicName: "optionsDisabledProperty", isSignal: true, isRequired: false, transformFunction: null }, multiselect: { classPropertyName: "multiselect", publicName: "multiselect", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, selectFirstItemInput: { classPropertyName: "selectFirstItemInput", publicName: "selectFirstItem", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, dropdownClassName: { classPropertyName: "dropdownClassName", publicName: "dropdownClassName", isSignal: true, isRequired: false, transformFunction: null }, changeValueOnBlur: { classPropertyName: "changeValueOnBlur", publicName: "changeValueOnBlur", isSignal: true, isRequired: false, transformFunction: null }, loadingInput: { classPropertyName: "loadingInput", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", blur: "blur" }, providers: [DROPDOWN_VALUE_ACCESSOR], viewQueries: [{ propertyName: "primeDropdown", first: true, predicate: Dropdown, descendants: true, isSignal: true }, { propertyName: "primeMultiselect", first: true, predicate: MultiSelect, descendants: true, isSignal: true }], ngImport: i0, template: "@if (!multiselect()) {\n <p-dropdown\n [ngModel]=\"ngModelValue()\"\n [placeholder]=\"placeholder()\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [optionValue]=\"optionsValueProperty()\"\n [optionDisabled]=\"optionsDisabledProperty()\"\n [options]=\"items()\"\n [showClear]=\"showClear()\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n [disabled]=\"disabled()\"\n (onBlur)=\"onDropdownBlur($event)\"\n (onChange)=\"onDropdownChange($event)\"\n (onShow)=\"onDropdownPanelShow()\"\n (onHide)=\"onDropdownPanelHide()\"\n [dropdownIcon]=\"loading() ? 'pi pi-spinner pi-spin' : 'pi pi-chevron-down'\"\n [appendTo]=\"appendTo()\"
|
|
781
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: DropdownComponent, isStandalone: true, selector: "mng-dropdown", inputs: { dataProvider: { classPropertyName: "dataProvider", publicName: "dataProvider", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionsTrackProperty: { classPropertyName: "optionsTrackProperty", publicName: "optionsTrackProperty", isSignal: true, isRequired: false, transformFunction: null }, optionsLabelPropertyInit: { classPropertyName: "optionsLabelPropertyInit", publicName: "optionsLabelProperty", isSignal: true, isRequired: false, transformFunction: null }, optionsLabelTranslate: { classPropertyName: "optionsLabelTranslate", publicName: "optionsLabelTranslate", isSignal: true, isRequired: false, transformFunction: null }, optionsValuePropertyInput: { classPropertyName: "optionsValuePropertyInput", publicName: "optionsValueProperty", isSignal: true, isRequired: false, transformFunction: null }, optionsDisabledProperty: { classPropertyName: "optionsDisabledProperty", publicName: "optionsDisabledProperty", isSignal: true, isRequired: false, transformFunction: null }, multiselect: { classPropertyName: "multiselect", publicName: "multiselect", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, selectFirstItemInput: { classPropertyName: "selectFirstItemInput", publicName: "selectFirstItem", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, dropdownClassName: { classPropertyName: "dropdownClassName", publicName: "dropdownClassName", isSignal: true, isRequired: false, transformFunction: null }, changeValueOnBlur: { classPropertyName: "changeValueOnBlur", publicName: "changeValueOnBlur", isSignal: true, isRequired: false, transformFunction: null }, loadingInput: { classPropertyName: "loadingInput", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", blur: "blur" }, providers: [DROPDOWN_VALUE_ACCESSOR], viewQueries: [{ propertyName: "primeDropdown", first: true, predicate: Dropdown, descendants: true, isSignal: true }, { propertyName: "primeMultiselect", first: true, predicate: MultiSelect, descendants: true, isSignal: true }], ngImport: i0, template: "@if (!multiselect()) {\n <p-dropdown\n [ngModel]=\"ngModelValue()\"\n [placeholder]=\"placeholder()\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [optionValue]=\"optionsValueProperty()\"\n [optionDisabled]=\"optionsDisabledProperty()\"\n [options]=\"items()\"\n [showClear]=\"showClear()\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n [disabled]=\"disabled()\"\n (onBlur)=\"onDropdownBlur($event)\"\n (onChange)=\"onDropdownChange($event)\"\n (onShow)=\"onDropdownPanelShow()\"\n (onHide)=\"onDropdownPanelHide()\"\n [dropdownIcon]=\"loading() ? 'pi pi-spinner pi-spin' : 'pi pi-chevron-down'\"\n [appendTo]=\"appendTo()\">\n </p-dropdown>\n} @else {\n <p-multiSelect\n [ngModel]=\"ngModelValue()\"\n [maxSelectedLabels]=\"1\"\n [selectedItemsLabel]=\"'mngDropdown.multiselectOverMaxDisplayLimit' | translate\"\n [placeholder]=\"placeholder()\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [optionValue]=\"optionsValueProperty()\"\n [optionDisabled]=\"optionsDisabledProperty()\"\n [options]=\"items()\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n [filter]=\"true\"\n [showToggleAll]=\"false\"\n [disabled]=\"disabled()\"\n (onChange)=\"onMultiselectChange($event)\"\n (onPanelHide)=\"onMultiselectPanelHide()\"\n (onBlur)=\"onMultiselectBlur($event)\"\n appendTo=\"body\">\n </p-multiSelect>\n}\n", dependencies: [{ kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i1$2.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i2$2.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
782
782
|
}
|
|
783
783
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: DropdownComponent, decorators: [{
|
|
784
784
|
type: Component,
|
|
785
|
-
args: [{ standalone: true, selector: 'mng-dropdown', providers: [DROPDOWN_VALUE_ACCESSOR], imports: [DropdownModule, MultiSelectModule, TranslateModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!multiselect()) {\n <p-dropdown\n [ngModel]=\"ngModelValue()\"\n [placeholder]=\"placeholder()\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [optionValue]=\"optionsValueProperty()\"\n [optionDisabled]=\"optionsDisabledProperty()\"\n [options]=\"items()\"\n [showClear]=\"showClear()\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n [disabled]=\"disabled()\"\n (onBlur)=\"onDropdownBlur($event)\"\n (onChange)=\"onDropdownChange($event)\"\n (onShow)=\"onDropdownPanelShow()\"\n (onHide)=\"onDropdownPanelHide()\"\n [dropdownIcon]=\"loading() ? 'pi pi-spinner pi-spin' : 'pi pi-chevron-down'\"\n [appendTo]=\"appendTo()\"
|
|
785
|
+
args: [{ standalone: true, selector: 'mng-dropdown', providers: [DROPDOWN_VALUE_ACCESSOR], imports: [DropdownModule, MultiSelectModule, TranslateModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!multiselect()) {\n <p-dropdown\n [ngModel]=\"ngModelValue()\"\n [placeholder]=\"placeholder()\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [optionValue]=\"optionsValueProperty()\"\n [optionDisabled]=\"optionsDisabledProperty()\"\n [options]=\"items()\"\n [showClear]=\"showClear()\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n [disabled]=\"disabled()\"\n (onBlur)=\"onDropdownBlur($event)\"\n (onChange)=\"onDropdownChange($event)\"\n (onShow)=\"onDropdownPanelShow()\"\n (onHide)=\"onDropdownPanelHide()\"\n [dropdownIcon]=\"loading() ? 'pi pi-spinner pi-spin' : 'pi pi-chevron-down'\"\n [appendTo]=\"appendTo()\">\n </p-dropdown>\n} @else {\n <p-multiSelect\n [ngModel]=\"ngModelValue()\"\n [maxSelectedLabels]=\"1\"\n [selectedItemsLabel]=\"'mngDropdown.multiselectOverMaxDisplayLimit' | translate\"\n [placeholder]=\"placeholder()\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [optionValue]=\"optionsValueProperty()\"\n [optionDisabled]=\"optionsDisabledProperty()\"\n [options]=\"items()\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n [filter]=\"true\"\n [showToggleAll]=\"false\"\n [disabled]=\"disabled()\"\n (onChange)=\"onMultiselectChange($event)\"\n (onPanelHide)=\"onMultiselectPanelHide()\"\n (onBlur)=\"onMultiselectBlur($event)\"\n appendTo=\"body\">\n </p-multiSelect>\n}\n" }]
|
|
786
786
|
}], ctorParameters: () => [] });
|
|
787
787
|
|
|
788
788
|
const NUMBER_RANGE_VALUE_ACCESSOR = {
|