nuxeo-development-framework 3.5.3 → 3.5.5

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.
Files changed (20) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +37 -24
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +3 -3
  4. package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +3 -2
  5. package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +3 -3
  6. package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.js +2 -2
  7. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +8 -2
  8. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +4 -3
  9. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +8 -4
  10. package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +2 -2
  11. package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +12 -10
  12. package/esm2015/lib/components/filter/filter/filter.component.js +1 -1
  13. package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +1 -1
  14. package/esm2015/lib/shared/components/button/button.component.js +1 -1
  15. package/fesm2015/nuxeo-development-framework.js +37 -24
  16. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  17. package/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.d.ts +3 -1
  18. package/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.d.ts +1 -1
  19. package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.d.ts +4 -1
  20. package/package.json +1 -1
@@ -38,6 +38,8 @@ export class DynamicFormDepartmentComponent {
38
38
  /** is tree searchable */
39
39
  this.searchable = true;
40
40
  this.defaultSelect = false;
41
+ this.displayDepTypee = true;
42
+ this.displayIsAllowRecExternal = true;
41
43
  /** to allow custom paramsto be passed to get departments request from outside the component */
42
44
  this.customParams = {};
43
45
  /** emitted when item is selected */
@@ -161,7 +163,7 @@ export class DynamicFormDepartmentComponent {
161
163
  }
162
164
  }
