ngx-histaff-alpha 4.3.7 → 4.3.8

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 (44) hide show
  1. package/esm2022/lib/app/libraries/contractinfor/contractinfor.component.mjs +2 -2
  2. package/esm2022/lib/app/libraries/core-contract-seeker/core-contract-seeker/core-contract-seeker.component.mjs +5 -3
  3. package/esm2022/lib/app/libraries/core-control/core-control/core-control.component.mjs +2 -2
  4. package/esm2022/lib/app/libraries/core-control-no-grid-buffer/core-control-no-grid-buffer/core-control-no-grid-buffer.component.mjs +2 -2
  5. package/esm2022/lib/app/libraries/core-employee-seeker/core-employee-seeker/core-employee-seeker.component.mjs +5 -3
  6. package/esm2022/lib/app/libraries/core-form-control-seeker/core-form-control-seeker/core-form-control-seeker.component.mjs +6 -4
  7. package/esm2022/lib/app/libraries/core-job-seeker/core-job-seeker.component.mjs +5 -3
  8. package/esm2022/lib/app/libraries/core-mcc/core-mcc/core-mcc.component.mjs +2 -2
  9. package/esm2022/lib/app/libraries/core-page-list/core-page-list.component.mjs +6 -2
  10. package/esm2022/lib/app/libraries/core-param-control/core-param-control/core-param-control.component.mjs +2 -2
  11. package/esm2022/lib/app/libraries/core-permission-actions/core-permission-actions/core-permission-actions.component.mjs +2 -2
  12. package/esm2022/lib/app/libraries/core-position-concurrent-seeker/core-position-concurrent-seeker/core-position-concurrent-seeker.component.mjs +5 -3
  13. package/esm2022/lib/app/libraries/core-position-seeker/core-position-seeker/core-position-seeker.component.mjs +5 -3
  14. package/esm2022/lib/app/libraries/core-tab-list/core-tab-list.component.mjs +2 -2
  15. package/esm2022/lib/app/libraries/core-wage-seeker/core-wage-seeker/core-wage-seeker.component.mjs +5 -3
  16. package/esm2022/lib/app/libraries/core-working-seeker/core-working-seeker/core-working-seeker.component.mjs +5 -3
  17. package/esm2022/lib/app/libraries/decision/decision.component.mjs +2 -2
  18. package/esm2022/lib/app/libraries/huconcurrently/huconcurrently.component.mjs +2 -2
  19. package/esm2022/lib/app/libraries/job/job.component.mjs +2 -2
  20. package/esm2022/lib/app/libraries/position/position.component.mjs +2 -2
  21. package/esm2022/lib/app/libraries/staffprofile/staffprofile.component.mjs +2 -2
  22. package/esm2022/lib/app/libraries/wage/wage.component.mjs +2 -2
  23. package/esm2022/lib/app/root/function/function.component.mjs +2 -2
  24. package/esm2022/lib/app/root/function-ignore/function-ignore/function-ignore.component.mjs +1 -1
  25. package/esm2022/lib/app/root/groupfunction/groupfunction.component.mjs +1 -1
  26. package/esm2022/lib/app/root/language/language/language.component.mjs +2 -2
  27. package/esm2022/lib/app/root/mutation-log/mutation-log/mutation-log.component.mjs +1 -1
  28. package/esm2022/lib/app/root/pa-salary-policy/pa-salary-policy.component.mjs +2 -2
  29. package/esm2022/lib/app/root/portal-route/portal-route.component.mjs +1 -1
  30. package/esm2022/lib/app/root/sys-action/sys-action/sys-action.component.mjs +2 -2
  31. package/esm2022/lib/app/root/sys-function-action/sys-function-action/sys-function-action.component.mjs +1 -1
  32. package/esm2022/lib/app/root/sys-module/sys-module/sys-module.component.mjs +2 -2
  33. package/fesm2022/ngx-histaff-alpha.mjs +61 -41
  34. package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
  35. package/lib/app/libraries/core-contract-seeker/core-contract-seeker/core-contract-seeker.component.d.ts +2 -1
  36. package/lib/app/libraries/core-employee-seeker/core-employee-seeker/core-employee-seeker.component.d.ts +2 -1
  37. package/lib/app/libraries/core-form-control-seeker/core-form-control-seeker/core-form-control-seeker.component.d.ts +2 -1
  38. package/lib/app/libraries/core-job-seeker/core-job-seeker.component.d.ts +2 -1
  39. package/lib/app/libraries/core-page-list/core-page-list.component.d.ts +4 -2
  40. package/lib/app/libraries/core-position-concurrent-seeker/core-position-concurrent-seeker/core-position-concurrent-seeker.component.d.ts +2 -1
  41. package/lib/app/libraries/core-position-seeker/core-position-seeker/core-position-seeker.component.d.ts +2 -1
  42. package/lib/app/libraries/core-wage-seeker/core-wage-seeker/core-wage-seeker.component.d.ts +2 -1
  43. package/lib/app/libraries/core-working-seeker/core-working-seeker/core-working-seeker.component.d.ts +2 -1
  44. package/package.json +1 -1
@@ -309,7 +309,7 @@ export class ContractInforComponent extends BaseComponent {
309
309
  }
310
310
  }
311
311
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ContractInforComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.RandomAvatarService }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.OrganizationService }, { token: i5.HttpClient }, { token: i6.AppService }, { token: i7.CorePageListService }, { token: i8.ContractInforService }, { token: i9.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
312
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ContractInforComponent, isStandalone: true, selector: "cms-profile-contractinfor", inputs: { hideHeader: "hideHeader", outerFilter$: "outerFilter$" }, viewQueries: [{ propertyName: "sticker", first: true, predicate: ["sticker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"cms-profile-contractinfor-container\">\r\n <core-page-list\r\n [apiDefinition]=\"apiDefinition\"\r\n [columns]=\"columns\"\r\n [editRoute]=\"editRoute\"\r\n [crud]=\"crud\"\r\n [title]=\"title\"\r\n [left]=\"orgTree\"\r\n [outerParam$]=\"outerParam$\"\r\n [normalMode]=\"true\"\r\n [outerInOperators]=\"outerInOperators\"\r\n [autoResizeWithWindow]=\"true\"\r\n (rowClick)=\"onRowClick($event)\"\r\n [showParamKit]=\"true\"\r\n [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [statusInclusionFor]=\"statusInclusionFor\"\r\n [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\"\r\n [generateTemplateRequest]=\"generateTemplateRequest\"\r\n (corePageHeaderButtonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n [importPreviewPath]=\"'contract-import'\"\r\n [outerSort]=\"outerSort\"\r\n [frozen]=\"3\"\r\n\r\n (selectedIdsChange)=\"customizeSelectedIdsChange($event)\"\r\n (onInstanceCreated)=\"onInstanceCreated($event)\"\r\n >\r\n </core-page-list>\r\n\r\n <ng-template #orgTree>\r\n <core-org-tree [(ngModel)]=\"orgIds\" (ngModelChange)=\"onOrgIdsChange($event)\">\r\n </core-org-tree>\r\n </ng-template>\r\n\r\n <ng-template #sticker let-code=\"context.statusName\">\r\n <core-status-sticker [code]=\"code\"></core-status-sticker>\r\n </ng-template>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "enableFilterKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "statusOptions$", "showOrgParam", "showOrgParamDropdown", "hideGeneralSearch", "hideDatePeriodComparison", "hideStatusInclusion", "filterOperators$", "camelCaseDtoStatusIdField", "gridStatusColumn", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerFilter$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$", "disableDialogInformationLines", "changeTracking", "primaryKey", "changedItems$", "tabMode", "paramRows", "disableFilterHub"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady", "listChange"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreStatusStickerComponent, selector: "core-status-sticker", inputs: ["code", "caption", "width", "isTrueCode"] }] }); }
312
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ContractInforComponent, isStandalone: true, selector: "cms-profile-contractinfor", inputs: { hideHeader: "hideHeader", outerFilter$: "outerFilter$" }, viewQueries: [{ propertyName: "sticker", first: true, predicate: ["sticker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"cms-profile-contractinfor-container\">\r\n <core-page-list\r\n [apiDefinition]=\"apiDefinition\"\r\n [columns]=\"columns\"\r\n [editRoute]=\"editRoute\"\r\n [crud]=\"crud\"\r\n [title]=\"title\"\r\n [left]=\"orgTree\"\r\n [outerParam$]=\"outerParam$\"\r\n [normalMode]=\"true\"\r\n [outerInOperators]=\"outerInOperators\"\r\n [autoResizeWithWindow]=\"true\"\r\n (rowClick)=\"onRowClick($event)\"\r\n [showParamKit]=\"true\"\r\n [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [statusInclusionFor]=\"statusInclusionFor\"\r\n [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\"\r\n [generateTemplateRequest]=\"generateTemplateRequest\"\r\n (corePageHeaderButtonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n [importPreviewPath]=\"'contract-import'\"\r\n [outerSort]=\"outerSort\"\r\n [frozen]=\"3\"\r\n\r\n (selectedIdsChange)=\"customizeSelectedIdsChange($event)\"\r\n (onInstanceCreated)=\"onInstanceCreated($event)\"\r\n >\r\n </core-page-list>\r\n\r\n <ng-template #orgTree>\r\n <core-org-tree [(ngModel)]=\"orgIds\" (ngModelChange)=\"onOrgIdsChange($event)\">\r\n </core-org-tree>\r\n </ng-template>\r\n\r\n <ng-template #sticker let-code=\"context.statusName\">\r\n <core-status-sticker [code]=\"code\"></core-status-sticker>\r\n </ng-template>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "enableFilterKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "statusOptions$", "showOrgParam", "showOrgParamDropdown", "hideGeneralSearch", "hideDatePeriodComparison", "hideStatusInclusion", "filterOperators$", "camelCaseDtoStatusIdField", "gridStatusColumn", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "useTheseColumns", "hideOrgTree", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerFilter$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$", "disableDialogInformationLines", "changeTracking", "primaryKey", "changedItems$", "tabMode", "paramRows", "disableFilterHub"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady", "listChange"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreStatusStickerComponent, selector: "core-status-sticker", inputs: ["code", "caption", "width", "isTrueCode"] }] }); }
313
313
  }
314
314
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ContractInforComponent, decorators: [{
315
315
  type: Component,
@@ -328,4 +328,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
328
328
  type: ViewChild,
329
329
  args: ['sticker']
330
330
  }] } });
