@fundamental-ngx/platform 0.43.33 → 0.43.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/list/free-content-list-item/free-content-list-item.component.mjs +5 -5
- package/esm2020/list/list.component.mjs +1 -5
- package/esm2020/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +1 -1
- package/esm2020/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +13 -3
- package/esm2020/table/components/table-header-row/table-header-row.component.mjs +3 -3
- package/esm2020/table/components/table-p13-dialog/table-p13-dialog.component.mjs +5 -3
- package/esm2020/table/components/table-row/table-row.component.mjs +3 -3
- package/esm2020/table/components/table-toolbar/table-toolbar.component.mjs +3 -3
- package/esm2020/table/table.component.mjs +15 -4
- package/esm2020/table-helpers/models/index.mjs +2 -1
- package/esm2020/table-helpers/models/table-cell-activate-event.model.mjs +12 -0
- package/esm2020/table-helpers/services/table-row.service.mjs +9 -1
- package/esm2020/upload-collection/dialogs/move-to/move-to.component.mjs +1 -1
- package/esm2020/upload-collection/upload-collection/upload-collection.component.mjs +1 -1
- package/esm2020/value-help-dialog/components/select-tab/select-tab.component.mjs +3 -3
- package/esm2020/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +3 -3
- package/esm2020/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +1 -1
- package/fesm2015/fundamental-ngx-platform-list.mjs +4 -8
- package/fesm2015/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
- package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-table-helpers.mjs +21 -1
- package/fesm2015/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-table.mjs +37 -14
- package/fesm2015/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-upload-collection.mjs +2 -2
- package/fesm2015/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-value-help-dialog.mjs +4 -4
- package/fesm2015/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-variant-management.mjs +1 -1
- package/fesm2015/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-list.mjs +4 -8
- package/fesm2020/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
- package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-table-helpers.mjs +21 -1
- package/fesm2020/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-table.mjs +36 -14
- package/fesm2020/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-upload-collection.mjs +2 -2
- package/fesm2020/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-value-help-dialog.mjs +4 -4
- package/fesm2020/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-variant-management.mjs +1 -1
- package/fesm2020/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fundamental-ngx-platform-v0.43.34.tgz +0 -0
- package/list/free-content-list-item/free-content-list-item.component.d.ts +1 -1
- package/package.json +4 -4
- package/schematics/ng-add/index.js +1 -1
- package/table/components/table-cell-header-popover/table-cell-header-popover.component.d.ts +5 -0
- package/table/table.component.d.ts +7 -3
- package/table-helpers/models/index.d.ts +1 -0
- package/table-helpers/models/table-cell-activate-event.model.d.ts +10 -0
- package/table-helpers/services/table-row.service.d.ts +7 -0
- package/fundamental-ngx-platform-v0.43.33.tgz +0 -0
package/esm2020/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs
CHANGED
|
@@ -4,6 +4,7 @@ import { PopoverComponent } from '@fundamental-ngx/core/popover';
|
|
|
4
4
|
import { FILTER_STRING_STRATEGY, FilterableColumnDataType, SortDirection, Table, TableColumn, TableService } from '@fundamental-ngx/platform/table-helpers';
|
|
5
5
|
import { BehaviorSubject } from 'rxjs';
|
|
6
6
|
import { startWith, takeUntil } from 'rxjs/operators';
|
|
7
|
+
import { ListComponent } from '@fundamental-ngx/platform/list';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "@angular/common";
|
|
9
10
|
import * as i2 from "@fundamental-ngx/core/table";
|
|
@@ -101,12 +102,18 @@ export class TableCellHeaderPopoverComponent {
|
|
|
101
102
|
this._table.unfreeze(this.column.name, this.column.endFreezable);
|
|
102
103
|
this.popover?.close();
|
|
103
104
|
}
|
|
105
|
+
/** @hidden */
|
|
106
|
+
_popoverOpened(isOpen) {
|
|
107
|
+
if (isOpen) {
|
|
108
|
+
this._listComponent?._setCurrentActiveItemIndex(0);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
104
111
|
}
|
|
105
112
|
TableCellHeaderPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableCellHeaderPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
106
|
-
TableCellHeaderPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableCellHeaderPopoverComponent, selector: "fdp-table-cell-header-popover", inputs: { column: "column", popoverTemplate: "popoverTemplate", disabled: "disabled", columnFrozen: "columnFrozen", filteringFromHeaderDisabled: "filteringFromHeaderDisabled", columnIndex: "columnIndex" }, providers: [DestroyedService], viewQueries: [{ propertyName: "popover", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "_popoverItems", predicate: TemplateDirective, descendants: true }], ngImport: i0, template: "<fd-popover\n [disabled]=\"disabled\"\n [noArrow]=\"true\"\n fd-table-popover\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n *ngIf=\"!popoverTemplate; else projectedPopover\"\n [triggers]=\"_headerPopoverTriggers\"\n>\n <fdp-list [noBorder]=\"true\" [navigated]=\"true\">\n <fdp-free-content-list-item *ngFor=\"let item of _popoverItems$.asObservable() | async\">\n <ng-template [ngTemplateOutlet]=\"item\" [ngTemplateOutletContext]=\"{ popover: popover }\"></ng-template>\n </
|
|
113
|
+
TableCellHeaderPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableCellHeaderPopoverComponent, selector: "fdp-table-cell-header-popover", inputs: { column: "column", popoverTemplate: "popoverTemplate", disabled: "disabled", columnFrozen: "columnFrozen", filteringFromHeaderDisabled: "filteringFromHeaderDisabled", columnIndex: "columnIndex" }, providers: [DestroyedService], viewQueries: [{ propertyName: "popover", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "_listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "_popoverItems", predicate: TemplateDirective, descendants: true }], ngImport: i0, template: "<fd-popover\n [disabled]=\"disabled\"\n [noArrow]=\"true\"\n fd-table-popover\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n *ngIf=\"!popoverTemplate; else projectedPopover\"\n [triggers]=\"_headerPopoverTriggers\"\n (isOpenChange)=\"_popoverOpened($event)\"\n>\n <fdp-list [noBorder]=\"true\" [navigated]=\"true\">\n <li fdp-free-content-list-item *ngFor=\"let item of _popoverItems$.asObservable() | async\">\n <ng-template [ngTemplateOutlet]=\"item\" [ngTemplateOutletContext]=\"{ popover: popover }\"></ng-template>\n </li>\n </fdp-list>\n</fd-popover>\n<ng-template #projectedPopover>\n <ng-template\n [ngTemplateOutlet]=\"popoverTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: _popoverItems$.asObservable() }\"\n ></ng-template>\n</ng-template>\n\n<ng-container *ngIf=\"column?.sortable\">\n <ng-template fdkTemplate=\"sortingAscPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n role=\"button\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC)\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC)\"\n >\n <span fd-list-icon glyph=\"sort-ascending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortAsc' | fdTranslate }}</span>\n </a>\n </ng-template>\n <ng-template fdkTemplate=\"sortingDescPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n role=\"button\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC)\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC)\"\n >\n <span fd-list-icon glyph=\"sort-descending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortDesc' | fdTranslate }}</span>\n </a>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.groupable\">\n <ng-template fdkTemplate=\"groupPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n role=\"button\"\n (click)=\"_setColumnHeaderGroupBy(column.key)\"\n (keydown.enter)=\"_setColumnHeaderGroupBy(column.key)\"\n >\n <span fd-list-title>{{ 'platformTable.headerMenuGroup' | fdTranslate }}</span>\n </a>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.freezable || column?.endFreezable\">\n <ng-template fdkTemplate=\"freezePopoverItem\" let-popover=\"popover\">\n <ng-container *ngIf=\"!columnFrozen; else unfreezeTpl\">\n <a fd-list-link [focusable]=\"true\" (click)=\"_freeze()\" role=\"button\" (keydown.enter)=\"_freeze()\">\n <span fd-list-title>\n {{\n (!column.endFreezable\n ? columnIndex > 0\n ? 'platformTable.headerMenuFreezePlural'\n : 'platformTable.headerMenuFreeze'\n : 'platformTable.headerMenuEndFreeze'\n ) | fdTranslate\n }}</span\n >\n </a>\n </ng-container>\n <ng-template #unfreezeTpl>\n <a fd-list-link [focusable]=\"true\" (click)=\"_unFreeze()\" role=\"button\" (keydown.enter)=\"_unFreeze()\">\n <span fd-list-title>{{\n (columnIndex > 0 ? 'platformTable.headerMenuUnfreezePlural' : 'platformTable.headerMenuUnfreeze')\n | fdTranslate\n }}</span>\n </a>\n </ng-template>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.filterable && !filteringFromHeaderDisabled\">\n <ng-template fdkTemplate=\"filteringPopoverItem\" let-popover=\"popover\">\n <a fd-list-link style=\"cursor: auto\" [focusable]=\"true\">\n <i fd-list-icon glyph=\"filter\"></i>\n <div fd-form-item [horizontal]=\"true\" (click)=\"$event.stopPropagation()\">\n <label fd-form-label [for]=\"'fdp-table-column-filtering-' + column.name\">{{\n 'platformTable.headerMenuFilter' | fdTranslate\n }}</label>\n <input\n fd-form-control\n [id]=\"'fdp-table-column-filtering-' + column.name\"\n (keydown.enter)=\"_setColumnHeaderFilterBy(column.key, $any($event.target)?.value)\"\n />\n </div>\n </a>\n </ng-template>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.TablePopoverDirective, selector: "[fdTablePopover], [fd-table-popover]" }, { kind: "component", type: i3.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i3.InputFormControlDirective, selector: "input[fd-form-control]" }, { kind: "component", type: i3.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i3.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "inlineHelpLabel", "id"] }, { kind: "component", type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i5.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i5.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role", "ariaHidden"] }, { kind: "directive", type: i5.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i6.TemplateDirective, selector: "[fdkTemplate], [fdTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i7.ListComponent, selector: "fdp-list", inputs: ["selectedItems", "ariaSetsize", "ariaMultiselectable", "loadTitle", "loadingLabel", "delayTime", "itemSize", "loadMore", "loadOnScroll", "role", "listType", "maxHeight", "noBorder", "scrollOffsetPercentage", "selection", "selectionMode", "value", "rowSelection", "dataSource", "navigated", "navigationIndicator", "hasByLine", "hasObject", "unreadIndicator", "interceptTabKey"], outputs: ["selectedItemChange"] }, { kind: "component", type: i7.FreeContentListItemComponent, selector: "fdp-free-content-list-item, li[fdp-free-content-list-item]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
107
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableCellHeaderPopoverComponent, decorators: [{
|
|
108
115
|
type: Component,
|
|
109
|
-
args: [{ selector: 'fdp-table-cell-header-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DestroyedService], template: "<fd-popover\n [disabled]=\"disabled\"\n [noArrow]=\"true\"\n fd-table-popover\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n *ngIf=\"!popoverTemplate; else projectedPopover\"\n [triggers]=\"_headerPopoverTriggers\"\n>\n <fdp-list [noBorder]=\"true\" [navigated]=\"true\">\n <fdp-free-content-list-item *ngFor=\"let item of _popoverItems$.asObservable() | async\">\n <ng-template [ngTemplateOutlet]=\"item\" [ngTemplateOutletContext]=\"{ popover: popover }\"></ng-template>\n </
|
|
116
|
+
args: [{ selector: 'fdp-table-cell-header-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DestroyedService], template: "<fd-popover\n [disabled]=\"disabled\"\n [noArrow]=\"true\"\n fd-table-popover\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n *ngIf=\"!popoverTemplate; else projectedPopover\"\n [triggers]=\"_headerPopoverTriggers\"\n (isOpenChange)=\"_popoverOpened($event)\"\n>\n <fdp-list [noBorder]=\"true\" [navigated]=\"true\">\n <li fdp-free-content-list-item *ngFor=\"let item of _popoverItems$.asObservable() | async\">\n <ng-template [ngTemplateOutlet]=\"item\" [ngTemplateOutletContext]=\"{ popover: popover }\"></ng-template>\n </li>\n </fdp-list>\n</fd-popover>\n<ng-template #projectedPopover>\n <ng-template\n [ngTemplateOutlet]=\"popoverTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: _popoverItems$.asObservable() }\"\n ></ng-template>\n</ng-template>\n\n<ng-container *ngIf=\"column?.sortable\">\n <ng-template fdkTemplate=\"sortingAscPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n role=\"button\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC)\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC)\"\n >\n <span fd-list-icon glyph=\"sort-ascending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortAsc' | fdTranslate }}</span>\n </a>\n </ng-template>\n <ng-template fdkTemplate=\"sortingDescPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n role=\"button\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC)\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC)\"\n >\n <span fd-list-icon glyph=\"sort-descending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortDesc' | fdTranslate }}</span>\n </a>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.groupable\">\n <ng-template fdkTemplate=\"groupPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n role=\"button\"\n (click)=\"_setColumnHeaderGroupBy(column.key)\"\n (keydown.enter)=\"_setColumnHeaderGroupBy(column.key)\"\n >\n <span fd-list-title>{{ 'platformTable.headerMenuGroup' | fdTranslate }}</span>\n </a>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.freezable || column?.endFreezable\">\n <ng-template fdkTemplate=\"freezePopoverItem\" let-popover=\"popover\">\n <ng-container *ngIf=\"!columnFrozen; else unfreezeTpl\">\n <a fd-list-link [focusable]=\"true\" (click)=\"_freeze()\" role=\"button\" (keydown.enter)=\"_freeze()\">\n <span fd-list-title>\n {{\n (!column.endFreezable\n ? columnIndex > 0\n ? 'platformTable.headerMenuFreezePlural'\n : 'platformTable.headerMenuFreeze'\n : 'platformTable.headerMenuEndFreeze'\n ) | fdTranslate\n }}</span\n >\n </a>\n </ng-container>\n <ng-template #unfreezeTpl>\n <a fd-list-link [focusable]=\"true\" (click)=\"_unFreeze()\" role=\"button\" (keydown.enter)=\"_unFreeze()\">\n <span fd-list-title>{{\n (columnIndex > 0 ? 'platformTable.headerMenuUnfreezePlural' : 'platformTable.headerMenuUnfreeze')\n | fdTranslate\n }}</span>\n </a>\n </ng-template>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.filterable && !filteringFromHeaderDisabled\">\n <ng-template fdkTemplate=\"filteringPopoverItem\" let-popover=\"popover\">\n <a fd-list-link style=\"cursor: auto\" [focusable]=\"true\">\n <i fd-list-icon glyph=\"filter\"></i>\n <div fd-form-item [horizontal]=\"true\" (click)=\"$event.stopPropagation()\">\n <label fd-form-label [for]=\"'fdp-table-column-filtering-' + column.name\">{{\n 'platformTable.headerMenuFilter' | fdTranslate\n }}</label>\n <input\n fd-form-control\n [id]=\"'fdp-table-column-filtering-' + column.name\"\n (keydown.enter)=\"_setColumnHeaderFilterBy(column.key, $any($event.target)?.value)\"\n />\n </div>\n </a>\n </ng-template>\n</ng-container>\n" }]
|
|
110
117
|
}], propDecorators: { column: [{
|
|
111
118
|
type: Input
|
|
112
119
|
}], popoverTemplate: [{
|
|
@@ -125,5 +132,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
125
132
|
}], _popoverItems: [{
|
|
126
133
|
type: ViewChildren,
|
|
127
134
|
args: [TemplateDirective]
|
|
135
|
+
}], _listComponent: [{
|
|
136
|
+
type: ViewChild,
|
|
137
|
+
args: [ListComponent]
|
|
128
138
|
}] } });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyL3RhYmxlLWNlbGwtaGVhZGVyLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci90YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUVULFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBWSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBaUIsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRixPQUFPLEVBRUgsc0JBQXNCLEVBQ3RCLHdCQUF3QixFQUN4QixhQUFhLEVBQ2IsS0FBSyxFQUNMLFdBQVcsRUFDWCxZQUFZLEVBQ2YsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFTdEQsTUFBTSxPQUFPLCtCQUErQjtJQVA1QztRQWdCSSx1Q0FBdUM7UUFFdkMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixvQ0FBb0M7UUFFcEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFF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QWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZXN0cm95ZWRTZXJ2aWNlLCBOdWxsYWJsZSwgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50LCBUcmlnZ2VyQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHtcbiAgICBDb2xsZWN0aW9uU3RyaW5nRmlsdGVyLFxuICAgIEZJTFRFUl9TVFJJTkdfU1RSQVRFR1ksXG4gICAgRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlLFxuICAgIFNvcnREaXJlY3Rpb24sXG4gICAgVGFibGUsXG4gICAgVGFibGVDb2x1bW4sXG4gICAgVGFibGVTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtEZXN0cm95ZWRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNlbGxIZWFkZXJQb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIENvbHVtbiBkZWZpbml0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sdW1uOiBUYWJsZUNvbHVtbjtcblxuICAgIC8qKiBDdXN0b20gcG9wb3ZlciB0ZW1wbGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBvcG92ZXJUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBpcyBkaXNhYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY29sdW1uIGlzIGZyb3plbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHVtbkZyb3plbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGZpbHRlcmluZyBmcm9tIGhlYWRlciBpcyBkaXNhYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbHRlcmluZ0Zyb21IZWFkZXJEaXNhYmxlZDogTnVsbGFibGU8Ym9vbGVhbj4gPSBmYWxzZTtcblxuICAgIC8qKiBDb2x1bW4gaW5kZXggKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHVtbkluZGV4OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoUG9wb3ZlckNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcG9wb3ZlcjogTnVsbGFibGU8UG9wb3ZlckNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oVGVtcGxhdGVEaXJlY3RpdmUpXG4gICAgX3BvcG92ZXJJdGVtczogUXVlcnlMaXN0PFRlbXBsYXRlRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2hlYWRlclBvcG92ZXJUcmlnZ2VyczogVHJpZ2dlckNvbmZpZ1tdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICB0cmlnZ2VyOiAnY2xpY2snLFxuICAgICAgICAgICAgb3BlbkFjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIGNsb3NlQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRyaWdnZXI6ICdrZXlkb3duLmVudGVyJyxcbiAgICAgICAgICAgIG9wZW5BY3Rpb246IHRydWUsXG4gICAgICAgICAgICBjbG9zZUFjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIHN0b3BQcm9wYWdhdGlvbjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0cmlnZ2VyOiAna2V5ZG93bi5zcGFjZScsXG4gICAgICAgICAgICBvcGVuQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgY2xvc2VBY3Rpb246IHRydWUsXG4gICAgICAgICAgICBzdG9wUHJvcGFnYXRpb246IHRydWVcbiAgICAgICAgfVxuICAgIF07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wb3BvdmVySXRlbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+W10+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IFNPUlRfRElSRUNUSU9OID0gU29ydERpcmVjdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBpbmplY3QoRGVzdHJveWVkU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYmxlU2VydmljZSA9IGluamVjdChUYWJsZVNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJsZSA9IGluamVjdChUYWJsZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcG9wb3Zlckl0ZW1zLmNoYW5nZXMucGlwZShzdGFydFdpdGgobnVsbCksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9wb3BvdmVySXRlbXMkLm5leHQodGhpcy5fcG9wb3Zlckl0ZW1zLm1hcCgodCkgPT4gdC50ZW1wbGF0ZVJlZikpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRDb2x1bW5IZWFkZXJTb3J0QnkoZmllbGQ6IFRhYmxlQ29sdW1uWydrZXknXSwgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5zZXRTb3J0KFt7IGZpZWxkLCBkaXJlY3Rpb24gfV0pO1xuICAgICAgICB0aGlzLnBvcG92ZXI/LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0Q29sdW1uSGVhZGVyR3JvdXBCeShmaWVsZDogVGFibGVDb2x1bW5bJ2tleSddKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fdGFibGVTZXJ2aWNlLmdldFRhYmxlU3RhdGUoKTtcbiAgICAgICAgaWYgKHN0YXRlLmdyb3VwQnk/Lmxlbmd0aCA9PT0gMSAmJiBzdGF0ZS5ncm91cEJ5WzBdLmZpZWxkID09PSBmaWVsZCkge1xuICAgICAgICAgICAgLy8gcmVzZXQgZ3JvdXBpbmcsIGlmIGFscmVhZHkgZ3JvdXBlZCBieSB0aGlzIGZpZWxkXG4gICAgICAgICAgICB0aGlzLl90YWJsZVNlcnZpY2Uuc2V0R3JvdXBzKFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5zZXRHcm91cHMoW3sgZmllbGQsIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbi5OT05FLCBzaG93QXNDb2x1bW46IHRydWUgfV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0Q29sdW1uSGVhZGVyRmlsdGVyQnkoZmllbGQ6IFRhYmxlQ29sdW1uWydrZXknXSwgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl90YWJsZVNlcnZpY2UucmVtb3ZlRmlsdGVycyhbZmllbGRdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2xsZWN0aW9uRmlsdGVyOiBDb2xsZWN0aW9uU3RyaW5nRmlsdGVyID0ge1xuICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIHR5cGU6IEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZS5TVFJJTkcsXG4gICAgICAgICAgICBzdHJhdGVneTogRklMVEVSX1NUUklOR19TVFJBVEVHWS5DT05UQUlOUyxcbiAgICAgICAgICAgIGV4Y2x1ZGU6IGZhbHNlXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fdGFibGVTZXJ2aWNlLmFkZEZpbHRlcnMoW2NvbGxlY3Rpb25GaWx0ZXJdKTtcbiAgICAgICAgdGhpcy5wb3BvdmVyPy5jbG9zZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2ZyZWV6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGUuZnJlZXplVG9Db2x1bW4odGhpcy5jb2x1bW4ubmFtZSwgdGhpcy5jb2x1bW4uZW5kRnJlZXphYmxlKTtcbiAgICAgICAgdGhpcy5wb3BvdmVyPy5jbG9zZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3VuRnJlZXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZS51bmZyZWV6ZSh0aGlzLmNvbHVtbi5uYW1lLCB0aGlzLmNvbHVtbi5lbmRGcmVlemFibGUpO1xuICAgICAgICB0aGlzLnBvcG92ZXI/LmNsb3NlKCk7XG4gICAgfVxufVxuIiwiPGZkLXBvcG92ZXJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtub0Fycm93XT1cInRydWVcIlxuICAgIGZkLXRhYmxlLXBvcG92ZXJcbiAgICBbZm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCJcbiAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxuICAgICpuZ0lmPVwiIXBvcG92ZXJUZW1wbGF0ZTsgZWxzZSBwcm9qZWN0ZWRQb3BvdmVyXCJcbiAgICBbdHJpZ2dlcnNdPVwiX2hlYWRlclBvcG92ZXJUcmlnZ2Vyc1wiXG4+XG4gICAgPGZkcC1saXN0IFtub0JvcmRlcl09XCJ0cnVlXCIgW25hdmlnYXRlZF09XCJ0cnVlXCI+XG4gICAgICAgIDxmZHAtZnJlZS1jb250ZW50LWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfcG9wb3Zlckl0ZW1zJC5hc09ic2VydmFibGUoKSB8IGFzeW5jXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHBvcG92ZXI6IHBvcG92ZXIgfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZmRwLWZyZWUtY29udGVudC1saXN0LWl0ZW0+XG4gICAgPC9mZHAtbGlzdD5cbjwvZmQtcG9wb3Zlcj5cbjxuZy10ZW1wbGF0ZSAjcHJvamVjdGVkUG9wb3Zlcj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9wb3ZlclRlbXBsYXRlIVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogX3BvcG92ZXJJdGVtcyQuYXNPYnNlcnZhYmxlKCkgfVwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uPy5zb3J0YWJsZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cInNvcnRpbmdBc2NQb3BvdmVySXRlbVwiIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9zZXRDb2x1bW5IZWFkZXJTb3J0QnkoY29sdW1uLmtleSwgU09SVF9ESVJFQ1RJT04uQVNDKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJfc2V0Q29sdW1uSGVhZGVyU29ydEJ5KGNvbHVtbi5rZXksIFNPUlRfRElSRUNUSU9OLkFTQylcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBmZC1saXN0LWljb24gZ2x5cGg9XCJzb3J0LWFzY2VuZGluZ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgJ3BsYXRmb3JtVGFibGUuaGVhZGVyTWVudVNvcnRBc2MnIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cInNvcnRpbmdEZXNjUG9wb3Zlckl0ZW1cIiBsZXQtcG9wb3Zlcj1cInBvcG92ZXJcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIGZkLWxpc3QtbGlua1xuICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJfc2V0Q29sdW1uSGVhZGVyU29ydEJ5KGNvbHVtbi5rZXksIFNPUlRfRElSRUNUSU9OLkRFU0MpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIl9zZXRDb2x1bW5IZWFkZXJTb3J0QnkoY29sdW1uLmtleSwgU09SVF9ESVJFQ1RJT04uREVTQylcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBmZC1saXN0LWljb24gZ2x5cGg9XCJzb3J0LWRlc2NlbmRpbmdcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7ICdwbGF0Zm9ybVRhYmxlLmhlYWRlck1lbnVTb3J0RGVzYycgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbj8uZ3JvdXBhYmxlXCI+XG4gICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiZ3JvdXBQb3BvdmVySXRlbVwiIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9zZXRDb2x1bW5IZWFkZXJHcm91cEJ5KGNvbHVtbi5rZXkpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIl9zZXRDb2x1bW5IZWFkZXJHcm91cEJ5KGNvbHVtbi5rZXkpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51R3JvdXAnIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4/LmZyZWV6YWJsZSB8fCBjb2x1bW4/LmVuZEZyZWV6YWJsZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZyZWV6ZVBvcG92ZXJJdGVtXCIgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sdW1uRnJvemVuOyBlbHNlIHVuZnJlZXplVHBsXCI+XG4gICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgW2ZvY3VzYWJsZV09XCJ0cnVlXCIgKGNsaWNrKT1cIl9mcmVlemUoKVwiIChrZXl1cC5lbnRlcik9XCJfZnJlZXplKClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgKCFjb2x1bW4uZW5kRnJlZXphYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBjb2x1bW5JbmRleCA+IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51RnJlZXplUGx1cmFsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdwbGF0Zm9ybVRhYmxlLmhlYWRlck1lbnVGcmVlemUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51RW5kRnJlZXplJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKSB8IGZkVHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN1bmZyZWV6ZVRwbD5cbiAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayBbZm9jdXNhYmxlXT1cInRydWVcIiAoY2xpY2spPVwiX3VuRnJlZXplKClcIiAoa2V5dXAuZW50ZXIpPVwiX3VuRnJlZXplKClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7XG4gICAgICAgICAgICAgICAgICAgIChjb2x1bW5JbmRleCA+IDAgPyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51VW5mcmVlemVQbHVyYWwnIDogJ3BsYXRmb3JtVGFibGUuaGVhZGVyTWVudVVuZnJlZXplJylcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgZmRUcmFuc2xhdGVcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4/LmZpbHRlcmFibGUgJiYgIWZpbHRlcmluZ0Zyb21IZWFkZXJEaXNhYmxlZFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZpbHRlcmluZ1BvcG92ZXJJdGVtXCIgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCI+XG4gICAgICAgIDxkaXYgZmQtbGlzdC1saW5rIHN0eWxlPVwiY3Vyc29yOiBhdXRvXCI+XG4gICAgICAgICAgICA8aSBmZC1saXN0LWljb24gZ2x5cGg9XCJmaWx0ZXJcIj48L2k+XG4gICAgICAgICAgICA8ZGl2IGZkLWZvcm0taXRlbSBbaG9yaXpvbnRhbF09XCJ0cnVlXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmZC1mb3JtLWxhYmVsIFtmb3JdPVwiJ2ZkcC10YWJsZS1jb2x1bW4tZmlsdGVyaW5nLScgKyBjb2x1bW4ubmFtZVwiPnt7XG4gICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybVRhYmxlLmhlYWRlck1lbnVGaWx0ZXInIHwgZmRUcmFuc2xhdGVcbiAgICAgICAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGZkLWZvcm0tY29udHJvbFxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2ZkcC10YWJsZS1jb2x1bW4tZmlsdGVyaW5nLScgKyBjb2x1bW4ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIl9zZXRDb2x1bW5IZWFkZXJGaWx0ZXJCeShjb2x1bW4ua2V5LCAkYW55KCRldmVudC50YXJnZXQpPy52YWx1ZSlcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyL3RhYmxlLWNlbGwtaGVhZGVyLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci90YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUVULFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBWSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBaUIsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRixPQUFPLEVBRUgsc0JBQXNCLEVBQ3RCLHdCQUF3QixFQUN4QixhQUFhLEVBQ2IsS0FBSyxFQUNMLFdBQVcsRUFDWCxZQUFZLEVBQ2YsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBUy9ELE1BQU0sT0FBTywrQkFBK0I7SUFQNUM7UUFnQkksdUNBQXVDO1FBRXZDLGFBQVEsR0FBRyxLQUFLLENBQUM7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QURQLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQUtOLDJCQUEyQjtzQkFEMUIsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBS04sT0FBTztzQkFETixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFLOUMsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGlCQUFpQjtnQkFLL0IsY0FBYztzQkFEYixTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlc3Ryb3llZFNlcnZpY2UsIE51bGxhYmxlLCBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IFBvcG92ZXJDb21wb25lbnQsIFRyaWdnZXJDb25maWcgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcG9wb3Zlcic7XG5pbXBvcnQge1xuICAgIENvbGxlY3Rpb25TdHJpbmdGaWx0ZXIsXG4gICAgRklMVEVSX1NUUklOR19TVFJBVEVHWSxcbiAgICBGaWx0ZXJhYmxlQ29sdW1uRGF0YVR5cGUsXG4gICAgU29ydERpcmVjdGlvbixcbiAgICBUYWJsZSxcbiAgICBUYWJsZUNvbHVtbixcbiAgICBUYWJsZVNlcnZpY2Vcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS90YWJsZS1oZWxwZXJzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMaXN0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9saXN0JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGFibGUtY2VsbC1oZWFkZXItcG9wb3ZlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWNlbGwtaGVhZGVyLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbRGVzdHJveWVkU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDZWxsSGVhZGVyUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBDb2x1bW4gZGVmaW5pdGlvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHVtbjogVGFibGVDb2x1bW47XG5cbiAgICAvKiogQ3VzdG9tIHBvcG92ZXIgdGVtcGxhdGUuICovXG4gICAgQElucHV0KClcbiAgICBwb3BvdmVyVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHBvcG92ZXIgaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbHVtbiBpcyBmcm96ZW4uICovXG4gICAgQElucHV0KClcbiAgICBjb2x1bW5Gcm96ZW4gPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBmaWx0ZXJpbmcgZnJvbSBoZWFkZXIgaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBmaWx0ZXJpbmdGcm9tSGVhZGVyRGlzYWJsZWQ6IE51bGxhYmxlPGJvb2xlYW4+ID0gZmFsc2U7XG5cbiAgICAvKiogQ29sdW1uIGluZGV4ICovXG4gICAgQElucHV0KClcbiAgICBjb2x1bW5JbmRleDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKFBvcG92ZXJDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHBvcG92ZXI6IE51bGxhYmxlPFBvcG92ZXJDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKFRlbXBsYXRlRGlyZWN0aXZlKVxuICAgIF9wb3BvdmVySXRlbXM6IFF1ZXJ5TGlzdDxUZW1wbGF0ZURpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoTGlzdENvbXBvbmVudClcbiAgICBfbGlzdENvbXBvbmVudDogTGlzdENvbXBvbmVudDxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaGVhZGVyUG9wb3ZlclRyaWdnZXJzOiBUcmlnZ2VyQ29uZmlnW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRyaWdnZXI6ICdjbGljaycsXG4gICAgICAgICAgICBvcGVuQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgY2xvc2VBY3Rpb246IHRydWUsXG4gICAgICAgICAgICBzdG9wUHJvcGFnYXRpb246IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHJpZ2dlcjogJ2tleWRvd24uZW50ZXInLFxuICAgICAgICAgICAgb3BlbkFjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIGNsb3NlQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRyaWdnZXI6ICdrZXlkb3duLnNwYWNlJyxcbiAgICAgICAgICAgIG9wZW5BY3Rpb246IHRydWUsXG4gICAgICAgICAgICBjbG9zZUFjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIHN0b3BQcm9wYWdhdGlvbjogdHJ1ZVxuICAgICAgICB9XG4gICAgXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3BvcG92ZXJJdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPGFueT5bXT4oW10pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgU09SVF9ESVJFQ1RJT04gPSBTb3J0RGlyZWN0aW9uO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGluamVjdChEZXN0cm95ZWRTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFibGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYmxlID0gaW5qZWN0KFRhYmxlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wb3BvdmVySXRlbXMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJJdGVtcyQubmV4dCh0aGlzLl9wb3BvdmVySXRlbXMubWFwKCh0KSA9PiB0LnRlbXBsYXRlUmVmKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldENvbHVtbkhlYWRlclNvcnRCeShmaWVsZDogVGFibGVDb2x1bW5bJ2tleSddLCBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGVTZXJ2aWNlLnNldFNvcnQoW3sgZmllbGQsIGRpcmVjdGlvbiB9XSk7XG4gICAgICAgIHRoaXMucG9wb3Zlcj8uY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRDb2x1bW5IZWFkZXJHcm91cEJ5KGZpZWxkOiBUYWJsZUNvbHVtblsna2V5J10pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLl90YWJsZVNlcnZpY2UuZ2V0VGFibGVTdGF0ZSgpO1xuICAgICAgICBpZiAoc3RhdGUuZ3JvdXBCeT8ubGVuZ3RoID09PSAxICYmIHN0YXRlLmdyb3VwQnlbMF0uZmllbGQgPT09IGZpZWxkKSB7XG4gICAgICAgICAgICAvLyByZXNldCBncm91cGluZywgaWYgYWxyZWFkeSBncm91cGVkIGJ5IHRoaXMgZmllbGRcbiAgICAgICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5zZXRHcm91cHMoW10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdGFibGVTZXJ2aWNlLnNldEdyb3VwcyhbeyBmaWVsZCwgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uLk5PTkUsIHNob3dBc0NvbHVtbjogdHJ1ZSB9XSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRDb2x1bW5IZWFkZXJGaWx0ZXJCeShmaWVsZDogVGFibGVDb2x1bW5bJ2tleSddLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5yZW1vdmVGaWx0ZXJzKFtmaWVsZF0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb25GaWx0ZXI6IENvbGxlY3Rpb25TdHJpbmdGaWx0ZXIgPSB7XG4gICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgdHlwZTogRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlLlNUUklORyxcbiAgICAgICAgICAgIHN0cmF0ZWd5OiBGSUxURVJfU1RSSU5HX1NUUkFURUdZLkNPTlRBSU5TLFxuICAgICAgICAgICAgZXhjbHVkZTogZmFsc2VcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl90YWJsZVNlcnZpY2UuYWRkRmlsdGVycyhbY29sbGVjdGlvbkZpbHRlcl0pO1xuICAgICAgICB0aGlzLnBvcG92ZXI/LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZnJlZXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZS5mcmVlemVUb0NvbHVtbih0aGlzLmNvbHVtbi5uYW1lLCB0aGlzLmNvbHVtbi5lbmRGcmVlemFibGUpO1xuICAgICAgICB0aGlzLnBvcG92ZXI/LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdW5GcmVlemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlLnVuZnJlZXplKHRoaXMuY29sdW1uLm5hbWUsIHRoaXMuY29sdW1uLmVuZEZyZWV6YWJsZSk7XG4gICAgICAgIHRoaXMucG9wb3Zlcj8uY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wb3BvdmVyT3BlbmVkKGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLl9saXN0Q29tcG9uZW50Py5fc2V0Q3VycmVudEFjdGl2ZUl0ZW1JbmRleCgwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmZC1wb3BvdmVyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbbm9BcnJvd109XCJ0cnVlXCJcbiAgICBmZC10YWJsZS1wb3BvdmVyXG4gICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXG4gICAgW2ZvY3VzVHJhcHBlZF09XCJ0cnVlXCJcbiAgICAqbmdJZj1cIiFwb3BvdmVyVGVtcGxhdGU7IGVsc2UgcHJvamVjdGVkUG9wb3ZlclwiXG4gICAgW3RyaWdnZXJzXT1cIl9oZWFkZXJQb3BvdmVyVHJpZ2dlcnNcIlxuICAgIChpc09wZW5DaGFuZ2UpPVwiX3BvcG92ZXJPcGVuZWQoJGV2ZW50KVwiXG4+XG4gICAgPGZkcC1saXN0IFtub0JvcmRlcl09XCJ0cnVlXCIgW25hdmlnYXRlZF09XCJ0cnVlXCI+XG4gICAgICAgIDxsaSBmZHAtZnJlZS1jb250ZW50LWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfcG9wb3Zlckl0ZW1zJC5hc09ic2VydmFibGUoKSB8IGFzeW5jXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHBvcG92ZXI6IHBvcG92ZXIgfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbGk+XG4gICAgPC9mZHAtbGlzdD5cbjwvZmQtcG9wb3Zlcj5cbjxuZy10ZW1wbGF0ZSAjcHJvamVjdGVkUG9wb3Zlcj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9wb3ZlclRlbXBsYXRlIVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogX3BvcG92ZXJJdGVtcyQuYXNPYnNlcnZhYmxlKCkgfVwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uPy5zb3J0YWJsZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cInNvcnRpbmdBc2NQb3BvdmVySXRlbVwiIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3NldENvbHVtbkhlYWRlclNvcnRCeShjb2x1bW4ua2V5LCBTT1JUX0RJUkVDVElPTi5BU0MpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIl9zZXRDb2x1bW5IZWFkZXJTb3J0QnkoY29sdW1uLmtleSwgU09SVF9ESVJFQ1RJT04uQVNDKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtaWNvbiBnbHlwaD1cInNvcnQtYXNjZW5kaW5nXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51U29ydEFzYycgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwic29ydGluZ0Rlc2NQb3BvdmVySXRlbVwiIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3NldENvbHVtbkhlYWRlclNvcnRCeShjb2x1bW4ua2V5LCBTT1JUX0RJUkVDVElPTi5ERVNDKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJfc2V0Q29sdW1uSGVhZGVyU29ydEJ5KGNvbHVtbi5rZXksIFNPUlRfRElSRUNUSU9OLkRFU0MpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC1pY29uIGdseXBoPVwic29ydC1kZXNjZW5kaW5nXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51U29ydERlc2MnIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4/Lmdyb3VwYWJsZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImdyb3VwUG9wb3Zlckl0ZW1cIiBsZXQtcG9wb3Zlcj1cInBvcG92ZXJcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIGZkLWxpc3QtbGlua1xuICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9zZXRDb2x1bW5IZWFkZXJHcm91cEJ5KGNvbHVtbi5rZXkpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIl9zZXRDb2x1bW5IZWFkZXJHcm91cEJ5KGNvbHVtbi5rZXkpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51R3JvdXAnIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4/LmZyZWV6YWJsZSB8fCBjb2x1bW4/LmVuZEZyZWV6YWJsZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZyZWV6ZVBvcG92ZXJJdGVtXCIgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sdW1uRnJvemVuOyBlbHNlIHVuZnJlZXplVHBsXCI+XG4gICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgW2ZvY3VzYWJsZV09XCJ0cnVlXCIgKGNsaWNrKT1cIl9mcmVlemUoKVwiIHJvbGU9XCJidXR0b25cIiAoa2V5ZG93bi5lbnRlcik9XCJfZnJlZXplKClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgKCFjb2x1bW4uZW5kRnJlZXphYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBjb2x1bW5JbmRleCA+IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51RnJlZXplUGx1cmFsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdwbGF0Zm9ybVRhYmxlLmhlYWRlck1lbnVGcmVlemUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51RW5kRnJlZXplJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKSB8IGZkVHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN1bmZyZWV6ZVRwbD5cbiAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayBbZm9jdXNhYmxlXT1cInRydWVcIiAoY2xpY2spPVwiX3VuRnJlZXplKClcIiByb2xlPVwiYnV0dG9uXCIgKGtleWRvd24uZW50ZXIpPVwiX3VuRnJlZXplKClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7XG4gICAgICAgICAgICAgICAgICAgIChjb2x1bW5JbmRleCA+IDAgPyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51VW5mcmVlemVQbHVyYWwnIDogJ3BsYXRmb3JtVGFibGUuaGVhZGVyTWVudVVuZnJlZXplJylcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgZmRUcmFuc2xhdGVcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4/LmZpbHRlcmFibGUgJiYgIWZpbHRlcmluZ0Zyb21IZWFkZXJEaXNhYmxlZFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZpbHRlcmluZ1BvcG92ZXJJdGVtXCIgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCI+XG4gICAgICAgIDxhIGZkLWxpc3QtbGluayBzdHlsZT1cImN1cnNvcjogYXV0b1wiIFtmb2N1c2FibGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGkgZmQtbGlzdC1pY29uIGdseXBoPVwiZmlsdGVyXCI+PC9pPlxuICAgICAgICAgICAgPGRpdiBmZC1mb3JtLWl0ZW0gW2hvcml6b250YWxdPVwidHJ1ZVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZmQtZm9ybS1sYWJlbCBbZm9yXT1cIidmZHAtdGFibGUtY29sdW1uLWZpbHRlcmluZy0nICsgY29sdW1uLm5hbWVcIj57e1xuICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51RmlsdGVyJyB8IGZkVHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBmZC1mb3JtLWNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidmZHAtdGFibGUtY29sdW1uLWZpbHRlcmluZy0nICsgY29sdW1uLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJfc2V0Q29sdW1uSGVhZGVyRmlsdGVyQnkoY29sdW1uLmtleSwgJGFueSgkZXZlbnQudGFyZ2V0KT8udmFsdWUpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -69,7 +69,7 @@ TableHeaderRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
69
69
|
useExisting: TableHeaderRowComponent
|
|
70
70
|
},
|
|
71
71
|
DestroyedService
|
|
72
|
-
], viewQueries: [{ propertyName: "_focusableCellItems", predicate: FDK_FOCUSABLE_ITEM_DIRECTIVE, descendants: true }], usesInheritance: true, ngImport: i0, template: "<th\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async\"\n [class.fd-table__cell--fixed]=\"fixed\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [style.min-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n [style.max-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n></th>\n\n<th\n *ngIf=\"isShownSelectionColumn\"\n fd-table-cell\n [focusable]=\"true\"\n [class.fd-table__cell--fixed]=\"fixed\"\n class=\"fd-table__cell--checkbox\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n (keydown.enter)=\"\n selectionMode === SELECTION_MODE.MULTIPLE && _tableRowService.toggleAllSelectableRows(!checkedState)\n \"\n (keydown.space)=\"\n selectionMode === SELECTION_MODE.MULTIPLE && _tableRowService.toggleAllSelectableRows(!checkedState)\n \"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n [attr.aria-description]=\"\n !checkedState\n ? ('platformTable.selectAllCheckboxLabel' | fdTranslate)\n : ('platformTable.deselectAllCheckboxLabel' | fdTranslate)\n \"\n>\n <fd-checkbox\n tabIndexValue=\"-1\"\n *ngIf=\"selectionMode === SELECTION_MODE.MULTIPLE\"\n labelClass=\"fd-table__checkbox-label\"\n [fdkDisabled]=\"_fdpTableService.visibleColumnsLength === 0 || disableSelectionCheckbox\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"checkedState\"\n (ngModelChange)=\"_tableRowService.toggleAllSelectableRows($event)\"\n ></fd-checkbox>\n</th>\n\n<ng-container\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n trackBy: _columnTrackBy;\n last as isLast\n \"\n>\n <th\n [focusable]=\"true\"\n role=\"columnheader\"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async)\n \"\n [columnName]=\"column.name\"\n [id]=\"rowId + '__' + column.name\"\n [attr.aria-colindex]=\"colIdx\"\n [attr.aria-sort]=\"(_fdpTableService.sortRules$ | async)?.get(column.key) | fdpTableColumnSortingDirection\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) !== true ? 'is-last-child' : '',\n (column | isColumnHasHeaderMenu) ? 'fd-table__item--clickable' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [fdPopoverTrigger]=\"(column | isColumnHasHeaderMenu) ? tablePopover.popover : null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n >\n <fdp-table-header-cell-content\n [id]=\"rowId\"\n [column]=\"column\"\n [hasFilter]=\"(_fdpTableService.filterRules$ | async)?.has(column.key) === true\"\n [hasSorting]=\"(_fdpTableService.sortRules$ | async)?.has(column.key) === true\"\n [sorting]=\"(_fdpTableService.sortRules$ | async)?.get(column.key)\"\n [attr.title]=\"column.label\"\n >\n <!-- Header menu -->\n <fdp-table-cell-header-popover\n #tablePopover\n [disabled]=\"!(column | isColumnHasHeaderMenu)\"\n [columnFrozen]=\"column._freezed || column._endFreezed\"\n [column]=\"column\"\n [columnIndex]=\"colIdx\"\n [popoverTemplate]=\"(column | isColumnHasHeaderMenu) ? column.headerCellPopoverTemplate : null\"\n [filteringFromHeaderDisabled]=\"_fdpTableService._isFilteringFromHeaderDisabled$ | async\"\n ></fdp-table-cell-header-popover>\n </fdp-table-header-cell-content>\n </th>\n</ng-container>\n\n<th\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n role=\"columnheader\"\n></th>\n\n<th\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n></th>\n", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgModel; }), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i0.forwardRef(function () { return i3.TableCellDirective; }), selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i0.forwardRef(function () { return i3.TableStatusIndicatorDirective; }), selector: "[fdTableStatusIndicator], [fd-table-status-indicator]", inputs: ["status"] }, { kind: "component", type: i0.forwardRef(function () { return i4.CheckboxComponent; }), selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: i0.forwardRef(function () { return i5.PopoverTriggerDirective; }), selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "directive", type: i0.forwardRef(function () { return i6.DisabledBehaviorDirective; }), selector: "[fdkDisabled]", inputs: ["fdkDisabled", "addDisabledClass", "disabledClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i7.PlatformTableCellResizableDirective; }), selector: "[fdpTableCellResizable]", inputs: ["fdpTableCellResizable", "columnName"] }, { kind: "component", type: i0.forwardRef(function () { return i8.TableHeaderCellContentComponent; }), selector: "fdp-table-header-cell-content", inputs: ["id", "column", "hasSorting", "hasFilter", "sorting"] }, { kind: "component", type: i0.forwardRef(function () { return i9.TableCellHeaderPopoverComponent; }), selector: "fdp-table-cell-header-popover", inputs: ["column", "popoverTemplate", "disabled", "columnFrozen", "filteringFromHeaderDisabled", "columnIndex"] }, { kind: "pipe", type: i0.forwardRef(function () { return i1.AsyncPipe; }), name: "async" }, { kind: "pipe", type: i0.forwardRef(function () { return i10.FdTranslatePipe; }), name: "fdTranslate" }, { kind: "pipe", type: i0.forwardRef(function () { return i7.SelectionCellStylesPipe; }), name: "selectionCellStyles" }, { kind: "pipe", type: i0.forwardRef(function () { return i7.TableCellStylesPipe; }), name: "tableCellStyles" }, { kind: "pipe", type: i0.forwardRef(function () { return i7.ColumnResizableSidePipe; }), name: "columnResizableSide" }, { kind: "pipe", type: i0.forwardRef(function () { return i7.TableColumnSortingDirectionPipe; }), name: "fdpTableColumnSortingDirection" }, { kind: "pipe", type: i0.forwardRef(function () { return IsColumnHasHeaderMenuPipe; }), name: "isColumnHasHeaderMenu" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
72
|
+
], viewQueries: [{ propertyName: "_focusableCellItems", predicate: FDK_FOCUSABLE_ITEM_DIRECTIVE, descendants: true }], usesInheritance: true, ngImport: i0, template: "<th\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async\"\n [class.fd-table__cell--fixed]=\"fixed\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [style.min-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n [style.max-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n></th>\n\n<th\n *ngIf=\"isShownSelectionColumn\"\n fd-table-cell\n [focusable]=\"true\"\n [class.fd-table__cell--fixed]=\"fixed\"\n class=\"fd-table__cell--checkbox\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n (keydown.enter)=\"\n selectionMode === SELECTION_MODE.MULTIPLE && _tableRowService.toggleAllSelectableRows(!checkedState)\n \"\n (keydown.space)=\"\n selectionMode === SELECTION_MODE.MULTIPLE && _tableRowService.toggleAllSelectableRows(!checkedState);\n $event.preventDefault()\n \"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n [attr.aria-description]=\"\n !checkedState\n ? ('platformTable.selectAllCheckboxLabel' | fdTranslate)\n : ('platformTable.deselectAllCheckboxLabel' | fdTranslate)\n \"\n>\n <fd-checkbox\n tabIndexValue=\"-1\"\n *ngIf=\"selectionMode === SELECTION_MODE.MULTIPLE\"\n labelClass=\"fd-table__checkbox-label\"\n [fdkDisabled]=\"_fdpTableService.visibleColumnsLength === 0 || disableSelectionCheckbox\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"checkedState\"\n (ngModelChange)=\"_tableRowService.toggleAllSelectableRows($event)\"\n ></fd-checkbox>\n</th>\n\n<ng-container\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n trackBy: _columnTrackBy;\n last as isLast\n \"\n>\n <th\n [focusable]=\"true\"\n role=\"columnheader\"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async)\n \"\n [columnName]=\"column.name\"\n [id]=\"rowId + '__' + column.name\"\n [attr.aria-colindex]=\"colIdx\"\n [attr.aria-sort]=\"(_fdpTableService.sortRules$ | async)?.get(column.key) | fdpTableColumnSortingDirection\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) !== true ? 'is-last-child' : '',\n (column | isColumnHasHeaderMenu) ? 'fd-table__item--clickable' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [fdPopoverTrigger]=\"(column | isColumnHasHeaderMenu) ? tablePopover.popover : null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n >\n <fdp-table-header-cell-content\n [id]=\"rowId\"\n [column]=\"column\"\n [hasFilter]=\"(_fdpTableService.filterRules$ | async)?.has(column.key) === true\"\n [hasSorting]=\"(_fdpTableService.sortRules$ | async)?.has(column.key) === true\"\n [sorting]=\"(_fdpTableService.sortRules$ | async)?.get(column.key)\"\n [attr.title]=\"column.label\"\n >\n <!-- Header menu -->\n <fdp-table-cell-header-popover\n #tablePopover\n [disabled]=\"!(column | isColumnHasHeaderMenu)\"\n [columnFrozen]=\"column._freezed || column._endFreezed\"\n [column]=\"column\"\n [columnIndex]=\"colIdx\"\n [popoverTemplate]=\"(column | isColumnHasHeaderMenu) ? column.headerCellPopoverTemplate : null\"\n [filteringFromHeaderDisabled]=\"_fdpTableService._isFilteringFromHeaderDisabled$ | async\"\n ></fdp-table-cell-header-popover>\n </fdp-table-header-cell-content>\n </th>\n</ng-container>\n\n<th\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n role=\"columnheader\"\n></th>\n\n<th\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n></th>\n", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgModel; }), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i0.forwardRef(function () { return i3.TableCellDirective; }), selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i0.forwardRef(function () { return i3.TableStatusIndicatorDirective; }), selector: "[fdTableStatusIndicator], [fd-table-status-indicator]", inputs: ["status"] }, { kind: "component", type: i0.forwardRef(function () { return i4.CheckboxComponent; }), selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: i0.forwardRef(function () { return i5.PopoverTriggerDirective; }), selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "directive", type: i0.forwardRef(function () { return i6.DisabledBehaviorDirective; }), selector: "[fdkDisabled]", inputs: ["fdkDisabled", "addDisabledClass", "disabledClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i7.PlatformTableCellResizableDirective; }), selector: "[fdpTableCellResizable]", inputs: ["fdpTableCellResizable", "columnName"] }, { kind: "component", type: i0.forwardRef(function () { return i8.TableHeaderCellContentComponent; }), selector: "fdp-table-header-cell-content", inputs: ["id", "column", "hasSorting", "hasFilter", "sorting"] }, { kind: "component", type: i0.forwardRef(function () { return i9.TableCellHeaderPopoverComponent; }), selector: "fdp-table-cell-header-popover", inputs: ["column", "popoverTemplate", "disabled", "columnFrozen", "filteringFromHeaderDisabled", "columnIndex"] }, { kind: "pipe", type: i0.forwardRef(function () { return i1.AsyncPipe; }), name: "async" }, { kind: "pipe", type: i0.forwardRef(function () { return i10.FdTranslatePipe; }), name: "fdTranslate" }, { kind: "pipe", type: i0.forwardRef(function () { return i7.SelectionCellStylesPipe; }), name: "selectionCellStyles" }, { kind: "pipe", type: i0.forwardRef(function () { return i7.TableCellStylesPipe; }), name: "tableCellStyles" }, { kind: "pipe", type: i0.forwardRef(function () { return i7.ColumnResizableSidePipe; }), name: "columnResizableSide" }, { kind: "pipe", type: i0.forwardRef(function () { return i7.TableColumnSortingDirectionPipe; }), name: "fdpTableColumnSortingDirection" }, { kind: "pipe", type: i0.forwardRef(function () { return IsColumnHasHeaderMenuPipe; }), name: "isColumnHasHeaderMenu" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
73
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableHeaderRowComponent, decorators: [{
|
|
74
74
|
type: Component,
|
|
75
75
|
args: [{ selector: '[fdp-table-header-row]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -80,7 +80,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
80
80
|
DestroyedService
|
|
81
81
|
], host: {
|
|
82
82
|
role: 'row'
|
|
83
|
-
}, template: "<th\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async\"\n [class.fd-table__cell--fixed]=\"fixed\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [style.min-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n [style.max-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n></th>\n\n<th\n *ngIf=\"isShownSelectionColumn\"\n fd-table-cell\n [focusable]=\"true\"\n [class.fd-table__cell--fixed]=\"fixed\"\n class=\"fd-table__cell--checkbox\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n (keydown.enter)=\"\n selectionMode === SELECTION_MODE.MULTIPLE && _tableRowService.toggleAllSelectableRows(!checkedState)\n \"\n (keydown.space)=\"\n selectionMode === SELECTION_MODE.MULTIPLE && _tableRowService.toggleAllSelectableRows(!checkedState)\n \"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n [attr.aria-description]=\"\n !checkedState\n ? ('platformTable.selectAllCheckboxLabel' | fdTranslate)\n : ('platformTable.deselectAllCheckboxLabel' | fdTranslate)\n \"\n>\n <fd-checkbox\n tabIndexValue=\"-1\"\n *ngIf=\"selectionMode === SELECTION_MODE.MULTIPLE\"\n labelClass=\"fd-table__checkbox-label\"\n [fdkDisabled]=\"_fdpTableService.visibleColumnsLength === 0 || disableSelectionCheckbox\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"checkedState\"\n (ngModelChange)=\"_tableRowService.toggleAllSelectableRows($event)\"\n ></fd-checkbox>\n</th>\n\n<ng-container\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n trackBy: _columnTrackBy;\n last as isLast\n \"\n>\n <th\n [focusable]=\"true\"\n role=\"columnheader\"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async)\n \"\n [columnName]=\"column.name\"\n [id]=\"rowId + '__' + column.name\"\n [attr.aria-colindex]=\"colIdx\"\n [attr.aria-sort]=\"(_fdpTableService.sortRules$ | async)?.get(column.key) | fdpTableColumnSortingDirection\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) !== true ? 'is-last-child' : '',\n (column | isColumnHasHeaderMenu) ? 'fd-table__item--clickable' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [fdPopoverTrigger]=\"(column | isColumnHasHeaderMenu) ? tablePopover.popover : null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n >\n <fdp-table-header-cell-content\n [id]=\"rowId\"\n [column]=\"column\"\n [hasFilter]=\"(_fdpTableService.filterRules$ | async)?.has(column.key) === true\"\n [hasSorting]=\"(_fdpTableService.sortRules$ | async)?.has(column.key) === true\"\n [sorting]=\"(_fdpTableService.sortRules$ | async)?.get(column.key)\"\n [attr.title]=\"column.label\"\n >\n <!-- Header menu -->\n <fdp-table-cell-header-popover\n #tablePopover\n [disabled]=\"!(column | isColumnHasHeaderMenu)\"\n [columnFrozen]=\"column._freezed || column._endFreezed\"\n [column]=\"column\"\n [columnIndex]=\"colIdx\"\n [popoverTemplate]=\"(column | isColumnHasHeaderMenu) ? column.headerCellPopoverTemplate : null\"\n [filteringFromHeaderDisabled]=\"_fdpTableService._isFilteringFromHeaderDisabled$ | async\"\n ></fdp-table-cell-header-popover>\n </fdp-table-header-cell-content>\n </th>\n</ng-container>\n\n<th\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n role=\"columnheader\"\n></th>\n\n<th\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n></th>\n" }]
|
|
83
|
+
}, template: "<th\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async\"\n [class.fd-table__cell--fixed]=\"fixed\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [style.min-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n [style.max-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n></th>\n\n<th\n *ngIf=\"isShownSelectionColumn\"\n fd-table-cell\n [focusable]=\"true\"\n [class.fd-table__cell--fixed]=\"fixed\"\n class=\"fd-table__cell--checkbox\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n (keydown.enter)=\"\n selectionMode === SELECTION_MODE.MULTIPLE && _tableRowService.toggleAllSelectableRows(!checkedState)\n \"\n (keydown.space)=\"\n selectionMode === SELECTION_MODE.MULTIPLE && _tableRowService.toggleAllSelectableRows(!checkedState);\n $event.preventDefault()\n \"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n [attr.aria-description]=\"\n !checkedState\n ? ('platformTable.selectAllCheckboxLabel' | fdTranslate)\n : ('platformTable.deselectAllCheckboxLabel' | fdTranslate)\n \"\n>\n <fd-checkbox\n tabIndexValue=\"-1\"\n *ngIf=\"selectionMode === SELECTION_MODE.MULTIPLE\"\n labelClass=\"fd-table__checkbox-label\"\n [fdkDisabled]=\"_fdpTableService.visibleColumnsLength === 0 || disableSelectionCheckbox\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"checkedState\"\n (ngModelChange)=\"_tableRowService.toggleAllSelectableRows($event)\"\n ></fd-checkbox>\n</th>\n\n<ng-container\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n trackBy: _columnTrackBy;\n last as isLast\n \"\n>\n <th\n [focusable]=\"true\"\n role=\"columnheader\"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async)\n \"\n [columnName]=\"column.name\"\n [id]=\"rowId + '__' + column.name\"\n [attr.aria-colindex]=\"colIdx\"\n [attr.aria-sort]=\"(_fdpTableService.sortRules$ | async)?.get(column.key) | fdpTableColumnSortingDirection\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) !== true ? 'is-last-child' : '',\n (column | isColumnHasHeaderMenu) ? 'fd-table__item--clickable' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [fdPopoverTrigger]=\"(column | isColumnHasHeaderMenu) ? tablePopover.popover : null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n >\n <fdp-table-header-cell-content\n [id]=\"rowId\"\n [column]=\"column\"\n [hasFilter]=\"(_fdpTableService.filterRules$ | async)?.has(column.key) === true\"\n [hasSorting]=\"(_fdpTableService.sortRules$ | async)?.has(column.key) === true\"\n [sorting]=\"(_fdpTableService.sortRules$ | async)?.get(column.key)\"\n [attr.title]=\"column.label\"\n >\n <!-- Header menu -->\n <fdp-table-cell-header-popover\n #tablePopover\n [disabled]=\"!(column | isColumnHasHeaderMenu)\"\n [columnFrozen]=\"column._freezed || column._endFreezed\"\n [column]=\"column\"\n [columnIndex]=\"colIdx\"\n [popoverTemplate]=\"(column | isColumnHasHeaderMenu) ? column.headerCellPopoverTemplate : null\"\n [filteringFromHeaderDisabled]=\"_fdpTableService._isFilteringFromHeaderDisabled$ | async\"\n ></fdp-table-cell-header-popover>\n </fdp-table-header-cell-content>\n </th>\n</ng-container>\n\n<th\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n role=\"columnheader\"\n></th>\n\n<th\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n></th>\n" }]
|
|
84
84
|
}], ctorParameters: function () { return []; }, propDecorators: { rowId: [{
|
|
85
85
|
type: Input
|
|
86
86
|
}], fixed: [{
|
|
@@ -124,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
124
124
|
type: Pipe,
|
|
125
125
|
args: [{ name: 'isColumnHasHeaderMenu' }]
|
|
126
126
|
}] });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1oZWFkZXItcm93L3RhYmxlLWhlYWRlci1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtaGVhZGVyLXJvdy90YWJsZS1oZWFkZXItcm93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFFTCxJQUFJLEVBRUosU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGdCQUFnQixFQUNoQiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBRTVCLFVBQVUsRUFDYixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFDSCxhQUFhLEVBRWIsYUFBYSxFQUViLHdCQUF3QixFQUN4QixlQUFlLEVBQ2YsWUFBWSxFQUNmLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7QUFtQjNDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFpRDFELGNBQWM7SUFDZCxJQUNZLG1CQUFtQixDQUFDLEtBQXdDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIs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UTtZQUNmLE1BQU0sQ0FBQyxTQUFTO1lBQ2hCLE1BQU0sQ0FBQyxTQUFTO1lBQ2hCLE1BQU0sQ0FBQyxZQUFZO1lBQ25CLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FDdEYsQ0FBQztJQUNOLENBQUM7O3NIQWJRLHlCQUF5QjtvSEFBekIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBRHJDLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nICovXG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFBpcGUsXG4gICAgUGlwZVRyYW5zZm9ybSxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBEZXN0cm95ZWRTZXJ2aWNlLFxuICAgIEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUsXG4gICAgRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSxcbiAgICBGb2N1c2FibGVJdGVtRGlyZWN0aXZlLFxuICAgIFJ0bFNlcnZpY2Vcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlPYnNlcnZlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgVGFibGVSb3dEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdGFibGUnO1xuaW1wb3J0IHtcbiAgICBTZWxlY3Rpb25Nb2RlLFxuICAgIFNlbGVjdGlvbk1vZGVWYWx1ZSxcbiAgICBTb3J0RGlyZWN0aW9uLFxuICAgIFRhYmxlQ29sdW1uLFxuICAgIFRhYmxlQ29sdW1uUmVzaXplU2VydmljZSxcbiAgICBUYWJsZVJvd1NlcnZpY2UsXG4gICAgVGFibGVTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRwLXRhYmxlLWhlYWRlci1yb3ddJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtaGVhZGVyLXJvdy5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUYWJsZUhlYWRlclJvd0NvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICBEZXN0cm95ZWRTZXJ2aWNlXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICdyb3cnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUhlYWRlclJvd0NvbXBvbmVudCBleHRlbmRzIFRhYmxlUm93RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogVGFibGUgSUQuICovXG4gICAgQElucHV0KClcbiAgICByb3dJZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBmaXggdGhlIHRhYmxlIGhlYWRlciBhbmQgZm9vdGVyLiBEZWZhdWx0IGlzIHRydWUuXG4gICAgICogTm90ZSB0aGF0IGlmIHRoZSB0YWJsZSBjb250YWlucyBmcmVlemFibGUgY29sdW1ucywgdGhlIGhlYWRlciBhbmRcbiAgICAgKiBmb290ZXIgd2lsbCBiZSBmaXhlZCBhdXRvbWF0aWNhbGx5LCByZWdhcmRsZXNzIG9mIHRoaXMgaW5wdXQgdmFsdWUuXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIGZpeGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IHNlbGVjdGlvbiBjb2x1bW4uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc1Nob3duU2VsZWN0aW9uQ29sdW1uOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogUm93IGNoZWNrZWQgc3RhdGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjaGVja2VkU3RhdGU6IGJvb2xlYW4gfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogU2VsZWN0aW9uIG1vZGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3Rpb25Nb2RlOiBTZWxlY3Rpb25Nb2RlVmFsdWU7XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3Rpb24gY29sdW1uIHdpZHRoLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0aW9uQ29sdW1uV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKiBUaGUgY29sdW1uIGBuYW1lYCB0byBmcmVlemUgY29sdW1ucyB1cCB0byBhbmQgaW5jbHVkaW5nLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZnJlZXplQ29sdW1uc1RvOiBzdHJpbmc7XG5cbiAgICAvKiogVGhlIGNvbHVtbiBgbmFtZWAgdG8gZnJlZXplIGNvbHVtbnMgYWZ0ZXIgYW5kIGluY2x1ZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZyZWV6ZUVuZENvbHVtbnNUbzogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVTZWxlY3Rpb25DaGVja2JveCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUpXG4gICAgcHJpdmF0ZSBzZXQgX2ZvY3VzYWJsZUNlbGxJdGVtcyhpdGVtczogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmU+KSB7XG4gICAgICAgIHRoaXMuc2V0SXRlbXMoaXRlbXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3J0bCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBTRUxFQ1RJT05fTU9ERSA9IFNlbGVjdGlvbk1vZGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IFNPUlRfRElSRUNUSU9OID0gU29ydERpcmVjdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZSA9IGluamVjdChUYWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfZmRwVGFibGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9jb250ZW50RGVuc2l0eU9ic2VydmVyID0gaW5qZWN0KENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfdGFibGVSb3dTZXJ2aWNlID0gaW5qZWN0KFRhYmxlUm93U2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3J0bFNlcnZpY2UgPSBpbmplY3QoUnRsU2VydmljZSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5fcnRsU2VydmljZT8ucnRsLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKChpc1J0bCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcnRsID0gaXNSdGw7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5tYXJrRm9yQ2hlY2sucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY29sdW1uVHJhY2tCeShpbmRleDogbnVtYmVyLCBjb2x1bW46IFRhYmxlQ29sdW1uKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5uYW1lO1xuICAgIH1cbn1cblxuLyoqIEBoaWRkZW4gKi9cbkBQaXBlKHsgbmFtZTogJ2lzQ29sdW1uSGFzSGVhZGVyTWVudScgfSlcbmV4cG9ydCBjbGFzcyBJc0NvbHVtbkhhc0hlYWRlck1lbnVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mZHBUYWJsZVNlcnZpY2UgPSBpbmplY3QoVGFibGVTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdHJhbnNmb3JtKGNvbHVtbjogVGFibGVDb2x1bW4pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGNvbHVtbi5zb3J0YWJsZSB8fFxuICAgICAgICAgICAgY29sdW1uLmdyb3VwYWJsZSB8fFxuICAgICAgICAgICAgY29sdW1uLmZyZWV6YWJsZSB8fFxuICAgICAgICAgICAgY29sdW1uLmVuZEZyZWV6YWJsZSB8fFxuICAgICAgICAgICAgKGNvbHVtbi5maWx0ZXJhYmxlICYmICF0aGlzLl9mZHBUYWJsZVNlcnZpY2UuX2lzRmlsdGVyaW5nRnJvbUhlYWRlckRpc2FibGVkJC52YWx1ZSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8dGhcbiAgICAqbmdJZj1cIl9mZHBUYWJsZVNlcnZpY2UuX3NlbWFudGljSGlnaGxpZ2h0aW5nJCB8IGFzeW5jXCJcbiAgICBbY2xhc3MuZmQtdGFibGVfX2NlbGwtLWZpeGVkXT1cImZpeGVkXCJcbiAgICBmZC10YWJsZS1jZWxsXG4gICAgZmQtdGFibGUtc3RhdHVzLWluZGljYXRvclxuICAgIGZka0Rpc2FibGVkXG4gICAgW3N0eWxlLm1pbi13aWR0aF09XCJfZmRwVGFibGVTZXJ2aWNlLl9zZW1hbnRpY0hpZ2hsaWdodGluZ0NvbHVtbldpZHRoJCB8IGFzeW5jXCJcbiAgICBbc3R5bGUubWF4LXdpZHRoXT1cIl9mZHBUYWJsZVNlcnZpY2UuX3NlbWFudGljSGlnaGxpZ2h0aW5nQ29sdW1uV2lkdGgkIHwgYXN5bmNcIlxuPjwvdGg+XG5cbjx0aFxuICAgICpuZ0lmPVwiaXNTaG93blNlbGVjdGlvbkNvbHVtblwiXG4gICAgZmQtdGFibGUtY2VsbFxuICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgW2NsYXNzLmZkLXRhYmxlX19jZWxsLS1maXhlZF09XCJmaXhlZFwiXG4gICAgY2xhc3M9XCJmZC10YWJsZV9fY2VsbC0tY2hlY2tib3hcIlxuICAgIFtzdHlsZV09XCJcbiAgICAgICAgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXJcbiAgICAgICAgICAgIHwgYXN5bmNcbiAgICAgICAgICAgIHwgc2VsZWN0aW9uQ2VsbFN0eWxlcyA6IF9ydGwgOiAoX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmdDb2x1bW5XaWR0aCQgfCBhc3luYylcbiAgICBcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIlxuICAgICAgICBzZWxlY3Rpb25Nb2RlID09PSBTRUxFQ1RJT05fTU9ERS5NVUxUSVBMRSAmJiBfdGFibGVSb3dTZXJ2aWNlLnRvZ2dsZUFsbFNlbGVjdGFibGVSb3dzKCFjaGVja2VkU3RhdGUpXG4gICAgXCJcbiAgICAoa2V5ZG93bi5zcGFjZSk9XCJcbiAgICAgICAgc2VsZWN0aW9uTW9kZSA9PT0gU0VMRUNUSU9OX01PREUuTVVMVElQTEUgJiYgX3RhYmxlUm93U2VydmljZS50b2dnbGVBbGxTZWxlY3RhYmxlUm93cyghY2hlY2tlZFN0YXRlKVxuICAgIFwiXG4gICAgKGNlbGxGb2N1c2VkKT1cIl90YWJsZVJvd1NlcnZpY2UuY2VsbEZvY3VzZWQoJGV2ZW50KVwiXG4gICAgW2F0dHIuYXJpYS1kZXNjcmlwdGlvbl09XCJcbiAgICAgICAgIWNoZWNrZWRTdGF0ZVxuICAgICAgICAgICAgPyAoJ3BsYXRmb3JtVGFibGUuc2VsZWN0QWxsQ2hlY2tib3hMYWJlbCcgfCBmZFRyYW5zbGF0ZSlcbiAgICAgICAgICAgIDogKCdwbGF0Zm9ybVRhYmxlLmRlc2VsZWN0QWxsQ2hlY2tib3hMYWJlbCcgfCBmZFRyYW5zbGF0ZSlcbiAgICBcIlxuPlxuICAgIDxmZC1jaGVja2JveFxuICAgICAgICB0YWJJbmRleFZhbHVlPVwiLTFcIlxuICAgICAgICAqbmdJZj1cInNlbGVjdGlvbk1vZGUgPT09IFNFTEVDVElPTl9NT0RFLk1VTFRJUExFXCJcbiAgICAgICAgbGFiZWxDbGFzcz1cImZkLXRhYmxlX19jaGVja2JveC1sYWJlbFwiXG4gICAgICAgIFtmZGtEaXNhYmxlZF09XCJfZmRwVGFibGVTZXJ2aWNlLnZpc2libGVDb2x1bW5zTGVuZ3RoID09PSAwIHx8IGRpc2FibGVTZWxlY3Rpb25DaGVja2JveFwiXG4gICAgICAgIFt0cmlzdGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgW3RyaXN0YXRlU2VsZWN0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cImNoZWNrZWRTdGF0ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIl90YWJsZVJvd1NlcnZpY2UudG9nZ2xlQWxsU2VsZWN0YWJsZVJvd3MoJGV2ZW50KVwiXG4gICAgPjwvZmQtY2hlY2tib3g+XG48L3RoPlxuXG48bmctY29udGFpbmVyXG4gICAgKm5nRm9yPVwiXG4gICAgICAgIGxldCBjb2x1bW4gb2YgX2ZkcFRhYmxlU2VydmljZS52aXNpYmxlQ29sdW1ucyQgfCBhc3luYztcbiAgICAgICAgbGV0IGNvbElkeCA9IGluZGV4O1xuICAgICAgICB0cmFja0J5OiBfY29sdW1uVHJhY2tCeTtcbiAgICAgICAgbGFzdCBhcyBpc0xhc3RcbiAgICBcIlxuPlxuICAgIDx0aFxuICAgICAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgICAgICByb2xlPVwiY29sdW1uaGVhZGVyXCJcbiAgICAgICAgW2ZkcFRhYmxlQ2VsbFJlc2l6YWJsZV09XCJcbiAgICAgICAgICAgIGNvbElkeFxuICAgICAgICAgICAgICAgIHwgY29sdW1uUmVzaXphYmxlU2lkZVxuICAgICAgICAgICAgICAgICAgICA6IF9mZHBUYWJsZVNlcnZpY2UudmlzaWJsZUNvbHVtbnNMZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgOiAoX2ZkcFRhYmxlU2VydmljZS5faXNTaG93bk5hdmlnYXRpb25Db2x1bW4kIHwgYXN5bmMpXG4gICAgICAgIFwiXG4gICAgICAgIFtjb2x1bW5OYW1lXT1cImNvbHVtbi5uYW1lXCJcbiAgICAgICAgW2lkXT1cInJvd0lkICsgJ19fJyArIGNvbHVtbi5uYW1lXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jb2xpbmRleF09XCJjb2xJZHhcIlxuICAgICAgICBbYXR0ci5hcmlhLXNvcnRdPVwiKF9mZHBUYWJsZVNlcnZpY2Uuc29ydFJ1bGVzJCB8IGFzeW5jKT8uZ2V0KGNvbHVtbi5rZXkpIHwgZmRwVGFibGVDb2x1bW5Tb3J0aW5nRGlyZWN0aW9uXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAgICAgJ2ZkcC10YWJsZV9fY29sLS0nICsgY29sdW1uLm5hbWUsXG4gICAgICAgICAgICBjb2x1bW4uX2ZyZWV6ZWQgPyAnZmQtdGFibGVfX2NlbGwtLWZpeGVkJyA6ICcnLFxuICAgICAgICAgICAgY29sdW1uLm5hbWUgPT09IGZyZWV6ZUNvbHVtbnNUbyA/ICdmZC10YWJsZV9fY2VsbC0tZml4ZWQtbGFzdCcgOiAnJyxcbiAgICAgICAgICAgIGNvbHVtbi5fZW5kRnJlZXplZCA/ICdmZC10YWJsZV9fY2VsbC0tZml4ZWQtZW5kJyA6ICcnLFxuICAgICAgICAgICAgY29sdW1uLm5hbWUgPT09IGZyZWV6ZUVuZENvbHVtbnNUbyA/ICdmZC10YWJsZV9fY2VsbC0tZml4ZWQtZW5kLWxhc3QnIDogJycsXG4gICAgICAgICAgICBpc0xhc3QgJiYgKF9mZHBUYWJsZVNlcnZpY2UuX2lzU2hvd25OYXZpZ2F0aW9uQ29sdW1uJCB8IGFzeW5jKSAhPT0gdHJ1ZSA/ICdpcy1sYXN0LWNoaWxkJyA6ICcnLFxuICAgICAgICAgICAgKGNvbHVtbiB8IGlzQ29sdW1uSGFzSGVhZGVyTWVudSkgPyAnZmQtdGFibGVfX2l0ZW0tLWNsaWNrYWJsZScgOiAnJ1xuICAgICAgICBdXCJcbiAgICAgICAgW25nU3R5bGVdPVwiXG4gICAgICAgICAgICBjb2x1bW5cbiAgICAgICAgICAgICAgICB8IHRhYmxlQ2VsbFN0eWxlc1xuICAgICAgICAgICAgICAgICAgICA6IF9ydGxcbiAgICAgICAgICAgICAgICAgICAgOiAoX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmdDb2x1bW5XaWR0aCQgfCBhc3luYylcbiAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3Rpb25Db2x1bW5XaWR0aFxuICAgICAgICAgICAgICAgICAgICA6IGNvbHVtbi5fZnJlZXplZFxuICAgICAgICAgICAgICAgICAgICA6IGNvbHVtbi5fZW5kRnJlZXplZFxuICAgICAgICAgICAgICAgICAgICA6IF90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UuZ2V0UHJldkNvbHVtbnNXaWR0aChjb2x1bW4ubmFtZSlcbiAgICAgICAgICAgICAgICAgICAgOiBfdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlLmdldENvbHVtbldpZHRoU3R5bGUoY29sdW1uLm5hbWUpXG4gICAgICAgICAgICAgICAgICAgIDogX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5nZXROZXh0Q29sdW1uc1dpZHRoKGNvbHVtbi5uYW1lKVxuICAgICAgICBcIlxuICAgICAgICBbZmRQb3BvdmVyVHJpZ2dlcl09XCIoY29sdW1uIHwgaXNDb2x1bW5IYXNIZWFkZXJNZW51KSA/IHRhYmxlUG9wb3Zlci5wb3BvdmVyIDogbnVsbFwiXG4gICAgICAgIChjZWxsRm9jdXNlZCk9XCJfdGFibGVSb3dTZXJ2aWNlLmNlbGxGb2N1c2VkKCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd0xlZnQpPVwiX3RhYmxlUm93U2VydmljZS5zY3JvbGxUb092ZXJsYXBwZWRDZWxsKClcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd1JpZ2h0KT1cIl90YWJsZVJvd1NlcnZpY2Uuc2Nyb2xsVG9PdmVybGFwcGVkQ2VsbCgpXCJcbiAgICA+XG4gICAgICAgIDxmZHAtdGFibGUtaGVhZGVyLWNlbGwtY29udGVudFxuICAgICAgICAgICAgW2lkXT1cInJvd0lkXCJcbiAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgIFtoYXNGaWx0ZXJdPVwiKF9mZHBUYWJsZVNlcnZpY2UuZmlsdGVyUnVsZXMkIHwgYXN5bmMpPy5oYXMoY29sdW1uLmtleSkgPT09IHRydWVcIlxuICAgICAgICAgICAgW2hhc1NvcnRpbmddPVwiKF9mZHBUYWJsZVNlcnZpY2Uuc29ydFJ1bGVzJCB8IGFzeW5jKT8uaGFzKGNvbHVtbi5rZXkpID09PSB0cnVlXCJcbiAgICAgICAgICAgIFtzb3J0aW5nXT1cIihfZmRwVGFibGVTZXJ2aWNlLnNvcnRSdWxlcyQgfCBhc3luYyk/LmdldChjb2x1bW4ua2V5KVwiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCJjb2x1bW4ubGFiZWxcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8IS0tIEhlYWRlciBtZW51IC0tPlxuICAgICAgICAgICAgPGZkcC10YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyXG4gICAgICAgICAgICAgICAgI3RhYmxlUG9wb3ZlclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhKGNvbHVtbiB8IGlzQ29sdW1uSGFzSGVhZGVyTWVudSlcIlxuICAgICAgICAgICAgICAgIFtjb2x1bW5Gcm96ZW5dPVwiY29sdW1uLl9mcmVlemVkIHx8IGNvbHVtbi5fZW5kRnJlZXplZFwiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIFtjb2x1bW5JbmRleF09XCJjb2xJZHhcIlxuICAgICAgICAgICAgICAgIFtwb3BvdmVyVGVtcGxhdGVdPVwiKGNvbHVtbiB8IGlzQ29sdW1uSGFzSGVhZGVyTWVudSkgPyBjb2x1bW4uaGVhZGVyQ2VsbFBvcG92ZXJUZW1wbGF0ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgIFtmaWx0ZXJpbmdGcm9tSGVhZGVyRGlzYWJsZWRdPVwiX2ZkcFRhYmxlU2VydmljZS5faXNGaWx0ZXJpbmdGcm9tSGVhZGVyRGlzYWJsZWQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgPjwvZmRwLXRhYmxlLWNlbGwtaGVhZGVyLXBvcG92ZXI+XG4gICAgICAgIDwvZmRwLXRhYmxlLWhlYWRlci1jZWxsLWNvbnRlbnQ+XG4gICAgPC90aD5cbjwvbmctY29udGFpbmVyPlxuXG48dGhcbiAgICAqbmdJZj1cIl9mZHBUYWJsZVNlcnZpY2UuX2lzU2hvd25OYXZpZ2F0aW9uQ29sdW1uJCB8IGFzeW5jXCJcbiAgICBmZC10YWJsZS1jZWxsXG4gICAgY2xhc3M9XCJmZHAtdGFibGVfX2NlbGwtLW5hdmlnYXRpb24gaXMtbGFzdC1jaGlsZFwiXG4gICAgcm9sZT1cImNvbHVtbmhlYWRlclwiXG4+PC90aD5cblxuPHRoXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBjbGFzcz1cImZkLXRhYmxlX19jZWxsIGZkLXRhYmxlX19jZWxsLS1tb2NrXCJcbiAgICBbY2xhc3MuZmQtdGFibGVfX2NlbGwtLW1vY2stYm9yZGVybGVzc109XCIoX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5jZWxsTW9ja1Zpc2libGUkIHwgYXN5bmMpICE9PSB0cnVlXCJcbiAgICBmZGtEaXNhYmxlZFxuPjwvdGg+XG4iXX0=
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1oZWFkZXItcm93L3RhYmxlLWhlYWRlci1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtaGVhZGVyLXJvdy90YWJsZS1oZWFkZXItcm93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFFTCxJQUFJLEVBRUosU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGdCQUFnQixFQUNoQiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBRTVCLFVBQVUsRUFDYixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFDSCxhQUFhLEVBRWIsYUFBYSxFQUViLHdCQUF3QixFQUN4QixlQUFlLEVBQ2YsWUFBWSxFQUNmLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7QUFtQjNDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFpRDFELGNBQWM7SUFDZCxJQUNZLG1CQUFtQixDQUFDLEtBQXdDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIs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UTtZQUNmLE1BQU0sQ0FBQyxTQUFTO1lBQ2hCLE1BQU0sQ0FBQyxTQUFTO1lBQ2hCLE1BQU0sQ0FBQyxZQUFZO1lBQ25CLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FDdEYsQ0FBQztJQUNOLENBQUM7O3NIQWJRLHlCQUF5QjtvSEFBekIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBRHJDLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nICovXG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFBpcGUsXG4gICAgUGlwZVRyYW5zZm9ybSxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBEZXN0cm95ZWRTZXJ2aWNlLFxuICAgIEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUsXG4gICAgRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSxcbiAgICBGb2N1c2FibGVJdGVtRGlyZWN0aXZlLFxuICAgIFJ0bFNlcnZpY2Vcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlPYnNlcnZlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgVGFibGVSb3dEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdGFibGUnO1xuaW1wb3J0IHtcbiAgICBTZWxlY3Rpb25Nb2RlLFxuICAgIFNlbGVjdGlvbk1vZGVWYWx1ZSxcbiAgICBTb3J0RGlyZWN0aW9uLFxuICAgIFRhYmxlQ29sdW1uLFxuICAgIFRhYmxlQ29sdW1uUmVzaXplU2VydmljZSxcbiAgICBUYWJsZVJvd1NlcnZpY2UsXG4gICAgVGFibGVTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRwLXRhYmxlLWhlYWRlci1yb3ddJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtaGVhZGVyLXJvdy5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUYWJsZUhlYWRlclJvd0NvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICBEZXN0cm95ZWRTZXJ2aWNlXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICdyb3cnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUhlYWRlclJvd0NvbXBvbmVudCBleHRlbmRzIFRhYmxlUm93RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogVGFibGUgSUQuICovXG4gICAgQElucHV0KClcbiAgICByb3dJZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBmaXggdGhlIHRhYmxlIGhlYWRlciBhbmQgZm9vdGVyLiBEZWZhdWx0IGlzIHRydWUuXG4gICAgICogTm90ZSB0aGF0IGlmIHRoZSB0YWJsZSBjb250YWlucyBmcmVlemFibGUgY29sdW1ucywgdGhlIGhlYWRlciBhbmRcbiAgICAgKiBmb290ZXIgd2lsbCBiZSBmaXhlZCBhdXRvbWF0aWNhbGx5LCByZWdhcmRsZXNzIG9mIHRoaXMgaW5wdXQgdmFsdWUuXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIGZpeGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IHNlbGVjdGlvbiBjb2x1bW4uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc1Nob3duU2VsZWN0aW9uQ29sdW1uOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogUm93IGNoZWNrZWQgc3RhdGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjaGVja2VkU3RhdGU6IGJvb2xlYW4gfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogU2VsZWN0aW9uIG1vZGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3Rpb25Nb2RlOiBTZWxlY3Rpb25Nb2RlVmFsdWU7XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3Rpb24gY29sdW1uIHdpZHRoLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0aW9uQ29sdW1uV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKiBUaGUgY29sdW1uIGBuYW1lYCB0byBmcmVlemUgY29sdW1ucyB1cCB0byBhbmQgaW5jbHVkaW5nLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZnJlZXplQ29sdW1uc1RvOiBzdHJpbmc7XG5cbiAgICAvKiogVGhlIGNvbHVtbiBgbmFtZWAgdG8gZnJlZXplIGNvbHVtbnMgYWZ0ZXIgYW5kIGluY2x1ZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZyZWV6ZUVuZENvbHVtbnNUbzogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVTZWxlY3Rpb25DaGVja2JveCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUpXG4gICAgcHJpdmF0ZSBzZXQgX2ZvY3VzYWJsZUNlbGxJdGVtcyhpdGVtczogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmU+KSB7XG4gICAgICAgIHRoaXMuc2V0SXRlbXMoaXRlbXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3J0bCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBTRUxFQ1RJT05fTU9ERSA9IFNlbGVjdGlvbk1vZGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IFNPUlRfRElSRUNUSU9OID0gU29ydERpcmVjdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZSA9IGluamVjdChUYWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfZmRwVGFibGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9jb250ZW50RGVuc2l0eU9ic2VydmVyID0gaW5qZWN0KENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfdGFibGVSb3dTZXJ2aWNlID0gaW5qZWN0KFRhYmxlUm93U2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3J0bFNlcnZpY2UgPSBpbmplY3QoUnRsU2VydmljZSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5fcnRsU2VydmljZT8ucnRsLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKChpc1J0bCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcnRsID0gaXNSdGw7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5tYXJrRm9yQ2hlY2sucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY29sdW1uVHJhY2tCeShpbmRleDogbnVtYmVyLCBjb2x1bW46IFRhYmxlQ29sdW1uKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5uYW1lO1xuICAgIH1cbn1cblxuLyoqIEBoaWRkZW4gKi9cbkBQaXBlKHsgbmFtZTogJ2lzQ29sdW1uSGFzSGVhZGVyTWVudScgfSlcbmV4cG9ydCBjbGFzcyBJc0NvbHVtbkhhc0hlYWRlck1lbnVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mZHBUYWJsZVNlcnZpY2UgPSBpbmplY3QoVGFibGVTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdHJhbnNmb3JtKGNvbHVtbjogVGFibGVDb2x1bW4pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGNvbHVtbi5zb3J0YWJsZSB8fFxuICAgICAgICAgICAgY29sdW1uLmdyb3VwYWJsZSB8fFxuICAgICAgICAgICAgY29sdW1uLmZyZWV6YWJsZSB8fFxuICAgICAgICAgICAgY29sdW1uLmVuZEZyZWV6YWJsZSB8fFxuICAgICAgICAgICAgKGNvbHVtbi5maWx0ZXJhYmxlICYmICF0aGlzLl9mZHBUYWJsZVNlcnZpY2UuX2lzRmlsdGVyaW5nRnJvbUhlYWRlckRpc2FibGVkJC52YWx1ZSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8dGhcbiAgICAqbmdJZj1cIl9mZHBUYWJsZVNlcnZpY2UuX3NlbWFudGljSGlnaGxpZ2h0aW5nJCB8IGFzeW5jXCJcbiAgICBbY2xhc3MuZmQtdGFibGVfX2NlbGwtLWZpeGVkXT1cImZpeGVkXCJcbiAgICBmZC10YWJsZS1jZWxsXG4gICAgZmQtdGFibGUtc3RhdHVzLWluZGljYXRvclxuICAgIGZka0Rpc2FibGVkXG4gICAgW3N0eWxlLm1pbi13aWR0aF09XCJfZmRwVGFibGVTZXJ2aWNlLl9zZW1hbnRpY0hpZ2hsaWdodGluZ0NvbHVtbldpZHRoJCB8IGFzeW5jXCJcbiAgICBbc3R5bGUubWF4LXdpZHRoXT1cIl9mZHBUYWJsZVNlcnZpY2UuX3NlbWFudGljSGlnaGxpZ2h0aW5nQ29sdW1uV2lkdGgkIHwgYXN5bmNcIlxuPjwvdGg+XG5cbjx0aFxuICAgICpuZ0lmPVwiaXNTaG93blNlbGVjdGlvbkNvbHVtblwiXG4gICAgZmQtdGFibGUtY2VsbFxuICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgW2NsYXNzLmZkLXRhYmxlX19jZWxsLS1maXhlZF09XCJmaXhlZFwiXG4gICAgY2xhc3M9XCJmZC10YWJsZV9fY2VsbC0tY2hlY2tib3hcIlxuICAgIFtzdHlsZV09XCJcbiAgICAgICAgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXJcbiAgICAgICAgICAgIHwgYXN5bmNcbiAgICAgICAgICAgIHwgc2VsZWN0aW9uQ2VsbFN0eWxlcyA6IF9ydGwgOiAoX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmdDb2x1bW5XaWR0aCQgfCBhc3luYylcbiAgICBcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIlxuICAgICAgICBzZWxlY3Rpb25Nb2RlID09PSBTRUxFQ1RJT05fTU9ERS5NVUxUSVBMRSAmJiBfdGFibGVSb3dTZXJ2aWNlLnRvZ2dsZUFsbFNlbGVjdGFibGVSb3dzKCFjaGVja2VkU3RhdGUpXG4gICAgXCJcbiAgICAoa2V5ZG93bi5zcGFjZSk9XCJcbiAgICAgICAgc2VsZWN0aW9uTW9kZSA9PT0gU0VMRUNUSU9OX01PREUuTVVMVElQTEUgJiYgX3RhYmxlUm93U2VydmljZS50b2dnbGVBbGxTZWxlY3RhYmxlUm93cyghY2hlY2tlZFN0YXRlKTtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICBcIlxuICAgIChjZWxsRm9jdXNlZCk9XCJfdGFibGVSb3dTZXJ2aWNlLmNlbGxGb2N1c2VkKCRldmVudClcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpcHRpb25dPVwiXG4gICAgICAgICFjaGVja2VkU3RhdGVcbiAgICAgICAgICAgID8gKCdwbGF0Zm9ybVRhYmxlLnNlbGVjdEFsbENoZWNrYm94TGFiZWwnIHwgZmRUcmFuc2xhdGUpXG4gICAgICAgICAgICA6ICgncGxhdGZvcm1UYWJsZS5kZXNlbGVjdEFsbENoZWNrYm94TGFiZWwnIHwgZmRUcmFuc2xhdGUpXG4gICAgXCJcbj5cbiAgICA8ZmQtY2hlY2tib3hcbiAgICAgICAgdGFiSW5kZXhWYWx1ZT1cIi0xXCJcbiAgICAgICAgKm5nSWY9XCJzZWxlY3Rpb25Nb2RlID09PSBTRUxFQ1RJT05fTU9ERS5NVUxUSVBMRVwiXG4gICAgICAgIGxhYmVsQ2xhc3M9XCJmZC10YWJsZV9fY2hlY2tib3gtbGFiZWxcIlxuICAgICAgICBbZmRrRGlzYWJsZWRdPVwiX2ZkcFRhYmxlU2VydmljZS52aXNpYmxlQ29sdW1uc0xlbmd0aCA9PT0gMCB8fCBkaXNhYmxlU2VsZWN0aW9uQ2hlY2tib3hcIlxuICAgICAgICBbdHJpc3RhdGVdPVwidHJ1ZVwiXG4gICAgICAgIFt0cmlzdGF0ZVNlbGVjdGFibGVdPVwiZmFsc2VcIlxuICAgICAgICBbbmdNb2RlbF09XCJjaGVja2VkU3RhdGVcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJfdGFibGVSb3dTZXJ2aWNlLnRvZ2dsZUFsbFNlbGVjdGFibGVSb3dzKCRldmVudClcIlxuICAgID48L2ZkLWNoZWNrYm94PlxuPC90aD5cblxuPG5nLWNvbnRhaW5lclxuICAgICpuZ0Zvcj1cIlxuICAgICAgICBsZXQgY29sdW1uIG9mIF9mZHBUYWJsZVNlcnZpY2UudmlzaWJsZUNvbHVtbnMkIHwgYXN5bmM7XG4gICAgICAgIGxldCBjb2xJZHggPSBpbmRleDtcbiAgICAgICAgdHJhY2tCeTogX2NvbHVtblRyYWNrQnk7XG4gICAgICAgIGxhc3QgYXMgaXNMYXN0XG4gICAgXCJcbj5cbiAgICA8dGhcbiAgICAgICAgW2ZvY3VzYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgcm9sZT1cImNvbHVtbmhlYWRlclwiXG4gICAgICAgIFtmZHBUYWJsZUNlbGxSZXNpemFibGVdPVwiXG4gICAgICAgICAgICBjb2xJZHhcbiAgICAgICAgICAgICAgICB8IGNvbHVtblJlc2l6YWJsZVNpZGVcbiAgICAgICAgICAgICAgICAgICAgOiBfZmRwVGFibGVTZXJ2aWNlLnZpc2libGVDb2x1bW5zTGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgIDogKF9mZHBUYWJsZVNlcnZpY2UuX2lzU2hvd25OYXZpZ2F0aW9uQ29sdW1uJCB8IGFzeW5jKVxuICAgICAgICBcIlxuICAgICAgICBbY29sdW1uTmFtZV09XCJjb2x1bW4ubmFtZVwiXG4gICAgICAgIFtpZF09XCJyb3dJZCArICdfXycgKyBjb2x1bW4ubmFtZVwiXG4gICAgICAgIFthdHRyLmFyaWEtY29saW5kZXhdPVwiY29sSWR4XCJcbiAgICAgICAgW2F0dHIuYXJpYS1zb3J0XT1cIihfZmRwVGFibGVTZXJ2aWNlLnNvcnRSdWxlcyQgfCBhc3luYyk/LmdldChjb2x1bW4ua2V5KSB8IGZkcFRhYmxlQ29sdW1uU29ydGluZ0RpcmVjdGlvblwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICAgICAgICdmZHAtdGFibGVfX2NvbC0tJyArIGNvbHVtbi5uYW1lLFxuICAgICAgICAgICAgY29sdW1uLl9mcmVlemVkID8gJ2ZkLXRhYmxlX19jZWxsLS1maXhlZCcgOiAnJyxcbiAgICAgICAgICAgIGNvbHVtbi5uYW1lID09PSBmcmVlemVDb2x1bW5zVG8gPyAnZmQtdGFibGVfX2NlbGwtLWZpeGVkLWxhc3QnIDogJycsXG4gICAgICAgICAgICBjb2x1bW4uX2VuZEZyZWV6ZWQgPyAnZmQtdGFibGVfX2NlbGwtLWZpeGVkLWVuZCcgOiAnJyxcbiAgICAgICAgICAgIGNvbHVtbi5uYW1lID09PSBmcmVlemVFbmRDb2x1bW5zVG8gPyAnZmQtdGFibGVfX2NlbGwtLWZpeGVkLWVuZC1sYXN0JyA6ICcnLFxuICAgICAgICAgICAgaXNMYXN0ICYmIChfZmRwVGFibGVTZXJ2aWNlLl9pc1Nob3duTmF2aWdhdGlvbkNvbHVtbiQgfCBhc3luYykgIT09IHRydWUgPyAnaXMtbGFzdC1jaGlsZCcgOiAnJyxcbiAgICAgICAgICAgIChjb2x1bW4gfCBpc0NvbHVtbkhhc0hlYWRlck1lbnUpID8gJ2ZkLXRhYmxlX19pdGVtLS1jbGlja2FibGUnIDogJydcbiAgICAgICAgXVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgY29sdW1uXG4gICAgICAgICAgICAgICAgfCB0YWJsZUNlbGxTdHlsZXNcbiAgICAgICAgICAgICAgICAgICAgOiBfcnRsXG4gICAgICAgICAgICAgICAgICAgIDogKF9mZHBUYWJsZVNlcnZpY2UuX3NlbWFudGljSGlnaGxpZ2h0aW5nQ29sdW1uV2lkdGgkIHwgYXN5bmMpXG4gICAgICAgICAgICAgICAgICAgIDogc2VsZWN0aW9uQ29sdW1uV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgOiBjb2x1bW4uX2ZyZWV6ZWRcbiAgICAgICAgICAgICAgICAgICAgOiBjb2x1bW4uX2VuZEZyZWV6ZWRcbiAgICAgICAgICAgICAgICAgICAgOiBfdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlLmdldFByZXZDb2x1bW5zV2lkdGgoY29sdW1uLm5hbWUpXG4gICAgICAgICAgICAgICAgICAgIDogX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5nZXRDb2x1bW5XaWR0aFN0eWxlKGNvbHVtbi5uYW1lKVxuICAgICAgICAgICAgICAgICAgICA6IF90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UuZ2V0TmV4dENvbHVtbnNXaWR0aChjb2x1bW4ubmFtZSlcbiAgICAgICAgXCJcbiAgICAgICAgW2ZkUG9wb3ZlclRyaWdnZXJdPVwiKGNvbHVtbiB8IGlzQ29sdW1uSGFzSGVhZGVyTWVudSkgPyB0YWJsZVBvcG92ZXIucG9wb3ZlciA6IG51bGxcIlxuICAgICAgICAoY2VsbEZvY3VzZWQpPVwiX3RhYmxlUm93U2VydmljZS5jZWxsRm9jdXNlZCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dMZWZ0KT1cIl90YWJsZVJvd1NlcnZpY2Uuc2Nyb2xsVG9PdmVybGFwcGVkQ2VsbCgpXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dSaWdodCk9XCJfdGFibGVSb3dTZXJ2aWNlLnNjcm9sbFRvT3ZlcmxhcHBlZENlbGwoKVwiXG4gICAgPlxuICAgICAgICA8ZmRwLXRhYmxlLWhlYWRlci1jZWxsLWNvbnRlbnRcbiAgICAgICAgICAgIFtpZF09XCJyb3dJZFwiXG4gICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICBbaGFzRmlsdGVyXT1cIihfZmRwVGFibGVTZXJ2aWNlLmZpbHRlclJ1bGVzJCB8IGFzeW5jKT8uaGFzKGNvbHVtbi5rZXkpID09PSB0cnVlXCJcbiAgICAgICAgICAgIFtoYXNTb3J0aW5nXT1cIihfZmRwVGFibGVTZXJ2aWNlLnNvcnRSdWxlcyQgfCBhc3luYyk/Lmhhcyhjb2x1bW4ua2V5KSA9PT0gdHJ1ZVwiXG4gICAgICAgICAgICBbc29ydGluZ109XCIoX2ZkcFRhYmxlU2VydmljZS5zb3J0UnVsZXMkIHwgYXN5bmMpPy5nZXQoY29sdW1uLmtleSlcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiY29sdW1uLmxhYmVsXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPCEtLSBIZWFkZXIgbWVudSAtLT5cbiAgICAgICAgICAgIDxmZHAtdGFibGUtY2VsbC1oZWFkZXItcG9wb3ZlclxuICAgICAgICAgICAgICAgICN0YWJsZVBvcG92ZXJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIShjb2x1bW4gfCBpc0NvbHVtbkhhc0hlYWRlck1lbnUpXCJcbiAgICAgICAgICAgICAgICBbY29sdW1uRnJvemVuXT1cImNvbHVtbi5fZnJlZXplZCB8fCBjb2x1bW4uX2VuZEZyZWV6ZWRcIlxuICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbY29sdW1uSW5kZXhdPVwiY29sSWR4XCJcbiAgICAgICAgICAgICAgICBbcG9wb3ZlclRlbXBsYXRlXT1cIihjb2x1bW4gfCBpc0NvbHVtbkhhc0hlYWRlck1lbnUpID8gY29sdW1uLmhlYWRlckNlbGxQb3BvdmVyVGVtcGxhdGUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbZmlsdGVyaW5nRnJvbUhlYWRlckRpc2FibGVkXT1cIl9mZHBUYWJsZVNlcnZpY2UuX2lzRmlsdGVyaW5nRnJvbUhlYWRlckRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgICAgICAgID48L2ZkcC10YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyPlxuICAgICAgICA8L2ZkcC10YWJsZS1oZWFkZXItY2VsbC1jb250ZW50PlxuICAgIDwvdGg+XG48L25nLWNvbnRhaW5lcj5cblxuPHRoXG4gICAgKm5nSWY9XCJfZmRwVGFibGVTZXJ2aWNlLl9pc1Nob3duTmF2aWdhdGlvbkNvbHVtbiQgfCBhc3luY1wiXG4gICAgZmQtdGFibGUtY2VsbFxuICAgIGNsYXNzPVwiZmRwLXRhYmxlX19jZWxsLS1uYXZpZ2F0aW9uIGlzLWxhc3QtY2hpbGRcIlxuICAgIHJvbGU9XCJjb2x1bW5oZWFkZXJcIlxuPjwvdGg+XG5cbjx0aFxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgY2xhc3M9XCJmZC10YWJsZV9fY2VsbCBmZC10YWJsZV9fY2VsbC0tbW9ja1wiXG4gICAgW2NsYXNzLmZkLXRhYmxlX19jZWxsLS1tb2NrLWJvcmRlcmxlc3NdPVwiKF90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UuY2VsbE1vY2tWaXNpYmxlJCB8IGFzeW5jKSAhPT0gdHJ1ZVwiXG4gICAgZmRrRGlzYWJsZWRcbj48L3RoPlxuIl19
|
|
@@ -90,9 +90,11 @@ export class TableP13DialogComponent {
|
|
|
90
90
|
const filterBy = state?.filterBy;
|
|
91
91
|
const dialogData = {
|
|
92
92
|
columns: columns.map(({ label, key, dataType, filterable }) => ({ label, key, dataType, filterable })),
|
|
93
|
-
collectionFilter: filterBy
|
|
94
|
-
validator: this.filter.validator
|
|
93
|
+
collectionFilter: filterBy
|
|
95
94
|
};
|
|
95
|
+
if (this.filter && this.filter.validator) {
|
|
96
|
+
dialogData.validator = this.filter.validator;
|
|
97
|
+
}
|
|
96
98
|
const dialogRef = this._dialogService.open(P13FilteringDialogComponent, {
|
|
97
99
|
...dialogConfig,
|
|
98
100
|
disablePaddings: true,
|
|
@@ -230,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
230
232
|
type: ContentChild,
|
|
231
233
|
args: [TableP13ColumnsComponent]
|
|
232
234
|
}] } });
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcDEzLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1wMTMtZGlhbG9nL3RhYmxlLXAxMy1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQWdCLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTNFLE9BQU8sRUFJSCxLQUFLLEVBR1IsTUFBTSx5Q0FBeUMsQ0FBQztBQUVqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV6RSxPQUFPLEVBQXdDLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUcsT0FBTyxFQUEwQywwQkFBMEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25ILE9BQU8sRUFBNEMsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4SCxPQUFPLEVBQThDLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQUVwSCxNQUFNLFlBQVksR0FBaUI7SUFDL0IsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixlQUFlLEVBQUUsSUFBSTtJQUNyQixRQUFRLEVB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cUJBQXFCO2dCQUtuQyxNQUFNO3NCQURMLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUtyQyxLQUFLO3NCQURKLFlBQVk7dUJBQUMsc0JBQXNCO2dCQUtwQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRGlhbG9nQ29uZmlnLCBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5cbmltcG9ydCB7XG4gICAgQ29sbGVjdGlvbkZpbHRlcixcbiAgICBDb2xsZWN0aW9uR3JvdXAsXG4gICAgQ29sbGVjdGlvblNvcnQsXG4gICAgVGFibGUsXG4gICAgVGFibGVDb2x1bW4sXG4gICAgVGFibGVTdGF0ZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlLWhlbHBlcnMnO1xuXG5pbXBvcnQgeyBUYWJsZVAxM1NvcnRDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLXAxMy1zb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZVAxM0dyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1wMTMtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlUDEzRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1wMTMtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZVAxM0NvbHVtbnNDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLXAxMy1jb2x1bW5zLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFNvcnREaWFsb2dEYXRhLCBTb3J0RGlhbG9nUmVzdWx0RGF0YSwgUDEzU29ydGluZ0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vc29ydGluZy9zb3J0aW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcm91cERpYWxvZ0RhdGEsIEdyb3VwRGlhbG9nUmVzdWx0RGF0YSwgUDEzR3JvdXBpbmdEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2dyb3VwaW5nL2dyb3VwaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWx0ZXJEaWFsb2dEYXRhLCBGaWx0ZXJEaWFsb2dSZXN1bHREYXRhLCBQMTNGaWx0ZXJpbmdEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlcmluZy9maWx0ZXJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbnNEaWFsb2dEYXRhLCBDb2x1bW5zRGlhbG9nUmVzdWx0RGF0YSwgUDEzQ29sdW1uc0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29sdW1ucy9jb2x1bW5zLmNvbXBvbmVudCc7XG5cbmNvbnN0IGRpYWxvZ0NvbmZpZzogRGlhbG9nQ29uZmlnID0ge1xuICAgIHJlc3BvbnNpdmVQYWRkaW5nOiB0cnVlLFxuICAgIHZlcnRpY2FsUGFkZGluZzogdHJ1ZSxcbiAgICBtaW5XaWR0aDogJzMwcmVtJyxcbiAgICAvKiogODhweCBpdCdzIHRoZSBoZWFkZXIgKyBmb290ZXIgaGVpZ2h0ICovXG4gICAgYm9keU1pbkhlaWdodDogJ2NhbGMoNTB2aCAtIDg4cHgpJ1xufTtcblxuLyoqXG4gKiBWaWV3IHNldHRpbmdzIGRpYWxvZyBjb21wb25lbnQuXG4gKlxuICogVXNlZCB0byBsaW5rIHZpZXcgc2V0dGluZ3MgZmlsdGVycyBvcHRpb25zIHRvIHRoZSBncmlkIHRhYmxlLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxmZHAtdGFibGUgI215VGFibGU+PC9mZHAtdGFibGU+XG4gKiAuLi5cbiAqIDxmZHAtdGFibGUtcDEzLWRpYWxvZyBbdGFibGVdPVwibXlUYWJsZVwiPlxuICogICA8IS0tIFNvcnQgUGFuZWwgLS0+XG4gKiAgIDxmZHAtdGFibGUtcDEzbi1zb3J0PjwvZmRwLXRhYmxlLXAxM24tc29ydD5cbiAqXG4gKiAgIDwhLS0gRmlsdGVyIFBhbmVsIC0tPlxuICogICA8ZmRwLXRhYmxlLXAxM24tZmlsdGVyPjwvZmRwLXRhYmxlLXAxM24tZmlsdGVyPlxuICpcbiAqICAgPCEtLSBHcm91cCBQYW5lbCAtLT5cbiAqICAgPGZkcC10YWJsZS1wMTNuLWdyb3VwPjwvZmRwLXRhYmxlLXAxM24tZ3JvdXA+XG4gKlxuICogICA8IS0tIENvbHVtbnMgUGFuZWwgLS0+XG4gKiAgIDxmZHAtdGFibGUtcDEzbi1jb2x1bW5zPjwvZmRwLXRhYmxlLXAxM24tY29sdW1ucz5cbiAqIDwvZmRwLXRhYmxlLXAxMy1kaWFsb2c+XG4gKiBgYGBcbiAqICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10YWJsZS1wMTMtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICB9XG4gICAgICAgIGBcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlUDEzRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKiogUmVmZXJlbmNlIHRvIHRhYmxlIGNvbXBvbmVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0YWJsZSh0YWJsZTogVGFibGUpIHtcbiAgICAgICAgdGhpcy5fc2V0VGFibGUodGFibGUpO1xuICAgIH1cbiAgICBnZXQgdGFibGUoKTogVGFibGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFRhYmxlUDEzU29ydENvbXBvbmVudClcbiAgICBzb3J0OiBUYWJsZVAxM1NvcnRDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoVGFibGVQMTNGaWx0ZXJDb21wb25lbnQpXG4gICAgZmlsdGVyOiBUYWJsZVAxM0ZpbHRlckNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChUYWJsZVAxM0dyb3VwQ29tcG9uZW50KVxuICAgIGdyb3VwOiBUYWJsZVAxM0dyb3VwQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFRhYmxlUDEzQ29sdW1uc0NvbXBvbmVudClcbiAgICBjb2x1bW5zOiBUYWJsZVAxM0NvbHVtbnNDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90YWJsZTogVGFibGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RhYmxlU3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVGcm9tVGFibGUoKTtcbiAgICB9XG5cbiAgICAvKiogT3BlbiBTb3J0IFNldHRpbmdzIERpYWxvZyAqL1xuICAgIHNob3dTb3J0aW5nU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fZ2V0VGFibGVTdGF0ZSgpO1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5fZ2V0VGFibGVDb2x1bW5zKCkuZmlsdGVyKCh7IHNvcnRhYmxlIH0pID0+IHNvcnRhYmxlKTtcbiAgICAgICAgY29uc3Qgc29ydEJ5ID0gc3RhdGUuc29ydEJ5O1xuICAgICAgICBjb25zdCBkaWFsb2dEYXRhOiBTb3J0RGlhbG9nRGF0YSA9IHtcbiAgICAgICAgICAgIGNvbHVtbnM6IGNvbHVtbnMubWFwKCh7IGxhYmVsLCBrZXkgfSkgPT4gKHsgbGFiZWwsIGtleSB9KSksXG4gICAgICAgICAgICBjb2xsZWN0aW9uU29ydDogc29ydEJ5XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFxuICAgICAgICAgICAgUDEzU29ydGluZ0RpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5kaWFsb2dDb25maWcsXG4gICAgICAgICAgICAgICAgZGF0YTogZGlhbG9nRGF0YVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW5qZWN0b3JcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZFxuICAgICAgICAgICAgICAgIC5waXBlKGZpbHRlcigocmVzdWx0KSA9PiAhIXJlc3VsdCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoeyBjb2xsZWN0aW9uU29ydCB9OiBTb3J0RGlhbG9nUmVzdWx0RGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcHBseVNvcnRpbmcoY29sbGVjdGlvblNvcnQpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIE9wZW4gRmlsdGVyaW5nIFNldHRpbmdzIERpYWxvZyAqL1xuICAgIHNob3dGaWx0ZXJpbmdTZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9nZXRUYWJsZVN0YXRlKCk7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLl9nZXRUYWJsZUNvbHVtbnMoKTtcbiAgICAgICAgY29uc3QgZmlsdGVyQnkgPSBzdGF0ZT8uZmlsdGVyQnk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGE6IEZpbHRlckRpYWxvZ0RhdGEgPSB7XG4gICAgICAgICAgICBjb2x1bW5zOiBjb2x1bW5zLm1hcCgoeyBsYWJlbCwga2V5LCBkYXRhVHlwZSwgZmlsdGVyYWJsZSB9KSA9PiAoeyBsYWJlbCwga2V5LCBkYXRhVHlwZSwgZmlsdGVyYWJsZSB9KSksXG4gICAgICAgICAgICBjb2xsZWN0aW9uRmlsdGVyOiBmaWx0ZXJCeSxcbiAgICAgICAgICAgIHZhbGlkYXRvcjogdGhpcy5maWx0ZXIudmFsaWRhdG9yXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFxuICAgICAgICAgICAgUDEzRmlsdGVyaW5nRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgICAgICBkaXNhYmxlUGFkZGluZ3M6IHRydWUsXG4gICAgICAgICAgICAgICAgd2lkdGg6ICc1MHJlbScsXG4gICAgICAgICAgICAgICAgZGF0YTogZGlhbG9nRGF0YVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW5qZWN0b3JcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZFxuICAgICAgICAgICAgICAgIC5waXBlKGZpbHRlcigocmVzdWx0KSA9PiAhIXJlc3VsdCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoeyBjb2xsZWN0aW9uRmlsdGVyIH06IEZpbHRlckRpYWxvZ1Jlc3VsdERhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXBwbHlGaWx0ZXJpbmcoY29sbGVjdGlvbkZpbHRlcik7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogT3BlbiBHcm91cGluZyBTZXR0aW5ncyBEaWFsb2cgKi9cbiAgICBzaG93R3JvdXBpbmdTZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9nZXRUYWJsZVN0YXRlKCk7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLl9nZXRUYWJsZUNvbHVtbnMoKTtcbiAgICAgICAgY29uc3QgdmlzaWJsZUNvbHVtbnMgPSBzdGF0ZS5jb2x1bW5zO1xuICAgICAgICBjb25zdCBncm91cEJ5ID0gc3RhdGUuZ3JvdXBCeTtcbiAgICAgICAgY29uc3QgZGlhbG9nRGF0YTogR3JvdXBEaWFsb2dEYXRhID0ge1xuICAgICAgICAgICAgY29sdW1uczogY29sdW1uc1xuICAgICAgICAgICAgICAgIC8vIFdlIGNhbiBncm91cCBieSB2aXNpYmxlIGNvbHVtbnMgb25seVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHsgbmFtZSB9KSA9PiB2aXNpYmxlQ29sdW1ucy5pbmNsdWRlcyhuYW1lKSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKCh7IGdyb3VwYWJsZSB9KSA9PiBncm91cGFibGUpXG4gICAgICAgICAgICAgICAgLm1hcCgoeyBsYWJlbCwga2V5IH0pID0+ICh7IGxhYmVsLCBrZXkgfSkpLFxuICAgICAgICAgICAgY29sbGVjdGlvbkdyb3VwOiBncm91cEJ5XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFxuICAgICAgICAgICAgUDEzR3JvdXBpbmdEaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4uZGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgICAgIGRhdGE6IGRpYWxvZ0RhdGFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmluamVjdG9yXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWRcbiAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKHJlc3VsdCkgPT4gISFyZXN1bHQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgY29sbGVjdGlvbkdyb3VwIH06IEdyb3VwRGlhbG9nUmVzdWx0RGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUdyb3VwaW5nKGNvbGxlY3Rpb25Hcm91cCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogT3BlbiBDb2x1bW5zIFNldHRpbmdzIERpYWxvZyAqL1xuICAgIHNob3dDb2x1bW5zU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fZ2V0VGFibGVTdGF0ZSgpO1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5fZ2V0VGFibGVDb2x1bW5zKCk7XG4gICAgICAgIGNvbnN0IHZpc2libGVDb2x1bW5zID0gc3RhdGUuY29sdW1ucztcbiAgICAgICAgY29uc3QgZGlhbG9nRGF0YTogQ29sdW1uc0RpYWxvZ0RhdGEgPSB7XG4gICAgICAgICAgICBhdmFpbGFibGVDb2x1bW5zOiBjb2x1bW5zLm1hcCgoeyBsYWJlbCwgbmFtZSB9KSA9PiAoeyBsYWJlbCwga2V5OiBuYW1lIH0pKSxcbiAgICAgICAgICAgIHZpc2libGVDb2x1bW5zXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFxuICAgICAgICAgICAgUDEzQ29sdW1uc0RpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5kaWFsb2dDb25maWcsXG4gICAgICAgICAgICAgICAgZGlzYWJsZVBhZGRpbmdzOiB0cnVlLFxuICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMzVyZW0nLFxuICAgICAgICAgICAgICAgIGRhdGE6IGRpYWxvZ0RhdGFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmluamVjdG9yXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWRcbiAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKHJlc3VsdCkgPT4gISFyZXN1bHQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgdmlzaWJsZUNvbHVtbnM6IHJlc3VsdCB9OiBDb2x1bW5zRGlhbG9nUmVzdWx0RGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUNvbHVtbnMocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0VGFibGUodGFibGU6IFRhYmxlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlID0gdGFibGU7XG5cbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVGcm9tVGFibGUoKTtcblxuICAgICAgICBpZiAodGhpcy5fdGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmliZVRvVGFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaWJlVG9UYWJsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9UYWJsZVRyaWdnZXJzVG9PcGVuRGlhbG9ncygpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub1RhYmxlQ29sdW1ucygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9UYWJsZVRyaWdnZXJzVG9PcGVuRGlhbG9ncygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGVTdWJzY3JpcHRpb25zLmFkZCh0aGlzLl90YWJsZS5vcGVuVGFibGVTb3J0U2V0dGluZ3Muc3Vic2NyaWJlKCgpID0+IHRoaXMuc2hvd1NvcnRpbmdTZXR0aW5ncygpKSk7XG4gICAgICAgIHRoaXMuX3RhYmxlU3Vic2NyaXB0aW9ucy5hZGQodGhpcy5fdGFibGUub3BlblRhYmxlRmlsdGVyU2V0dGluZ3Muc3Vic2NyaWJlKCgpID0+IHRoaXMuc2hvd0ZpbHRlcmluZ1NldHRpbmdzKCkpKTtcbiAgICAgICAgdGhpcy5fdGFibGVTdWJzY3JpcHRpb25zLmFkZCh0aGlzLl90YWJsZS5vcGVuVGFibGVHcm91cFNldHRpbmdzLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNob3dHcm91cGluZ1NldHRpbmdzKCkpKTtcbiAgICAgICAgdGhpcy5fdGFibGVTdWJzY3JpcHRpb25zLmFkZCh0aGlzLl90YWJsZS5vcGVuVGFibGVDb2x1bW5TZXR0aW5ncy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zaG93Q29sdW1uc1NldHRpbmdzKCkpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvVGFibGVDb2x1bW5zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZVN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5fdGFibGUudGFibGVDb2x1bW5zU3RyZWFtLnN1YnNjcmliZSgoY29sdW1uczogVGFibGVDb2x1bW5bXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlPy5zaG93U29ydFNldHRpbmdzSW5Ub29sYmFyKGNvbHVtbnMuc29tZSgoeyBzb3J0YWJsZSB9KSA9PiBzb3J0YWJsZSkpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGU/LnNob3dHcm91cFNldHRpbmdzSW5Ub29sYmFyKGNvbHVtbnMuc29tZSgoeyBncm91cGFibGUgfSkgPT4gZ3JvdXBhYmxlKSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl90YWJsZT8uc2hvd0NvbHVtblNldHRpbmdzSW5Ub29sYmFyKGNvbHVtbnMubGVuZ3RoID4gMCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl90YWJsZT8uc2hvd0ZpbHRlclNldHRpbmdzSW5Ub29sYmFyKGNvbHVtbnMuc29tZSgoeyBmaWx0ZXJhYmxlIH0pID0+IGZpbHRlcmFibGUpKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlPy5zZXRIZWFkZXJDb2x1bW5GaWx0ZXJpbmdEaXNhYmxlZChjb2x1bW5zLnNvbWUoKHsgZmlsdGVyYWJsZSB9KSA9PiBmaWx0ZXJhYmxlKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0VGFibGVTdGF0ZSgpOiBUYWJsZVN0YXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlPy5nZXRUYWJsZVN0YXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRUYWJsZUNvbHVtbnMoKTogVGFibGVDb2x1bW5bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZT8uZ2V0VGFibGVDb2x1bW5zKCkgfHwgW107XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hcHBseVNvcnRpbmcoY29sbGVjdGlvblNvcnQ6IENvbGxlY3Rpb25Tb3J0W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGU/LnNvcnQoY29sbGVjdGlvblNvcnQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXBwbHlGaWx0ZXJpbmcoZmlsdGVyczogQ29sbGVjdGlvbkZpbHRlcltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlPy5maWx0ZXIoZmlsdGVycyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hcHBseUdyb3VwaW5nKGNvbGxlY3Rpb25Hcm91cDogQ29sbGVjdGlvbkdyb3VwW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGU/Lmdyb3VwKGNvbGxlY3Rpb25Hcm91cCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hcHBseUNvbHVtbnMoY29sdW1uczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGU/LnNldENvbHVtbnMoY29sdW1ucyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF91bnN1YnNjcmliZUZyb21UYWJsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGVTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3RhYmxlU3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICB9XG59XG4iXX0=
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcDEzLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1wMTMtZGlhbG9nL3RhYmxlLXAxMy1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQWdCLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTNFLE9BQU8sRUFJSCxLQUFLLEVBR1IsTUFBTSx5Q0FBeUMsQ0FBQztBQUVqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV6RSxPQUFPLEVBQXdDLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUcsT0FBTyxFQUEwQywwQkFBMEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25ILE9BQU8sRUFBNEMsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4SCxPQUFPLEVBQThDLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQUVwSCxNQUFNLFlBQVksR0FBaUI7SUFDL0IsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixlQUFlLEVBQUUsSUFBSTtJQUNyQixRQUFRLEVB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QixFQUFFLG1CQVFLLHVCQUF1QixDQUFDLE1BQU07b0dBSzNDLEtBQUs7c0JBRFIsS0FBSztnQkFVTixJQUFJO3NCQURILFlBQVk7dUJBQUMscUJBQXFCO2dCQUtuQyxNQUFNO3NCQURMLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUtyQyxLQUFLO3NCQURKLFlBQVk7dUJBQUMsc0JBQXNCO2dCQUtwQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRGlhbG9nQ29uZmlnLCBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5cbmltcG9ydCB7XG4gICAgQ29sbGVjdGlvbkZpbHRlcixcbiAgICBDb2xsZWN0aW9uR3JvdXAsXG4gICAgQ29sbGVjdGlvblNvcnQsXG4gICAgVGFibGUsXG4gICAgVGFibGVDb2x1bW4sXG4gICAgVGFibGVTdGF0ZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlLWhlbHBlcnMnO1xuXG5pbXBvcnQgeyBUYWJsZVAxM1NvcnRDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLXAxMy1zb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZVAxM0dyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1wMTMtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlUDEzRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1wMTMtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZVAxM0NvbHVtbnNDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLXAxMy1jb2x1bW5zLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFNvcnREaWFsb2dEYXRhLCBTb3J0RGlhbG9nUmVzdWx0RGF0YSwgUDEzU29ydGluZ0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vc29ydGluZy9zb3J0aW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcm91cERpYWxvZ0RhdGEsIEdyb3VwRGlhbG9nUmVzdWx0RGF0YSwgUDEzR3JvdXBpbmdEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2dyb3VwaW5nL2dyb3VwaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWx0ZXJEaWFsb2dEYXRhLCBGaWx0ZXJEaWFsb2dSZXN1bHREYXRhLCBQMTNGaWx0ZXJpbmdEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlcmluZy9maWx0ZXJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbnNEaWFsb2dEYXRhLCBDb2x1bW5zRGlhbG9nUmVzdWx0RGF0YSwgUDEzQ29sdW1uc0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29sdW1ucy9jb2x1bW5zLmNvbXBvbmVudCc7XG5cbmNvbnN0IGRpYWxvZ0NvbmZpZzogRGlhbG9nQ29uZmlnID0ge1xuICAgIHJlc3BvbnNpdmVQYWRkaW5nOiB0cnVlLFxuICAgIHZlcnRpY2FsUGFkZGluZzogdHJ1ZSxcbiAgICBtaW5XaWR0aDogJzMwcmVtJyxcbiAgICAvKiogODhweCBpdCdzIHRoZSBoZWFkZXIgKyBmb290ZXIgaGVpZ2h0ICovXG4gICAgYm9keU1pbkhlaWdodDogJ2NhbGMoNTB2aCAtIDg4cHgpJ1xufTtcblxuLyoqXG4gKiBWaWV3IHNldHRpbmdzIGRpYWxvZyBjb21wb25lbnQuXG4gKlxuICogVXNlZCB0byBsaW5rIHZpZXcgc2V0dGluZ3MgZmlsdGVycyBvcHRpb25zIHRvIHRoZSBncmlkIHRhYmxlLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxmZHAtdGFibGUgI215VGFibGU+PC9mZHAtdGFibGU+XG4gKiAuLi5cbiAqIDxmZHAtdGFibGUtcDEzLWRpYWxvZyBbdGFibGVdPVwibXlUYWJsZVwiPlxuICogICA8IS0tIFNvcnQgUGFuZWwgLS0+XG4gKiAgIDxmZHAtdGFibGUtcDEzbi1zb3J0PjwvZmRwLXRhYmxlLXAxM24tc29ydD5cbiAqXG4gKiAgIDwhLS0gRmlsdGVyIFBhbmVsIC0tPlxuICogICA8ZmRwLXRhYmxlLXAxM24tZmlsdGVyPjwvZmRwLXRhYmxlLXAxM24tZmlsdGVyPlxuICpcbiAqICAgPCEtLSBHcm91cCBQYW5lbCAtLT5cbiAqICAgPGZkcC10YWJsZS1wMTNuLWdyb3VwPjwvZmRwLXRhYmxlLXAxM24tZ3JvdXA+XG4gKlxuICogICA8IS0tIENvbHVtbnMgUGFuZWwgLS0+XG4gKiAgIDxmZHAtdGFibGUtcDEzbi1jb2x1bW5zPjwvZmRwLXRhYmxlLXAxM24tY29sdW1ucz5cbiAqIDwvZmRwLXRhYmxlLXAxMy1kaWFsb2c+XG4gKiBgYGBcbiAqICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10YWJsZS1wMTMtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICB9XG4gICAgICAgIGBcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlUDEzRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKiogUmVmZXJlbmNlIHRvIHRhYmxlIGNvbXBvbmVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0YWJsZSh0YWJsZTogVGFibGUpIHtcbiAgICAgICAgdGhpcy5fc2V0VGFibGUodGFibGUpO1xuICAgIH1cbiAgICBnZXQgdGFibGUoKTogVGFibGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFRhYmxlUDEzU29ydENvbXBvbmVudClcbiAgICBzb3J0OiBUYWJsZVAxM1NvcnRDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoVGFibGVQMTNGaWx0ZXJDb21wb25lbnQpXG4gICAgZmlsdGVyOiBUYWJsZVAxM0ZpbHRlckNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChUYWJsZVAxM0dyb3VwQ29tcG9uZW50KVxuICAgIGdyb3VwOiBUYWJsZVAxM0dyb3VwQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFRhYmxlUDEzQ29sdW1uc0NvbXBvbmVudClcbiAgICBjb2x1bW5zOiBUYWJsZVAxM0NvbHVtbnNDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90YWJsZTogVGFibGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RhYmxlU3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVGcm9tVGFibGUoKTtcbiAgICB9XG5cbiAgICAvKiogT3BlbiBTb3J0IFNldHRpbmdzIERpYWxvZyAqL1xuICAgIHNob3dTb3J0aW5nU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fZ2V0VGFibGVTdGF0ZSgpO1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5fZ2V0VGFibGVDb2x1bW5zKCkuZmlsdGVyKCh7IHNvcnRhYmxlIH0pID0+IHNvcnRhYmxlKTtcbiAgICAgICAgY29uc3Qgc29ydEJ5ID0gc3RhdGUuc29ydEJ5O1xuICAgICAgICBjb25zdCBkaWFsb2dEYXRhOiBTb3J0RGlhbG9nRGF0YSA9IHtcbiAgICAgICAgICAgIGNvbHVtbnM6IGNvbHVtbnMubWFwKCh7IGxhYmVsLCBrZXkgfSkgPT4gKHsgbGFiZWwsIGtleSB9KSksXG4gICAgICAgICAgICBjb2xsZWN0aW9uU29ydDogc29ydEJ5XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFxuICAgICAgICAgICAgUDEzU29ydGluZ0RpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5kaWFsb2dDb25maWcsXG4gICAgICAgICAgICAgICAgZGF0YTogZGlhbG9nRGF0YVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW5qZWN0b3JcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZFxuICAgICAgICAgICAgICAgIC5waXBlKGZpbHRlcigocmVzdWx0KSA9PiAhIXJlc3VsdCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoeyBjb2xsZWN0aW9uU29ydCB9OiBTb3J0RGlhbG9nUmVzdWx0RGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcHBseVNvcnRpbmcoY29sbGVjdGlvblNvcnQpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIE9wZW4gRmlsdGVyaW5nIFNldHRpbmdzIERpYWxvZyAqL1xuICAgIHNob3dGaWx0ZXJpbmdTZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9nZXRUYWJsZVN0YXRlKCk7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLl9nZXRUYWJsZUNvbHVtbnMoKTtcbiAgICAgICAgY29uc3QgZmlsdGVyQnkgPSBzdGF0ZT8uZmlsdGVyQnk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGE6IEZpbHRlckRpYWxvZ0RhdGEgPSB7XG4gICAgICAgICAgICBjb2x1bW5zOiBjb2x1bW5zLm1hcCgoeyBsYWJlbCwga2V5LCBkYXRhVHlwZSwgZmlsdGVyYWJsZSB9KSA9PiAoeyBsYWJlbCwga2V5LCBkYXRhVHlwZSwgZmlsdGVyYWJsZSB9KSksXG4gICAgICAgICAgICBjb2xsZWN0aW9uRmlsdGVyOiBmaWx0ZXJCeVxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5maWx0ZXIgJiYgdGhpcy5maWx0ZXIudmFsaWRhdG9yKSB7XG4gICAgICAgICAgICBkaWFsb2dEYXRhLnZhbGlkYXRvciA9IHRoaXMuZmlsdGVyLnZhbGlkYXRvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgICBQMTNGaWx0ZXJpbmdEaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4uZGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgICAgIGRpc2FibGVQYWRkaW5nczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB3aWR0aDogJzUwcmVtJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBkaWFsb2dEYXRhXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhpcy50YWJsZS5pbmplY3RvclxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkXG4gICAgICAgICAgICAgICAgLnBpcGUoZmlsdGVyKChyZXN1bHQpID0+ICEhcmVzdWx0KSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCh7IGNvbGxlY3Rpb25GaWx0ZXIgfTogRmlsdGVyRGlhbG9nUmVzdWx0RGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUZpbHRlcmluZyhjb2xsZWN0aW9uRmlsdGVyKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBPcGVuIEdyb3VwaW5nIFNldHRpbmdzIERpYWxvZyAqL1xuICAgIHNob3dHcm91cGluZ1NldHRpbmdzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX2dldFRhYmxlU3RhdGUoKTtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuX2dldFRhYmxlQ29sdW1ucygpO1xuICAgICAgICBjb25zdCB2aXNpYmxlQ29sdW1ucyA9IHN0YXRlLmNvbHVtbnM7XG4gICAgICAgIGNvbnN0IGdyb3VwQnkgPSBzdGF0ZS5ncm91cEJ5O1xuICAgICAgICBjb25zdCBkaWFsb2dEYXRhOiBHcm91cERpYWxvZ0RhdGEgPSB7XG4gICAgICAgICAgICBjb2x1bW5zOiBjb2x1bW5zXG4gICAgICAgICAgICAgICAgLy8gV2UgY2FuIGdyb3VwIGJ5IHZpc2libGUgY29sdW1ucyBvbmx5XG4gICAgICAgICAgICAgICAgLmZpbHRlcigoeyBuYW1lIH0pID0+IHZpc2libGVDb2x1bW5zLmluY2x1ZGVzKG5hbWUpKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHsgZ3JvdXBhYmxlIH0pID0+IGdyb3VwYWJsZSlcbiAgICAgICAgICAgICAgICAubWFwKCh7IGxhYmVsLCBrZXkgfSkgPT4gKHsgbGFiZWwsIGtleSB9KSksXG4gICAgICAgICAgICBjb2xsZWN0aW9uR3JvdXA6IGdyb3VwQnlcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgICBQMTNHcm91cGluZ0RpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5kaWFsb2dDb25maWcsXG4gICAgICAgICAgICAgICAgZGF0YTogZGlhbG9nRGF0YVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW5qZWN0b3JcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZFxuICAgICAgICAgICAgICAgIC5waXBlKGZpbHRlcigocmVzdWx0KSA9PiAhIXJlc3VsdCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoeyBjb2xsZWN0aW9uR3JvdXAgfTogR3JvdXBEaWFsb2dSZXN1bHREYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGx5R3JvdXBpbmcoY29sbGVjdGlvbkdyb3VwKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBPcGVuIENvbHVtbnMgU2V0dGluZ3MgRGlhbG9nICovXG4gICAgc2hvd0NvbHVtbnNTZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9nZXRUYWJsZVN0YXRlKCk7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLl9nZXRUYWJsZUNvbHVtbnMoKTtcbiAgICAgICAgY29uc3QgdmlzaWJsZUNvbHVtbnMgPSBzdGF0ZS5jb2x1bW5zO1xuICAgICAgICBjb25zdCBkaWFsb2dEYXRhOiBDb2x1bW5zRGlhbG9nRGF0YSA9IHtcbiAgICAgICAgICAgIGF2YWlsYWJsZUNvbHVtbnM6IGNvbHVtbnMubWFwKCh7IGxhYmVsLCBuYW1lIH0pID0+ICh7IGxhYmVsLCBrZXk6IG5hbWUgfSkpLFxuICAgICAgICAgICAgdmlzaWJsZUNvbHVtbnNcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgICBQMTNDb2x1bW5zRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgICAgICBkaXNhYmxlUGFkZGluZ3M6IHRydWUsXG4gICAgICAgICAgICAgICAgbWluV2lkdGg6ICczNXJlbScsXG4gICAgICAgICAgICAgICAgZGF0YTogZGlhbG9nRGF0YVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW5qZWN0b3JcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZFxuICAgICAgICAgICAgICAgIC5waXBlKGZpbHRlcigocmVzdWx0KSA9PiAhIXJlc3VsdCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoeyB2aXNpYmxlQ29sdW1uczogcmVzdWx0IH06IENvbHVtbnNEaWFsb2dSZXN1bHREYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGx5Q29sdW1ucyhyZXN1bHQpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRUYWJsZSh0YWJsZTogVGFibGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGUgPSB0YWJsZTtcblxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUZyb21UYWJsZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLl90YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaWJlVG9UYWJsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpYmVUb1RhYmxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub1RhYmxlVHJpZ2dlcnNUb09wZW5EaWFsb2dzKCk7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvVGFibGVDb2x1bW5zKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub1RhYmxlVHJpZ2dlcnNUb09wZW5EaWFsb2dzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZVN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX3RhYmxlLm9wZW5UYWJsZVNvcnRTZXR0aW5ncy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zaG93U29ydGluZ1NldHRpbmdzKCkpKTtcbiAgICAgICAgdGhpcy5fdGFibGVTdWJzY3JpcHRpb25zLmFkZCh0aGlzLl90YWJsZS5vcGVuVGFibGVGaWx0ZXJTZXR0aW5ncy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zaG93RmlsdGVyaW5nU2V0dGluZ3MoKSkpO1xuICAgICAgICB0aGlzLl90YWJsZVN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX3RhYmxlLm9wZW5UYWJsZUdyb3VwU2V0dGluZ3Muc3Vic2NyaWJlKCgpID0+IHRoaXMuc2hvd0dyb3VwaW5nU2V0dGluZ3MoKSkpO1xuICAgICAgICB0aGlzLl90YWJsZVN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX3RhYmxlLm9wZW5UYWJsZUNvbHVtblNldHRpbmdzLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNob3dDb2x1bW5zU2V0dGluZ3MoKSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9UYWJsZUNvbHVtbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlU3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLl90YWJsZS50YWJsZUNvbHVtbnNTdHJlYW0uc3Vic2NyaWJlKChjb2x1bW5zOiBUYWJsZUNvbHVtbltdKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGU/LnNob3dTb3J0U2V0dGluZ3NJblRvb2xiYXIoY29sdW1ucy5zb21lKCh7IHNvcnRhYmxlIH0pID0+IHNvcnRhYmxlKSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl90YWJsZT8uc2hvd0dyb3VwU2V0dGluZ3NJblRvb2xiYXIoY29sdW1ucy5zb21lKCh7IGdyb3VwYWJsZSB9KSA9PiBncm91cGFibGUpKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlPy5zaG93Q29sdW1uU2V0dGluZ3NJblRvb2xiYXIoY29sdW1ucy5sZW5ndGggPiAwKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlPy5zaG93RmlsdGVyU2V0dGluZ3NJblRvb2xiYXIoY29sdW1ucy5zb21lKCh7IGZpbHRlcmFibGUgfSkgPT4gZmlsdGVyYWJsZSkpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGU/LnNldEhlYWRlckNvbHVtbkZpbHRlcmluZ0Rpc2FibGVkKGNvbHVtbnMuc29tZSgoeyBmaWx0ZXJhYmxlIH0pID0+IGZpbHRlcmFibGUpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRUYWJsZVN0YXRlKCk6IFRhYmxlU3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGU/LmdldFRhYmxlU3RhdGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFRhYmxlQ29sdW1ucygpOiBUYWJsZUNvbHVtbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlPy5nZXRUYWJsZUNvbHVtbnMoKSB8fCBbXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FwcGx5U29ydGluZyhjb2xsZWN0aW9uU29ydDogQ29sbGVjdGlvblNvcnRbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZT8uc29ydChjb2xsZWN0aW9uU29ydCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hcHBseUZpbHRlcmluZyhmaWx0ZXJzOiBDb2xsZWN0aW9uRmlsdGVyW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGU/LmZpbHRlcihmaWx0ZXJzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FwcGx5R3JvdXBpbmcoY29sbGVjdGlvbkdyb3VwOiBDb2xsZWN0aW9uR3JvdXBbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZT8uZ3JvdXAoY29sbGVjdGlvbkdyb3VwKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FwcGx5Q29sdW1ucyhjb2x1bW5zOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZT8uc2V0Q29sdW1ucyhjb2x1bW5zKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlRnJvbVRhYmxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZVN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fdGFibGVTdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIH1cbn1cbiJdfQ==
|