@elderbyte/ngx-starter 18.12.8 → 18.13.0-beta.0
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/_index.scss +18 -6
- package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
- package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +3 -3
- package/esm2022/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.mjs +3 -3
- package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +3 -3
- package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +3 -3
- package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +3 -3
- package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
- package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +3 -3
- package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +5 -3
- package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.component.mjs +3 -3
- package/fesm2022/elderbyte-ngx-starter.mjs +22 -20
- package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/components/shell/header/elder-app-header/elder-app-header.component.d.ts +2 -1
- package/package.json +1 -1
- package/src/lib/components/button-group/elder-button-group/elder-button-group.component.scss +1 -7
- package/src/lib/components/card-organizer/card-stack/elder-card-stack.component.scss +3 -14
- package/src/lib/components/cards/elder-card/elder-card.component.scss +2 -8
- package/src/lib/components/chips/_elder-chip-theme-old.scss +122 -0
- package/src/lib/components/chips/_elder-chip-theme.scss +101 -12
- package/src/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.scss +0 -6
- package/src/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.scss +11 -0
- package/src/lib/components/data-view/grid/elder-grid/elder-grid.component.scss +15 -22
- package/src/lib/components/data-view/table/elder-table/elder-table.component.scss +11 -18
- package/src/lib/components/errors/exception-detail/elder-exception-detail.component.scss +2 -9
- package/src/lib/components/expand-toggle-button/elder-expand-toggle-button.component.scss +2 -8
- package/src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.scss +7 -10
- package/src/lib/components/iframes/iframe-host/iframe-host.component.scss +0 -4
- package/src/lib/components/navigation/nav/_elder-nav-theme.scss +12 -24
- package/src/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.scss +1 -4
- package/src/lib/components/panels/card-panel/elder-card-panel.component.scss +3 -12
- package/src/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.scss +4 -12
- package/src/lib/components/panels/flat/_elder-panel-theme.scss +26 -9
- package/src/lib/components/select/_elder-select-base.scss +1 -9
- package/src/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.scss +1 -4
- package/src/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.scss +10 -39
- package/src/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.scss +19 -52
- package/src/lib/components/select/single/elder-select/elder-select.component.scss +24 -40
- package/src/lib/components/time/_elder-time-input.theme.scss +0 -3
- package/theming/_elder-color-variants.scss +26 -0
- package/theming/_elder-common.scss +6 -399
- package/theming/_elder-defaults.scss +3 -7
- package/theming/_elder-form.scss +308 -0
- package/theming/_elder-layout-system.scss +242 -0
- package/theming/_elder-m3-theme.scss +754 -0
- package/theming/_elder-mdc-support.scss +59 -142
- package/theming/_elder-scrollbar-theme.scss +2 -12
- package/theming/_elder-style-fixes.scss +46 -109
- package/theming/_elder-typography-utils.scss +0 -11
- package/theming/_mixins.scss +35 -0
- package/theming/_elder-palettes.scss +0 -148
- package/theming/_elder-theme.scss +0 -51
- package/theming/_elder-toast-theme.scss +0 -46
- package/theming/_mat-icon-button-size.scss +0 -34
|
@@ -201,7 +201,7 @@ export class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
201
201
|
provide: ELDER_SELECT_BASE,
|
|
202
202
|
useExisting: forwardRef(() => ElderMultiSelectChipsComponent),
|
|
203
203
|
},
|
|
204
|
-
], queries: [{ propertyName: "_customChipInput", first: true, predicate: MatFormFieldControl, descendants: true }, { propertyName: "chipTemplateQuery", first: true, predicate: ElderSelectChipDirective, descendants: true, read: TemplateRef }, { propertyName: "chipAvatarTemplateQuery", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true, read: TemplateRef }, { propertyName: "customInputTemplateQuery", first: true, predicate: ElderSelectCustomInputDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "_chipInput", first: true, predicate: ElderSelectComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"selectChips$ | async as chipValues\"\n class=\"elder-flex-control\"\n [matTooltip]=\"(state$ | async)?.error\"\n>\n <mat-chip-set\n #chips\n [class.mat-mdc-chip-set-stacked]=\"stacked\"\n cdkDropList\n [cdkDropListOrientation]=\"stacked ? 'vertical' : 'horizontal'\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowSorting\"\n >\n <ng-container *ngIf=\"state$ | async as state\">\n <div *ngIf=\"icon\" class=\"elder-input-prefix-icon-container flex-none\">\n <mat-icon\n *ngIf=\"icon\"\n disabled\n class=\"elder-prefix-icon elder-mdc-control-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{ icon }}\n </mat-icon>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"templates$ | async as templates\">\n <mat-chip-row\n elderChipLabel\n *ngFor=\"let chipModel of chipValues\"\n class=\"noselect clickable-chip\"\n [value]=\"resolveChipValue(chipModel.value)\"\n [color]=\"chipModel.colorSpec?.themeColor\"\n [levelColor]=\"chipModel.colorSpec?.levelColor\"\n [stateColor]=\"chipModel.colorSpec?.stateColor\"\n [removable]=\"chipModel.removable\"\n (keydown)=\"onChipKeyDown($event, chipModel.value)\"\n (click)=\"onCurrentClicked(chipModel.value)\"\n cdkDrag\n [cdkDragData]=\"chipModel.value\"\n [cdkDragDisabled]=\"!allowSorting\"\n >\n <mat-chip-avatar\n *ngIf=\"templates.avatar && !chipModel.avatarSpec?.hide\"\n [class.chip-avatar-xl]=\"chipModel.avatarSpec?.large\"\n >\n <ng-container *ngTemplateOutlet=\"templates.avatar; context: { $implicit: chipModel }\">\n </ng-container>\n </mat-chip-avatar>\n\n <ng-container\n *ngTemplateOutlet=\"\n templates.chip || simpleChipTemplate;\n context: { $implicit: chipModel }\n \"\n >\n </ng-container>\n\n <mat-icon\n matChipTrailingIcon\n class=\"elder-trailing-icon\"\n *ngIf=\"chipModel.trailingSpec?.icon\"\n [fontSet]=\"chipModel.trailingSpec?.iconFontSet\"\n >{{ chipModel.trailingSpec?.icon }}</mat-icon\n >\n\n <mat-icon\n matChipRemove\n *ngIf=\"chipModel.removable\"\n (click)=\"onClickRemoveChip($event, chipModel.value)\"\n >\n cancel\n </mat-icon>\n </mat-chip-row>\n\n <div class=\"layout-row place-start-center elder-chip-input\">\n <!-- [matChipInputFor]=\"chips\" -->\n <ng-container *ngTemplateOutlet=\"templates.input || selectInput\"> </ng-container>\n\n <button\n mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button elder-browse-icon\"\n *ngIf=\"selectionPopup\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\"\n aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n </div>\n </ng-container>\n </mat-chip-set>\n</div>\n\n<ng-template #selectInput>\n <!-- mat-mdc-chip-input -->\n <elder-select\n autocomplete\n elderClearSelect\n class=\"elder-chip-input-select flex\"\n [data]=\"dataContext$ | async\"\n [disabled]=\"!!disabled\"\n [required]=\"!!required\"\n [readonly]=\"!!readonly\"\n [placeholder]=\"placeholder\"\n (entityUpdated)=\"appendEntity($event)\"\n [displayPropertyResolver]=\"displayPropertyResolver$ | async\"\n [valueTemplate]=\"valueTemplate\"\n [queryFilter]=\"queryFilter\"\n [filters]=\"filters\"\n [sorts]=\"sorts\"\n [isOptionDisabledFn]=\"isOptionDisabledInternalFn\"\n [isOptionHiddenFn]=\"isOptionHiddenInternalFn\"\n ></elder-select>\n</ng-template>\n\n<ng-template #simpleChipTemplate let-chipModel>\n <span class=\"elder-chip-text\">{{ chipModel.displayText | elderTruncate: 20 }}</span>\n</ng-template>\n", styles: ["
|
|
204
|
+
], queries: [{ propertyName: "_customChipInput", first: true, predicate: MatFormFieldControl, descendants: true }, { propertyName: "chipTemplateQuery", first: true, predicate: ElderSelectChipDirective, descendants: true, read: TemplateRef }, { propertyName: "chipAvatarTemplateQuery", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true, read: TemplateRef }, { propertyName: "customInputTemplateQuery", first: true, predicate: ElderSelectCustomInputDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "_chipInput", first: true, predicate: ElderSelectComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"selectChips$ | async as chipValues\"\n class=\"elder-flex-control\"\n [matTooltip]=\"(state$ | async)?.error\"\n>\n <mat-chip-set\n #chips\n [class.mat-mdc-chip-set-stacked]=\"stacked\"\n cdkDropList\n [cdkDropListOrientation]=\"stacked ? 'vertical' : 'horizontal'\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowSorting\"\n >\n <ng-container *ngIf=\"state$ | async as state\">\n <div *ngIf=\"icon\" class=\"elder-input-prefix-icon-container flex-none\">\n <mat-icon\n *ngIf=\"icon\"\n disabled\n class=\"elder-prefix-icon elder-mdc-control-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{ icon }}\n </mat-icon>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"templates$ | async as templates\">\n <mat-chip-row\n elderChipLabel\n *ngFor=\"let chipModel of chipValues\"\n class=\"noselect clickable-chip\"\n [value]=\"resolveChipValue(chipModel.value)\"\n [color]=\"chipModel.colorSpec?.themeColor\"\n [levelColor]=\"chipModel.colorSpec?.levelColor\"\n [stateColor]=\"chipModel.colorSpec?.stateColor\"\n [removable]=\"chipModel.removable\"\n (keydown)=\"onChipKeyDown($event, chipModel.value)\"\n (click)=\"onCurrentClicked(chipModel.value)\"\n cdkDrag\n [cdkDragData]=\"chipModel.value\"\n [cdkDragDisabled]=\"!allowSorting\"\n >\n <mat-chip-avatar\n *ngIf=\"templates.avatar && !chipModel.avatarSpec?.hide\"\n [class.chip-avatar-xl]=\"chipModel.avatarSpec?.large\"\n >\n <ng-container *ngTemplateOutlet=\"templates.avatar; context: { $implicit: chipModel }\">\n </ng-container>\n </mat-chip-avatar>\n\n <ng-container\n *ngTemplateOutlet=\"\n templates.chip || simpleChipTemplate;\n context: { $implicit: chipModel }\n \"\n >\n </ng-container>\n\n <mat-icon\n matChipTrailingIcon\n class=\"elder-trailing-icon\"\n *ngIf=\"chipModel.trailingSpec?.icon\"\n [fontSet]=\"chipModel.trailingSpec?.iconFontSet\"\n >{{ chipModel.trailingSpec?.icon }}</mat-icon\n >\n\n <mat-icon\n matChipRemove\n *ngIf=\"chipModel.removable\"\n (click)=\"onClickRemoveChip($event, chipModel.value)\"\n >\n cancel\n </mat-icon>\n </mat-chip-row>\n\n <div class=\"layout-row place-start-center elder-chip-input\">\n <!-- [matChipInputFor]=\"chips\" -->\n <ng-container *ngTemplateOutlet=\"templates.input || selectInput\"> </ng-container>\n\n <button\n mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button elder-browse-icon\"\n *ngIf=\"selectionPopup\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\"\n aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n </div>\n </ng-container>\n </mat-chip-set>\n</div>\n\n<ng-template #selectInput>\n <!-- mat-mdc-chip-input -->\n <elder-select\n autocomplete\n elderClearSelect\n class=\"elder-chip-input-select flex\"\n [data]=\"dataContext$ | async\"\n [disabled]=\"!!disabled\"\n [required]=\"!!required\"\n [readonly]=\"!!readonly\"\n [placeholder]=\"placeholder\"\n (entityUpdated)=\"appendEntity($event)\"\n [displayPropertyResolver]=\"displayPropertyResolver$ | async\"\n [valueTemplate]=\"valueTemplate\"\n [queryFilter]=\"queryFilter\"\n [filters]=\"filters\"\n [sorts]=\"sorts\"\n [isOptionDisabledFn]=\"isOptionDisabledInternalFn\"\n [isOptionHiddenFn]=\"isOptionHiddenInternalFn\"\n ></elder-select>\n</ng-template>\n\n<ng-template #simpleChipTemplate let-chipModel>\n <span class=\"elder-chip-text\">{{ chipModel.displayText | elderTruncate: 20 }}</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "directive", type: ElderChipLabelDirective, selector: "[elderChipLabel]", inputs: ["appearance", "color", "stateColor", "levelColor"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: MatChipTrailingIcon, selector: "mat-chip-trailing-icon, [matChipTrailingIcon]" }, { kind: "directive", type: MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "component", type: ElderSelectComponent, selector: "elder-select", inputs: ["nullDisplay", "autocomplete", "allowNull", "entity", "entityId"], outputs: ["entityIdChange", "entityIdUpdated", "entityChange", "entityUpdated"] }, { kind: "directive", type: ElderClearSelectDirective, selector: "[elderClearSelect]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ElderTruncatePipe, name: "elderTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
205
205
|
}
|
|
206
206
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderMultiSelectChipsComponent, decorators: [{
|
|
207
207
|
type: Component,
|
|
@@ -231,7 +231,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
231
231
|
ElderClearSelectDirective,
|
|
232
232
|
AsyncPipe,
|
|
233
233
|
ElderTruncatePipe,
|
|
234
|
-
], template: "<div\n *ngIf=\"selectChips$ | async as chipValues\"\n class=\"elder-flex-control\"\n [matTooltip]=\"(state$ | async)?.error\"\n>\n <mat-chip-set\n #chips\n [class.mat-mdc-chip-set-stacked]=\"stacked\"\n cdkDropList\n [cdkDropListOrientation]=\"stacked ? 'vertical' : 'horizontal'\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowSorting\"\n >\n <ng-container *ngIf=\"state$ | async as state\">\n <div *ngIf=\"icon\" class=\"elder-input-prefix-icon-container flex-none\">\n <mat-icon\n *ngIf=\"icon\"\n disabled\n class=\"elder-prefix-icon elder-mdc-control-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{ icon }}\n </mat-icon>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"templates$ | async as templates\">\n <mat-chip-row\n elderChipLabel\n *ngFor=\"let chipModel of chipValues\"\n class=\"noselect clickable-chip\"\n [value]=\"resolveChipValue(chipModel.value)\"\n [color]=\"chipModel.colorSpec?.themeColor\"\n [levelColor]=\"chipModel.colorSpec?.levelColor\"\n [stateColor]=\"chipModel.colorSpec?.stateColor\"\n [removable]=\"chipModel.removable\"\n (keydown)=\"onChipKeyDown($event, chipModel.value)\"\n (click)=\"onCurrentClicked(chipModel.value)\"\n cdkDrag\n [cdkDragData]=\"chipModel.value\"\n [cdkDragDisabled]=\"!allowSorting\"\n >\n <mat-chip-avatar\n *ngIf=\"templates.avatar && !chipModel.avatarSpec?.hide\"\n [class.chip-avatar-xl]=\"chipModel.avatarSpec?.large\"\n >\n <ng-container *ngTemplateOutlet=\"templates.avatar; context: { $implicit: chipModel }\">\n </ng-container>\n </mat-chip-avatar>\n\n <ng-container\n *ngTemplateOutlet=\"\n templates.chip || simpleChipTemplate;\n context: { $implicit: chipModel }\n \"\n >\n </ng-container>\n\n <mat-icon\n matChipTrailingIcon\n class=\"elder-trailing-icon\"\n *ngIf=\"chipModel.trailingSpec?.icon\"\n [fontSet]=\"chipModel.trailingSpec?.iconFontSet\"\n >{{ chipModel.trailingSpec?.icon }}</mat-icon\n >\n\n <mat-icon\n matChipRemove\n *ngIf=\"chipModel.removable\"\n (click)=\"onClickRemoveChip($event, chipModel.value)\"\n >\n cancel\n </mat-icon>\n </mat-chip-row>\n\n <div class=\"layout-row place-start-center elder-chip-input\">\n <!-- [matChipInputFor]=\"chips\" -->\n <ng-container *ngTemplateOutlet=\"templates.input || selectInput\"> </ng-container>\n\n <button\n mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button elder-browse-icon\"\n *ngIf=\"selectionPopup\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\"\n aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n </div>\n </ng-container>\n </mat-chip-set>\n</div>\n\n<ng-template #selectInput>\n <!-- mat-mdc-chip-input -->\n <elder-select\n autocomplete\n elderClearSelect\n class=\"elder-chip-input-select flex\"\n [data]=\"dataContext$ | async\"\n [disabled]=\"!!disabled\"\n [required]=\"!!required\"\n [readonly]=\"!!readonly\"\n [placeholder]=\"placeholder\"\n (entityUpdated)=\"appendEntity($event)\"\n [displayPropertyResolver]=\"displayPropertyResolver$ | async\"\n [valueTemplate]=\"valueTemplate\"\n [queryFilter]=\"queryFilter\"\n [filters]=\"filters\"\n [sorts]=\"sorts\"\n [isOptionDisabledFn]=\"isOptionDisabledInternalFn\"\n [isOptionHiddenFn]=\"isOptionHiddenInternalFn\"\n ></elder-select>\n</ng-template>\n\n<ng-template #simpleChipTemplate let-chipModel>\n <span class=\"elder-chip-text\">{{ chipModel.displayText | elderTruncate: 20 }}</span>\n</ng-template>\n"
|
|
234
|
+
], template: "<div\n *ngIf=\"selectChips$ | async as chipValues\"\n class=\"elder-flex-control\"\n [matTooltip]=\"(state$ | async)?.error\"\n>\n <mat-chip-set\n #chips\n [class.mat-mdc-chip-set-stacked]=\"stacked\"\n cdkDropList\n [cdkDropListOrientation]=\"stacked ? 'vertical' : 'horizontal'\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowSorting\"\n >\n <ng-container *ngIf=\"state$ | async as state\">\n <div *ngIf=\"icon\" class=\"elder-input-prefix-icon-container flex-none\">\n <mat-icon\n *ngIf=\"icon\"\n disabled\n class=\"elder-prefix-icon elder-mdc-control-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{ icon }}\n </mat-icon>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"templates$ | async as templates\">\n <mat-chip-row\n elderChipLabel\n *ngFor=\"let chipModel of chipValues\"\n class=\"noselect clickable-chip\"\n [value]=\"resolveChipValue(chipModel.value)\"\n [color]=\"chipModel.colorSpec?.themeColor\"\n [levelColor]=\"chipModel.colorSpec?.levelColor\"\n [stateColor]=\"chipModel.colorSpec?.stateColor\"\n [removable]=\"chipModel.removable\"\n (keydown)=\"onChipKeyDown($event, chipModel.value)\"\n (click)=\"onCurrentClicked(chipModel.value)\"\n cdkDrag\n [cdkDragData]=\"chipModel.value\"\n [cdkDragDisabled]=\"!allowSorting\"\n >\n <mat-chip-avatar\n *ngIf=\"templates.avatar && !chipModel.avatarSpec?.hide\"\n [class.chip-avatar-xl]=\"chipModel.avatarSpec?.large\"\n >\n <ng-container *ngTemplateOutlet=\"templates.avatar; context: { $implicit: chipModel }\">\n </ng-container>\n </mat-chip-avatar>\n\n <ng-container\n *ngTemplateOutlet=\"\n templates.chip || simpleChipTemplate;\n context: { $implicit: chipModel }\n \"\n >\n </ng-container>\n\n <mat-icon\n matChipTrailingIcon\n class=\"elder-trailing-icon\"\n *ngIf=\"chipModel.trailingSpec?.icon\"\n [fontSet]=\"chipModel.trailingSpec?.iconFontSet\"\n >{{ chipModel.trailingSpec?.icon }}</mat-icon\n >\n\n <mat-icon\n matChipRemove\n *ngIf=\"chipModel.removable\"\n (click)=\"onClickRemoveChip($event, chipModel.value)\"\n >\n cancel\n </mat-icon>\n </mat-chip-row>\n\n <div class=\"layout-row place-start-center elder-chip-input\">\n <!-- [matChipInputFor]=\"chips\" -->\n <ng-container *ngTemplateOutlet=\"templates.input || selectInput\"> </ng-container>\n\n <button\n mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button elder-browse-icon\"\n *ngIf=\"selectionPopup\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\"\n aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n </div>\n </ng-container>\n </mat-chip-set>\n</div>\n\n<ng-template #selectInput>\n <!-- mat-mdc-chip-input -->\n <elder-select\n autocomplete\n elderClearSelect\n class=\"elder-chip-input-select flex\"\n [data]=\"dataContext$ | async\"\n [disabled]=\"!!disabled\"\n [required]=\"!!required\"\n [readonly]=\"!!readonly\"\n [placeholder]=\"placeholder\"\n (entityUpdated)=\"appendEntity($event)\"\n [displayPropertyResolver]=\"displayPropertyResolver$ | async\"\n [valueTemplate]=\"valueTemplate\"\n [queryFilter]=\"queryFilter\"\n [filters]=\"filters\"\n [sorts]=\"sorts\"\n [isOptionDisabledFn]=\"isOptionDisabledInternalFn\"\n [isOptionHiddenFn]=\"isOptionHiddenInternalFn\"\n ></elder-select>\n</ng-template>\n\n<ng-template #simpleChipTemplate let-chipModel>\n <span class=\"elder-chip-text\">{{ chipModel.displayText | elderTruncate: 20 }}</span>\n</ng-template>\n" }]
|
|
235
235
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.ElderDialogService }, { type: i4.NgControl, decorators: [{
|
|
236
236
|
type: Optional
|
|
237
237
|
}, {
|
|
@@ -268,4 +268,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
268
268
|
}], customInputTemplate: [{
|
|
269
269
|
type: Input
|
|
270
270
|
}] } });
|
|
271
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L211bHRpL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBRVosVUFBVSxFQUNWLEtBQUssRUFFTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRCxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLHdCQUF3QixFQUN4QiwrQkFBK0IsR0FDaEMsTUFBTSxtQ0FBbUMsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUNsRSxPQUFPLEVBQ0wsaUJBQWlCLEdBR2xCLE1BQU0seUJBQXlCLENBQUE7QUFJaEMsT0FB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QUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2Isa0NBQWtDO3dCQUNsQyxvQkFBb0I7d0JBQ3BCLHlCQUF5Qjt3QkFDekIsU0FBUzt3QkFDVCxpQkFBaUI7cUJBQ2xCOzswQkE2REUsUUFBUTs7MEJBQUksSUFBSTt5Q0E3Q1osZUFBZTtzQkFEckIsS0FBSztnQkFRQyxVQUFVO3NCQURoQixLQUFLO2dCQU1DLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBRzZCLGdCQUFnQjtzQkFBbEQsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBQ0EsVUFBVTtzQkFBMUMsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBMEVwQixpQkFBaUI7c0JBRDNCLFlBQVk7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBTWpFLFlBQVk7c0JBRHRCLEtBQUs7Z0JBVUssdUJBQXVCO3NCQURqQyxZQUFZO3VCQUFDLDhCQUE4QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQVF2RSxrQkFBa0I7c0JBRDVCLEtBQUs7Z0JBVUssd0JBQXdCO3NCQURsQyxZQUFZO3VCQUFDLCtCQUErQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQVF4RSxtQkFBbUI7c0JBRDdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRWxkZXJNdWx0aVNlbGVjdEJhc2UgfSBmcm9tICcuLi9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7XG4gIEVsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSxcbiAgRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlLFxuICBFbGRlclNlbGVjdEN1c3RvbUlucHV0RGlyZWN0aXZlLFxufSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3QtY2hpcC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJ1xuaW1wb3J0IHtcbiAgRUxERVJfU0VMRUNUX0JBU0UsXG4gIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUsXG4gIFRleHRSZXNvbHZlckZuLFxufSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3QtYmFzZSdcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5J1xuaW1wb3J0IHsgRWxkZXJEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGlhbG9ncy9lbGRlci1kaWFsb2cuc2VydmljZSdcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgRWxkZXJTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaW5nbGUvZWxkZXItc2VsZWN0L2VsZGVyLXNlbGVjdC5jb21wb25lbnQnXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5LCBDZGtEcm9wTGlzdCwgQ2RrRHJhZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnXG5pbXBvcnQge1xuICBDaGlwQXZhdGFyU3BlYyxcbiAgQ2hpcENvbG9yU3BlYyxcbiAgU2VsZWN0Q2hpcFNwZWMsXG4gIFNlbGVjdENoaXBTcGVjVXRpbCxcbiAgVHJhaWxpbmdTcGVjLFxufSBmcm9tICcuL3NlbGVjdC1jaGlwLXNwZWMnXG5pbXBvcnQgeyBFbGRlclRydW5jYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL3BpcGVzL2VsZGVyLXRydW5jYXRlLnBpcGUnXG5pbXBvcnQgeyBFbGRlckNsZWFyU2VsZWN0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc2luZ2xlL2VsZGVyLWNsZWFyLXNlbGVjdC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBFbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZm9ybXMvZGlyZWN0aXZlcy9lbGRlci1zdG9wLWV2ZW50LXByb3BhZ2F0aW9uLmRpcmVjdGl2ZSdcbmltcG9ydCB7IE1hdEljb25CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nXG5pbXBvcnQgeyBFbGRlckNoaXBMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2NoaXBzL2VsZGVyLWNoaXAtbGFiZWwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQge1xuICBNYXRDaGlwU2V0LFxuICBNYXRDaGlwUm93LFxuICBNYXRDaGlwQXZhdGFyLFxuICBNYXRDaGlwVHJhaWxpbmdJY29uLFxuICBNYXRDaGlwUmVtb3ZlLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcydcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJ1xuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcblxuY2xhc3MgQ2hpcE1vZGVsPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBULFxuICAgIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VGV4dDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBjb2xvclNwZWM6IENoaXBDb2xvclNwZWMsXG4gICAgcHVibGljIHJlYWRvbmx5IHJlbW92YWJsZTogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgYXZhdGFyU3BlYzogQ2hpcEF2YXRhclNwZWMsXG4gICAgcHVibGljIHJlYWRvbmx5IHRyYWlsaW5nU3BlYzogVHJhaWxpbmdTcGVjXG4gICkge31cbn1cblxuaW50ZXJmYWNlIFRlbXBsYXRlV3JhcHBlciB7XG4gIGNoaXA6IFRlbXBsYXRlUmVmPGFueT5cbiAgYXZhdGFyOiBUZW1wbGF0ZVJlZjxhbnk+XG5cbiAgaW5wdXQ6IFRlbXBsYXRlUmVmPGFueT5cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuc2NzcyddLFxuICAvLyBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRUxERVJfU0VMRUNUX0JBU0UsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFbGRlck11bHRpU2VsZWN0Q2hpcHNDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE1hdFRvb2x0aXAsXG4gICAgTWF0Q2hpcFNldCxcbiAgICBDZGtEcm9wTGlzdCxcbiAgICBNYXRJY29uLFxuICAgIE5nRm9yLFxuICAgIE1hdENoaXBSb3csXG4gICAgRWxkZXJDaGlwTGFiZWxEaXJlY3RpdmUsXG4gICAgQ2RrRHJhZyxcbiAgICBNYXRDaGlwQXZhdGFyLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgTWF0Q2hpcFRyYWlsaW5nSWNvbixcbiAgICBNYXRDaGlwUmVtb3ZlLFxuICAgIE1hdEljb25CdXR0b24sXG4gICAgRWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvbkRpcmVjdGl2ZSxcbiAgICBFbGRlclNlbGVjdENvbXBvbmVudCxcbiAgICBFbGRlckNsZWFyU2VsZWN0RGlyZWN0aXZlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBFbGRlclRydW5jYXRlUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50PFxuICBUSWQgPSBhbnksXG4gIFRFbnRpdHkgPSBhbnksXG4gIFRWYWx1ZSA9IGFueSxcbj4gZXh0ZW5kcyBFbGRlck11bHRpU2VsZWN0QmFzZTxUSWQsIFRFbnRpdHksIFRWYWx1ZT4ge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0Q2hpcHMkOiBPYnNlcnZhYmxlPENoaXBNb2RlbDxURW50aXR5PltdPlxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZWZhdWx0Q2hpcFNwZWM6IFNlbGVjdENoaXBTcGVjID0gU2VsZWN0Q2hpcFNwZWNVdGlsLkRlZmF1bHRDaGlwU3BlY1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gY3VzdG9taXplIGVhY2ggY2hpcCBpbmRpdmlkdWFsbHkgKENvbG9yLCBSZW1vdmFibGUsIEF2YXRhcikuXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2hpcFNwZWNGbjogKGU6IFRFbnRpdHkpID0+IFNlbGVjdENoaXBTcGVjID0gKGUpID0+IHRoaXMuZGVmYXVsdENoaXBTcGVjXG5cbiAgcHVibGljIHNlbGVjdGFibGUgPSB0cnVlXG5cbiAgQElucHV0KClcbiAgcHVibGljIGFsbG93UmVtb3ZlID0gdHJ1ZVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhbGxvd1NvcnRpbmcgPSBmYWxzZVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFja2VkID0gZmFsc2VcblxuICBAQ29udGVudENoaWxkKE1hdEZvcm1GaWVsZENvbnRyb2wpIF9jdXN0b21DaGlwSW5wdXQ6IE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PlxuICBAVmlld0NoaWxkKEVsZGVyU2VsZWN0Q29tcG9uZW50KSBfY2hpcElucHV0OiBNYXRGb3JtRmllbGRDb250cm9sPGFueT5cblxuICByZWFkb25seSB0ZW1wbGF0ZXMkOiBPYnNlcnZhYmxlPFRlbXBsYXRlV3JhcHBlcj5cblxuICBwcml2YXRlIHJlYWRvbmx5IGNoaXBUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPGFueT4+KG51bGwpXG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpcEF2YXRhclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4obnVsbClcbiAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21JbnB1dFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4obnVsbClcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlZnJlc2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGhvc3RSZWY6IEVsZW1lbnRSZWYsXG4gICAgem9uZTogTmdab25lLFxuICAgIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgZGlhbG9nU2VydmljZTogRWxkZXJEaWFsb2dTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICB6b25lLFxuICAgICAgaG9zdFJlZixcbiAgICAgICdtdWx0aS1zZWxlY3QtY2hpcHMnLFxuICAgICAgZm9jdXNNb25pdG9yLFxuICAgICAgdHJhbnNsYXRlU2VydmljZSxcbiAgICAgIGRpYWxvZ1NlcnZpY2UsXG4gICAgICBuZ0NvbnRyb2xcbiAgICApXG5cbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gJy4uLidcblxuICAgIHRoaXMuc2VsZWN0Q2hpcHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmVudGl0aWVzJCxcbiAgICAgIHRoaXMuZW50aXR5SWRzJCxcbiAgICAgIHRoaXMuc3RhdGUkLFxuICAgICAgdGhpcy5kaXNwbGF5UHJvcGVydHlSZXNvbHZlciQsXG4gICAgICB0aGlzLnJlYWRvbmx5JCxcbiAgICAgIHRoaXMuZGlzYWJsZWQkLFxuICAgICAgdGhpcy5yZWZyZXNoJCxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbZW50aXRpZXMsIGVudGl0eUlkcywgc3RhdGUsIGRQUl0pID0+XG4gICAgICAgIHRoaXMuYnVpbGRDaGlwTW9kZWxzT3JGYWxsYmFjayhlbnRpdGllcywgZW50aXR5SWRzLCBzdGF0ZSwgZFBSKVxuICAgICAgKVxuICAgIClcblxuICAgIHRoaXMudGVtcGxhdGVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGlwVGVtcGxhdGUkLFxuICAgICAgdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkLFxuICAgICAgdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlJCxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbY2hpcCwgYXZhdGFyLCBpbnB1dF0pID0+IHtcbiAgICAgICAgcmV0dXJuIDxUZW1wbGF0ZVdyYXBwZXI+e1xuICAgICAgICAgIGNoaXAsXG4gICAgICAgICAgYXZhdGFyLFxuICAgICAgICAgIGlucHV0LFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgY2hpcFRlbXBsYXRlUXVlcnkodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBUZW1wbGF0ZSA9IHRlbXBsYXRlXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcFRlbXBsYXRlJC5uZXh0KHRlbXBsYXRlKVxuICB9XG5cbiAgcHVibGljIGdldCBjaGlwVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY2hpcFRlbXBsYXRlJC5nZXRWYWx1ZSgpXG4gIH1cblxuICBAQ29udGVudENoaWxkKEVsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgc2V0IGNoaXBBdmF0YXJUZW1wbGF0ZVF1ZXJ5KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgaWYgKHRlbXBsYXRlKSB7XG4gICAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSA9IHRlbXBsYXRlXG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGlwQXZhdGFyVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSQubmV4dCh0ZW1wbGF0ZSlcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hpcEF2YXRhclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSQuZ2V0VmFsdWUoKVxuICB9XG5cbiAgQENvbnRlbnRDaGlsZChFbGRlclNlbGVjdEN1c3RvbUlucHV0RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgY3VzdG9tSW5wdXRUZW1wbGF0ZVF1ZXJ5KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgaWYgKHRlbXBsYXRlKSB7XG4gICAgICB0aGlzLmN1c3RvbUlucHV0VGVtcGxhdGUgPSB0ZW1wbGF0ZVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY3VzdG9tSW5wdXRUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY3VzdG9tSW5wdXRUZW1wbGF0ZSQubmV4dCh0ZW1wbGF0ZSlcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VzdG9tSW5wdXRUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlJC5nZXRWYWx1ZSgpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8YW55Pik6IHZvaWQge1xuICAgIGNvbnN0IHJlb3JkZXJlZCA9IFsuLi50aGlzLmVudGl0aWVzXVxuICAgIG1vdmVJdGVtSW5BcnJheShyZW9yZGVyZWQsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleClcbiAgICB0aGlzLmVudGl0aWVzID0gcmVvcmRlcmVkXG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZUNoaXBWYWx1ZShlMTogVEVudGl0eSk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5SWQoZTEpXG4gIH1cblxuICBwdWJsaWMgb25DaGlwS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgdG9SZW1vdmU6IFRFbnRpdHkpOiB2b2lkIHtcbiAgICB0aGlzLmxvZy53YXJuKCdvbkNoaXBLZXlEb3duJywgZXZlbnQpXG4gICAgaWYgKGV2ZW50LmtleSA9PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXkgPT0gJ0RlbGV0ZScpIHtcbiAgICAgIHRoaXMucmVxdWVzdFJlbW92ZUVudGl0eSh0b1JlbW92ZSwgZXZlbnQuc2hpZnRLZXkpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2xpY2tSZW1vdmVDaGlwKGV2ZW50OiBNb3VzZUV2ZW50LCB0b1JlbW92ZTogVEVudGl0eSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIHRoaXMucmVxdWVzdFJlbW92ZUVudGl0eSh0b1JlbW92ZSwgZXZlbnQuc2hpZnRLZXkpXG4gIH1cblxuICBwdWJsaWMgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucykge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5fY3VzdG9tQ2hpcElucHV0ID8/IHRoaXMuX2NoaXBJbnB1dFxuXG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBpbnB1dC5vbkNvbnRhaW5lckNsaWNrKG5ldyBNb3VzZUV2ZW50KCcnKSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2cud2FybignQ2FudCBmb2N1cyBzaW5jZSBubyBjaGlwLWlucHV0LWNvbnRyb2wgZm91bmQhJylcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYmx1cigpIHtcbiAgICB0aGlzLmxvZy53YXJuKCdibHVyKCkgbm90IHlldCBzdXBwb3J0ZWQhJylcbiAgICAvLyBUT0RPIHRoaXMuaW5wdXRDb250cm9sPy5ibHVyKCk7XG4gICAgLy8gdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlLmJsdXIoKVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5yZWZyZXNoJC5uZXh0KHRydWUpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGJ1aWxkQ2hpcE1vZGVsc09yRmFsbGJhY2soXG4gICAgZW50aXRpZXM6IFRFbnRpdHlbXSxcbiAgICBlbnRpdHlJZHM6IFRJZFtdLFxuICAgIHN0YXRlOiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLFxuICAgIGRQUjogVGV4dFJlc29sdmVyRm5cbiAgKTogQ2hpcE1vZGVsPFRFbnRpdHk+W10ge1xuICAgIGlmIChzdGF0ZS5lcnJvcikge1xuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRDaGlwRmFsbGJhY2tNb2RlbHMoZW50aXR5SWRzKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5idWlsZENoaXBNb2RlbHMoZW50aXRpZXMsIGRQUilcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDaGlwRmFsbGJhY2tNb2RlbHMoZW50aXR5SWRzOiBUSWRbXSk6IENoaXBNb2RlbDxURW50aXR5PltdIHtcbiAgICByZXR1cm4gZW50aXR5SWRzLm1hcCgoaWQpID0+XG4gICAgICB0aGlzLmJ1aWxkQ2hpcEJ5U3BlYyg8YW55PnsgaWQ6IGlkIH0sICgpID0+IFN0cmluZyhpZCksIHtcbiAgICAgICAgY29sb3JTcGVjOiB7XG4gICAgICAgICAgdGhlbWVDb2xvcjogJ3dhcm4nLFxuICAgICAgICB9LFxuICAgICAgICBhdmF0YXJTcGVjOiB7XG4gICAgICAgICAgaGlkZTogZmFsc2UsXG4gICAgICAgICAgbGFyZ2U6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2hpcE1vZGVscyhlbnRpdGllczogVEVudGl0eVtdLCBkUFI6IFRleHRSZXNvbHZlckZuKTogQ2hpcE1vZGVsPFRFbnRpdHk+W10ge1xuICAgIGlmIChlbnRpdGllcykge1xuICAgICAgcmV0dXJuIGVudGl0aWVzLm1hcCgoZSkgPT5cbiAgICAgICAgdGhpcy5idWlsZENoaXBCeVNwZWMoZSwgZFBSLCB0aGlzLmNoaXBTcGVjRm4oZSkgPz8gdGhpcy5kZWZhdWx0Q2hpcFNwZWMpXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA8Q2hpcE1vZGVsPFRFbnRpdHk+W10+W11cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2hpcEJ5U3BlYyhcbiAgICBlOiBURW50aXR5LFxuICAgIGRQUjogVGV4dFJlc29sdmVyRm4sXG4gICAgY2hpcFNwZWM6IFNlbGVjdENoaXBTcGVjXG4gICk6IENoaXBNb2RlbDxURW50aXR5PiB7XG4gICAgbGV0IHJlbW92YWJsZSA9IGZhbHNlXG4gICAgaWYgKHRoaXMuYWxsb3dSZW1vdmUgJiYgIXRoaXMuaXNMb2NrZWQpIHtcbiAgICAgIGlmIChjaGlwU3BlYy5yZW1vdmFibGUgIT09IGZhbHNlKSB7XG4gICAgICAgIHJlbW92YWJsZSA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBDaGlwTW9kZWw8VEVudGl0eT4oXG4gICAgICBlLFxuICAgICAgZFBSKGUpLFxuICAgICAgY2hpcFNwZWM/LmNvbG9yU3BlYyxcbiAgICAgIHJlbW92YWJsZSxcbiAgICAgIGNoaXBTcGVjLmF2YXRhclNwZWMsXG4gICAgICBjaGlwU3BlYy50cmFpbGluZ1NwZWNcbiAgICApXG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJzZWxlY3RDaGlwcyQgfCBhc3luYyBhcyBjaGlwVmFsdWVzXCJcbiAgY2xhc3M9XCJlbGRlci1mbGV4LWNvbnRyb2xcIlxuICBbbWF0VG9vbHRpcF09XCIoc3RhdGUkIHwgYXN5bmMpPy5lcnJvclwiXG4+XG4gIDxtYXQtY2hpcC1zZXRcbiAgICAjY2hpcHNcbiAgICBbY2xhc3MubWF0LW1kYy1jaGlwLXNldC1zdGFja2VkXT1cInN0YWNrZWRcIlxuICAgIGNka0Ryb3BMaXN0XG4gICAgW2Nka0Ryb3BMaXN0T3JpZW50YXRpb25dPVwic3RhY2tlZCA/ICd2ZXJ0aWNhbCcgOiAnaG9yaXpvbnRhbCdcIlxuICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhYWxsb3dTb3J0aW5nXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZSQgfCBhc3luYyBhcyBzdGF0ZVwiPlxuICAgICAgPGRpdiAqbmdJZj1cImljb25cIiBjbGFzcz1cImVsZGVyLWlucHV0LXByZWZpeC1pY29uLWNvbnRhaW5lciBmbGV4LW5vbmVcIj5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgKm5nSWY9XCJpY29uXCJcbiAgICAgICAgICBkaXNhYmxlZFxuICAgICAgICAgIGNsYXNzPVwiZWxkZXItcHJlZml4LWljb24gZWxkZXItbWRjLWNvbnRyb2wtaWNvbiBlbGRlci1pY29uLXNtYWxsIG5vc2VsZWN0XCJcbiAgICAgICAgICBbY2xhc3MubG9hZGluZ109XCJzdGF0ZS5sb2FkaW5nXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGljb24gfX1cbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlcyQgfCBhc3luYyBhcyB0ZW1wbGF0ZXNcIj5cbiAgICAgIDxtYXQtY2hpcC1yb3dcbiAgICAgICAgZWxkZXJDaGlwTGFiZWxcbiAgICAgICAgKm5nRm9yPVwibGV0IGNoaXBNb2RlbCBvZiBjaGlwVmFsdWVzXCJcbiAgICAgICAgY2xhc3M9XCJub3NlbGVjdCBjbGlja2FibGUtY2hpcFwiXG4gICAgICAgIFt2YWx1ZV09XCJyZXNvbHZlQ2hpcFZhbHVlKGNoaXBNb2RlbC52YWx1ZSlcIlxuICAgICAgICBbY29sb3JdPVwiY2hpcE1vZGVsLmNvbG9yU3BlYz8udGhlbWVDb2xvclwiXG4gICAgICAgIFtsZXZlbENvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LmxldmVsQ29sb3JcIlxuICAgICAgICBbc3RhdGVDb2xvcl09XCJjaGlwTW9kZWwuY29sb3JTcGVjPy5zdGF0ZUNvbG9yXCJcbiAgICAgICAgW3JlbW92YWJsZV09XCJjaGlwTW9kZWwucmVtb3ZhYmxlXCJcbiAgICAgICAgKGtleWRvd24pPVwib25DaGlwS2V5RG93bigkZXZlbnQsIGNoaXBNb2RlbC52YWx1ZSlcIlxuICAgICAgICAoY2xpY2spPVwib25DdXJyZW50Q2xpY2tlZChjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgICAgY2RrRHJhZ1xuICAgICAgICBbY2RrRHJhZ0RhdGFdPVwiY2hpcE1vZGVsLnZhbHVlXCJcbiAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhYWxsb3dTb3J0aW5nXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1jaGlwLWF2YXRhclxuICAgICAgICAgICpuZ0lmPVwidGVtcGxhdGVzLmF2YXRhciAmJiAhY2hpcE1vZGVsLmF2YXRhclNwZWM/LmhpZGVcIlxuICAgICAgICAgIFtjbGFzcy5jaGlwLWF2YXRhci14bF09XCJjaGlwTW9kZWwuYXZhdGFyU3BlYz8ubGFyZ2VcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlcy5hdmF0YXI7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjaGlwTW9kZWwgfVwiPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L21hdC1jaGlwLWF2YXRhcj5cblxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHRlbXBsYXRlcy5jaGlwIHx8IHNpbXBsZUNoaXBUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjaGlwTW9kZWwgfVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgbWF0Q2hpcFRyYWlsaW5nSWNvblxuICAgICAgICAgIGNsYXNzPVwiZWxkZXItdHJhaWxpbmctaWNvblwiXG4gICAgICAgICAgKm5nSWY9XCJjaGlwTW9kZWwudHJhaWxpbmdTcGVjPy5pY29uXCJcbiAgICAgICAgICBbZm9udFNldF09XCJjaGlwTW9kZWwudHJhaWxpbmdTcGVjPy5pY29uRm9udFNldFwiXG4gICAgICAgICAgPnt7IGNoaXBNb2RlbC50cmFpbGluZ1NwZWM/Lmljb24gfX08L21hdC1pY29uXG4gICAgICAgID5cblxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICBtYXRDaGlwUmVtb3ZlXG4gICAgICAgICAgKm5nSWY9XCJjaGlwTW9kZWwucmVtb3ZhYmxlXCJcbiAgICAgICAgICAoY2xpY2spPVwib25DbGlja1JlbW92ZUNoaXAoJGV2ZW50LCBjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgICAgPlxuICAgICAgICAgIGNhbmNlbFxuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgPC9tYXQtY2hpcC1yb3c+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWNlbnRlciBlbGRlci1jaGlwLWlucHV0XCI+XG4gICAgICAgIDwhLS0gW21hdENoaXBJbnB1dEZvcl09XCJjaGlwc1wiIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzLmlucHV0IHx8IHNlbGVjdElucHV0XCI+IDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImVsZGVyLWNvbnRyb2wtaWNvbi1idXR0b24gZWxkZXItYnJvd3NlLWljb25cIlxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0aW9uUG9wdXBcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZWxlY3Rpb25Qb3B1cCgkZXZlbnQpXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoXCJcbiAgICAgICAgICBlbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uXG4gICAgICAgICAgdGFiSW5kZXg9XCItMVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJlbGRlci1tZGMtY29udHJvbC1pY29uXCI+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtY2hpcC1zZXQ+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNzZWxlY3RJbnB1dD5cbiAgPCEtLSBtYXQtbWRjLWNoaXAtaW5wdXQgLS0+XG4gIDxlbGRlci1zZWxlY3RcbiAgICBhdXRvY29tcGxldGVcbiAgICBlbGRlckNsZWFyU2VsZWN0XG4gICAgY2xhc3M9XCJlbGRlci1jaGlwLWlucHV0LXNlbGVjdCBmbGV4XCJcbiAgICBbZGF0YV09XCJkYXRhQ29udGV4dCQgfCBhc3luY1wiXG4gICAgW2Rpc2FibGVkXT1cIiEhZGlzYWJsZWRcIlxuICAgIFtyZXF1aXJlZF09XCIhIXJlcXVpcmVkXCJcbiAgICBbcmVhZG9ubHldPVwiISFyZWFkb25seVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAoZW50aXR5VXBkYXRlZCk9XCJhcHBlbmRFbnRpdHkoJGV2ZW50KVwiXG4gICAgW2Rpc3BsYXlQcm9wZXJ0eVJlc29sdmVyXT1cImRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCB8IGFzeW5jXCJcbiAgICBbdmFsdWVUZW1wbGF0ZV09XCJ2YWx1ZVRlbXBsYXRlXCJcbiAgICBbcXVlcnlGaWx0ZXJdPVwicXVlcnlGaWx0ZXJcIlxuICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgIFtzb3J0c109XCJzb3J0c1wiXG4gICAgW2lzT3B0aW9uRGlzYWJsZWRGbl09XCJpc09wdGlvbkRpc2FibGVkSW50ZXJuYWxGblwiXG4gICAgW2lzT3B0aW9uSGlkZGVuRm5dPVwiaXNPcHRpb25IaWRkZW5JbnRlcm5hbEZuXCJcbiAgPjwvZWxkZXItc2VsZWN0PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzaW1wbGVDaGlwVGVtcGxhdGUgbGV0LWNoaXBNb2RlbD5cbiAgPHNwYW4gY2xhc3M9XCJlbGRlci1jaGlwLXRleHRcIj57eyBjaGlwTW9kZWwuZGlzcGxheVRleHQgfCBlbGRlclRydW5jYXRlOiAyMCB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L211bHRpL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBRVosVUFBVSxFQUNWLEtBQUssRUFFTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRCxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLHdCQUF3QixFQUN4QiwrQkFBK0IsR0FDaEMsTUFBTSxtQ0FBbUMsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUNsRSxPQUFPLEVBQ0wsaUJBQWlCLEdBR2xCLE1BQU0seUJBQXlCLENBQUE7QUFJaEMsT0FB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QUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2Isa0NBQWtDO3dCQUNsQyxvQkFBb0I7d0JBQ3BCLHlCQUF5Qjt3QkFDekIsU0FBUzt3QkFDVCxpQkFBaUI7cUJBQ2xCOzswQkE2REUsUUFBUTs7MEJBQUksSUFBSTt5Q0E3Q1osZUFBZTtzQkFEckIsS0FBSztnQkFRQyxVQUFVO3NCQURoQixLQUFLO2dCQU1DLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBRzZCLGdCQUFnQjtzQkFBbEQsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBQ0EsVUFBVTtzQkFBMUMsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBMEVwQixpQkFBaUI7c0JBRDNCLFlBQVk7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBTWpFLFlBQVk7c0JBRHRCLEtBQUs7Z0JBVUssdUJBQXVCO3NCQURqQyxZQUFZO3VCQUFDLDhCQUE4QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQVF2RSxrQkFBa0I7c0JBRDVCLEtBQUs7Z0JBVUssd0JBQXdCO3NCQURsQyxZQUFZO3VCQUFDLCtCQUErQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQVF4RSxtQkFBbUI7c0JBRDdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRWxkZXJNdWx0aVNlbGVjdEJhc2UgfSBmcm9tICcuLi9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7XG4gIEVsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSxcbiAgRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlLFxuICBFbGRlclNlbGVjdEN1c3RvbUlucHV0RGlyZWN0aXZlLFxufSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3QtY2hpcC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJ1xuaW1wb3J0IHtcbiAgRUxERVJfU0VMRUNUX0JBU0UsXG4gIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUsXG4gIFRleHRSZXNvbHZlckZuLFxufSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3QtYmFzZSdcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5J1xuaW1wb3J0IHsgRWxkZXJEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGlhbG9ncy9lbGRlci1kaWFsb2cuc2VydmljZSdcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgRWxkZXJTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaW5nbGUvZWxkZXItc2VsZWN0L2VsZGVyLXNlbGVjdC5jb21wb25lbnQnXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5LCBDZGtEcm9wTGlzdCwgQ2RrRHJhZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnXG5pbXBvcnQge1xuICBDaGlwQXZhdGFyU3BlYyxcbiAgQ2hpcENvbG9yU3BlYyxcbiAgU2VsZWN0Q2hpcFNwZWMsXG4gIFNlbGVjdENoaXBTcGVjVXRpbCxcbiAgVHJhaWxpbmdTcGVjLFxufSBmcm9tICcuL3NlbGVjdC1jaGlwLXNwZWMnXG5pbXBvcnQgeyBFbGRlclRydW5jYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL3BpcGVzL2VsZGVyLXRydW5jYXRlLnBpcGUnXG5pbXBvcnQgeyBFbGRlckNsZWFyU2VsZWN0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc2luZ2xlL2VsZGVyLWNsZWFyLXNlbGVjdC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBFbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZm9ybXMvZGlyZWN0aXZlcy9lbGRlci1zdG9wLWV2ZW50LXByb3BhZ2F0aW9uLmRpcmVjdGl2ZSdcbmltcG9ydCB7IE1hdEljb25CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nXG5pbXBvcnQgeyBFbGRlckNoaXBMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2NoaXBzL2VsZGVyLWNoaXAtbGFiZWwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQge1xuICBNYXRDaGlwU2V0LFxuICBNYXRDaGlwUm93LFxuICBNYXRDaGlwQXZhdGFyLFxuICBNYXRDaGlwVHJhaWxpbmdJY29uLFxuICBNYXRDaGlwUmVtb3ZlLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcydcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJ1xuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcblxuY2xhc3MgQ2hpcE1vZGVsPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBULFxuICAgIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VGV4dDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBjb2xvclNwZWM6IENoaXBDb2xvclNwZWMsXG4gICAgcHVibGljIHJlYWRvbmx5IHJlbW92YWJsZTogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgYXZhdGFyU3BlYzogQ2hpcEF2YXRhclNwZWMsXG4gICAgcHVibGljIHJlYWRvbmx5IHRyYWlsaW5nU3BlYzogVHJhaWxpbmdTcGVjXG4gICkge31cbn1cblxuaW50ZXJmYWNlIFRlbXBsYXRlV3JhcHBlciB7XG4gIGNoaXA6IFRlbXBsYXRlUmVmPGFueT5cbiAgYXZhdGFyOiBUZW1wbGF0ZVJlZjxhbnk+XG5cbiAgaW5wdXQ6IFRlbXBsYXRlUmVmPGFueT5cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuc2NzcyddLFxuICAvLyBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRUxERVJfU0VMRUNUX0JBU0UsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFbGRlck11bHRpU2VsZWN0Q2hpcHNDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE1hdFRvb2x0aXAsXG4gICAgTWF0Q2hpcFNldCxcbiAgICBDZGtEcm9wTGlzdCxcbiAgICBNYXRJY29uLFxuICAgIE5nRm9yLFxuICAgIE1hdENoaXBSb3csXG4gICAgRWxkZXJDaGlwTGFiZWxEaXJlY3RpdmUsXG4gICAgQ2RrRHJhZyxcbiAgICBNYXRDaGlwQXZhdGFyLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgTWF0Q2hpcFRyYWlsaW5nSWNvbixcbiAgICBNYXRDaGlwUmVtb3ZlLFxuICAgIE1hdEljb25CdXR0b24sXG4gICAgRWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvbkRpcmVjdGl2ZSxcbiAgICBFbGRlclNlbGVjdENvbXBvbmVudCxcbiAgICBFbGRlckNsZWFyU2VsZWN0RGlyZWN0aXZlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBFbGRlclRydW5jYXRlUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50PFxuICBUSWQgPSBhbnksXG4gIFRFbnRpdHkgPSBhbnksXG4gIFRWYWx1ZSA9IGFueSxcbj4gZXh0ZW5kcyBFbGRlck11bHRpU2VsZWN0QmFzZTxUSWQsIFRFbnRpdHksIFRWYWx1ZT4ge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0Q2hpcHMkOiBPYnNlcnZhYmxlPENoaXBNb2RlbDxURW50aXR5PltdPlxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZWZhdWx0Q2hpcFNwZWM6IFNlbGVjdENoaXBTcGVjID0gU2VsZWN0Q2hpcFNwZWNVdGlsLkRlZmF1bHRDaGlwU3BlY1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gY3VzdG9taXplIGVhY2ggY2hpcCBpbmRpdmlkdWFsbHkgKENvbG9yLCBSZW1vdmFibGUsIEF2YXRhcikuXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2hpcFNwZWNGbjogKGU6IFRFbnRpdHkpID0+IFNlbGVjdENoaXBTcGVjID0gKGUpID0+IHRoaXMuZGVmYXVsdENoaXBTcGVjXG5cbiAgcHVibGljIHNlbGVjdGFibGUgPSB0cnVlXG5cbiAgQElucHV0KClcbiAgcHVibGljIGFsbG93UmVtb3ZlID0gdHJ1ZVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhbGxvd1NvcnRpbmcgPSBmYWxzZVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFja2VkID0gZmFsc2VcblxuICBAQ29udGVudENoaWxkKE1hdEZvcm1GaWVsZENvbnRyb2wpIF9jdXN0b21DaGlwSW5wdXQ6IE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PlxuICBAVmlld0NoaWxkKEVsZGVyU2VsZWN0Q29tcG9uZW50KSBfY2hpcElucHV0OiBNYXRGb3JtRmllbGRDb250cm9sPGFueT5cblxuICByZWFkb25seSB0ZW1wbGF0ZXMkOiBPYnNlcnZhYmxlPFRlbXBsYXRlV3JhcHBlcj5cblxuICBwcml2YXRlIHJlYWRvbmx5IGNoaXBUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPGFueT4+KG51bGwpXG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpcEF2YXRhclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4obnVsbClcbiAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21JbnB1dFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4obnVsbClcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlZnJlc2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGhvc3RSZWY6IEVsZW1lbnRSZWYsXG4gICAgem9uZTogTmdab25lLFxuICAgIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgZGlhbG9nU2VydmljZTogRWxkZXJEaWFsb2dTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICB6b25lLFxuICAgICAgaG9zdFJlZixcbiAgICAgICdtdWx0aS1zZWxlY3QtY2hpcHMnLFxuICAgICAgZm9jdXNNb25pdG9yLFxuICAgICAgdHJhbnNsYXRlU2VydmljZSxcbiAgICAgIGRpYWxvZ1NlcnZpY2UsXG4gICAgICBuZ0NvbnRyb2xcbiAgICApXG5cbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gJy4uLidcblxuICAgIHRoaXMuc2VsZWN0Q2hpcHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmVudGl0aWVzJCxcbiAgICAgIHRoaXMuZW50aXR5SWRzJCxcbiAgICAgIHRoaXMuc3RhdGUkLFxuICAgICAgdGhpcy5kaXNwbGF5UHJvcGVydHlSZXNvbHZlciQsXG4gICAgICB0aGlzLnJlYWRvbmx5JCxcbiAgICAgIHRoaXMuZGlzYWJsZWQkLFxuICAgICAgdGhpcy5yZWZyZXNoJCxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbZW50aXRpZXMsIGVudGl0eUlkcywgc3RhdGUsIGRQUl0pID0+XG4gICAgICAgIHRoaXMuYnVpbGRDaGlwTW9kZWxzT3JGYWxsYmFjayhlbnRpdGllcywgZW50aXR5SWRzLCBzdGF0ZSwgZFBSKVxuICAgICAgKVxuICAgIClcblxuICAgIHRoaXMudGVtcGxhdGVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGlwVGVtcGxhdGUkLFxuICAgICAgdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkLFxuICAgICAgdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlJCxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbY2hpcCwgYXZhdGFyLCBpbnB1dF0pID0+IHtcbiAgICAgICAgcmV0dXJuIDxUZW1wbGF0ZVdyYXBwZXI+e1xuICAgICAgICAgIGNoaXAsXG4gICAgICAgICAgYXZhdGFyLFxuICAgICAgICAgIGlucHV0LFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgY2hpcFRlbXBsYXRlUXVlcnkodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBUZW1wbGF0ZSA9IHRlbXBsYXRlXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcFRlbXBsYXRlJC5uZXh0KHRlbXBsYXRlKVxuICB9XG5cbiAgcHVibGljIGdldCBjaGlwVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY2hpcFRlbXBsYXRlJC5nZXRWYWx1ZSgpXG4gIH1cblxuICBAQ29udGVudENoaWxkKEVsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgc2V0IGNoaXBBdmF0YXJUZW1wbGF0ZVF1ZXJ5KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgaWYgKHRlbXBsYXRlKSB7XG4gICAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSA9IHRlbXBsYXRlXG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGlwQXZhdGFyVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSQubmV4dCh0ZW1wbGF0ZSlcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hpcEF2YXRhclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSQuZ2V0VmFsdWUoKVxuICB9XG5cbiAgQENvbnRlbnRDaGlsZChFbGRlclNlbGVjdEN1c3RvbUlucHV0RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgY3VzdG9tSW5wdXRUZW1wbGF0ZVF1ZXJ5KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgaWYgKHRlbXBsYXRlKSB7XG4gICAgICB0aGlzLmN1c3RvbUlucHV0VGVtcGxhdGUgPSB0ZW1wbGF0ZVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY3VzdG9tSW5wdXRUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY3VzdG9tSW5wdXRUZW1wbGF0ZSQubmV4dCh0ZW1wbGF0ZSlcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VzdG9tSW5wdXRUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlJC5nZXRWYWx1ZSgpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8YW55Pik6IHZvaWQge1xuICAgIGNvbnN0IHJlb3JkZXJlZCA9IFsuLi50aGlzLmVudGl0aWVzXVxuICAgIG1vdmVJdGVtSW5BcnJheShyZW9yZGVyZWQsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleClcbiAgICB0aGlzLmVudGl0aWVzID0gcmVvcmRlcmVkXG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZUNoaXBWYWx1ZShlMTogVEVudGl0eSk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5SWQoZTEpXG4gIH1cblxuICBwdWJsaWMgb25DaGlwS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgdG9SZW1vdmU6IFRFbnRpdHkpOiB2b2lkIHtcbiAgICB0aGlzLmxvZy53YXJuKCdvbkNoaXBLZXlEb3duJywgZXZlbnQpXG4gICAgaWYgKGV2ZW50LmtleSA9PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXkgPT0gJ0RlbGV0ZScpIHtcbiAgICAgIHRoaXMucmVxdWVzdFJlbW92ZUVudGl0eSh0b1JlbW92ZSwgZXZlbnQuc2hpZnRLZXkpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2xpY2tSZW1vdmVDaGlwKGV2ZW50OiBNb3VzZUV2ZW50LCB0b1JlbW92ZTogVEVudGl0eSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIHRoaXMucmVxdWVzdFJlbW92ZUVudGl0eSh0b1JlbW92ZSwgZXZlbnQuc2hpZnRLZXkpXG4gIH1cblxuICBwdWJsaWMgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucykge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5fY3VzdG9tQ2hpcElucHV0ID8/IHRoaXMuX2NoaXBJbnB1dFxuXG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBpbnB1dC5vbkNvbnRhaW5lckNsaWNrKG5ldyBNb3VzZUV2ZW50KCcnKSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2cud2FybignQ2FudCBmb2N1cyBzaW5jZSBubyBjaGlwLWlucHV0LWNvbnRyb2wgZm91bmQhJylcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYmx1cigpIHtcbiAgICB0aGlzLmxvZy53YXJuKCdibHVyKCkgbm90IHlldCBzdXBwb3J0ZWQhJylcbiAgICAvLyBUT0RPIHRoaXMuaW5wdXRDb250cm9sPy5ibHVyKCk7XG4gICAgLy8gdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlLmJsdXIoKVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5yZWZyZXNoJC5uZXh0KHRydWUpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGJ1aWxkQ2hpcE1vZGVsc09yRmFsbGJhY2soXG4gICAgZW50aXRpZXM6IFRFbnRpdHlbXSxcbiAgICBlbnRpdHlJZHM6IFRJZFtdLFxuICAgIHN0YXRlOiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLFxuICAgIGRQUjogVGV4dFJlc29sdmVyRm5cbiAgKTogQ2hpcE1vZGVsPFRFbnRpdHk+W10ge1xuICAgIGlmIChzdGF0ZS5lcnJvcikge1xuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRDaGlwRmFsbGJhY2tNb2RlbHMoZW50aXR5SWRzKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5idWlsZENoaXBNb2RlbHMoZW50aXRpZXMsIGRQUilcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDaGlwRmFsbGJhY2tNb2RlbHMoZW50aXR5SWRzOiBUSWRbXSk6IENoaXBNb2RlbDxURW50aXR5PltdIHtcbiAgICByZXR1cm4gZW50aXR5SWRzLm1hcCgoaWQpID0+XG4gICAgICB0aGlzLmJ1aWxkQ2hpcEJ5U3BlYyg8YW55PnsgaWQ6IGlkIH0sICgpID0+IFN0cmluZyhpZCksIHtcbiAgICAgICAgY29sb3JTcGVjOiB7XG4gICAgICAgICAgdGhlbWVDb2xvcjogJ3dhcm4nLFxuICAgICAgICB9LFxuICAgICAgICBhdmF0YXJTcGVjOiB7XG4gICAgICAgICAgaGlkZTogZmFsc2UsXG4gICAgICAgICAgbGFyZ2U6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2hpcE1vZGVscyhlbnRpdGllczogVEVudGl0eVtdLCBkUFI6IFRleHRSZXNvbHZlckZuKTogQ2hpcE1vZGVsPFRFbnRpdHk+W10ge1xuICAgIGlmIChlbnRpdGllcykge1xuICAgICAgcmV0dXJuIGVudGl0aWVzLm1hcCgoZSkgPT5cbiAgICAgICAgdGhpcy5idWlsZENoaXBCeVNwZWMoZSwgZFBSLCB0aGlzLmNoaXBTcGVjRm4oZSkgPz8gdGhpcy5kZWZhdWx0Q2hpcFNwZWMpXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA8Q2hpcE1vZGVsPFRFbnRpdHk+W10+W11cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2hpcEJ5U3BlYyhcbiAgICBlOiBURW50aXR5LFxuICAgIGRQUjogVGV4dFJlc29sdmVyRm4sXG4gICAgY2hpcFNwZWM6IFNlbGVjdENoaXBTcGVjXG4gICk6IENoaXBNb2RlbDxURW50aXR5PiB7XG4gICAgbGV0IHJlbW92YWJsZSA9IGZhbHNlXG4gICAgaWYgKHRoaXMuYWxsb3dSZW1vdmUgJiYgIXRoaXMuaXNMb2NrZWQpIHtcbiAgICAgIGlmIChjaGlwU3BlYy5yZW1vdmFibGUgIT09IGZhbHNlKSB7XG4gICAgICAgIHJlbW92YWJsZSA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBDaGlwTW9kZWw8VEVudGl0eT4oXG4gICAgICBlLFxuICAgICAgZFBSKGUpLFxuICAgICAgY2hpcFNwZWM/LmNvbG9yU3BlYyxcbiAgICAgIHJlbW92YWJsZSxcbiAgICAgIGNoaXBTcGVjLmF2YXRhclNwZWMsXG4gICAgICBjaGlwU3BlYy50cmFpbGluZ1NwZWNcbiAgICApXG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJzZWxlY3RDaGlwcyQgfCBhc3luYyBhcyBjaGlwVmFsdWVzXCJcbiAgY2xhc3M9XCJlbGRlci1mbGV4LWNvbnRyb2xcIlxuICBbbWF0VG9vbHRpcF09XCIoc3RhdGUkIHwgYXN5bmMpPy5lcnJvclwiXG4+XG4gIDxtYXQtY2hpcC1zZXRcbiAgICAjY2hpcHNcbiAgICBbY2xhc3MubWF0LW1kYy1jaGlwLXNldC1zdGFja2VkXT1cInN0YWNrZWRcIlxuICAgIGNka0Ryb3BMaXN0XG4gICAgW2Nka0Ryb3BMaXN0T3JpZW50YXRpb25dPVwic3RhY2tlZCA/ICd2ZXJ0aWNhbCcgOiAnaG9yaXpvbnRhbCdcIlxuICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhYWxsb3dTb3J0aW5nXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZSQgfCBhc3luYyBhcyBzdGF0ZVwiPlxuICAgICAgPGRpdiAqbmdJZj1cImljb25cIiBjbGFzcz1cImVsZGVyLWlucHV0LXByZWZpeC1pY29uLWNvbnRhaW5lciBmbGV4LW5vbmVcIj5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgKm5nSWY9XCJpY29uXCJcbiAgICAgICAgICBkaXNhYmxlZFxuICAgICAgICAgIGNsYXNzPVwiZWxkZXItcHJlZml4LWljb24gZWxkZXItbWRjLWNvbnRyb2wtaWNvbiBlbGRlci1pY29uLXNtYWxsIG5vc2VsZWN0XCJcbiAgICAgICAgICBbY2xhc3MubG9hZGluZ109XCJzdGF0ZS5sb2FkaW5nXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGljb24gfX1cbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlcyQgfCBhc3luYyBhcyB0ZW1wbGF0ZXNcIj5cbiAgICAgIDxtYXQtY2hpcC1yb3dcbiAgICAgICAgZWxkZXJDaGlwTGFiZWxcbiAgICAgICAgKm5nRm9yPVwibGV0IGNoaXBNb2RlbCBvZiBjaGlwVmFsdWVzXCJcbiAgICAgICAgY2xhc3M9XCJub3NlbGVjdCBjbGlja2FibGUtY2hpcFwiXG4gICAgICAgIFt2YWx1ZV09XCJyZXNvbHZlQ2hpcFZhbHVlKGNoaXBNb2RlbC52YWx1ZSlcIlxuICAgICAgICBbY29sb3JdPVwiY2hpcE1vZGVsLmNvbG9yU3BlYz8udGhlbWVDb2xvclwiXG4gICAgICAgIFtsZXZlbENvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LmxldmVsQ29sb3JcIlxuICAgICAgICBbc3RhdGVDb2xvcl09XCJjaGlwTW9kZWwuY29sb3JTcGVjPy5zdGF0ZUNvbG9yXCJcbiAgICAgICAgW3JlbW92YWJsZV09XCJjaGlwTW9kZWwucmVtb3ZhYmxlXCJcbiAgICAgICAgKGtleWRvd24pPVwib25DaGlwS2V5RG93bigkZXZlbnQsIGNoaXBNb2RlbC52YWx1ZSlcIlxuICAgICAgICAoY2xpY2spPVwib25DdXJyZW50Q2xpY2tlZChjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgICAgY2RrRHJhZ1xuICAgICAgICBbY2RrRHJhZ0RhdGFdPVwiY2hpcE1vZGVsLnZhbHVlXCJcbiAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhYWxsb3dTb3J0aW5nXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1jaGlwLWF2YXRhclxuICAgICAgICAgICpuZ0lmPVwidGVtcGxhdGVzLmF2YXRhciAmJiAhY2hpcE1vZGVsLmF2YXRhclNwZWM/LmhpZGVcIlxuICAgICAgICAgIFtjbGFzcy5jaGlwLWF2YXRhci14bF09XCJjaGlwTW9kZWwuYXZhdGFyU3BlYz8ubGFyZ2VcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlcy5hdmF0YXI7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjaGlwTW9kZWwgfVwiPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L21hdC1jaGlwLWF2YXRhcj5cblxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHRlbXBsYXRlcy5jaGlwIHx8IHNpbXBsZUNoaXBUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjaGlwTW9kZWwgfVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgbWF0Q2hpcFRyYWlsaW5nSWNvblxuICAgICAgICAgIGNsYXNzPVwiZWxkZXItdHJhaWxpbmctaWNvblwiXG4gICAgICAgICAgKm5nSWY9XCJjaGlwTW9kZWwudHJhaWxpbmdTcGVjPy5pY29uXCJcbiAgICAgICAgICBbZm9udFNldF09XCJjaGlwTW9kZWwudHJhaWxpbmdTcGVjPy5pY29uRm9udFNldFwiXG4gICAgICAgICAgPnt7IGNoaXBNb2RlbC50cmFpbGluZ1NwZWM/Lmljb24gfX08L21hdC1pY29uXG4gICAgICAgID5cblxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICBtYXRDaGlwUmVtb3ZlXG4gICAgICAgICAgKm5nSWY9XCJjaGlwTW9kZWwucmVtb3ZhYmxlXCJcbiAgICAgICAgICAoY2xpY2spPVwib25DbGlja1JlbW92ZUNoaXAoJGV2ZW50LCBjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgICAgPlxuICAgICAgICAgIGNhbmNlbFxuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgPC9tYXQtY2hpcC1yb3c+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWNlbnRlciBlbGRlci1jaGlwLWlucHV0XCI+XG4gICAgICAgIDwhLS0gW21hdENoaXBJbnB1dEZvcl09XCJjaGlwc1wiIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzLmlucHV0IHx8IHNlbGVjdElucHV0XCI+IDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImVsZGVyLWNvbnRyb2wtaWNvbi1idXR0b24gZWxkZXItYnJvd3NlLWljb25cIlxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0aW9uUG9wdXBcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZWxlY3Rpb25Qb3B1cCgkZXZlbnQpXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoXCJcbiAgICAgICAgICBlbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uXG4gICAgICAgICAgdGFiSW5kZXg9XCItMVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJlbGRlci1tZGMtY29udHJvbC1pY29uXCI+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtY2hpcC1zZXQ+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNzZWxlY3RJbnB1dD5cbiAgPCEtLSBtYXQtbWRjLWNoaXAtaW5wdXQgLS0+XG4gIDxlbGRlci1zZWxlY3RcbiAgICBhdXRvY29tcGxldGVcbiAgICBlbGRlckNsZWFyU2VsZWN0XG4gICAgY2xhc3M9XCJlbGRlci1jaGlwLWlucHV0LXNlbGVjdCBmbGV4XCJcbiAgICBbZGF0YV09XCJkYXRhQ29udGV4dCQgfCBhc3luY1wiXG4gICAgW2Rpc2FibGVkXT1cIiEhZGlzYWJsZWRcIlxuICAgIFtyZXF1aXJlZF09XCIhIXJlcXVpcmVkXCJcbiAgICBbcmVhZG9ubHldPVwiISFyZWFkb25seVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAoZW50aXR5VXBkYXRlZCk9XCJhcHBlbmRFbnRpdHkoJGV2ZW50KVwiXG4gICAgW2Rpc3BsYXlQcm9wZXJ0eVJlc29sdmVyXT1cImRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCB8IGFzeW5jXCJcbiAgICBbdmFsdWVUZW1wbGF0ZV09XCJ2YWx1ZVRlbXBsYXRlXCJcbiAgICBbcXVlcnlGaWx0ZXJdPVwicXVlcnlGaWx0ZXJcIlxuICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgIFtzb3J0c109XCJzb3J0c1wiXG4gICAgW2lzT3B0aW9uRGlzYWJsZWRGbl09XCJpc09wdGlvbkRpc2FibGVkSW50ZXJuYWxGblwiXG4gICAgW2lzT3B0aW9uSGlkZGVuRm5dPVwiaXNPcHRpb25IaWRkZW5JbnRlcm5hbEZuXCJcbiAgPjwvZWxkZXItc2VsZWN0PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzaW1wbGVDaGlwVGVtcGxhdGUgbGV0LWNoaXBNb2RlbD5cbiAgPHNwYW4gY2xhc3M9XCJlbGRlci1jaGlwLXRleHRcIj57eyBjaGlwTW9kZWwuZGlzcGxheVRleHQgfCBlbGRlclRydW5jYXRlOiAyMCB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -35,7 +35,7 @@ export class TemplatedSelectionDialogComponent {
|
|
|
35
35
|
**************************************************************************/
|
|
36
36
|
ngOnInit() { }
|
|
37
37
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TemplatedSelectionDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.SelectionModel }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TemplatedSelectionDialogComponent, isStandalone: true, selector: "elder-templated-selection-dialog", ngImport: i0, template: "<div class=\"layout-col full\">\n <mat-toolbar elderTheme class=\"flex-none\">\n <button mat-icon-button type=\"button\" matDialogClose=\"\">\n <mat-icon>close</mat-icon>\n </button>\n <span class=\"flex\"></span>\n <button\n mat-stroked-button\n type=\"submit\"\n
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TemplatedSelectionDialogComponent, isStandalone: true, selector: "elder-templated-selection-dialog", ngImport: i0, template: "<div class=\"layout-col full\">\n <mat-toolbar elderTheme class=\"flex-none\">\n <button mat-icon-button type=\"button\" matDialogClose=\"\">\n <mat-icon>close</mat-icon>\n </button>\n <span class=\"flex\"></span>\n <button\n mat-stroked-button\n type=\"submit\"\n *ngIf=\"selectionModel.selection | async as selection\"\n [disabled]=\"!selection || selection.length === 0\"\n [mat-dialog-close]=\"selection\"\n >\n {{ 'actions.select' | translate }}\n </button>\n </mat-toolbar>\n <div class=\"layout-col flex\" style=\"overflow: hidden\">\n <ng-container *ngTemplateOutlet=\"data.selectionComponentTemplate\"></ng-container>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: ElderThemeDirective, selector: "[elderTheme]" }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39
39
|
}
|
|
40
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TemplatedSelectionDialogComponent, decorators: [{
|
|
41
41
|
type: Component,
|
|
@@ -50,9 +50,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
50
50
|
NgTemplateOutlet,
|
|
51
51
|
AsyncPipe,
|
|
52
52
|
TranslateModule,
|
|
53
|
-
], template: "<div class=\"layout-col full\">\n <mat-toolbar elderTheme class=\"flex-none\">\n <button mat-icon-button type=\"button\" matDialogClose=\"\">\n <mat-icon>close</mat-icon>\n </button>\n <span class=\"flex\"></span>\n <button\n mat-stroked-button\n type=\"submit\"\n
|
|
53
|
+
], template: "<div class=\"layout-col full\">\n <mat-toolbar elderTheme class=\"flex-none\">\n <button mat-icon-button type=\"button\" matDialogClose=\"\">\n <mat-icon>close</mat-icon>\n </button>\n <span class=\"flex\"></span>\n <button\n mat-stroked-button\n type=\"submit\"\n *ngIf=\"selectionModel.selection | async as selection\"\n [disabled]=\"!selection || selection.length === 0\"\n [mat-dialog-close]=\"selection\"\n >\n {{ 'actions.select' | translate }}\n </button>\n </mat-toolbar>\n <div class=\"layout-col flex\" style=\"overflow: hidden\">\n <ng-container *ngTemplateOutlet=\"data.selectionComponentTemplate\"></ng-container>\n </div>\n</div>\n" }]
|
|
54
54
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
55
55
|
type: Inject,
|
|
56
56
|
args: [MAT_DIALOG_DATA]
|
|
57
57
|
}] }, { type: i2.SelectionModel }] });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVkLXNlbGVjdGlvbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvcG9wdXAvdGVtcGxhdGVkLXNlbGVjdGlvbi1kaWFsb2cvdGVtcGxhdGVkLXNlbGVjdGlvbi1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvcG9wdXAvdGVtcGxhdGVkLXNlbGVjdGlvbi1kaWFsb2cvdGVtcGxhdGVkLXNlbGVjdGlvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBZSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQWdCLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTs7Ozs7QUF5QnRELE1BQU0sT0FBTyxpQ0FBaUM7SUFTNUM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1UsU0FBMEQsRUFDekIsSUFBa0MsRUFDM0QsY0FBbUM7UUFGM0MsY0FBUyxHQUFULFNBQVMsQ0FBaUQ7UUFDekIsU0FBSSxHQUFKLElBQUksQ0FBOEI7UUFDM0QsbUJBQWMsR0FBZCxjQUFjLENBQXFCO1FBakJyRDs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQVlsRSxDQUFDO0lBRUo7Ozs7Z0ZBSTRFO0lBRXJFLFFBQVEsS0FBSSxDQUFDOzhHQTNCVCxpQ0FBaUMsOENBaUJsQyxlQUFlO2tHQWpCZCxpQ0FBaUMsNEZDbEM5Qyxtc0JBb0JBLDBEREVJLFVBQVUscUdBQ1YsbUJBQW1CLHlEQUNuQixhQUFhLDZGQUNiLGNBQWMscUxBQ2QsT0FBTywySUFDUCxJQUFJLDZGQUNKLFNBQVMsaUxBQ1QsZ0JBQWdCLCtJQUNoQixTQUFTLDZDQUNULGVBQWU7OzJGQUdOLGlDQUFpQztrQkFuQjdDLFNBQVM7K0JBQ0Usa0NBQWtDLG1CQUczQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxVQUFVO3dCQUNWLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLE9BQU87d0JBQ1AsSUFBSTt3QkFDSixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsU0FBUzt3QkFDVCxlQUFlO3FCQUNoQjs7MEJBbUJFLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVGVtcGxhdGVSZWYsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9zZWxlY3Rpb24vc2VsZWN0aW9uLW1vZGVsJ1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJ1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYsIE1hdERpYWxvZ0Nsb3NlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTWF0SWNvbkJ1dHRvbiwgTWF0QnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJ1xuaW1wb3J0IHsgRWxkZXJUaGVtZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3RoZW1lL2VsZGVyLXRoZW1lLmRpcmVjdGl2ZSdcbmltcG9ydCB7IE1hdFRvb2xiYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElTZWxlY3Rpb25Nb2RlbERpYWxvZ09wdGlvbnMge1xuICByZWFkb25seSBzZWxlY3Rpb25Db21wb25lbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PlxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci10ZW1wbGF0ZWQtc2VsZWN0aW9uLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZWQtc2VsZWN0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RlbXBsYXRlZC1zZWxlY3Rpb24tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0VG9vbGJhcixcbiAgICBFbGRlclRoZW1lRGlyZWN0aXZlLFxuICAgIE1hdEljb25CdXR0b24sXG4gICAgTWF0RGlhbG9nQ2xvc2UsXG4gICAgTWF0SWNvbixcbiAgICBOZ0lmLFxuICAgIE1hdEJ1dHRvbixcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEFzeW5jUGlwZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlZFNlbGVjdGlvbkRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VGVtcGxhdGVkU2VsZWN0aW9uRGlhbG9nQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIHJlYWRvbmx5IGRhdGE6IElTZWxlY3Rpb25Nb2RlbERpYWxvZ09wdGlvbnMsXG4gICAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxhbnk+XG4gICkge31cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29tcG9uZW50IEV2ZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7fVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xufVxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbFwiPlxuICA8bWF0LXRvb2xiYXIgZWxkZXJUaGVtZSBjbGFzcz1cImZsZXgtbm9uZVwiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXREaWFsb2dDbG9zZT1cIlwiPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8c3BhbiBjbGFzcz1cImZsZXhcIj48L3NwYW4+XG4gICAgPGJ1dHRvblxuICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICpuZ0lmPVwic2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uIHwgYXN5bmMgYXMgc2VsZWN0aW9uXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5sZW5ndGggPT09IDBcIlxuICAgICAgW21hdC1kaWFsb2ctY2xvc2VdPVwic2VsZWN0aW9uXCJcbiAgICA+XG4gICAgICB7eyAnYWN0aW9ucy5zZWxlY3QnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gIDwvbWF0LXRvb2xiYXI+XG4gIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZsZXhcIiBzdHlsZT1cIm92ZXJmbG93OiBoaWRkZW5cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0YS5zZWxlY3Rpb25Db21wb25lbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|