331
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RpbmZvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29udHJhY3RpbmZvci9jb250cmFjdGluZm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb250cmFjdGluZm9yL2NvbnRyYWN0aW5mb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLFNBQVMsRUFBQyxLQUFLLEVBQWEsU0FBUyxHQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBMkMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNqSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQTJFLE1BQU0sNENBQTRDLENBQUM7QUFNNUosT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFF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SSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ3ZCLENBQUMsQ0FBQyxDQUFDO2lCQUNOO2dCQUNELE1BQU07WUFFUjtnQkFDRSxNQUFNO1NBQ1Q7SUFDSCxDQUFDOzhHQXpWVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixvUkN6Q25DLDY5Q0FzQ00seURETkYsWUFBWSw4QkFDWixXQUFXLGlXQUNYLHFCQUFxQiwyK0NBQ3JCLG9CQUFvQixzUkFDcEIsMEJBQTBCOzsyRkFLakIsc0JBQXNCO2tCQWJsQyxTQUFTOytCQUNFLDJCQUEyQixjQUN6QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQiwwQkFBMEI7cUJBQzNCO2lXQU9RLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFHZ0IsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LENvbXBvbmVudCxJbnB1dCxUZW1wbGF0ZVJlZixWaWV3Q2hpbGQsfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb250cmFjdEluZm9yU2VydmljZSB9IGZyb20gXCIuL2NvbnRyYWN0aW5mb3Iuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uL2Jhc2UtY29tcG9uZW50L2Jhc2UvYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgSUNvcmVUYWJsZUNvbHVtbkl0ZW0gfSBmcm9tIFwiLi4vY29yZS10YWJsZS9JQ29yZVRhYmxlQ29sdW1uSXRlbVwiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZVRhYmxlUGlwZVR5cGUgfSBmcm9tIFwiLi4vY29yZS10YWJsZS9FbnVtQ29yZVRhYmxlUGlwZVR5cGVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBFbnVtRmlsdGVyT3BlcmF0b3IsIElGaWx0ZXJPcGVyYXRvciwgSUluT3BlcmF0b3IsIElTb3J0SXRlbSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL0lRdWVyeUxpc3RSZXF1ZXN0XCI7XHJcbmltcG9ydCB7IEVudW1Tb3J0RGlyZWN0aW9uIH0gZnJvbSBcIi4uLy4uL2VudW0vRW51bVNvcnREaXJlY3Rpb25cIjtcclxuaW1wb3J0IHsgQ29yZVBhZ2VMaXN0Q29tcG9uZW50LCBJQ29yZVBhZ2VMaXN0QXBpRGVmaW5pdGlvbiwgSUNvcmVQYWdlTGlzdENSVUQsIElDb3JlUGFnZUxpc3RFZGl0Um91dGluZyB9IGZyb20gXCIuLi9jb3JlLXBhZ2UtbGlzdC9jb3JlLXBhZ2UtbGlzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29yZVBhZ2VMaXN0U2VydmljZSwgSUdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0IH0gZnJvbSBcIi4uL2NvcmUtcGFnZS1saXN0L2NvcmUtcGFnZS1saXN0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBPcmdhbml6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL29yZ2FuaXphdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFJhbmRvbUF2YXRhclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvcmFuZG9tLWF2YXRhci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFwcFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvYXBwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGFwaSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gXCIuLi9hbGVydC9hbGVydC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IElDb3JlQnV0dG9uVk5TIH0gZnJvbSBcIi4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvSUNvcmVCdXR0b25WTlNcIjtcclxuaW1wb3J0IHsgSUFsZXJ0T3B0aW9ucyB9IGZyb20gXCIuLi9hbGVydC9hbGVydC9hbGVydC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUJ1dHRvblZOU0NvZGUgfSBmcm9tIFwiLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9FbnVtQ29yZUJ1dHRvblZOU0NvZGVcIjtcclxuaW1wb3J0IHsgYWxlcnRPcHRpb25zIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnNcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb3JlT3JnVHJlZUNvbXBvbmVudCB9IGZyb20gXCIuLi9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ29yZVN0YXR1c1N0aWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vY29yZS1zdGF0dXMtc3RpY2tlci9jb3JlLXN0YXR1cy1zdGlja2VyL2NvcmUtc3RhdHVzLXN0aWNrZXIuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjbXMtcHJvZmlsZS1jb250cmFjdGluZm9yXCIsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvcmVQYWdlTGlzdENvbXBvbmVudCxcclxuICAgIENvcmVPcmdUcmVlQ29tcG9uZW50LFxyXG4gICAgQ29yZVN0YXR1c1N0aWNrZXJDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL2NvbnRyYWN0aW5mb3IuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vY29udHJhY3RpbmZvci5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRyYWN0SW5mb3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgbG9hZGluZyE6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIGhpZGVIZWFkZXIhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIG91dGVyRmlsdGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUZpbHRlck9wZXJhdG9yW10gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgXHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3N0aWNrZXInKSBzdGlja2VyITogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvKiBTVEFSVDogTG9jYWwgZmlsdGVyIHBhcmFtcyAqL1xyXG4gIG9yZ0lkcyE6IG51bWJlcltdO1xyXG4gIC8qIEVORDogTG9jYWwgZmlsdGVyIHBhcmFtcyAqL1xyXG5cclxuICAvKlxyXG4gIFByb3BlcnRpZXMgYmVpbmcgcGFzc2VkIHRvIGNvcmUtcGFnZS1saXN0XHJcbiAgKi9cclxuICBkYXRlUGVyaW9kQ29tcGFyaXNvbkZvcjogc3RyaW5nID0gJ3N0YXJ0RGF0ZSc7XHJcbiAgZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleTogRW51bVRyYW5zbGF0ZUtleSA9IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX0NPTlRSQUNUX1NUQVJUREFURV9GSUxURVI7XHJcbiAgc3RhdHVzSW5jbHVzaW9uRm9yOiBzdHJpbmcgPSAnd29ya1N0YXR1c0lkJztcclxuICBzdGF0dXNJbmNsdXNpb25Gb3JMYWJlbEtleTogRW51bVRyYW5zbGF0ZUtleSA9IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9QQVJBTVNfRU1QTE9ZRUVfU1RBVFVTX0lOO1xyXG4gIHN0YXR1c09wdGlvbnNBcGk6IGFwaSA9IGFwaS5IVV9FTVBMT1lFRV9DVl9HRVRfRU1QTE9ZRUVfU1RBVFVTX0xJU1Q7XHJcblxyXG4gIGlkOiBhbnk7XHJcblxyXG4gIHRpdGxlID0gRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfVElUTEVfQ09OVFJBQ1RcclxuICBvdXRlclBhcmFtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuXHJcbiAgb3V0ZXJGaWx0ZXJPcGVyYXRvcnM6IElGaWx0ZXJPcGVyYXRvcltdID0gW1xyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ29yZ0lkJyxcclxuICAgICAgb3BlcmF0b3I6IEVudW1GaWx0ZXJPcGVyYXRvci5FUVVBTFxyXG4gICAgfVxyXG4gIF1cclxuICBvdXRlckluT3BlcmF0b3JzOiBJSW5PcGVyYXRvcltdID0gW1xyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ29yZ0lkJyxcclxuICAgICAgdmFsdWVzOiB0aGlzLm9yZ0lkcyB8fCBbXVxyXG4gICAgfVxyXG4gIF1cclxuICBvdXRlclNvcnQ6IElTb3J0SXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICBmaWVsZDogXCJqb2JPcmRlck51bVwiLFxyXG4gICAgICBzb3J0RGlyZWN0aW9uOiBFbnVtU29ydERpcmVjdGlvbi5BU0NcclxuICAgIH1cclxuICBdXHJcbiAgYXBpRGVmaW5pdGlvbjogSUNvcmVQYWdlTGlzdEFwaURlZmluaXRpb24gPSB7XHJcbiAgICBxdWVyeUxpc3RSZWxhdGl2ZVBhdGg6IGFwaS5IVV9DT05UUkFDVF9RVUVSWV9MSVNULFxyXG4gIH1cclxuXHJcbiAgY3J1ZDogSUNvcmVQYWdlTGlzdENSVUQgPSB7XHJcbiAgICBkZWxldGVJZHM6IGFwaS5IVV9DT05UUkFDVF9ERUxFVEVfSURTLFxyXG4gICAgdG9nZ2xlQXBwcm92ZUlkczogYXBpLkhVX0NPTlRSQUNUX0NIQU5HRVNUQVRVU0FQUFJPVkVcclxuICB9XHJcblxyXG4gIGF2YXRhclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgY29sdW1uczogSUNvcmVUYWJsZUNvbHVtbkl0ZW1bXSA9IFtcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9DT01NT05fSUQsXHJcbiAgICAgIGZpZWxkOiAnaWQnLFxyXG4gICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgIHR5cGU6ICdudW1iZXInLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMTAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9DT05UUkFDVF9TVEFUVVNOQU1FLFxyXG4gICAgICBmaWVsZDogJ3N0YXR1c05hbWUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDE1MCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX0NPTlRSQUNUX0VNUExPWUVFQ09ERSxcclxuICAgICAgZmllbGQ6ICdlbXBsb3llZUNvZGUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDcwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfQ09OVFJBQ1RfRU1QTE9ZRUVOQU1FLFxyXG4gICAgICBmaWVsZDogJ2VtcGxveWVlTmFtZScsXHJcbiAgICAgIHNob3dGb3JDb25maXJtYXRpb246IHRydWUsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMjUwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TVEFGRl9QUk9GSUxFX1BPU0lUSU9OX05BTUUsXHJcbiAgICAgIGZpZWxkOiAncG9zaXRpb25OYW1lJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAyNTAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9DT05UUkFDVF9PUkdOQU1FLFxyXG4gICAgICBmaWVsZDogJ29yZ05hbWUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDIwMCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX0NPTlRSQUNUX0NPTlRSQUNUTk8sXHJcbiAgICAgIGZpZWxkOiAnY29udHJhY3RObycsXHJcbiAgICAgIHNob3dGb3JDb25maXJtYXRpb246IHRydWUsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMTUwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfQ09OVFJBQ1RfQ09OVFJBQ1RUWVBFTkFNRSxcclxuICAgICAgZmllbGQ6ICdjb250cmFjdFR5cGVOYW1lJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAyNTAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9DT05UUkFDVF9TVEFSVERBVEUsXHJcbiAgICAgIGZpZWxkOiAnc3RhcnREYXRlJyxcclxuICAgICAgdHlwZTogJ2RhdGUnLFxyXG4gICAgICBwaXBlOiBFbnVtQ29yZVRhYmxlUGlwZVR5cGUuREFURSxcclxuICAgICAgYWxpZ246ICdjZW50ZXInLFxyXG4gICAgICB3aWR0aDogMTIwLFxyXG4gICAgfSxcclxuXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX0NPTlRSQUNUX0VYUElSRURBVEUsXHJcbiAgICAgIGZpZWxkOiAnZXhwaXJlRGF0ZScsXHJcbiAgICAgIHR5cGU6ICdkYXRlJyxcclxuICAgICAgcGlwZTogRW51bUNvcmVUYWJsZVBpcGVUeXBlLkRBVEUsXHJcbiAgICAgIGFsaWduOiAnY2VudGVyJyxcclxuICAgICAgd2lkdGg6IDEyMCxcclxuICAgIH0sXHJcblxyXG4gICAgLy8gY2jhuq9jIGzDoCB2aeG6v3QgY29kZSDhu58gxJHDonlcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfQ09OVFJBQ1RfTElRVUlEQVRJT05fREFURSxcclxuICAgICAgZmllbGQ6ICdsaXF1aWRhdGlvbkRhdGUnLFxyXG4gICAgICB0eXBlOiAnZGF0ZScsXHJcbiAgICAgIHBpcGU6IEVudW1Db3JlVGFibGVQaXBlVHlwZS5EQVRFLFxyXG4gICAgICBhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgIHdpZHRoOiAxMDAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9DT05UUkFDVF9MSVFVSURBVElPTl9SRUFTT04sXHJcbiAgICAgIGZpZWxkOiAnbGlxdWlkYXRpb25SZWFzb24nLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDIwMCxcclxuICAgIH0sXHJcblxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9DT05UUkFDVF9TSUdOREFURSxcclxuICAgICAgZmllbGQ6ICdzaWduRGF0ZScsXHJcbiAgICAgIHR5cGU6ICdkYXRlJyxcclxuICAgICAgcGlwZTogRW51bUNvcmVUYWJsZVBpcGVUeXBlLkRBVEUsXHJcbiAgICAgIGFsaWduOiAnY2VudGVyJyxcclxuICAgICAgd2lkdGg6IDEwMCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX0NPTlRSQUNUX1NJR05FUk5BTUUsXHJcbiAgICAgIGZpZWxkOiAnc2lnbmVyTmFtZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMTUwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfQ09OVFJBQ1RfU0lHTkVSUE9TSVRJT04sXHJcbiAgICAgIGZpZWxkOiAnc2lnbmVyUG9zaXRpb24nLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDI1MCxcclxuICAgIH0sXHJcblxyXG4gIF1cclxuXHJcbiAgZGVmYXVsdEF2YXRhciE6IHN0cmluZztcclxuXHJcbiAgZWRpdFJvdXRlOiBJQ29yZVBhZ2VMaXN0RWRpdFJvdXRpbmcgPSB7XHJcbiAgICBhdXhpbGlhcnk6ICdwb3B1cEF1eCdcclxuICB9XHJcbiAgLyogRW5kIFByb3BlcnRpZXMgYmVpbmcgcGFzc2VkIHRvIGNvcmUtcGFnZS1saXN0ICovXHJcbiAgZ2VuZXJhdGVUZW1wbGF0ZVJlcXVlc3QhOiBJR2VuZXJhdGVUZW1wbGF0ZVJlcXVlc3Q7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmFzOiBSYW5kb21BdmF0YXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBvcmdhbml6YXRpb25TZXJ2aWNlOiBPcmdhbml6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBhcHBTZXJ2aWNlOiBBcHBTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb3JlUGFnZUxpc3RTZXJ2aWNlOiBDb3JlUGFnZUxpc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb250cmFjdEluZm9yU2VydmljZTogQ29udHJhY3RJbmZvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtbHMpO1xyXG4gICAgdGhpcy5kZWZhdWx0QXZhdGFyID0gcmFzLmdldCgpO1xyXG4gICAgLyogR2V0IG9yZ0lkcyBzdGFydHVwIHZhbHVlICovXHJcbiAgICBjb25zdCBuZXdPcmdJZHM6IG51bWJlcltdID0gW107XHJcbiAgICB0aGlzLm9yZ2FuaXphdGlvblNlcnZpY2Uuc3RhdHVzJC52YWx1ZS5hY3RpdmVLZXlzLm1hcCh4ID0+IG5ld09yZ0lkcy5wdXNoKE51bWJlcih4KSkpXHJcbiAgICB0aGlzLm9uT3JnSWRzQ2hhbmdlKG5ld09yZ0lkcylcclxuICAgIHRoaXMuY29yZVBhZ2VMaXN0SW5zdGFuY2VOdW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICB9XHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgIHRoaXMubGFuZyA9IHg7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVUZW1wbGF0ZVJlcXVlc3QgPSB7XHJcbiAgICAgICAgZXhDb2RlOiAnSFVfQ09OVFJBQ1QnLFxyXG4gICAgICAgIGxhbmc6IHhcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0aWNrZXJGaWx0ZXIgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGMgPT4gYy5maWVsZCA9PT0gJ3N0YXR1c05hbWUnKTtcclxuICAgIGlmICghIXN0aWNrZXJGaWx0ZXIubGVuZ3RoKSBzdGlja2VyRmlsdGVyWzBdLnRlbXBsYXRlUmVmID0gdGhpcy5zdGlja2VyO1xyXG4gIH1cclxuXHJcbiAgb25PcmdJZHNDaGFuZ2Uob3JnSWRzOiBudW1iZXJbXSkge1xyXG4gICAgdGhpcy5vcmdJZHMgPSBvcmdJZHNcclxuICAgIHRoaXMub3V0ZXJJbk9wZXJhdG9ycyA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGZpZWxkOiAnb3JnSWQnLFxyXG4gICAgICAgIHZhbHVlczogb3JnSWRzXHJcbiAgICAgIH1cclxuICAgIF1cclxuICB9XHJcblxyXG4gIG9uUm93Q2xpY2soZTogYW55KSB7XHJcbiAgICB0aGlzLmlkID0gZS5pZFxyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRJZHM6IG51bWJlcltdID0gW107XHJcbiAgXHJcbiAgbGlzdEluc3RhbmNlITogbnVtYmVyO1xyXG4gIFxyXG4gIG9uSW5zdGFuY2VDcmVhdGVkKGV2ZW50OiBudW1iZXIpIHtcclxuICAgIHRoaXMubGlzdEluc3RhbmNlID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBhbGVydE9wdGlvbnM6IElBbGVydE9wdGlvbnMgPSB7XHJcbiAgICBhdXRvQ2xvc2U6IHRydWUsXHJcbiAgICBrZWVwQWZ0ZXJSb3V0ZUNoYW5nZTogdHJ1ZSxcclxuICAgIHRpbWVDbG9zZTogMTAwMDBcclxuICB9O1xyXG5cclxuICBlbXBsb3llZUlkITogbnVtYmVyO1xyXG5cclxuICBjdXN0b21pemVTZWxlY3RlZElkc0NoYW5nZShlOiBudW1iZXJbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcyA9IGU7XHJcblxyXG4gICAgdGhpcy5jb250cmFjdEluZm9yU2VydmljZS5jaGFuZ2VMaXN0RW1wbG95ZWVTZWxlY3RlZChlKTtcclxuICAgIHRoaXMuY29udHJhY3RJbmZvclNlcnZpY2UuY3VycmVudExpc3RFbXBsb3llZVNlbGVjdGVkLnN1YnNjcmliZShpZCA9PiB0aGlzLmVtcGxveWVlSWQgPSBpZFswXSk7XHJcbiAgfVxyXG5cclxuICBjb3JlUGFnZUxpc3RJbnN0YW5jZU51bWJlciE6IG51bWJlcjtcclxuXHJcbiAgb25Db3JlUGFnZUhlYWRlckJ1dHRvbkNsaWNrKGU6IElDb3JlQnV0dG9uVk5TKSB7XHJcbiAgICBsZXQgZmlsZW5hbWUgPSAnJztcclxuXHJcbiAgICBzd2l0Y2ggKGUuY29kZSkge1xyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfTElRVUlEQVRFX0NPTlRSQUNUOlxyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG91dGxldHM6IHtcclxuICAgICAgICAgICAgICAgICAgY29yZVBhZ2VMaXN0QXV4OiBbXHJcbiAgICAgICAgICAgICAgICAgICAgYnRvYSgnMCcpLFxyXG4gICAgICAgICAgICAgICAgICAgIHsgbGlzdEluc3RhbmNlOiB0aGlzLmNvcmVQYWdlTGlzdEluc3RhbmNlTnVtYmVyIH0sXHJcbiAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIC8vIGLhuq9uIHJhIHRow7RuZyBiw6FvIGNoxrBhIGNo4buNbiBi4bqjbiBnaGlcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKHRoaXMubWxzLnRyYW5zKCdOT19TRUxFQ1RFRF9JRF9UT19ERUxFVEUnKSwgdGhpcy5hbGVydE9wdGlvbnMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfUFJJTlQ6XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJZHMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uud2Fybih0aGlzLm1scy50cmFucygnUFJJTlRfT05FX1JFQ09SRCcpLCBhbGVydE9wdGlvbnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuaHR0cC5nZXQoYXBpLkhVX0NPTlRSQUNUX0dFVF9GSUxFX05BTUUgKyB0aGlzLnNlbGVjdGVkSWRzWzBdLnRvU3RyaW5nKCkpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBmaWxlbmFtZSA9IHJlc3BvbnNlLmlubmVyQm9keTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICAgICAgdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQoYXBpLkhVX0NPTlRSQUNUX0dFVF9QUk9CQVRJT05fQ09OVFJBQ1QsIHtcclxuICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcclxuICAgICAgICAgICAgICBwYXJhbXM6IHsgaWQ6IHRoaXMuc2VsZWN0ZWRJZHNbMF0udG9TdHJpbmcoKSB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCbG9iKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnR5cGUgPT09ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkb3dubG9hZFVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBsaW5rLmhyZWYgPSBkb3dubG9hZFVybDtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgLy8gbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgJzJDX0JOVl8yMDA4XycgKyBmaWxlbmFtZSArICcuZG9jJyk7XHJcbiAgICAgICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlbmFtZSArICcuZG9jJyk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChkb3dubG9hZFVybCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QganNvbkJvZHkgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGpzb25Cb2R5KTtcclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhkYXRhLm1lc3NhZ2VDb2RlLCBhbGVydE9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKGRhdGEubWVzc2FnZUNvZGUsIGFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY21zLXByb2ZpbGUtY29udHJhY3RpbmZvci1jb250YWluZXJcIj5cclxuICA8Y29yZS1wYWdlLWxpc3RcclxuICAgIFthcGlEZWZpbml0aW9uXT1cImFwaURlZmluaXRpb25cIlxyXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICBbZWRpdFJvdXRlXT1cImVkaXRSb3V0ZVwiXHJcbiAgICBbY3J1ZF09XCJjcnVkXCJcclxuICAgIFt0aXRsZV09XCJ0aXRsZVwiXHJcbiAgICBbbGVmdF09XCJvcmdUcmVlXCJcclxuICAgIFtvdXRlclBhcmFtJF09XCJvdXRlclBhcmFtJFwiXHJcbiAgICBbbm9ybWFsTW9kZV09XCJ0cnVlXCJcclxuICAgIFtvdXRlckluT3BlcmF0b3JzXT1cIm91dGVySW5PcGVyYXRvcnNcIlxyXG4gICAgW2F1dG9SZXNpemVXaXRoV2luZG93XT1cInRydWVcIlxyXG4gICAgKHJvd0NsaWNrKT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXHJcbiAgICBbc2hvd1BhcmFtS2l0XT1cInRydWVcIlxyXG4gICAgW2RhdGVQZXJpb2RDb21wYXJpc29uRm9yXT1cImRhdGVQZXJpb2RDb21wYXJpc29uRm9yXCJcclxuICAgIFtkYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5XT1cImRhdGVQZXJpb2RDb21wYXJpc29uRm9yTGFiZWxLZXlcIlxyXG4gICAgW3N0YXR1c0luY2x1c2lvbkZvcl09XCJzdGF0dXNJbmNsdXNpb25Gb3JcIlxyXG4gICAgW3N0YXR1c0luY2x1c2lvbkZvckxhYmVsS2V5XT1cInN0YXR1c0luY2x1c2lvbkZvckxhYmVsS2V5XCJcclxuICAgIFtzdGF0dXNPcHRpb25zQXBpXT1cInN0YXR1c09wdGlvbnNBcGlcIlxyXG4gICAgW2dlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0XT1cImdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0XCJcclxuICAgIChjb3JlUGFnZUhlYWRlckJ1dHRvbkNsaWNrKT1cIm9uQ29yZVBhZ2VIZWFkZXJCdXR0b25DbGljaygkZXZlbnQpXCJcclxuICAgIFtpbXBvcnRQcmV2aWV3UGF0aF09XCInY29udHJhY3QtaW1wb3J0J1wiXHJcbiAgICBbb3V0ZXJTb3J0XT1cIm91dGVyU29ydFwiXHJcbiAgICBbZnJvemVuXT1cIjNcIlxyXG5cclxuICAgIChzZWxlY3RlZElkc0NoYW5nZSk9XCJjdXN0b21pemVTZWxlY3RlZElkc0NoYW5nZSgkZXZlbnQpXCJcclxuICAgIChvbkluc3RhbmNlQ3JlYXRlZCk9XCJvbkluc3RhbmNlQ3JlYXRlZCgkZXZlbnQpXCJcclxuICA+XHJcbiAgPC9jb3JlLXBhZ2UtbGlzdD5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNvcmdUcmVlPlxyXG4gICAgPGNvcmUtb3JnLXRyZWUgWyhuZ01vZGVsKV09XCJvcmdJZHNcIiAobmdNb2RlbENoYW5nZSk9XCJvbk9yZ0lkc0NoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICA8L2NvcmUtb3JnLXRyZWU+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNzdGlja2VyIGxldC1jb2RlPVwiY29udGV4dC5zdGF0dXNOYW1lXCI+XHJcbiAgICA8Y29yZS1zdGF0dXMtc3RpY2tlciBbY29kZV09XCJjb2RlXCI+PC9jb3JlLXN0YXR1cy1zdGlja2VyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PiJdfQ==
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RpbmZvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29udHJhY3RpbmZvci9jb250cmFjdGluZm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb250cmFjdGluZm9yL2NvbnRyYWN0aW5mb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLFNBQVMsRUFBQyxLQUFLLEVBQWEsU0FBUyxHQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBMkMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNqSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQTJFLE1BQU0sNENBQTRDLENBQUM7QUFNNUosT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFF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SSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ3ZCLENBQUMsQ0FBQyxDQUFDO2lCQUNOO2dCQUNELE1BQU07WUFFUjtnQkFDRSxNQUFNO1NBQ1Q7SUFDSCxDQUFDOzhHQXpWVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixvUkN6Q25DLDY5Q0FzQ00seURETkYsWUFBWSw4QkFDWixXQUFXLGlXQUNYLHFCQUFxQiw2Z0RBQ3JCLG9CQUFvQixzUkFDcEIsMEJBQTBCOzsyRkFLakIsc0JBQXNCO2tCQWJsQyxTQUFTOytCQUNFLDJCQUEyQixjQUN6QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQiwwQkFBMEI7cUJBQzNCO2lXQU9RLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFHZ0IsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LENvbXBvbmVudCxJbnB1dCxUZW1wbGF0ZVJlZixWaWV3Q2hpbGQsfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb250cmFjdEluZm9yU2VydmljZSB9IGZyb20gXCIuL2NvbnRyYWN0aW5mb3Iuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uL2Jhc2UtY29tcG9uZW50L2Jhc2UvYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgSUNvcmVUYWJsZUNvbHVtbkl0ZW0gfSBmcm9tIFwiLi4vY29yZS10YWJsZS9JQ29yZVRhYmxlQ29sdW1uSXRlbVwiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZVRhYmxlUGlwZVR5cGUgfSBmcm9tIFwiLi4vY29yZS10YWJsZS9FbnVtQ29yZVRhYmxlUGlwZVR5cGVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBFbnVtRmlsdGVyT3BlcmF0b3IsIElGaWx0ZXJPcGVyYXRvciwgSUluT3BlcmF0b3IsIElTb3J0SXRlbSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL0lRdWVyeUxpc3RSZXF1ZXN0XCI7XHJcbmltcG9ydCB7IEVudW1Tb3J0RGlyZWN0aW9uIH0gZnJvbSBcIi4uLy4uL2VudW0vRW51bVNvcnREaXJlY3Rpb25cIjtcclxuaW1wb3J0IHsgQ29yZVBhZ2VMaXN0Q29tcG9uZW50LCBJQ29yZVBhZ2VMaXN0QXBpRGVmaW5pdGlvbiwgSUNvcmVQYWdlTGlzdENSVUQsIElDb3JlUGFnZUxpc3RFZGl0Um91dGluZyB9IGZyb20gXCIuLi9jb3JlLXBhZ2UtbGlzdC9jb3JlLXBhZ2UtbGlzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29yZVBhZ2VMaXN0U2VydmljZSwgSUdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0IH0gZnJvbSBcIi4uL2NvcmUtcGFnZS1saXN0L2NvcmUtcGFnZS1saXN0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBPcmdhbml6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL29yZ2FuaXphdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFJhbmRvbUF2YXRhclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvcmFuZG9tLWF2YXRhci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFwcFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvYXBwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGFwaSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gXCIuLi9hbGVydC9hbGVydC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IElDb3JlQnV0dG9uVk5TIH0gZnJvbSBcIi4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvSUNvcmVCdXR0b25WTlNcIjtcclxuaW1wb3J0IHsgSUFsZXJ0T3B0aW9ucyB9IGZyb20gXCIuLi9hbGVydC9hbGVydC9hbGVydC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUJ1dHRvblZOU0NvZGUgfSBmcm9tIFwiLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9FbnVtQ29yZUJ1dHRvblZOU0NvZGVcIjtcclxuaW1wb3J0IHsgYWxlcnRPcHRpb25zIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnNcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb3JlT3JnVHJlZUNvbXBvbmVudCB9IGZyb20gXCIuLi9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ29yZVN0YXR1c1N0aWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vY29yZS1zdGF0dXMtc3RpY2tlci9jb3JlLXN0YXR1cy1zdGlja2VyL2NvcmUtc3RhdHVzLXN0aWNrZXIuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjbXMtcHJvZmlsZS1jb250cmFjdGluZm9yXCIsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvcmVQYWdlTGlzdENvbXBvbmVudCxcclxuICAgIENvcmVPcmdUcmVlQ29tcG9uZW50LFxyXG4gICAgQ29yZVN0YXR1c1N0aWNrZXJDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL2NvbnRyYWN0aW5mb3IuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vY29udHJhY3RpbmZvci5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRyYWN0SW5mb3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgbG9hZGluZyE6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIGhpZGVIZWFkZXIhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIG91dGVyRmlsdGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUZpbHRlck9wZXJhdG9yW10gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgXHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3N0aWNrZXInKSBzdGlja2VyITogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvKiBTVEFSVDogTG9jYWwgZmlsdGVyIHBhcmFtcyAqL1xyXG4gIG9yZ0lkcyE6IG51bWJlcltdO1xyXG4gIC8qIEVORDogTG9jYWwgZmlsdGVyIHBhcmFtcyAqL1xyXG5cclxuICAvKlxyXG4gIFByb3BlcnRpZXMgYmVpbmcgcGFzc2VkIHRvIGNvcmUtcGFnZS1saXN0XHJcbiAgKi9cclxuICBkYXRlUGVyaW9kQ29tcGFyaXNvbkZvcjogc3RyaW5nID0gJ3N0YXJ0RGF0ZSc7XHJcbiAgZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleTogRW51bVRyYW5zbGF0ZUtleSA9IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX0NPTlRSQUNUX1NUQVJUREFURV9GSUxURVI7XHJcbiAgc3RhdHVzSW5jbHVzaW9uRm9yOiBzdHJpbmcgPSAnd29ya1N0YXR1c0lkJztcclxuICBzdGF0dXNJbmNsdXNpb25Gb3JMYWJlbEtleTogRW51bVRyYW5zbGF0ZUtleSA9IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9QQVJBTVNfRU1QTE9ZRUVfU1RBVFVTX0lOO1xyXG4gIHN0YXR1c09wdGlvbnNBcGk6IGFwaSA9IGFwaS5IVV9FTVBMT1lFRV9DVl9HRVRfRU1QTE9ZRUVfU1RBVFVTX0xJU1Q7XHJcblxyXG4gIGlkOiBhbnk7XHJcblxyXG4gIHRpdGxlID0gRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfVElUTEVfQ09OVFJBQ1RcclxuICBvdXRlclBhcmFtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuXHJcbiAgb3V0ZXJGaWx0ZXJPcGVyYXRvcnM6IElGaWx0ZXJPcGVyYXRvcltdID0gW1xyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ29yZ0lkJyxcclxuICAgICAgb3BlcmF0b3I6IEVudW1GaWx0ZXJPcGVyYXRvci5FUVVBTFxyXG4gICAgfVxyXG4gIF1cclxuICBvdXRlckluT3BlcmF0b3JzOiBJSW5PcGVyYXRvcltdID0gW1xyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ29yZ0lkJyxcclxuICAgICAgdmFsdWVzOiB0aGlzLm9yZ0lkcyB8fCBbXVxyXG4gICAgfVxyXG4gIF1cclxuICBvdXRlclNvcnQ6IElTb3J0SXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICBmaWVsZDogXCJqb2JPcmRlck51bVwiLFxyXG4gICAgICBzb3J0RGlyZWN0aW9uOiBFbnVtU29ydERpcmVjdGlvbi5BU0NcclxuICAgIH1cclxuICBdXHJcbiAgYXBpRGVmaW5pdGlvbjogSUNvcmVQYWdlTGlzdEFwaURlZmluaXRpb24gPSB7XHJcbiAgICBxdWVyeUxpc3RSZWxhdGl2ZVBhdGg6IGFwaS5IVV9DT05UUkFDVF9RVUVSWV9MSVNULFxyXG4gIH1cclxuXHJcbiAgY3J1ZDogSUNvcmVQYWdlTGlzdENSVUQgPSB7XHJcbiAgICBkZWxldGVJZHM6IGFwaS5IVV9DT05UUkFDVF9ERUxFVEVfSURTLFxyXG4gICAgdG9nZ2xlQXBwcm92ZUlkczogYXBpLkhVX0NPTlRSQUNUX0NIQU5HRVNUQVRVU0FQUFJPVkVcclxuICB9XHJcblxyXG4gIGF2YXRhclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgY29sdW1uczogSUNvcmVUYWJsZUNvbHVtbkl0ZW1bXSA9IFtcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9DT01NT05fSUQsXHJcbiAgICAgIGZpZWxkOiAnaWQnLFxyXG4gICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgIHR5cGU6ICdudW1iZXInLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMTAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9DT05UUkFDVF9TVEFUVVNOQU1FLFxyXG4gICAgICBmaWVsZDogJ3N0YXR1c05hbWUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDE1MCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX0NPTlRSQUNUX0VNUExPWUVFQ09ERSxcclxuICAgICAgZmllbGQ6ICdlbXBsb3llZUNvZGUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDcwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfQ09OVFJBQ1RfRU1QTE9ZRUVOQU1FLFxyXG4gICAgICBmaWVsZDogJ2VtcGxveWVlTmFtZScsXHJcbiAgICAgIHNob3dGb3JDb25maXJtYXRpb246IHRydWUsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMjUwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TVEFGRl9QUk9GSUxFX1BPU0lUSU9OX05BTUUsXHJcbiAgICAgIGZpZWxkOiAncG9zaXRpb25OYW1lJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAyNTAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9DT05UUkFDVF9PUkdOQU1FLFxyXG4gICAgICBmaWVsZDogJ29yZ05hbWUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDIwMCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX0NPTlRSQUNUX0NPTlRSQUNUTk8sXHJcbiAgICAgIGZpZWxkOiAnY29udHJhY3RObycsXHJcbiAgICAgIHNob3dGb3JDb25maXJtYXRpb246IHRydWUsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMTUwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfQ09OVFJBQ1RfQ09OVFJBQ1RUWVBFTkFNRSxcclxuICAgICAgZmllbGQ6ICdjb250cmFjdFR5cGVOYW1lJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAyNTAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9DT05UUkFDVF9TVEFSVERBVEUsXHJcbiAgICAgIGZpZWxkOiAnc3RhcnREYXRlJyxcclxuICAgICAgdHlwZTogJ2RhdGUnLFxyXG4gICAgICBwaXBlOiBFbnVtQ29yZVRhYmxlUGlwZVR5cGUuREFURSxcclxuICAgICAgYWxpZ246ICdjZW50ZXInLFxyXG4gICAgICB3aWR0aDogMTIwLFxyXG4gICAgfSxcclxuXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX0NPTlRSQUNUX0VYUElSRURBVEUsXHJcbiAgICAgIGZpZWxkOiAnZXhwaXJlRGF0ZScsXHJcbiAgICAgIHR5cGU6ICdkYXRlJyxcclxuICAgICAgcGlwZTogRW51bUNvcmVUYWJsZVBpcGVUeXBlLkRBVEUsXHJcbiAgICAgIGFsaWduOiAnY2VudGVyJyxcclxuICAgICAgd2lkdGg6IDEyMCxcclxuICAgIH0sXHJcblxyXG4gICAgLy8gY2jhuq9jIGzDoCB2aeG6v3QgY29kZSDhu58gxJHDonlcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfQ09OVFJBQ1RfTElRVUlEQVRJT05fREFURSxcclxuICAgICAgZmllbGQ6ICdsaXF1aWRhdGlvbkRhdGUnLFxyXG4gICAgICB0eXBlOiAnZGF0ZScsXHJcbiAgICAgIHBpcGU6IEVudW1Db3JlVGFibGVQaXBlVHlwZS5EQVRFLFxyXG4gICAgICBhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgIHdpZHRoOiAxMDAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9DT05UUkFDVF9MSVFVSURBVElPTl9SRUFTT04sXHJcbiAgICAgIGZpZWxkOiAnbGlxdWlkYXRpb25SZWFzb24nLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDIwMCxcclxuICAgIH0sXHJcblxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9DT05UUkFDVF9TSUdOREFURSxcclxuICAgICAgZmllbGQ6ICdzaWduRGF0ZScsXHJcbiAgICAgIHR5cGU6ICdkYXRlJyxcclxuICAgICAgcGlwZTogRW51bUNvcmVUYWJsZVBpcGVUeXBlLkRBVEUsXHJcbiAgICAgIGFsaWduOiAnY2VudGVyJyxcclxuICAgICAgd2lkdGg6IDEwMCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX0NPTlRSQUNUX1NJR05FUk5BTUUsXHJcbiAgICAgIGZpZWxkOiAnc2lnbmVyTmFtZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMTUwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfQ09OVFJBQ1RfU0lHTkVSUE9TSVRJT04sXHJcbiAgICAgIGZpZWxkOiAnc2lnbmVyUG9zaXRpb24nLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDI1MCxcclxuICAgIH0sXHJcblxyXG4gIF1cclxuXHJcbiAgZGVmYXVsdEF2YXRhciE6IHN0cmluZztcclxuXHJcbiAgZWRpdFJvdXRlOiBJQ29yZVBhZ2VMaXN0RWRpdFJvdXRpbmcgPSB7XHJcbiAgICBhdXhpbGlhcnk6ICdwb3B1cEF1eCdcclxuICB9XHJcbiAgLyogRW5kIFByb3BlcnRpZXMgYmVpbmcgcGFzc2VkIHRvIGNvcmUtcGFnZS1saXN0ICovXHJcbiAgZ2VuZXJhdGVUZW1wbGF0ZVJlcXVlc3QhOiBJR2VuZXJhdGVUZW1wbGF0ZVJlcXVlc3Q7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmFzOiBSYW5kb21BdmF0YXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBvcmdhbml6YXRpb25TZXJ2aWNlOiBPcmdhbml6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBhcHBTZXJ2aWNlOiBBcHBTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb3JlUGFnZUxpc3RTZXJ2aWNlOiBDb3JlUGFnZUxpc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb250cmFjdEluZm9yU2VydmljZTogQ29udHJhY3RJbmZvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtbHMpO1xyXG4gICAgdGhpcy5kZWZhdWx0QXZhdGFyID0gcmFzLmdldCgpO1xyXG4gICAgLyogR2V0IG9yZ0lkcyBzdGFydHVwIHZhbHVlICovXHJcbiAgICBjb25zdCBuZXdPcmdJZHM6IG51bWJlcltdID0gW107XHJcbiAgICB0aGlzLm9yZ2FuaXphdGlvblNlcnZpY2Uuc3RhdHVzJC52YWx1ZS5hY3RpdmVLZXlzLm1hcCh4ID0+IG5ld09yZ0lkcy5wdXNoKE51bWJlcih4KSkpXHJcbiAgICB0aGlzLm9uT3JnSWRzQ2hhbmdlKG5ld09yZ0lkcylcclxuICAgIHRoaXMuY29yZVBhZ2VMaXN0SW5zdGFuY2VOdW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICB9XHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgIHRoaXMubGFuZyA9IHg7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVUZW1wbGF0ZVJlcXVlc3QgPSB7XHJcbiAgICAgICAgZXhDb2RlOiAnSFVfQ09OVFJBQ1QnLFxyXG4gICAgICAgIGxhbmc6IHhcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0aWNrZXJGaWx0ZXIgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGMgPT4gYy5maWVsZCA9PT0gJ3N0YXR1c05hbWUnKTtcclxuICAgIGlmICghIXN0aWNrZXJGaWx0ZXIubGVuZ3RoKSBzdGlja2VyRmlsdGVyWzBdLnRlbXBsYXRlUmVmID0gdGhpcy5zdGlja2VyO1xyXG4gIH1cclxuXHJcbiAgb25PcmdJZHNDaGFuZ2Uob3JnSWRzOiBudW1iZXJbXSkge1xyXG4gICAgdGhpcy5vcmdJZHMgPSBvcmdJZHNcclxuICAgIHRoaXMub3V0ZXJJbk9wZXJhdG9ycyA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGZpZWxkOiAnb3JnSWQnLFxyXG4gICAgICAgIHZhbHVlczogb3JnSWRzXHJcbiAgICAgIH1cclxuICAgIF1cclxuICB9XHJcblxyXG4gIG9uUm93Q2xpY2soZTogYW55KSB7XHJcbiAgICB0aGlzLmlkID0gZS5pZFxyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRJZHM6IG51bWJlcltdID0gW107XHJcbiAgXHJcbiAgbGlzdEluc3RhbmNlITogbnVtYmVyO1xyXG4gIFxyXG4gIG9uSW5zdGFuY2VDcmVhdGVkKGV2ZW50OiBudW1iZXIpIHtcclxuICAgIHRoaXMubGlzdEluc3RhbmNlID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBhbGVydE9wdGlvbnM6IElBbGVydE9wdGlvbnMgPSB7XHJcbiAgICBhdXRvQ2xvc2U6IHRydWUsXHJcbiAgICBrZWVwQWZ0ZXJSb3V0ZUNoYW5nZTogdHJ1ZSxcclxuICAgIHRpbWVDbG9zZTogMTAwMDBcclxuICB9O1xyXG5cclxuICBlbXBsb3llZUlkITogbnVtYmVyO1xyXG5cclxuICBjdXN0b21pemVTZWxlY3RlZElkc0NoYW5nZShlOiBudW1iZXJbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcyA9IGU7XHJcblxyXG4gICAgdGhpcy5jb250cmFjdEluZm9yU2VydmljZS5jaGFuZ2VMaXN0RW1wbG95ZWVTZWxlY3RlZChlKTtcclxuICAgIHRoaXMuY29udHJhY3RJbmZvclNlcnZpY2UuY3VycmVudExpc3RFbXBsb3llZVNlbGVjdGVkLnN1YnNjcmliZShpZCA9PiB0aGlzLmVtcGxveWVlSWQgPSBpZFswXSk7XHJcbiAgfVxyXG5cclxuICBjb3JlUGFnZUxpc3RJbnN0YW5jZU51bWJlciE6IG51bWJlcjtcclxuXHJcbiAgb25Db3JlUGFnZUhlYWRlckJ1dHRvbkNsaWNrKGU6IElDb3JlQnV0dG9uVk5TKSB7XHJcbiAgICBsZXQgZmlsZW5hbWUgPSAnJztcclxuXHJcbiAgICBzd2l0Y2ggKGUuY29kZSkge1xyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfTElRVUlEQVRFX0NPTlRSQUNUOlxyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG91dGxldHM6IHtcclxuICAgICAgICAgICAgICAgICAgY29yZVBhZ2VMaXN0QXV4OiBbXHJcbiAgICAgICAgICAgICAgICAgICAgYnRvYSgnMCcpLFxyXG4gICAgICAgICAgICAgICAgICAgIHsgbGlzdEluc3RhbmNlOiB0aGlzLmNvcmVQYWdlTGlzdEluc3RhbmNlTnVtYmVyIH0sXHJcbiAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIC8vIGLhuq9uIHJhIHRow7RuZyBiw6FvIGNoxrBhIGNo4buNbiBi4bqjbiBnaGlcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKHRoaXMubWxzLnRyYW5zKCdOT19TRUxFQ1RFRF9JRF9UT19ERUxFVEUnKSwgdGhpcy5hbGVydE9wdGlvbnMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfUFJJTlQ6XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJZHMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uud2Fybih0aGlzLm1scy50cmFucygnUFJJTlRfT05FX1JFQ09SRCcpLCBhbGVydE9wdGlvbnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuaHR0cC5nZXQoYXBpLkhVX0NPTlRSQUNUX0dFVF9GSUxFX05BTUUgKyB0aGlzLnNlbGVjdGVkSWRzWzBdLnRvU3RyaW5nKCkpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBmaWxlbmFtZSA9IHJlc3BvbnNlLmlubmVyQm9keTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICAgICAgdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQoYXBpLkhVX0NPTlRSQUNUX0dFVF9QUk9CQVRJT05fQ09OVFJBQ1QsIHtcclxuICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcclxuICAgICAgICAgICAgICBwYXJhbXM6IHsgaWQ6IHRoaXMuc2VsZWN0ZWRJZHNbMF0udG9TdHJpbmcoKSB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCbG9iKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnR5cGUgPT09ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkb3dubG9hZFVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBsaW5rLmhyZWYgPSBkb3dubG9hZFVybDtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgLy8gbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgJzJDX0JOVl8yMDA4XycgKyBmaWxlbmFtZSArICcuZG9jJyk7XHJcbiAgICAgICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlbmFtZSArICcuZG9jJyk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChkb3dubG9hZFVybCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QganNvbkJvZHkgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGpzb25Cb2R5KTtcclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhkYXRhLm1lc3NhZ2VDb2RlLCBhbGVydE9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKGRhdGEubWVzc2FnZUNvZGUsIGFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY21zLXByb2ZpbGUtY29udHJhY3RpbmZvci1jb250YWluZXJcIj5cclxuICA8Y29yZS1wYWdlLWxpc3RcclxuICAgIFthcGlEZWZpbml0aW9uXT1cImFwaURlZmluaXRpb25cIlxyXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICBbZWRpdFJvdXRlXT1cImVkaXRSb3V0ZVwiXHJcbiAgICBbY3J1ZF09XCJjcnVkXCJcclxuICAgIFt0aXRsZV09XCJ0aXRsZVwiXHJcbiAgICBbbGVmdF09XCJvcmdUcmVlXCJcclxuICAgIFtvdXRlclBhcmFtJF09XCJvdXRlclBhcmFtJFwiXHJcbiAgICBbbm9ybWFsTW9kZV09XCJ0cnVlXCJcclxuICAgIFtvdXRlckluT3BlcmF0b3JzXT1cIm91dGVySW5PcGVyYXRvcnNcIlxyXG4gICAgW2F1dG9SZXNpemVXaXRoV2luZG93XT1cInRydWVcIlxyXG4gICAgKHJvd0NsaWNrKT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXHJcbiAgICBbc2hvd1BhcmFtS2l0XT1cInRydWVcIlxyXG4gICAgW2RhdGVQZXJpb2RDb21wYXJpc29uRm9yXT1cImRhdGVQZXJpb2RDb21wYXJpc29uRm9yXCJcclxuICAgIFtkYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5XT1cImRhdGVQZXJpb2RDb21wYXJpc29uRm9yTGFiZWxLZXlcIlxyXG4gICAgW3N0YXR1c0luY2x1c2lvbkZvcl09XCJzdGF0dXNJbmNsdXNpb25Gb3JcIlxyXG4gICAgW3N0YXR1c0luY2x1c2lvbkZvckxhYmVsS2V5XT1cInN0YXR1c0luY2x1c2lvbkZvckxhYmVsS2V5XCJcclxuICAgIFtzdGF0dXNPcHRpb25zQXBpXT1cInN0YXR1c09wdGlvbnNBcGlcIlxyXG4gICAgW2dlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0XT1cImdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0XCJcclxuICAgIChjb3JlUGFnZUhlYWRlckJ1dHRvbkNsaWNrKT1cIm9uQ29yZVBhZ2VIZWFkZXJCdXR0b25DbGljaygkZXZlbnQpXCJcclxuICAgIFtpbXBvcnRQcmV2aWV3UGF0aF09XCInY29udHJhY3QtaW1wb3J0J1wiXHJcbiAgICBbb3V0ZXJTb3J0XT1cIm91dGVyU29ydFwiXHJcbiAgICBbZnJvemVuXT1cIjNcIlxyXG5cclxuICAgIChzZWxlY3RlZElkc0NoYW5nZSk9XCJjdXN0b21pemVTZWxlY3RlZElkc0NoYW5nZSgkZXZlbnQpXCJcclxuICAgIChvbkluc3RhbmNlQ3JlYXRlZCk9XCJvbkluc3RhbmNlQ3JlYXRlZCgkZXZlbnQpXCJcclxuICA+XHJcbiAgPC9jb3JlLXBhZ2UtbGlzdD5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNvcmdUcmVlPlxyXG4gICAgPGNvcmUtb3JnLXRyZWUgWyhuZ01vZGVsKV09XCJvcmdJZHNcIiAobmdNb2RlbENoYW5nZSk9XCJvbk9yZ0lkc0NoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICA8L2NvcmUtb3JnLXRyZWU+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNzdGlja2VyIGxldC1jb2RlPVwiY29udGV4dC5zdGF0dXNOYW1lXCI+XHJcbiAgICA8Y29yZS1zdGF0dXMtc3RpY2tlciBbY29kZV09XCJjb2RlXCI+PC9jb3JlLXN0YXR1cy1zdGlja2VyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PiJdfQ==
@@ -77,7 +77,7 @@ export class CoreContractSeekerComponent extends ContractInforComponent {
77
77
  this.listChange.emit(e);
78
78
  }
