barsa-sap-ui 2.2.47 → 2.2.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +6 -150
  2. package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +2 -2
  3. package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +6 -5
  4. package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +6 -5
  5. package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +3 -2
  6. package/esm2022/lib/barsa-sap-ui.module.mjs +6 -5
  7. package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +5 -4
  8. package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +3 -2
  9. package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +3 -3
  10. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +7 -5
  11. package/esm2022/lib/contentDensity.directive.mjs +25 -0
  12. package/esm2022/lib/form-wizard/form-wizard.component.mjs +5 -4
  13. package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +3 -2
  14. package/esm2022/lib/index.mjs +4 -2
  15. package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +4 -3
  16. package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +4 -3
  17. package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +15 -13
  18. package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +4 -3
  19. package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +4 -3
  20. package/esm2022/lib/ui-grid/ui-grid.component.mjs +4 -3
  21. package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +3 -2
  22. package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +3 -2
  23. package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +4 -3
  24. package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +5 -4
  25. package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +7 -14
  26. package/esm2022/lib/ui-tree/ui-tree.component.mjs +3 -2
  27. package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +4 -3
  28. package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +3 -2
  29. package/esm2022/public-api.mjs +2 -1
  30. package/fesm2022/barsa-sap-ui.mjs +137 -264
  31. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  32. package/lib/barsa-chat/barsa-chat.component.d.ts +0 -30
  33. package/lib/barsa-sap-ui.module.d.ts +18 -17
  34. package/lib/breadcrumb/breadcrumb.component.d.ts +1 -0
  35. package/lib/contentDensity.directive.d.ts +9 -0
  36. package/lib/index.d.ts +2 -1
  37. package/lib/ui-text-area/ui-text-area.component.d.ts +2 -0
  38. package/lib/ui-tinymce/ui-tinymce.component.d.ts +1 -4
  39. package/package.json +1 -1
  40. package/public-api.d.ts +1 -0
@@ -8,7 +8,8 @@ import * as i2 from "@fundamental-ngx/core/button";
8
8
  import * as i3 from "@fundamental-ngx/core/toolbar";
9
9
  import * as i4 from "../ulv-toolbar/ulv-toolbar.component";
10
10
  import * as i5 from "../ui-matrix-view/ui-matrix-view.component";