163
165
  DynamicFormDepartmentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicFormDepartmentComponent, deps: [{ token: i1.TranslationService }, { token: i2.DepartmentApiService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
164
- DynamicFormDepartmentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DynamicFormDepartmentComponent, selector: "app-dynamic-form-department", inputs: { treeview: "treeview", treeViewAsFormControl: "treeViewAsFormControl", placeholder: "placeholder", multiple: "multiple", searchable: "searchable", label: "label", defaultSelect: "defaultSelect", pp_departmentNestedTree: "pp_departmentNestedTree", pp_departmentTree: "pp_departmentTree", customPrefix: "customPrefix", useCustomAddEditAction: "useCustomAddEditAction", customParentProperty: "customParentProperty", customParams: "customParams" }, outputs: { onSelecting: "onSelecting", actionClicked: "actionClicked" }, ngImport: i0, template: "<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<app-dynamic-form-treeview-select\r\n [treeview]=\"treeview\"\r\n [treeViewAsFormControl]=\"treeViewAsFormControl\"\r\n [defaultSelect]=\"defaultSelect\"\r\n [multiple]=\"multiple\"\r\n [items]=\"data\"\r\n [pp_departmentNestedTree]=\"pp_departmentNestedTree\"\r\n [useCustomAddEditAction]=\"useCustomAddEditAction\"\r\n [customPrefix]=\"customPrefix\"\r\n [customParentProperty]=\"customParentProperty\"\r\n (valueChange)=\"getSelecteditems($event)\"\r\n [(value)]=\"selection\"\r\n (actionClicked)=\"onAction($event)\"\r\n class=\"dropdown-wrapper\"\r\n [ngClass]=\"{'input-filled' : selection && selection.length > 0 }\"\r\n>\r\n</app-dynamic-form-treeview-select>\r\n<mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n>\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n </ul>\r\n</mat-error>\r\n", styles: ["app-dynamic-form-department .dropdown{border:1px solid #ccc!important;border-radius:5px!important}app-dynamic-form-department .input-filled .dropdown{border-color:#1a96c6!important}\n"], components: [{ type: i4.TreeviewSelectComponent, selector: "app-dynamic-form-treeview-select", inputs: ["treeview", "treeViewAsFormControl", "config", "items", "value", "multiple", "defaultSelect", "pp_departmentNestedTree", "useCustomAddEditAction", "customPrefix", "customParentProperty", "placeholder"], outputs: ["valueChange", "plusClicked", "actionClicked"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "translate": i7.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
166
+ DynamicFormDepartmentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DynamicFormDepartmentComponent, selector: "app-dynamic-form-department", inputs: { treeview: "treeview", treeViewAsFormControl: "treeViewAsFormControl", placeholder: "placeholder", multiple: "multiple", searchable: "searchable", label: "label", defaultSelect: "defaultSelect", displayDepTypee: "displayDepTypee", displayIsAllowRecExternal: "displayIsAllowRecExternal", pp_departmentNestedTree: "pp_departmentNestedTree", pp_departmentTree: "pp_departmentTree", customPrefix: "customPrefix", useCustomAddEditAction: "useCustomAddEditAction", customParentProperty: "customParentProperty", customParams: "customParams" }, outputs: { onSelecting: "onSelecting", actionClicked: "actionClicked" }, ngImport: i0, template: "<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<app-dynamic-form-treeview-select\r\n [treeview]=\"treeview\"\r\n [treeViewAsFormControl]=\"treeViewAsFormControl\"\r\n [defaultSelect]=\"defaultSelect\"\r\n [multiple]=\"multiple\"\r\n [items]=\"data\"\r\n [placeholder]=\"placeholder\"\r\n [displayDepTypee]=\"displayDepTypee\"\r\n [displayIsAllowRecExternal]=\"displayIsAllowRecExternal\"\r\n [pp_departmentNestedTree]=\"pp_departmentNestedTree\"\r\n [useCustomAddEditAction]=\"useCustomAddEditAction\"\r\n [customPrefix]=\"customPrefix\"\r\n [customParentProperty]=\"customParentProperty\"\r\n (valueChange)=\"getSelecteditems($event)\"\r\n [(value)]=\"selection\"\r\n (actionClicked)=\"onAction($event)\"\r\n class=\"dropdown-wrapper\"\r\n [ngClass]=\"{'input-filled' : selection && selection.length > 0 }\"\r\n>\r\n</app-dynamic-form-treeview-select>\r\n<mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n>\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n </ul>\r\n</mat-error>\r\n", styles: ["app-dynamic-form-department .dropdown{border:1px solid #ccc!important;border-radius:5px!important}app-dynamic-form-department .input-filled .dropdown{border-color:#1a96c6!important}\n"], components: [{ type: i4.TreeviewSelectComponent, selector: "app-dynamic-form-treeview-select", inputs: ["treeview", "treeViewAsFormControl", "config", "items", "value", "multiple", "defaultSelect", "pp_departmentNestedTree", "useCustomAddEditAction", "customPrefix", "customParentProperty", "placeholder", "displayDepTypee", "displayIsAllowRecExternal"], outputs: ["valueChange", "plusClicked", "actionClicked"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "translate": i7.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
165
167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicFormDepartmentComponent, decorators: [{
166
168
  type: Component,
167
169
  args: [{
@@ -188,6 +190,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
188
190
  type: Input
189
191
  }], defaultSelect: [{
190
192
  type: Input
193
+ }], displayDepTypee: [{
194
+ type: Input
195
+ }], displayIsAllowRecExternal: [{
196
+ type: Input
191
197
  }], pp_departmentNestedTree: [{
192
198
  type: Input
193
199
  }], pp_departmentTree: [{
@@ -205,4 +211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
205
211
  }], actionClicked: [{
206
212
  type: Output
207
213
  }] } });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWRlcGFydG1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFJdkM7Ozs7Ozs7Ozs7OztHQVlHO0FBT0gsTUFBTSxPQUFPLDhCQUE4QjtJQTBEekMsWUFDVSxXQUErQixFQUMvQixhQUFtQyxFQUNoQixPQUFrQjtRQUZyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUEzRC9DLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixvQ0FBb0M7UUFDM0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQixnQ0FBZ0M7UUFFaEMsMEJBQXFC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QUE2QjtvQkFDdkMsV0FBVyxFQUFFLDBDQUEwQztvQkFDdkQsU0FBUyxFQUFFLENBQUMsMENBQTBDLENBQUM7b0JBQ3ZELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7MEJBOERJLElBQUk7OzBCQUFJLFFBQVE7NENBekRWLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR04scUJBQXFCO3NCQURwQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgT3V0cHV0LFxyXG4gIFNlbGYsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIE5nQ29udHJvbCxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRyZWV2aWV3SXRlbSB9IGZyb20gJ25neC10cmVldmlldyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGVwYXJ0bWVudEFwaVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RlcGFydG1lbnQtYXBpLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEEgZGVwYXJ0bWVudCB0cmVlIGRyb3Bkb3duIGlucHV0IGFscmVhZHkgd2l0aCBkZXBhcnRtZW50cyBiYWNrZW5kLFxyXG4gKiAgdGhhdCBjYW4gYmUgdXNlZCBpbnNpZGUgcmVhY3RpdmUgb3IgdGVtcGxhdGUgZHJpdmVuIGZvcm1zXHJcbiAqIEB0aXRsZVxyXG4gKiBEZXBhcnRtZW50IHRyZWUgZHJvcGRvd25cclxuICogQGV4YW1wbGVcclxuICogICA8YXBwLWR5bmFtaWMtZm9ybS1kZXBhcnRtZW50XHJcbiAqICAgICAgIGxhYmVsPVwiRmllbGQgTGFiZWxcIlxyXG4gKiAgICAgICBwbGFjZWhvbGRlcj1cIlBsYWNlaG9sZGVyIHRleHRcIlxyXG4gKiAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb250cm9sTmFtZVwiXHJcbiAqICAgICA+XHJcbiAqICAgPC9hcHAtZHluYW1pYy1mb3JtLWRlcGFydG1lbnQ+XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1keW5hbWljLWZvcm0tZGVwYXJ0bWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybURlcGFydG1lbnRDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGF0YSA9IFtdO1xyXG4gIC8qKiBpcyB0cmVlIFZpZXcgb3IgZHJvcGRvd24gdmlldyAqL1xyXG4gIEBJbnB1dCgpIHRyZWV2aWV3ID0gZmFsc2U7XHJcbiAgLyoqIHVzZSB0cmVlIHZpZXcgaW5zaWRlIGZvcm0gKi9cclxuICBASW5wdXQoKVxyXG4gIHRyZWVWaWV3QXNGb3JtQ29udHJvbCA9IGZhbHNlO1xyXG4gIC8qKiBQbGFjZWhvbGRlciB0ZXh0ICovXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI7XHJcbiAgLyoqIENhbiBzZWxlY3QgbXVsdGlwbGUgKi9cclxuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xyXG4gIC8qKiBpcyB0cmVlIHNlYXJjaGFibGUgKi9cclxuICBASW5wdXQoKSBzZWFyY2hhYmxlID0gdHJ1ZTtcclxuICAvKiogSW5wdXQgRmllbGQgbGFiZWwgKi9cclxuICBASW5wdXQoKSBsYWJlbDtcclxuICBASW5wdXQoKSBkZWZhdWx0U2VsZWN0ID0gZmFsc2U7XHJcblxyXG4gIC8qKiBjdXN0b20gcGFnZSBwcm92aWRlciB0byBnZXQgZGVwYXJ0bWVudCBuZXN0ZWQgdHJlZSBmcm9tIGl0IGNhbiBiZSBwYXNzZWQgZnJvbSBvdXRzaWRlIG9yIG5vdCBwYXNzZWQgYW5kIHVzZSB0aGUgZGVmdWx0ZSB2YWx1ZSAqL1xyXG4gIEBJbnB1dCgpIHBwX2RlcGFydG1lbnROZXN0ZWRUcmVlO1xyXG4gIC8qKiBjdXN0b20gcGFnZSBwcm92aWRlciB0byBnZXQgZGVwYXJ0bWVudCB0cmVlIGZyb20gaXQgY2FuIGJlIHBhc3NlZCBmcm9tIG91dHNpZGUgb3Igbm90IHBhc3NlZCBhbmQgdXNlIHRoZSBkZWZ1bHRlIHZhbHVlICovXHJcbiAgQElucHV0KCkgcHBfZGVwYXJ0bWVudFRyZWU7XHJcbiAgLyoqIGN1c3RvbSBwcmVmaXggdG8gYmUgdXNlZCBmb3IgYWRhcHRpbmcgZGF0YSBjb21pbmcgZnJvbSBhcGkgKi9cclxuICBASW5wdXQoKSBjdXN0b21QcmVmaXg7XHJcbiAgLyoqIHRvIGFsbG93IGN1c3RvbSBhY3Rpb24gdG8gYmUgcGVyZm9ybWVkIG91dHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIHVzZUN1c3RvbUFkZEVkaXRBY3Rpb247XHJcbiAgLyoqIHRvIGFsbG93IGN1c3RvbSBwYXJlbnQgcHJvcGVydHkgbmFtZSAgdG8gYmUgcGFhc3NlZCBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIGN1c3RvbVBhcmVudFByb3BlcnR5O1xyXG4gIC8qKiB0byBhbGxvdyBjdXN0b20gcGFyYW1zdG8gYmUgcGFzc2VkIHRvIGdldCBkZXBhcnRtZW50cyByZXF1ZXN0IGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgY3VzdG9tUGFyYW1zID0ge307XHJcblxyXG4gIC8qKiBlbWl0dGVkIHdoZW4gaXRlbSBpcyBzZWxlY3RlZCAqL1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZW1pdHRlZCB3aGVuIGFjdGlvbiBpcyBjbGlja2VkICovXHJcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHNlbGVjdGlvbjtcclxuICBhcmFiaWMgPSBmYWxzZTtcclxuICBsYW5ndWFnZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIC8vIGZ1bmN0aW9uIHJlbGF0ZWQgdG8gdmFsdWUgYWNjZXNzb3JcclxuICBwcm9wYWdhdGVDaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcclxuICB2YWxpZGF0ZUZuOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgcHVibGljIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge1xyXG4gICAgLypFbXB0eSovXHJcbiAgfTtcclxuICBwdWJsaWMgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sID8gdGhpcy5jb250cm9sLmludmFsaWQgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHsgZGlydHksIHRvdWNoZWQgfSA9IHRoaXMuY29udHJvbDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gZGlydHkgfHwgdG91Y2hlZCA6IGZhbHNlO1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGVwYXJ0bWVudEFwaTogRGVwYXJ0bWVudEFwaVNlcnZpY2UsXHJcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBjb250cm9sOiBOZ0NvbnRyb2xcclxuICApIHtcclxuICAgIHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRpb24uaXNBcmFiaWMuc3Vic2NyaWJlKFxyXG4gICAgICBhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hcmFiaWMgPSByZXM7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRMaXNPZk9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5zZWxlY3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmxhbmd1YWdlU3Vic2NyaXB0aW9uID8gdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpIDogJyc7XHJcbiAgfVxyXG5cclxuICBhc3luYyByZWN1cnNpdmVGaWxsKGVudHJpZXMsIGxldmVsID0gMCk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgIGVudHJpZXMubWFwKGFzeW5jIChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgdHJlZVZpZXdPYmogPSB0aGlzLnRyZWV2aWV3XHJcbiAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgdGV4dDogdGhpcy5hcmFiaWNcclxuICAgICAgICAgICAgICA/IGl0ZW0ucHJvcGVydGllc1xyXG4gICAgICAgICAgICAgICAgPyBpdGVtLnByb3BlcnRpZXNbdGhpcy5jdXN0b21QcmVmaXggPyAodGhpcy5jdXN0b21QcmVmaXggKyAnOmFyYWJpY05hbWUnKSA6ICdkZXB0OmFyYWJpY05hbWUnXVxyXG4gICAgICAgICAgICAgICAgOiAnLS0nXHJcbiAgICAgICAgICAgICAgOiBpdGVtLnByb3BlcnRpZXNcclxuICAgICAgICAgICAgICAgID8gaXRlbS5wcm9wZXJ0aWVzW3RoaXMuY3VzdG9tUHJlZml4ID8gKHRoaXMuY3VzdG9tUHJlZml4ICsgJzplbmdsaXNoTmFtZScpIDogJ2RlcHQ6ZW5nbGlzaE5hbWUnXVxyXG4gICAgICAgICAgICAgICAgOiAnLS0nLFxyXG4gICAgICAgICAgICB2YWx1ZTogeyAuLi5pdGVtLCBsZXZlbCB9LFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgIHRleHQ6IHRoaXMuYXJhYmljXHJcbiAgICAgICAgICAgICAgPyBpdGVtLnByb3BlcnRpZXNcclxuICAgICAgICAgICAgICAgID8gaXRlbS5wcm9wZXJ0aWVzW3RoaXMuY3VzdG9tUHJlZml4ID8gKHRoaXMuY3VzdG9tUHJlZml4ICsgJzphcmFiaWNOYW1lJykgOiAnZGVwdDphcmFiaWNOYW1lJ11cclxuICAgICAgICAgICAgICAgIDogJy0tJ1xyXG4gICAgICAgICAgICAgIDogaXRlbS5wcm9wZXJ0aWVzXHJcbiAgICAgICAgICAgICAgICA/IGl0ZW0ucHJvcGVydGllc1t0aGlzLmN1c3RvbVByZWZpeCA/ICh0aGlzLmN1c3RvbVByZWZpeCArICc6ZW5nbGlzaE5hbWUnKSA6ICdkZXB0OmVuZ2xpc2hOYW1lJ11cclxuICAgICAgICAgICAgICAgIDogJy0tJyxcclxuICAgICAgICAgICAgdmFsdWU6ICB0aGlzLm11bHRpcGxlID8gaXRlbS51aWQgOiBpdGVtLnRpdGxlLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgdHJlZUl0ZW0gPSBuZXcgVHJlZXZpZXdJdGVtKHtcclxuICAgICAgICAgIC4uLnRyZWVWaWV3T2JqLFxyXG4gICAgICAgICAgY29sbGFwc2VkOiBsZXZlbCA+PSAyICYmIHRoaXMudHJlZXZpZXcgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgICAgICAuLi4odGhpcy5tdWx0aXBsZSAmJiB7IGNoZWNrZWQ6IGZhbHNlIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGl0ZW0uY29udGV4dFBhcmFtZXRlcnMgJiZcclxuICAgICAgICAgIGl0ZW0uY29udGV4dFBhcmFtZXRlcnMuY2hpbGRyZW4uZW50cmllcy5sZW5ndGhcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgIXRoaXMudHJlZXZpZXcgJiZcclxuICAgICAgICAgICAgKGxldmVsID09IDIgfHwgKGxldmVsID4gMiAmJiAobGV2ZWwgKyAxKSAlIDMgPT0gMCkpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uc3QgZXh0ZW5kZWQgPSBhd2FpdCB0aGlzLmRlcGFydG1lbnRBcGlcclxuICAgICAgICAgICAgICAuZ2V0RGVwYXJ0bWVudE5lc3RlZFRyZWUoaXRlbS50aXRsZSwgdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSAsIHRoaXMuY3VzdG9tUGFyZW50UHJvcGVydHkpXHJcbiAgICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcclxuICAgICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIHRyZWVJdGVtLmNoaWxkcmVuID0gYXdhaXQgdGhpcy5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICAgIGV4dGVuZGVkLmVudHJpZXMsXHJcbiAgICAgICAgICAgICAgbGV2ZWwgKyAxXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0cmVlSXRlbS5jaGlsZHJlbiA9IGF3YWl0IHRoaXMucmVjdXJzaXZlRmlsbChcclxuICAgICAgICAgICAgICBpdGVtLmNvbnRleHRQYXJhbWV0ZXJzLmNoaWxkcmVuLmVudHJpZXMsXHJcbiAgICAgICAgICAgICAgbGV2ZWwgKyAxXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cmVlSXRlbTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRMaXNPZk9wdGlvbnMoKSB7XHJcbiAgICB0aGlzLmRlcGFydG1lbnRBcGkuZ2V0RGVwYXJ0bWVudFRyZWUodGhpcy5wcF9kZXBhcnRtZW50VHJlZSx0aGlzLmN1c3RvbVBhcmFtcykuc3Vic2NyaWJlKGFzeW5jIChyZXMpID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZGF0YSA9IGF3YWl0IHRoaXMucmVjdXJzaXZlRmlsbChyZXMuZW50cmllcyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkaXRlbXMoc2VsZWN0ZWRJdGVtcyk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2Uoc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICB0aGlzLm9uU2VsZWN0aW5nLmVtaXQoc2VsZWN0ZWRJdGVtcyk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlKTogdm9pZCB7XHJcbiAgICAvLyBpZiAodmFsdWUpIHsgLy8gcmVtb3ZlZCB0byBhbGxvdyB0byByZXNldCB2YWx1ZSBvZiB0cmVlXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gdmFsdWU7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuKTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnZhbGlkYXRlRm4oYyk7XHJcbiAgfVxyXG4gIGlzUmVxdWlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbCB8fCAhdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLmNvbnRyb2wuY29udHJvbC52YWxpZGF0b3Ioe30gYXMgQWJzdHJhY3RDb250cm9sKTtcclxuICAgIHJldHVybiB2YWxpZGF0b3IgJiYgdmFsaWRhdG9yLnJlcXVpcmVkO1xyXG4gIH1cclxuICBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93RXJyb3I7XHJcbiAgfVxyXG4gIC8vIG9uUGx1c0NsaWNrZWQoZSkge1xyXG4gIC8vICAgdGhpcy5wbHVzQ2xpY2tlZC5uZXh0KGUpO1xyXG4gIC8vIH1cclxuXHJcbiAgb25BY3Rpb24oZSkge1xyXG4gICAgdGhpcy5hY3Rpb25DbGlja2VkLmVtaXQoZSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gaHR0cDovLzM1LjE1My42Ni41Mjo4MDgwL251eGVvL2FwaS92MS9zZWFyY2gvcHAvUFBfRGVwYXJ0bWVudC9leGVjdXRlP3BhZ2VQcm92aWRlcj1QUF9EZXBhcnRtZW50JmN1cnJlbnRQYWdlSW5kZXg9MCZvZmZzZXQ9MCZwYWdlU2l6ZT00MCZxdWlja0ZpbHRlcnM9UGFyZW50JTIwRGVwdFxyXG4vLyBodHRwOi8vMzUuMTUzLjY2LjUyOjgwODAvbnV4ZW8vYXBpL3YxL3NlYXJjaC9wcC9QUF9PU19EZXBhcnRtZW50cy9leGVjdXRlP3BhZ2VQcm92aWRlcj1QUF9PU19EZXBhcnRtZW50cyZjdXJyZW50UGFnZUluZGV4PTAmb2Zmc2V0PTAmcGFnZVNpemU9NDAmcXVpY2tGaWx0ZXJzPVBhcmVudCUyMERlcHQiLCI8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cclxuICA8ZGl2PlxyXG4gICAgPGxhYmVsIGNsYXNzPVwic2VsZWN0LWxhYmVsXCJcclxuICAgICAgPnt7IGxhYmVsIHwgdHJhbnNsYXRlXHJcbiAgICAgIH19PHNwYW4gKm5nSWY9XCJpc1JlcXVpcmVkKClcIiBjbGFzcz1cInRleHQtZGFuZ2VyIG0tMVwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuPGFwcC1keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0XHJcbiAgW3RyZWV2aWV3XT1cInRyZWV2aWV3XCJcclxuICBbdHJlZVZpZXdBc0Zvcm1Db250cm9sXT1cInRyZWVWaWV3QXNGb3JtQ29udHJvbFwiXHJcbiAgW2RlZmF1bHRTZWxlY3RdPVwiZGVmYXVsdFNlbGVjdFwiXHJcbiAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcclxuICBbaXRlbXNdPVwiZGF0YVwiXHJcbiAgW3BwX2RlcGFydG1lbnROZXN0ZWRUcmVlXT1cInBwX2RlcGFydG1lbnROZXN0ZWRUcmVlXCJcclxuICBbdXNlQ3VzdG9tQWRkRWRpdEFjdGlvbl09XCJ1c2VDdXN0b21BZGRFZGl0QWN0aW9uXCJcclxuICBbY3VzdG9tUHJlZml4XT1cImN1c3RvbVByZWZpeFwiXHJcbiAgW2N1c3RvbVBhcmVudFByb3BlcnR5XT1cImN1c3RvbVBhcmVudFByb3BlcnR5XCJcclxuICAodmFsdWVDaGFuZ2UpPVwiZ2V0U2VsZWN0ZWRpdGVtcygkZXZlbnQpXCJcclxuICBbKHZhbHVlKV09XCJzZWxlY3Rpb25cIlxyXG4gIChhY3Rpb25DbGlja2VkKT1cIm9uQWN0aW9uKCRldmVudClcIlxyXG4gIGNsYXNzPVwiZHJvcGRvd24td3JhcHBlclwiXHJcbiAgW25nQ2xhc3NdPVwieydpbnB1dC1maWxsZWQnIDogc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5sZW5ndGggPiAwIH1cIlxyXG4+XHJcbjwvYXBwLWR5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3Q+XHJcbjxtYXQtZXJyb3JcclxuICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2NhcmQtdGV4dGl0ZW0tZXJyb3ItJ1wiXHJcbiAgY2xhc3M9XCJhcHAtdGV4dGl0ZW0tZWRpdGFibGUtZXJyb3JcIlxyXG4gICpuZ0lmPVwiaGFzRXJyb3JzKClcIlxyXG4+XHJcbiAgPHVsPlxyXG4gICAgPGxpICpuZ0lmPVwiY29udHJvbC5lcnJvcnMucmVxdWlyZWRcIj5cclxuICAgICAge3sgXCJWQUxJREFUT1JTLlJFUVVJUkVEXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvbGk+XHJcbiAgPC91bD5cclxuPC9tYXQtZXJyb3I+XHJcbiJdfQ==
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWRlcGFydG1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFJdkM7Ozs7Ozs7Ozs7OztHQVlHO0FBT0gsTUFBTSxPQUFPLDhCQUE4QjtJQTREekMsWUFDVSxXQUErQixFQUMvQixhQUFtQyxFQUNoQixPQUFrQjtRQUZyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUE3RC9DLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixvQ0FBb0M7UUFDM0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQixnQ0FBZ0M7UUFFaEMsMEJBQXFC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Q0F1Q0E7MkZER2EsOEJBQThCO2tCQU4xQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFdBQVcsRUFBRSwwQ0FBMEM7b0JBQ3ZELFNBQVMsRUFBRSxDQUFDLDBDQUEwQyxDQUFDO29CQUN2RCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7OzBCQWdFSSxJQUFJOzswQkFBSSxRQUFROzRDQTNEVixRQUFRO3NCQUFoQixLQUFLO2dCQUdOLHFCQUFxQjtzQkFEcEIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFHRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBTZWxmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFic3RyYWN0Q29udHJvbCxcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBGb3JtQ29udHJvbCxcclxuICBOZ0NvbnRyb2wsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmVldmlld0l0ZW0gfSBmcm9tICduZ3gtdHJlZXZpZXcnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IERlcGFydG1lbnRBcGlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kZXBhcnRtZW50LWFwaS5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBBIGRlcGFydG1lbnQgdHJlZSBkcm9wZG93biBpbnB1dCBhbHJlYWR5IHdpdGggZGVwYXJ0bWVudHMgYmFja2VuZCxcclxuICogIHRoYXQgY2FuIGJlIHVzZWQgaW5zaWRlIHJlYWN0aXZlIG9yIHRlbXBsYXRlIGRyaXZlbiBmb3Jtc1xyXG4gKiBAdGl0bGVcclxuICogRGVwYXJ0bWVudCB0cmVlIGRyb3Bkb3duXHJcbiAqIEBleGFtcGxlXHJcbiAqICAgPGFwcC1keW5hbWljLWZvcm0tZGVwYXJ0bWVudFxyXG4gKiAgICAgICBsYWJlbD1cIkZpZWxkIExhYmVsXCJcclxuICogICAgICAgcGxhY2Vob2xkZXI9XCJQbGFjZWhvbGRlciB0ZXh0XCJcclxuICogICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29udHJvbE5hbWVcIlxyXG4gKiAgICAgPlxyXG4gKiAgIDwvYXBwLWR5bmFtaWMtZm9ybS1kZXBhcnRtZW50PlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZHluYW1pYy1mb3JtLWRlcGFydG1lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1mb3JtLWRlcGFydG1lbnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1EZXBhcnRtZW50Q29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGRhdGEgPSBbXTtcclxuICAvKiogaXMgdHJlZSBWaWV3IG9yIGRyb3Bkb3duIHZpZXcgKi9cclxuICBASW5wdXQoKSB0cmVldmlldyA9IGZhbHNlO1xyXG4gIC8qKiB1c2UgdHJlZSB2aWV3IGluc2lkZSBmb3JtICovXHJcbiAgQElucHV0KClcclxuICB0cmVlVmlld0FzRm9ybUNvbnRyb2wgPSBmYWxzZTtcclxuICAvKiogUGxhY2Vob2xkZXIgdGV4dCAqL1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyO1xyXG4gIC8qKiBDYW4gc2VsZWN0IG11bHRpcGxlICovXHJcbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcclxuICAvKiogaXMgdHJlZSBzZWFyY2hhYmxlICovXHJcbiAgQElucHV0KCkgc2VhcmNoYWJsZSA9IHRydWU7XHJcbiAgLyoqIElucHV0IEZpZWxkIGxhYmVsICovXHJcbiAgQElucHV0KCkgbGFiZWw7XHJcbiAgQElucHV0KCkgZGVmYXVsdFNlbGVjdCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlEZXBUeXBlZSA9IHRydWU7XHJcbiAgQElucHV0KCkgZGlzcGxheUlzQWxsb3dSZWNFeHRlcm5hbCA9IHRydWU7XHJcblxyXG4gIC8qKiBjdXN0b20gcGFnZSBwcm92aWRlciB0byBnZXQgZGVwYXJ0bWVudCBuZXN0ZWQgdHJlZSBmcm9tIGl0IGNhbiBiZSBwYXNzZWQgZnJvbSBvdXRzaWRlIG9yIG5vdCBwYXNzZWQgYW5kIHVzZSB0aGUgZGVmdWx0ZSB2YWx1ZSAqL1xyXG4gIEBJbnB1dCgpIHBwX2RlcGFydG1lbnROZXN0ZWRUcmVlO1xyXG4gIC8qKiBjdXN0b20gcGFnZSBwcm92aWRlciB0byBnZXQgZGVwYXJ0bWVudCB0cmVlIGZyb20gaXQgY2FuIGJlIHBhc3NlZCBmcm9tIG91dHNpZGUgb3Igbm90IHBhc3NlZCBhbmQgdXNlIHRoZSBkZWZ1bHRlIHZhbHVlICovXHJcbiAgQElucHV0KCkgcHBfZGVwYXJ0bWVudFRyZWU7XHJcbiAgLyoqIGN1c3RvbSBwcmVmaXggdG8gYmUgdXNlZCBmb3IgYWRhcHRpbmcgZGF0YSBjb21pbmcgZnJvbSBhcGkgKi9cclxuICBASW5wdXQoKSBjdXN0b21QcmVmaXg7XHJcbiAgLyoqIHRvIGFsbG93IGN1c3RvbSBhY3Rpb24gdG8gYmUgcGVyZm9ybWVkIG91dHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIHVzZUN1c3RvbUFkZEVkaXRBY3Rpb247XHJcbiAgLyoqIHRvIGFsbG93IGN1c3RvbSBwYXJlbnQgcHJvcGVydHkgbmFtZSAgdG8gYmUgcGFhc3NlZCBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIGN1c3RvbVBhcmVudFByb3BlcnR5O1xyXG4gIC8qKiB0byBhbGxvdyBjdXN0b20gcGFyYW1zdG8gYmUgcGFzc2VkIHRvIGdldCBkZXBhcnRtZW50cyByZXF1ZXN0IGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgY3VzdG9tUGFyYW1zID0ge307XHJcblxyXG4gIC8qKiBlbWl0dGVkIHdoZW4gaXRlbSBpcyBzZWxlY3RlZCAqL1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZW1pdHRlZCB3aGVuIGFjdGlvbiBpcyBjbGlja2VkICovXHJcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHNlbGVjdGlvbjtcclxuICBhcmFiaWMgPSBmYWxzZTtcclxuICBsYW5ndWFnZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIC8vIGZ1bmN0aW9uIHJlbGF0ZWQgdG8gdmFsdWUgYWNjZXNzb3JcclxuICBwcm9wYWdhdGVDaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcclxuICB2YWxpZGF0ZUZuOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgcHVibGljIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge1xyXG4gICAgLypFbXB0eSovXHJcbiAgfTtcclxuICBwdWJsaWMgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sID8gdGhpcy5jb250cm9sLmludmFsaWQgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHsgZGlydHksIHRvdWNoZWQgfSA9IHRoaXMuY29udHJvbDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gZGlydHkgfHwgdG91Y2hlZCA6IGZhbHNlO1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGVwYXJ0bWVudEFwaTogRGVwYXJ0bWVudEFwaVNlcnZpY2UsXHJcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBjb250cm9sOiBOZ0NvbnRyb2xcclxuICApIHtcclxuICAgIHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRpb24uaXNBcmFiaWMuc3Vic2NyaWJlKFxyXG4gICAgICBhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hcmFiaWMgPSByZXM7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRMaXNPZk9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5zZWxlY3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmxhbmd1YWdlU3Vic2NyaXB0aW9uID8gdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpIDogJyc7XHJcbiAgfVxyXG5cclxuICBhc3luYyByZWN1cnNpdmVGaWxsKGVudHJpZXMsIGxldmVsID0gMCk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgIGVudHJpZXMubWFwKGFzeW5jIChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgdHJlZVZpZXdPYmogPSB0aGlzLnRyZWV2aWV3XHJcbiAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgdGV4dDogdGhpcy5hcmFiaWNcclxuICAgICAgICAgICAgICA/IGl0ZW0ucHJvcGVydGllc1xyXG4gICAgICAgICAgICAgICAgPyBpdGVtLnByb3BlcnRpZXNbdGhpcy5jdXN0b21QcmVmaXggPyAodGhpcy5jdXN0b21QcmVmaXggKyAnOmFyYWJpY05hbWUnKSA6ICdkZXB0OmFyYWJpY05hbWUnXVxyXG4gICAgICAgICAgICAgICAgOiAnLS0nXHJcbiAgICAgICAgICAgICAgOiBpdGVtLnByb3BlcnRpZXNcclxuICAgICAgICAgICAgICAgID8gaXRlbS5wcm9wZXJ0aWVzW3RoaXMuY3VzdG9tUHJlZml4ID8gKHRoaXMuY3VzdG9tUHJlZml4ICsgJzplbmdsaXNoTmFtZScpIDogJ2RlcHQ6ZW5nbGlzaE5hbWUnXVxyXG4gICAgICAgICAgICAgICAgOiAnLS0nLFxyXG4gICAgICAgICAgICB2YWx1ZTogeyAuLi5pdGVtLCBsZXZlbCB9LFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgIHRleHQ6IHRoaXMuYXJhYmljXHJcbiAgICAgICAgICAgICAgPyBpdGVtLnByb3BlcnRpZXNcclxuICAgICAgICAgICAgICAgID8gaXRlbS5wcm9wZXJ0aWVzW3RoaXMuY3VzdG9tUHJlZml4ID8gKHRoaXMuY3VzdG9tUHJlZml4ICsgJzphcmFiaWNOYW1lJykgOiAnZGVwdDphcmFiaWNOYW1lJ11cclxuICAgICAgICAgICAgICAgIDogJy0tJ1xyXG4gICAgICAgICAgICAgIDogaXRlbS5wcm9wZXJ0aWVzXHJcbiAgICAgICAgICAgICAgICA/IGl0ZW0ucHJvcGVydGllc1t0aGlzLmN1c3RvbVByZWZpeCA/ICh0aGlzLmN1c3RvbVByZWZpeCArICc6ZW5nbGlzaE5hbWUnKSA6ICdkZXB0OmVuZ2xpc2hOYW1lJ11cclxuICAgICAgICAgICAgICAgIDogJy0tJyxcclxuICAgICAgICAgICAgdmFsdWU6ICB0aGlzLm11bHRpcGxlID8gaXRlbS51aWQgOiBpdGVtLnRpdGxlLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgdHJlZUl0ZW0gPSBuZXcgVHJlZXZpZXdJdGVtKHtcclxuICAgICAgICAgIC4uLnRyZWVWaWV3T2JqLFxyXG4gICAgICAgICAgY29sbGFwc2VkOiBsZXZlbCA+PSAyICYmIHRoaXMudHJlZXZpZXcgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgICAgICAuLi4odGhpcy5tdWx0aXBsZSAmJiB7IGNoZWNrZWQ6IGZhbHNlIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGl0ZW0uY29udGV4dFBhcmFtZXRlcnMgJiZcclxuICAgICAgICAgIGl0ZW0uY29udGV4dFBhcmFtZXRlcnMuY2hpbGRyZW4uZW50cmllcy5sZW5ndGhcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgIXRoaXMudHJlZXZpZXcgJiZcclxuICAgICAgICAgICAgKGxldmVsID09IDIgfHwgKGxldmVsID4gMiAmJiAobGV2ZWwgKyAxKSAlIDMgPT0gMCkpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uc3QgZXh0ZW5kZWQgPSBhd2FpdCB0aGlzLmRlcGFydG1lbnRBcGlcclxuICAgICAgICAgICAgICAuZ2V0RGVwYXJ0bWVudE5lc3RlZFRyZWUoaXRlbS50aXRsZSwgdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSAsIHRoaXMuY3VzdG9tUGFyZW50UHJvcGVydHkpXHJcbiAgICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcclxuICAgICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIHRyZWVJdGVtLmNoaWxkcmVuID0gYXdhaXQgdGhpcy5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICAgIGV4dGVuZGVkLmVudHJpZXMsXHJcbiAgICAgICAgICAgICAgbGV2ZWwgKyAxXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0cmVlSXRlbS5jaGlsZHJlbiA9IGF3YWl0IHRoaXMucmVjdXJzaXZlRmlsbChcclxuICAgICAgICAgICAgICBpdGVtLmNvbnRleHRQYXJhbWV0ZXJzLmNoaWxkcmVuLmVudHJpZXMsXHJcbiAgICAgICAgICAgICAgbGV2ZWwgKyAxXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cmVlSXRlbTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRMaXNPZk9wdGlvbnMoKSB7XHJcbiAgICB0aGlzLmRlcGFydG1lbnRBcGkuZ2V0RGVwYXJ0bWVudFRyZWUodGhpcy5wcF9kZXBhcnRtZW50VHJlZSx0aGlzLmN1c3RvbVBhcmFtcykuc3Vic2NyaWJlKGFzeW5jIChyZXMpID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZGF0YSA9IGF3YWl0IHRoaXMucmVjdXJzaXZlRmlsbChyZXMuZW50cmllcyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkaXRlbXMoc2VsZWN0ZWRJdGVtcyk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2Uoc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICB0aGlzLm9uU2VsZWN0aW5nLmVtaXQoc2VsZWN0ZWRJdGVtcyk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlKTogdm9pZCB7XHJcbiAgICAvLyBpZiAodmFsdWUpIHsgLy8gcmVtb3ZlZCB0byBhbGxvdyB0byByZXNldCB2YWx1ZSBvZiB0cmVlXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gdmFsdWU7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuKTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnZhbGlkYXRlRm4oYyk7XHJcbiAgfVxyXG4gIGlzUmVxdWlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbCB8fCAhdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLmNvbnRyb2wuY29udHJvbC52YWxpZGF0b3Ioe30gYXMgQWJzdHJhY3RDb250cm9sKTtcclxuICAgIHJldHVybiB2YWxpZGF0b3IgJiYgdmFsaWRhdG9yLnJlcXVpcmVkO1xyXG4gIH1cclxuICBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93RXJyb3I7XHJcbiAgfVxyXG4gIC8vIG9uUGx1c0NsaWNrZWQoZSkge1xyXG4gIC8vICAgdGhpcy5wbHVzQ2xpY2tlZC5uZXh0KGUpO1xyXG4gIC8vIH1cclxuXHJcbiAgb25BY3Rpb24oZSkge1xyXG4gICAgdGhpcy5hY3Rpb25DbGlja2VkLmVtaXQoZSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gaHR0cDovLzM1LjE1My42Ni41Mjo4MDgwL251eGVvL2FwaS92MS9zZWFyY2gvcHAvUFBfRGVwYXJ0bWVudC9leGVjdXRlP3BhZ2VQcm92aWRlcj1QUF9EZXBhcnRtZW50JmN1cnJlbnRQYWdlSW5kZXg9MCZvZmZzZXQ9MCZwYWdlU2l6ZT00MCZxdWlja0ZpbHRlcnM9UGFyZW50JTIwRGVwdFxyXG4vLyBodHRwOi8vMzUuMTUzLjY2LjUyOjgwODAvbnV4ZW8vYXBpL3YxL3NlYXJjaC9wcC9QUF9PU19EZXBhcnRtZW50cy9leGVjdXRlP3BhZ2VQcm92aWRlcj1QUF9PU19EZXBhcnRtZW50cyZjdXJyZW50UGFnZUluZGV4PTAmb2Zmc2V0PTAmcGFnZVNpemU9NDAmcXVpY2tGaWx0ZXJzPVBhcmVudCUyMERlcHQiLCI8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cclxuICA8ZGl2PlxyXG4gICAgPGxhYmVsIGNsYXNzPVwic2VsZWN0LWxhYmVsXCJcclxuICAgICAgPnt7IGxhYmVsIHwgdHJhbnNsYXRlXHJcbiAgICAgIH19PHNwYW4gKm5nSWY9XCJpc1JlcXVpcmVkKClcIiBjbGFzcz1cInRleHQtZGFuZ2VyIG0tMVwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuPGFwcC1keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0XHJcbiAgW3RyZWV2aWV3XT1cInRyZWV2aWV3XCJcclxuICBbdHJlZVZpZXdBc0Zvcm1Db250cm9sXT1cInRyZWVWaWV3QXNGb3JtQ29udHJvbFwiXHJcbiAgW2RlZmF1bHRTZWxlY3RdPVwiZGVmYXVsdFNlbGVjdFwiXHJcbiAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcclxuICBbaXRlbXNdPVwiZGF0YVwiXHJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICBbZGlzcGxheURlcFR5cGVlXT1cImRpc3BsYXlEZXBUeXBlZVwiXHJcbiAgW2Rpc3BsYXlJc0FsbG93UmVjRXh0ZXJuYWxdPVwiZGlzcGxheUlzQWxsb3dSZWNFeHRlcm5hbFwiXHJcbiAgW3BwX2RlcGFydG1lbnROZXN0ZWRUcmVlXT1cInBwX2RlcGFydG1lbnROZXN0ZWRUcmVlXCJcclxuICBbdXNlQ3VzdG9tQWRkRWRpdEFjdGlvbl09XCJ1c2VDdXN0b21BZGRFZGl0QWN0aW9uXCJcclxuICBbY3VzdG9tUHJlZml4XT1cImN1c3RvbVByZWZpeFwiXHJcbiAgW2N1c3RvbVBhcmVudFByb3BlcnR5XT1cImN1c3RvbVBhcmVudFByb3BlcnR5XCJcclxuICAodmFsdWVDaGFuZ2UpPVwiZ2V0U2VsZWN0ZWRpdGVtcygkZXZlbnQpXCJcclxuICBbKHZhbHVlKV09XCJzZWxlY3Rpb25cIlxyXG4gIChhY3Rpb25DbGlja2VkKT1cIm9uQWN0aW9uKCRldmVudClcIlxyXG4gIGNsYXNzPVwiZHJvcGRvd24td3JhcHBlclwiXHJcbiAgW25nQ2xhc3NdPVwieydpbnB1dC1maWxsZWQnIDogc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5sZW5ndGggPiAwIH1cIlxyXG4+XHJcbjwvYXBwLWR5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3Q+XHJcbjxtYXQtZXJyb3JcclxuICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2NhcmQtdGV4dGl0ZW0tZXJyb3ItJ1wiXHJcbiAgY2xhc3M9XCJhcHAtdGV4dGl0ZW0tZWRpdGFibGUtZXJyb3JcIlxyXG4gICpuZ0lmPVwiaGFzRXJyb3JzKClcIlxyXG4+XHJcbiAgPHVsPlxyXG4gICAgPGxpICpuZ0lmPVwiY29udHJvbC5lcnJvcnMucmVxdWlyZWRcIj5cclxuICAgICAge3sgXCJWQUxJREFUT1JTLlJFUVVJUkVEXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvbGk+XHJcbiAgPC91bD5cclxuPC9tYXQtZXJyb3I+XHJcbiJdfQ==
@@ -69,12 +69,13 @@ export class DepartmentManagementService {
69
69
  throw err;
70
70
  }));
71
71
  }
72
- openFormDialog(e = 'root', update = false, depCode, item) {
72
+ openFormDialog(e = 'root', update = false, displayIsAllowRecExternal, displayDepTypee, depCode, item) {
73
73
  return this.dialog
74
74
  .open(DepartmentFormComponent, {
75
75
  width: '55%',
76
76
  panelClass: 'department-dialog-container',
77
- data: { depId: e, updateMode: update, depCode: depCode, item: item },
77
+ data: { depId: e, updateMode: update, depCode: depCode, item: item, displayDepTypee: displayDepTypee,
78
+ displayIsAllowRecExternal: displayIsAllowRecExternal },
78
79
  disableClose: true
79
80
  })
80
81
  .afterClosed()
@@ -92,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
92
93
  type: Inject,
93
94
  args: ['environment']
94
95
  }] }]; } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwYXJ0bWVudC1tYW5hZ2VtZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L3NlcnZpY2VzL2RlcGFydG1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7OztBQUs5RCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQ1UsWUFBMEIsRUFDMUIsT0FBdUIsRUFDdkIsZUFBaUMsRUFDakMsTUFBaUIsRUFBaUMsV0FBVztRQUg3RCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFpQyxnQkFBVyxHQUFYLFdBQVcsQ0FBQTtJQUNwRSxDQUFDO0lBQ0osZ0JBQWdCLENBQUMsVUFBVSxFQUFFLFFBQVE7UUFDbkMsT0FBTyxJQUFJLENBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXO2FBQzFCLFNBQVMsQ0FBQyx5QkFBeUIsRUFBRTtZQUNwQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMs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dUIsRUFBRTtZQUM3QixLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSw2QkFBNkI7WUFDekMsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNwRSxZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDO2FBQ0QsV0FBVyxFQUFFO2FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLENBQUM7O3dIQXJHVSwyQkFBMkIscUlBS0QsYUFBYTs0SEFMdkMsMkJBQTJCLGNBRjFCLE1BQU07MkZBRVAsMkJBQTJCO2tCQUh2QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTStCLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBUcmVldmlld0l0ZW0gfSBmcm9tICduZ3gtdHJlZXZpZXcnO1xyXG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbmZpZ3VyYXRpb24vYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9Db3JlL2FkYXB0ZXJzL2FkYXB0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IERlcGFydG1lbnRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZGVwYXJ0bWVudC1mb3JtL2RlcGFydG1lbnQtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZXBhcnRtZW50Q29uc3RhbnRzIH0gZnJvbSAnLi4vY29uc3RhbnRzL2RlcGFydG1lbnQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlcGFydG1lbnRNYW5hZ2VtZW50U2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhZGFwdGVyOiBBZGFwdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgbXlDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZywgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50XHJcbiAgKSB7fVxyXG4gIGNyZWF0ZURlcGFydG1lbnQoRGVwYXJ0bWVudCwgcGFyZW50SWQpIHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oJ0FDX1VBX0RlcGF0cm1lbnRfQ3JlYXRlJywge1xyXG4gICAgICAgICAgdXJsOiBgJHt0aGlzLmVudmlyb25tZW50Lm51eGVvfSR7dGhpcy5lbnZpcm9ubWVudC5jdXN0b21BdXRvbWF0aW9ufWAsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuaW5wdXQocGFyZW50SWQpXHJcbiAgICAgICAgLmNvbnRleHQoe1xyXG4gICAgICAgICAgZGVwYXJ0bWVudDogdGhpcy5hZGFwdGVyLmFkYXB0T3V0KFxyXG4gICAgICAgICAgICBEZXBhcnRtZW50LFxyXG4gICAgICAgICAgICBEZXBhcnRtZW50Q29uc3RhbnRzLmZpZWxkc1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjdXRlKClcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBjcmVhdGVEZXBhcnRtZW50SW5Sb290KERlcGFydG1lbnQpIHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oJ0FDX1VBX0RlcGF0cm1lbnRfQ3JlYXRlX0luUm9vdCcsIHtcclxuICAgICAgICAgIHVybDogYCR7dGhpcy5lbnZpcm9ubWVudC5udXhlb30ke3RoaXMuZW52aXJvbm1lbnQuY3VzdG9tQXV0b21hdGlvbn1gLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNvbnRleHQoe1xyXG4gICAgICAgICAgZGVwYXJ0bWVudDogdGhpcy5hZGFwdGVyLmFkYXB0T3V0KFxyXG4gICAgICAgICAgICBEZXBhcnRtZW50LFxyXG4gICAgICAgICAgICBEZXBhcnRtZW50Q29uc3RhbnRzLmZpZWxkc1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjdXRlKClcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICB1cGRhdGVEZXBhcnRtZW50KERlcGFydG1lbnQsIGRlcGFydG1lbnRJZCkge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbignQUNfVUFfRGVwYXJ0bWVudF9VcGRhdGUnLCB7XHJcbiAgICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5pbnB1dChkZXBhcnRtZW50SWQpXHJcbiAgICAgICAgLmNvbnRleHQoe1xyXG4gICAgICAgICAgZGVwYXJ0bWVudDogdGhpcy5hZGFwdGVyLmFkYXB0T3V0KFxyXG4gICAgICAgICAgICBEZXBhcnRtZW50LFxyXG4gICAgICAgICAgICBEZXBhcnRtZW50Q29uc3RhbnRzLmZpZWxkc1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjdXRlKClcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBnZXREZXBhcnRtZW50KHVpZCkge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLnJlcG9zaXRvcnkoKVxyXG4gICAgICAgIC5oZWFkZXJzKHtcclxuICAgICAgICAgICdYLU5YcHJvcGVydGllcyc6ICcqJyxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5mZXRjaCh1aWQpXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5hZGFwdEluKGRhdGEsIERlcGFydG1lbnRDb25zdGFudHMuZmllbGRzKTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIG9wZW5Gb3JtRGlhbG9nKFxyXG4gICAgZTogc3RyaW5nID0gJ3Jvb3QnLFxyXG4gICAgdXBkYXRlOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBkZXBDb2RlPyxcclxuICAgIGl0ZW0/OiBUcmVldmlld0l0ZW1cclxuICApIHtcclxuICAgIHJldHVybiB0aGlzLmRpYWxvZ1xyXG4gICAgICAub3BlbihEZXBhcnRtZW50Rm9ybUNvbXBvbmVudCwge1xyXG4gICAgICAgIHdpZHRoOiAnNTUlJyxcclxuICAgICAgICBwYW5lbENsYXNzOiAnZGVwYXJ0bWVudC1kaWFsb2ctY29udGFpbmVyJyxcclxuICAgICAgICBkYXRhOiB7IGRlcElkOiBlLCB1cGRhdGVNb2RlOiB1cGRhdGUsIGRlcENvZGU6IGRlcENvZGUsIGl0ZW06IGl0ZW0gfSxcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgICAgfSlcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZSgxKSk7XHJcbiAgfVxyXG59XHJcbi8vIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuLy8gICBpZiAoZGF0YSkge1xyXG4vLyAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiBkYXRhLml0ZW0udmFsdWUubGV2ZWwgPT0gMikge1xyXG4vLyAgICAgICByZXR1cm47XHJcbi8vICAgICB9IGVsc2Uge1xyXG4vLyAgICAgICAvLyB0aGlzLmRlcGFydG1lbnQuZ2V0TGlzT2ZPcHRpb25zKCk7XHJcbi8vICAgICB9XHJcbi8vICAgfVxyXG4vLyB9KTtcclxuIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwYXJ0bWVudC1tYW5hZ2VtZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L3NlcnZpY2VzL2RlcGFydG1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7OztBQUs5RCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQ1UsWUFBMEIsRUFDMUIsT0FBdUIsRUFDdkIsZUFBaUMsRUFDakMsTUFBaUIsRUFBaUMsV0FBVztRQUg3RCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFpQyxnQkFBVyxHQUFYLFdBQVcsQ0FBQTtJQUNwRSxDQUFDO0lBQ0osZ0JBQWdCLENBQUMsVUFBVSxFQUFFLFFBQVE7UUFDbkMsT0FBTyxJQUFJLENBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXO2FBQzFCLFNBQVMsQ0FBQyx5QkFBeUIsRUFBRTtZQUNwQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMs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QUFNO2FBQ2YsSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQzdCLEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLDZCQUE2QjtZQUN6QyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBQyxlQUFlO2dCQUNqRyx5QkFBeUIsRUFBQyx5QkFBeUIsRUFBQztZQUN0RCxZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDO2FBQ0QsV0FBVyxFQUFFO2FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLENBQUM7O3dIQXhHVSwyQkFBMkIscUlBS0QsYUFBYTs0SEFMdkMsMkJBQTJCLGNBRjFCLE1BQU07MkZBRVAsMkJBQTJCO2tCQUh2QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTStCLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBUcmVldmlld0l0ZW0gfSBmcm9tICduZ3gtdHJlZXZpZXcnO1xyXG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbmZpZ3VyYXRpb24vYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9Db3JlL2FkYXB0ZXJzL2FkYXB0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IERlcGFydG1lbnRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZGVwYXJ0bWVudC1mb3JtL2RlcGFydG1lbnQtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZXBhcnRtZW50Q29uc3RhbnRzIH0gZnJvbSAnLi4vY29uc3RhbnRzL2RlcGFydG1lbnQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlcGFydG1lbnRNYW5hZ2VtZW50U2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhZGFwdGVyOiBBZGFwdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgbXlDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZywgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50XHJcbiAgKSB7fVxyXG4gIGNyZWF0ZURlcGFydG1lbnQoRGVwYXJ0bWVudCwgcGFyZW50SWQpIHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oJ0FDX1VBX0RlcGF0cm1lbnRfQ3JlYXRlJywge1xyXG4gICAgICAgICAgdXJsOiBgJHt0aGlzLmVudmlyb25tZW50Lm51eGVvfSR7dGhpcy5lbnZpcm9ubWVudC5jdXN0b21BdXRvbWF0aW9ufWAsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuaW5wdXQocGFyZW50SWQpXHJcbiAgICAgICAgLmNvbnRleHQoe1xyXG4gICAgICAgICAgZGVwYXJ0bWVudDogdGhpcy5hZGFwdGVyLmFkYXB0T3V0KFxyXG4gICAgICAgICAgICBEZXBhcnRtZW50LFxyXG4gICAgICAgICAgICBEZXBhcnRtZW50Q29uc3RhbnRzLmZpZWxkc1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjdXRlKClcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBjcmVhdGVEZXBhcnRtZW50SW5Sb290KERlcGFydG1lbnQpIHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oJ0FDX1VBX0RlcGF0cm1lbnRfQ3JlYXRlX0luUm9vdCcsIHtcclxuICAgICAgICAgIHVybDogYCR7dGhpcy5lbnZpcm9ubWVudC5udXhlb30ke3RoaXMuZW52aXJvbm1lbnQuY3VzdG9tQXV0b21hdGlvbn1gLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNvbnRleHQoe1xyXG4gICAgICAgICAgZGVwYXJ0bWVudDogdGhpcy5hZGFwdGVyLmFkYXB0T3V0KFxyXG4gICAgICAgICAgICBEZXBhcnRtZW50LFxyXG4gICAgICAgICAgICBEZXBhcnRtZW50Q29uc3RhbnRzLmZpZWxkc1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjdXRlKClcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICB1cGRhdGVEZXBhcnRtZW50KERlcGFydG1lbnQsIGRlcGFydG1lbnRJZCkge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbignQUNfVUFfRGVwYXJ0bWVudF9VcGRhdGUnLCB7XHJcbiAgICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5pbnB1dChkZXBhcnRtZW50SWQpXHJcbiAgICAgICAgLmNvbnRleHQoe1xyXG4gICAgICAgICAgZGVwYXJ0bWVudDogdGhpcy5hZGFwdGVyLmFkYXB0T3V0KFxyXG4gICAgICAgICAgICBEZXBhcnRtZW50LFxyXG4gICAgICAgICAgICBEZXBhcnRtZW50Q29uc3RhbnRzLmZpZWxkc1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjdXRlKClcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBnZXREZXBhcnRtZW50KHVpZCkge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLnJlcG9zaXRvcnkoKVxyXG4gICAgICAgIC5oZWFkZXJzKHtcclxuICAgICAgICAgICdYLU5YcHJvcGVydGllcyc6ICcqJyxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5mZXRjaCh1aWQpXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5hZGFwdEluKGRhdGEsIERlcGFydG1lbnRDb25zdGFudHMuZmllbGRzKTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIG9wZW5Gb3JtRGlhbG9nKFxyXG4gICAgZTogc3RyaW5nID0gJ3Jvb3QnLFxyXG4gICAgdXBkYXRlOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBkaXNwbGF5SXNBbGxvd1JlY0V4dGVybmFsLFxyXG4gICAgZGlzcGxheURlcFR5cGVlLFxyXG4gICAgZGVwQ29kZT8sXHJcbiAgICBpdGVtPzogVHJlZXZpZXdJdGVtXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dcclxuICAgICAgLm9wZW4oRGVwYXJ0bWVudEZvcm1Db21wb25lbnQsIHtcclxuICAgICAgICB3aWR0aDogJzU1JScsXHJcbiAgICAgICAgcGFuZWxDbGFzczogJ2RlcGFydG1lbnQtZGlhbG9nLWNvbnRhaW5lcicsXHJcbiAgICAgICAgZGF0YTogeyBkZXBJZDogZSwgdXBkYXRlTW9kZTogdXBkYXRlLCBkZXBDb2RlOiBkZXBDb2RlLCBpdGVtOiBpdGVtLCBkaXNwbGF5RGVwVHlwZWU6ZGlzcGxheURlcFR5cGVlLFxyXG4gICAgICAgICAgZGlzcGxheUlzQWxsb3dSZWNFeHRlcm5hbDpkaXNwbGF5SXNBbGxvd1JlY0V4dGVybmFsfSxcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgICAgfSlcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZSgxKSk7XHJcbiAgfVxyXG59XHJcbi8vIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuLy8gICBpZiAoZGF0YSkge1xyXG4vLyAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiBkYXRhLml0ZW0udmFsdWUubGV2ZWwgPT0gMikge1xyXG4vLyAgICAgICByZXR1cm47XHJcbi8vICAgICB9IGVsc2Uge1xyXG4vLyAgICAgICAvLyB0aGlzLmRlcGFydG1lbnQuZ2V0TGlzT2ZPcHRpb25zKCk7XHJcbi8vICAgICB9XHJcbi8vICAgfVxyXG4vLyB9KTtcclxuIl19
@@ -218,7 +218,7 @@ export class TreeviewSelectComponent {
218
218
  }
219
219
  else {
220
220
  this.departmentManagment
221
- .openFormDialog(item.value.uid, false, item.value.title, item)
221
+ .openFormDialog(item.value.uid, false, this.displayIsAllowRecExternal, this.displayDepTypee, item.value.title, item)
222
222
  .subscribe((res) => {
223
223
  if (res) {
224
224
  this.update(item);
@@ -236,7 +236,7 @@ export class TreeviewSelectComponent {
236
236
  }
237
237
  else {
238
238
  this.departmentManagment
239
- .openFormDialog(item.value.uid, true)
239
+ .openFormDialog(item.value.uid, true, this.displayIsAllowRecExternal, this.displayDepTypee)
240
240
  .subscribe((res) => {
241
241
  // this.update(item);
242
242
  this.departmentApiService.getDepartmentTree().subscribe((res) => {
@@ -274,7 +274,7 @@ export class TreeviewSelectComponent {
274
274
  }
275
275
  }
276
276
  TreeviewSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TreeviewSelectComponent, deps: [{ token: i1.TreeviewI18n }, { token: i2.TranslationService }, { token: i3.DepartmentApiService }, { token: i4.DepartmentManagementService }, { token: i5.RolesService }, { token: i6.NuxeoService }, { token: i7.GlobalAdminService }], target: i0.ɵɵFactoryTarget.Component });
277
- TreeviewSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: TreeviewSelectComponent, selector: "app-dynamic-form-treeview-select", inputs: { treeview: "treeview", treeViewAsFormControl: "treeViewAsFormControl", config: "config", items: "items", value: "value", multiple: "multiple", defaultSelect: "defaultSelect", pp_departmentNestedTree: "pp_departmentNestedTree", useCustomAddEditAction: "useCustomAddEditAction", customPrefix: "customPrefix", customParentProperty: "customParentProperty", placeholder: "placeholder" }, outputs: { valueChange: "valueChange", plusClicked: "plusClicked", actionClicked: "actionClicked" }, providers: [{ provide: TreeviewI18n, useClass: DropdownTreeviewSelectI18n }], viewQueries: [{ propertyName: "dropdownTreeviewComponent", first: true, predicate: DropdownTreeviewComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template\r\n #itemTemplate\r\n let-item=\"item\"\r\n let-onCollapseExpand=\"onCollapseExpand\"\r\n let-onCheckedChange=\"onCheckedChange\"\r\n>\r\n <!-- single -->\r\n <div *ngIf=\"!treeview && !multiple\">\r\n <div\r\n class=\"text-nowrap row-item\"\r\n [ngClass]=\"{ active: item.value === this.value }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapseExpand()\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <!-- <label class=\"form-check-label\" (click)=\"select(item)\">{{\r\n item.text\r\n }}</label> -->\r\n <label *ngIf=\"item.disabled\" class=\"form-check-label\">{{\r\n item.text\r\n }}</label>\r\n <label *ngIf=\"!item.disabled\" class=\"form-check-label\" (click)=\"select(item)\">{{\r\n item.text\r\n }}</label>\r\n </div>\r\n </div>\r\n <!-- Multiple -->\r\n <div *ngIf=\"!treeview && multiple\">\r\n <div\r\n class=\"text-nowrap row-item\"\r\n [ngClass]=\"{ active: item.value === this.value }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapseExpand()\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <!-- <input\r\n class=\"multiple-checkBox\"\r\n type=\"checkbox\"\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.target.checked, item)\"\r\n />\r\n\r\n <label class=\"form-check-label\">{{ item.text }}</label> -->\r\n <div class=\"multiple-treeview\">\r\n <mat-checkbox\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.checked, item)\"\r\n >\r\n <span> {{ item.text }} </span>\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- treeView -->\r\n <div *ngIf=\"treeview && !treeViewAsFormControl\" class=\"tree-view-container\">\r\n <div\r\n (mouseenter)=\"hoverField.style.display = 'flex'\"\r\n (mouseleave)=\"hoverField.style.display = 'none'\"\r\n class=\"text-nowrap row-item treeview-row\"\r\n [ngClass]=\"{ selected: item.value == selectedItem }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapsed(item)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label-treeview\" (click)=\"select(item)\"\r\n >{{ item.text }}\r\n <span #hoverField class=\"hoverField\">\r\n <span\r\n type=\"button\"\r\n matTooltip=\"{{ 'department_management.form.edit' | translate }}\"\r\n (click)=\"onAction($event, 'update', item)\"\r\n >\r\n <li class=\"bi bi-pencil\"></li>\r\n </span>\r\n\r\n <span\r\n type=\"button\"\r\n matTooltip=\"{{\r\n 'department_management.form.toolTip_message' | translate\r\n }}\"\r\n (click)=\"onAction($event, 'add', item)\"\r\n >\r\n <li class=\"bi bi-plus\"></li>\r\n </span>\r\n </span>\r\n </label>\r\n </div>\r\n </div>\r\n <!-- treeView as form control -->\r\n <div *ngIf=\"treeview && treeViewAsFormControl\" class=\"tree-view-container\">\r\n <div\r\n class=\"text-nowrap row-item treeview-row-form-control\"\r\n [ngClass]=\"{ 'selected-form-control': item.value == selectedItem }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapsed(item)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n \r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label-treeview\" (click)=\"select(item)\"\r\n >{{ item.text }}\r\n </label>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template\r\n #headerTemplate\r\n let-config=\"config\"\r\n let-item=\"item\"\r\n let-onCollapseExpand=\"onCollapseExpand\"\r\n let-onCheckedChange=\"onCheckedChange\"\r\n let-onFilterTextChange=\"onFilterTextChange\"\r\n>\r\n <div *ngIf=\"config.hasFilter\" class=\"row row-filter\">\r\n <div class=\"col-12\">\r\n <input\r\n class=\"form-control\"\r\n type=\"text\"\r\n [placeholder]=\"i18n.getFilterPlaceholder(placeholder)\"\r\n [(ngModel)]=\"filterText\"\r\n (ngModelChange)=\"onFilterTextChange($event)\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngIf=\"config.hasAllCheckBox || config.hasCollapseExpand\" class=\"row\">\r\n <div class=\"col-12\">\r\n <label *ngIf=\"config.hasAllCheckBox\" (click)=\"select(item)\">\r\n <strong>{{ i18n.getAllCheckboxText() }}</strong>\r\n </label>\r\n <label\r\n *ngIf=\"config.hasCollapseExpand\"\r\n class=\"float-right\"\r\n (click)=\"onCollapseExpand()\"\r\n >\r\n <i\r\n [title]=\"i18n.getTooltipCollapseExpandText(item.collapsed)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span *ngSwitchCase=\"true\" class=\"bi bi-arrows-angle-expand\"></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-arrows-angle-contract\"\r\n ></span>\r\n </i>\r\n </label>\r\n </div>\r\n </div>\r\n <a *ngIf=\"defaultSelect\" class=\"select-default\" (click)=\"selectDefault()\">{{'department_management.selectDefault'| translate}}</a>\r\n <div *ngIf=\"config.hasDivider\" class=\"dropdown-divider\" [ngClass]=\"{'dropdown-divider-noMargin': defaultSelect}\"></div>\r\n</ng-template>\r\n\r\n<ng-container *ngIf=\"!treeview && !multiple\">\r\n <ngx-dropdown-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-dropdown-treeview\r\n></ng-container>\r\n<ng-container *ngIf=\"!treeview && multiple\">\r\n <div class=\"multiple-tree-view\">\r\n <ngx-dropdown-treeview\r\n [config]=\"config\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-dropdown-treeview>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"treeview && !treeViewAsFormControl\">\r\n <div class=\"tree-view\">\r\n <ngx-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-treeview>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"treeview && treeViewAsFormControl\">\r\n <div class=\"tree-view-form-control\">\r\n <ngx-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-treeview>\r\n </div>\r\n</ng-container>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.caret-icon{color:#6c757d;font-size:14px}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element,.multiple-treeview .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#33e3b7!important}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element{position:fixed;left:inherit;top:inherit;transform:translate(-3px,-3px)!important}.multiple-treeview mat-checkbox .mat-checkbox-background{background-color:#d9dce2!important}.form-check-label-treeview{display:flex;align-items:center;justify-content:space-between;width:100%}.form-check-label-treeview .hoverField{display:none;align-items:center;text-align:center}.form-check-label-treeview .hoverField span{display:flex;align-items:center;justify-content:center;margin:0 3px;border:none;background-color:snow;background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:30px;width:30px;color:#fff;border-radius:5px;list-style:none;margin-inline-end:4px}.form-check-label-treeview .hoverField span .bi-plus{font-size:28px;display:flex;justify-content:center}.form-check-label-treeview .hoverField .add-btn{width:164px;padding:1px;display:flex;justify-content:center;align-items:center;font-size:13px;background-color:#0dbab5;border-radius:5px;border:0;color:#fff;--tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.form-check-label-treeview .hoverField .plus-btn{display:flex;font-size:28px;align-items:center}.selected{background-color:#f5f6f8}.selected .hoverField{display:flex!important}.selected-form-control{background-color:#d9dce2}.selected-form-control .hoverField{display:flex!important}.treeview-item .row-item{display:flex;align-items:center;padding:5px 10px}.treeview-item .row-item .multiple-checkBox{margin-inline-start:4px;margin-inline-end:4px}.treeview-item .active{background-color:#f5f6f8}.treeview-row{display:flex;align-items:center}.treeview-row:hover{background-color:#f5f6f8}.treeview-row-form-control{display:flex;align-items:center}.treeview-row-form-control:hover{background-color:#d9dce2}label{margin-bottom:0;cursor:pointer}.bi{cursor:pointer;margin-right:.3rem}ngx-treeview .treeview-container{max-height:200px!important;overflow-x:hidden;scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;overflow-y:auto}ngx-treeview .select-default{display:flex;justify-content:start;font-size:13px;cursor:pointer;margin-bottom:3px;margin-top:4px}ngx-treeview .dropdown-divider-noMargin{margin-top:0!important}.tree-view ngx-treeview .treeview-container{max-height:500px!important;overflow-x:hidden}.tree-view-form-control ngx-treeview .treeview-container{max-height:300px!important;overflow-x:hidden}ngx-dropdown-treeview .dropdown .dropdown-menu{margin-top:0!important;width:100%}ngx-dropdown-treeview .dropdown .btn-outline-secondary{background-color:#8f98aa1a;border:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:hover{color:#6c757d!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:focus{box-shadow:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:active{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}ngx-dropdown-treeview .dropdown:after{position:static!important}ngx-dropdown-treeview .show .dropdown-toggle{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}.rtl .treeview-item .treeview-item{margin-right:2rem!important;margin-left:0!important}.rtl .row-all .col-12{text-align:right}.rtl .row-all .col-12 .pull-right{float:left!important}.rtl .form-check.form-check-inline{margin-right:0!important}.rtl .btn.dropdown-toggle{margin-right:0!important}.rtl .dropdown-menu:not(ngb-datepicker){right:0px;left:unset}.rtl .dropdown :after{margin-top:.6rem;left:.6rem;right:unset!important}.rtl ngx-treeview-item{text-align:right;direction:rtl}@media (min-width: 576px){.rtl .form-inline .form-check-input{margin:3px}}.rtl .form-inline .form-check-input{margin:3px;position:inherit}.rtl .dropdown button{text-align:right!important;direction:rtl}.rtl .fa.fa-caret-right{transform:rotate(180deg)}\n"], components: [{ type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i1.DropdownTreeviewComponent, selector: "ngx-dropdown-treeview", inputs: ["buttonClass", "config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }, { type: i1.TreeviewComponent, selector: "ngx-treeview", inputs: ["config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i12.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
277
+ TreeviewSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: TreeviewSelectComponent, selector: "app-dynamic-form-treeview-select", inputs: { treeview: "treeview", treeViewAsFormControl: "treeViewAsFormControl", config: "config", items: "items", value: "value", multiple: "multiple", defaultSelect: "defaultSelect", pp_departmentNestedTree: "pp_departmentNestedTree", useCustomAddEditAction: "useCustomAddEditAction", customPrefix: "customPrefix", customParentProperty: "customParentProperty", placeholder: "placeholder", displayDepTypee: "displayDepTypee", displayIsAllowRecExternal: "displayIsAllowRecExternal" }, outputs: { valueChange: "valueChange", plusClicked: "plusClicked", actionClicked: "actionClicked" }, providers: [{ provide: TreeviewI18n, useClass: DropdownTreeviewSelectI18n }], viewQueries: [{ propertyName: "dropdownTreeviewComponent", first: true, predicate: DropdownTreeviewComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template\r\n #itemTemplate\r\n let-item=\"item\"\r\n let-onCollapseExpand=\"onCollapseExpand\"\r\n let-onCheckedChange=\"onCheckedChange\"\r\n>\r\n <!-- single -->\r\n <div *ngIf=\"!treeview && !multiple\">\r\n <div\r\n class=\"text-nowrap row-item\"\r\n [ngClass]=\"{ active: item.value === this.value }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapseExpand()\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <!-- <label class=\"form-check-label\" (click)=\"select(item)\">{{\r\n item.text\r\n }}</label> -->\r\n <label *ngIf=\"item.disabled\" class=\"form-check-label\">{{\r\n item.text\r\n }}</label>\r\n <label *ngIf=\"!item.disabled\" class=\"form-check-label\" (click)=\"select(item)\">{{\r\n item.text\r\n }}</label>\r\n </div>\r\n </div>\r\n <!-- Multiple -->\r\n <div *ngIf=\"!treeview && multiple\">\r\n <div\r\n class=\"text-nowrap row-item\"\r\n [ngClass]=\"{ active: item.value === this.value }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapseExpand()\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <!-- <input\r\n class=\"multiple-checkBox\"\r\n type=\"checkbox\"\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.target.checked, item)\"\r\n />\r\n\r\n <label class=\"form-check-label\">{{ item.text }}</label> -->\r\n <div class=\"multiple-treeview\">\r\n <mat-checkbox\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.checked, item)\"\r\n >\r\n <span> {{ item.text }} </span>\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- treeView -->\r\n <div *ngIf=\"treeview && !treeViewAsFormControl\" class=\"tree-view-container\">\r\n <div\r\n (mouseenter)=\"hoverField.style.display = 'flex'\"\r\n (mouseleave)=\"hoverField.style.display = 'none'\"\r\n class=\"text-nowrap row-item treeview-row\"\r\n [ngClass]=\"{ selected: item.value == selectedItem }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapsed(item)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label-treeview\" (click)=\"select(item)\"\r\n >{{ item.text }}\r\n <span #hoverField class=\"hoverField\">\r\n <span\r\n type=\"button\"\r\n matTooltip=\"{{ 'department_management.form.edit' | translate }}\"\r\n (click)=\"onAction($event, 'update', item)\"\r\n >\r\n <li class=\"bi bi-pencil\"></li>\r\n </span>\r\n\r\n <span\r\n type=\"button\"\r\n matTooltip=\"{{\r\n 'department_management.form.toolTip_message' | translate\r\n }}\"\r\n (click)=\"onAction($event, 'add', item)\"\r\n >\r\n <li class=\"bi bi-plus\"></li>\r\n </span>\r\n </span>\r\n </label>\r\n </div>\r\n </div>\r\n <!-- treeView as form control -->\r\n <div *ngIf=\"treeview && treeViewAsFormControl\" class=\"tree-view-container\">\r\n <div\r\n class=\"text-nowrap row-item treeview-row-form-control\"\r\n [ngClass]=\"{ 'selected-form-control': item.value == selectedItem }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapsed(item)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n \r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label-treeview\" (click)=\"select(item)\"\r\n >{{ item.text }}\r\n </label>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template\r\n #headerTemplate\r\n let-config=\"config\"\r\n let-item=\"item\"\r\n let-onCollapseExpand=\"onCollapseExpand\"\r\n let-onCheckedChange=\"onCheckedChange\"\r\n let-onFilterTextChange=\"onFilterTextChange\"\r\n>\r\n <div *ngIf=\"config.hasFilter\" class=\"row row-filter\">\r\n <div class=\"col-12\">\r\n <input\r\n class=\"form-control\"\r\n type=\"text\"\r\n [placeholder]=\"i18n.getFilterPlaceholder(placeholder)\"\r\n [(ngModel)]=\"filterText\"\r\n (ngModelChange)=\"onFilterTextChange($event)\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngIf=\"config.hasAllCheckBox || config.hasCollapseExpand\" class=\"row\">\r\n <div class=\"col-12\">\r\n <label *ngIf=\"config.hasAllCheckBox\" (click)=\"select(item)\">\r\n <strong>{{ i18n.getAllCheckboxText() }}</strong>\r\n </label>\r\n <label\r\n *ngIf=\"config.hasCollapseExpand\"\r\n class=\"float-right\"\r\n (click)=\"onCollapseExpand()\"\r\n >\r\n <i\r\n [title]=\"i18n.getTooltipCollapseExpandText(item.collapsed)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span *ngSwitchCase=\"true\" class=\"bi bi-arrows-angle-expand\"></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-arrows-angle-contract\"\r\n ></span>\r\n </i>\r\n </label>\r\n </div>\r\n </div>\r\n <a *ngIf=\"defaultSelect\" class=\"select-default\" (click)=\"selectDefault()\">{{'department_management.selectDefault'| translate}}</a>\r\n <div *ngIf=\"config.hasDivider\" class=\"dropdown-divider\" [ngClass]=\"{'dropdown-divider-noMargin': defaultSelect}\"></div>\r\n</ng-template>\r\n\r\n<ng-container *ngIf=\"!treeview && !multiple\">\r\n <ngx-dropdown-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-dropdown-treeview\r\n></ng-container>\r\n<ng-container *ngIf=\"!treeview && multiple\">\r\n <div class=\"multiple-tree-view\">\r\n <ngx-dropdown-treeview\r\n [config]=\"config\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-dropdown-treeview>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"treeview && !treeViewAsFormControl\">\r\n <div class=\"tree-view\">\r\n <ngx-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-treeview>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"treeview && treeViewAsFormControl\">\r\n <div class=\"tree-view-form-control\">\r\n <ngx-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-treeview>\r\n </div>\r\n</ng-container>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.caret-icon{color:#6c757d;font-size:14px}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element,.multiple-treeview .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#33e3b7!important}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element{position:fixed;left:inherit;top:inherit;transform:translate(-3px,-3px)!important}.multiple-treeview mat-checkbox .mat-checkbox-background{background-color:#d9dce2!important}.form-check-label-treeview{display:flex;align-items:center;justify-content:space-between;width:100%}.form-check-label-treeview .hoverField{display:none;align-items:center;text-align:center}.form-check-label-treeview .hoverField span{display:flex;align-items:center;justify-content:center;margin:0 3px;border:none;background-color:snow;background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:30px;width:30px;color:#fff;border-radius:5px;list-style:none;margin-inline-end:4px}.form-check-label-treeview .hoverField span .bi-plus{font-size:28px;display:flex;justify-content:center}.form-check-label-treeview .hoverField .add-btn{width:164px;padding:1px;display:flex;justify-content:center;align-items:center;font-size:13px;background-color:#0dbab5;border-radius:5px;border:0;color:#fff;--tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.form-check-label-treeview .hoverField .plus-btn{display:flex;font-size:28px;align-items:center}.selected{background-color:#f5f6f8}.selected .hoverField{display:flex!important}.selected-form-control{background-color:#d9dce2}.selected-form-control .hoverField{display:flex!important}.treeview-item .row-item{display:flex;align-items:center;padding:5px 10px}.treeview-item .row-item .multiple-checkBox{margin-inline-start:4px;margin-inline-end:4px}.treeview-item .active{background-color:#f5f6f8}.treeview-row{display:flex;align-items:center}.treeview-row:hover{background-color:#f5f6f8}.treeview-row-form-control{display:flex;align-items:center}.treeview-row-form-control:hover{background-color:#d9dce2}label{margin-bottom:0;cursor:pointer}.bi{cursor:pointer;margin-right:.3rem}ngx-treeview .treeview-container{max-height:200px!important;overflow-x:hidden;scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;overflow-y:auto}ngx-treeview .select-default{display:flex;justify-content:start;font-size:13px;cursor:pointer;margin-bottom:3px;margin-top:4px}ngx-treeview .dropdown-divider-noMargin{margin-top:0!important}.tree-view ngx-treeview .treeview-container{max-height:500px!important;overflow-x:hidden}.tree-view-form-control ngx-treeview .treeview-container{max-height:300px!important;overflow-x:hidden}ngx-dropdown-treeview .dropdown .dropdown-menu{margin-top:0!important;width:100%}ngx-dropdown-treeview .dropdown .btn-outline-secondary{background-color:#8f98aa1a;border:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:hover{color:#6c757d!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:focus{box-shadow:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:active{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}ngx-dropdown-treeview .dropdown:after{position:static!important}ngx-dropdown-treeview .show .dropdown-toggle{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}.rtl .treeview-item .treeview-item{margin-right:2rem!important;margin-left:0!important}.rtl .row-all .col-12{text-align:right}.rtl .row-all .col-12 .pull-right{float:left!important}.rtl .form-check.form-check-inline{margin-right:0!important}.rtl .btn.dropdown-toggle{margin-right:0!important}.rtl .dropdown-menu:not(ngb-datepicker){right:0px;left:unset}.rtl .dropdown :after{margin-top:.6rem;left:.6rem;right:unset!important}.rtl ngx-treeview-item{text-align:right;direction:rtl}@media (min-width: 576px){.rtl .form-inline .form-check-input{margin:3px}}.rtl .form-inline .form-check-input{margin:3px;position:inherit}.rtl .dropdown button{text-align:right!important;direction:rtl}.rtl .fa.fa-caret-right{transform:rotate(180deg)}\n"], components: [{ type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i1.DropdownTreeviewComponent, selector: "ngx-dropdown-treeview", inputs: ["buttonClass", "config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }, { type: i1.TreeviewComponent, selector: "ngx-treeview", inputs: ["config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i12.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
278
278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TreeviewSelectComponent, decorators: [{
279
279
  type: Component,
280
280
  args: [{
@@ -312,10 +312,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
312
312
  type: Input
313
313
  }], placeholder: [{
314
314
  type: Input
315
+ }], displayDepTypee: [{
316
+ type: Input
317
+ }], displayIsAllowRecExternal: [{
318
+ type: Input
315
319
  }], actionClicked: [{
316
320
  type: Output
317
321
  }], dropdownTreeviewComponent: [{
318
322
  type: ViewChild,
319
323
  args: [DropdownTreeviewComponent, { static: false }]
320
324
  }] } });
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC9kcm9wZG93bi10cmVldmlldy1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0L2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBRVQsaUJBQWlCLEdBR2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUNMLFlBQVksRUFFWixjQUFjLEVBQ2QseUJBQXlCLEVBQ3pCLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBSTdFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQVFILE1BQU0sT0FBTyx1QkFBdUI7SUE4Q2xDLGlFQUFpRTtJQUVqRSxZQUNTLElBQWtCLEVBQ2pCLFdBQStCLEVBQy9CLG9CQUEwQyxFQUMxQyxtQkFBZ0QsRUFDaEQsWUFBMEIsRUFDMUIsWUFBMEIsRUFDMUIsV0FBZ0M7UUFOakMsU0FBSSxHQUFKLElBQUksQ0FBYztRQUNqQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTZCO1FBQ2hELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQXREMUMsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBRXZCLDRCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUM3QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWpCLG9DQUFvQztRQUVwQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGdDQUFnQztRQUVoQywwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFPOUIsMEJBQTBCO1FBQ2pCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDbkMsb0NBQW9DO1FBQzFCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNoRCx1RUFBdUU7UUFDN0QsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2hELHVFQUF1RTtRQUM5RCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUcvQixnRUFBZ0U7UUFDdkQsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBTTlCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUlsRCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWYsZUFBVSxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBZXBELElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQztZQUNsQyxjQUFjLEVBQUUsS0FBSztZQUNyQixpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsU0FBUyxFQUFFLEdBQUc7WUFDZCx1QkFBdUIsRUFBRSxJQUFJO1NBQzlCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFrQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRO2FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2hDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDM0I7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDcEMsc0RBQXNEO1lBQ3RELGlFQUFpRTtZQUNqRSxxR0FBcUc7WUFDckcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQ0UsQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUNkLElBQUksQ0FBQyxRQUFRO1lBQ2IsSUFBSSxDQUFDLEtBQUs7WUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3JCO1lBQ0EsaUNBQWlDO1lBQ2pDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3BDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxlQUFlO2dCQUM3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1lBQ2hDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU07YUFDOUIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssZ0JBQWdCLENBQUMsRUFBRTtZQUNoRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLE9BQU87U0FDUjthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNsRCxDQUFDLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLE9BQU87YUFDUjtTQUNGO0lBQ0gsQ0FBQztJQUNELGFBQWE7UUFDWCxJQUFJLE1BQU0sR0FBRztZQUNYLGVBQWUsRUFBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWE7WUFDaEQsY0FBYyxFQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWTtZQUM5QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRO1NBQ25FLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksRUFDbEMsV0FBVyxFQUNYLE1BQU0sQ0FDUCxDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBa0I7UUFDdkIsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsSUFBSTtJQUNOLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdEIsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLGNBQWMsQ0FDaEQsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsS0FBSyxDQUNYLENBQUM7WUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFrQjtRQUNuQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksS0FBSyxJQUFJLEVBQUU7WUFDekQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDcEQsSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDekQ7WUFFRCxJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDL0IsMkNBQTJDO29CQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDN0I7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNuQzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBQ0QsY0FBYyxDQUFDLENBQUMsRUFBRSxJQUFrQjtRQUNsQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsRUFBRTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUNwRCxJQUFJLENBQUMsdUJBQXVCLENBQzdCLENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDM0QsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyRCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGVBQWU7WUFDN0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUNoQyxJQUFJLENBQUMseUJBQXlCLENBQUMsZ0JBQWdCLENBQUM7WUFDOUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU07U0FDOUIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNELGlCQUFpQixDQUFDLElBQWtCO1FBQ2xDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7U0FDSjs7WUFBTSxPQUFPO0lBQ2hCLENBQUM7SUFFRCxhQUFhLENBQUMsQ0FBYSxFQUFFLElBQWtCO1FBQzdDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNwQixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsQ0FBYSxFQUFFLE1BQWMsRUFBRSxJQUFrQjtRQUN4RCxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUU7Z0JBQ3BCLHlFQUF5RTtnQkFDekUsSUFBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUM7b0JBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO3dCQUN0QixNQUFNLEVBQUcsTUFBTTt3QkFDZixJQUFJLEVBQUcsSUFBSTtxQkFDWixDQUFDLENBQUM7aUJBQ0o7cUJBQUk7b0JBQ0gsSUFBSSxDQUFDLG1CQUFtQjt5QkFDckIsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7eUJBQzdELFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO3dCQUNqQixJQUFJLEdBQUcsRUFBRTs0QkFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUNuQjtvQkFDSCxDQUFDLENBQUMsQ0FBQztpQkFDTjthQUNGO1lBQ0QsSUFBSSxNQUFNLEtBQUssUUFBUSxFQUFFO2dCQUN2QixJQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBQztvQkFDL0IseUVBQXlFO29CQUN2RSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQzt3QkFDdEIsTUFBTSxFQUFHLE1BQU07d0JBQ2YsSUFBSSxFQUFHLElBQUk7cUJBQ1osQ0FBQyxDQUFDO2lCQUNKO3FCQUFJO29CQUNILElBQUksQ0FBQyxtQkFBbUI7eUJBQ3JCLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUM7eUJBQ3BDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO3dCQUNqQixxQkFBcUI7d0JBQ3JCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFOzRCQUM5RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQ2xELEdBQUcsQ0FBQyxPQUFPLEVBQ1gsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUN2QixDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDLENBQUMsQ0FBQztpQkFDTjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLElBQWtCO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxvQkFBb0I7aUJBQ3RCLHVCQUF1QixDQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFDaEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFDN0UsSUFBSSxDQUFDLG9CQUFvQixDQUFDO2lCQUMzQixTQUFTLENBQ1IsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQ3JELEdBQUcsQ0FBQyxPQUFPLEVBQ1gsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxDQUFDLFlBQVksQ0FDbEIsQ0FBQztZQUNKLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUNaLENBQUM7U0FDTDtJQUNILENBQUM7SUFDRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsSUFBSTtRQUNULElBQUksQ0FBQyxvQkFBb0I7YUFDdEIsdUJBQXVCLENBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUNoQixJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUM3RSxJQUFJLENBQUMsb0JBQW9CLENBQUM7YUFDM0IsU0FBUyxDQUNSLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQ3JELElBQUksQ0FBQyxPQUFPLEVBQ1osQ0FBQyxFQUNELElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxDQUFDLFlBQVksQ0FDbEIsQ0FBQztRQUNKLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUNaLENBQUM7SUFDTixDQUFDOztvSEFsVFUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsd2lCQUZ2QixDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQyxxRkF1Q2pFLHlCQUF5QixxRUN4RnRDLGs4UEFpUEE7MkZEOUxhLHVCQUF1QjtrQkFQbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxXQUFXLEVBQUUsK0NBQStDO29CQUM1RCxTQUFTLEVBQUUsQ0FBQywrQ0FBK0MsQ0FBQztvQkFDNUQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQztpQkFDN0U7d1NBVUMsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLHFCQUFxQjtzQkFEcEIsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFRSxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFFRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUssWUFBWTtzQkFBcEIsS0FBSztnQkFFQyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVQLHlCQUF5QjtzQkFEeEIsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBpc05pbCB9IGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHtcclxuICBUcmVldmlld0kxOG4sXHJcbiAgVHJlZXZpZXdJdGVtLFxyXG4gIFRyZWV2aWV3Q29uZmlnLFxyXG4gIERyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQsXHJcbiAgVHJlZXZpZXdIZWxwZXIsXHJcbn0gZnJvbSBcIm5neC10cmVldmlld1wiO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEZXBhcnRtZW50TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tIFwiLi4vZHluYW1pYy1mb3JtLWRlcGFydG1lbnQvc2VydmljZXMvZGVwYXJ0bWVudC1tYW5hZ2VtZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVwYXJ0bWVudEFwaVNlcnZpY2UgfSBmcm9tIFwiLi4vZHluYW1pYy1mb3JtLWRlcGFydG1lbnQvc2VydmljZXMvZGVwYXJ0bWVudC1hcGkuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEcm9wZG93blRyZWV2aWV3U2VsZWN0STE4biB9IGZyb20gXCIuL2Ryb3Bkb3duLXRyZWV2aWV3LXNlbGVjdC1pMThuXCI7XHJcbmltcG9ydCB7IFJvbGVzU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3JvbGVzL3JvbGVzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBHbG9iYWxBZG1pblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2hhcmVkLXNlcnZpY2VzL2dsb2JhbC1hZG1pbi5zZXJ2aWNlXCI7XHJcbi8qKlxyXG4gKiBBIHRyZWUgdmlldyBzZWxlY3RvciBjb21wb25lbnQgdGhhdCBjYW4gYmUgdXNlZCBpbiByZWFjdGl2ZSBhbmQgdGVtcGxhdGUgZHJpdmVuIGZvcm1zLFxyXG4gKiBpdCBjYW4gYmUgYSBmbGF0IHRyZWUgb3IgYSBkcm9wZG93blxyXG4gKiBAdGl0bGVcclxuICogVHJlZSB2aWV3IHNlbGVjdG9yXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIDxhcHAtZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdFxyXG4gKiBbdHJlZXZpZXddPVwiZmFsc2VcIlxyXG4gKiBbbXVsdGlwbGVdPVwiZmFsc2VcIlxyXG4gKiBbaXRlbXNdPVwiaXRlbXNUcmVlXCJcclxuICogKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAqIFsodmFsdWUpXT1cInNlbGVjdGVkVmFsdWVcIlxyXG4gKiA+XHJcbiAqIDwvYXBwLWR5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3Q+XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0LmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBUcmVldmlld0kxOG4sIHVzZUNsYXNzOiBEcm9wZG93blRyZWV2aWV3U2VsZWN0STE4biB9XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyZWV2aWV3U2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgbXVsdGlwbGVTZWxlY3Rpb24gPSBbXTtcclxuICBzZWxlY3RlZEl0ZW07XHJcbiAgc2VsZWN0ZWRQYXJlbnRXaXRoQ2hpbGQgPSBbXTtcclxuICBzaG93UGx1cyA9IGZhbHNlO1xyXG4gIHByZVNlbGVjdGVkID0gW107XHJcbiAgbXlEZXBhcnRtZW50OiBhbnk7XHJcbiAgLyoqIGlzIHRyZWUgVmlldyBvciBkcm9wZG93biB2aWV3ICovXHJcbiAgQElucHV0KClcclxuICB0cmVldmlldyA9IGZhbHNlO1xyXG4gIC8qKiB1c2UgdHJlZSB2aWV3IGluc2lkZSBmb3JtICovXHJcbiAgQElucHV0KClcclxuICB0cmVlVmlld0FzRm9ybUNvbnRyb2wgPSBmYWxzZTtcclxuICAvKiogQ29uZmlnIG9iamVjdCAqL1xyXG4gIEBJbnB1dCgpIGNvbmZpZzogVHJlZXZpZXdDb25maWc7XHJcbiAgLyoqIEl0ZW1zIHRyZWUgKi9cclxuICBASW5wdXQoKSBpdGVtczogVHJlZXZpZXdJdGVtW107XHJcbiAgLyoqIFNlbGVjdGVkIHZhbHVlICovXHJcbiAgQElucHV0KCkgdmFsdWU6IGFueTtcclxuICAvKiogY2FuIHNlbGVjdCBtdWx0aXBsZSAqL1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqIGV2ZW50IGVtaXR0ZWQgb24gdmFsdWUgY2hhbmdlICovXHJcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLyoqIGV2ZW50IGVtaXR0ZWQgb24gcGx1cyBidXR0b24gY2xpY2tlZCAoZm9yIGRlcGFydG1lbnQgbWFuYWdlbWVudCkgKi9cclxuICBAT3V0cHV0KCkgcGx1c0NsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvKiogZXZlbnQgZW1pdHRlZCBvbiBwbHVzIGJ1dHRvbiBjbGlja2VkIChmb3IgZGVwYXJ0bWVudCBtYW5hZ2VtZW50KSAqL1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRTZWxlY3QgPSBmYWxzZTtcclxuLyoqIGN1c3RvbSBwYWdlIHByb3ZpZGVyIHRvIGdldCBkZXBhcnRtZW50IG5lc3RlZCB0cmVlIGZyb20gaXQgY2FuIGJlIHBhc3NlZCBmcm9tIG91dHNpZGUgb3Igbm90IHBhc3NlZCBhbmQgdXNlIHRoZSBkZWZ1bHRlIHZhbHVlICovXHJcbiAgQElucHV0KCkgcHBfZGVwYXJ0bWVudE5lc3RlZFRyZWU7IFxyXG4gIC8qKiB1c2Ugb3V0c2lkZSBjdXN0b20gZnVuY3Rpb24gaW5zdGVhZCBvZiB0aGUgaW5lciBmdW5jdGlvbiAgKi9cclxuICBASW5wdXQoKSB1c2VDdXN0b21BZGRFZGl0QWN0aW9uID0gZmFsc2U7XHJcbiAgICAvKiogY3VzdG9tIHByZWZpeCB0byBiZSB1c2VkIGZvciBhZGFwdGluZyBkYXRhIGNvbWluZyBmcm9tIGFwaSAqL1xyXG4gICAgQElucHV0KCkgY3VzdG9tUHJlZml4O1xyXG4gIC8qKiBjdXN0b20gcGFyZW50IHByb3BlcnR5IG5hbWUgdG8gYmUgcGFzc2VkIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgY3VzdG9tUGFyZW50UHJvcGVydHk7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI7XHJcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAVmlld0NoaWxkKERyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQ6IERyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQ7XHJcbiAgZmlsdGVyVGV4dDogc3RyaW5nO1xyXG4gIGFyYWJpYyA9IGZhbHNlO1xyXG4gIGxhbmd1YWdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgb25EZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIHByaXZhdGUgZHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG46IERyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuO1xyXG5cclxuICAvLyB0aGlzIGNvbXBvbmVudCBpcyB1c2VkIGluIHR3byBwbGFjZXMgdGhlIGZsYWcgaXMgdGhpcy50cmVldmlld1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpMThuOiBUcmVldmlld0kxOG4sXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRlcGFydG1lbnRBcGlTZXJ2aWNlOiBEZXBhcnRtZW50QXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgZGVwYXJ0bWVudE1hbmFnbWVudDogRGVwYXJ0bWVudE1hbmFnZW1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb2xlc1NlcnZpY2U6IFJvbGVzU2VydmljZSxcclxuICAgIHByaXZhdGUgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdsb2JhbEFkbWluIDogR2xvYmFsQWRtaW5TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IFRyZWV2aWV3Q29uZmlnLmNyZWF0ZSh7XHJcbiAgICAgIGhhc0FsbENoZWNrQm94OiBmYWxzZSxcclxuICAgICAgaGFzQ29sbGFwc2VFeHBhbmQ6IGZhbHNlLFxyXG4gICAgICBoYXNGaWx0ZXI6IHRydWUsXHJcbiAgICAgIG1heEhlaWdodDogMjAwLFxyXG4gICAgICBkZWNvdXBsZUNoaWxkRnJvbVBhcmVudDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4biA9IGkxOG4gYXMgRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG47XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb24uaXNBcmFiaWNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuYXJhYmljID0gcmVzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLml0ZW1zICYmIHRoaXMudHJlZXZpZXcpIHtcclxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZEl0ZW0oKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy50cmVldmlldyAmJiAhdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAvLyB0aGlzLiBmdW5jdGlvbiBpcyB0byBzZXQgdWkgd2l0aCBwcmUgc2VsZWN0ZWQgdmFsdWVcclxuICAgICAgLy8gZGVsYXkgdG8gbWFrZSBzdXJlIHRoYXQgcGFnZSBnZXQgdGhlIHZhbHVlIGFuZCBzZW5kIGl0IHRvIGhlcmVcclxuICAgICAgLy8gd2UgdXNlIHRoZSB2YWx1ZSBzZW50IHRvIGhlcmUgYW5kIHNlYXJjaCBmb3IgaXRzIGl0ZW0gb24gb3VyIGl0ZW1zIGFuZCBzZXQgaXQgYXMgdGhlIHNlbGVjdGVkIGl0ZW1cclxuICAgICAgdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICB0aGlzLnNldFByZVNlbGV0ZWRJdGVtKGl0ZW0sIHRoaXMudmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgIXRoaXMudHJlZXZpZXcgJiZcclxuICAgICAgdGhpcy5tdWx0aXBsZSAmJlxyXG4gICAgICB0aGlzLnZhbHVlICYmXHJcbiAgICAgIHRoaXMudmFsdWUubGVuZ3RoID4gMFxyXG4gICAgKSB7XHJcbiAgICAgIC8vIHRoaXMucHJlU2VsZWN0ZWQgPSB0aGlzLnZhbHVlO1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdGhpcy52YWx1ZTtcclxuICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3Rpb25MZW5ndGggPVxyXG4gICAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoO1xyXG4gICAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQub25TZWxlY3RlZENoYW5nZShbXHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGgsXHJcbiAgICAgIF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UHJlU2VsZXRlZEl0ZW0oaXRlbSwgY29tcGFyZVdpdGhWYWx1ZSkge1xyXG4gICAgaWYgKChpdGVtLnZhbHVlID09PSBjb21wYXJlV2l0aFZhbHVlKSB8fCAoaXRlbS52YWx1ZS50aXRsZSA9PT0gY29tcGFyZVdpdGhWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5zZWxlY3QoaXRlbSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChpdGVtLmludGVybmFsQ2hpbGRyZW4pIHtcclxuICAgICAgICBpdGVtLmludGVybmFsQ2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRQcmVTZWxldGVkSXRlbShjaGlsZCwgY29tcGFyZVdpdGhWYWx1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdERlZmF1bHQoKSB7XHJcbiAgICBsZXQgb3B0aW9uID0ge1xyXG4gICAgICAnaXNHbG9iYWxBZG1pbicgOiB0aGlzLmdsb2JhbEFkbWluLmlzR2xvYmFsQWRtaW4sXHJcbiAgICAgICdhY3RpdmVUZW5hbnQnIDogdGhpcy5nbG9iYWxBZG1pbi5hY3RpdmVUZW5hbnQsXHJcbiAgICAgICd0ZW5hbnRJZCc6IHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy50ZW5hbnRJZFxyXG4gICAgfTtcclxuICAgIHRoaXMubXlEZXBhcnRtZW50ID0gdGhpcy5yb2xlc1NlcnZpY2UuZ2V0VXNlckRlcGFydG1lbnQoXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXIsXHJcbiAgICAgICdjdHNfcm9sZV8nLFxyXG4gICAgICBvcHRpb25cclxuICAgICk7XHJcbiAgICB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICB0aGlzLnNldFByZVNlbGV0ZWRJdGVtKGl0ZW0sIHRoaXMubXlEZXBhcnRtZW50KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZWxlY3QoaXRlbTogVHJlZXZpZXdJdGVtKTogdm9pZCB7XHJcbiAgICAvLyBpZiAoIWl0ZW0uY2hpbGRyZW4pIHtcclxuICAgIHRoaXMuc2VsZWN0SXRlbShpdGVtKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRJdGVtKCk6IHZvaWQge1xyXG4gICAgaWYgKCFpc05pbCh0aGlzLml0ZW1zKSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBUcmVldmlld0hlbHBlci5maW5kSXRlbUluTGlzdChcclxuICAgICAgICB0aGlzLml0ZW1zLFxyXG4gICAgICAgIHRoaXMudmFsdWVcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zZWxlY3RJdGVtKHNlbGVjdGVkSXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdEl0ZW0oaXRlbTogVHJlZXZpZXdJdGVtKTogdm9pZCB7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsaWNrKCk7XHJcbiAgICBpZiAodGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3RlZEl0ZW0gIT09IGl0ZW0pIHtcclxuICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3RlZEl0ZW0gPSBpdGVtO1xyXG4gICAgICBpZiAodGhpcy5kcm9wZG93blRyZWV2aWV3Q29tcG9uZW50KSB7XHJcbiAgICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3Q29tcG9uZW50Lm9uU2VsZWN0ZWRDaGFuZ2UoW2l0ZW1dKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICBpZiAodGhpcy50cmVldmlldykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtLnZhbHVlO1xyXG4gICAgICAgICAgLy8gdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGl0ZW0udmFsdWUudGl0bGUpO1xyXG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaXRlbS52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdE11bHRpcGxlKGUsIGl0ZW06IFRyZWV2aWV3SXRlbSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZCA9IFtdO1xyXG4gICAgdGhpcy5nZXRDaGlsZGVyblZhbHVlcyhpdGVtKTtcclxuICAgIGlmIChlKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmNvbmNhdChcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50V2l0aENoaWxkXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5maWx0ZXIoKGUpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZC5pbmRleE9mKGUpIDwgMDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3Rpb25MZW5ndGggPVxyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmxlbmd0aDtcclxuICAgIHRoaXMuZHJvcGRvd25UcmVldmlld0NvbXBvbmVudC5vblNlbGVjdGVkQ2hhbmdlKFtcclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGgsXHJcbiAgICBdKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLm11bHRpcGxlU2VsZWN0aW9uKTtcclxuICB9XHJcbiAgZ2V0Q2hpbGRlcm5WYWx1ZXMoaXRlbTogVHJlZXZpZXdJdGVtKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUGFyZW50V2l0aENoaWxkLnB1c2goaXRlbS52YWx1ZSk7XHJcbiAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xyXG4gICAgICBpdGVtLmNoaWxkcmVuLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICB0aGlzLmdldENoaWxkZXJuVmFsdWVzKGl0ZW0pO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSByZXR1cm47XHJcbiAgfVxyXG5cclxuICBvblBsdXNDbGlja2VkKGU6IE1vdXNlRXZlbnQsIGl0ZW06IFRyZWV2aWV3SXRlbSk6IHZvaWQge1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIHRoaXMucGx1c0NsaWNrZWQuZW1pdChpdGVtLnZhbHVlLnVpZCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGUgIGNsaWNrIGV2ZW50XHJcbiAgICogQHBhcmFtIGFjdGlvbiBuYW1lIG9mIGFjdGlvbiAoYWRkICwgdXBkYXRlKVxyXG4gICAqIEBwYXJhbSBpdGVtIFRyZWV2aWV3SXRlbVxyXG4gICAqL1xyXG4gIG9uQWN0aW9uKGU6IE1vdXNlRXZlbnQsIGFjdGlvbjogc3RyaW5nLCBpdGVtOiBUcmVldmlld0l0ZW0pIHtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICBpZiAoYWN0aW9uID09PSBcImFkZFwiKSB7XHJcbiAgICAgICAgLy8gZW1pdCBhY3Rpb24gdG8gb3V0c2lkZSB0byBleGVjdXRlIGZ1bmN0aW9uIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50IFxyXG4gICAgICAgIGlmKHRoaXMudXNlQ3VzdG9tQWRkRWRpdEFjdGlvbil7XHJcbiAgICAgICAgICB0aGlzLmFjdGlvbkNsaWNrZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGFjdGlvbiA6IGFjdGlvbixcclxuICAgICAgICAgICAgaXRlbSA6IGl0ZW1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5kZXBhcnRtZW50TWFuYWdtZW50XHJcbiAgICAgICAgICAgIC5vcGVuRm9ybURpYWxvZyhpdGVtLnZhbHVlLnVpZCwgZmFsc2UsIGl0ZW0udmFsdWUudGl0bGUsIGl0ZW0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlKGl0ZW0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChhY3Rpb24gPT09IFwidXBkYXRlXCIpIHtcclxuICAgICAgICBpZih0aGlzLnVzZUN1c3RvbUFkZEVkaXRBY3Rpb24pe1xyXG4gICAgICAgIC8vIGVtaXQgYWN0aW9uIHRvIG91dHNpZGUgdG8gZXhlY3V0ZSBmdW5jdGlvbiBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCBcclxuICAgICAgICAgIHRoaXMuYWN0aW9uQ2xpY2tlZC5lbWl0KHtcclxuICAgICAgICAgICAgYWN0aW9uIDogYWN0aW9uLFxyXG4gICAgICAgICAgICBpdGVtIDogaXRlbVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLmRlcGFydG1lbnRNYW5hZ21lbnRcclxuICAgICAgICAgICAgLm9wZW5Gb3JtRGlhbG9nKGl0ZW0udmFsdWUudWlkLCB0cnVlKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAvLyB0aGlzLnVwZGF0ZShpdGVtKTtcclxuICAgICAgICAgICAgICB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlLmdldERlcGFydG1lbnRUcmVlKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlLnJlY3Vyc2l2ZUZpbGwoXHJcbiAgICAgICAgICAgICAgICAgIHJlcy5lbnRyaWVzICwgXHJcbiAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCAsIFxyXG4gICAgICAgICAgICAgICAgICB1bmRlZmluZWQgLCBcclxuICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkICwgXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tUHJlZml4KTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqZHVlIHRvIHRoZSBidXNpbmVzcyByZXF1aXJlbWVudHMgd2hpY2ggc3RhdGVkIHRoYXQgbW9yZSB0aGFuIDMgbGV2ZWxzIHdpbGwgZXhpc3RlZCB0aGUgY3VycmVudCBhcGkgc3VwcG9ydCBvbmx5IDMgbGV2ZWxzIHNvICp3ZSBoYXZlIHRvIGluamVjdCAzIG5ldyBsZXZlbHMgb24gZWFjaCB0cmVlIGVuZFxyXG4gICAqIEBwYXJhbSBpdGVtIFRyZWV2aWV3SXRlbVxyXG4gICAqL1xyXG4gIG9uQ29sbGFwc2VkKGl0ZW06IFRyZWV2aWV3SXRlbSkge1xyXG4gICAgaXRlbS5jb2xsYXBzZWQgPSAhaXRlbS5jb2xsYXBzZWQ7XHJcbiAgICBpZiAoaXRlbS52YWx1ZS5sZXZlbCA9PT0gMikge1xyXG4gICAgICB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlXHJcbiAgICAgICAgLmdldERlcGFydG1lbnROZXN0ZWRUcmVlKFxyXG4gICAgICAgICAgaXRlbS52YWx1ZS50aXRsZSAsIFxyXG4gICAgICAgICAgdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSA/IHRoaXMucHBfZGVwYXJ0bWVudE5lc3RlZFRyZWUgOiAnUFBfRGVwYXJ0bWVudCcsXHJcbiAgICAgICAgICB0aGlzLmN1c3RvbVBhcmVudFByb3BlcnR5KVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW4gPSB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlLnJlY3Vyc2l2ZUZpbGwoXHJcbiAgICAgICAgICAgICAgcmVzLmVudHJpZXMgLCBcclxuICAgICAgICAgICAgICB1bmRlZmluZWQgLCBcclxuICAgICAgICAgICAgICB1bmRlZmluZWQgLCBcclxuICAgICAgICAgICAgICB1bmRlZmluZWQgLCBcclxuICAgICAgICAgICAgICB0aGlzLmN1c3RvbVByZWZpeFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnIpID0+IHt9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICpkdWUgdG8gdGhlIGJ1c2luZXNzIHJlcXVpcmVtZW50cyB3aGljaCBzdGF0ZWQgdGhhdCBtb3JlIHRoYW4gMyBsZXZlbHMgd2lsbCBleGlzdGVkIHRoZSBjdXJyZW50IGFwaSBzdXBwb3J0IG9ubHkgMyBsZXZlbHMgc28gKndlIGhhdmUgdG8gaW5qZWN0IDMgbmV3IGxldmVscyBvbiBlYWNoIHRyZWUgZW5kXHJcbiAgICogQHBhcmFtIGl0ZW0gVHJlZXZpZXdJdGVtXHJcbiAgICovXHJcbiAgdXBkYXRlKGl0ZW0pIHtcclxuICAgIHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2VcclxuICAgICAgLmdldERlcGFydG1lbnROZXN0ZWRUcmVlKFxyXG4gICAgICAgIGl0ZW0udmFsdWUudGl0bGUgLCBcclxuICAgICAgICB0aGlzLnBwX2RlcGFydG1lbnROZXN0ZWRUcmVlID8gdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSA6ICdQUF9EZXBhcnRtZW50JyxcclxuICAgICAgICB0aGlzLmN1c3RvbVBhcmVudFByb3BlcnR5KVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZS5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICBkYXRhLmVudHJpZXMsXHJcbiAgICAgICAgICAgIDAsXHJcbiAgICAgICAgICAgIHRydWUsXHJcbiAgICAgICAgICAgIHRydWUsXHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tUHJlZml4XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycikgPT4ge31cclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlXHJcbiAgI2l0ZW1UZW1wbGF0ZVxyXG4gIGxldC1pdGVtPVwiaXRlbVwiXHJcbiAgbGV0LW9uQ29sbGFwc2VFeHBhbmQ9XCJvbkNvbGxhcHNlRXhwYW5kXCJcclxuICBsZXQtb25DaGVja2VkQ2hhbmdlPVwib25DaGVja2VkQ2hhbmdlXCJcclxuPlxyXG4gIDwhLS0gc2luZ2xlIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCIhdHJlZXZpZXcgJiYgIW11bHRpcGxlXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwidGV4dC1ub3dyYXAgcm93LWl0ZW1cIlxyXG4gICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaXRlbS52YWx1ZSA9PT0gdGhpcy52YWx1ZSB9XCJcclxuICAgID5cclxuICAgICAgPGlcclxuICAgICAgICAqbmdJZj1cIml0ZW0uY2hpbGRyZW5cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNvbGxhcHNlRXhwYW5kKClcIlxyXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgW25nU3dpdGNoXT1cIml0ZW0uY29sbGFwc2VkXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LXt7IGFyYWJpYyA/ICdsZWZ0JyA6ICdyaWdodCcgfX0tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgY2xhc3M9XCJiaSBiaS1jYXJldC1kb3duLWZpbGwgY2FyZXQtaWNvblwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgPC9pPlxyXG4gICAgICA8IS0tIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCI+e3tcclxuICAgICAgICBpdGVtLnRleHRcclxuICAgICAgfX08L2xhYmVsPiAtLT5cclxuICAgICAgPGxhYmVsICpuZ0lmPVwiaXRlbS5kaXNhYmxlZFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPnt7XHJcbiAgICAgICAgaXRlbS50ZXh0XHJcbiAgICAgIH19PC9sYWJlbD5cclxuICAgICAgPGxhYmVsICpuZ0lmPVwiIWl0ZW0uZGlzYWJsZWRcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCI+e3tcclxuICAgICAgICBpdGVtLnRleHRcclxuICAgICAgfX08L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLSBNdWx0aXBsZSAtLT5cclxuICA8ZGl2ICpuZ0lmPVwiIXRyZWV2aWV3ICYmIG11bHRpcGxlXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwidGV4dC1ub3dyYXAgcm93LWl0ZW1cIlxyXG4gICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaXRlbS52YWx1ZSA9PT0gdGhpcy52YWx1ZSB9XCJcclxuICAgID5cclxuICAgICAgPGlcclxuICAgICAgICAqbmdJZj1cIml0ZW0uY2hpbGRyZW5cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNvbGxhcHNlRXhwYW5kKClcIlxyXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgW25nU3dpdGNoXT1cIml0ZW0uY29sbGFwc2VkXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LXt7IGFyYWJpYyA/ICdsZWZ0JyA6ICdyaWdodCcgfX0tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgY2xhc3M9XCJiaSBiaS1jYXJldC1kb3duLWZpbGwgY2FyZXQtaWNvblwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgPC9pPlxyXG4gICAgICA8IS0tIDxpbnB1dFxyXG4gICAgICAgIGNsYXNzPVwibXVsdGlwbGUtY2hlY2tCb3hcIlxyXG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgW2NoZWNrZWRdPVwibXVsdGlwbGVTZWxlY3Rpb24uaW5jbHVkZXMoaXRlbS52YWx1ZSlcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwic2VsZWN0TXVsdGlwbGUoJGV2ZW50LnRhcmdldC5jaGVja2VkLCBpdGVtKVwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+e3sgaXRlbS50ZXh0IH19PC9sYWJlbD4gLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aXBsZS10cmVldmlld1wiPlxyXG4gICAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICAgIFtjaGVja2VkXT1cIm11bHRpcGxlU2VsZWN0aW9uLmluY2x1ZGVzKGl0ZW0udmFsdWUpXCJcclxuICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0TXVsdGlwbGUoJGV2ZW50LmNoZWNrZWQsIGl0ZW0pXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3Bhbj4ge3sgaXRlbS50ZXh0IH19IDwvc3Bhbj5cclxuICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8IS0tIHRyZWVWaWV3IC0tPlxyXG4gIDxkaXYgKm5nSWY9XCJ0cmVldmlldyAmJiAhdHJlZVZpZXdBc0Zvcm1Db250cm9sXCIgY2xhc3M9XCJ0cmVlLXZpZXctY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIChtb3VzZWVudGVyKT1cImhvdmVyRmllbGQuc3R5bGUuZGlzcGxheSA9ICdmbGV4J1wiXHJcbiAgICAgIChtb3VzZWxlYXZlKT1cImhvdmVyRmllbGQuc3R5bGUuZGlzcGxheSA9ICdub25lJ1wiXHJcbiAgICAgIGNsYXNzPVwidGV4dC1ub3dyYXAgcm93LWl0ZW0gdHJlZXZpZXctcm93XCJcclxuICAgICAgW25nQ2xhc3NdPVwieyBzZWxlY3RlZDogaXRlbS52YWx1ZSA9PSBzZWxlY3RlZEl0ZW0gfVwiXHJcbiAgICA+XHJcbiAgICAgIDxpXHJcbiAgICAgICAgKm5nSWY9XCJpdGVtLmNoaWxkcmVuXCJcclxuICAgICAgICAoY2xpY2spPVwib25Db2xsYXBzZWQoaXRlbSlcIlxyXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgW25nU3dpdGNoXT1cIml0ZW0uY29sbGFwc2VkXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LXt7IGFyYWJpYyA/ICdsZWZ0JyA6ICdyaWdodCcgfX0tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICA+PC9zcGFuPlxyXG5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQtZG93bi1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgID48L3NwYW4+XHJcbiAgICAgIDwvaT5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbC10cmVldmlld1wiIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIlxyXG4gICAgICAgID57eyBpdGVtLnRleHQgfX1cclxuICAgICAgICA8c3BhbiAjaG92ZXJGaWVsZCBjbGFzcz1cImhvdmVyRmllbGRcIj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ2RlcGFydG1lbnRfbWFuYWdlbWVudC5mb3JtLmVkaXQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uKCRldmVudCwgJ3VwZGF0ZScsIGl0ZW0pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGxpIGNsYXNzPVwiYmkgYmktcGVuY2lsXCI+PC9saT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7XHJcbiAgICAgICAgICAgICAgJ2RlcGFydG1lbnRfbWFuYWdlbWVudC5mb3JtLnRvb2xUaXBfbWVzc2FnZScgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25BY3Rpb24oJGV2ZW50LCAnYWRkJywgaXRlbSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJiaSBiaS1wbHVzXCI+PC9saT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICAgIDwhLS0gdHJlZVZpZXcgYXMgZm9ybSBjb250cm9sIC0tPlxyXG4gICAgPGRpdiAqbmdJZj1cInRyZWV2aWV3ICYmIHRyZWVWaWV3QXNGb3JtQ29udHJvbFwiIGNsYXNzPVwidHJlZS12aWV3LWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LW5vd3JhcCByb3ctaXRlbSB0cmVldmlldy1yb3ctZm9ybS1jb250cm9sXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7ICdzZWxlY3RlZC1mb3JtLWNvbnRyb2wnOiBpdGVtLnZhbHVlID09IHNlbGVjdGVkSXRlbSB9XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpXHJcbiAgICAgICAgICAqbmdJZj1cIml0ZW0uY2hpbGRyZW5cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ29sbGFwc2VkKGl0ZW0pXCJcclxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbbmdTd2l0Y2hdPVwiaXRlbS5jb2xsYXBzZWRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1jYXJldC17eyBhcmFiaWMgPyAnbGVmdCcgOiAncmlnaHQnIH19LWZpbGwgY2FyZXQtaWNvblwiXHJcbiAgICAgICAgICA+PC9zcGFuPlxyXG4gIFxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1jYXJldC1kb3duLWZpbGwgY2FyZXQtaWNvblwiXHJcbiAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgIDwvaT5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsLXRyZWV2aWV3XCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiXHJcbiAgICAgICAgICA+e3sgaXRlbS50ZXh0IH19XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlXHJcbiAgI2hlYWRlclRlbXBsYXRlXHJcbiAgbGV0LWNvbmZpZz1cImNvbmZpZ1wiXHJcbiAgbGV0LWl0ZW09XCJpdGVtXCJcclxuICBsZXQtb25Db2xsYXBzZUV4cGFuZD1cIm9uQ29sbGFwc2VFeHBhbmRcIlxyXG4gIGxldC1vbkNoZWNrZWRDaGFuZ2U9XCJvbkNoZWNrZWRDaGFuZ2VcIlxyXG4gIGxldC1vbkZpbHRlclRleHRDaGFuZ2U9XCJvbkZpbHRlclRleHRDaGFuZ2VcIlxyXG4+XHJcbiAgPGRpdiAqbmdJZj1cImNvbmZpZy5oYXNGaWx0ZXJcIiBjbGFzcz1cInJvdyByb3ctZmlsdGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImkxOG4uZ2V0RmlsdGVyUGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlclRleHRcIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRmlsdGVyVGV4dENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJjb25maWcuaGFzQWxsQ2hlY2tCb3ggfHwgY29uZmlnLmhhc0NvbGxhcHNlRXhwYW5kXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgPGxhYmVsICpuZ0lmPVwiY29uZmlnLmhhc0FsbENoZWNrQm94XCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiPlxyXG4gICAgICAgIDxzdHJvbmc+e3sgaTE4bi5nZXRBbGxDaGVja2JveFRleHQoKSB9fTwvc3Ryb25nPlxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgICA8bGFiZWxcclxuICAgICAgICAqbmdJZj1cImNvbmZpZy5oYXNDb2xsYXBzZUV4cGFuZFwiXHJcbiAgICAgICAgY2xhc3M9XCJmbG9hdC1yaWdodFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ29sbGFwc2VFeHBhbmQoKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8aVxyXG4gICAgICAgICAgW3RpdGxlXT1cImkxOG4uZ2V0VG9vbHRpcENvbGxhcHNlRXhwYW5kVGV4dChpdGVtLmNvbGxhcHNlZClcIlxyXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgIFtuZ1N3aXRjaF09XCJpdGVtLmNvbGxhcHNlZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cInRydWVcIiBjbGFzcz1cImJpIGJpLWFycm93cy1hbmdsZS1leHBhbmRcIj48L3NwYW4+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJpIGJpLWFycm93cy1hbmdsZS1jb250cmFjdFwiXHJcbiAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgIDwvaT5cclxuICAgICAgPC9sYWJlbD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxhICpuZ0lmPVwiZGVmYXVsdFNlbGVjdFwiIGNsYXNzPVwic2VsZWN0LWRlZmF1bHRcIiAoY2xpY2spPVwic2VsZWN0RGVmYXVsdCgpXCI+e3snZGVwYXJ0bWVudF9tYW5hZ2VtZW50LnNlbGVjdERlZmF1bHQnfCB0cmFuc2xhdGV9fTwvYT5cclxuICA8ZGl2ICpuZ0lmPVwiY29uZmlnLmhhc0RpdmlkZXJcIiBjbGFzcz1cImRyb3Bkb3duLWRpdmlkZXJcIiBbbmdDbGFzc109XCJ7J2Ryb3Bkb3duLWRpdmlkZXItbm9NYXJnaW4nOiBkZWZhdWx0U2VsZWN0fVwiPjwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0cmVldmlldyAmJiAhbXVsdGlwbGVcIj5cclxuICA8bmd4LWRyb3Bkb3duLXRyZWV2aWV3XHJcbiAgICBbY29uZmlnXT1cImNvbmZpZ1wiXHJcbiAgICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgW2l0ZW1zXT1cIml0ZW1zXCJcclxuICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcclxuICA+XHJcbiAgPC9uZ3gtZHJvcGRvd24tdHJlZXZpZXdcclxuPjwvbmctY29udGFpbmVyPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiIXRyZWV2aWV3ICYmIG11bHRpcGxlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIm11bHRpcGxlLXRyZWUtdmlld1wiPlxyXG4gICAgPG5neC1kcm9wZG93bi10cmVldmlld1xyXG4gICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXHJcbiAgICAgIFtpdGVtc109XCJpdGVtc1wiXHJcbiAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcclxuICAgID5cclxuICAgIDwvbmd4LWRyb3Bkb3duLXRyZWV2aWV3PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyZWV2aWV3ICYmICF0cmVlVmlld0FzRm9ybUNvbnRyb2xcIj5cclxuICA8ZGl2IGNsYXNzPVwidHJlZS12aWV3XCI+XHJcbiAgICA8bmd4LXRyZWV2aWV3XHJcbiAgICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgICAgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCJcclxuICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcclxuICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxyXG4gICAgPlxyXG4gICAgPC9uZ3gtdHJlZXZpZXc+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwidHJlZXZpZXcgJiYgdHJlZVZpZXdBc0Zvcm1Db250cm9sXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRyZWUtdmlldy1mb3JtLWNvbnRyb2xcIj5cclxuICAgIDxuZ3gtdHJlZXZpZXdcclxuICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxyXG4gICAgICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICBbaXRlbXNdPVwiaXRlbXNcIlxyXG4gICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICA+XHJcbiAgICA8L25neC10cmVldmlldz5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
325
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC9kcm9wZG93bi10cmVldmlldy1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0L2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBRVQsaUJBQWlCLEdBR2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUNMLFlBQVksRUFFWixjQUFjLEVBQ2QseUJBQXlCLEVBQ3pCLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBSTdFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQVFILE1BQU0sT0FBTyx1QkFBdUI7SUFpRGxDLGlFQUFpRTtJQUVqRSxZQUNTLElBQWtCLEVBQ2pCLFdB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LGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQztpQkFDN0U7d1NBVUMsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLHFCQUFxQjtzQkFEcEIsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFRSxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFFRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUssWUFBWTtzQkFBcEIsS0FBSztnQkFFQyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLHlCQUF5QjtzQkFBbEMsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVQLHlCQUF5QjtzQkFEeEIsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBpc05pbCB9IGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHtcclxuICBUcmVldmlld0kxOG4sXHJcbiAgVHJlZXZpZXdJdGVtLFxyXG4gIFRyZWV2aWV3Q29uZmlnLFxyXG4gIERyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQsXHJcbiAgVHJlZXZpZXdIZWxwZXIsXHJcbn0gZnJvbSBcIm5neC10cmVldmlld1wiO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEZXBhcnRtZW50TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tIFwiLi4vZHluYW1pYy1mb3JtLWRlcGFydG1lbnQvc2VydmljZXMvZGVwYXJ0bWVudC1tYW5hZ2VtZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVwYXJ0bWVudEFwaVNlcnZpY2UgfSBmcm9tIFwiLi4vZHluYW1pYy1mb3JtLWRlcGFydG1lbnQvc2VydmljZXMvZGVwYXJ0bWVudC1hcGkuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEcm9wZG93blRyZWV2aWV3U2VsZWN0STE4biB9IGZyb20gXCIuL2Ryb3Bkb3duLXRyZWV2aWV3LXNlbGVjdC1pMThuXCI7XHJcbmltcG9ydCB7IFJvbGVzU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3JvbGVzL3JvbGVzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBHbG9iYWxBZG1pblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2hhcmVkLXNlcnZpY2VzL2dsb2JhbC1hZG1pbi5zZXJ2aWNlXCI7XHJcbi8qKlxyXG4gKiBBIHRyZWUgdmlldyBzZWxlY3RvciBjb21wb25lbnQgdGhhdCBjYW4gYmUgdXNlZCBpbiByZWFjdGl2ZSBhbmQgdGVtcGxhdGUgZHJpdmVuIGZvcm1zLFxyXG4gKiBpdCBjYW4gYmUgYSBmbGF0IHRyZWUgb3IgYSBkcm9wZG93blxyXG4gKiBAdGl0bGVcclxuICogVHJlZSB2aWV3IHNlbGVjdG9yXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIDxhcHAtZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdFxyXG4gKiBbdHJlZXZpZXddPVwiZmFsc2VcIlxyXG4gKiBbbXVsdGlwbGVdPVwiZmFsc2VcIlxyXG4gKiBbaXRlbXNdPVwiaXRlbXNUcmVlXCJcclxuICogKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAqIFsodmFsdWUpXT1cInNlbGVjdGVkVmFsdWVcIlxyXG4gKiA+XHJcbiAqIDwvYXBwLWR5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3Q+XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0LmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBUcmVldmlld0kxOG4sIHVzZUNsYXNzOiBEcm9wZG93blRyZWV2aWV3U2VsZWN0STE4biB9XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyZWV2aWV3U2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgbXVsdGlwbGVTZWxlY3Rpb24gPSBbXTtcclxuICBzZWxlY3RlZEl0ZW07XHJcbiAgc2VsZWN0ZWRQYXJlbnRXaXRoQ2hpbGQgPSBbXTtcclxuICBzaG93UGx1cyA9IGZhbHNlO1xyXG4gIHByZVNlbGVjdGVkID0gW107XHJcbiAgbXlEZXBhcnRtZW50OiBhbnk7XHJcbiAgLyoqIGlzIHRyZWUgVmlldyBvciBkcm9wZG93biB2aWV3ICovXHJcbiAgQElucHV0KClcclxuICB0cmVldmlldyA9IGZhbHNlO1xyXG4gIC8qKiB1c2UgdHJlZSB2aWV3IGluc2lkZSBmb3JtICovXHJcbiAgQElucHV0KClcclxuICB0cmVlVmlld0FzRm9ybUNvbnRyb2wgPSBmYWxzZTtcclxuICAvKiogQ29uZmlnIG9iamVjdCAqL1xyXG4gIEBJbnB1dCgpIGNvbmZpZzogVHJlZXZpZXdDb25maWc7XHJcbiAgLyoqIEl0ZW1zIHRyZWUgKi9cclxuICBASW5wdXQoKSBpdGVtczogVHJlZXZpZXdJdGVtW107XHJcbiAgLyoqIFNlbGVjdGVkIHZhbHVlICovXHJcbiAgQElucHV0KCkgdmFsdWU6IGFueTtcclxuICAvKiogY2FuIHNlbGVjdCBtdWx0aXBsZSAqL1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqIGV2ZW50IGVtaXR0ZWQgb24gdmFsdWUgY2hhbmdlICovXHJcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLyoqIGV2ZW50IGVtaXR0ZWQgb24gcGx1cyBidXR0b24gY2xpY2tlZCAoZm9yIGRlcGFydG1lbnQgbWFuYWdlbWVudCkgKi9cclxuICBAT3V0cHV0KCkgcGx1c0NsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvKiogZXZlbnQgZW1pdHRlZCBvbiBwbHVzIGJ1dHRvbiBjbGlja2VkIChmb3IgZGVwYXJ0bWVudCBtYW5hZ2VtZW50KSAqL1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRTZWxlY3QgPSBmYWxzZTtcclxuLyoqIGN1c3RvbSBwYWdlIHByb3ZpZGVyIHRvIGdldCBkZXBhcnRtZW50IG5lc3RlZCB0cmVlIGZyb20gaXQgY2FuIGJlIHBhc3NlZCBmcm9tIG91dHNpZGUgb3Igbm90IHBhc3NlZCBhbmQgdXNlIHRoZSBkZWZ1bHRlIHZhbHVlICovXHJcbiAgQElucHV0KCkgcHBfZGVwYXJ0bWVudE5lc3RlZFRyZWU7IFxyXG4gIC8qKiB1c2Ugb3V0c2lkZSBjdXN0b20gZnVuY3Rpb24gaW5zdGVhZCBvZiB0aGUgaW5lciBmdW5jdGlvbiAgKi9cclxuICBASW5wdXQoKSB1c2VDdXN0b21BZGRFZGl0QWN0aW9uID0gZmFsc2U7XHJcbiAgICAvKiogY3VzdG9tIHByZWZpeCB0byBiZSB1c2VkIGZvciBhZGFwdGluZyBkYXRhIGNvbWluZyBmcm9tIGFwaSAqL1xyXG4gICAgQElucHV0KCkgY3VzdG9tUHJlZml4O1xyXG4gIC8qKiBjdXN0b20gcGFyZW50IHByb3BlcnR5IG5hbWUgdG8gYmUgcGFzc2VkIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgY3VzdG9tUGFyZW50UHJvcGVydHk7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI7XHJcbiAgLyoqIGRpc3BsYXkgaW5wdXQgRGVwVHlwZWUgaW4gYWRkIGRpYWxvZyBvZiBkZXBhcnRlbWVudCAqL1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlEZXBUeXBlZTtcclxuICBASW5wdXQgKCkgZGlzcGxheUlzQWxsb3dSZWNFeHRlcm5hbDtcclxuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoRHJvcGRvd25UcmVldmlld0NvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgZHJvcGRvd25UcmVldmlld0NvbXBvbmVudDogRHJvcGRvd25UcmVldmlld0NvbXBvbmVudDtcclxuICBmaWx0ZXJUZXh0OiBzdHJpbmc7XHJcbiAgYXJhYmljID0gZmFsc2U7XHJcbiAgbGFuZ3VhZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBvbkRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcbiAgcHJpdmF0ZSBkcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bjogRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG47XHJcblxyXG4gIC8vIHRoaXMgY29tcG9uZW50IGlzIHVzZWQgaW4gdHdvIHBsYWNlcyB0aGUgZmxhZyBpcyB0aGlzLnRyZWV2aWV3XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGkxOG46IFRyZWV2aWV3STE4bixcclxuICAgIHByaXZhdGUgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGVwYXJ0bWVudEFwaVNlcnZpY2U6IERlcGFydG1lbnRBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkZXBhcnRtZW50TWFuYWdtZW50OiBEZXBhcnRtZW50TWFuYWdlbWVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvbGVzU2VydmljZTogUm9sZXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSxcclxuICAgIHByaXZhdGUgZ2xvYmFsQWRtaW4gOiBHbG9iYWxBZG1pblNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuY29uZmlnID0gVHJlZXZpZXdDb25maWcuY3JlYXRlKHtcclxuICAgICAgaGFzQWxsQ2hlY2tCb3g6IGZhbHNlLFxyXG4gICAgICBoYXNDb2xsYXBzZUV4cGFuZDogZmFsc2UsXHJcbiAgICAgIGhhc0ZpbHRlcjogdHJ1ZSxcclxuICAgICAgbWF4SGVpZ2h0OiAyMDAsXHJcbiAgICAgIGRlY291cGxlQ2hpbGRGcm9tUGFyZW50OiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuID0gaTE4biBhcyBEcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bjtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy50cmFuc2xhdGlvbi5pc0FyYWJpY1xyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hcmFiaWMgPSByZXM7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXRlbXMgJiYgdGhpcy50cmVldmlldykge1xyXG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkSXRlbSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnRyZWV2aWV3ICYmICF0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIC8vIHRoaXMuIGZ1bmN0aW9uIGlzIHRvIHNldCB1aSB3aXRoIHByZSBzZWxlY3RlZCB2YWx1ZVxyXG4gICAgICAvLyBkZWxheSB0byBtYWtlIHN1cmUgdGhhdCBwYWdlIGdldCB0aGUgdmFsdWUgYW5kIHNlbmQgaXQgdG8gaGVyZVxyXG4gICAgICAvLyB3ZSB1c2UgdGhlIHZhbHVlIHNlbnQgdG8gaGVyZSBhbmQgc2VhcmNoIGZvciBpdHMgaXRlbSBvbiBvdXIgaXRlbXMgYW5kIHNldCBpdCBhcyB0aGUgc2VsZWN0ZWQgaXRlbVxyXG4gICAgICB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0UHJlU2VsZXRlZEl0ZW0oaXRlbSwgdGhpcy52YWx1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy50cmVldmlldyAmJlxyXG4gICAgICB0aGlzLm11bHRpcGxlICYmXHJcbiAgICAgIHRoaXMudmFsdWUgJiZcclxuICAgICAgdGhpcy52YWx1ZS5sZW5ndGggPiAwXHJcbiAgICApIHtcclxuICAgICAgLy8gdGhpcy5wcmVTZWxlY3RlZCA9IHRoaXMudmFsdWU7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSB0aGlzLnZhbHVlO1xyXG4gICAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuLnNlbGVjdGlvbkxlbmd0aCA9XHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGg7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25UcmVldmlld0NvbXBvbmVudC5vblNlbGVjdGVkQ2hhbmdlKFtcclxuICAgICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmxlbmd0aCxcclxuICAgICAgXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQcmVTZWxldGVkSXRlbShpdGVtLCBjb21wYXJlV2l0aFZhbHVlKSB7XHJcbiAgICBpZiAoKGl0ZW0udmFsdWUgPT09IGNvbXBhcmVXaXRoVmFsdWUpIHx8IChpdGVtLnZhbHVlLnRpdGxlID09PSBjb21wYXJlV2l0aFZhbHVlKSkge1xyXG4gICAgICB0aGlzLnNlbGVjdChpdGVtKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGl0ZW0uaW50ZXJuYWxDaGlsZHJlbikge1xyXG4gICAgICAgIGl0ZW0uaW50ZXJuYWxDaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldFByZVNlbGV0ZWRJdGVtKGNoaWxkLCBjb21wYXJlV2l0aFZhbHVlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgc2VsZWN0RGVmYXVsdCgpIHtcclxuICAgIGxldCBvcHRpb24gPSB7XHJcbiAgICAgICdpc0dsb2JhbEFkbWluJyA6IHRoaXMuZ2xvYmFsQWRtaW4uaXNHbG9iYWxBZG1pbixcclxuICAgICAgJ2FjdGl2ZVRlbmFudCcgOiB0aGlzLmdsb2JhbEFkbWluLmFjdGl2ZVRlbmFudCxcclxuICAgICAgJ3RlbmFudElkJzogdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlci5wcm9wZXJ0aWVzLnRlbmFudElkXHJcbiAgICB9O1xyXG4gICAgdGhpcy5teURlcGFydG1lbnQgPSB0aGlzLnJvbGVzU2VydmljZS5nZXRVc2VyRGVwYXJ0bWVudChcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcixcclxuICAgICAgJ2N0c19yb2xlXycsXHJcbiAgICAgIG9wdGlvblxyXG4gICAgKTtcclxuICAgIHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0UHJlU2VsZXRlZEl0ZW0oaXRlbSwgdGhpcy5teURlcGFydG1lbnQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNlbGVjdChpdGVtOiBUcmVldmlld0l0ZW0pOiB2b2lkIHtcclxuICAgIC8vIGlmICghaXRlbS5jaGlsZHJlbikge1xyXG4gICAgdGhpcy5zZWxlY3RJdGVtKGl0ZW0pO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZEl0ZW0oKTogdm9pZCB7XHJcbiAgICBpZiAoIWlzTmlsKHRoaXMuaXRlbXMpKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IFRyZWV2aWV3SGVscGVyLmZpbmRJdGVtSW5MaXN0KFxyXG4gICAgICAgIHRoaXMuaXRlbXMsXHJcbiAgICAgICAgdGhpcy52YWx1ZVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnNlbGVjdEl0ZW0oc2VsZWN0ZWRJdGVtKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2VsZWN0SXRlbShpdGVtOiBUcmVldmlld0l0ZW0pOiB2b2lkIHtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xpY2soKTtcclxuICAgIGlmICh0aGlzLmRyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuLnNlbGVjdGVkSXRlbSAhPT0gaXRlbSkge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuLnNlbGVjdGVkSXRlbSA9IGl0ZW07XHJcbiAgICAgIGlmICh0aGlzLmRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQpIHtcclxuICAgICAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQub25TZWxlY3RlZENoYW5nZShbaXRlbV0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgIGlmICh0aGlzLnRyZWV2aWV3KSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgICAvLyB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaXRlbS52YWx1ZS50aXRsZSk7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChpdGVtLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgc2VsZWN0TXVsdGlwbGUoZSwgaXRlbTogVHJlZXZpZXdJdGVtKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUGFyZW50V2l0aENoaWxkID0gW107XHJcbiAgICB0aGlzLmdldENoaWxkZXJuVmFsdWVzKGl0ZW0pO1xyXG4gICAgaWYgKGUpIHtcclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbiA9IHRoaXMubXVsdGlwbGVTZWxlY3Rpb24uY29uY2F0KFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQYXJlbnRXaXRoQ2hpbGRcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmZpbHRlcigoZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUGFyZW50V2l0aENoaWxkLmluZGV4T2YoZSkgPCAwO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuLnNlbGVjdGlvbkxlbmd0aCA9XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoO1xyXG4gICAgdGhpcy5kcm9wZG93blRyZWV2aWV3Q29tcG9uZW50Lm9uU2VsZWN0ZWRDaGFuZ2UoW1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmxlbmd0aCxcclxuICAgIF0pO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMubXVsdGlwbGVTZWxlY3Rpb24pO1xyXG4gIH1cclxuICBnZXRDaGlsZGVyblZhbHVlcyhpdGVtOiBUcmVldmlld0l0ZW0pIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRQYXJlbnRXaXRoQ2hpbGQucHVzaChpdGVtLnZhbHVlKTtcclxuICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XHJcbiAgICAgIGl0ZW0uY2hpbGRyZW4uZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2V0Q2hpbGRlcm5WYWx1ZXMoaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHJldHVybjtcclxuICB9XHJcblxyXG4gIG9uUGx1c0NsaWNrZWQoZTogTW91c2VFdmVudCwgaXRlbTogVHJlZXZpZXdJdGVtKTogdm9pZCB7XHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgdGhpcy5wbHVzQ2xpY2tlZC5lbWl0KGl0ZW0udmFsdWUudWlkKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZSAgY2xpY2sgZXZlbnRcclxuICAgKiBAcGFyYW0gYWN0aW9uIG5hbWUgb2YgYWN0aW9uIChhZGQgLCB1cGRhdGUpXHJcbiAgICogQHBhcmFtIGl0ZW0gVHJlZXZpZXdJdGVtXHJcbiAgICovXHJcbiAgb25BY3Rpb24oZTogTW91c2VFdmVudCwgYWN0aW9uOiBzdHJpbmcsIGl0ZW06IFRyZWV2aWV3SXRlbSkge1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIGlmIChhY3Rpb24gPT09IFwiYWRkXCIpIHtcclxuICAgICAgICAvLyBlbWl0IGFjdGlvbiB0byBvdXRzaWRlIHRvIGV4ZWN1dGUgZnVuY3Rpb24gZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQgXHJcbiAgICAgICAgaWYodGhpcy51c2VDdXN0b21BZGRFZGl0QWN0aW9uKXtcclxuICAgICAgICAgIHRoaXMuYWN0aW9uQ2xpY2tlZC5lbWl0KHtcclxuICAgICAgICAgICAgYWN0aW9uIDogYWN0aW9uLFxyXG4gICAgICAgICAgICBpdGVtIDogaXRlbVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLmRlcGFydG1lbnRNYW5hZ21lbnRcclxuICAgICAgICAgICAgLm9wZW5Gb3JtRGlhbG9nKGl0ZW0udmFsdWUudWlkLCBmYWxzZSx0aGlzLmRpc3BsYXlJc0FsbG93UmVjRXh0ZXJuYWwsdGhpcy5kaXNwbGF5RGVwVHlwZWUsIGl0ZW0udmFsdWUudGl0bGUsIGl0ZW0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlKGl0ZW0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChhY3Rpb24gPT09IFwidXBkYXRlXCIpIHtcclxuICAgICAgICBpZih0aGlzLnVzZUN1c3RvbUFkZEVkaXRBY3Rpb24pe1xyXG4gICAgICAgIC8vIGVtaXQgYWN0aW9uIHRvIG91dHNpZGUgdG8gZXhlY3V0ZSBmdW5jdGlvbiBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCBcclxuICAgICAgICAgIHRoaXMuYWN0aW9uQ2xpY2tlZC5lbWl0KHtcclxuICAgICAgICAgICAgYWN0aW9uIDogYWN0aW9uLFxyXG4gICAgICAgICAgICBpdGVtIDogaXRlbVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLmRlcGFydG1lbnRNYW5hZ21lbnRcclxuICAgICAgICAgICAgLm9wZW5Gb3JtRGlhbG9nKGl0ZW0udmFsdWUudWlkLCB0cnVlLHRoaXMuZGlzcGxheUlzQWxsb3dSZWNFeHRlcm5hbCx0aGlzLmRpc3BsYXlEZXBUeXBlZSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgLy8gdGhpcy51cGRhdGUoaXRlbSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZS5nZXREZXBhcnRtZW50VHJlZSgpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZS5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICAgICAgICByZXMuZW50cmllcyAsIFxyXG4gICAgICAgICAgICAgICAgICB1bmRlZmluZWQgLCBcclxuICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkICwgXHJcbiAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCAsIFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbVByZWZpeCk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKmR1ZSB0byB0aGUgYnVzaW5lc3MgcmVxdWlyZW1lbnRzIHdoaWNoIHN0YXRlZCB0aGF0IG1vcmUgdGhhbiAzIGxldmVscyB3aWxsIGV4aXN0ZWQgdGhlIGN1cnJlbnQgYXBpIHN1cHBvcnQgb25seSAzIGxldmVscyBzbyAqd2UgaGF2ZSB0byBpbmplY3QgMyBuZXcgbGV2ZWxzIG9uIGVhY2ggdHJlZSBlbmRcclxuICAgKiBAcGFyYW0gaXRlbSBUcmVldmlld0l0ZW1cclxuICAgKi9cclxuICBvbkNvbGxhcHNlZChpdGVtOiBUcmVldmlld0l0ZW0pIHtcclxuICAgIGl0ZW0uY29sbGFwc2VkID0gIWl0ZW0uY29sbGFwc2VkO1xyXG4gICAgaWYgKGl0ZW0udmFsdWUubGV2ZWwgPT09IDIpIHtcclxuICAgICAgdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZVxyXG4gICAgICAgIC5nZXREZXBhcnRtZW50TmVzdGVkVHJlZShcclxuICAgICAgICAgIGl0ZW0udmFsdWUudGl0bGUgLCBcclxuICAgICAgICAgIHRoaXMucHBfZGVwYXJ0bWVudE5lc3RlZFRyZWUgPyB0aGlzLnBwX2RlcGFydG1lbnROZXN0ZWRUcmVlIDogJ1BQX0RlcGFydG1lbnQnLFxyXG4gICAgICAgICAgdGhpcy5jdXN0b21QYXJlbnRQcm9wZXJ0eSlcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZS5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICAgIHJlcy5lbnRyaWVzICwgXHJcbiAgICAgICAgICAgICAgdW5kZWZpbmVkICwgXHJcbiAgICAgICAgICAgICAgdW5kZWZpbmVkICwgXHJcbiAgICAgICAgICAgICAgdW5kZWZpbmVkICwgXHJcbiAgICAgICAgICAgICAgdGhpcy5jdXN0b21QcmVmaXhcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAoZXJyKSA9PiB7fVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqZHVlIHRvIHRoZSBidXNpbmVzcyByZXF1aXJlbWVudHMgd2hpY2ggc3RhdGVkIHRoYXQgbW9yZSB0aGFuIDMgbGV2ZWxzIHdpbGwgZXhpc3RlZCB0aGUgY3VycmVudCBhcGkgc3VwcG9ydCBvbmx5IDMgbGV2ZWxzIHNvICp3ZSBoYXZlIHRvIGluamVjdCAzIG5ldyBsZXZlbHMgb24gZWFjaCB0cmVlIGVuZFxyXG4gICAqIEBwYXJhbSBpdGVtIFRyZWV2aWV3SXRlbVxyXG4gICAqL1xyXG4gIHVwZGF0ZShpdGVtKSB7XHJcbiAgICB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlXHJcbiAgICAgIC5nZXREZXBhcnRtZW50TmVzdGVkVHJlZShcclxuICAgICAgICBpdGVtLnZhbHVlLnRpdGxlICwgXHJcbiAgICAgICAgdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSA/IHRoaXMucHBfZGVwYXJ0bWVudE5lc3RlZFRyZWUgOiAnUFBfRGVwYXJ0bWVudCcsXHJcbiAgICAgICAgdGhpcy5jdXN0b21QYXJlbnRQcm9wZXJ0eSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2UucmVjdXJzaXZlRmlsbChcclxuICAgICAgICAgICAgZGF0YS5lbnRyaWVzLFxyXG4gICAgICAgICAgICAwLFxyXG4gICAgICAgICAgICB0cnVlLFxyXG4gICAgICAgICAgICB0cnVlLFxyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbVByZWZpeFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHt9XHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZVxyXG4gICNpdGVtVGVtcGxhdGVcclxuICBsZXQtaXRlbT1cIml0ZW1cIlxyXG4gIGxldC1vbkNvbGxhcHNlRXhwYW5kPVwib25Db2xsYXBzZUV4cGFuZFwiXHJcbiAgbGV0LW9uQ2hlY2tlZENoYW5nZT1cIm9uQ2hlY2tlZENoYW5nZVwiXHJcbj5cclxuICA8IS0tIHNpbmdsZSAtLT5cclxuICA8ZGl2ICpuZ0lmPVwiIXRyZWV2aWV3ICYmICFtdWx0aXBsZVwiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInRleHQtbm93cmFwIHJvdy1pdGVtXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGl0ZW0udmFsdWUgPT09IHRoaXMudmFsdWUgfVwiXHJcbiAgICA+XHJcbiAgICAgIDxpXHJcbiAgICAgICAgKm5nSWY9XCJpdGVtLmNoaWxkcmVuXCJcclxuICAgICAgICAoY2xpY2spPVwib25Db2xsYXBzZUV4cGFuZCgpXCJcclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgIFtuZ1N3aXRjaF09XCJpdGVtLmNvbGxhcHNlZFwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cInRydWVcIlxyXG4gICAgICAgICAgY2xhc3M9XCJiaSBiaS1jYXJldC17eyBhcmFiaWMgPyAnbGVmdCcgOiAncmlnaHQnIH19LWZpbGwgY2FyZXQtaWNvblwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQtZG93bi1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgID48L3NwYW4+XHJcbiAgICAgIDwvaT5cclxuICAgICAgPCEtLSA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiPnt7XHJcbiAgICAgICAgaXRlbS50ZXh0XHJcbiAgICAgIH19PC9sYWJlbD4gLS0+XHJcbiAgICAgIDxsYWJlbCAqbmdJZj1cIml0ZW0uZGlzYWJsZWRcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj57e1xyXG4gICAgICAgIGl0ZW0udGV4dFxyXG4gICAgICB9fTwvbGFiZWw+XHJcbiAgICAgIDxsYWJlbCAqbmdJZj1cIiFpdGVtLmRpc2FibGVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiPnt7XHJcbiAgICAgICAgaXRlbS50ZXh0XHJcbiAgICAgIH19PC9sYWJlbD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gTXVsdGlwbGUgLS0+XHJcbiAgPGRpdiAqbmdJZj1cIiF0cmVldmlldyAmJiBtdWx0aXBsZVwiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInRleHQtbm93cmFwIHJvdy1pdGVtXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGl0ZW0udmFsdWUgPT09IHRoaXMudmFsdWUgfVwiXHJcbiAgICA+XHJcbiAgICAgIDxpXHJcbiAgICAgICAgKm5nSWY9XCJpdGVtLmNoaWxkcmVuXCJcclxuICAgICAgICAoY2xpY2spPVwib25Db2xsYXBzZUV4cGFuZCgpXCJcclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgIFtuZ1N3aXRjaF09XCJpdGVtLmNvbGxhcHNlZFwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cInRydWVcIlxyXG4gICAgICAgICAgY2xhc3M9XCJiaSBiaS1jYXJldC17eyBhcmFiaWMgPyAnbGVmdCcgOiAncmlnaHQnIH19LWZpbGwgY2FyZXQtaWNvblwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQtZG93bi1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgID48L3NwYW4+XHJcbiAgICAgIDwvaT5cclxuICAgICAgPCEtLSA8aW5wdXRcclxuICAgICAgICBjbGFzcz1cIm11bHRpcGxlLWNoZWNrQm94XCJcclxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgIFtjaGVja2VkXT1cIm11bHRpcGxlU2VsZWN0aW9uLmluY2x1ZGVzKGl0ZW0udmFsdWUpXCJcclxuICAgICAgICAoY2hhbmdlKT1cInNlbGVjdE11bHRpcGxlKCRldmVudC50YXJnZXQuY2hlY2tlZCwgaXRlbSlcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPnt7IGl0ZW0udGV4dCB9fTwvbGFiZWw+IC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXVsdGlwbGUtdHJlZXZpZXdcIj5cclxuICAgICAgICA8bWF0LWNoZWNrYm94XHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJtdWx0aXBsZVNlbGVjdGlvbi5pbmNsdWRlcyhpdGVtLnZhbHVlKVwiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdE11bHRpcGxlKCRldmVudC5jaGVja2VkLCBpdGVtKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4+IHt7IGl0ZW0udGV4dCB9fSA8L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLSB0cmVlVmlldyAtLT5cclxuICA8ZGl2ICpuZ0lmPVwidHJlZXZpZXcgJiYgIXRyZWVWaWV3QXNGb3JtQ29udHJvbFwiIGNsYXNzPVwidHJlZS12aWV3LWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdlxyXG4gICAgICAobW91c2VlbnRlcik9XCJob3ZlckZpZWxkLnN0eWxlLmRpc3BsYXkgPSAnZmxleCdcIlxyXG4gICAgICAobW91c2VsZWF2ZSk9XCJob3ZlckZpZWxkLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcIlxyXG4gICAgICBjbGFzcz1cInRleHQtbm93cmFwIHJvdy1pdGVtIHRyZWV2aWV3LXJvd1wiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IGl0ZW0udmFsdWUgPT0gc2VsZWN0ZWRJdGVtIH1cIlxyXG4gICAgPlxyXG4gICAgICA8aVxyXG4gICAgICAgICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ29sbGFwc2VkKGl0ZW0pXCJcclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgIFtuZ1N3aXRjaF09XCJpdGVtLmNvbGxhcHNlZFwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cInRydWVcIlxyXG4gICAgICAgICAgY2xhc3M9XCJiaSBiaS1jYXJldC17eyBhcmFiaWMgPyAnbGVmdCcgOiAncmlnaHQnIH19LWZpbGwgY2FyZXQtaWNvblwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuXHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LWRvd24tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICA+PC9zcGFuPlxyXG4gICAgICA8L2k+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwtdHJlZXZpZXdcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCJcclxuICAgICAgICA+e3sgaXRlbS50ZXh0IH19XHJcbiAgICAgICAgPHNwYW4gI2hvdmVyRmllbGQgY2xhc3M9XCJob3ZlckZpZWxkXCI+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdkZXBhcnRtZW50X21hbmFnZW1lbnQuZm9ybS5lZGl0JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbigkZXZlbnQsICd1cGRhdGUnLCBpdGVtKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImJpIGJpLXBlbmNpbFwiPjwvbGk+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7e1xyXG4gICAgICAgICAgICAgICdkZXBhcnRtZW50X21hbmFnZW1lbnQuZm9ybS50b29sVGlwX21lc3NhZ2UnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIH19XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uKCRldmVudCwgJ2FkZCcsIGl0ZW0pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGxpIGNsYXNzPVwiYmkgYmktcGx1c1wiPjwvbGk+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgICA8IS0tIHRyZWVWaWV3IGFzIGZvcm0gY29udHJvbCAtLT5cclxuICAgIDxkaXYgKm5nSWY9XCJ0cmVldmlldyAmJiB0cmVlVmlld0FzRm9ybUNvbnRyb2xcIiBjbGFzcz1cInRyZWUtdmlldy1jb250YWluZXJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1ub3dyYXAgcm93LWl0ZW0gdHJlZXZpZXctcm93LWZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnc2VsZWN0ZWQtZm9ybS1jb250cm9sJzogaXRlbS52YWx1ZSA9PSBzZWxlY3RlZEl0ZW0gfVwiXHJcbiAgICAgID5cclxuICAgICAgICA8aVxyXG4gICAgICAgICAgKm5nSWY9XCJpdGVtLmNoaWxkcmVuXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbkNvbGxhcHNlZChpdGVtKVwiXHJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgW25nU3dpdGNoXT1cIml0ZW0uY29sbGFwc2VkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQte3sgYXJhYmljID8gJ2xlZnQnIDogJ3JpZ2h0JyB9fS1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgICAgPjwvc3Bhbj5cclxuICBcclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQtZG93bi1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICA8L2k+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbC10cmVldmlld1wiIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIlxyXG4gICAgICAgICAgPnt7IGl0ZW0udGV4dCB9fVxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZVxyXG4gICNoZWFkZXJUZW1wbGF0ZVxyXG4gIGxldC1jb25maWc9XCJjb25maWdcIlxyXG4gIGxldC1pdGVtPVwiaXRlbVwiXHJcbiAgbGV0LW9uQ29sbGFwc2VFeHBhbmQ9XCJvbkNvbGxhcHNlRXhwYW5kXCJcclxuICBsZXQtb25DaGVja2VkQ2hhbmdlPVwib25DaGVja2VkQ2hhbmdlXCJcclxuICBsZXQtb25GaWx0ZXJUZXh0Q2hhbmdlPVwib25GaWx0ZXJUZXh0Q2hhbmdlXCJcclxuPlxyXG4gIDxkaXYgKm5nSWY9XCJjb25maWcuaGFzRmlsdGVyXCIgY2xhc3M9XCJyb3cgcm93LWZpbHRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJpMThuLmdldEZpbHRlclBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyKVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJUZXh0XCJcclxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkZpbHRlclRleHRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiY29uZmlnLmhhc0FsbENoZWNrQm94IHx8IGNvbmZpZy5oYXNDb2xsYXBzZUV4cGFuZFwiIGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgIDxsYWJlbCAqbmdJZj1cImNvbmZpZy5oYXNBbGxDaGVja0JveFwiIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIj5cclxuICAgICAgICA8c3Ryb25nPnt7IGkxOG4uZ2V0QWxsQ2hlY2tib3hUZXh0KCkgfX08L3N0cm9uZz5cclxuICAgICAgPC9sYWJlbD5cclxuICAgICAgPGxhYmVsXHJcbiAgICAgICAgKm5nSWY9XCJjb25maWcuaGFzQ29sbGFwc2VFeHBhbmRcIlxyXG4gICAgICAgIGNsYXNzPVwiZmxvYXQtcmlnaHRcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNvbGxhcHNlRXhwYW5kKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgIFt0aXRsZV09XCJpMThuLmdldFRvb2x0aXBDb2xsYXBzZUV4cGFuZFRleHQoaXRlbS5jb2xsYXBzZWQpXCJcclxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbbmdTd2l0Y2hdPVwiaXRlbS5jb2xsYXBzZWRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCIgY2xhc3M9XCJiaSBiaS1hcnJvd3MtYW5nbGUtZXhwYW5kXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1hcnJvd3MtYW5nbGUtY29udHJhY3RcIlxyXG4gICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICA8L2k+XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8YSAqbmdJZj1cImRlZmF1bHRTZWxlY3RcIiBjbGFzcz1cInNlbGVjdC1kZWZhdWx0XCIgKGNsaWNrKT1cInNlbGVjdERlZmF1bHQoKVwiPnt7J2RlcGFydG1lbnRfbWFuYWdlbWVudC5zZWxlY3REZWZhdWx0J3wgdHJhbnNsYXRlfX08L2E+XHJcbiAgPGRpdiAqbmdJZj1cImNvbmZpZy5oYXNEaXZpZGVyXCIgY2xhc3M9XCJkcm9wZG93bi1kaXZpZGVyXCIgW25nQ2xhc3NdPVwieydkcm9wZG93bi1kaXZpZGVyLW5vTWFyZ2luJzogZGVmYXVsdFNlbGVjdH1cIj48L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhdHJlZXZpZXcgJiYgIW11bHRpcGxlXCI+XHJcbiAgPG5neC1kcm9wZG93bi10cmVldmlld1xyXG4gICAgW2NvbmZpZ109XCJjb25maWdcIlxyXG4gICAgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCJcclxuICAgIFtpdGVtc109XCJpdGVtc1wiXHJcbiAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgPlxyXG4gIDwvbmd4LWRyb3Bkb3duLXRyZWV2aWV3XHJcbj48L25nLWNvbnRhaW5lcj5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0cmVldmlldyAmJiBtdWx0aXBsZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJtdWx0aXBsZS10cmVlLXZpZXdcIj5cclxuICAgIDxuZ3gtZHJvcGRvd24tdHJlZXZpZXdcclxuICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxyXG4gICAgICBbaXRlbXNdPVwiaXRlbXNcIlxyXG4gICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICA+XHJcbiAgICA8L25neC1kcm9wZG93bi10cmVldmlldz5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmVldmlldyAmJiAhdHJlZVZpZXdBc0Zvcm1Db250cm9sXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRyZWUtdmlld1wiPlxyXG4gICAgPG5neC10cmVldmlld1xyXG4gICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXHJcbiAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICAgIFtpdGVtc109XCJpdGVtc1wiXHJcbiAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcclxuICAgID5cclxuICAgIDwvbmd4LXRyZWV2aWV3PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyZWV2aWV3ICYmIHRyZWVWaWV3QXNGb3JtQ29udHJvbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0cmVlLXZpZXctZm9ybS1jb250cm9sXCI+XHJcbiAgICA8bmd4LXRyZWV2aWV3XHJcbiAgICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgICAgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCJcclxuICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcclxuICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxyXG4gICAgPlxyXG4gICAgPC9uZ3gtdHJlZXZpZXc+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=