79
79
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreContractSeekerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: CoreContractSeekerComponent, isStandalone: true, selector: "core-contract-seeker", inputs: { height: "height", preDefinedOuterFilter$: "preDefinedOuterFilter$", useTheseColumns: "useTheseColumns", excludedColumns: "excludedColumns", multiMode: "multiMode", preDefinedOuterParam$: "preDefinedOuterParam$", excludedIds$: "excludedIds$" }, outputs: { rowDoubleClick: "rowDoubleClick", rowClick: "rowClick", selectedIdsChange: "selectedIdsChange", selectedDataChange: "selectedDataChange", columnsInit: "columnsInit", listChange: "listChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-contract-seeker-container\">\r\n <core-page-list \r\n [height]=\"height\"\r\n [hideCheck]=\"true\" [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [left]=\"orgTree\" *ngIf=\"!!avatar\" \r\n [outerParam$]=\"outerParam$\"\r\n [outerFilter$]=\"outerFilter$\"\r\n [outerInOperators]=\"outerInOperators\"\r\n [excludedIds$]=\"excludedIds$\"\r\n [outerFilterOperators]=\"outerFilterOperators\" [autoResizeWithWindow]=\"true\" [seekerMode]=\"true\" \r\n (rowDoubleClick)=\"onRowDoubleClick($event)\" (rowClick)=\"onRowSingleClick($event)\"\r\n (listChange)=\"onListChange($event)\"\r\n ></core-page-list>\r\n\r\n <ng-template #orgTree>\r\n <core-org-tree [(ngModel)]=\"orgIds\" [height]=\"orgTreeHeight\" [accessorMode]=\"orgTreeMode\"\r\n (ngModelChange)=\"onOrgIdsChange($event)\" [fullWidthMode]=\"false\">\r\n </core-org-tree>\r\n </ng-template>\r\n\r\n <ng-template #avatar let-avatar=\"context.avatar\">\r\n <img [src]=\"avatar || defaultAvatar\" appImageErrorResolver>\r\n </ng-template>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "enableFilterKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "statusOptions$", "showOrgParam", "showOrgParamDropdown", "hideGeneralSearch", "hideDatePeriodComparison", "hideStatusInclusion", "filterOperators$", "camelCaseDtoStatusIdField", "gridStatusColumn", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerFilter$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$", "disableDialogInformationLines", "changeTracking", "primaryKey", "changedItems$", "tabMode", "paramRows", "disableFilterHub"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady", "listChange"] }] }); }
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: CoreContractSeekerComponent, isStandalone: true, selector: "core-contract-seeker", inputs: { height: "height", preDefinedOuterFilter$: "preDefinedOuterFilter$", useTheseColumns: "useTheseColumns", hideOrgTree: "hideOrgTree", excludedColumns: "excludedColumns", multiMode: "multiMode", preDefinedOuterParam$: "preDefinedOuterParam$", excludedIds$: "excludedIds$" }, outputs: { rowDoubleClick: "rowDoubleClick", rowClick: "rowClick", selectedIdsChange: "selectedIdsChange", selectedDataChange: "selectedDataChange", columnsInit: "columnsInit", listChange: "listChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-contract-seeker-container\">\r\n <core-page-list \r\n [height]=\"height\"\r\n [hideCheck]=\"true\" [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [useTheseColumns]=\"useTheseColumns\" [hideOrgTree]=\"hideOrgTree\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [left]=\"!hideOrgTree ? orgTree : undefined\" *ngIf=\"!!avatar\" \r\n [outerParam$]=\"outerParam$\"\r\n [outerFilter$]=\"outerFilter$\"\r\n [outerInOperators]=\"outerInOperators\"\r\n [excludedIds$]=\"excludedIds$\"\r\n [outerFilterOperators]=\"outerFilterOperators\" [autoResizeWithWindow]=\"true\" [seekerMode]=\"true\" \r\n (rowDoubleClick)=\"onRowDoubleClick($event)\" (rowClick)=\"onRowSingleClick($event)\"\r\n (listChange)=\"onListChange($event)\"\r\n ></core-page-list>\r\n\r\n <ng-template #orgTree>\r\n <core-org-tree [(ngModel)]=\"orgIds\" [height]=\"orgTreeHeight\" [accessorMode]=\"orgTreeMode\"\r\n (ngModelChange)=\"onOrgIdsChange($event)\" [fullWidthMode]=\"false\">\r\n </core-org-tree>\r\n </ng-template>\r\n\r\n <ng-template #avatar let-avatar=\"context.avatar\">\r\n <img [src]=\"avatar || defaultAvatar\" appImageErrorResolver>\r\n </ng-template>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "enableFilterKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "statusOptions$", "showOrgParam", "showOrgParamDropdown", "hideGeneralSearch", "hideDatePeriodComparison", "hideStatusInclusion", "filterOperators$", "camelCaseDtoStatusIdField", "gridStatusColumn", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "useTheseColumns", "hideOrgTree", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerFilter$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$", "disableDialogInformationLines", "changeTracking", "primaryKey", "changedItems$", "tabMode", "paramRows", "disableFilterHub"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady", "listChange"] }] }); }
81
81
  }