11
- import * as i6 from "barsa-novin-ray-core";
11
+ import * as i6 from "../contentDensity.directive";
12
+ import * as i7 from "barsa-novin-ray-core";
12
13
  export class UiEditableGridComponent extends SapUiReportBaseComponent {
13
14
  constructor() {
14
15
  super(...arguments);
@@ -94,7 +95,7 @@ export class UiEditableGridComponent extends SapUiReportBaseComponent {
94
95
  .subscribe();
95
96
  }
96
97
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiEditableGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
97
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UiEditableGridComponent, selector: "bsu-ui-editable-grid", providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<ng-container\r\n *ngTemplateOutlet=\"\r\n matrixTemplate;\r\n context: {\r\n moDataList: matrixMoList$ | async,\r\n columns: horizontalRows,\r\n conditionalFormats: conditionalFormats$ | async,\r\n deviceName: deviceName$ | async,\r\n deviceSize: deviceSize$ | async,\r\n title: title$ | async,\r\n inlineEditMode: inlineEditMode$ | async,\r\n allowInlineEdit: allowInlineEdit$ | async,\r\n hideToolbar: hideToolbar$ | async,\r\n contentDensity: contentDensity$ | async,\r\n activeCell: activeCell,\r\n valueControlFieldCaption: valueControlFieldCaption,\r\n valueType: valueType,\r\n formSetting: context.Setting.FormTemplate,\r\n matrixWidthType: matrixWidthType,\r\n cellWidth: cellWidth,\r\n verticalLabelWidth: verticalLabelWidth,\r\n fitWidth: fitWidth,\r\n access: context.Setting.Extra?.DefaultCommandsAccess,\r\n hasSelected: hasSelected$ | async,\r\n containerWidth: containerWidth$ | async,\r\n formLayout: formLayout\r\n }\r\n \"\r\n></ng-container>\r\n\r\n<ng-template\r\n #matrixTemplate\r\n let-moDataList=\"moDataList\"\r\n let-deviceName=\"deviceName\"\r\n let-deviceSize=\"deviceSize\"\r\n let-title=\"title\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-allowInlineEdit=\"allowInlineEdit\"\r\n let-hideToolbar=\"hideToolbar\"\r\n let-contentDensity=\"contentDensity\"\r\n let-columns=\"columns\"\r\n let-conditionalFormats=\"conditionalFormats\"\r\n let-activeCell=\"activeCell\"\r\n let-valueControlFieldCaption=\"valueControlFieldCaption\"\r\n let-valueType=\"valueType\"\r\n let-formSetting=\"formSetting\"\r\n let-matrixWidthType=\"matrixWidthType\"\r\n let-cellWidth=\"cellWidth\"\r\n let-verticalLabelWidth=\"verticalLabelWidth\"\r\n let-fitWidth=\"fitWidth\"\r\n let-access=\"access\"\r\n let-hasSelected=\"hasSelected\"\r\n let-containerWidth=\"containterWidth\"\r\n let-formLayout=\"formLayout\"\r\n>\r\n <bsu-ulv-toolbar\r\n [hideToolbar]=\"hideToolbar\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [title]=\"title\"\r\n [hasSelected]=\"hasSelected\"\r\n [access]=\"access\"\r\n [contentDensity]=\"contentDensity\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [moDataListCount]=\"moDataList.length\"\r\n (sortClick)=\"onSortSettings(deviceName)\"\r\n (editModeClick)=\"onEditMode()\"\r\n >\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [fdType]=\"'emphasized'\"\r\n [label]=\"'Save' | bbbTranslate\"\r\n [glyph]=\"'save'\"\r\n (click)=\"onSave()\"\r\n ></button>\r\n <!-- <fd-split-button\r\n fd-toolbar-item\r\n [mainAction]=\"{\r\n keepMainAction: true,\r\n mainActionTitle: splitBtnTitle\r\n }\"\r\n >\r\n <fd-menu>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"onChangeView(true)\">\r\n <span fd-menu-title>\r\n {{ widthTypeEnum.FitWidth }}\r\n </span>\r\n </div>\r\n </li>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"onChangeView(false)\">\r\n <span fd-menu-title>\r\n {{ widthTypeEnum.StaticWidth }}\r\n </span>\r\n </div>\r\n </li>\r\n </fd-menu>\r\n </fd-split-button> -->\r\n\r\n <ng-template #splitBtnTitle>\r\n <span>{{ fitWidth ? widthTypeEnum.FitWidth : widthTypeEnum.StaticWidth }}</span>\r\n </ng-template>\r\n </bsu-ulv-toolbar>\r\n <bsu-ui-matrix-view\r\n [moDataList]=\"moDataList\"\r\n [columns]=\"columns\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [activeCell]=\"activeCell\"\r\n [valueControlFieldCaption]=\"valueControlFieldCaption\"\r\n [valueType]=\"valueType\"\r\n [access]=\"access\"\r\n [formLayout]=\"formLayout\"\r\n [matrixWidthType]=\"matrixWidthType\"\r\n [cellWidth]=\"cellWidth\"\r\n [cellHeight]=\"cellHeight\"\r\n [verticalLabelWidth]=\"verticalLabelWidth\"\r\n [fitWidth]=\"fitWidth\"\r\n [minWidth]=\"minWidth\"\r\n [minHeight]=\"minHeight\"\r\n [rowResizer]=\"rowResizer\"\r\n [enableResizing]=\"enableResizing\"\r\n [containerWidth]=\"containerWidth\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n ></bsu-ui-matrix-view>\r\n</ng-template>\r\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.fd-table__row th.fd-table__cell{background-color:var(--sapList_HeaderBackground, #f2f2f2);color:var(--sapList_HeaderTextColor, #32363a)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i3.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i4.UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: ["allowGridColumnSort", "useLayoutItemTextForControl", "enableSearch", "hideTitle", "title", "icon", "deviceName", "deviceSize", "access", "hideToolbar", "toolbarButtons", "contentDensity", "inlineEditMode", "allowInlineEdit", "gridSetting", "viewCollection", "reportView", "inDialog", "isMultiSelect", "cls", "hasSelected", "config", "hidden", "buttons", "moDataListCount"], outputs: ["search", "groupbyClick", "sortClick", "columnClick", "editModeClick", "viewClick", "createNewInlineMo"] }, { kind: "component", type: i5.UiMatrixViewComponent, selector: "bsu-ui-matrix-view", inputs: ["deviceSize", "deviceName", "moDataList", "columns", "formLayout", "conditionalFormat", "activeCell", "valueControlFieldCaption", "formTemplate", "valueType", "cellWidth", "cellHeight", "verticalLabelWidth", "fitWidth", "minWidth", "minHeight", "rowResizer", "enableResizing"], outputs: ["selectionChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
98
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UiEditableGridComponent, selector: "bsu-ui-editable-grid", providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<ng-container\r\n *ngTemplateOutlet=\"\r\n matrixTemplate;\r\n context: {\r\n moDataList: matrixMoList$ | async,\r\n columns: horizontalRows,\r\n conditionalFormats: conditionalFormats$ | async,\r\n deviceName: deviceName$ | async,\r\n deviceSize: deviceSize$ | async,\r\n title: title$ | async,\r\n inlineEditMode: inlineEditMode$ | async,\r\n allowInlineEdit: allowInlineEdit$ | async,\r\n hideToolbar: hideToolbar$ | async,\r\n contentDensity: contentDensity$ | async,\r\n activeCell: activeCell,\r\n valueControlFieldCaption: valueControlFieldCaption,\r\n valueType: valueType,\r\n formSetting: context.Setting.FormTemplate,\r\n matrixWidthType: matrixWidthType,\r\n cellWidth: cellWidth,\r\n verticalLabelWidth: verticalLabelWidth,\r\n fitWidth: fitWidth,\r\n access: context.Setting.Extra?.DefaultCommandsAccess,\r\n hasSelected: hasSelected$ | async,\r\n containerWidth: containerWidth$ | async,\r\n formLayout: formLayout\r\n }\r\n \"\r\n></ng-container>\r\n\r\n<ng-template\r\n #matrixTemplate\r\n let-moDataList=\"moDataList\"\r\n let-deviceName=\"deviceName\"\r\n let-deviceSize=\"deviceSize\"\r\n let-title=\"title\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-allowInlineEdit=\"allowInlineEdit\"\r\n let-hideToolbar=\"hideToolbar\"\r\n let-contentDensity=\"contentDensity\"\r\n let-columns=\"columns\"\r\n let-conditionalFormats=\"conditionalFormats\"\r\n let-activeCell=\"activeCell\"\r\n let-valueControlFieldCaption=\"valueControlFieldCaption\"\r\n let-valueType=\"valueType\"\r\n let-formSetting=\"formSetting\"\r\n let-matrixWidthType=\"matrixWidthType\"\r\n let-cellWidth=\"cellWidth\"\r\n let-verticalLabelWidth=\"verticalLabelWidth\"\r\n let-fitWidth=\"fitWidth\"\r\n let-access=\"access\"\r\n let-hasSelected=\"hasSelected\"\r\n let-containerWidth=\"containterWidth\"\r\n let-formLayout=\"formLayout\"\r\n>\r\n <bsu-ulv-toolbar\r\n [hideToolbar]=\"hideToolbar\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [title]=\"title\"\r\n [hasSelected]=\"hasSelected\"\r\n [access]=\"access\"\r\n [contentDensity]=\"contentDensity\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [moDataListCount]=\"moDataList.length\"\r\n (sortClick)=\"onSortSettings(deviceName)\"\r\n (editModeClick)=\"onEditMode()\"\r\n >\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [fdType]=\"'emphasized'\"\r\n [label]=\"'Save' | bbbTranslate\"\r\n [glyph]=\"'save'\"\r\n (click)=\"onSave()\"\r\n ></button>\r\n <!-- <fd-split-button\r\n fd-toolbar-item\r\n [mainAction]=\"{\r\n keepMainAction: true,\r\n mainActionTitle: splitBtnTitle\r\n }\"\r\n >\r\n <fd-menu>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"onChangeView(true)\">\r\n <span fd-menu-title>\r\n {{ widthTypeEnum.FitWidth }}\r\n </span>\r\n </div>\r\n </li>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"onChangeView(false)\">\r\n <span fd-menu-title>\r\n {{ widthTypeEnum.StaticWidth }}\r\n </span>\r\n </div>\r\n </li>\r\n </fd-menu>\r\n </fd-split-button> -->\r\n\r\n <ng-template #splitBtnTitle>\r\n <span>{{ fitWidth ? widthTypeEnum.FitWidth : widthTypeEnum.StaticWidth }}</span>\r\n </ng-template>\r\n </bsu-ulv-toolbar>\r\n <bsu-ui-matrix-view\r\n [moDataList]=\"moDataList\"\r\n [columns]=\"columns\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [activeCell]=\"activeCell\"\r\n [valueControlFieldCaption]=\"valueControlFieldCaption\"\r\n [valueType]=\"valueType\"\r\n [access]=\"access\"\r\n [formLayout]=\"formLayout\"\r\n [matrixWidthType]=\"matrixWidthType\"\r\n [cellWidth]=\"cellWidth\"\r\n [cellHeight]=\"cellHeight\"\r\n [verticalLabelWidth]=\"verticalLabelWidth\"\r\n [fitWidth]=\"fitWidth\"\r\n [minWidth]=\"minWidth\"\r\n [minHeight]=\"minHeight\"\r\n [rowResizer]=\"rowResizer\"\r\n [enableResizing]=\"enableResizing\"\r\n [containerWidth]=\"containerWidth\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n ></bsu-ui-matrix-view>\r\n</ng-template>\r\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.fd-table__row th.fd-table__cell{background-color:var(--sapList_HeaderBackground, #f2f2f2);color:var(--sapList_HeaderTextColor, #32363a)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i3.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i4.UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: ["allowGridColumnSort", "useLayoutItemTextForControl", "enableSearch", "hideTitle", "title", "icon", "deviceName", "deviceSize", "access", "hideToolbar", "toolbarButtons", "contentDensity", "inlineEditMode", "allowInlineEdit", "gridSetting", "viewCollection", "reportView", "inDialog", "isMultiSelect", "cls", "hasSelected", "config", "hidden", "buttons", "moDataListCount"], outputs: ["search", "groupbyClick", "sortClick", "columnClick", "editModeClick", "viewClick", "createNewInlineMo"] }, { kind: "component", type: i5.UiMatrixViewComponent, selector: "bsu-ui-matrix-view", inputs: ["deviceSize", "deviceName", "moDataList", "columns", "formLayout", "conditionalFormat", "activeCell", "valueControlFieldCaption", "formTemplate", "valueType", "cellWidth", "cellHeight", "verticalLabelWidth", "fitWidth", "minWidth", "minHeight", "rowResizer", "enableResizing"], outputs: ["selectionChange"] }, { kind: "directive", type: i6.ContentDensityDirective, selector: "[contentDensity]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
98
99
  }
99
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiEditableGridComponent, decorators: [{
100
101
  type: Component,
@@ -105,4 +106,4 @@ export var WidthTypeEnum;
105
106
  WidthTypeEnum["FitWidth"] = "\u0633\u062A\u0648\u0646 \u0647\u0627\u06CC \u0647\u0645 \u0639\u0631\u0636";
106
107
  WidthTypeEnum["StaticWidth"] = "\u0633\u062A\u0648\u0646 \u0647\u0627\u06CC \u0628\u0627 \u0639\u0631\u0636 \u062F\u0644\u062E\u0648\u0627\u0647";
107
108
  })(WidthTypeEnum || (WidthTypeEnum = {}));
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZWRpdGFibGUtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1lZGl0YWJsZS1ncmlkL3VpLWVkaXRhYmxlLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZWRpdGFibGUtZ3JpZC91aS1lZGl0YWJsZS1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFDSCx5QkFBeUIsRUFDekIsZ0JBQWdCLEVBSW5CLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7O0FBVzNFLE1BQU0sT0FBTyx1QkFDVCxTQUFRLHdCQUFpRDtJQVQ3RDs7UUFtQkksY0FBUyxHQUFHLEdBQUcsQ0FBQztRQUNoQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLHVCQUFrQixHQUFHLEdBQUcsQ0FBQztRQUN6QixhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2YsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsa0JBQWEsR0FBRyxhQUFhLENBQUM7UUFDOUIsYUFBUSxHQUFHLElBQUksQ0FBQztLQTZGbkI7SUExRkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFD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QUFVLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQy9CLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUUsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDaEYsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNMO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQzsrR0EvR1EsdUJBQXVCO21HQUF2Qix1QkFBdUIsK0NBSHJCLENBQUMsZ0JBQWdCLENBQUMsaURDbEJqQyw0NEpBZ0lBOzs0RkQzR2EsdUJBQXVCO2tCQVJuQyxTQUFTOytCQUNJLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsZ0JBQWdCLENBQUMsY0FDakIsS0FBSzs7QUFtSHJCLE1BQU0sQ0FBTixJQUFZLGFBR1g7QUFIRCxXQUFZLGFBQWE7SUFDckIseUdBQTRCLENBQUE7SUFDNUIsaUpBQXNDLENBQUE7QUFDMUMsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBjcmVhdGVHcmlkRWRpdG9yRm9ybVBhbmVsLFxyXG4gICAgRm9ybVBhbmVsU2VydmljZSxcclxuICAgIExheW91dFNldHRpbmcsXHJcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxyXG4gICAgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmdcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IFNhcFVpUmVwb3J0QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL3NhcC11aS1yZXBvcnQtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXVpLWVkaXRhYmxlLWdyaWQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLWVkaXRhYmxlLWdyaWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktZWRpdGFibGUtZ3JpZC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBwcm92aWRlcnM6IFtGb3JtUGFuZWxTZXJ2aWNlXSxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUVkaXRhYmxlR3JpZENvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBTYXBVaVJlcG9ydEJhc2VDb21wb25lbnQ8VWlSZXBvcnRWaWV3QmFzZVNldHRpbmc+XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XHJcbntcclxuICAgIHZhbHVlQ29udHJvbEZpZWxkQ2FwdGlvbjtcclxuICAgIHZhbHVlRGJOYW1lO1xyXG4gICAgaG9yaXpvbnRhbFJvd3M6IGFueVtdO1xyXG4gICAgYWN0aXZlQ2VsbDtcclxuICAgIHZhbHVlVHlwZTtcclxuICAgIGZvcm1MYXlvdXQ6IExheW91dFNldHRpbmc7XHJcbiAgICBtYXRyaXhXaWR0aFR5cGU7XHJcbiAgICBjZWxsV2lkdGggPSAxMDA7XHJcbiAgICBjZWxsSGVpZ2h0ID0gMzg7XHJcbiAgICB2ZXJ0aWNhbExhYmVsV2lkdGggPSAxMDA7XHJcbiAgICBtaW5XaWR0aCA9IDEwMDtcclxuICAgIG1pbkhlaWdodCA9IDIyO1xyXG4gICAgZW5hYmxlUmVzaXppbmcgPSB0cnVlO1xyXG4gICAgcm93UmVzaXplciA9IHRydWU7XHJcbiAgICB3aWR0aFR5cGVFbnVtID0gV2lkdGhUeXBlRW51bTtcclxuICAgIGZpdFdpZHRoID0gdHJ1ZTtcclxuICAgIG1hdHJpeE1vTGlzdCQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbFtdPjtcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVEYk5hbWUgPSB0aGlzLmNvbnRleHQuU2V0dGluZy5WaWV3LlZhbHVlRGJOYW1lO1xyXG4gICAgICAgIHRoaXMudmFsdWVUeXBlID0gdGhpcy5jb250ZXh0LnZhbHVlRmllbGRUeXBlO1xyXG4gICAgICAgIGNvbnN0IGZvcm1TZXR0aW5nID0gdGhpcy5jb250ZXh0LlNldHRpbmcuRm9ybVRlbXBsYXRlO1xyXG4gICAgICAgIC8vIHRoaXMuZm9ybUxheW91dCA9IHRoaXMuY29udGV4dC5TZXR0aW5nLkZvcm1UZW1wbGF0ZS5WaWV3LkNvbnRyb2xJbmZvO1xyXG4gICAgICAgIHRoaXMuaG9yaXpvbnRhbFJvd3MgPSB0aGlzLmNvbnRleHQuU2V0dGluZy5WaWV3Lkhvcml6b250YWxDb2x1bW47XHJcbiAgICAgICAgdGhpcy52YWx1ZUNvbnRyb2xGaWVsZENhcHRpb24gPSB0aGlzLmNvbnRleHQuU2V0dGluZy5Gb3JtVGVtcGxhdGUuVmlldy5Db250cm9sSW5mby5maW5kKFxyXG4gICAgICAgICAgICAoY29sKSA9PiBjb2wuQ29udHJvbE5hbWUgPT09IHRoaXMudmFsdWVEYk5hbWVcclxuICAgICAgICApLkNvbnRyb2xGaWVsZENhcHRpb247XHJcbiAgICAgICAgLy8gdGhlcmUgaXMgZGlmZmVyZW50IGJldHdlZW4gdWx2IG1vZGF0YWxpc3QgYW5kIHZpZXdlciBkYXRhbGlzdC4gaW4gbWF0cml4dmlld2VyIGFkYXB0ZXIgbW9kYXRhbGlzdCB0cmFuc2Zvcm1lZC5cclxuICAgICAgICAvLyBzbyB3ZSBuZWVkIHRlbGwgdG8gdWx2bWFpbnNlcnZpY2UgdG8gdXBkYXRlIG1vZGF0YWxpc3RcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QodGhpcy5jb250ZXh0Lm1vRGF0YUxpc3QpO1xyXG5cclxuICAgICAgICB0aGlzLm1hdHJpeE1vTGlzdCQgPSB0aGlzLm1vRGF0YUxpc3QkLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgbWFwKChtb0RhdGFMaXN0KSA9PiB0aGlzLl9tYXRyaXhNb0xpc3QobW9EYXRhTGlzdCkpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1QYW5lbEN0cmxyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybVBhbmVsQ3RybHIgPSBjcmVhdGVHcmlkRWRpdG9yRm9ybVBhbmVsKFxyXG4gICAgICAgICAgICAgICAgZm9ybVNldHRpbmcsXHJcbiAgICAgICAgICAgICAgICBmb3JtU2V0dGluZy5EYXRhLk1vLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fdHlwZURlZklkLFxyXG4gICAgICAgICAgICAgICAgbnVsbFxyXG4gICAgICAgICAgICAgICAgLy8gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LlNldHRpbmcsICdFeHRyYS5SZWxhdGlvbicpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1QYW5lbEN0cmxyID0gdGhpcy5mb3JtUGFuZWxDdHJscjtcclxuICAgICAgICAgICAgdGhpcy5mb3JtTGF5b3V0ID0gZm9ybVBhbmVsQ3RybHIuU2V0dGluZy5WaWV3LkxheW91dDk0O1xyXG5cclxuICAgICAgICAgICAgZm9ybVBhbmVsQ3RybHIub24oe1xyXG4gICAgICAgICAgICAgICAgVmFsdWVDaGFuZ2U6IHRoaXMuX2NlbGxWYWx1ZUNoYW5nZS5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1QYW5lbEN0cmxyLkxvYWRBbmRDcmVhdGUobnVsbCwgZmFsc2UsIGZhbHNlLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjdXN0b21Gb3JtUGFuZWxVaSA9IGZvcm1QYW5lbEN0cmxyLkFkYXB0ZXIuQ29udHJvbDtcclxuICAgICAgICAgICAgICAgIGN1c3RvbUZvcm1QYW5lbFVpLlJlZnJlc2ggPSAoKSA9PiB7fTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1wYW5lbFNlcnZpY2UuY29udGV4dCA9IGZvcm1QYW5lbEN0cmxyLkFkYXB0ZXIuQ29udHJvbDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25TYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoXHJcbiAgICAgICAgICAgICdTYXZlQmF0Y2hDbGlja2VkJyxcclxuICAgICAgICAgICAgdGhpcy5tb0RhdGFMaXN0LmZpbHRlcigoYykgPT4gYy4kTW9kaWZpZWQpLm1hcCgoYykgPT4gKHsgZGF0YTogYywgbW9kaWZpZWQ6IGMuJE1vZGlmaWVkIH0pKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICBvblNlbGVjdGlvbkNoYW5nZShjZWxsSW5mbzogeyB2YWx1ZTogYW55OyBpbmRleDogeyBpOiBudW1iZXI7IGo6IG51bWJlciB9IH0pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB7IHZhbHVlLCBpbmRleCB9ID0gY2VsbEluZm87XHJcbiAgICAgICAgdGhpcy5hY3RpdmVDZWxsID0gaW5kZXg7XHJcbiAgICAgICAgLy8gY29uc3QgbmV3TW8gPSBnZXROZXdNb0dyaWRFZGl0b3IodGhpcy5jb250ZXh0LlNldHRpbmcuRm9ybVRlbXBsYXRlLCB0aGlzLl90eXBlRGVmSWQpO1xyXG4gICAgICAgIC8vIG5ld01vW3RoaXMudmFsdWVEYk5hbWVdID0gdmFsdWU7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRyb2xVaSA9IHRoaXMuZm9ybVBhbmVsQ3RybHIuR2V0RmllbGRsQnlOYW1lKHRoaXMudmFsdWVEYk5hbWUpO1xyXG4gICAgICAgIGNvbnRyb2xVaS5TZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvbkNoYW5nZVZpZXcoaXNGaXQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpdFdpZHRoID0gaXNGaXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIHByb3RlY3RlZCBfc2VsZWN0KG1vLCBpbmRleCk6IE1ldGFvYmplY3REYXRhTW9kZWwge1xyXG4gICAgICAgIHJldHVybiBtbztcclxuICAgIH1cclxuICAgIHByaXZhdGUgX21hdHJpeE1vTGlzdChtb0RhdGFMaXN0KTogTWV0YW9iamVjdERhdGFNb2RlbFtdIHtcclxuICAgICAgICBtb0RhdGFMaXN0LmZvckVhY2goKG1vKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaG9yaXpvbnRhbFJvd3MuZm9yRWFjaCgoY29sKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAobW9bY29sLkNhcHRpb25dID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBtb1tjb2wuQ2FwdGlvbl0gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gbW9EYXRhTGlzdDtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2NlbGxWYWx1ZUNoYW5nZShzZW5kZXIpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBpbmRleEkgPSB0aGlzLmFjdGl2ZUNlbGwuaTtcclxuICAgICAgICBjb25zdCBpbmRleEogPSB0aGlzLmFjdGl2ZUNlbGwuajtcclxuICAgICAgICB0aGlzLm1vRGF0YUxpc3QkXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgdGFwKChtb0RhdGFMaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdFtpbmRleEldW3RoaXMuaG9yaXpvbnRhbFJvd3NbaW5kZXhKXS5DYXB0aW9uXSA9IHNlbmRlci5Nb1t0aGlzLnZhbHVlRGJOYW1lXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobW9EYXRhTGlzdFtpbmRleEldLiRNb2RpZmllZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0W2luZGV4SV0uJE1vZGlmaWVkW3RoaXMuaG9yaXpvbnRhbFJvd3NbaW5kZXhKXS5DYXB0aW9uXSA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdFtpbmRleEldLiRNb2RpZmllZCA9IHsgW3RoaXMuaG9yaXpvbnRhbFJvd3NbaW5kZXhKXS5DYXB0aW9uXTogMSB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBlbnVtIFdpZHRoVHlwZUVudW0ge1xyXG4gICAgRml0V2lkdGggPSAn2LPYqtmI2YYg2YfYp9uMINmH2YUg2LnYsdi2JyxcclxuICAgIFN0YXRpY1dpZHRoID0gJ9iz2KrZiNmGINmH2KfbjCDYqNinINi52LHYtiDYr9mE2K7ZiNin2YcnXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lclxyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICBtYXRyaXhUZW1wbGF0ZTtcclxuICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgIG1vRGF0YUxpc3Q6IG1hdHJpeE1vTGlzdCQgfCBhc3luYyxcclxuICAgICAgICAgICAgY29sdW1uczogaG9yaXpvbnRhbFJvd3MsXHJcbiAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0czogY29uZGl0aW9uYWxGb3JtYXRzJCB8IGFzeW5jLFxyXG4gICAgICAgICAgICBkZXZpY2VOYW1lOiBkZXZpY2VOYW1lJCB8IGFzeW5jLFxyXG4gICAgICAgICAgICBkZXZpY2VTaXplOiBkZXZpY2VTaXplJCB8IGFzeW5jLFxyXG4gICAgICAgICAgICB0aXRsZTogdGl0bGUkIHwgYXN5bmMsXHJcbiAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSQgfCBhc3luYyxcclxuICAgICAgICAgICAgYWxsb3dJbmxpbmVFZGl0OiBhbGxvd0lubGluZUVkaXQkIHwgYXN5bmMsXHJcbiAgICAgICAgICAgIGhpZGVUb29sYmFyOiBoaWRlVG9vbGJhciQgfCBhc3luYyxcclxuICAgICAgICAgICAgY29udGVudERlbnNpdHk6IGNvbnRlbnREZW5zaXR5JCB8IGFzeW5jLFxyXG4gICAgICAgICAgICBhY3RpdmVDZWxsOiBhY3RpdmVDZWxsLFxyXG4gICAgICAgICAgICB2YWx1ZUNvbnRyb2xGaWVsZENhcHRpb246IHZhbHVlQ29udHJvbEZpZWxkQ2FwdGlvbixcclxuICAgICAgICAgICAgdmFsdWVUeXBlOiB2YWx1ZVR5cGUsXHJcbiAgICAgICAgICAgIGZvcm1TZXR0aW5nOiBjb250ZXh0LlNldHRpbmcuRm9ybVRlbXBsYXRlLFxyXG4gICAgICAgICAgICBtYXRyaXhXaWR0aFR5cGU6IG1hdHJpeFdpZHRoVHlwZSxcclxuICAgICAgICAgICAgY2VsbFdpZHRoOiBjZWxsV2lkdGgsXHJcbiAgICAgICAgICAgIHZlcnRpY2FsTGFiZWxXaWR0aDogdmVydGljYWxMYWJlbFdpZHRoLFxyXG4gICAgICAgICAgICBmaXRXaWR0aDogZml0V2lkdGgsXHJcbiAgICAgICAgICAgIGFjY2VzczogY29udGV4dC5TZXR0aW5nLkV4dHJhPy5EZWZhdWx0Q29tbWFuZHNBY2Nlc3MsXHJcbiAgICAgICAgICAgIGhhc1NlbGVjdGVkOiBoYXNTZWxlY3RlZCQgfCBhc3luYyxcclxuICAgICAgICAgICAgY29udGFpbmVyV2lkdGg6IGNvbnRhaW5lcldpZHRoJCB8IGFzeW5jLFxyXG4gICAgICAgICAgICBmb3JtTGF5b3V0OiBmb3JtTGF5b3V0XHJcbiAgICAgICAgfVxyXG4gICAgXCJcclxuPjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlXHJcbiAgICAjbWF0cml4VGVtcGxhdGVcclxuICAgIGxldC1tb0RhdGFMaXN0PVwibW9EYXRhTGlzdFwiXHJcbiAgICBsZXQtZGV2aWNlTmFtZT1cImRldmljZU5hbWVcIlxyXG4gICAgbGV0LWRldmljZVNpemU9XCJkZXZpY2VTaXplXCJcclxuICAgIGxldC10aXRsZT1cInRpdGxlXCJcclxuICAgIGxldC1pbmxpbmVFZGl0TW9kZT1cImlubGluZUVkaXRNb2RlXCJcclxuICAgIGxldC1hbGxvd0lubGluZUVkaXQ9XCJhbGxvd0lubGluZUVkaXRcIlxyXG4gICAgbGV0LWhpZGVUb29sYmFyPVwiaGlkZVRvb2xiYXJcIlxyXG4gICAgbGV0LWNvbnRlbnREZW5zaXR5PVwiY29udGVudERlbnNpdHlcIlxyXG4gICAgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCJcclxuICAgIGxldC1jb25kaXRpb25hbEZvcm1hdHM9XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgbGV0LWFjdGl2ZUNlbGw9XCJhY3RpdmVDZWxsXCJcclxuICAgIGxldC12YWx1ZUNvbnRyb2xGaWVsZENhcHRpb249XCJ2YWx1ZUNvbnRyb2xGaWVsZENhcHRpb25cIlxyXG4gICAgbGV0LXZhbHVlVHlwZT1cInZhbHVlVHlwZVwiXHJcbiAgICBsZXQtZm9ybVNldHRpbmc9XCJmb3JtU2V0dGluZ1wiXHJcbiAgICBsZXQtbWF0cml4V2lkdGhUeXBlPVwibWF0cml4V2lkdGhUeXBlXCJcclxuICAgIGxldC1jZWxsV2lkdGg9XCJjZWxsV2lkdGhcIlxyXG4gICAgbGV0LXZlcnRpY2FsTGFiZWxXaWR0aD1cInZlcnRpY2FsTGFiZWxXaWR0aFwiXHJcbiAgICBsZXQtZml0V2lkdGg9XCJmaXRXaWR0aFwiXHJcbiAgICBsZXQtYWNjZXNzPVwiYWNjZXNzXCJcclxuICAgIGxldC1oYXNTZWxlY3RlZD1cImhhc1NlbGVjdGVkXCJcclxuICAgIGxldC1jb250YWluZXJXaWR0aD1cImNvbnRhaW50ZXJXaWR0aFwiXHJcbiAgICBsZXQtZm9ybUxheW91dD1cImZvcm1MYXlvdXRcIlxyXG4+XHJcbiAgICA8YnN1LXVsdi10b29sYmFyXHJcbiAgICAgICAgW2hpZGVUb29sYmFyXT1cImhpZGVUb29sYmFyXCJcclxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcclxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gICAgICAgIFtoYXNTZWxlY3RlZF09XCJoYXNTZWxlY3RlZFwiXHJcbiAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxyXG4gICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXHJcbiAgICAgICAgW2lubGluZUVkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlXCJcclxuICAgICAgICBbYWxsb3dJbmxpbmVFZGl0XT1cImFsbG93SW5saW5lRWRpdFwiXHJcbiAgICAgICAgW21vRGF0YUxpc3RDb3VudF09XCJtb0RhdGFMaXN0Lmxlbmd0aFwiXHJcbiAgICAgICAgKHNvcnRDbGljayk9XCJvblNvcnRTZXR0aW5ncyhkZXZpY2VOYW1lKVwiXHJcbiAgICAgICAgKGVkaXRNb2RlQ2xpY2spPVwib25FZGl0TW9kZSgpXCJcclxuICAgID5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgW2ZkVHlwZV09XCInZW1waGFzaXplZCdcIlxyXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ1NhdmUnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgW2dseXBoXT1cIidzYXZlJ1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNhdmUoKVwiXHJcbiAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgIDwhLS0gPGZkLXNwbGl0LWJ1dHRvblxyXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cclxuICAgICAgICAgICAgW21haW5BY3Rpb25dPVwie1xyXG4gICAgICAgICAgICAgICAga2VlcE1haW5BY3Rpb246IHRydWUsXHJcbiAgICAgICAgICAgICAgICBtYWluQWN0aW9uVGl0bGU6IHNwbGl0QnRuVGl0bGVcclxuICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZmQtbWVudT5cclxuICAgICAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlIChjbGljayk9XCJvbkNoYW5nZVZpZXcodHJ1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHdpZHRoVHlwZUVudW0uRml0V2lkdGggfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlIChjbGljayk9XCJvbkNoYW5nZVZpZXcoZmFsc2UpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB3aWR0aFR5cGVFbnVtLlN0YXRpY1dpZHRoIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvZmQtbWVudT5cclxuICAgICAgICA8L2ZkLXNwbGl0LWJ1dHRvbj4gLS0+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc3BsaXRCdG5UaXRsZT5cclxuICAgICAgICAgICAgPHNwYW4+e3sgZml0V2lkdGggPyB3aWR0aFR5cGVFbnVtLkZpdFdpZHRoIDogd2lkdGhUeXBlRW51bS5TdGF0aWNXaWR0aCB9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9ic3UtdWx2LXRvb2xiYXI+XHJcbiAgICA8YnN1LXVpLW1hdHJpeC12aWV3XHJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXHJcbiAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgICAgIFthY3RpdmVDZWxsXT1cImFjdGl2ZUNlbGxcIlxyXG4gICAgICAgIFt2YWx1ZUNvbnRyb2xGaWVsZENhcHRpb25dPVwidmFsdWVDb250cm9sRmllbGRDYXB0aW9uXCJcclxuICAgICAgICBbdmFsdWVUeXBlXT1cInZhbHVlVHlwZVwiXHJcbiAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxyXG4gICAgICAgIFtmb3JtTGF5b3V0XT1cImZvcm1MYXlvdXRcIlxyXG4gICAgICAgIFttYXRyaXhXaWR0aFR5cGVdPVwibWF0cml4V2lkdGhUeXBlXCJcclxuICAgICAgICBbY2VsbFdpZHRoXT1cImNlbGxXaWR0aFwiXHJcbiAgICAgICAgW2NlbGxIZWlnaHRdPVwiY2VsbEhlaWdodFwiXHJcbiAgICAgICAgW3ZlcnRpY2FsTGFiZWxXaWR0aF09XCJ2ZXJ0aWNhbExhYmVsV2lkdGhcIlxyXG4gICAgICAgIFtmaXRXaWR0aF09XCJmaXRXaWR0aFwiXHJcbiAgICAgICAgW21pbldpZHRoXT1cIm1pbldpZHRoXCJcclxuICAgICAgICBbbWluSGVpZ2h0XT1cIm1pbkhlaWdodFwiXHJcbiAgICAgICAgW3Jvd1Jlc2l6ZXJdPVwicm93UmVzaXplclwiXHJcbiAgICAgICAgW2VuYWJsZVJlc2l6aW5nXT1cImVuYWJsZVJlc2l6aW5nXCJcclxuICAgICAgICBbY29udGFpbmVyV2lkdGhdPVwiY29udGFpbmVyV2lkdGhcIlxyXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+PC9ic3UtdWktbWF0cml4LXZpZXc+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZWRpdGFibGUtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1lZGl0YWJsZS1ncmlkL3VpLWVkaXRhYmxlLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZWRpdGFibGUtZ3JpZC91aS1lZGl0YWJsZS1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFDSCx5QkFBeUIsRUFDekIsZ0JBQWdCLEVBSW5CLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7OztBQVczRSxNQUFNLE9BQU8sdUJBQ1QsU0FBUSx3QkFBaUQ7SUFUN0Q7O1FBbUJJLGNBQVMsR0FBRyxHQUFHLENBQUM7UUFDaEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQix1QkFBa0IsR0FBRyxHQUFHLENBQUM7UUFDekIsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNmLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzlCLGFBQVEsR0FBRyxJQUFJLENBQUM7S0E2Rm5CO0lBMUZHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FB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VUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvQixVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFFLENBQUM7aUJBQU0sQ0FBQztnQkFDSixVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hGLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDTDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7K0dBL0dRLHVCQUF1QjttR0FBdkIsdUJBQXVCLCtDQUhyQixDQUFDLGdCQUFnQixDQUFDLGlEQ2xCakMsNDRKQWdJQTs7NEZEM0dhLHVCQUF1QjtrQkFSbkMsU0FBUzsrQkFDSSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGdCQUFnQixDQUFDLGNBQ2pCLEtBQUs7O0FBbUhyQixNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3JCLHlHQUE0QixDQUFBO0lBQzVCLGlKQUFzQyxDQUFBO0FBQzFDLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgY3JlYXRlR3JpZEVkaXRvckZvcm1QYW5lbCxcclxuICAgIEZvcm1QYW5lbFNlcnZpY2UsXHJcbiAgICBMYXlvdXRTZXR0aW5nLFxyXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbCxcclxuICAgIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nXHJcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyBTYXBVaVJlcG9ydEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9zYXAtdWktcmVwb3J0LWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1lZGl0YWJsZS1ncmlkJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1lZGl0YWJsZS1ncmlkLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLWVkaXRhYmxlLWdyaWQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbRm9ybVBhbmVsU2VydmljZV0sXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlFZGl0YWJsZUdyaWRDb21wb25lbnRcclxuICAgIGV4dGVuZHMgU2FwVWlSZXBvcnRCYXNlQ29tcG9uZW50PFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nPlxyXG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxyXG57XHJcbiAgICB2YWx1ZUNvbnRyb2xGaWVsZENhcHRpb247XHJcbiAgICB2YWx1ZURiTmFtZTtcclxuICAgIGhvcml6b250YWxSb3dzOiBhbnlbXTtcclxuICAgIGFjdGl2ZUNlbGw7XHJcbiAgICB2YWx1ZVR5cGU7XHJcbiAgICBmb3JtTGF5b3V0OiBMYXlvdXRTZXR0aW5nO1xyXG4gICAgbWF0cml4V2lkdGhUeXBlO1xyXG4gICAgY2VsbFdpZHRoID0gMTAwO1xyXG4gICAgY2VsbEhlaWdodCA9IDM4O1xyXG4gICAgdmVydGljYWxMYWJlbFdpZHRoID0gMTAwO1xyXG4gICAgbWluV2lkdGggPSAxMDA7XHJcbiAgICBtaW5IZWlnaHQgPSAyMjtcclxuICAgIGVuYWJsZVJlc2l6aW5nID0gdHJ1ZTtcclxuICAgIHJvd1Jlc2l6ZXIgPSB0cnVlO1xyXG4gICAgd2lkdGhUeXBlRW51bSA9IFdpZHRoVHlwZUVudW07XHJcbiAgICBmaXRXaWR0aCA9IHRydWU7XHJcbiAgICBtYXRyaXhNb0xpc3QkOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT47XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLnZhbHVlRGJOYW1lID0gdGhpcy5jb250ZXh0LlNldHRpbmcuVmlldy5WYWx1ZURiTmFtZTtcclxuICAgICAgICB0aGlzLnZhbHVlVHlwZSA9IHRoaXMuY29udGV4dC52YWx1ZUZpZWxkVHlwZTtcclxuICAgICAgICBjb25zdCBmb3JtU2V0dGluZyA9IHRoaXMuY29udGV4dC5TZXR0aW5nLkZvcm1UZW1wbGF0ZTtcclxuICAgICAgICAvLyB0aGlzLmZvcm1MYXlvdXQgPSB0aGlzLmNvbnRleHQuU2V0dGluZy5Gb3JtVGVtcGxhdGUuVmlldy5Db250cm9sSW5mbztcclxuICAgICAgICB0aGlzLmhvcml6b250YWxSb3dzID0gdGhpcy5jb250ZXh0LlNldHRpbmcuVmlldy5Ib3Jpem9udGFsQ29sdW1uO1xyXG4gICAgICAgIHRoaXMudmFsdWVDb250cm9sRmllbGRDYXB0aW9uID0gdGhpcy5jb250ZXh0LlNldHRpbmcuRm9ybVRlbXBsYXRlLlZpZXcuQ29udHJvbEluZm8uZmluZChcclxuICAgICAgICAgICAgKGNvbCkgPT4gY29sLkNvbnRyb2xOYW1lID09PSB0aGlzLnZhbHVlRGJOYW1lXHJcbiAgICAgICAgKS5Db250cm9sRmllbGRDYXB0aW9uO1xyXG4gICAgICAgIC8vIHRoZXJlIGlzIGRpZmZlcmVudCBiZXR3ZWVuIHVsdiBtb2RhdGFsaXN0IGFuZCB2aWV3ZXIgZGF0YWxpc3QuIGluIG1hdHJpeHZpZXdlciBhZGFwdGVyIG1vZGF0YWxpc3QgdHJhbnNmb3JtZWQuXHJcbiAgICAgICAgLy8gc28gd2UgbmVlZCB0ZWxsIHRvIHVsdm1haW5zZXJ2aWNlIHRvIHVwZGF0ZSBtb2RhdGFsaXN0XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucmVTZXRNb0RhdGFMaXN0KHRoaXMuY29udGV4dC5tb0RhdGFMaXN0KTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXRyaXhNb0xpc3QkID0gdGhpcy5tb0RhdGFMaXN0JC5waXBlKFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXHJcbiAgICAgICAgICAgIG1hcCgobW9EYXRhTGlzdCkgPT4gdGhpcy5fbWF0cml4TW9MaXN0KG1vRGF0YUxpc3QpKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5mb3JtUGFuZWxDdHJscikge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1QYW5lbEN0cmxyID0gY3JlYXRlR3JpZEVkaXRvckZvcm1QYW5lbChcclxuICAgICAgICAgICAgICAgIGZvcm1TZXR0aW5nLFxyXG4gICAgICAgICAgICAgICAgZm9ybVNldHRpbmcuRGF0YS5NbyxcclxuICAgICAgICAgICAgICAgIHRoaXMuX3R5cGVEZWZJZCxcclxuICAgICAgICAgICAgICAgIG51bGxcclxuICAgICAgICAgICAgICAgIC8vIEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuY29udGV4dC5TZXR0aW5nLCAnRXh0cmEuUmVsYXRpb24nKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBjb25zdCBmb3JtUGFuZWxDdHJsciA9IHRoaXMuZm9ybVBhbmVsQ3RybHI7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUxheW91dCA9IGZvcm1QYW5lbEN0cmxyLlNldHRpbmcuVmlldy5MYXlvdXQ5NDtcclxuXHJcbiAgICAgICAgICAgIGZvcm1QYW5lbEN0cmxyLm9uKHtcclxuICAgICAgICAgICAgICAgIFZhbHVlQ2hhbmdlOiB0aGlzLl9jZWxsVmFsdWVDaGFuZ2UuYmluZCh0aGlzKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtUGFuZWxDdHJsci5Mb2FkQW5kQ3JlYXRlKG51bGwsIGZhbHNlLCBmYWxzZSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY3VzdG9tRm9ybVBhbmVsVWkgPSBmb3JtUGFuZWxDdHJsci5BZGFwdGVyLkNvbnRyb2w7XHJcbiAgICAgICAgICAgICAgICBjdXN0b21Gb3JtUGFuZWxVaS5SZWZyZXNoID0gKCkgPT4ge307XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9mb3JtcGFuZWxTZXJ2aWNlLmNvbnRleHQgPSBmb3JtUGFuZWxDdHJsci5BZGFwdGVyLkNvbnRyb2w7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uU2F2ZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KFxyXG4gICAgICAgICAgICAnU2F2ZUJhdGNoQ2xpY2tlZCcsXHJcbiAgICAgICAgICAgIHRoaXMubW9EYXRhTGlzdC5maWx0ZXIoKGMpID0+IGMuJE1vZGlmaWVkKS5tYXAoKGMpID0+ICh7IGRhdGE6IGMsIG1vZGlmaWVkOiBjLiRNb2RpZmllZCB9KSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgb25TZWxlY3Rpb25DaGFuZ2UoY2VsbEluZm86IHsgdmFsdWU6IGFueTsgaW5kZXg6IHsgaTogbnVtYmVyOyBqOiBudW1iZXIgfSB9KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgeyB2YWx1ZSwgaW5kZXggfSA9IGNlbGxJbmZvO1xyXG4gICAgICAgIHRoaXMuYWN0aXZlQ2VsbCA9IGluZGV4O1xyXG4gICAgICAgIC8vIGNvbnN0IG5ld01vID0gZ2V0TmV3TW9HcmlkRWRpdG9yKHRoaXMuY29udGV4dC5TZXR0aW5nLkZvcm1UZW1wbGF0ZSwgdGhpcy5fdHlwZURlZklkKTtcclxuICAgICAgICAvLyBuZXdNb1t0aGlzLnZhbHVlRGJOYW1lXSA9IHZhbHVlO1xyXG5cclxuICAgICAgICBjb25zdCBjb250cm9sVWkgPSB0aGlzLmZvcm1QYW5lbEN0cmxyLkdldEZpZWxkbEJ5TmFtZSh0aGlzLnZhbHVlRGJOYW1lKTtcclxuICAgICAgICBjb250cm9sVWkuU2V0VmFsdWUodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgb25DaGFuZ2VWaWV3KGlzRml0OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5maXRXaWR0aCA9IGlzRml0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICBwcm90ZWN0ZWQgX3NlbGVjdChtbywgaW5kZXgpOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgICAgICByZXR1cm4gbW87XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9tYXRyaXhNb0xpc3QobW9EYXRhTGlzdCk6IE1ldGFvYmplY3REYXRhTW9kZWxbXSB7XHJcbiAgICAgICAgbW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhvcml6b250YWxSb3dzLmZvckVhY2goKGNvbCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKG1vW2NvbC5DYXB0aW9uXSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9bY29sLkNhcHRpb25dID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIG1vRGF0YUxpc3Q7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9jZWxsVmFsdWVDaGFuZ2Uoc2VuZGVyKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5kZXhJID0gdGhpcy5hY3RpdmVDZWxsLmk7XHJcbiAgICAgICAgY29uc3QgaW5kZXhKID0gdGhpcy5hY3RpdmVDZWxsLmo7XHJcbiAgICAgICAgdGhpcy5tb0RhdGFMaXN0JFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgICAgIHRhcCgobW9EYXRhTGlzdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vRGF0YUxpc3RbaW5kZXhJXVt0aGlzLmhvcml6b250YWxSb3dzW2luZGV4Sl0uQ2FwdGlvbl0gPSBzZW5kZXIuTW9bdGhpcy52YWx1ZURiTmFtZV07XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vRGF0YUxpc3RbaW5kZXhJXS4kTW9kaWZpZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdFtpbmRleEldLiRNb2RpZmllZFt0aGlzLmhvcml6b250YWxSb3dzW2luZGV4Sl0uQ2FwdGlvbl0gPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vRGF0YUxpc3RbaW5kZXhJXS4kTW9kaWZpZWQgPSB7IFt0aGlzLmhvcml6b250YWxSb3dzW2luZGV4Sl0uQ2FwdGlvbl06IDEgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgZW51bSBXaWR0aFR5cGVFbnVtIHtcclxuICAgIEZpdFdpZHRoID0gJ9iz2KrZiNmGINmH2KfbjCDZh9mFINi52LHYticsXHJcbiAgICBTdGF0aWNXaWR0aCA9ICfYs9iq2YjZhiDZh9in24wg2KjYpyDYudix2LYg2K/ZhNiu2YjYp9mHJ1xyXG59XHJcbiIsIjxuZy1jb250YWluZXJcclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgbWF0cml4VGVtcGxhdGU7XHJcbiAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICBtb0RhdGFMaXN0OiBtYXRyaXhNb0xpc3QkIHwgYXN5bmMsXHJcbiAgICAgICAgICAgIGNvbHVtbnM6IGhvcml6b250YWxSb3dzLFxyXG4gICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHM6IGNvbmRpdGlvbmFsRm9ybWF0cyQgfCBhc3luYyxcclxuICAgICAgICAgICAgZGV2aWNlTmFtZTogZGV2aWNlTmFtZSQgfCBhc3luYyxcclxuICAgICAgICAgICAgZGV2aWNlU2l6ZTogZGV2aWNlU2l6ZSQgfCBhc3luYyxcclxuICAgICAgICAgICAgdGl0bGU6IHRpdGxlJCB8IGFzeW5jLFxyXG4gICAgICAgICAgICBpbmxpbmVFZGl0TW9kZTogaW5saW5lRWRpdE1vZGUkIHwgYXN5bmMsXHJcbiAgICAgICAgICAgIGFsbG93SW5saW5lRWRpdDogYWxsb3dJbmxpbmVFZGl0JCB8IGFzeW5jLFxyXG4gICAgICAgICAgICBoaWRlVG9vbGJhcjogaGlkZVRvb2xiYXIkIHwgYXN5bmMsXHJcbiAgICAgICAgICAgIGNvbnRlbnREZW5zaXR5OiBjb250ZW50RGVuc2l0eSQgfCBhc3luYyxcclxuICAgICAgICAgICAgYWN0aXZlQ2VsbDogYWN0aXZlQ2VsbCxcclxuICAgICAgICAgICAgdmFsdWVDb250cm9sRmllbGRDYXB0aW9uOiB2YWx1ZUNvbnRyb2xGaWVsZENhcHRpb24sXHJcbiAgICAgICAgICAgIHZhbHVlVHlwZTogdmFsdWVUeXBlLFxyXG4gICAgICAgICAgICBmb3JtU2V0dGluZzogY29udGV4dC5TZXR0aW5nLkZvcm1UZW1wbGF0ZSxcclxuICAgICAgICAgICAgbWF0cml4V2lkdGhUeXBlOiBtYXRyaXhXaWR0aFR5cGUsXHJcbiAgICAgICAgICAgIGNlbGxXaWR0aDogY2VsbFdpZHRoLFxyXG4gICAgICAgICAgICB2ZXJ0aWNhbExhYmVsV2lkdGg6IHZlcnRpY2FsTGFiZWxXaWR0aCxcclxuICAgICAgICAgICAgZml0V2lkdGg6IGZpdFdpZHRoLFxyXG4gICAgICAgICAgICBhY2Nlc3M6IGNvbnRleHQuU2V0dGluZy5FeHRyYT8uRGVmYXVsdENvbW1hbmRzQWNjZXNzLFxyXG4gICAgICAgICAgICBoYXNTZWxlY3RlZDogaGFzU2VsZWN0ZWQkIHwgYXN5bmMsXHJcbiAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiBjb250YWluZXJXaWR0aCQgfCBhc3luYyxcclxuICAgICAgICAgICAgZm9ybUxheW91dDogZm9ybUxheW91dFxyXG4gICAgICAgIH1cclxuICAgIFwiXHJcbj48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZVxyXG4gICAgI21hdHJpeFRlbXBsYXRlXHJcbiAgICBsZXQtbW9EYXRhTGlzdD1cIm1vRGF0YUxpc3RcIlxyXG4gICAgbGV0LWRldmljZU5hbWU9XCJkZXZpY2VOYW1lXCJcclxuICAgIGxldC1kZXZpY2VTaXplPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICBsZXQtdGl0bGU9XCJ0aXRsZVwiXHJcbiAgICBsZXQtaW5saW5lRWRpdE1vZGU9XCJpbmxpbmVFZGl0TW9kZVwiXHJcbiAgICBsZXQtYWxsb3dJbmxpbmVFZGl0PVwiYWxsb3dJbmxpbmVFZGl0XCJcclxuICAgIGxldC1oaWRlVG9vbGJhcj1cImhpZGVUb29sYmFyXCJcclxuICAgIGxldC1jb250ZW50RGVuc2l0eT1cImNvbnRlbnREZW5zaXR5XCJcclxuICAgIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiXHJcbiAgICBsZXQtY29uZGl0aW9uYWxGb3JtYXRzPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcclxuICAgIGxldC1hY3RpdmVDZWxsPVwiYWN0aXZlQ2VsbFwiXHJcbiAgICBsZXQtdmFsdWVDb250cm9sRmllbGRDYXB0aW9uPVwidmFsdWVDb250cm9sRmllbGRDYXB0aW9uXCJcclxuICAgIGxldC12YWx1ZVR5cGU9XCJ2YWx1ZVR5cGVcIlxyXG4gICAgbGV0LWZvcm1TZXR0aW5nPVwiZm9ybVNldHRpbmdcIlxyXG4gICAgbGV0LW1hdHJpeFdpZHRoVHlwZT1cIm1hdHJpeFdpZHRoVHlwZVwiXHJcbiAgICBsZXQtY2VsbFdpZHRoPVwiY2VsbFdpZHRoXCJcclxuICAgIGxldC12ZXJ0aWNhbExhYmVsV2lkdGg9XCJ2ZXJ0aWNhbExhYmVsV2lkdGhcIlxyXG4gICAgbGV0LWZpdFdpZHRoPVwiZml0V2lkdGhcIlxyXG4gICAgbGV0LWFjY2Vzcz1cImFjY2Vzc1wiXHJcbiAgICBsZXQtaGFzU2VsZWN0ZWQ9XCJoYXNTZWxlY3RlZFwiXHJcbiAgICBsZXQtY29udGFpbmVyV2lkdGg9XCJjb250YWludGVyV2lkdGhcIlxyXG4gICAgbGV0LWZvcm1MYXlvdXQ9XCJmb3JtTGF5b3V0XCJcclxuPlxyXG4gICAgPGJzdS11bHYtdG9vbGJhclxyXG4gICAgICAgIFtoaWRlVG9vbGJhcl09XCJoaWRlVG9vbGJhclwiXHJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXHJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcclxuICAgICAgICBbaGFzU2VsZWN0ZWRdPVwiaGFzU2VsZWN0ZWRcIlxyXG4gICAgICAgIFthY2Nlc3NdPVwiYWNjZXNzXCJcclxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxyXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXHJcbiAgICAgICAgW2FsbG93SW5saW5lRWRpdF09XCJhbGxvd0lubGluZUVkaXRcIlxyXG4gICAgICAgIFttb0RhdGFMaXN0Q291bnRdPVwibW9EYXRhTGlzdC5sZW5ndGhcIlxyXG4gICAgICAgIChzb3J0Q2xpY2spPVwib25Tb3J0U2V0dGluZ3MoZGV2aWNlTmFtZSlcIlxyXG4gICAgICAgIChlZGl0TW9kZUNsaWNrKT1cIm9uRWRpdE1vZGUoKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cclxuICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgIFtmZFR5cGVdPVwiJ2VtcGhhc2l6ZWQnXCJcclxuICAgICAgICAgICAgW2xhYmVsXT1cIidTYXZlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIFtnbHlwaF09XCInc2F2ZSdcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25TYXZlKClcIlxyXG4gICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICA8IS0tIDxmZC1zcGxpdC1idXR0b25cclxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgICAgIFttYWluQWN0aW9uXT1cIntcclxuICAgICAgICAgICAgICAgIGtlZXBNYWluQWN0aW9uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbWFpbkFjdGlvblRpdGxlOiBzcGxpdEJ0blRpdGxlXHJcbiAgICAgICAgICAgIH1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGZkLW1lbnU+XHJcbiAgICAgICAgICAgICAgICA8bGkgZmQtbWVudS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZSAoY2xpY2spPVwib25DaGFuZ2VWaWV3KHRydWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB3aWR0aFR5cGVFbnVtLkZpdFdpZHRoIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGkgZmQtbWVudS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZSAoY2xpY2spPVwib25DaGFuZ2VWaWV3KGZhbHNlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgd2lkdGhUeXBlRW51bS5TdGF0aWNXaWR0aCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L2ZkLW1lbnU+XHJcbiAgICAgICAgPC9mZC1zcGxpdC1idXR0b24+IC0tPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI3NwbGl0QnRuVGl0bGU+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGZpdFdpZHRoID8gd2lkdGhUeXBlRW51bS5GaXRXaWR0aCA6IHdpZHRoVHlwZUVudW0uU3RhdGljV2lkdGggfX08L3NwYW4+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvYnN1LXVsdi10b29sYmFyPlxyXG4gICAgPGJzdS11aS1tYXRyaXgtdmlld1xyXG4gICAgICAgIFttb0RhdGFMaXN0XT1cIm1vRGF0YUxpc3RcIlxyXG4gICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcclxuICAgICAgICBbYWN0aXZlQ2VsbF09XCJhY3RpdmVDZWxsXCJcclxuICAgICAgICBbdmFsdWVDb250cm9sRmllbGRDYXB0aW9uXT1cInZhbHVlQ29udHJvbEZpZWxkQ2FwdGlvblwiXHJcbiAgICAgICAgW3ZhbHVlVHlwZV09XCJ2YWx1ZVR5cGVcIlxyXG4gICAgICAgIFthY2Nlc3NdPVwiYWNjZXNzXCJcclxuICAgICAgICBbZm9ybUxheW91dF09XCJmb3JtTGF5b3V0XCJcclxuICAgICAgICBbbWF0cml4V2lkdGhUeXBlXT1cIm1hdHJpeFdpZHRoVHlwZVwiXHJcbiAgICAgICAgW2NlbGxXaWR0aF09XCJjZWxsV2lkdGhcIlxyXG4gICAgICAgIFtjZWxsSGVpZ2h0XT1cImNlbGxIZWlnaHRcIlxyXG4gICAgICAgIFt2ZXJ0aWNhbExhYmVsV2lkdGhdPVwidmVydGljYWxMYWJlbFdpZHRoXCJcclxuICAgICAgICBbZml0V2lkdGhdPVwiZml0V2lkdGhcIlxyXG4gICAgICAgIFttaW5XaWR0aF09XCJtaW5XaWR0aFwiXHJcbiAgICAgICAgW21pbkhlaWdodF09XCJtaW5IZWlnaHRcIlxyXG4gICAgICAgIFtyb3dSZXNpemVyXT1cInJvd1Jlc2l6ZXJcIlxyXG4gICAgICAgIFtlbmFibGVSZXNpemluZ109XCJlbmFibGVSZXNpemluZ1wiXHJcbiAgICAgICAgW2NvbnRhaW5lcldpZHRoXT1cImNvbnRhaW5lcldpZHRoXCJcclxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgPjwvYnN1LXVpLW1hdHJpeC12aWV3PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -8,16 +8,18 @@ import * as i0 from "@angular/core";
8
8
  import * as i1 from "barsa-novin-ray-core";
9
9
  import * as i2 from "@fundamental-ngx/core/busy-indicator";
10
10
  import * as i3 from "@fundamental-ngx/core/file-uploader";
11
- import * as i4 from "@fundamental-ngx/core/object-number";
12
- import * as i5 from "@fundamental-ngx/core/object-status";
13
- import * as i6 from "@fundamental-ngx/core/popover";
14
- import * as i7 from "@fundamental-ngx/core/toolbar";
15
- import * as i8 from "@fundamental-ngx/core/token";
16
- import * as i9 from "../barsa-bar-download-file/barsa-bar-download-file.component";
17
- import * as i10 from "../mask/mask.component";
18
- import * as i11 from "../file-viewer-content/file-viewer-content.component";
19
- import * as i12 from "@angular/common";
20
- import * as i13 from "../upload-file-status.pipe";
11
+ import * as i4 from "@fundamental-ngx/core/form";
12
+ import * as i5 from "@fundamental-ngx/core/object-number";
13
+ import * as i6 from "@fundamental-ngx/core/object-status";
14
+ import * as i7 from "@fundamental-ngx/core/popover";
15
+ import * as i8 from "@fundamental-ngx/core/toolbar";
16
+ import * as i9 from "@fundamental-ngx/core/token";
17
+ import * as i10 from "../barsa-bar-download-file/barsa-bar-download-file.component";
18
+ import * as i11 from "../mask/mask.component";
19
+ import * as i12 from "../file-viewer-content/file-viewer-content.component";
20
+ import * as i13 from "../contentDensity.directive";
21
+ import * as i14 from "@angular/common";
22
+ import * as i15 from "../upload-file-status.pipe";
21
23
  export class UiFileLinearListBoxComponent extends DeviceInfoFieldBaseComponent {
22
24
  constructor() {
23
25
  super(...arguments);
@@ -122,15 +124,15 @@ export class UiFileLinearListBoxComponent extends DeviceInfoFieldBaseComponent {
122
124
  this._fileCountSource.next(value?.filter((c) => !c.IsDeleted).length);
123
125
  }
124
126
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiFileLinearListBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
125
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiFileLinearListBoxComponent, selector: "bsu-ui-file-linear-list-box", inputs: { value: "value" }, providers: [UploadService], viewQueries: [{ propertyName: "fileUploadComponent", first: true, predicate: FileUploaderComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (value) {\r\n<div\r\n class=\"token-container\"\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n>\r\n <div class=\"token-wrapper\">\r\n @for (file of value; track trackById($index, file)) { @if (!file.IsDeleted) {\r\n <fd-popover #popover>\r\n <fd-popover-control>\r\n <fd-token (onCloseClick)=\"onFileDeleted(file.Id)\" [readOnly]=\"(disableOrReadonly$ | async)!!\"\r\n >{{ file.FileName }}\r\n @if (file.IsNew) { @if (valueExtra$ | async; as valueExtra) { @if (valueExtra[file.Id].UploadState\r\n !== 'Complete') {\r\n <span\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n } @if (valueExtra[file.Id].Progress) {\r\n <fd-object-number\r\n [number]=\"valueExtra[file.Id].Progress || 0\"\r\n unit=\"%\"\r\n status=\"informative\"\r\n ></fd-object-number>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\"></fd-busy-indicator>\r\n } } }\r\n </fd-token>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n @if (valueExtra$ | async; as valueExtra) { @if ( (valueExtra[file.Id].UploadState !== 'Error' ||\r\n valueExtra[file.Id].UploadState === 'Complete') && !file.IsNew ) {\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"isMobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-file-viewer-content>\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"false\"\r\n [popover]=\"popover\"\r\n [canPrint]=\"file.Type | isImageType\"\r\n [files]=\"[file]\"\r\n [hideFullScreen]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n <!-- <ul fd-list>\r\n <li fd-list-item>\r\n <a fd-list-link (click)=\"onDownloadFile(file)\">\r\n <i fd-list-icon glyph=\"download\"></i>\r\n <span fd-list-title>\r\n {{ 'Download' | bbbTranslate }}\r\n </span>\r\n <fd-busy-indicator [loading]=\"fileDownloading\" [size]=\"'s'\"></fd-busy-indicator>\r\n </a>\r\n </li>\r\n </ul> -->\r\n } }\r\n </fd-popover-body>\r\n </fd-popover>\r\n } }\r\n <div style=\"display: flex\">\r\n @if (loading) {\r\n <div style=\"position: relative; width: 3rem\">\r\n <bsu-mask [size]=\"'s'\" style=\"background: transparent\"></bsu-mask>\r\n </div>\r\n } @if ((fileCount$ | async) | canUploadFile: maxFileCount:(disable$ | async)===true:(readonly$ |\r\n async)===true) {\r\n <fd-file-uploader\r\n class=\"file-linear-upload\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [name]=\"'linear_' + id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"validExtension\"\r\n [multiple]=\"maxFileCount > 1 || Setting.IsMultiSelect\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host.isMobile ::ng-deep fd-token>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-wrap;height:auto;text-align:right}:host.isMobile ::ng-deep body[dir=ltr] fd-token>span{text-align:left}.token-container{background:transparent;padding:3px;display:flex;width:100%}.token-wrapper{align-items:center;flex-grow:1;display:flex;flex-wrap:wrap;width:100%}.token-wrapper fd-token,.token-wrapper .file-linear-upload{padding:4px}\n"], dependencies: [{ kind: "directive", type: i1.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "component", type: i2.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i3.FileUploaderComponent, selector: "fd-file-uploader", inputs: ["disabled", "required", "multiple", "accept", "dragndrop", "maxFileSize", "minFileSize", "id", "ariaLabel", "ariaLabelledBy", "placeholder", "buttonLabel", "buttonAriaLabel", "state", "fileLimit", "inputHidden", "width"], outputs: ["selectedFilesChanged", "selectedInvalidFiles", "onDragEnter", "onDragLeave"] }, { kind: "component", type: i4.ObjectNumberComponent, selector: "fd-object-number", inputs: ["number", "decimal", "unit", "emphasized", "large", "status", "class", "ariaLabelledBy", "ariaLabel"] }, { kind: "component", type: i5.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i6.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i6.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i8.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: i9.BarsaBarDownloadFileComponent, selector: "bsu-barsa-bar-download-file", inputs: ["popover", "file", "files", "hideFullScreen", "isMobile", "canPrint", "deviceSize"] }, { kind: "component", type: i10.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i11.FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: ["fillWidth", "imageOnly", "isImageGallery", "cardMode", "showFooter", "showContent", "width", "deviceSize", "cardContentHeight", "file"], outputs: ["cantView"] }, { kind: "pipe", type: i12.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.CanUploadFilePipe, name: "canUploadFile" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i1.IsImagePipe, name: "isImageType" }, { kind: "pipe", type: i13.UploadFileStatusPipe, name: "uploadFileStatus" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
127
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiFileLinearListBoxComponent, selector: "bsu-ui-file-linear-list-box", inputs: { value: "value" }, providers: [UploadService], viewQueries: [{ propertyName: "fileUploadComponent", first: true, predicate: FileUploaderComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<input fd-form-control class=\"hide\"/>\r\n@if (value) {\r\n<div\r\n class=\"token-container fd-input\"\r\n contentDensity\r\n [attr.readonly]=\"(readonly$ | async) === true ? true : null\"\r\n [disabled]=\"(disable$ | async) === true ? true : null\"\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n style=\"height: auto !important\"\r\n>\r\n <div class=\"token-wrapper\">\r\n @for (file of value; track trackById($index, file)) { @if (!file.IsDeleted) {\r\n <fd-popover #popover>\r\n <fd-popover-control>\r\n <fd-token (onCloseClick)=\"onFileDeleted(file.Id)\" [readOnly]=\"(disableOrReadonly$ | async)!!\"\r\n >{{ file.FileName }}\r\n @if (file.IsNew) { @if (valueExtra$ | async; as valueExtra) { @if (valueExtra[file.Id].UploadState\r\n !== 'Complete') {\r\n <span\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n } @if (valueExtra[file.Id].Progress) {\r\n <fd-object-number\r\n [number]=\"valueExtra[file.Id].Progress || 0\"\r\n unit=\"%\"\r\n status=\"informative\"\r\n ></fd-object-number>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\"></fd-busy-indicator>\r\n } } }\r\n </fd-token>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n @if (valueExtra$ | async; as valueExtra) { @if ( (valueExtra[file.Id].UploadState !== 'Error' ||\r\n valueExtra[file.Id].UploadState === 'Complete') && !file.IsNew ) {\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"isMobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-file-viewer-content>\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"false\"\r\n [popover]=\"popover\"\r\n [canPrint]=\"file.Type | isImageType\"\r\n [files]=\"[file]\"\r\n [hideFullScreen]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n <!-- <ul fd-list>\r\n <li fd-list-item>\r\n <a fd-list-link (click)=\"onDownloadFile(file)\">\r\n <i fd-list-icon glyph=\"download\"></i>\r\n <span fd-list-title>\r\n {{ 'Download' | bbbTranslate }}\r\n </span>\r\n <fd-busy-indicator [loading]=\"fileDownloading\" [size]=\"'s'\"></fd-busy-indicator>\r\n </a>\r\n </li>\r\n </ul> -->\r\n } }\r\n </fd-popover-body>\r\n </fd-popover>\r\n } }\r\n <div style=\"display: flex\">\r\n @if (loading) {\r\n <div style=\"position: relative; width: 3rem\">\r\n <bsu-mask [size]=\"'s'\" style=\"background: transparent\"></bsu-mask>\r\n </div>\r\n } @if ((fileCount$ | async) | canUploadFile: maxFileCount:(disable$ | async)===true:(readonly$ |\r\n async)===true) {\r\n <fd-file-uploader\r\n class=\"file-linear-upload\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [name]=\"'linear_' + id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"validExtension\"\r\n [multiple]=\"maxFileCount > 1 || Setting.IsMultiSelect\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host.isMobile ::ng-deep fd-token>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-wrap;height:auto;text-align:right}:host.isMobile ::ng-deep body[dir=ltr] fd-token>span{text-align:left}.token-container{background:transparent;padding:3px;display:flex;width:100%}.token-wrapper{align-items:center;flex-grow:1;display:flex;flex-wrap:wrap;width:100%}.token-wrapper fd-token,.token-wrapper .file-linear-upload{padding:4px}\n"], dependencies: [{ kind: "directive", type: i1.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "component", type: i2.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i3.FileUploaderComponent, selector: "fd-file-uploader", inputs: ["disabled", "required", "multiple", "accept", "dragndrop", "maxFileSize", "minFileSize", "id", "ariaLabel", "ariaLabelledBy", "placeholder", "buttonLabel", "buttonAriaLabel", "state", "fileLimit", "inputHidden", "width"], outputs: ["selectedFilesChanged", "selectedInvalidFiles", "onDragEnter", "onDragLeave"] }, { kind: "component", type: i4.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i5.ObjectNumberComponent, selector: "fd-object-number", inputs: ["number", "decimal", "unit", "emphasized", "large", "status", "class", "ariaLabelledBy", "ariaLabel"] }, { kind: "component", type: i6.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i7.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i8.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i9.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: i10.BarsaBarDownloadFileComponent, selector: "bsu-barsa-bar-download-file", inputs: ["popover", "file", "files", "hideFullScreen", "isMobile", "canPrint", "deviceSize"] }, { kind: "component", type: i11.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i12.FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: ["fillWidth", "imageOnly", "isImageGallery", "cardMode", "showFooter", "showContent", "width", "deviceSize", "cardContentHeight", "file"], outputs: ["cantView"] }, { kind: "directive", type: i13.ContentDensityDirective, selector: "[contentDensity]" }, { kind: "pipe", type: i14.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.CanUploadFilePipe, name: "canUploadFile" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i1.IsImagePipe, name: "isImageType" }, { kind: "pipe", type: i15.UploadFileStatusPipe, name: "uploadFileStatus" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
126
128
  }
127
129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiFileLinearListBoxComponent, decorators: [{
128
130
  type: Component,
129
- args: [{ selector: 'bsu-ui-file-linear-list-box', providers: [UploadService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (value) {\r\n<div\r\n class=\"token-container\"\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n>\r\n <div class=\"token-wrapper\">\r\n @for (file of value; track trackById($index, file)) { @if (!file.IsDeleted) {\r\n <fd-popover #popover>\r\n <fd-popover-control>\r\n <fd-token (onCloseClick)=\"onFileDeleted(file.Id)\" [readOnly]=\"(disableOrReadonly$ | async)!!\"\r\n >{{ file.FileName }}\r\n @if (file.IsNew) { @if (valueExtra$ | async; as valueExtra) { @if (valueExtra[file.Id].UploadState\r\n !== 'Complete') {\r\n <span\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n } @if (valueExtra[file.Id].Progress) {\r\n <fd-object-number\r\n [number]=\"valueExtra[file.Id].Progress || 0\"\r\n unit=\"%\"\r\n status=\"informative\"\r\n ></fd-object-number>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\"></fd-busy-indicator>\r\n } } }\r\n </fd-token>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n @if (valueExtra$ | async; as valueExtra) { @if ( (valueExtra[file.Id].UploadState !== 'Error' ||\r\n valueExtra[file.Id].UploadState === 'Complete') && !file.IsNew ) {\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"isMobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-file-viewer-content>\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"false\"\r\n [popover]=\"popover\"\r\n [canPrint]=\"file.Type | isImageType\"\r\n [files]=\"[file]\"\r\n [hideFullScreen]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n <!-- <ul fd-list>\r\n <li fd-list-item>\r\n <a fd-list-link (click)=\"onDownloadFile(file)\">\r\n <i fd-list-icon glyph=\"download\"></i>\r\n <span fd-list-title>\r\n {{ 'Download' | bbbTranslate }}\r\n </span>\r\n <fd-busy-indicator [loading]=\"fileDownloading\" [size]=\"'s'\"></fd-busy-indicator>\r\n </a>\r\n </li>\r\n </ul> -->\r\n } }\r\n </fd-popover-body>\r\n </fd-popover>\r\n } }\r\n <div style=\"display: flex\">\r\n @if (loading) {\r\n <div style=\"position: relative; width: 3rem\">\r\n <bsu-mask [size]=\"'s'\" style=\"background: transparent\"></bsu-mask>\r\n </div>\r\n } @if ((fileCount$ | async) | canUploadFile: maxFileCount:(disable$ | async)===true:(readonly$ |\r\n async)===true) {\r\n <fd-file-uploader\r\n class=\"file-linear-upload\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [name]=\"'linear_' + id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"validExtension\"\r\n [multiple]=\"maxFileCount > 1 || Setting.IsMultiSelect\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host.isMobile ::ng-deep fd-token>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-wrap;height:auto;text-align:right}:host.isMobile ::ng-deep body[dir=ltr] fd-token>span{text-align:left}.token-container{background:transparent;padding:3px;display:flex;width:100%}.token-wrapper{align-items:center;flex-grow:1;display:flex;flex-wrap:wrap;width:100%}.token-wrapper fd-token,.token-wrapper .file-linear-upload{padding:4px}\n"] }]
131
+ args: [{ selector: 'bsu-ui-file-linear-list-box', providers: [UploadService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<input fd-form-control class=\"hide\"/>\r\n@if (value) {\r\n<div\r\n class=\"token-container fd-input\"\r\n contentDensity\r\n [attr.readonly]=\"(readonly$ | async) === true ? true : null\"\r\n [disabled]=\"(disable$ | async) === true ? true : null\"\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n style=\"height: auto !important\"\r\n>\r\n <div class=\"token-wrapper\">\r\n @for (file of value; track trackById($index, file)) { @if (!file.IsDeleted) {\r\n <fd-popover #popover>\r\n <fd-popover-control>\r\n <fd-token (onCloseClick)=\"onFileDeleted(file.Id)\" [readOnly]=\"(disableOrReadonly$ | async)!!\"\r\n >{{ file.FileName }}\r\n @if (file.IsNew) { @if (valueExtra$ | async; as valueExtra) { @if (valueExtra[file.Id].UploadState\r\n !== 'Complete') {\r\n <span\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n } @if (valueExtra[file.Id].Progress) {\r\n <fd-object-number\r\n [number]=\"valueExtra[file.Id].Progress || 0\"\r\n unit=\"%\"\r\n status=\"informative\"\r\n ></fd-object-number>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\"></fd-busy-indicator>\r\n } } }\r\n </fd-token>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n @if (valueExtra$ | async; as valueExtra) { @if ( (valueExtra[file.Id].UploadState !== 'Error' ||\r\n valueExtra[file.Id].UploadState === 'Complete') && !file.IsNew ) {\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"isMobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-file-viewer-content>\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"false\"\r\n [popover]=\"popover\"\r\n [canPrint]=\"file.Type | isImageType\"\r\n [files]=\"[file]\"\r\n [hideFullScreen]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n <!-- <ul fd-list>\r\n <li fd-list-item>\r\n <a fd-list-link (click)=\"onDownloadFile(file)\">\r\n <i fd-list-icon glyph=\"download\"></i>\r\n <span fd-list-title>\r\n {{ 'Download' | bbbTranslate }}\r\n </span>\r\n <fd-busy-indicator [loading]=\"fileDownloading\" [size]=\"'s'\"></fd-busy-indicator>\r\n </a>\r\n </li>\r\n </ul> -->\r\n } }\r\n </fd-popover-body>\r\n </fd-popover>\r\n } }\r\n <div style=\"display: flex\">\r\n @if (loading) {\r\n <div style=\"position: relative; width: 3rem\">\r\n <bsu-mask [size]=\"'s'\" style=\"background: transparent\"></bsu-mask>\r\n </div>\r\n } @if ((fileCount$ | async) | canUploadFile: maxFileCount:(disable$ | async)===true:(readonly$ |\r\n async)===true) {\r\n <fd-file-uploader\r\n class=\"file-linear-upload\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [name]=\"'linear_' + id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"validExtension\"\r\n [multiple]=\"maxFileCount > 1 || Setting.IsMultiSelect\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host.isMobile ::ng-deep fd-token>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-wrap;height:auto;text-align:right}:host.isMobile ::ng-deep body[dir=ltr] fd-token>span{text-align:left}.token-container{background:transparent;padding:3px;display:flex;width:100%}.token-wrapper{align-items:center;flex-grow:1;display:flex;flex-wrap:wrap;width:100%}.token-wrapper fd-token,.token-wrapper .file-linear-upload{padding:4px}\n"] }]
130
132
  }], propDecorators: { fileUploadComponent: [{
131
133
  type: ViewChild,
132
134
  args: [FileUploaderComponent, { static: false }]
133
135
  }], value: [{
134
136
  type: Input
135
137
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZmlsZS1saW5lYXItbGlzdC1ib3gvdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZmlsZS1saW5lYXItbGlzdC1ib3gvdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBVyxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFrQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlFLE9BQU8sRUFDSCxhQUFhLEVBQ2IscUJBQXFCLEVBRXJCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDbkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBV3pFLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSw0QkFBNEI7SUFSOUU7O1FBYUksZUFBVSxHQUFHLElBQUksVUFBVSxFQUFtQixDQUFDO1FBSy9DLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXBCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHUixxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztLQTJHN0Q7SUExR0csUUFBUTtRQUNKLEtBQUss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QUM7SUFDUyxnQkFBZ0IsQ0FBQyxpQkFBcUM7UUFDNUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNTLGFBQWEsQ0FBQyxLQUFLO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUUsQ0FBQzsrR0F6SFEsNEJBQTRCO21HQUE1Qiw0QkFBNEIsa0ZBSjFCLENBQUMsYUFBYSxDQUFDLCtFQUtmLHFCQUFxQix1RUN4QnBDLG9tSkE4RkE7OzRGRHZFYSw0QkFBNEI7a0JBUnhDLFNBQVM7K0JBQ0ksNkJBQTZCLGFBRzVCLENBQUMsYUFBYSxDQUFDLG1CQUNULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzs4QkFHb0MsbUJBQW1CO3NCQUF2RSxTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDMUMsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBGaWxlVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIFVwbG9hZFNlcnZpY2UsXHJcbiAgICBGaWxlc1ZhbGlkYXRpb25IZWxwZXIsXHJcbiAgICBGaWxlQXR0YWNobWVudEluZm8sXHJcbiAgICBnZXRWYWxpZEV4dGVuc2lvbixcclxuICAgIExpbmVhckxpc3RIZWxwZXJcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IERldmljZUluZm9GaWVsZEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9kZXZpY2UtaW5mby1maWVsZC1iYXNlJztcclxuaW1wb3J0IHsgSVVwbG9hZGluZ1N0YXRlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1maWxlLWxpbmVhci1saXN0LWJveCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1VwbG9hZFNlcnZpY2VdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlGaWxlTGluZWFyTGlzdEJveENvbXBvbmVudCBleHRlbmRzIERldmljZUluZm9GaWVsZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBAVmlld0NoaWxkKEZpbGVVcGxvYWRlckNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGZpbGVVcGxvYWRDb21wb25lbnQ6IEZpbGVVcGxvYWRlckNvbXBvbmVudDtcclxuICAgIEBJbnB1dCgpIHZhbHVlOiBGaWxlQXR0YWNobWVudEluZm9bXTtcclxuXHJcbiAgICBmaWxlQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgICB1cGxvYWRpbmckID0gbmV3IE9ic2VydmFibGU8SVVwbG9hZGluZ1N0YXRlPigpO1xyXG5cclxuICAgIHZhbHVlRXh0cmEkOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogVXBsb2FkRmlsZVByb3BzIH0+O1xyXG4gICAgY29udGVudERlbnNpdHkkOiBPYnNlcnZhYmxlPENvbnRlbnREZW5zaXR5PjtcclxuICAgIGZpbGVEb3dubG9hZGluZzogYm9vbGVhbjtcclxuICAgIHZhbGlkRXh0ZW5zaW9uID0gJyc7XHJcbiAgICBtYXhGaWxlQ291bnQ6IG51bWJlcjtcclxuICAgIGxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHByb3RlY3RlZCBfbGluZWFySGVscGVyOiBMaW5lYXJMaXN0SGVscGVyO1xyXG4gICAgcHJvdGVjdGVkIF9maWxlc1ZhbGlkYXRpb25IZWxwZXI6IEZpbGVzVmFsaWRhdGlvbkhlbHBlcjtcclxuICAgIHByaXZhdGUgX2ZpbGVDb3VudFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS53aW5kb3dSZXNpemUkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hSZXNpemUoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbnRleHQub24oe1xyXG4gICAgICAgICAgICBTaG93VXBsb2FkV2luZG93OiB0aGlzLl9zaG93VXBsb2FkV2luZG93LmJpbmQodGhpcylcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIgPSBuZXcgRmlsZXNWYWxpZGF0aW9uSGVscGVyKFxyXG4gICAgICAgICAgICB0aGlzLlNldHRpbmcuTWF4RmlsZUNvdW50LFxyXG4gICAgICAgICAgICB0aGlzLlNldHRpbmcuTWF4RmlsZVNpemVLYixcclxuICAgICAgICAgICAgdGhpcy5TZXR0aW5nLk1heFRvdGFsRmlsZVNpemVLYlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyID0gbmV3IExpbmVhckxpc3RIZWxwZXIoXHJcbiAgICAgICAgICAgIHRoaXMuX3VwbG9hZFNlcnZpY2UsXHJcbiAgICAgICAgICAgIHRoaXMuX2ZpbGVzVmFsaWRhdGlvbkhlbHBlcixcclxuICAgICAgICAgICAgdGhpcy5TZXR0aW5nLkZpZWxkRGVmSWRcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmlsZUNvdW50JCA9IHRoaXMuX2ZpbGVDb3VudFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgICAgIHRoaXMudmFsdWVFeHRyYSQgPSB0aGlzLl9saW5lYXJIZWxwZXIudmFsdWVFeHRyYSQ7XHJcbiAgICAgICAgdGhpcy51cGxvYWRpbmckID0gdGhpcy5fbGluZWFySGVscGVyLnVwbG9hZGluZyQ7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLmRlbGV0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoZmlsZUF0dGFjaG1lbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fZGVsZXRlRmlsZUF0dGFjaG1lbnQoZmlsZUF0dGFjaG1lbnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci5uZXdGaWxlVXBsb2FkZWQkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGZpbGVBdHRhY2htZW50KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX25ld0ZpbGVVcGxvYWRlZChmaWxlQXR0YWNobWVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSAmJlxyXG4gICAgICAgICAgICB0aGlzLnZhbHVlLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci5pbml0KGMpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLlNldHRpbmcuSXNNdWx0aVNlbGVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4RmlsZUNvdW50ID0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tYXhGaWxlQ291bnQgPSB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4RmlsZUNvdW50O1xyXG4gICAgICAgIHRoaXMudmFsaWRFeHRlbnNpb24gPSBnZXRWYWxpZEV4dGVuc2lvbih0aGlzLlNldHRpbmcuVmFsaWRFeHRlbnNpb25zKTtcclxuICAgICAgICB0aGlzLl9zZXRGaWxlQ291bnQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvLyB0aGlzLnZhbHVlRXh0cmEgPSB7fTtcclxuICAgICAgICB0aGlzLmNvbnRleHQudW4oJ1Nob3dVcGxvYWRXaW5kb3cnLCB0aGlzLl9zaG93VXBsb2FkV2luZG93KTtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgfVxyXG4gICAgb25Eb3dubG9hZEZpbGUoZmlsZTogRmlsZUF0dGFjaG1lbnRJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFmaWxlLklzTmV3IHx8IGZpbGUuVXBsb2FkU3RhdGUgPT09ICdDb21wbGV0ZScgfHwgIWZpbGUuVXBsb2FkU3RhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdDb21tYW5kUmVxdWVzdCcsIHRoaXMuY29udGV4dCwgJ0Rvd25sb2FkJywgZmlsZS5JZCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZURvd25sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVEb3dubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uRmlsZURlbGV0ZWQoZmlsZUlkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZmlsZURlbGV0ZShmaWxlSWQpO1xyXG4gICAgfVxyXG4gICAgb25UZXJtaW5hdGUoZmlsZUF0dGFjaG1lbnQ6IEZpbGVBdHRhY2htZW50SW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnQ29tbWFuZFJlcXVlc3QnLCB0aGlzLmNvbnRleHQsICdEZWxldGUnLCBmaWxlQXR0YWNobWVudC5JZCk7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLmNhbmNlbChmaWxlQXR0YWNobWVudCk7XHJcbiAgICB9XHJcbiAgICBvbkZpbGVTZWxlY3Rpb24oZmlsZXM6IEZpbGVbXSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci51cGxvYWRUb1NlcnZlcihmaWxlcyk7XHJcbiAgICB9XHJcbiAgICBvblZpc2liaWxpdHlDaGFuZ2UodmlzaWJpbGl0eTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZpc2liaWxpdHkgPT09ICdWaXNpYmxlJykge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVmcmVzaFJlc2l6ZSgpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUlkKGZpbGUsIGluZGV4KTogc3RyaW5nIHwgbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gZmlsZSA/IGZpbGUuSWQgOiBpbmRleDtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCByZWZyZXNoUmVzaXplKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHggPSBNYXRoLmZsb29yKHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCk7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgeCArICdweCcpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIHJldHJ5KGZpbGVBdHRhY2htZW50OiBGaWxlQXR0YWNobWVudEluZm8pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9saW5lYXJIZWxwZXIucmV0cnkoZmlsZUF0dGFjaG1lbnQpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zZXRWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIuX3NldFZhbHVlKHZhbHVlKTtcclxuICAgICAgICB0aGlzLl9zZXRGaWxlQ291bnQodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zaG93VXBsb2FkV2luZG93KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlsZVVwbG9hZENvbXBvbmVudC5vcGVuKCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2ZpbGVEZWxldGUoaWQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmaWxlQXR0YWNobWVudCA9IHRoaXMudmFsdWUuZmluZCgoYykgPT4gYy5JZCA9PT0gaWQpO1xyXG4gICAgICAgIGlmIChmaWxlQXR0YWNobWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl9kZWxldGVGaWxlQXR0YWNobWVudChmaWxlQXR0YWNobWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9kZWxldGVGaWxlQXR0YWNobWVudChmaWxlQXR0YWNobWVudDogRmlsZUF0dGFjaG1lbnRJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdDb21tYW5kUmVxdWVzdCcsIHRoaXMuY29udGV4dCwgJ0RlbGV0ZScsIGZpbGVBdHRhY2htZW50LklkKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX3NldExvYWRpbmcobG9hZGluZzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGxvYWRpbmc7XHJcbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9uZXdGaWxlVXBsb2FkZWQobmV3RmlsZUF0dGFjaG1lbnQ6IEZpbGVBdHRhY2htZW50SW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnQ29tbWFuZFJlcXVlc3QnLCB0aGlzLmNvbnRleHQsICdGaWxlVXBsb2FkJywgbmV3RmlsZUF0dGFjaG1lbnQpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zZXRGaWxlQ291bnQodmFsdWUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9maWxlQ291bnRTb3VyY2UubmV4dCh2YWx1ZT8uZmlsdGVyKChjKSA9PiAhYy5Jc0RlbGV0ZWQpLmxlbmd0aCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBVcGxvYWRGaWxlUHJvcHMge1xyXG4gICAgRmlsZVVybD86IHN0cmluZztcclxuICAgIGNhbmNlbGF0aW9uJD86IFN1YmplY3Q8dm9pZD47XHJcbiAgICBiaW5hcnk/OiBhbnk7XHJcbiAgICBVcGxvYWRTdGF0ZT86IHN0cmluZztcclxuICAgIFByb2dyZXNzPzogbnVtYmVyO1xyXG4gICAgSXNJY29uPzogYm9vbGVhbjtcclxuICAgIElzTmV3PzogYm9vbGVhbjtcclxufVxyXG4iLCJAaWYgKHZhbHVlKSB7XHJcbjxkaXZcclxuICAgIGNsYXNzPVwidG9rZW4tY29udGFpbmVyXCJcclxuICAgIGludGVyc2VjdGlvbk9ic2VydmVyXHJcbiAgICBbaW50ZXJzZWN0aW9uVGhyZXNob2xkXT1cIjAuMVwiXHJcbiAgICAodmlzaWJpbGl0eUNoYW5nZSk9XCJvblZpc2liaWxpdHlDaGFuZ2UoJGV2ZW50KVwiXHJcbj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi13cmFwcGVyXCI+XHJcbiAgICAgICAgQGZvciAoZmlsZSBvZiB2YWx1ZTsgdHJhY2sgdHJhY2tCeUlkKCRpbmRleCwgZmlsZSkpIHsgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgICAgICA8ZmQtcG9wb3ZlciAjcG9wb3Zlcj5cclxuICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgICAgIDxmZC10b2tlbiAob25DbG9zZUNsaWNrKT1cIm9uRmlsZURlbGV0ZWQoZmlsZS5JZClcIiBbcmVhZE9ubHldPVwiKGRpc2FibGVPclJlYWRvbmx5JCB8IGFzeW5jKSEhXCJcclxuICAgICAgICAgICAgICAgICAgICA+e3sgZmlsZS5GaWxlTmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsZS5Jc05ldykgeyBAaWYgKHZhbHVlRXh0cmEkIHwgYXN5bmM7IGFzIHZhbHVlRXh0cmEpIHsgQGlmICh2YWx1ZUV4dHJhW2ZpbGUuSWRdLlVwbG9hZFN0YXRlXHJcbiAgICAgICAgICAgICAgICAgICAgIT09ICdDb21wbGV0ZScpIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwiZmlsZS5JZCB8IHVwbG9hZEZpbGVTdGF0dXM6IHZhbHVlRXh0cmFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwidmFsdWVFeHRyYVtmaWxlLklkXT8uVXBsb2FkU3RhdGUgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidmFsdWVFeHRyYVtmaWxlLklkXT8uVXBsb2FkU3RhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInRmlsZSBVcGxvYWQgU3RhdHVzIElzICcgKyB2YWx1ZUV4dHJhW2ZpbGUuSWRdPy5VcGxvYWRTdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAodmFsdWVFeHRyYVtmaWxlLklkXS5Qcm9ncmVzcykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1vYmplY3QtbnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtudW1iZXJdPVwidmFsdWVFeHRyYVtmaWxlLklkXS5Qcm9ncmVzcyB8fCAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pdD1cIiVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9XCJpbmZvcm1hdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtb2JqZWN0LW51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAodmFsdWVFeHRyYVtmaWxlLklkXS5VcGxvYWRTdGF0ZSA9PT0gJ1VwbG9hZGluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZmQtYnVzeS1pbmRpY2F0b3IgW2xvYWRpbmddPVwidHJ1ZVwiIFtzaXplXT1cIidzJ1wiPjwvZmQtYnVzeS1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgfSB9IH1cclxuICAgICAgICAgICAgICAgIDwvZmQtdG9rZW4+XHJcbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgICAgICAgICAgQGlmICh2YWx1ZUV4dHJhJCB8IGFzeW5jOyBhcyB2YWx1ZUV4dHJhKSB7IEBpZiAoICh2YWx1ZUV4dHJhW2ZpbGUuSWRdLlVwbG9hZFN0YXRlICE9PSAnRXJyb3InIHx8XHJcbiAgICAgICAgICAgICAgICB2YWx1ZUV4dHJhW2ZpbGUuSWRdLlVwbG9hZFN0YXRlID09PSAnQ29tcGxldGUnKSAmJiAhZmlsZS5Jc05ldyApIHtcclxuICAgICAgICAgICAgICAgIDxic3UtZmlsZS12aWV3ZXItY29udGVudFxyXG4gICAgICAgICAgICAgICAgICAgIFtmaWxlXT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCJpc01vYmlsZSA/ICcxMDB2dycgOiAnMzB2dydcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjYXJkTW9kZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2hvd0NvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dGb290ZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiKGRldmljZVNpemUkIHwgYXN5bmMpIHx8ICdzJ1wiXHJcbiAgICAgICAgICAgICAgICA+PC9ic3UtZmlsZS12aWV3ZXItY29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWZvb3Rlcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWJhci1kb3dubG9hZC1maWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc01vYmlsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwb3BvdmVyXT1cInBvcG92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2FuUHJpbnRdPVwiZmlsZS5UeXBlIHwgaXNJbWFnZVR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmlsZXNdPVwiW2ZpbGVdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVGdWxsU2NyZWVuXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiKGRldmljZVNpemUkIHwgYXN5bmMpIHx8ICdzJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnN1LWJhcnNhLWJhci1kb3dubG9hZC1maWxlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDx1bCBmZC1saXN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayAoY2xpY2spPVwib25Eb3dubG9hZEZpbGUoZmlsZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGZkLWxpc3QtaWNvbiBnbHlwaD1cImRvd25sb2FkXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnRG93bmxvYWQnIHwgYmJiVHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnVzeS1pbmRpY2F0b3IgW2xvYWRpbmddPVwiZmlsZURvd25sb2FkaW5nXCIgW3NpemVdPVwiJ3MnXCI+PC9mZC1idXN5LWluZGljYXRvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8L3VsPiAtLT5cclxuICAgICAgICAgICAgICAgIH0gfVxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICA8L2ZkLXBvcG92ZXI+XHJcbiAgICAgICAgfSB9XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIj5cclxuICAgICAgICAgICAgQGlmIChsb2FkaW5nKSB7XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAzcmVtXCI+XHJcbiAgICAgICAgICAgICAgICA8YnN1LW1hc2sgW3NpemVdPVwiJ3MnXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudFwiPjwvYnN1LW1hc2s+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9IEBpZiAoKGZpbGVDb3VudCQgfCBhc3luYykgfCBjYW5VcGxvYWRGaWxlOiBtYXhGaWxlQ291bnQ6KGRpc2FibGUkIHwgYXN5bmMpPT09dHJ1ZToocmVhZG9ubHkkIHxcclxuICAgICAgICAgICAgYXN5bmMpPT09dHJ1ZSkge1xyXG4gICAgICAgICAgICA8ZmQtZmlsZS11cGxvYWRlclxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpbmVhci11cGxvYWRcIlxyXG4gICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgW25hbWVdPVwiJ2xpbmVhcl8nICsgaWRcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYnV0dG9uTGFiZWxdPVwiJ0F0dGFjaEZpbGUnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtidXR0b25BcmlhTGFiZWxdPVwiJ0F0dGFjaEZpbGUnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFthY2NlcHRdPVwidmFsaWRFeHRlbnNpb25cIlxyXG4gICAgICAgICAgICAgICAgW211bHRpcGxlXT1cIm1heEZpbGVDb3VudCA+IDEgfHwgU2V0dGluZy5Jc011bHRpU2VsZWN0XCJcclxuICAgICAgICAgICAgICAgIChzZWxlY3RlZEZpbGVzQ2hhbmdlZCk9XCJvbkZpbGVTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbY29udGVudERlbnNpdHldPVwiKGNvbnRlbnREZW5zaXR5JCB8IGFzeW5jKSEhXCJcclxuICAgICAgICAgICAgPjwvZmQtZmlsZS11cGxvYWRlcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG59XHJcbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZmlsZS1saW5lYXItbGlzdC1ib3gvdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZmlsZS1saW5lYXItbGlzdC1ib3gvdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBVyxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFrQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlFLE9BQU8sRUFDSCxhQUFhLEVBQ2IscUJBQXFCLEVBRXJCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDbkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXekUsTUFBTSxPQUFPLDRCQUE2QixTQUFRLDRCQUE0QjtJQVI5RTs7UUFhSSxlQUFVLEdBQUcsSUFBSSxVQUFVLEVBQW1CLENBQUM7UUFLL0MsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFFcEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUdSLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO0tBMkc3RDtJQTFHRyxRQUFRO1FBQ0osS0FB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Q0FBQztJQUNTLGdCQUFnQixDQUFDLGlCQUFxQztRQUM1RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBQ1MsYUFBYSxDQUFDLEtBQUs7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRSxDQUFDOytHQXpIUSw0QkFBNEI7bUdBQTVCLDRCQUE0QixrRkFKMUIsQ0FBQyxhQUFhLENBQUMsK0VBS2YscUJBQXFCLHVFQ3hCcEMsNjFKQW1HQTs7NEZENUVhLDRCQUE0QjtrQkFSeEMsU0FBUzsrQkFDSSw2QkFBNkIsYUFHNUIsQ0FBQyxhQUFhLENBQUMsbUJBQ1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzhCQUdvQyxtQkFBbUI7c0JBQXZFLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUMxQyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIEZpbGVVcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgVXBsb2FkU2VydmljZSxcclxuICAgIEZpbGVzVmFsaWRhdGlvbkhlbHBlcixcclxuICAgIEZpbGVBdHRhY2htZW50SW5mbyxcclxuICAgIGdldFZhbGlkRXh0ZW5zaW9uLFxyXG4gICAgTGluZWFyTGlzdEhlbHBlclxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2RldmljZS1pbmZvLWZpZWxkLWJhc2UnO1xyXG5pbXBvcnQgeyBJVXBsb2FkaW5nU3RhdGUgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXVpLWZpbGUtbGluZWFyLWxpc3QtYm94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1maWxlLWxpbmVhci1saXN0LWJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS1maWxlLWxpbmVhci1saXN0LWJveC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbVXBsb2FkU2VydmljZV0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUZpbGVMaW5lYXJMaXN0Qm94Q29tcG9uZW50IGV4dGVuZHMgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBWaWV3Q2hpbGQoRmlsZVVwbG9hZGVyQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgZmlsZVVwbG9hZENvbXBvbmVudDogRmlsZVVwbG9hZGVyQ29tcG9uZW50O1xyXG4gICAgQElucHV0KCkgdmFsdWU6IEZpbGVBdHRhY2htZW50SW5mb1tdO1xyXG5cclxuICAgIGZpbGVDb3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIHVwbG9hZGluZyQgPSBuZXcgT2JzZXJ2YWJsZTxJVXBsb2FkaW5nU3RhdGU+KCk7XHJcblxyXG4gICAgdmFsdWVFeHRyYSQ6IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiBVcGxvYWRGaWxlUHJvcHMgfT47XHJcbiAgICBjb250ZW50RGVuc2l0eSQ6IE9ic2VydmFibGU8Q29udGVudERlbnNpdHk+O1xyXG4gICAgZmlsZURvd25sb2FkaW5nOiBib29sZWFuO1xyXG4gICAgdmFsaWRFeHRlbnNpb24gPSAnJztcclxuICAgIG1heEZpbGVDb3VudDogbnVtYmVyO1xyXG4gICAgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgcHJvdGVjdGVkIF9saW5lYXJIZWxwZXI6IExpbmVhckxpc3RIZWxwZXI7XHJcbiAgICBwcm90ZWN0ZWQgX2ZpbGVzVmFsaWRhdGlvbkhlbHBlcjogRmlsZXNWYWxpZGF0aW9uSGVscGVyO1xyXG4gICAgcHJpdmF0ZSBfZmlsZUNvdW50U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLndpbmRvd1Jlc2l6ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFJlc2l6ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5vbih7XHJcbiAgICAgICAgICAgIFNob3dVcGxvYWRXaW5kb3c6IHRoaXMuX3Nob3dVcGxvYWRXaW5kb3cuYmluZCh0aGlzKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX2ZpbGVzVmFsaWRhdGlvbkhlbHBlciA9IG5ldyBGaWxlc1ZhbGlkYXRpb25IZWxwZXIoXHJcbiAgICAgICAgICAgIHRoaXMuU2V0dGluZy5NYXhGaWxlQ291bnQsXHJcbiAgICAgICAgICAgIHRoaXMuU2V0dGluZy5NYXhGaWxlU2l6ZUtiLFxyXG4gICAgICAgICAgICB0aGlzLlNldHRpbmcuTWF4VG90YWxGaWxlU2l6ZUtiXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLl9saW5lYXJIZWxwZXIgPSBuZXcgTGluZWFyTGlzdEhlbHBlcihcclxuICAgICAgICAgICAgdGhpcy5fdXBsb2FkU2VydmljZSxcclxuICAgICAgICAgICAgdGhpcy5fZmlsZXNWYWxpZGF0aW9uSGVscGVyLFxyXG4gICAgICAgICAgICB0aGlzLlNldHRpbmcuRmllbGREZWZJZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5maWxlQ291bnQkID0gdGhpcy5fZmlsZUNvdW50U291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUV4dHJhJCA9IHRoaXMuX2xpbmVhckhlbHBlci52YWx1ZUV4dHJhJDtcclxuICAgICAgICB0aGlzLnVwbG9hZGluZyQgPSB0aGlzLl9saW5lYXJIZWxwZXIudXBsb2FkaW5nJDtcclxuICAgICAgICB0aGlzLl9saW5lYXJIZWxwZXIuZGVsZXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChmaWxlQXR0YWNobWVudCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9kZWxldGVGaWxlQXR0YWNobWVudChmaWxlQXR0YWNobWVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLm5ld0ZpbGVVcGxvYWRlZCQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoZmlsZUF0dGFjaG1lbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fbmV3RmlsZVVwbG9hZGVkKGZpbGVBdHRhY2htZW50KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnZhbHVlICYmXHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUuZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLmluaXQoYyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuU2V0dGluZy5Jc011bHRpU2VsZWN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2ZpbGVzVmFsaWRhdGlvbkhlbHBlci5tYXhGaWxlQ291bnQgPSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm1heEZpbGVDb3VudCA9IHRoaXMuX2ZpbGVzVmFsaWRhdGlvbkhlbHBlci5tYXhGaWxlQ291bnQ7XHJcbiAgICAgICAgdGhpcy52YWxpZEV4dGVuc2lvbiA9IGdldFZhbGlkRXh0ZW5zaW9uKHRoaXMuU2V0dGluZy5WYWxpZEV4dGVuc2lvbnMpO1xyXG4gICAgICAgIHRoaXMuX3NldEZpbGVDb3VudCh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMudmFsdWVFeHRyYSA9IHt9O1xyXG4gICAgICAgIHRoaXMuY29udGV4dC51bignU2hvd1VwbG9hZFdpbmRvdycsIHRoaXMuX3Nob3dVcGxvYWRXaW5kb3cpO1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB9XHJcbiAgICBvbkRvd25sb2FkRmlsZShmaWxlOiBGaWxlQXR0YWNobWVudEluZm8pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWZpbGUuSXNOZXcgfHwgZmlsZS5VcGxvYWRTdGF0ZSA9PT0gJ0NvbXBsZXRlJyB8fCAhZmlsZS5VcGxvYWRTdGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpcmVDb250ZXh0RXZlbnQoJ0NvbW1hbmRSZXF1ZXN0JywgdGhpcy5jb250ZXh0LCAnRG93bmxvYWQnLCBmaWxlLklkKTtcclxuICAgICAgICAgICAgdGhpcy5maWxlRG93bmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZURvd25sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25GaWxlRGVsZXRlZChmaWxlSWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9maWxlRGVsZXRlKGZpbGVJZCk7XHJcbiAgICB9XHJcbiAgICBvblRlcm1pbmF0ZShmaWxlQXR0YWNobWVudDogRmlsZUF0dGFjaG1lbnRJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdDb21tYW5kUmVxdWVzdCcsIHRoaXMuY29udGV4dCwgJ0RlbGV0ZScsIGZpbGVBdHRhY2htZW50LklkKTtcclxuICAgICAgICB0aGlzLl9saW5lYXJIZWxwZXIuY2FuY2VsKGZpbGVBdHRhY2htZW50KTtcclxuICAgIH1cclxuICAgIG9uRmlsZVNlbGVjdGlvbihmaWxlczogRmlsZVtdKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLnVwbG9hZFRvU2VydmVyKGZpbGVzKTtcclxuICAgIH1cclxuICAgIG9uVmlzaWJpbGl0eUNoYW5nZSh2aXNpYmlsaXR5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAodmlzaWJpbGl0eSA9PT0gJ1Zpc2libGUnKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWZyZXNoUmVzaXplKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5SWQoZmlsZSwgaW5kZXgpOiBzdHJpbmcgfCBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBmaWxlID8gZmlsZS5JZCA6IGluZGV4O1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIHJlZnJlc2hSZXNpemUoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgeCA9IE1hdGguZmxvb3IodGhpcy5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKTtcclxuICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCB4ICsgJ3B4Jyk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgcmV0cnkoZmlsZUF0dGFjaG1lbnQ6IEZpbGVBdHRhY2htZW50SW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci5yZXRyeShmaWxlQXR0YWNobWVudCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3NldFZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5fc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuX3NldEZpbGVDb3VudCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3Nob3dVcGxvYWRXaW5kb3coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5maWxlVXBsb2FkQ29tcG9uZW50Lm9wZW4oKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfZmlsZURlbGV0ZShpZCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGZpbGVBdHRhY2htZW50ID0gdGhpcy52YWx1ZS5maW5kKChjKSA9PiBjLklkID09PSBpZCk7XHJcbiAgICAgICAgaWYgKGZpbGVBdHRhY2htZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlbGV0ZUZpbGVBdHRhY2htZW50KGZpbGVBdHRhY2htZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2RlbGV0ZUZpbGVBdHRhY2htZW50KGZpbGVBdHRhY2htZW50OiBGaWxlQXR0YWNobWVudEluZm8pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpcmVDb250ZXh0RXZlbnQoJ0NvbW1hbmRSZXF1ZXN0JywgdGhpcy5jb250ZXh0LCAnRGVsZXRlJywgZmlsZUF0dGFjaG1lbnQuSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gbG9hZGluZztcclxuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX25ld0ZpbGVVcGxvYWRlZChuZXdGaWxlQXR0YWNobWVudDogRmlsZUF0dGFjaG1lbnRJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdDb21tYW5kUmVxdWVzdCcsIHRoaXMuY29udGV4dCwgJ0ZpbGVVcGxvYWQnLCBuZXdGaWxlQXR0YWNobWVudCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3NldEZpbGVDb3VudCh2YWx1ZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2ZpbGVDb3VudFNvdXJjZS5uZXh0KHZhbHVlPy5maWx0ZXIoKGMpID0+ICFjLklzRGVsZXRlZCkubGVuZ3RoKTtcclxuICAgIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIFVwbG9hZEZpbGVQcm9wcyB7XHJcbiAgICBGaWxlVXJsPzogc3RyaW5nO1xyXG4gICAgY2FuY2VsYXRpb24kPzogU3ViamVjdDx2b2lkPjtcclxuICAgIGJpbmFyeT86IGFueTtcclxuICAgIFVwbG9hZFN0YXRlPzogc3RyaW5nO1xyXG4gICAgUHJvZ3Jlc3M/OiBudW1iZXI7XHJcbiAgICBJc0ljb24/OiBib29sZWFuO1xyXG4gICAgSXNOZXc/OiBib29sZWFuO1xyXG59XHJcbiIsIjxpbnB1dCBmZC1mb3JtLWNvbnRyb2wgY2xhc3M9XCJoaWRlXCIvPlxyXG5AaWYgKHZhbHVlKSB7XHJcbjxkaXZcclxuICAgIGNsYXNzPVwidG9rZW4tY29udGFpbmVyIGZkLWlucHV0XCJcclxuICAgIGNvbnRlbnREZW5zaXR5XHJcbiAgICBbYXR0ci5yZWFkb25seV09XCIocmVhZG9ubHkkIHwgYXN5bmMpID09PSB0cnVlID8gdHJ1ZSA6IG51bGxcIlxyXG4gICAgW2Rpc2FibGVkXT1cIihkaXNhYmxlJCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBudWxsXCJcclxuICAgIGludGVyc2VjdGlvbk9ic2VydmVyXHJcbiAgICBbaW50ZXJzZWN0aW9uVGhyZXNob2xkXT1cIjAuMVwiXHJcbiAgICAodmlzaWJpbGl0eUNoYW5nZSk9XCJvblZpc2liaWxpdHlDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICBzdHlsZT1cImhlaWdodDogYXV0byAhaW1wb3J0YW50XCJcclxuPlxyXG4gICAgPGRpdiBjbGFzcz1cInRva2VuLXdyYXBwZXJcIj5cclxuICAgICAgICBAZm9yIChmaWxlIG9mIHZhbHVlOyB0cmFjayB0cmFja0J5SWQoJGluZGV4LCBmaWxlKSkgeyBAaWYgKCFmaWxlLklzRGVsZXRlZCkge1xyXG4gICAgICAgIDxmZC1wb3BvdmVyICNwb3BvdmVyPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICAgICAgPGZkLXRva2VuIChvbkNsb3NlQ2xpY2spPVwib25GaWxlRGVsZXRlZChmaWxlLklkKVwiIFtyZWFkT25seV09XCIoZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMpISFcIlxyXG4gICAgICAgICAgICAgICAgICAgID57eyBmaWxlLkZpbGVOYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmIChmaWxlLklzTmV3KSB7IEBpZiAodmFsdWVFeHRyYSQgfCBhc3luYzsgYXMgdmFsdWVFeHRyYSkgeyBAaWYgKHZhbHVlRXh0cmFbZmlsZS5JZF0uVXBsb2FkU3RhdGVcclxuICAgICAgICAgICAgICAgICAgICAhPT0gJ0NvbXBsZXRlJykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLW9iamVjdC1zdGF0dXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJmaWxlLklkIHwgdXBsb2FkRmlsZVN0YXR1czogdmFsdWVFeHRyYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ2YWx1ZUV4dHJhW2ZpbGUuSWRdPy5VcGxvYWRTdGF0ZSB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJ2YWx1ZUV4dHJhW2ZpbGUuSWRdPy5VcGxvYWRTdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cIidGaWxlIFVwbG9hZCBTdGF0dXMgSXMgJyArIHZhbHVlRXh0cmFbZmlsZS5JZF0/LlVwbG9hZFN0YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIH0gQGlmICh2YWx1ZUV4dHJhW2ZpbGUuSWRdLlByb2dyZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLW9iamVjdC1udW1iZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW251bWJlcl09XCJ2YWx1ZUV4dHJhW2ZpbGUuSWRdLlByb2dyZXNzIHx8IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB1bml0PVwiJVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz1cImluZm9ybWF0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9mZC1vYmplY3QtbnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIH0gQGlmICh2YWx1ZUV4dHJhW2ZpbGUuSWRdLlVwbG9hZFN0YXRlID09PSAnVXBsb2FkaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1idXN5LWluZGljYXRvciBbbG9hZGluZ109XCJ0cnVlXCIgW3NpemVdPVwiJ3MnXCI+PC9mZC1idXN5LWluZGljYXRvcj5cclxuICAgICAgICAgICAgICAgICAgICB9IH0gfVxyXG4gICAgICAgICAgICAgICAgPC9mZC10b2tlbj5cclxuICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XHJcbiAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHk+XHJcbiAgICAgICAgICAgICAgICBAaWYgKHZhbHVlRXh0cmEkIHwgYXN5bmM7IGFzIHZhbHVlRXh0cmEpIHsgQGlmICggKHZhbHVlRXh0cmFbZmlsZS5JZF0uVXBsb2FkU3RhdGUgIT09ICdFcnJvcicgfHxcclxuICAgICAgICAgICAgICAgIHZhbHVlRXh0cmFbZmlsZS5JZF0uVXBsb2FkU3RhdGUgPT09ICdDb21wbGV0ZScpICYmICFmaWxlLklzTmV3ICkge1xyXG4gICAgICAgICAgICAgICAgPGJzdS1maWxlLXZpZXdlci1jb250ZW50XHJcbiAgICAgICAgICAgICAgICAgICAgW2ZpbGVdPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cImlzTW9iaWxlID8gJzEwMHZ3JyA6ICczMHZ3J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NhcmRNb2RlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93Q29udGVudF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2hvd0Zvb3Rlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykgfHwgJ3MnXCJcclxuICAgICAgICAgICAgICAgID48L2JzdS1maWxlLXZpZXdlci1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmZC1wb3BvdmVyLWJvZHktZm9vdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtYmFyLWRvd25sb2FkLWZpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzTW9iaWxlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BvcG92ZXJdPVwicG9wb3ZlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjYW5QcmludF09XCJmaWxlLlR5cGUgfCBpc0ltYWdlVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmaWxlc109XCJbZmlsZV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUZ1bGxTY3JlZW5dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykgfHwgJ3MnXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtYmFyc2EtYmFyLWRvd25sb2FkLWZpbGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHVsIGZkLWxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIChjbGljayk9XCJvbkRvd25sb2FkRmlsZShmaWxlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgZmQtbGlzdC1pY29uIGdseXBoPVwiZG93bmxvYWRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdEb3dubG9hZCcgfCBiYmJUcmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXN5LWluZGljYXRvciBbbG9hZGluZ109XCJmaWxlRG93bmxvYWRpbmdcIiBbc2l6ZV09XCIncydcIj48L2ZkLWJ1c3ktaW5kaWNhdG9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDwvdWw+IC0tPlxyXG4gICAgICAgICAgICAgICAgfSB9XHJcbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgIDwvZmQtcG9wb3Zlcj5cclxuICAgICAgICB9IH1cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleFwiPlxyXG4gICAgICAgICAgICBAaWYgKGxvYWRpbmcpIHtcclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDNyZW1cIj5cclxuICAgICAgICAgICAgICAgIDxic3UtbWFzayBbc2l6ZV09XCIncydcIiBzdHlsZT1cImJhY2tncm91bmQ6IHRyYW5zcGFyZW50XCI+PC9ic3UtbWFzaz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH0gQGlmICgoZmlsZUNvdW50JCB8IGFzeW5jKSB8IGNhblVwbG9hZEZpbGU6IG1heEZpbGVDb3VudDooZGlzYWJsZSQgfCBhc3luYyk9PT10cnVlOihyZWFkb25seSQgfFxyXG4gICAgICAgICAgICBhc3luYyk9PT10cnVlKSB7XHJcbiAgICAgICAgICAgIDxmZC1maWxlLXVwbG9hZGVyXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZpbGUtbGluZWFyLXVwbG9hZFwiXHJcbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cclxuICAgICAgICAgICAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCInbGluZWFyXycgKyBpZFwiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0F0dGFjaEZpbGUnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtidXR0b25MYWJlbF09XCInQXR0YWNoRmlsZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2J1dHRvbkFyaWFMYWJlbF09XCInQXR0YWNoRmlsZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2FjY2VwdF09XCJ2YWxpZEV4dGVuc2lvblwiXHJcbiAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwibWF4RmlsZUNvdW50ID4gMSB8fCBTZXR0aW5nLklzTXVsdGlTZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkRmlsZXNDaGFuZ2VkKT1cIm9uRmlsZVNlbGVjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCIoY29udGVudERlbnNpdHkkIHwgYXN5bmMpISFcIlxyXG4gICAgICAgICAgICA+PC9mZC1maWxlLXVwbG9hZGVyPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbn1cclxuIl19
@@ -7,7 +7,8 @@ import * as i2 from "@angular/router";
7
7
  import * as i3 from "@fundamental-ngx/core";
8
8
  import * as i4 from "../fundamental-dynamic-form/fundamental-dynamic-form.component";
9
9
  import * as i5 from "../barsa-simple-form/barsa-simple-form.component";
10
- import * as i6 from "@angular/common";
10
+ import * as i6 from "../contentDensity.directive";
11
+ import * as i7 from "@angular/common";
11
12
  export class UiFormPanelComponent extends FormBaseComponent {
12
13
  constructor(_breadcrumbService, _portalService, _router, _el, _controlUiPipe, _formPanelService, _activatedRoute, _cdr, _contentDensityService) {
13
14
  super(_breadcrumbService, _portalService, _router, _el, _controlUiPipe, _formPanelService, _activatedRoute, _cdr);
@@ -86,7 +87,7 @@ export class UiFormPanelComponent extends FormBaseComponent {
86
87
  this.fullscreen = parameters?.FullscreenDefault === true && !this.isModal;
87
88
  }
88
89
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiFormPanelComponent, deps: [{ token: i1.BreadcrumbService }, { token: i1.PortalService }, { token: i2.Router }, { token: i0.ElementRef }, { token: i1.ControlUiPipe }, { token: i1.FormPanelService, self: true }, { token: i2.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i3.ContentDensityService }], target: i0.ɵɵFactoryTarget.Component }); }
89
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiFormPanelComponent, selector: "bsu-ui-form-panel", host: { properties: { "attr.typeDefName": "this._typeDefName", "attr.viewName": "this._viewName" } }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "@if (isSearchPanel || (isSimple$ | async) || isSubForm || isModal || isFormReport || parameters?.IsSimple) {\r\n<bsu-barsa-simple-form\r\n [cssStyle]=\"parameters?.CssStyles\"\r\n [canSend]=\"(canSend$ | async) === true\"\r\n [formVisibilityStatus]=\"formVisibilityStatus\"\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [hideClose]=\"(hideClose$ | async)!!\"\r\n [hideTitle]=\"(hideTitle$ | async)!!\"\r\n [hidePin]=\"(hidePin$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [isModal]=\"isModal\"\r\n [formContentMaxWidth]=\"formContentMaxWidth\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true | hideAcceptCancel: hideAcceptAndCancel\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [parameters]=\"parameters\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [workflowButtons]=\"(workflowButtons$ | async)!!\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"extendLayout94$ | async\"\r\n [layoutGridCol]=\"+(parameters?.LayoutGridCol || 12)\"\r\n [colLg]=\"+(parameters?.ColLg || 0)\"\r\n [colXl]=\"+(parameters?.ColXl || 0)\"\r\n [colMd]=\"+(parameters?.ColMd || 0)\"\r\n [hideFooter]=\"(hideFooter$ | async) === true\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [mo]=\"(mo$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [circleAvatar]=\"(circleAvatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n [landscape]=\"(landscape$ | async) === true\"\r\n [standalone]=\"(standalone$ | async) === true\"\r\n (close)=\"onClose()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-barsa-simple-form>\r\n} @else {\r\n<bsu-fundamental-dynamic-form\r\n [cssStyle]=\"parameters?.CssStyles\"\r\n [style.position]=\"(mask$ | async) ? 'relative' : null\"\r\n [workflowButtons]=\"(workflowButtons$ | async)!!\"\r\n [canSend]=\"(canSend$ | async) === true\"\r\n [formVisibilityStatus]=\"formVisibilityStatus\"\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [hideClose]=\"(hideClose$ | async)!!\"\r\n [hideTitle]=\"(hideTitle$ | async)!!\"\r\n [hidePin]=\"(hidePin$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true | hideAcceptCancel: hideAcceptAndCancel\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [formContentMaxWidth]=\"formContentMaxWidth\"\r\n [parameters]=\"parameters\"\r\n [fullscreen]=\"fullscreen\"\r\n [hideFooter]=\"(hideFooter$ | async) === true\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"extendLayout94$ | async\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [layoutGridCol]=\"+(parameters?.LayoutGridCol || 12)\"\r\n [colLg]=\"+(parameters?.ColLg || 0)\"\r\n [colXl]=\"+(parameters?.ColXl || 0)\"\r\n [colMd]=\"+(parameters?.ColMd || 0)\"\r\n [footerDesign]=\"footerDesign\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [mo]=\"(mo$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [circleAvatar]=\"(circleAvatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n [landscape]=\"(landscape$ | async) === true\"\r\n [standalone]=\"(standalone$ | async) === true\"\r\n (fullscreenRequest)=\"onFullscreen()\"\r\n (close)=\"onClose()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-fundamental-dynamic-form>\r\n}\r\n", styles: [":host{display:block;width:100%;min-height:100%}:host.fullscreen{position:fixed;top:0}.workflow-buttons{display:flex;margin-top:5px;padding:5px}\n"], dependencies: [{ kind: "directive", type: i1.DynamicStyleDirective, selector: "[cssStyle]", inputs: ["cssStyle"] }, { kind: "component", type: i4.FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "circleAvatar", "rtl", "hideFooter", "hideTitle", "hideClose", "hidePin", "fullscreen", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "landscape", "standalone", "modernTabs", "formVisibilityStatus", "layoutGridCol", "colLg", "colXl", "colMd", "footerDesign", "formContentMaxWidth", "workflowButtons"], outputs: ["toolbarClick", "workflowChoiceClick", "close", "fullscreenRequest"] }, { kind: "component", type: i5.BarsaSimpleFormComponent, selector: "bsu-barsa-simple-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "rtl", "isModal", "hideTitle", "hideClose", "hidePin", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "landscape", "standalone", "modernTabs", "workflowButtons", "layoutGridCol", "colLg", "colXl", "colMd", "formContentMaxWidth", "formVisibilityStatus"], outputs: ["toolbarClick", "workflowChoiceClick", "close"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TlbButtonsPipe, name: "tlbButtons" }, { kind: "pipe", type: i1.HideAcceptCancelButtonsPipe, name: "hideAcceptCancel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
90
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiFormPanelComponent, selector: "bsu-ui-form-panel", host: { properties: { "attr.typeDefName": "this._typeDefName", "attr.viewName": "this._viewName" } }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "@if (isSearchPanel || (isSimple$ | async) || isSubForm || isModal || isFormReport || parameters?.IsSimple) {\r\n<bsu-barsa-simple-form\r\n [cssStyle]=\"parameters?.CssStyles\"\r\n [canSend]=\"(canSend$ | async) === true\"\r\n [formVisibilityStatus]=\"formVisibilityStatus\"\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [hideClose]=\"(hideClose$ | async)!!\"\r\n [hideTitle]=\"(hideTitle$ | async)!!\"\r\n [hidePin]=\"(hidePin$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [isModal]=\"isModal\"\r\n [formContentMaxWidth]=\"formContentMaxWidth\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true | hideAcceptCancel: hideAcceptAndCancel\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [parameters]=\"parameters\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [workflowButtons]=\"(workflowButtons$ | async)!!\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"extendLayout94$ | async\"\r\n [layoutGridCol]=\"+(parameters?.LayoutGridCol || 12)\"\r\n [colLg]=\"+(parameters?.ColLg || 0)\"\r\n [colXl]=\"+(parameters?.ColXl || 0)\"\r\n [colMd]=\"+(parameters?.ColMd || 0)\"\r\n [hideFooter]=\"(hideFooter$ | async) === true\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [mo]=\"(mo$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [circleAvatar]=\"(circleAvatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n [landscape]=\"(landscape$ | async) === true\"\r\n [standalone]=\"(standalone$ | async) === true\"\r\n (close)=\"onClose()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-barsa-simple-form>\r\n} @else {\r\n<bsu-fundamental-dynamic-form\r\n [cssStyle]=\"parameters?.CssStyles\"\r\n [style.position]=\"(mask$ | async) ? 'relative' : null\"\r\n [workflowButtons]=\"(workflowButtons$ | async)!!\"\r\n [canSend]=\"(canSend$ | async) === true\"\r\n [formVisibilityStatus]=\"formVisibilityStatus\"\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [hideClose]=\"(hideClose$ | async)!!\"\r\n [hideTitle]=\"(hideTitle$ | async)!!\"\r\n [hidePin]=\"(hidePin$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true | hideAcceptCancel: hideAcceptAndCancel\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [formContentMaxWidth]=\"formContentMaxWidth\"\r\n [parameters]=\"parameters\"\r\n [fullscreen]=\"fullscreen\"\r\n [hideFooter]=\"(hideFooter$ | async) === true\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"extendLayout94$ | async\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [layoutGridCol]=\"+(parameters?.LayoutGridCol || 12)\"\r\n [colLg]=\"+(parameters?.ColLg || 0)\"\r\n [colXl]=\"+(parameters?.ColXl || 0)\"\r\n [colMd]=\"+(parameters?.ColMd || 0)\"\r\n [footerDesign]=\"footerDesign\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [mo]=\"(mo$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [circleAvatar]=\"(circleAvatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n [landscape]=\"(landscape$ | async) === true\"\r\n [standalone]=\"(standalone$ | async) === true\"\r\n (fullscreenRequest)=\"onFullscreen()\"\r\n (close)=\"onClose()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-fundamental-dynamic-form>\r\n}\r\n", styles: [":host{display:block;width:100%;min-height:100%}:host.fullscreen{position:fixed;top:0}.workflow-buttons{display:flex;margin-top:5px;padding:5px}\n"], dependencies: [{ kind: "directive", type: i1.DynamicStyleDirective, selector: "[cssStyle]", inputs: ["cssStyle"] }, { kind: "component", type: i4.FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "circleAvatar", "rtl", "hideFooter", "hideTitle", "hideClose", "hidePin", "fullscreen", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "landscape", "standalone", "modernTabs", "formVisibilityStatus", "layoutGridCol", "colLg", "colXl", "colMd", "footerDesign", "formContentMaxWidth", "workflowButtons"], outputs: ["toolbarClick", "workflowChoiceClick", "close", "fullscreenRequest"] }, { kind: "component", type: i5.BarsaSimpleFormComponent, selector: "bsu-barsa-simple-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "rtl", "isModal", "hideTitle", "hideClose", "hidePin", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "landscape", "standalone", "modernTabs", "workflowButtons", "layoutGridCol", "colLg", "colXl", "colMd", "formContentMaxWidth", "formVisibilityStatus"], outputs: ["toolbarClick", "workflowChoiceClick", "close"] }, { kind: "directive", type: i6.ContentDensityDirective, selector: "[contentDensity]" }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TlbButtonsPipe, name: "tlbButtons" }, { kind: "pipe", type: i1.HideAcceptCancelButtonsPipe, name: "hideAcceptCancel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
90
91
  }
91
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiFormPanelComponent, decorators: [{
92
93
  type: Component,
@@ -100,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
100
101
  type: HostBinding,
101
102
  args: ['attr.viewName']
102
103
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZm9ybS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1mb3JtLXBhbmVsL3VpLWZvcm0tcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZm9ybS1wYW5lbC91aS1mb3JtLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFdBQVcsRUFFWCxJQUFJLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFjLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEQsT0FBTyxFQUNILGlCQUFpQixFQUdqQixnQkFBZ0IsRUFHaEIsNkJBQTZCLEVBQzdCLGVBQWUsRUFDZixRQUFRLEVBSVgsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7QUFVOUIsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGlCQUFpQjtJQWN2RCxZQUNjLGtCQUFxQyxFQUNyQyxjQUE2QixFQUM3QixPQUFlLEVBQ2YsR0FBZSxFQUNmLGNBQTZCLEVBQ3JCLGlCQUFtQyxFQUMzQyxlQUErQixFQUMvQixJQUF1QixFQUN2QixzQkFBNkM7UUFFdkQsS0FBSyxDQUNELGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsT0FBTyxFQUNQLEdBQUcsRUFDSCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixJQUFJLENBQ1AsQ0FBQztRQW5CUSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUMzQyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQXRCMUIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDckIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQWlDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxZQUFZLENBQUM7UUFDcEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQyxjQUFjLENBQUM7UUFDN0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDO1FBQzlDLElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQztRQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDO1FBRWhELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFVBQVUsRUFBRSxtQkFBbUIsQ0FBQztRQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsRUFBRSxVQUFVLENBQUM7UUFDekMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDO1FBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxFQUFFLG9CQUFvQixDQUFDO1FBQ3JELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDO1FBQ2hFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDOUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFDM0IsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDakIsSUFBSSxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztnQkFDckMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtvQkFDN0QsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2pFLElBQUksV0FBVyxFQUFFLENBQUM7d0JBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDM0QsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7WUFDRCxJQUFJLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFDM0MsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3pFLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7b0JBQ3ZDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsa0JBQWtCLEVBQUU7aUJBQ3BELENBQUMsQ0FBQztZQUNQLENBQUM7WUFDRCxJQUFJLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFDekMsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzdELFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7b0JBQ3JDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7aUJBQ2xELENBQUMsQ0FBQztZQUNQLENBQUM7WUFDRCxJQUFJLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFDN0MsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3JFLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUU7b0JBQ3pDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsb0JBQW9CLEVBQUU7aUJBQ3RELENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDdEMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFDM0IsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixJQUFJLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO2dCQUNyQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUM3RCxNQUFNLFVBQVUsR0FBRyw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMxRSxJQUFJLFVBQVUsRUFBRSxDQUFDO3dCQUNiLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxtQkFBbUIsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7NEJBQ2hFLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDMUUsQ0FBQzs2QkFBTSxDQUFDOzRCQUNKLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7d0JBQzFELENBQUM7b0JBQ0wsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBRUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLEVBQUUsaUJBQWlCLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUM5RSxDQUFDOytHQXhHUSxvQkFBb0I7bUdBQXBCLG9CQUFvQixrSkFIbEIsQ0FBQyxnQkFBZ0IsQ0FBQyxpRENqQ2pDLDJwSkFnR0E7OzRGRDVEYSxvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0ksbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUNqQixLQUFLOzswQkFzQlosSUFBSTswSUFuQndCLFlBQVk7c0JBQTVDLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUNELFNBQVM7c0JBQXRDLFdBQVc7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgT25Jbml0LFxyXG4gICAgU2VsZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmFyRGVzaWduVHlwZSwgQ29udGVudERlbnNpdHksIENvbnRlbnREZW5zaXR5U2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgRm9ybUJhc2VDb21wb25lbnQsXHJcbiAgICBQb3J0YWxTZXJ2aWNlLFxyXG4gICAgQnJlYWRDcnVtYkluZm8sXHJcbiAgICBGb3JtUGFuZWxTZXJ2aWNlLFxyXG4gICAgQnJlYWRjcnVtYlNlcnZpY2UsXHJcbiAgICBDb250cm9sVWlQaXBlLFxyXG4gICAgRmluZExheW91dFNldHRpbmdGcm9tTGF5b3V0OTQsXHJcbiAgICBGaW5kVG9vbGJhckl0ZW0sXHJcbiAgICBCYXJzYUFwaSxcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBFanJheU9sZ28sXHJcbiAgICBNb0ZvclJlcG9ydE1vZGVsXHJcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1mb3JtLXBhbmVsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1mb3JtLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLWZvcm0tcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbRm9ybVBhbmVsU2VydmljZV0sXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlGb3JtUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBGb3JtQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudHlwZURlZk5hbWUnKSBfdHlwZURlZk5hbWUgPSAnJztcclxuICAgIEBIb3N0QmluZGluZygnYXR0ci52aWV3TmFtZScpIF92aWV3TmFtZSA9ICcnO1xyXG5cclxuICAgIGJyZWFkQ3J1bWJzJDogT2JzZXJ2YWJsZTxCcmVhZENydW1iSW5mb1tdPjtcclxuICAgIGNvbnRlbnREZW5zaXR5JDogT2JzZXJ2YWJsZTxDb250ZW50RGVuc2l0eT47XHJcbiAgICBjYW5TZW5kJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIGhpZGVGb290ZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgZXh0ZW5kTGF5b3V0OTQkOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgICBwYXJhbWV0ZXJzOiBGb3JtUGFuZWxTZXR0aW5nO1xyXG4gICAgZm9ybUNvbnRlbnRNYXhXaWR0aDogbnVtYmVyO1xyXG4gICAgZm9vdGVyRGVzaWduOiBCYXJEZXNpZ25UeXBlO1xyXG4gICAgaGlkZUZvb3RlcjogYm9vbGVhbjtcclxuICAgIGhpZGVBY2NlcHRBbmRDYW5jZWw6IGJvb2xlYW47XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgX2JyZWFkY3J1bWJTZXJ2aWNlOiBCcmVhZGNydW1iU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByb3RlY3RlZCBfY29udHJvbFVpUGlwZTogQ29udHJvbFVpUGlwZSxcclxuICAgICAgICBAU2VsZigpIHByb3RlY3RlZCBfZm9ybVBhbmVsU2VydmljZTogRm9ybVBhbmVsU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9jb250ZW50RGVuc2l0eVNlcnZpY2U6IENvbnRlbnREZW5zaXR5U2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoXHJcbiAgICAgICAgICAgIF9icmVhZGNydW1iU2VydmljZSxcclxuICAgICAgICAgICAgX3BvcnRhbFNlcnZpY2UsXHJcbiAgICAgICAgICAgIF9yb3V0ZXIsXHJcbiAgICAgICAgICAgIF9lbCxcclxuICAgICAgICAgICAgX2NvbnRyb2xVaVBpcGUsXHJcbiAgICAgICAgICAgIF9mb3JtUGFuZWxTZXJ2aWNlLFxyXG4gICAgICAgICAgICBfYWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgICAgIF9jZHJcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuYnJlYWRDcnVtYnMkID0gX2JyZWFkY3J1bWJTZXJ2aWNlLmJyZWFkY3J1bWJzJDtcclxuICAgICAgICB0aGlzLmNvbnRlbnREZW5zaXR5JCA9IF9jb250ZW50RGVuc2l0eVNlcnZpY2UuY29udGVudERlbnNpdHk7XHJcbiAgICAgICAgdGhpcy5kZXZpY2VTaXplJCA9IF9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkO1xyXG4gICAgICAgIHRoaXMuZGlyVmFsdWUkID0gX3BvcnRhbFNlcnZpY2UuZGlyVmFsdWUkO1xyXG4gICAgICAgIHRoaXMucnRsJCA9IF9wb3J0YWxTZXJ2aWNlLnJ0bCQ7XHJcbiAgICAgICAgdGhpcy5jYW5TZW5kJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuY2FuU2VuZCQ7XHJcblxyXG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UubW8kLnN1YnNjcmliZSgoYykgPT4gKHRoaXMuX3R5cGVEZWZOYW1lID0gYz8uJFR5cGVEZWZOYW1lID8/ICcnKSk7XHJcbiAgICAgICAgdGhpcy5fZm9ybVBhbmVsU2VydmljZS52aWV3JC5zdWJzY3JpYmUoKGMpID0+ICh0aGlzLl92aWV3TmFtZSA9IGM/LlR5cGVWaWV3TmFtZSA/PyAnJykpO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICBjb25zdCBwYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzO1xyXG4gICAgICAgIHRoaXMuZm9ybUNvbnRlbnRNYXhXaWR0aCA9IHBhcmFtZXRlcnM/LkZvcm1Db250ZW50TWF4V2lkdGg7XHJcbiAgICAgICAgdGhpcy5oaWRlRm9vdGVyID0gcGFyYW1ldGVycz8uSGlkZUZvb3RlcjtcclxuICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmhpZGVGb290ZXIodGhpcy5oaWRlRm9vdGVyKTtcclxuICAgICAgICB0aGlzLmhpZGVGb290ZXIkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5oaWRlRm9vdGVyJDtcclxuICAgICAgICB0aGlzLmZvb3RlckRlc2lnbiA9IHBhcmFtZXRlcnM/LkZvb3RlckRlc2luZyRDYXB0aW9uO1xyXG4gICAgICAgIHRoaXMuaGlkZUFjY2VwdEFuZENhbmNlbCA9IHRoaXMucGFyYW1ldGVycz8uSGlkZUFjY2VwdEFuZENhbmNlbDtcclxuICAgICAgICB0aGlzLmV4dGVuZFRvb2xiYXJJdGVtcyQgPSB0aGlzLnRvb2xiYXJJdGVtcyQucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICB0YXAoKHRvb2xiYXJJdGVtcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtZXRlcnM/LkZvcm1MYXlvdXRJdGVtc1NldHRpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzLkZvcm1MYXlvdXRJdGVtc1NldHRpbmcuTW9EYXRhTGlzdC5mb3JFYWNoKChzZXR0aW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvb2xiYXJJdGVtID0gRmluZFRvb2xiYXJJdGVtKHRvb2xiYXJJdGVtcywgc2V0dGluZy5UaXRsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0b29sYmFySXRlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLk1lcmdlci5GYXN0TWVyZ2UodG9vbGJhckl0ZW0sIHNldHRpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocGFyYW1ldGVycz8uU2F2ZUJ1dHRvbkN1c3RvbVVpPy5TZWxlY3Rvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNhdmVJdGVtID0gRmluZFRvb2xiYXJJdGVtKHRvb2xiYXJJdGVtcywgJ1NhdmVBbmRDbG9zZScsICdpdGVtSWQnKTtcclxuICAgICAgICAgICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uTWVyZ2VyLkZhc3RNZXJnZShzYXZlSXRlbSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBEYXRhOiB7IEN1c3RvbVVpOiBwYXJhbWV0ZXJzLlNhdmVCdXR0b25DdXN0b21VaSB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocGFyYW1ldGVycz8uT2tCdXR0b25DdXN0b21VaT8uU2VsZWN0b3IpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBva0l0ZW0gPSBGaW5kVG9vbGJhckl0ZW0odG9vbGJhckl0ZW1zLCAnT2snLCAnaXRlbUlkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLk1lcmdlci5GYXN0TWVyZ2Uob2tJdGVtLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERhdGE6IHsgQ3VzdG9tVWk6IHBhcmFtZXRlcnMuT2tCdXR0b25DdXN0b21VaSB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocGFyYW1ldGVycz8uQ2FuY2VsQnV0dG9uQ3VzdG9tVWk/LlNlbGVjdG9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FuY2VsSXRlbSA9IEZpbmRUb29sYmFySXRlbSh0b29sYmFySXRlbXMsICdDYW5jZWwnLCAnaXRlbUlkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLk1lcmdlci5GYXN0TWVyZ2UoY2FuY2VsSXRlbSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBEYXRhOiB7IEN1c3RvbVVpOiBwYXJhbWV0ZXJzLkNhbmNlbEJ1dHRvbkN1c3RvbVVpIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZXh0ZW5kTGF5b3V0OTQkID0gdGhpcy5sYXlvdXQ5NCQucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICB0YXAoKGxheW91dDk0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocGFyYW1ldGVycz8uRm9ybUxheW91dEl0ZW1zU2V0dGluZykge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMuRm9ybUxheW91dEl0ZW1zU2V0dGluZy5Nb0RhdGFMaXN0LmZvckVhY2goKHNldHRpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGF5b3V0SXRlbSA9IEZpbmRMYXlvdXRTZXR0aW5nRnJvbUxheW91dDk0KGxheW91dDk0LCBzZXR0aW5nLlRpdGxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxheW91dEl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXlvdXRJdGVtLlR5cGUgPT09ICdMYXlvdXRDb250cm9sSXRlbScgJiYgbGF5b3V0SXRlbS5GaWVsZFVpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLk1lcmdlci5GYXN0TWVyZ2UobGF5b3V0SXRlbS5GaWVsZFVpLlNldHRpbmcsIHNldHRpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uTWVyZ2VyLkZhc3RNZXJnZShsYXlvdXRJdGVtLCBzZXR0aW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuZnVsbHNjcmVlbiA9IHBhcmFtZXRlcnM/LkZ1bGxzY3JlZW5EZWZhdWx0ID09PSB0cnVlICYmICF0aGlzLmlzTW9kYWw7XHJcbiAgICB9XHJcbn1cclxuaW50ZXJmYWNlIEZvcm1QYW5lbFNldHRpbmcgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgIExheW91dENvbXBvbmVudDogRWpyYXlPbGdvO1xyXG4gICAgSGVhZGVyQ29tcG9uZW50OiBFanJheU9sZ287XHJcbiAgICBGb290ZXJDb21wb25lbnQ6IEVqcmF5T2xnbztcclxuICAgIFNhdmVCdXR0b25DdXN0b21VaTogRWpyYXlPbGdvO1xyXG4gICAgT2tCdXR0b25DdXN0b21VaTogRWpyYXlPbGdvO1xyXG4gICAgQ2FuY2VsQnV0dG9uQ3VzdG9tVWk6IEVqcmF5T2xnbztcclxuICAgIEZvcm1MYXlvdXRJdGVtc1NldHRpbmc6IE1vRm9yUmVwb3J0TW9kZWw7XHJcbiAgICBGdWxsc2NyZWVuRGVmYXVsdDogYm9vbGVhbjtcclxuICAgIENhbkZ1bGxzY3JlZW46IGJvb2xlYW47XHJcbiAgICBJc1NpbXBsZTogYm9vbGVhbjtcclxuICAgIElzTW9kYWw6IGJvb2xlYW47XHJcbiAgICBDc3NTdHlsZXM6IHN0cmluZztcclxuICAgIENhbk1vdmU6IGJvb2xlYW47XHJcbiAgICBDYW5SZXNpemU6IGJvb2xlYW47XHJcbiAgICBDb250ZW50SXNQYWdlOiBib29sZWFuO1xyXG4gICAgTGF5b3V0R3JpZENvbDogbnVtYmVyO1xyXG4gICAgQ29sTGc6IG51bWJlcjtcclxuICAgIENvbFhsOiBudW1iZXI7XHJcbiAgICBDb2xNZDogbnVtYmVyO1xyXG59XHJcbiIsIkBpZiAoaXNTZWFyY2hQYW5lbCB8fCAoaXNTaW1wbGUkIHwgYXN5bmMpIHx8IGlzU3ViRm9ybSB8fCBpc01vZGFsIHx8IGlzRm9ybVJlcG9ydCB8fCBwYXJhbWV0ZXJzPy5Jc1NpbXBsZSkge1xyXG48YnN1LWJhcnNhLXNpbXBsZS1mb3JtXHJcbiAgICBbY3NzU3R5bGVdPVwicGFyYW1ldGVycz8uQ3NzU3R5bGVzXCJcclxuICAgIFtjYW5TZW5kXT1cIihjYW5TZW5kJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICBbZm9ybVZpc2liaWxpdHlTdGF0dXNdPVwiZm9ybVZpc2liaWxpdHlTdGF0dXNcIlxyXG4gICAgW3JlbW92ZUNvbnRlbnRQYWRkaW5nXT1cIihoZWFkZXJSZW1vdmVDb250ZW50UGFkZGluZyQgfCBhc3luYykhIVwiXHJcbiAgICBbYnJlYWRDcnVtYnNdPVwiYnJlYWRDcnVtYnMkIHwgYXN5bmNcIlxyXG4gICAgW2Rlc2NyaXB0aW9uXT1cIihoZWFkZXJEZXNjcmlwdGlvbiQgfCBhc3luYykhIVwiXHJcbiAgICBbaGlkZUNsb3NlXT1cIihoaWRlQ2xvc2UkIHwgYXN5bmMpISFcIlxyXG4gICAgW2hpZGVUaXRsZV09XCIoaGlkZVRpdGxlJCB8IGFzeW5jKSEhXCJcclxuICAgIFtoaWRlUGluXT1cIihoaWRlUGluJCB8IGFzeW5jKSEhXCJcclxuICAgIFt0aXRsZV09XCIodGl0bGUkIHwgYXN5bmMpISFcIlxyXG4gICAgW2lzTW9kYWxdPVwiaXNNb2RhbFwiXHJcbiAgICBbZm9ybUNvbnRlbnRNYXhXaWR0aF09XCJmb3JtQ29udGVudE1heFdpZHRoXCJcclxuICAgIFtzdWJ0aXRsZV09XCIoaGVhZGVyU3VidGl0bGUkIHwgYXN5bmMpISFcIlxyXG4gICAgW3Rvb2xiYXJJdGVtc109XCJleHRlbmRUb29sYmFySXRlbXMkIHwgYXN5bmMgfCB0bGJCdXR0b25zOiAnaW5Gb290ZXInOmZhbHNlXCJcclxuICAgIFtsYXlvdXRBY3Rpb25zXT1cImV4dGVuZFRvb2xiYXJJdGVtcyQgfCBhc3luYyB8IHRsYkJ1dHRvbnM6ICdpbkZvb3Rlcic6dHJ1ZSB8IGhpZGVBY2NlcHRDYW5jZWw6IGhpZGVBY2NlcHRBbmRDYW5jZWxcIlxyXG4gICAgW3Rvb2xiYXJWaXNpYmxlXT1cIih0b29sYmFyVmlzaWJsZSQgfCBhc3luYykhIVwiXHJcbiAgICBbZmFjZXRMaXN0XT1cIihoZWFkZXJMYXlvdXQkIHwgYXN5bmMpPy5GYWNldExpc3QyXCJcclxuICAgIFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnNcIlxyXG4gICAgW3dvcmtmbG93UGFuZWxVaV09XCJ3b3JrZmxvd1BhbmVsVWkkIHwgYXN5bmNcIlxyXG4gICAgW3dvcmtmbG93QnV0dG9uc109XCIod29ya2Zsb3dCdXR0b25zJCB8IGFzeW5jKSEhXCJcclxuICAgIFtpc01vYmlsZV09XCJpc01vYmlsZVwiXHJcbiAgICBbbGF5b3V0OTRdPVwiZXh0ZW5kTGF5b3V0OTQkIHwgYXN5bmNcIlxyXG4gICAgW2xheW91dEdyaWRDb2xdPVwiKyhwYXJhbWV0ZXJzPy5MYXlvdXRHcmlkQ29sIHx8IDEyKVwiXHJcbiAgICBbY29sTGddPVwiKyhwYXJhbWV0ZXJzPy5Db2xMZyB8fCAwKVwiXHJcbiAgICBbY29sWGxdPVwiKyhwYXJhbWV0ZXJzPy5Db2xYbCB8fCAwKVwiXHJcbiAgICBbY29sTWRdPVwiKyhwYXJhbWV0ZXJzPy5Db2xNZCB8fCAwKVwiXHJcbiAgICBbaGlkZUZvb3Rlcl09XCIoaGlkZUZvb3RlciQgfCBhc3luYykgPT09IHRydWVcIlxyXG4gICAgW3J0bF09XCIocnRsJCB8IGFzeW5jKSEhXCJcclxuICAgIFttYXNrXT1cIihtYXNrJCB8IGFzeW5jKSEhXCJcclxuICAgIFttb109XCIobW8kIHwgYXN5bmMpISFcIlxyXG4gICAgW2RpclZhbHVlXT1cIihkaXJWYWx1ZSQgfCBhc3luYykhIVwiXHJcbiAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXHJcbiAgICBbY29udGVudERlbnNpdHldPVwiKGNvbnRlbnREZW5zaXR5JCB8IGFzeW5jKSEhXCJcclxuICAgIFttb2Rlcm5UYWJzXT1cIihtb2Rlcm5UYWJzJCB8IGFzeW5jKSEhXCJcclxuICAgIFthdmF0YXJdPVwiKGF2YXRhciQgfCBhc3luYykhIVwiXHJcbiAgICBbY2lyY2xlQXZhdGFyXT1cIihjaXJjbGVBdmF0YXIkIHwgYXN5bmMpISFcIlxyXG4gICAgW2ZpZWxkRGljdF09XCIoZmllbGREaWN0JCB8IGFzeW5jKSEhXCJcclxuICAgIFtsYW5kc2NhcGVdPVwiKGxhbmRzY2FwZSQgfCBhc3luYykgPT09IHRydWVcIlxyXG4gICAgW3N0YW5kYWxvbmVdPVwiKHN0YW5kYWxvbmUkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgIChjbG9zZSk9XCJvbkNsb3NlKClcIlxyXG4gICAgKHRvb2xiYXJDbGljayk9XCJvblRvb2xiYXJDbGljaygkZXZlbnQpXCJcclxuICAgIFtjb250ZW50SXNQYWdlXT1cInBhcmFtZXRlcnM/LkNvbnRlbnRJc1BhZ2UgPT09IHRydWVcIlxyXG4gICAgKHdvcmtmbG93Q2hvaWNlQ2xpY2spPVwib25Xb3JrZmxvd0Nob2ljZUNsaWNrKCRldmVudClcIlxyXG4+PC9ic3UtYmFyc2Etc2ltcGxlLWZvcm0+XHJcbn0gQGVsc2Uge1xyXG48YnN1LWZ1bmRhbWVudGFsLWR5bmFtaWMtZm9ybVxyXG4gICAgW2Nzc1N0eWxlXT1cInBhcmFtZXRlcnM/LkNzc1N0eWxlc1wiXHJcbiAgICBbc3R5bGUucG9zaXRpb25dPVwiKG1hc2skIHwgYXN5bmMpID8gJ3JlbGF0aXZlJyA6IG51bGxcIlxyXG4gICAgW3dvcmtmbG93QnV0dG9uc109XCIod29ya2Zsb3dCdXR0b25zJCB8IGFzeW5jKSEhXCJcclxuICAgIFtjYW5TZW5kXT1cIihjYW5TZW5kJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICBbZm9ybVZpc2liaWxpdHlTdGF0dXNdPVwiZm9ybVZpc2liaWxpdHlTdGF0dXNcIlxyXG4gICAgW3JlbW92ZUNvbnRlbnRQYWRkaW5nXT1cIihoZWFkZXJSZW1vdmVDb250ZW50UGFkZGluZyQgfCBhc3luYykhIVwiXHJcbiAgICBbYnJlYWRDcnVtYnNdPVwiYnJlYWRDcnVtYnMkIHwgYXN5bmNcIlxyXG4gICAgW2Rlc2NyaXB0aW9uXT1cIihoZWFkZXJEZXNjcmlwdGlvbiQgfCBhc3luYykhIVwiXHJcbiAgICBbaGlkZUNsb3NlXT1cIihoaWRlQ2xvc2UkIHwgYXN5bmMpISFcIlxyXG4gICAgW2hpZGVUaXRsZV09XCIoaGlkZVRpdGxlJCB8IGFzeW5jKSEhXCJcclxuICAgIFtoaWRlUGluXT1cIihoaWRlUGluJCB8IGFzeW5jKSEhXCJcclxuICAgIFt0aXRsZV09XCIodGl0bGUkIHwgYXN5bmMpISFcIlxyXG4gICAgW3N1YnRpdGxlXT1cIihoZWFkZXJTdWJ0aXRsZSQgfCBhc3luYykhIVwiXHJcbiAgICBbdG9vbGJhckl0ZW1zXT1cImV4dGVuZFRvb2xiYXJJdGVtcyQgfCBhc3luYyB8IHRsYkJ1dHRvbnM6ICdpbkZvb3Rlcic6ZmFsc2VcIlxyXG4gICAgW2xheW91dEFjdGlvbnNdPVwiZXh0ZW5kVG9vbGJhckl0ZW1zJCB8IGFzeW5jIHwgdGxiQnV0dG9uczogJ2luRm9vdGVyJzp0cnVlIHwgaGlkZUFjY2VwdENhbmNlbDogaGlkZUFjY2VwdEFuZENhbmNlbFwiXHJcbiAgICBbdG9vbGJhclZpc2libGVdPVwiKHRvb2xiYXJWaXNpYmxlJCB8IGFzeW5jKSEhXCJcclxuICAgIFtmYWNldExpc3RdPVwiKGhlYWRlckxheW91dCQgfCBhc3luYyk/LkZhY2V0TGlzdDJcIlxyXG4gICAgW2Zvcm1Db250ZW50TWF4V2lkdGhdPVwiZm9ybUNvbnRlbnRNYXhXaWR0aFwiXHJcbiAgICBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzXCJcclxuICAgIFtmdWxsc2NyZWVuXT1cImZ1bGxzY3JlZW5cIlxyXG4gICAgW2hpZGVGb290ZXJdPVwiKGhpZGVGb290ZXIkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgIFt3b3JrZmxvd1BhbmVsVWldPVwid29ya2Zsb3dQYW5lbFVpJCB8IGFzeW5jXCJcclxuICAgIFtpc01vYmlsZV09XCJpc01vYmlsZVwiXHJcbiAgICBbbGF5b3V0OTRdPVwiZXh0ZW5kTGF5b3V0OTQkIHwgYXN5bmNcIlxyXG4gICAgW3J0bF09XCIocnRsJCB8IGFzeW5jKSEhXCJcclxuICAgIFtsYXlvdXRHcmlkQ29sXT1cIisocGFyYW1ldGVycz8uTGF5b3V0R3JpZENvbCB8fCAxMilcIlxyXG4gICAgW2NvbExnXT1cIisocGFyYW1ldGVycz8uQ29sTGcgfHwgMClcIlxyXG4gICAgW2NvbFhsXT1cIisocGFyYW1ldGVycz8uQ29sWGwgfHwgMClcIlxyXG4gICAgW2NvbE1kXT1cIisocGFyYW1ldGVycz8uQ29sTWQgfHwgMClcIlxyXG4gICAgW2Zvb3RlckRlc2lnbl09XCJmb290ZXJEZXNpZ25cIlxyXG4gICAgW21hc2tdPVwiKG1hc2skIHwgYXN5bmMpISFcIlxyXG4gICAgW21vXT1cIihtbyQgfCBhc3luYykhIVwiXHJcbiAgICBbZGlyVmFsdWVdPVwiKGRpclZhbHVlJCB8IGFzeW5jKSEhXCJcclxuICAgIFtkZXZpY2VTaXplXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSEhXCJcclxuICAgIFtjb250ZW50RGVuc2l0eV09XCIoY29udGVudERlbnNpdHkkIHwgYXN5bmMpISFcIlxyXG4gICAgW21vZGVyblRhYnNdPVwiKG1vZGVyblRhYnMkIHwgYXN5bmMpISFcIlxyXG4gICAgW2F2YXRhcl09XCIoYXZhdGFyJCB8IGFzeW5jKSEhXCJcclxuICAgIFtjaXJjbGVBdmF0YXJdPVwiKGNpcmNsZUF2YXRhciQgfCBhc3luYykhIVwiXHJcbiAgICBbZmllbGREaWN0XT1cIihmaWVsZERpY3QkIHwgYXN5bmMpISFcIlxyXG4gICAgW2xhbmRzY2FwZV09XCIobGFuZHNjYXBlJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICBbc3RhbmRhbG9uZV09XCIoc3RhbmRhbG9uZSQgfCBhc3luYykgPT09IHRydWVcIlxyXG4gICAgKGZ1bGxzY3JlZW5SZXF1ZXN0KT1cIm9uRnVsbHNjcmVlbigpXCJcclxuICAgIChjbG9zZSk9XCJvbkNsb3NlKClcIlxyXG4gICAgKHRvb2xiYXJDbGljayk9XCJvblRvb2xiYXJDbGljaygkZXZlbnQpXCJcclxuICAgIFtjb250ZW50SXNQYWdlXT1cInBhcmFtZXRlcnM/LkNvbnRlbnRJc1BhZ2UgPT09IHRydWVcIlxyXG4gICAgKHdvcmtmbG93Q2hvaWNlQ2xpY2spPVwib25Xb3JrZmxvd0Nob2ljZUNsaWNrKCRldmVudClcIlxyXG4+PC9ic3UtZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtPlxyXG59XHJcbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZm9ybS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1mb3JtLXBhbmVsL3VpLWZvcm0tcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZm9ybS1wYW5lbC91aS1mb3JtLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFdBQVcsRUFFWCxJQUFJLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFjLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEQsT0FBTyxFQUNILGlCQUFpQixFQUdqQixnQkFBZ0IsRUFHaEIsNkJBQTZCLEVBQzdCLGVBQWUsRUFDZixRQUFRLEVBSVgsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBVTlCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxpQkFBaUI7SUFjdkQsWUFDYyxrQkFBcUMsRUFDckMsY0FBNkIsRUFDN0IsT0FBZSxFQUNmLEdBQWUsRUFDZixjQUE2QixFQUNyQixpQkFBbUMsRUFDM0MsZUFBK0IsRUFDL0IsSUFBdUIsRUFDdkIsc0JBQTZDO1FBRXZELEtBQUssQ0FDRCxrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLE9BQU8sRUFDUCxHQUFHLEVBQ0gsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsSUFBSSxDQUNQLENBQUM7UUFuQlEsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQ3JCLHNC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YixJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDOzRCQUNoRSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7d0JBQzFFLENBQUM7NkJBQU0sQ0FBQzs0QkFDSixRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO3dCQUMxRCxDQUFDO29CQUNMLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxFQUFFLGlCQUFpQixLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDOUUsQ0FBQzsrR0F4R1Esb0JBQW9CO21HQUFwQixvQkFBb0Isa0pBSGxCLENBQUMsZ0JBQWdCLENBQUMsaURDakNqQywycEpBZ0dBOzs0RkQ1RGEsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNJLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsZ0JBQWdCLENBQUMsY0FDakIsS0FBSzs7MEJBc0JaLElBQUk7MElBbkJ3QixZQUFZO3NCQUE1QyxXQUFXO3VCQUFDLGtCQUFrQjtnQkFDRCxTQUFTO3NCQUF0QyxXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIE9uSW5pdCxcclxuICAgIFNlbGZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJhckRlc2lnblR5cGUsIENvbnRlbnREZW5zaXR5LCBDb250ZW50RGVuc2l0eVNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEZvcm1CYXNlQ29tcG9uZW50LFxyXG4gICAgUG9ydGFsU2VydmljZSxcclxuICAgIEJyZWFkQ3J1bWJJbmZvLFxyXG4gICAgRm9ybVBhbmVsU2VydmljZSxcclxuICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxyXG4gICAgQ29udHJvbFVpUGlwZSxcclxuICAgIEZpbmRMYXlvdXRTZXR0aW5nRnJvbUxheW91dDk0LFxyXG4gICAgRmluZFRvb2xiYXJJdGVtLFxyXG4gICAgQmFyc2FBcGksXHJcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxyXG4gICAgRWpyYXlPbGdvLFxyXG4gICAgTW9Gb3JSZXBvcnRNb2RlbFxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktZm9ybS1wYW5lbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktZm9ybS1wYW5lbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS1mb3JtLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpRm9ybVBhbmVsQ29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnR5cGVEZWZOYW1lJykgX3R5cGVEZWZOYW1lID0gJyc7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudmlld05hbWUnKSBfdmlld05hbWUgPSAnJztcclxuXHJcbiAgICBicmVhZENydW1icyQ6IE9ic2VydmFibGU8QnJlYWRDcnVtYkluZm9bXT47XHJcbiAgICBjb250ZW50RGVuc2l0eSQ6IE9ic2VydmFibGU8Q29udGVudERlbnNpdHk+O1xyXG4gICAgY2FuU2VuZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBoaWRlRm9vdGVyJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIGV4dGVuZExheW91dDk0JDogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gICAgcGFyYW1ldGVyczogRm9ybVBhbmVsU2V0dGluZztcclxuICAgIGZvcm1Db250ZW50TWF4V2lkdGg6IG51bWJlcjtcclxuICAgIGZvb3RlckRlc2lnbjogQmFyRGVzaWduVHlwZTtcclxuICAgIGhpZGVGb290ZXI6IGJvb2xlYW47XHJcbiAgICBoaWRlQWNjZXB0QW5kQ2FuY2VsOiBib29sZWFuO1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIF9icmVhZGNydW1iU2VydmljZTogQnJlYWRjcnVtYlNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgX2NvbnRyb2xVaVBpcGU6IENvbnRyb2xVaVBpcGUsXHJcbiAgICAgICAgQFNlbGYoKSBwcm90ZWN0ZWQgX2Zvcm1QYW5lbFNlcnZpY2U6IEZvcm1QYW5lbFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9hY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByb3RlY3RlZCBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKFxyXG4gICAgICAgICAgICBfYnJlYWRjcnVtYlNlcnZpY2UsXHJcbiAgICAgICAgICAgIF9wb3J0YWxTZXJ2aWNlLFxyXG4gICAgICAgICAgICBfcm91dGVyLFxyXG4gICAgICAgICAgICBfZWwsXHJcbiAgICAgICAgICAgIF9jb250cm9sVWlQaXBlLFxyXG4gICAgICAgICAgICBfZm9ybVBhbmVsU2VydmljZSxcclxuICAgICAgICAgICAgX2FjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgICAgICBfY2RyXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmJyZWFkQ3J1bWJzJCA9IF9icmVhZGNydW1iU2VydmljZS5icmVhZGNydW1icyQ7XHJcbiAgICAgICAgdGhpcy5jb250ZW50RGVuc2l0eSQgPSBfY29udGVudERlbnNpdHlTZXJ2aWNlLmNvbnRlbnREZW5zaXR5O1xyXG4gICAgICAgIHRoaXMuZGV2aWNlU2l6ZSQgPSBfcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJDtcclxuICAgICAgICB0aGlzLmRpclZhbHVlJCA9IF9wb3J0YWxTZXJ2aWNlLmRpclZhbHVlJDtcclxuICAgICAgICB0aGlzLnJ0bCQgPSBfcG9ydGFsU2VydmljZS5ydGwkO1xyXG4gICAgICAgIHRoaXMuY2FuU2VuZCQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmNhblNlbmQkO1xyXG5cclxuICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLm1vJC5zdWJzY3JpYmUoKGMpID0+ICh0aGlzLl90eXBlRGVmTmFtZSA9IGM/LiRUeXBlRGVmTmFtZSA/PyAnJykpO1xyXG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UudmlldyQuc3Vic2NyaWJlKChjKSA9PiAodGhpcy5fdmlld05hbWUgPSBjPy5UeXBlVmlld05hbWUgPz8gJycpKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHRoaXMucGFyYW1ldGVycztcclxuICAgICAgICB0aGlzLmZvcm1Db250ZW50TWF4V2lkdGggPSBwYXJhbWV0ZXJzPy5Gb3JtQ29udGVudE1heFdpZHRoO1xyXG4gICAgICAgIHRoaXMuaGlkZUZvb3RlciA9IHBhcmFtZXRlcnM/LkhpZGVGb290ZXI7XHJcbiAgICAgICAgdGhpcy5fZm9ybVBhbmVsU2VydmljZS5oaWRlRm9vdGVyKHRoaXMuaGlkZUZvb3Rlcik7XHJcbiAgICAgICAgdGhpcy5oaWRlRm9vdGVyJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuaGlkZUZvb3RlciQ7XHJcbiAgICAgICAgdGhpcy5mb290ZXJEZXNpZ24gPSBwYXJhbWV0ZXJzPy5Gb290ZXJEZXNpbmckQ2FwdGlvbjtcclxuICAgICAgICB0aGlzLmhpZGVBY2NlcHRBbmRDYW5jZWwgPSB0aGlzLnBhcmFtZXRlcnM/LkhpZGVBY2NlcHRBbmRDYW5jZWw7XHJcbiAgICAgICAgdGhpcy5leHRlbmRUb29sYmFySXRlbXMkID0gdGhpcy50b29sYmFySXRlbXMkLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgdGFwKCh0b29sYmFySXRlbXMpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzPy5Gb3JtTGF5b3V0SXRlbXNTZXR0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycy5Gb3JtTGF5b3V0SXRlbXNTZXR0aW5nLk1vRGF0YUxpc3QuZm9yRWFjaCgoc2V0dGluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0b29sYmFySXRlbSA9IEZpbmRUb29sYmFySXRlbSh0b29sYmFySXRlbXMsIHNldHRpbmcuVGl0bGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodG9vbGJhckl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuRmFzdE1lcmdlKHRvb2xiYXJJdGVtLCBzZXR0aW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtZXRlcnM/LlNhdmVCdXR0b25DdXN0b21VaT8uU2VsZWN0b3IpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzYXZlSXRlbSA9IEZpbmRUb29sYmFySXRlbSh0b29sYmFySXRlbXMsICdTYXZlQW5kQ2xvc2UnLCAnaXRlbUlkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLk1lcmdlci5GYXN0TWVyZ2Uoc2F2ZUl0ZW0sIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGF0YTogeyBDdXN0b21VaTogcGFyYW1ldGVycy5TYXZlQnV0dG9uQ3VzdG9tVWkgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtZXRlcnM/Lk9rQnV0dG9uQ3VzdG9tVWk/LlNlbGVjdG9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2tJdGVtID0gRmluZFRvb2xiYXJJdGVtKHRvb2xiYXJJdGVtcywgJ09rJywgJ2l0ZW1JZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuRmFzdE1lcmdlKG9rSXRlbSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBEYXRhOiB7IEN1c3RvbVVpOiBwYXJhbWV0ZXJzLk9rQnV0dG9uQ3VzdG9tVWkgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtZXRlcnM/LkNhbmNlbEJ1dHRvbkN1c3RvbVVpPy5TZWxlY3Rvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbmNlbEl0ZW0gPSBGaW5kVG9vbGJhckl0ZW0odG9vbGJhckl0ZW1zLCAnQ2FuY2VsJywgJ2l0ZW1JZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuRmFzdE1lcmdlKGNhbmNlbEl0ZW0sIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGF0YTogeyBDdXN0b21VaTogcGFyYW1ldGVycy5DYW5jZWxCdXR0b25DdXN0b21VaSB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmV4dGVuZExheW91dDk0JCA9IHRoaXMubGF5b3V0OTQkLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgdGFwKChsYXlvdXQ5NCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtZXRlcnM/LkZvcm1MYXlvdXRJdGVtc1NldHRpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzLkZvcm1MYXlvdXRJdGVtc1NldHRpbmcuTW9EYXRhTGlzdC5mb3JFYWNoKChzZXR0aW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxheW91dEl0ZW0gPSBGaW5kTGF5b3V0U2V0dGluZ0Zyb21MYXlvdXQ5NChsYXlvdXQ5NCwgc2V0dGluZy5UaXRsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXlvdXRJdGVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGF5b3V0SXRlbS5UeXBlID09PSAnTGF5b3V0Q29udHJvbEl0ZW0nICYmIGxheW91dEl0ZW0uRmllbGRVaSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuRmFzdE1lcmdlKGxheW91dEl0ZW0uRmllbGRVaS5TZXR0aW5nLCBzZXR0aW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLk1lcmdlci5GYXN0TWVyZ2UobGF5b3V0SXRlbSwgc2V0dGluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmZ1bGxzY3JlZW4gPSBwYXJhbWV0ZXJzPy5GdWxsc2NyZWVuRGVmYXVsdCA9PT0gdHJ1ZSAmJiAhdGhpcy5pc01vZGFsO1xyXG4gICAgfVxyXG59XHJcbmludGVyZmFjZSBGb3JtUGFuZWxTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBMYXlvdXRDb21wb25lbnQ6IEVqcmF5T2xnbztcclxuICAgIEhlYWRlckNvbXBvbmVudDogRWpyYXlPbGdvO1xyXG4gICAgRm9vdGVyQ29tcG9uZW50OiBFanJheU9sZ287XHJcbiAgICBTYXZlQnV0dG9uQ3VzdG9tVWk6IEVqcmF5T2xnbztcclxuICAgIE9rQnV0dG9uQ3VzdG9tVWk6IEVqcmF5T2xnbztcclxuICAgIENhbmNlbEJ1dHRvbkN1c3RvbVVpOiBFanJheU9sZ287XHJcbiAgICBGb3JtTGF5b3V0SXRlbXNTZXR0aW5nOiBNb0ZvclJlcG9ydE1vZGVsO1xyXG4gICAgRnVsbHNjcmVlbkRlZmF1bHQ6IGJvb2xlYW47XHJcbiAgICBDYW5GdWxsc2NyZWVuOiBib29sZWFuO1xyXG4gICAgSXNTaW1wbGU6IGJvb2xlYW47XHJcbiAgICBJc01vZGFsOiBib29sZWFuO1xyXG4gICAgQ3NzU3R5bGVzOiBzdHJpbmc7XHJcbiAgICBDYW5Nb3ZlOiBib29sZWFuO1xyXG4gICAgQ2FuUmVzaXplOiBib29sZWFuO1xyXG4gICAgQ29udGVudElzUGFnZTogYm9vbGVhbjtcclxuICAgIExheW91dEdyaWRDb2w6IG51bWJlcjtcclxuICAgIENvbExnOiBudW1iZXI7XHJcbiAgICBDb2xYbDogbnVtYmVyO1xyXG4gICAgQ29sTWQ6IG51bWJlcjtcclxufVxyXG4iLCJAaWYgKGlzU2VhcmNoUGFuZWwgfHwgKGlzU2ltcGxlJCB8IGFzeW5jKSB8fCBpc1N1YkZvcm0gfHwgaXNNb2RhbCB8fCBpc0Zvcm1SZXBvcnQgfHwgcGFyYW1ldGVycz8uSXNTaW1wbGUpIHtcclxuPGJzdS1iYXJzYS1zaW1wbGUtZm9ybVxyXG4gICAgW2Nzc1N0eWxlXT1cInBhcmFtZXRlcnM/LkNzc1N0eWxlc1wiXHJcbiAgICBbY2FuU2VuZF09XCIoY2FuU2VuZCQgfCBhc3luYykgPT09IHRydWVcIlxyXG4gICAgW2Zvcm1WaXNpYmlsaXR5U3RhdHVzXT1cImZvcm1WaXNpYmlsaXR5U3RhdHVzXCJcclxuICAgIFtyZW1vdmVDb250ZW50UGFkZGluZ109XCIoaGVhZGVyUmVtb3ZlQ29udGVudFBhZGRpbmckIHwgYXN5bmMpISFcIlxyXG4gICAgW2JyZWFkQ3J1bWJzXT1cImJyZWFkQ3J1bWJzJCB8IGFzeW5jXCJcclxuICAgIFtkZXNjcmlwdGlvbl09XCIoaGVhZGVyRGVzY3JpcHRpb24kIHwgYXN5bmMpISFcIlxyXG4gICAgW2hpZGVDbG9zZV09XCIoaGlkZUNsb3NlJCB8IGFzeW5jKSEhXCJcclxuICAgIFtoaWRlVGl0bGVdPVwiKGhpZGVUaXRsZSQgfCBhc3luYykhIVwiXHJcbiAgICBbaGlkZVBpbl09XCIoaGlkZVBpbiQgfCBhc3luYykhIVwiXHJcbiAgICBbdGl0bGVdPVwiKHRpdGxlJCB8IGFzeW5jKSEhXCJcclxuICAgIFtpc01vZGFsXT1cImlzTW9kYWxcIlxyXG4gICAgW2Zvcm1Db250ZW50TWF4V2lkdGhdPVwiZm9ybUNvbnRlbnRNYXhXaWR0aFwiXHJcbiAgICBbc3VidGl0bGVdPVwiKGhlYWRlclN1YnRpdGxlJCB8IGFzeW5jKSEhXCJcclxuICAgIFt0b29sYmFySXRlbXNdPVwiZXh0ZW5kVG9vbGJhckl0ZW1zJCB8IGFzeW5jIHwgdGxiQnV0dG9uczogJ2luRm9vdGVyJzpmYWxzZVwiXHJcbiAgICBbbGF5b3V0QWN0aW9uc109XCJleHRlbmRUb29sYmFySXRlbXMkIHwgYXN5bmMgfCB0bGJCdXR0b25zOiAnaW5Gb290ZXInOnRydWUgfCBoaWRlQWNjZXB0Q2FuY2VsOiBoaWRlQWNjZXB0QW5kQ2FuY2VsXCJcclxuICAgIFt0b29sYmFyVmlzaWJsZV09XCIodG9vbGJhclZpc2libGUkIHwgYXN5bmMpISFcIlxyXG4gICAgW2ZhY2V0TGlzdF09XCIoaGVhZGVyTGF5b3V0JCB8IGFzeW5jKT8uRmFjZXRMaXN0MlwiXHJcbiAgICBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzXCJcclxuICAgIFt3b3JrZmxvd1BhbmVsVWldPVwid29ya2Zsb3dQYW5lbFVpJCB8IGFzeW5jXCJcclxuICAgIFt3b3JrZmxvd0J1dHRvbnNdPVwiKHdvcmtmbG93QnV0dG9ucyQgfCBhc3luYykhIVwiXHJcbiAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxyXG4gICAgW2xheW91dDk0XT1cImV4dGVuZExheW91dDk0JCB8IGFzeW5jXCJcclxuICAgIFtsYXlvdXRHcmlkQ29sXT1cIisocGFyYW1ldGVycz8uTGF5b3V0R3JpZENvbCB8fCAxMilcIlxyXG4gICAgW2NvbExnXT1cIisocGFyYW1ldGVycz8uQ29sTGcgfHwgMClcIlxyXG4gICAgW2NvbFhsXT1cIisocGFyYW1ldGVycz8uQ29sWGwgfHwgMClcIlxyXG4gICAgW2NvbE1kXT1cIisocGFyYW1ldGVycz8uQ29sTWQgfHwgMClcIlxyXG4gICAgW2hpZGVGb290ZXJdPVwiKGhpZGVGb290ZXIkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgIFtydGxdPVwiKHJ0bCQgfCBhc3luYykhIVwiXHJcbiAgICBbbWFza109XCIobWFzayQgfCBhc3luYykhIVwiXHJcbiAgICBbbW9dPVwiKG1vJCB8IGFzeW5jKSEhXCJcclxuICAgIFtkaXJWYWx1ZV09XCIoZGlyVmFsdWUkIHwgYXN5bmMpISFcIlxyXG4gICAgW2RldmljZVNpemVdPVwiKGRldmljZVNpemUkIHwgYXN5bmMpISFcIlxyXG4gICAgW2NvbnRlbnREZW5zaXR5XT1cIihjb250ZW50RGVuc2l0eSQgfCBhc3luYykhIVwiXHJcbiAgICBbbW9kZXJuVGFic109XCIobW9kZXJuVGFicyQgfCBhc3luYykhIVwiXHJcbiAgICBbYXZhdGFyXT1cIihhdmF0YXIkIHwgYXN5bmMpISFcIlxyXG4gICAgW2NpcmNsZUF2YXRhcl09XCIoY2lyY2xlQXZhdGFyJCB8IGFzeW5jKSEhXCJcclxuICAgIFtmaWVsZERpY3RdPVwiKGZpZWxkRGljdCQgfCBhc3luYykhIVwiXHJcbiAgICBbbGFuZHNjYXBlXT1cIihsYW5kc2NhcGUkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgIFtzdGFuZGFsb25lXT1cIihzdGFuZGFsb25lJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICAoY2xvc2UpPVwib25DbG9zZSgpXCJcclxuICAgICh0b29sYmFyQ2xpY2spPVwib25Ub29sYmFyQ2xpY2soJGV2ZW50KVwiXHJcbiAgICBbY29udGVudElzUGFnZV09XCJwYXJhbWV0ZXJzPy5Db250ZW50SXNQYWdlID09PSB0cnVlXCJcclxuICAgICh3b3JrZmxvd0Nob2ljZUNsaWNrKT1cIm9uV29ya2Zsb3dDaG9pY2VDbGljaygkZXZlbnQpXCJcclxuPjwvYnN1LWJhcnNhLXNpbXBsZS1mb3JtPlxyXG59IEBlbHNlIHtcclxuPGJzdS1mdW5kYW1lbnRhbC1keW5hbWljLWZvcm1cclxuICAgIFtjc3NTdHlsZV09XCJwYXJhbWV0ZXJzPy5Dc3NTdHlsZXNcIlxyXG4gICAgW3N0eWxlLnBvc2l0aW9uXT1cIihtYXNrJCB8IGFzeW5jKSA/ICdyZWxhdGl2ZScgOiBudWxsXCJcclxuICAgIFt3b3JrZmxvd0J1dHRvbnNdPVwiKHdvcmtmbG93QnV0dG9ucyQgfCBhc3luYykhIVwiXHJcbiAgICBbY2FuU2VuZF09XCIoY2FuU2VuZCQgfCBhc3luYykgPT09IHRydWVcIlxyXG4gICAgW2Zvcm1WaXNpYmlsaXR5U3RhdHVzXT1cImZvcm1WaXNpYmlsaXR5U3RhdHVzXCJcclxuICAgIFtyZW1vdmVDb250ZW50UGFkZGluZ109XCIoaGVhZGVyUmVtb3ZlQ29udGVudFBhZGRpbmckIHwgYXN5bmMpISFcIlxyXG4gICAgW2JyZWFkQ3J1bWJzXT1cImJyZWFkQ3J1bWJzJCB8IGFzeW5jXCJcclxuICAgIFtkZXNjcmlwdGlvbl09XCIoaGVhZGVyRGVzY3JpcHRpb24kIHwgYXN5bmMpISFcIlxyXG4gICAgW2hpZGVDbG9zZV09XCIoaGlkZUNsb3NlJCB8IGFzeW5jKSEhXCJcclxuICAgIFtoaWRlVGl0bGVdPVwiKGhpZGVUaXRsZSQgfCBhc3luYykhIVwiXHJcbiAgICBbaGlkZVBpbl09XCIoaGlkZVBpbiQgfCBhc3luYykhIVwiXHJcbiAgICBbdGl0bGVdPVwiKHRpdGxlJCB8IGFzeW5jKSEhXCJcclxuICAgIFtzdWJ0aXRsZV09XCIoaGVhZGVyU3VidGl0bGUkIHwgYXN5bmMpISFcIlxyXG4gICAgW3Rvb2xiYXJJdGVtc109XCJleHRlbmRUb29sYmFySXRlbXMkIHwgYXN5bmMgfCB0bGJCdXR0b25zOiAnaW5Gb290ZXInOmZhbHNlXCJcclxuICAgIFtsYXlvdXRBY3Rpb25zXT1cImV4dGVuZFRvb2xiYXJJdGVtcyQgfCBhc3luYyB8IHRsYkJ1dHRvbnM6ICdpbkZvb3Rlcic6dHJ1ZSB8IGhpZGVBY2NlcHRDYW5jZWw6IGhpZGVBY2NlcHRBbmRDYW5jZWxcIlxyXG4gICAgW3Rvb2xiYXJWaXNpYmxlXT1cIih0b29sYmFyVmlzaWJsZSQgfCBhc3luYykhIVwiXHJcbiAgICBbZmFjZXRMaXN0XT1cIihoZWFkZXJMYXlvdXQkIHwgYXN5bmMpPy5GYWNldExpc3QyXCJcclxuICAgIFtmb3JtQ29udGVudE1heFdpZHRoXT1cImZvcm1Db250ZW50TWF4V2lkdGhcIlxyXG4gICAgW3BhcmFtZXRlcnNdPVwicGFyYW1ldGVyc1wiXHJcbiAgICBbZnVsbHNjcmVlbl09XCJmdWxsc2NyZWVuXCJcclxuICAgIFtoaWRlRm9vdGVyXT1cIihoaWRlRm9vdGVyJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICBbd29ya2Zsb3dQYW5lbFVpXT1cIndvcmtmbG93UGFuZWxVaSQgfCBhc3luY1wiXHJcbiAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxyXG4gICAgW2xheW91dDk0XT1cImV4dGVuZExheW91dDk0JCB8IGFzeW5jXCJcclxuICAgIFtydGxdPVwiKHJ0bCQgfCBhc3luYykhIVwiXHJcbiAgICBbbGF5b3V0R3JpZENvbF09XCIrKHBhcmFtZXRlcnM/LkxheW91dEdyaWRDb2wgfHwgMTIpXCJcclxuICAgIFtjb2xMZ109XCIrKHBhcmFtZXRlcnM/LkNvbExnIHx8IDApXCJcclxuICAgIFtjb2xYbF09XCIrKHBhcmFtZXRlcnM/LkNvbFhsIHx8IDApXCJcclxuICAgIFtjb2xNZF09XCIrKHBhcmFtZXRlcnM/LkNvbE1kIHx8IDApXCJcclxuICAgIFtmb290ZXJEZXNpZ25dPVwiZm9vdGVyRGVzaWduXCJcclxuICAgIFttYXNrXT1cIihtYXNrJCB8IGFzeW5jKSEhXCJcclxuICAgIFttb109XCIobW8kIHwgYXN5bmMpISFcIlxyXG4gICAgW2RpclZhbHVlXT1cIihkaXJWYWx1ZSQgfCBhc3luYykhIVwiXHJcbiAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXHJcbiAgICBbY29udGVudERlbnNpdHldPVwiKGNvbnRlbnREZW5zaXR5JCB8IGFzeW5jKSEhXCJcclxuICAgIFttb2Rlcm5UYWJzXT1cIihtb2Rlcm5UYWJzJCB8IGFzeW5jKSEhXCJcclxuICAgIFthdmF0YXJdPVwiKGF2YXRhciQgfCBhc3luYykhIVwiXHJcbiAgICBbY2lyY2xlQXZhdGFyXT1cIihjaXJjbGVBdmF0YXIkIHwgYXN5bmMpISFcIlxyXG4gICAgW2ZpZWxkRGljdF09XCIoZmllbGREaWN0JCB8IGFzeW5jKSEhXCJcclxuICAgIFtsYW5kc2NhcGVdPVwiKGxhbmRzY2FwZSQgfCBhc3luYykgPT09IHRydWVcIlxyXG4gICAgW3N0YW5kYWxvbmVdPVwiKHN0YW5kYWxvbmUkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgIChmdWxsc2NyZWVuUmVxdWVzdCk9XCJvbkZ1bGxzY3JlZW4oKVwiXHJcbiAgICAoY2xvc2UpPVwib25DbG9zZSgpXCJcclxuICAgICh0b29sYmFyQ2xpY2spPVwib25Ub29sYmFyQ2xpY2soJGV2ZW50KVwiXHJcbiAgICBbY29udGVudElzUGFnZV09XCJwYXJhbWV0ZXJzPy5Db250ZW50SXNQYWdlID09PSB0cnVlXCJcclxuICAgICh3b3JrZmxvd0Nob2ljZUNsaWNrKT1cIm9uV29ya2Zsb3dDaG9pY2VDbGljaygkZXZlbnQpXCJcclxuPjwvYnN1LWZ1bmRhbWVudGFsLWR5bmFtaWMtZm9ybT5cclxufVxyXG4iXX0=