82
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreContractSeekerComponent, decorators: [{
83
83
  type: Component,
@@ -86,13 +86,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
86
86
  FormsModule,
87
87
  CoreOrgTreeComponent,
88
88
  CorePageListComponent,
89
- ], template: "<div class=\"core-contract-seeker-container\">\r\n <core-page-list \r\n [height]=\"height\"\r\n [hideCheck]=\"true\" [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [left]=\"orgTree\" *ngIf=\"!!avatar\" \r\n [outerParam$]=\"outerParam$\"\r\n [outerFilter$]=\"outerFilter$\"\r\n [outerInOperators]=\"outerInOperators\"\r\n [excludedIds$]=\"excludedIds$\"\r\n [outerFilterOperators]=\"outerFilterOperators\" [autoResizeWithWindow]=\"true\" [seekerMode]=\"true\" \r\n (rowDoubleClick)=\"onRowDoubleClick($event)\" (rowClick)=\"onRowSingleClick($event)\"\r\n (listChange)=\"onListChange($event)\"\r\n ></core-page-list>\r\n\r\n <ng-template #orgTree>\r\n <core-org-tree [(ngModel)]=\"orgIds\" [height]=\"orgTreeHeight\" [accessorMode]=\"orgTreeMode\"\r\n (ngModelChange)=\"onOrgIdsChange($event)\" [fullWidthMode]=\"false\">\r\n </core-org-tree>\r\n </ng-template>\r\n\r\n <ng-template #avatar let-avatar=\"context.avatar\">\r\n <img [src]=\"avatar || defaultAvatar\" appImageErrorResolver>\r\n </ng-template>\r\n</div>" }]
89
+ ], template: "<div class=\"core-contract-seeker-container\">\r\n <core-page-list \r\n [height]=\"height\"\r\n [hideCheck]=\"true\" [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [useTheseColumns]=\"useTheseColumns\" [hideOrgTree]=\"hideOrgTree\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [left]=\"!hideOrgTree ? orgTree : undefined\" *ngIf=\"!!avatar\" \r\n [outerParam$]=\"outerParam$\"\r\n [outerFilter$]=\"outerFilter$\"\r\n [outerInOperators]=\"outerInOperators\"\r\n [excludedIds$]=\"excludedIds$\"\r\n [outerFilterOperators]=\"outerFilterOperators\" [autoResizeWithWindow]=\"true\" [seekerMode]=\"true\" \r\n (rowDoubleClick)=\"onRowDoubleClick($event)\" (rowClick)=\"onRowSingleClick($event)\"\r\n (listChange)=\"onListChange($event)\"\r\n ></core-page-list>\r\n\r\n <ng-template #orgTree>\r\n <core-org-tree [(ngModel)]=\"orgIds\" [height]=\"orgTreeHeight\" [accessorMode]=\"orgTreeMode\"\r\n (ngModelChange)=\"onOrgIdsChange($event)\" [fullWidthMode]=\"false\">\r\n </core-org-tree>\r\n </ng-template>\r\n\r\n <ng-template #avatar let-avatar=\"context.avatar\">\r\n <img [src]=\"avatar || defaultAvatar\" appImageErrorResolver>\r\n </ng-template>\r\n</div>" }]
90
90
  }], propDecorators: { height: [{
91
91
  type: Input
92
92
  }], preDefinedOuterFilter$: [{
93
93
  type: Input
94
94
  }], useTheseColumns: [{
95
95
  type: Input
96
+ }], hideOrgTree: [{
97
+ type: Input
96
98
  }], excludedColumns: [{
97
99
  type: Input
98
100
  }], multiMode: [{
@@ -114,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
114
116
  }], listChange: [{
115
117
  type: Output
116
118
  }] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb250cmFjdC1zZWVrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtY29udHJhY3Qtc2Vla2VyL2NvcmUtY29udHJhY3Qtc2Vla2VyL2NvcmUtY29udHJhY3Qtc2Vla2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbnRyYWN0LXNlZWtlci9jb3JlLWNvbnRyYWN0LXNlZWtlci9jb3JlLWNvbnRyYWN0LXNlZWtlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUd0RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkRBQTJELENBQUM7Ozs7QUFjekcsTUFB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RUQsb0JBQW9CLENBQUMsQ0FBUTtRQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUFNO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxZQUFZLENBQUMsQ0FBUTtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN6QixDQUFDOzhHQXJGVSwyQkFBMkI7a0dBQTNCLDJCQUEyQix1a0JDekJ4Qyw2ckNBdUJNLHlERE5GLFlBQVksa0lBQ1osV0FBVywrVkFDWCxvQkFBb0Isc1JBQ3BCLHFCQUFxQjs7MkZBS1osMkJBQTJCO2tCQVp2QyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIscUJBQXFCO3FCQUN0Qjs4QkFNUSxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29udHJhY3RJbmZvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyYWN0aW5mb3IvY29udHJhY3RpbmZvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvcmVPcmdUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1vcmctdHJlZS9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZVBhZ2VMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1wYWdlLWxpc3QvY29yZS1wYWdlLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW51bUNvcmVTZWVrZXJDb2x1bW5Db250cmFjdCB9IGZyb20gJy4uLy4uL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci9FbnVtQ29yZVNlZWtlckNvbHVtbic7XHJcbmltcG9ydCB7IElGaWx0ZXJPcGVyYXRvciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvSVF1ZXJ5TGlzdFJlcXVlc3QnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlIH0gZnJvbSAnLi4vLi4vY29yZS1vcmctdHJlZS9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1jb250cmFjdC1zZWVrZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb3JlT3JnVHJlZUNvbXBvbmVudCxcclxuICAgIENvcmVQYWdlTGlzdENvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWNvbnRyYWN0LXNlZWtlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1jb250cmFjdC1zZWVrZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUNvbnRyYWN0U2Vla2VyQ29tcG9uZW50IGV4dGVuZHMgQ29udHJhY3RJbmZvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIGhlaWdodCE6IG51bWJlcjtcclxuXHJcbiAgb3ZlcnJpZGUgdGl0bGUgPSBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9USVRMRV9DT05UUkFDVF9TRUVLRVI7XHJcblxyXG4gIEBJbnB1dCgpIHByZURlZmluZWRPdXRlckZpbHRlciQhOiBCZWhhdmlvclN1YmplY3Q8SUZpbHRlck9wZXJhdG9yW10+OyAvLyBmcm9tIDIwMjQtMDYtMTJcclxuXHJcbiAgQElucHV0KCkgdXNlVGhlc2VDb2x1bW5zITogc3RyaW5nW107XHJcbiAgQElucHV0KCkgZXhjbHVkZWRDb2x1bW5zITogRW51bUNvcmVTZWVrZXJDb2x1bW5Db250cmFjdFtdO1xyXG4gIEBJbnB1dCgpIG11bHRpTW9kZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcHJlRGVmaW5lZE91dGVyUGFyYW0kITogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgQElucHV0KCkgZXhjbHVkZWRJZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXJbXT4oW10pO1xyXG4gIFxyXG4gIEBPdXRwdXQoKSByb3dEb3VibGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkSWRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZERhdGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNvbHVtbnNJbml0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBsaXN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcclxuXHJcbiAgb3JnVHJlZU1vZGU6IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUgPSBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlLkFDVElWQVRFRF9JTkhFUklUQU5DRVxyXG5cclxuICBsYXlvdXRTZXJ2aWNlID0gaW5qZWN0KExheW91dFNlcnZpY2UpXHJcbiAgb3JnVHJlZUhlaWdodCE6IG51bWJlcjtcclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snaGVpZ2h0J10pIHtcclxuICAgICAgdGhpcy5vcmdUcmVlSGVpZ2h0ID0gY2hhbmdlc1snaGVpZ2h0J10uY3VycmVudFZhbHVlIC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmNvcmVQYWdlSGVhZGVySGVpZ2h0IC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmJhc2ljU3BhY2luZ1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geClcclxuICAgIClcclxuICAgIGlmICh0aGlzLnByZURlZmluZWRPdXRlclBhcmFtJCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnByZURlZmluZWRPdXRlclBhcmFtJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5vdXRlclBhcmFtJC52YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLm91dGVyUGFyYW0kLm5leHQoeCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm91dGVyUGFyYW0kLm5leHQoe1xyXG4gICAgICAgICAgICAgIC4uLnRoaXMub3V0ZXJQYXJhbSQudmFsdWUsXHJcbiAgICAgICAgICAgICAgLi4ueFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMucHJlRGVmaW5lZE91dGVyRmlsdGVyJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5vdXRlckZpbHRlciQudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5vdXRlckZpbHRlciQubmV4dCh4KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMub3V0ZXJGaWx0ZXIkLm5leHQoe1xyXG4gICAgICAgICAgICAgIC4uLnRoaXMub3V0ZXJGaWx0ZXIkLnZhbHVlLFxyXG4gICAgICAgICAgICAgIC4uLnhcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgfVxyXG4gICAgdGhpcy5jb2x1bW5zSW5pdC5lbWl0KHRoaXMuY29sdW1ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgb25Sb3dEb3VibGVDbGljayhlOiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5tdWx0aU1vZGUpIHRoaXMucm93RG91YmxlQ2xpY2suZW1pdChlKVxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RlZElkc0NoYW5nZShlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRJZHNDaGFuZ2UuZW1pdChlKVxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RlZERhdGFDaGFuZ2UoZTogYW55W10pIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRhQ2hhbmdlLmVtaXQoZSlcclxuICB9XHJcblxyXG4gIG9uUm93U2luZ2xlQ2xpY2soZTogYW55KSB7XHJcbiAgICB0aGlzLnJvd0NsaWNrLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBvbkxpc3RDaGFuZ2UoZTogYW55W10pIHtcclxuICAgIHRoaXMubGlzdENoYW5nZS5lbWl0KGUpXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29yZS1jb250cmFjdC1zZWVrZXItY29udGFpbmVyXCI+XHJcbiAgICA8Y29yZS1wYWdlLWxpc3QgXHJcbiAgICAgICAgW2hlaWdodF09XCJoZWlnaHRcIlxyXG4gICAgICAgIFtoaWRlQ2hlY2tdPVwidHJ1ZVwiIFthcGlEZWZpbml0aW9uXT1cImFwaURlZmluaXRpb25cIiBbY29sdW1uc109XCJjb2x1bW5zXCIgW2VkaXRSb3V0ZV09XCJlZGl0Um91dGVcIiBbY3J1ZF09XCJjcnVkXCJcclxuICAgICAgICBbdGl0bGVdPVwidGl0bGVcIiBbbGVmdF09XCJvcmdUcmVlXCIgKm5nSWY9XCIhIWF2YXRhclwiIFxyXG4gICAgICAgIFtvdXRlclBhcmFtJF09XCJvdXRlclBhcmFtJFwiXHJcbiAgICAgICAgW291dGVyRmlsdGVyJF09XCJvdXRlckZpbHRlciRcIlxyXG4gICAgICAgIFtvdXRlckluT3BlcmF0b3JzXT1cIm91dGVySW5PcGVyYXRvcnNcIlxyXG4gICAgICAgIFtleGNsdWRlZElkcyRdPVwiZXhjbHVkZWRJZHMkXCJcclxuICAgICAgICBbb3V0ZXJGaWx0ZXJPcGVyYXRvcnNdPVwib3V0ZXJGaWx0ZXJPcGVyYXRvcnNcIiBbYXV0b1Jlc2l6ZVdpdGhXaW5kb3ddPVwidHJ1ZVwiIFtzZWVrZXJNb2RlXT1cInRydWVcIiBcclxuICAgICAgICAocm93RG91YmxlQ2xpY2spPVwib25Sb3dEb3VibGVDbGljaygkZXZlbnQpXCIgKHJvd0NsaWNrKT1cIm9uUm93U2luZ2xlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgKGxpc3RDaGFuZ2UpPVwib25MaXN0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID48L2NvcmUtcGFnZS1saXN0PlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjb3JnVHJlZT5cclxuICAgICAgICA8Y29yZS1vcmctdHJlZSBbKG5nTW9kZWwpXT1cIm9yZ0lkc1wiIFtoZWlnaHRdPVwib3JnVHJlZUhlaWdodFwiIFthY2Nlc3Nvck1vZGVdPVwib3JnVHJlZU1vZGVcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk9yZ0lkc0NoYW5nZSgkZXZlbnQpXCIgW2Z1bGxXaWR0aE1vZGVdPVwiZmFsc2VcIj5cclxuICAgICAgICA8L2NvcmUtb3JnLXRyZWU+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYXZhdGFyIGxldC1hdmF0YXI9XCJjb250ZXh0LmF2YXRhclwiPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJhdmF0YXIgfHwgZGVmYXVsdEF2YXRhclwiIGFwcEltYWdlRXJyb3JSZXNvbHZlcj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb250cmFjdC1zZWVrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtY29udHJhY3Qtc2Vla2VyL2NvcmUtY29udHJhY3Qtc2Vla2VyL2NvcmUtY29udHJhY3Qtc2Vla2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbnRyYWN0LXNlZWtlci9jb3JlLWNvbnRyYWN0LXNlZWtlci9jb3JlLWNvbnRyYWN0LXNlZWtlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUd0RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkRBQTJELENBQUM7Ozs7QUFjekcsTUFB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RUQsb0JBQW9CLENBQUMsQ0FBUTtRQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUFNO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxZQUFZLENBQUMsQ0FBUTtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN6QixDQUFDOzhHQXRGVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixtbUJDekJ4Qyw0eENBdUJNLHlERE5GLFlBQVksa0lBQ1osV0FBVywrVkFDWCxvQkFBb0Isc1JBQ3BCLHFCQUFxQjs7MkZBS1osMkJBQTJCO2tCQVp2QyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIscUJBQXFCO3FCQUN0Qjs4QkFNUSxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb250cmFjdEluZm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udHJhY3RpbmZvci9jb250cmFjdGluZm9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVudW1UcmFuc2xhdGVLZXkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29yZU9yZ1RyZWVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlUGFnZUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXBhZ2UtbGlzdC9jb3JlLXBhZ2UtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZVNlZWtlckNvbHVtbkNvbnRyYWN0IH0gZnJvbSAnLi4vLi4vY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyL0VudW1Db3JlU2Vla2VyQ29sdW1uJztcclxuaW1wb3J0IHsgSUZpbHRlck9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9JUXVlcnlMaXN0UmVxdWVzdCc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUgfSBmcm9tICcuLi8uLi9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLWNvbnRyYWN0LXNlZWtlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvcmVPcmdUcmVlQ29tcG9uZW50LFxyXG4gICAgQ29yZVBhZ2VMaXN0Q29tcG9uZW50LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtY29udHJhY3Qtc2Vla2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWNvbnRyYWN0LXNlZWtlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlQ29udHJhY3RTZWVrZXJDb21wb25lbnQgZXh0ZW5kcyBDb250cmFjdEluZm9yQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQElucHV0KCkgaGVpZ2h0ITogbnVtYmVyO1xyXG5cclxuICBvdmVycmlkZSB0aXRsZSA9IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX1RJVExFX0NPTlRSQUNUX1NFRUtFUjtcclxuXHJcbiAgQElucHV0KCkgcHJlRGVmaW5lZE91dGVyRmlsdGVyJCE6IEJlaGF2aW9yU3ViamVjdDxJRmlsdGVyT3BlcmF0b3JbXT47IC8vIGZyb20gMjAyNC0wNi0xMlxyXG5cclxuICBASW5wdXQoKSB1c2VUaGVzZUNvbHVtbnMhOiBzdHJpbmdbXTtcclxuICBASW5wdXQoKSBoaWRlT3JnVHJlZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZXhjbHVkZWRDb2x1bW5zITogRW51bUNvcmVTZWVrZXJDb2x1bW5Db250cmFjdFtdO1xyXG4gIEBJbnB1dCgpIG11bHRpTW9kZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcHJlRGVmaW5lZE91dGVyUGFyYW0kITogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgQElucHV0KCkgZXhjbHVkZWRJZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXJbXT4oW10pO1xyXG4gIFxyXG4gIEBPdXRwdXQoKSByb3dEb3VibGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkSWRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZERhdGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNvbHVtbnNJbml0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBsaXN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcclxuXHJcbiAgb3JnVHJlZU1vZGU6IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUgPSBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlLkFDVElWQVRFRF9JTkhFUklUQU5DRVxyXG5cclxuICBsYXlvdXRTZXJ2aWNlID0gaW5qZWN0KExheW91dFNlcnZpY2UpXHJcbiAgb3JnVHJlZUhlaWdodCE6IG51bWJlcjtcclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snaGVpZ2h0J10pIHtcclxuICAgICAgdGhpcy5vcmdUcmVlSGVpZ2h0ID0gY2hhbmdlc1snaGVpZ2h0J10uY3VycmVudFZhbHVlIC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmNvcmVQYWdlSGVhZGVySGVpZ2h0IC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmJhc2ljU3BhY2luZ1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geClcclxuICAgIClcclxuICAgIGlmICh0aGlzLnByZURlZmluZWRPdXRlclBhcmFtJCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnByZURlZmluZWRPdXRlclBhcmFtJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5vdXRlclBhcmFtJC52YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLm91dGVyUGFyYW0kLm5leHQoeCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm91dGVyUGFyYW0kLm5leHQoe1xyXG4gICAgICAgICAgICAgIC4uLnRoaXMub3V0ZXJQYXJhbSQudmFsdWUsXHJcbiAgICAgICAgICAgICAgLi4ueFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMucHJlRGVmaW5lZE91dGVyRmlsdGVyJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5vdXRlckZpbHRlciQudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5vdXRlckZpbHRlciQubmV4dCh4KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMub3V0ZXJGaWx0ZXIkLm5leHQoe1xyXG4gICAgICAgICAgICAgIC4uLnRoaXMub3V0ZXJGaWx0ZXIkLnZhbHVlLFxyXG4gICAgICAgICAgICAgIC4uLnhcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgfVxyXG4gICAgdGhpcy5jb2x1bW5zSW5pdC5lbWl0KHRoaXMuY29sdW1ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgb25Sb3dEb3VibGVDbGljayhlOiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5tdWx0aU1vZGUpIHRoaXMucm93RG91YmxlQ2xpY2suZW1pdChlKVxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RlZElkc0NoYW5nZShlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRJZHNDaGFuZ2UuZW1pdChlKVxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RlZERhdGFDaGFuZ2UoZTogYW55W10pIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRhQ2hhbmdlLmVtaXQoZSlcclxuICB9XHJcblxyXG4gIG9uUm93U2luZ2xlQ2xpY2soZTogYW55KSB7XHJcbiAgICB0aGlzLnJvd0NsaWNrLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBvbkxpc3RDaGFuZ2UoZTogYW55W10pIHtcclxuICAgIHRoaXMubGlzdENoYW5nZS5lbWl0KGUpXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29yZS1jb250cmFjdC1zZWVrZXItY29udGFpbmVyXCI+XHJcbiAgICA8Y29yZS1wYWdlLWxpc3QgXHJcbiAgICAgICAgW2hlaWdodF09XCJoZWlnaHRcIlxyXG4gICAgICAgIFtoaWRlQ2hlY2tdPVwidHJ1ZVwiIFthcGlEZWZpbml0aW9uXT1cImFwaURlZmluaXRpb25cIiBbY29sdW1uc109XCJjb2x1bW5zXCIgW3VzZVRoZXNlQ29sdW1uc109XCJ1c2VUaGVzZUNvbHVtbnNcIiBbaGlkZU9yZ1RyZWVdPVwiaGlkZU9yZ1RyZWVcIiBbZWRpdFJvdXRlXT1cImVkaXRSb3V0ZVwiIFtjcnVkXT1cImNydWRcIlxyXG4gICAgICAgIFt0aXRsZV09XCJ0aXRsZVwiIFtsZWZ0XT1cIiFoaWRlT3JnVHJlZSA/IG9yZ1RyZWUgOiB1bmRlZmluZWRcIiAqbmdJZj1cIiEhYXZhdGFyXCIgXHJcbiAgICAgICAgW291dGVyUGFyYW0kXT1cIm91dGVyUGFyYW0kXCJcclxuICAgICAgICBbb3V0ZXJGaWx0ZXIkXT1cIm91dGVyRmlsdGVyJFwiXHJcbiAgICAgICAgW291dGVySW5PcGVyYXRvcnNdPVwib3V0ZXJJbk9wZXJhdG9yc1wiXHJcbiAgICAgICAgW2V4Y2x1ZGVkSWRzJF09XCJleGNsdWRlZElkcyRcIlxyXG4gICAgICAgIFtvdXRlckZpbHRlck9wZXJhdG9yc109XCJvdXRlckZpbHRlck9wZXJhdG9yc1wiIFthdXRvUmVzaXplV2l0aFdpbmRvd109XCJ0cnVlXCIgW3NlZWtlck1vZGVdPVwidHJ1ZVwiIFxyXG4gICAgICAgIChyb3dEb3VibGVDbGljayk9XCJvblJvd0RvdWJsZUNsaWNrKCRldmVudClcIiAocm93Q2xpY2spPVwib25Sb3dTaW5nbGVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAobGlzdENoYW5nZSk9XCJvbkxpc3RDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvY29yZS1wYWdlLWxpc3Q+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNvcmdUcmVlPlxyXG4gICAgICAgIDxjb3JlLW9yZy10cmVlIFsobmdNb2RlbCldPVwib3JnSWRzXCIgW2hlaWdodF09XCJvcmdUcmVlSGVpZ2h0XCIgW2FjY2Vzc29yTW9kZV09XCJvcmdUcmVlTW9kZVwiXHJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uT3JnSWRzQ2hhbmdlKCRldmVudClcIiBbZnVsbFdpZHRoTW9kZV09XCJmYWxzZVwiPlxyXG4gICAgICAgIDwvY29yZS1vcmctdHJlZT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNhdmF0YXIgbGV0LWF2YXRhcj1cImNvbnRleHQuYXZhdGFyXCI+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cImF2YXRhciB8fCBkZWZhdWx0QXZhdGFyXCIgYXBwSW1hZ2VFcnJvclJlc29sdmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+Il19