barsa-sap-ui 1.0.394 → 1.0.396
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/barsa-simple-form/barsa-simple-form.component.mjs +7 -5
- package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +3 -3
- package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +3 -3
- package/esm2020/lib/card-view-content/card-view-content.component.mjs +1 -1
- package/esm2020/lib/form-dialog/form-dialog.component.mjs +3 -3
- package/esm2020/lib/form-toolbar/form-toolbar.component.mjs +2 -2
- package/esm2020/lib/layout-control/layout-control.component.mjs +2 -2
- package/esm2020/lib/no-data/no-data.component.mjs +10 -7
- package/esm2020/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +1 -1
- package/esm2020/lib/ui-form-panel/ui-form-panel.component.mjs +3 -3
- package/esm2020/lib/ui-list-view/ui-list-view.component.mjs +8 -8
- package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +3 -3
- package/esm2020/lib/ui-tree-view/ui-tree-view.component.mjs +1 -1
- package/fesm2015/barsa-sap-ui.mjs +60 -56
- package/fesm2015/barsa-sap-ui.mjs.map +1 -1
- package/fesm2020/barsa-sap-ui.mjs +58 -54
- package/fesm2020/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-simple-form/barsa-simple-form.component.d.ts +3 -2
- package/lib/no-data/no-data.component.d.ts +2 -1
- package/lib/ui-list-view/ui-list-view.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -22,9 +22,7 @@ export class BarsaSimpleFormComponent extends BaseComponent {
|
|
|
22
22
|
this.isFirefox = isFirefox();
|
|
23
23
|
this.facetList || (this.facetList = []);
|
|
24
24
|
this.workflowInfoText = this.workflowPanelUi?.Setting?.Workflow?.InfoText;
|
|
25
|
-
const workflowButtons = this.workflowPanelUi?.buttonList ?? [];
|
|
26
25
|
this.workflowButtonsComboMode = this.workflowPanelUi?.Setting?.Workflow?.ButtonsComboMode;
|
|
27
|
-
this.workflowButtons = workflowButtons;
|
|
28
26
|
const toolbarButtonsCount = this.toolbarItems.filter((c) => typeof c !== 'string' && c.text !== '-').length;
|
|
29
27
|
if (this.deviceSize === 's' && toolbarButtonsCount > 1) {
|
|
30
28
|
this.toolbarShouldOverflow = true;
|
|
@@ -61,10 +59,10 @@ export class BarsaSimpleFormComponent extends BaseComponent {
|
|
|
61
59
|
onDynamicComponentEvents(e) { }
|
|
62
60
|
}
|
|
63
61
|
BarsaSimpleFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaSimpleFormComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
64
|
-
BarsaSimpleFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaSimpleFormComponent, selector: "bsu-barsa-simple-form", inputs: { breadCrumbs: "breadCrumbs", toolbarVisible: "toolbarVisible", toolbarItems: "toolbarItems", layoutActions: "layoutActions", layout94: "layout94", parameters: "parameters", workflowPanelUi: "workflowPanelUi", context: "context", title: "title", subtitle: "subtitle", description: "description", facetList: "facetList", fieldDict: "fieldDict", removeHeaderBorder: "removeHeaderBorder", removeContentPadding: "removeContentPadding", isMobile: "isMobile", mo: "mo", avatar: "avatar", rtl: "rtl", hideTitle: "hideTitle", hideClose: "hideClose", hidePin: "hidePin", mask: "mask", canSend: "canSend", contentIsPage: "contentIsPage", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", landscape: "landscape", standalone: "standalone", modernTabs: "modernTabs", formVisibilityStatus: "formVisibilityStatus" }, outputs: { toolbarClick: "toolbarClick", workflowChoiceClick: "workflowChoiceClick", close: "close" }, viewQueries: [{ propertyName: "_toolbarComponent", first: true, predicate: ["formToolbar"], descendants: true }, { propertyName: "titleRef", first: true, predicate: ["titleRef"], descendants: true, read: ViewContainerRef }, { propertyName: "headerAvatarRef", first: true, predicate: ["headerAvatar"], descendants: true }, { propertyName: "closeFormTemplate", first: true, predicate: ["closeForm"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<bsu-mask *ngIf=\"mask\"> </bsu-mask>\n<ng-container\n *ngTemplateOutlet=\"\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n></ng-container>\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n <ng-container *ngIf=\"workflowButtons\">\n <div class=\"workflow-buttons\" *ngIf=\"workflowButtons.length\">\n <div style=\"flex-grow: 1\"></div>\n <bsu-layout-actions\n style=\"display: flex; column-gap: 1rem\"\n [simple]=\"true\"\n [buttons]=\"[]\"\n [workflowButtons]=\"workflowButtons\"\n (toolClick)=\"onToolbarClick($event)\"\n >\n </bsu-layout-actions>\n </div>\n </ng-container>\n</ng-template>\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\n <bnrc-dynamic-form-component\n [component]=\"component\"\n [removeContentPadding]=\"removeContentPadding\"\n [breadCrumbs]=\"breadCrumbs\"\n [description]=\"description\"\n [title]=\"title\"\n [subtitle]=\"subtitle\"\n [toolbarItems]=\"toolbarItems\"\n [layoutActions]=\"layoutActions\"\n [facetList]=\"facetList\"\n [settings]=\"component.Settings\"\n [workflowPanelUi]=\"workflowPanelUi\"\n [isMobile]=\"isMobile\"\n [mo]=\"mo\"\n [layout94]=\"layout94\"\n [context]=\"context\"\n [rtl]=\"rtl\"\n [fieldDict]=\"fieldDict\"\n [mask]=\"mask\"\n [dirValue]=\"dirValue\"\n [deviceSize]=\"deviceSize\"\n [contentDensity]=\"contentDensity\"\n [modernTabs]=\"modernTabs\"\n [avatar]=\"avatar\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-form-component>\n</ng-template>\n", styles: [":host{display:block;height:auto;min-height:100%;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .fd-progress-indicator__container,:host ::ng-deep .fd-progress-indicator__progress-bar{height:1.5rem}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormComponent, selector: "bnrc-dynamic-form-component", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "settings", "workflowPanelUi", "title", "subtitle", "description", "facetList", "removeHeaderBorder", "removeContentPadding", "isMobile", "avatar", "rtl", "mask", "mo", "contentDensity", "deviceSize", "dirValue", "fieldDict", "modernTabs"] }, { kind: "component", type: i3.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: i4.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i5.LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple"], outputs: ["workflowChoiceSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
62
|
+
BarsaSimpleFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaSimpleFormComponent, selector: "bsu-barsa-simple-form", inputs: { breadCrumbs: "breadCrumbs", toolbarVisible: "toolbarVisible", toolbarItems: "toolbarItems", layoutActions: "layoutActions", layout94: "layout94", parameters: "parameters", workflowPanelUi: "workflowPanelUi", context: "context", title: "title", subtitle: "subtitle", description: "description", facetList: "facetList", fieldDict: "fieldDict", removeHeaderBorder: "removeHeaderBorder", removeContentPadding: "removeContentPadding", isMobile: "isMobile", mo: "mo", avatar: "avatar", rtl: "rtl", isModal: "isModal", hideTitle: "hideTitle", hideClose: "hideClose", hidePin: "hidePin", mask: "mask", canSend: "canSend", contentIsPage: "contentIsPage", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", landscape: "landscape", standalone: "standalone", modernTabs: "modernTabs", workflowButtons: "workflowButtons", formVisibilityStatus: "formVisibilityStatus" }, outputs: { toolbarClick: "toolbarClick", workflowChoiceClick: "workflowChoiceClick", close: "close" }, viewQueries: [{ propertyName: "_toolbarComponent", first: true, predicate: ["formToolbar"], descendants: true }, { propertyName: "titleRef", first: true, predicate: ["titleRef"], descendants: true, read: ViewContainerRef }, { propertyName: "headerAvatarRef", first: true, predicate: ["headerAvatar"], descendants: true }, { propertyName: "closeFormTemplate", first: true, predicate: ["closeForm"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<bsu-mask *ngIf=\"mask\"> </bsu-mask>\n<ng-container\n *ngTemplateOutlet=\"\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n></ng-container>\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n <ng-container *ngIf=\"workflowButtons && !isModal\">\n <div class=\"workflow-buttons\" *ngIf=\"workflowButtons.length\">\n <div style=\"flex-grow: 1\"></div>\n <bsu-layout-actions\n style=\"display: flex; column-gap: 1rem\"\n [simple]=\"true\"\n [buttons]=\"[]\"\n [workflowButtons]=\"workflowButtons\"\n (toolClick)=\"onToolbarClick($event)\"\n >\n </bsu-layout-actions>\n </div>\n </ng-container>\n</ng-template>\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\n <bnrc-dynamic-form-component\n [component]=\"component\"\n [removeContentPadding]=\"removeContentPadding\"\n [breadCrumbs]=\"breadCrumbs\"\n [description]=\"description\"\n [title]=\"title\"\n [subtitle]=\"subtitle\"\n [toolbarItems]=\"toolbarItems\"\n [layoutActions]=\"layoutActions\"\n [facetList]=\"facetList\"\n [settings]=\"component.Settings\"\n [workflowPanelUi]=\"workflowPanelUi\"\n [isMobile]=\"isMobile\"\n [mo]=\"mo\"\n [layout94]=\"layout94\"\n [context]=\"context\"\n [rtl]=\"rtl\"\n [fieldDict]=\"fieldDict\"\n [mask]=\"mask\"\n [dirValue]=\"dirValue\"\n [deviceSize]=\"deviceSize\"\n [contentDensity]=\"contentDensity\"\n [modernTabs]=\"modernTabs\"\n [avatar]=\"avatar\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-form-component>\n</ng-template>\n", styles: [":host{display:block;height:auto;min-height:100%;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .fd-progress-indicator__container,:host ::ng-deep .fd-progress-indicator__progress-bar{height:1.5rem}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormComponent, selector: "bnrc-dynamic-form-component", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "settings", "workflowPanelUi", "title", "subtitle", "description", "facetList", "removeHeaderBorder", "removeContentPadding", "isMobile", "avatar", "rtl", "mask", "mo", "contentDensity", "deviceSize", "dirValue", "fieldDict", "modernTabs"] }, { kind: "component", type: i3.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: i4.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i5.LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple"], outputs: ["workflowChoiceSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
65
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaSimpleFormComponent, decorators: [{
|
|
66
64
|
type: Component,
|
|
67
|
-
args: [{ selector: 'bsu-barsa-simple-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bsu-mask *ngIf=\"mask\"> </bsu-mask>\n<ng-container\n *ngTemplateOutlet=\"\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n></ng-container>\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n <ng-container *ngIf=\"workflowButtons\">\n <div class=\"workflow-buttons\" *ngIf=\"workflowButtons.length\">\n <div style=\"flex-grow: 1\"></div>\n <bsu-layout-actions\n style=\"display: flex; column-gap: 1rem\"\n [simple]=\"true\"\n [buttons]=\"[]\"\n [workflowButtons]=\"workflowButtons\"\n (toolClick)=\"onToolbarClick($event)\"\n >\n </bsu-layout-actions>\n </div>\n </ng-container>\n</ng-template>\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\n <bnrc-dynamic-form-component\n [component]=\"component\"\n [removeContentPadding]=\"removeContentPadding\"\n [breadCrumbs]=\"breadCrumbs\"\n [description]=\"description\"\n [title]=\"title\"\n [subtitle]=\"subtitle\"\n [toolbarItems]=\"toolbarItems\"\n [layoutActions]=\"layoutActions\"\n [facetList]=\"facetList\"\n [settings]=\"component.Settings\"\n [workflowPanelUi]=\"workflowPanelUi\"\n [isMobile]=\"isMobile\"\n [mo]=\"mo\"\n [layout94]=\"layout94\"\n [context]=\"context\"\n [rtl]=\"rtl\"\n [fieldDict]=\"fieldDict\"\n [mask]=\"mask\"\n [dirValue]=\"dirValue\"\n [deviceSize]=\"deviceSize\"\n [contentDensity]=\"contentDensity\"\n [modernTabs]=\"modernTabs\"\n [avatar]=\"avatar\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-form-component>\n</ng-template>\n", styles: [":host{display:block;height:auto;min-height:100%;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .fd-progress-indicator__container,:host ::ng-deep .fd-progress-indicator__progress-bar{height:1.5rem}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"] }]
|
|
65
|
+
args: [{ selector: 'bsu-barsa-simple-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bsu-mask *ngIf=\"mask\"> </bsu-mask>\n<ng-container\n *ngTemplateOutlet=\"\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n></ng-container>\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n <ng-container *ngIf=\"workflowButtons && !isModal\">\n <div class=\"workflow-buttons\" *ngIf=\"workflowButtons.length\">\n <div style=\"flex-grow: 1\"></div>\n <bsu-layout-actions\n style=\"display: flex; column-gap: 1rem\"\n [simple]=\"true\"\n [buttons]=\"[]\"\n [workflowButtons]=\"workflowButtons\"\n (toolClick)=\"onToolbarClick($event)\"\n >\n </bsu-layout-actions>\n </div>\n </ng-container>\n</ng-template>\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\n <bnrc-dynamic-form-component\n [component]=\"component\"\n [removeContentPadding]=\"removeContentPadding\"\n [breadCrumbs]=\"breadCrumbs\"\n [description]=\"description\"\n [title]=\"title\"\n [subtitle]=\"subtitle\"\n [toolbarItems]=\"toolbarItems\"\n [layoutActions]=\"layoutActions\"\n [facetList]=\"facetList\"\n [settings]=\"component.Settings\"\n [workflowPanelUi]=\"workflowPanelUi\"\n [isMobile]=\"isMobile\"\n [mo]=\"mo\"\n [layout94]=\"layout94\"\n [context]=\"context\"\n [rtl]=\"rtl\"\n [fieldDict]=\"fieldDict\"\n [mask]=\"mask\"\n [dirValue]=\"dirValue\"\n [deviceSize]=\"deviceSize\"\n [contentDensity]=\"contentDensity\"\n [modernTabs]=\"modernTabs\"\n [avatar]=\"avatar\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-form-component>\n</ng-template>\n", styles: [":host{display:block;height:auto;min-height:100%;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .fd-progress-indicator__container,:host ::ng-deep .fd-progress-indicator__progress-bar{height:1.5rem}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"] }]
|
|
68
66
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _toolbarComponent: [{
|
|
69
67
|
type: ViewChild,
|
|
70
68
|
args: ['formToolbar']
|
|
@@ -112,6 +110,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
112
110
|
type: Input
|
|
113
111
|
}], rtl: [{
|
|
114
112
|
type: Input
|
|
113
|
+
}], isModal: [{
|
|
114
|
+
type: Input
|
|
115
115
|
}], hideTitle: [{
|
|
116
116
|
type: Input
|
|
117
117
|
}], hideClose: [{
|
|
@@ -136,6 +136,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
136
136
|
type: Input
|
|
137
137
|
}], modernTabs: [{
|
|
138
138
|
type: Input
|
|
139
|
+
}], workflowButtons: [{
|
|
140
|
+
type: Input
|
|
139
141
|
}], formVisibilityStatus: [{
|
|
140
142
|
type: Input
|
|
141
143
|
}], titleRef: [{
|
|
@@ -148,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
148
150
|
type: ViewChild,
|
|
149
151
|
args: ['closeForm', { static: true }]
|
|
150
152
|
}] } });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etc2ltcGxlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2Etc2ltcGxlLWZvcm0vYmFyc2Etc2ltcGxlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2Etc2ltcGxlLWZvcm0vYmFyc2Etc2ltcGxlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0gsYUFBYSxFQUliLFNBQVMsRUFFWixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBUTlCLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxhQUFhO0lBZ0R2RCxZQUFtQixFQUFjO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBRE8sT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQTlDdkIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3ZDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDeEQsb0JBQW9CO1FBQ1YsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFvQjVCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFtQjFCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztJQU05QixDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEtBQWQsSUFBSSxDQUFDLFNBQVMsR0FBSyxFQUFFLEVBQUM7UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUM7UUFDMUUsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDO1FBQy9ELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLENBQUM7UUFDMUYsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFFdkMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzVHLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxHQUFHLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxFQUFFO1lBQ3BELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7U0FDckM7YUFBTTtZQUNILElBQUksbUJBQW1CLEdBQUcsQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO2FBQ3JDO1NBQ0o7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUN6QyxJQUNJLG9CQUFvQjtZQUNwQixDQUFDLG9CQUFvQixDQUFDLFdBQVc7WUFDakMsb0JBQW9CLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFDakQ7WUFDRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztTQUNwRDtJQUNMLENBQUM7SUFDRCxjQUFjLENBQUMsR0FBRyxFQUFFLE9BQVksSUFBSTtRQUNoQyxJQUFJLElBQUksRUFBRTtZQUNOLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNoQjtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxRQUFRO1FBQ3JCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELFlBQVksQ0FBQyxHQUFzQjtRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUNELFNBQVMsQ0FBQyxHQUFHO1FBQ1QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUNELHdCQUF3QixDQUFDLENBQUMsSUFBRyxDQUFDOztxSEFoR3JCLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLGtxQ0FzQ0YsZ0JBQWdCLDBSQ3JFbkQseWtFQTBEQTsyRkQzQmEsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNJLHVCQUF1QixtQkFHaEIsdUJBQXVCLENBQUMsTUFBTTtpR0FHckIsaUJBQWlCO3NCQUExQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ2QsWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBRUcsS0FBSztzQkFBZCxNQUFNO2dCQUNFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQzZDLFFBQVE7c0JBQTFELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUN0QixlQUFlO3NCQUF6QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ2lCLGlCQUFpQjtzQkFBMUQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBUYWJQYW5lbENvbXBvbmVudCwgVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBCcmVhZENydW1iSW5mbyxcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIExheW91dFNldHRpbmcsXG4gICAgaXNGaXJlZm94LFxuICAgIEZvcm1WaXNpYmlsaXR5U3RhdHVzXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2Etc2ltcGxlLWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1zaW1wbGUtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2Etc2ltcGxlLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYVNpbXBsZUZvcm1Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoJ2Zvcm1Ub29sYmFyJykgX3Rvb2xiYXJDb21wb25lbnQ6IFRvb2xiYXJDb21wb25lbnQ7XG4gICAgQE91dHB1dCgpIHRvb2xiYXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSB3b3JrZmxvd0Nob2ljZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQElucHV0KCkgYnJlYWRDcnVtYnM6IEJyZWFkQ3J1bWJJbmZvW10gfCBudWxsO1xuICAgIEBJbnB1dCgpIHRvb2xiYXJWaXNpYmxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHRvb2xiYXJJdGVtczogYW55W107XG4gICAgQElucHV0KCkgbGF5b3V0QWN0aW9uczogYW55W107XG4gICAgQElucHV0KCkgbGF5b3V0OTQ7XG4gICAgQElucHV0KCkgcGFyYW1ldGVyczogTWV0YW9iamVjdERhdGFNb2RlbDtcbiAgICBASW5wdXQoKSB3b3JrZmxvd1BhbmVsVWk6IGFueTtcbiAgICBASW5wdXQoKSBjb250ZXh0OiBhbnk7XG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZmFjZXRMaXN0OiBhbnlbXTtcbiAgICBASW5wdXQoKSBmaWVsZERpY3Q6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcmVtb3ZlSGVhZGVyQm9yZGVyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHJlbW92ZUNvbnRlbnRQYWRkaW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIEBJbnB1dCgpIGF2YXRhcjogYW55O1xuICAgIEBJbnB1dCgpIHJ0bDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoaWRlVGl0bGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGhpZGVDbG9zZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoaWRlUGluOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG1hc2s6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY2FuU2VuZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjb250ZW50SXNQYWdlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eTtcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiAncycgfCAnbScgfCAnbCcgfCAneGwnO1xuICAgIEBJbnB1dCgpIGRpclZhbHVlOiAncnRsJyB8ICdsdHInO1xuICAgIEBJbnB1dCgpIGxhbmRzY2FwZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzdGFuZGFsb25lOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG1vZGVyblRhYnM6IExheW91dFNldHRpbmdbXTtcbiAgICBASW5wdXQoKSBmb3JtVmlzaWJpbGl0eVN0YXR1czogRm9ybVZpc2liaWxpdHlTdGF0dXM7XG4gICAgQFZpZXdDaGlsZCgndGl0bGVSZWYnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdGl0bGVSZWY6IFZpZXdDb250YWluZXJSZWY7XG4gICAgQFZpZXdDaGlsZCgnaGVhZGVyQXZhdGFyJykgaGVhZGVyQXZhdGFyUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBWaWV3Q2hpbGQoJ2Nsb3NlRm9ybScsIHsgc3RhdGljOiB0cnVlIH0pIGNsb3NlRm9ybVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHdvcmtmbG93QnV0dG9uczogYW55W107XG4gICAgc2VsZWN0ZWRUYWI6IGFueTtcblxuICAgIHRvb2xiYXJTaG91bGRPdmVyZmxvdyA9IGZhbHNlO1xuICAgIHdvcmtmbG93SW5mb1RleHQ6IHN0cmluZztcbiAgICB3b3JrZmxvd0J1dHRvbnNDb21ib01vZGU6IGJvb2xlYW47XG4gICAgaXNGaXJlZm94OiBib29sZWFuO1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmlzRmlyZWZveCA9IGlzRmlyZWZveCgpO1xuICAgICAgICB0aGlzLmZhY2V0TGlzdCB8fD0gW107XG4gICAgICAgIHRoaXMud29ya2Zsb3dJbmZvVGV4dCA9IHRoaXMud29ya2Zsb3dQYW5lbFVpPy5TZXR0aW5nPy5Xb3JrZmxvdz8uSW5mb1RleHQ7XG4gICAgICAgIGNvbnN0IHdvcmtmbG93QnV0dG9ucyA9IHRoaXMud29ya2Zsb3dQYW5lbFVpPy5idXR0b25MaXN0ID8/IFtdO1xuICAgICAgICB0aGlzLndvcmtmbG93QnV0dG9uc0NvbWJvTW9kZSA9IHRoaXMud29ya2Zsb3dQYW5lbFVpPy5TZXR0aW5nPy5Xb3JrZmxvdz8uQnV0dG9uc0NvbWJvTW9kZTtcbiAgICAgICAgdGhpcy53b3JrZmxvd0J1dHRvbnMgPSB3b3JrZmxvd0J1dHRvbnM7XG5cbiAgICAgICAgY29uc3QgdG9vbGJhckJ1dHRvbnNDb3VudCA9IHRoaXMudG9vbGJhckl0ZW1zLmZpbHRlcigoYykgPT4gdHlwZW9mIGMgIT09ICdzdHJpbmcnICYmIGMudGV4dCAhPT0gJy0nKS5sZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLmRldmljZVNpemUgPT09ICdzJyAmJiB0b29sYmFyQnV0dG9uc0NvdW50ID4gMSkge1xuICAgICAgICAgICAgdGhpcy50b29sYmFyU2hvdWxkT3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRvb2xiYXJCdXR0b25zQ291bnQgPiA1KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b29sYmFyU2hvdWxkT3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZvcm1WaXNpYmlsaXR5U3RhdHVzIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBmb3JtVmlzaWJpbGl0eVN0YXR1cyAmJlxuICAgICAgICAgICAgIWZvcm1WaXNpYmlsaXR5U3RhdHVzLmZpcnN0Q2hhbmdlICYmXG4gICAgICAgICAgICBmb3JtVmlzaWJpbGl0eVN0YXR1cy5jdXJyZW50VmFsdWUgPT09ICdWaXNpYmxlJ1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuX3Rvb2xiYXJDb21wb25lbnQ/LnVwZGF0ZUNvbGxhcHNpYmxlSXRlbXMoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvblRvb2xiYXJDbGljayhidG4sIG1lbnU6IGFueSA9IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKG1lbnUpIHtcbiAgICAgICAgICAgIG1lbnUuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvb2xiYXJDbGljay5lbWl0KGJ0bik7XG4gICAgfVxuICAgIG9uV2ZDaG9pY2VTZWxlY3Qod2ZDaG9pY2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53b3JrZmxvd0Nob2ljZUNsaWNrLmVtaXQod2ZDaG9pY2UpO1xuICAgIH1cbiAgICBvblRhYkNoYW5nZWQodGFiOiBUYWJQYW5lbENvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGFiLnRpdGxlO1xuICAgIH1cbiAgICBnZXROdW1iZXIodmFsKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih2YWwpO1xuICAgIH1cbiAgICBvbkR5bmFtaWNDb21wb25lbnRFdmVudHMoZSkge31cbn1cbiIsIjxic3UtbWFzayAqbmdJZj1cIm1hc2tcIj4gPC9ic3UtbWFzaz5cbjxuZy1jb250YWluZXJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBwYXJhbWV0ZXJzPy5MYXlvdXRDb21wb25lbnQgPyByZW5kZXJMYXlvdXRDb21wb25lbnQgOiByZW5kZXJEZWZhdWx0TGF5b3V0O1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IHBhcmFtZXRlcnM/LkxheW91dENvbXBvbmVudCxcbiAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQ5NFxuICAgICAgICB9XG4gICAgXCJcbj48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjcmVuZGVyRGVmYXVsdExheW91dCBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiPlxuICAgIDxic3UtbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290XG4gICAgICAgIFtjb25maWddPVwibGF5b3V0OTRcIlxuICAgICAgICBbaXNQYW5lbF09XCJmYWxzZVwiXG4gICAgICAgIFtpc1Jvb3RdPVwidHJ1ZVwiXG4gICAgPjwvYnN1LWx5LWxheW91dC1jb250YWluZXItb2Ytcm9vdD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwid29ya2Zsb3dCdXR0b25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3b3JrZmxvdy1idXR0b25zXCIgKm5nSWY9XCJ3b3JrZmxvd0J1dHRvbnMubGVuZ3RoXCI+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxXCI+PC9kaXY+XG4gICAgICAgICAgICA8YnN1LWxheW91dC1hY3Rpb25zXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBjb2x1bW4tZ2FwOiAxcmVtXCJcbiAgICAgICAgICAgICAgICBbc2ltcGxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtidXR0b25zXT1cIltdXCJcbiAgICAgICAgICAgICAgICBbd29ya2Zsb3dCdXR0b25zXT1cIndvcmtmbG93QnV0dG9uc1wiXG4gICAgICAgICAgICAgICAgKHRvb2xDbGljayk9XCJvblRvb2xiYXJDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvYnN1LWxheW91dC1hY3Rpb25zPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3JlbmRlckxheW91dENvbXBvbmVudCBsZXQtY29tcG9uZW50IGxldC1sYXlvdXQ5ND1cImxheW91dDk0XCI+XG4gICAgPGJucmMtZHluYW1pYy1mb3JtLWNvbXBvbmVudFxuICAgICAgICBbY29tcG9uZW50XT1cImNvbXBvbmVudFwiXG4gICAgICAgIFtyZW1vdmVDb250ZW50UGFkZGluZ109XCJyZW1vdmVDb250ZW50UGFkZGluZ1wiXG4gICAgICAgIFticmVhZENydW1ic109XCJicmVhZENydW1ic1wiXG4gICAgICAgIFtkZXNjcmlwdGlvbl09XCJkZXNjcmlwdGlvblwiXG4gICAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgICAgIFtzdWJ0aXRsZV09XCJzdWJ0aXRsZVwiXG4gICAgICAgIFt0b29sYmFySXRlbXNdPVwidG9vbGJhckl0ZW1zXCJcbiAgICAgICAgW2xheW91dEFjdGlvbnNdPVwibGF5b3V0QWN0aW9uc1wiXG4gICAgICAgIFtmYWNldExpc3RdPVwiZmFjZXRMaXN0XCJcbiAgICAgICAgW3NldHRpbmdzXT1cImNvbXBvbmVudC5TZXR0aW5nc1wiXG4gICAgICAgIFt3b3JrZmxvd1BhbmVsVWldPVwid29ya2Zsb3dQYW5lbFVpXCJcbiAgICAgICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW2xheW91dDk0XT1cImxheW91dDk0XCJcbiAgICAgICAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW2ZpZWxkRGljdF09XCJmaWVsZERpY3RcIlxuICAgICAgICBbbWFza109XCJtYXNrXCJcbiAgICAgICAgW2RpclZhbHVlXT1cImRpclZhbHVlXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgIFttb2Rlcm5UYWJzXT1cIm1vZGVyblRhYnNcIlxuICAgICAgICBbYXZhdGFyXT1cImF2YXRhclwiXG4gICAgICAgIChldmVudHMpPVwib25EeW5hbWljQ29tcG9uZW50RXZlbnRzKCRldmVudClcIlxuICAgID48L2JucmMtZHluYW1pYy1mb3JtLWNvbXBvbmVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etc2ltcGxlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2Etc2ltcGxlLWZvcm0vYmFyc2Etc2ltcGxlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2Etc2ltcGxlLWZvcm0vYmFyc2Etc2ltcGxlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0gsYUFBYSxFQUliLFNBQVMsRUFFWixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBUTlCLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxhQUFhO0lBaUR2RCxZQUFtQixFQUFjO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBRE8sT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQS9DdkIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3ZDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDeEQsb0JBQW9CO1FBQ1YsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFxQjVCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFtQjFCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztJQU05QixDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEtBQWQsSUFBSSxDQUFDLFNBQVMsR0FBSyxFQUFFLEVBQUM7UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUM7UUFDMUUsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQztRQUUxRixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDNUcsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLEVBQUU7WUFDcEQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztTQUNyQzthQUFNO1lBQ0gsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7YUFDckM7U0FDSjtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsTUFBTSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3pDLElBQ0ksb0JBQW9CO1lBQ3BCLENBQUMsb0JBQW9CLENBQUMsV0FBVztZQUNqQyxvQkFBb0IsQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUNqRDtZQUNFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO1NBQ3BEO0lBQ0wsQ0FBQztJQUNELGNBQWMsQ0FBQyxHQUFHLEVBQUUsT0FBWSxJQUFJO1FBQ2hDLElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2hCO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELGdCQUFnQixDQUFDLFFBQVE7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsWUFBWSxDQUFDLEdBQXNCO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBQ0QsU0FBUyxDQUFDLEdBQUc7UUFDVCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsQ0FBQyxJQUFHLENBQUM7O3FIQS9GckIsd0JBQXdCO3lHQUF4Qix3QkFBd0IsMHRDQXdDRixnQkFBZ0IsMFJDdkVuRCxxbEVBMERBOzJGRDNCYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNO2lHQUdyQixpQkFBaUI7c0JBQTFDLFNBQVM7dUJBQUMsYUFBYTtnQkFDZCxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFFRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDNkMsUUFBUTtzQkFBMUQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ3RCLGVBQWU7c0JBQXpDLFNBQVM7dUJBQUMsY0FBYztnQkFDaUIsaUJBQWlCO3NCQUExRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIFRhYlBhbmVsQ29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBCYXNlQ29tcG9uZW50LFxuICAgIEJyZWFkQ3J1bWJJbmZvLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgTGF5b3V0U2V0dGluZyxcbiAgICBpc0ZpcmVmb3gsXG4gICAgRm9ybVZpc2liaWxpdHlTdGF0dXNcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS1zaW1wbGUtZm9ybScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLXNpbXBsZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1zaW1wbGUtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhU2ltcGxlRm9ybUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQFZpZXdDaGlsZCgnZm9ybVRvb2xiYXInKSBfdG9vbGJhckNvbXBvbmVudDogVG9vbGJhckNvbXBvbmVudDtcbiAgICBAT3V0cHV0KCkgdG9vbGJhckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHdvcmtmbG93Q2hvaWNlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBASW5wdXQoKSBicmVhZENydW1iczogQnJlYWRDcnVtYkluZm9bXSB8IG51bGw7XG4gICAgQElucHV0KCkgdG9vbGJhclZpc2libGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgdG9vbGJhckl0ZW1zOiBhbnlbXTtcbiAgICBASW5wdXQoKSBsYXlvdXRBY3Rpb25zOiBhbnlbXTtcbiAgICBASW5wdXQoKSBsYXlvdXQ5NDtcbiAgICBASW5wdXQoKSBwYXJhbWV0ZXJzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIEBJbnB1dCgpIHdvcmtmbG93UGFuZWxVaTogYW55O1xuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1YnRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBASW5wdXQoKSBmYWNldExpc3Q6IGFueVtdO1xuICAgIEBJbnB1dCgpIGZpZWxkRGljdDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSByZW1vdmVIZWFkZXJCb3JkZXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcmVtb3ZlQ29udGVudFBhZGRpbmc6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNNb2JpbGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgQElucHV0KCkgYXZhdGFyOiBhbnk7XG4gICAgQElucHV0KCkgcnRsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzTW9kYWw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGlkZVRpdGxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBoaWRlQ2xvc2U6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGlkZVBpbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBtYXNrOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNhblNlbmQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29udGVudElzUGFnZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHk7XG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogJ3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJztcbiAgICBASW5wdXQoKSBkaXJWYWx1ZTogJ3J0bCcgfCAnbHRyJztcbiAgICBASW5wdXQoKSBsYW5kc2NhcGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc3RhbmRhbG9uZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBtb2Rlcm5UYWJzOiBMYXlvdXRTZXR0aW5nW107XG4gICAgQElucHV0KCkgd29ya2Zsb3dCdXR0b25zOiBhbnlbXTtcbiAgICBASW5wdXQoKSBmb3JtVmlzaWJpbGl0eVN0YXR1czogRm9ybVZpc2liaWxpdHlTdGF0dXM7XG4gICAgQFZpZXdDaGlsZCgndGl0bGVSZWYnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdGl0bGVSZWY6IFZpZXdDb250YWluZXJSZWY7XG4gICAgQFZpZXdDaGlsZCgnaGVhZGVyQXZhdGFyJykgaGVhZGVyQXZhdGFyUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBWaWV3Q2hpbGQoJ2Nsb3NlRm9ybScsIHsgc3RhdGljOiB0cnVlIH0pIGNsb3NlRm9ybVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHNlbGVjdGVkVGFiOiBhbnk7XG5cbiAgICB0b29sYmFyU2hvdWxkT3ZlcmZsb3cgPSBmYWxzZTtcbiAgICB3b3JrZmxvd0luZm9UZXh0OiBzdHJpbmc7XG4gICAgd29ya2Zsb3dCdXR0b25zQ29tYm9Nb2RlOiBib29sZWFuO1xuICAgIGlzRmlyZWZveDogYm9vbGVhbjtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5pc0ZpcmVmb3ggPSBpc0ZpcmVmb3goKTtcbiAgICAgICAgdGhpcy5mYWNldExpc3QgfHw9IFtdO1xuICAgICAgICB0aGlzLndvcmtmbG93SW5mb1RleHQgPSB0aGlzLndvcmtmbG93UGFuZWxVaT8uU2V0dGluZz8uV29ya2Zsb3c/LkluZm9UZXh0O1xuICAgICAgICB0aGlzLndvcmtmbG93QnV0dG9uc0NvbWJvTW9kZSA9IHRoaXMud29ya2Zsb3dQYW5lbFVpPy5TZXR0aW5nPy5Xb3JrZmxvdz8uQnV0dG9uc0NvbWJvTW9kZTtcblxuICAgICAgICBjb25zdCB0b29sYmFyQnV0dG9uc0NvdW50ID0gdGhpcy50b29sYmFySXRlbXMuZmlsdGVyKChjKSA9PiB0eXBlb2YgYyAhPT0gJ3N0cmluZycgJiYgYy50ZXh0ICE9PSAnLScpLmxlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3MnICYmIHRvb2xiYXJCdXR0b25zQ291bnQgPiAxKSB7XG4gICAgICAgICAgICB0aGlzLnRvb2xiYXJTaG91bGRPdmVyZmxvdyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodG9vbGJhckJ1dHRvbnNDb3VudCA+IDUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJTaG91bGRPdmVyZmxvdyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZm9ybVZpc2liaWxpdHlTdGF0dXMgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGZvcm1WaXNpYmlsaXR5U3RhdHVzICYmXG4gICAgICAgICAgICAhZm9ybVZpc2liaWxpdHlTdGF0dXMuZmlyc3RDaGFuZ2UgJiZcbiAgICAgICAgICAgIGZvcm1WaXNpYmlsaXR5U3RhdHVzLmN1cnJlbnRWYWx1ZSA9PT0gJ1Zpc2libGUnXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fdG9vbGJhckNvbXBvbmVudD8udXBkYXRlQ29sbGFwc2libGVJdGVtcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uVG9vbGJhckNsaWNrKGJ0biwgbWVudTogYW55ID0gbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAobWVudSkge1xuICAgICAgICAgICAgbWVudS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9vbGJhckNsaWNrLmVtaXQoYnRuKTtcbiAgICB9XG4gICAgb25XZkNob2ljZVNlbGVjdCh3ZkNob2ljZSk6IHZvaWQge1xuICAgICAgICB0aGlzLndvcmtmbG93Q2hvaWNlQ2xpY2suZW1pdCh3ZkNob2ljZSk7XG4gICAgfVxuICAgIG9uVGFiQ2hhbmdlZCh0YWI6IFRhYlBhbmVsQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0YWIudGl0bGU7XG4gICAgfVxuICAgIGdldE51bWJlcih2YWwpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTnVtYmVyKHZhbCk7XG4gICAgfVxuICAgIG9uRHluYW1pY0NvbXBvbmVudEV2ZW50cyhlKSB7fVxufVxuIiwiPGJzdS1tYXNrICpuZ0lmPVwibWFza1wiPiA8L2JzdS1tYXNrPlxuPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIHBhcmFtZXRlcnM/LkxheW91dENvbXBvbmVudCA/IHJlbmRlckxheW91dENvbXBvbmVudCA6IHJlbmRlckRlZmF1bHRMYXlvdXQ7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICRpbXBsaWNpdDogcGFyYW1ldGVycz8uTGF5b3V0Q29tcG9uZW50LFxuICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dDk0XG4gICAgICAgIH1cbiAgICBcIlxuPjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNyZW5kZXJEZWZhdWx0TGF5b3V0IGxldC1sYXlvdXQ5ND1cImxheW91dDk0XCI+XG4gICAgPGJzdS1seS1sYXlvdXQtY29udGFpbmVyLW9mLXJvb3RcbiAgICAgICAgW2NvbmZpZ109XCJsYXlvdXQ5NFwiXG4gICAgICAgIFtpc1BhbmVsXT1cImZhbHNlXCJcbiAgICAgICAgW2lzUm9vdF09XCJ0cnVlXCJcbiAgICA+PC9ic3UtbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3b3JrZmxvd0J1dHRvbnMgJiYgIWlzTW9kYWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndvcmtmbG93LWJ1dHRvbnNcIiAqbmdJZj1cIndvcmtmbG93QnV0dG9ucy5sZW5ndGhcIj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDFcIj48L2Rpdj5cbiAgICAgICAgICAgIDxic3UtbGF5b3V0LWFjdGlvbnNcbiAgICAgICAgICAgICAgICBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGNvbHVtbi1nYXA6IDFyZW1cIlxuICAgICAgICAgICAgICAgIFtzaW1wbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2J1dHRvbnNdPVwiW11cIlxuICAgICAgICAgICAgICAgIFt3b3JrZmxvd0J1dHRvbnNdPVwid29ya2Zsb3dCdXR0b25zXCJcbiAgICAgICAgICAgICAgICAodG9vbENsaWNrKT1cIm9uVG9vbGJhckNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9ic3UtbGF5b3V0LWFjdGlvbnM+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcmVuZGVyTGF5b3V0Q29tcG9uZW50IGxldC1jb21wb25lbnQgbGV0LWxheW91dDk0PVwibGF5b3V0OTRcIj5cbiAgICA8Ym5yYy1keW5hbWljLWZvcm0tY29tcG9uZW50XG4gICAgICAgIFtjb21wb25lbnRdPVwiY29tcG9uZW50XCJcbiAgICAgICAgW3JlbW92ZUNvbnRlbnRQYWRkaW5nXT1cInJlbW92ZUNvbnRlbnRQYWRkaW5nXCJcbiAgICAgICAgW2JyZWFkQ3J1bWJzXT1cImJyZWFkQ3J1bWJzXCJcbiAgICAgICAgW2Rlc2NyaXB0aW9uXT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgICAgW3N1YnRpdGxlXT1cInN1YnRpdGxlXCJcbiAgICAgICAgW3Rvb2xiYXJJdGVtc109XCJ0b29sYmFySXRlbXNcIlxuICAgICAgICBbbGF5b3V0QWN0aW9uc109XCJsYXlvdXRBY3Rpb25zXCJcbiAgICAgICAgW2ZhY2V0TGlzdF09XCJmYWNldExpc3RcIlxuICAgICAgICBbc2V0dGluZ3NdPVwiY29tcG9uZW50LlNldHRpbmdzXCJcbiAgICAgICAgW3dvcmtmbG93UGFuZWxVaV09XCJ3b3JrZmxvd1BhbmVsVWlcIlxuICAgICAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxuICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICBbbGF5b3V0OTRdPVwibGF5b3V0OTRcIlxuICAgICAgICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZmllbGREaWN0XT1cImZpZWxkRGljdFwiXG4gICAgICAgIFttYXNrXT1cIm1hc2tcIlxuICAgICAgICBbZGlyVmFsdWVdPVwiZGlyVmFsdWVcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgW21vZGVyblRhYnNdPVwibW9kZXJuVGFic1wiXG4gICAgICAgIFthdmF0YXJdPVwiYXZhdGFyXCJcbiAgICAgICAgKGV2ZW50cyk9XCJvbkR5bmFtaWNDb21wb25lbnRFdmVudHMoJGV2ZW50KVwiXG4gICAgPjwvYm5yYy1keW5hbWljLWZvcm0tY29tcG9uZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -37,10 +37,10 @@ export class BarsaTableRowComponent extends BaseViewItemPropsComponent {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
BarsaTableRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTableRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
-
BarsaTableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: { showDetailsInRow: "showDetailsInRow", detailsComponent: "detailsComponent", detailsColumns: "detailsColumns", detailsText: "detailsText", columnComponents: "columnComponents" }, providers: [FormPanelService], viewQueries: [{ propertyName: "detailsFormItems", first: true, predicate: ["detailsFormItems"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<tr\n [class.row-error]=\"hasError\"\n [class.showdetails-on]=\"!detailsCollapsed\"\n #trEl\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [activable]=\"false\"\n [hoverable]=\"false\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [main]=\"true\"\n [focusable]=\"true\"\n [attr.aria-selected]=\"isChecked\"\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\n [class.brule-message]=\"bruleActionMessage || workflowState?.errorText\"\n [class.workflow-pending]=\"workflowState?.state === 'Pending'\"\n>\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\n <td\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n fd-table-cell\n style=\"font-weight: bold; font-size: 1.2rem\"\n [attr.colspan]=\"canView ? columnsCount + 1 : columnsCount\"\n class=\"row-group\"\n [class.mobile-mode]=\"secondaryColumns?.length\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 0\"\n >\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n [disabled]=\"inlineEditMode\"\n (click)=\"onExpandClick()\"\n ></button>\n {{ mo.$Group }}\n </td>\n </ng-container>\n <ng-template #renderRow>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell *ngIf=\"isCheckList\">\n <div\n *ngIf=\"workflowState?.state === 'Pending'\"\n style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\"\n >\n <bsu-mask [top]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\n </div>\n\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n </td>\n <td\n fd-table-cell\n class=\"single-select\"\n *ngIf=\"!isCheckList\"\n (click)=\"onRowCheck()\"\n style=\"padding: 0; text-align: center\"\n >\n <ng-container\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\n >\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\n <fd-busy-indicator\n *ngIf=\"saving\"\n [loading]=\"true\"\n [size]=\"'s'\"\n title=\"record saving\"\n ></fd-busy-indicator>\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\n </ng-container>\n <ng-template #iconStateTemplate>\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\n </ng-template>\n </td>\n <ng-container *ngFor=\"let column of columns; let columnIndex = index\">\n <td\n *ngIf=\"(rowIndicator && columnIndex > 0) || !rowIndicator\"\n [attr.dbName]=\"column.Name\"\n #tdEl\n fd-table-cell\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"tdEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n [focusable]=\"false\"\n (click)=\"onRowCheck()\"\n (dblclick)=\"onRowClick()\"\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </td>\n </ng-container>\n <td\n class=\"col-context-menu\"\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\n fd-table-cell\n >\n <bsu-ulv-context-menu\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [mo]=\"mo\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n [menuItems]=\"contextMenuItems\"\n [allColumns]=\"allColumns\"\n ></bsu-ulv-context-menu>\n </td>\n <td\n class=\"col-details\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\n fd-button\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onRowDetails()\"\n ></button>\n </td>\n <td\n class=\"col-view\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n fd-button\n [glyph]=\"navigationArrow\"\n [navigation]=\"true\"\n [fdType]=\"'transparent'\"\n role=\"presentation\"\n (click)=\"onRowClick()\"\n ></button>\n </td>\n </ng-template>\n</tr>\n\n<tr\n #trEl\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [secondary]=\"true\"\n class=\"secondary-row\"\n [class.no-edit-mode]=\"!inlineEditMode\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\n <p\n #pEl\n fd-table-text\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"pEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n >\n <label fd-form-label>{{ column.Caption }} :</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </p>\n </td>\n</tr>\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems.length ? 1 : 0) +\n (canView ? 1 : 0) +\n (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container>\n <bnrc-form\n (click)=\"OnCartableFormClick($event)\"\n class=\"cartable-template\"\n [params]=\"cartableParams\"\n (formClose)=\"onCartableFormClosed()\"\n ></bnrc-form>\n </ng-container>\n </td>\n</tr>\n<tr\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\n fd-table-row\n class=\"showdetails\"\n [attr.aria-selected]=\"isChecked\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\n <bnrc-dynamic-item-component\n [component]=\"detailsComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"detailsComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [typeDefId]=\"typeDefId\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n </td>\n</tr>\n<ng-template #detailsColumnsTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n detailsFormItems;\n context: {\n $implicit: detailsColumns,\n mo: mo,\n inlineEditMode: inlineEditMode,\n layout94: layout$\n }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\n <div class=\"form-items\">\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip\n *ngIf=\"bruleActionMessage.MessageType === 2\"\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\n [dismissible]=\"false\"\n >\n {{ bruleActionMessage.MessageExpression }}\n </fd-message-strip>\n </td>\n</tr>\n<tr *ngIf=\"workflowState?.errorText\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip type=\"error\" [dismissible]=\"true\" (onDismiss)=\"resetWorkflowState.emit()\">\n {{ workflowState.errorText }}\n </fd-message-strip>\n </td>\n</tr>\n<ng-template\n #columnTemplate\n let-column\n let-mo=\"mo\"\n let-index=\"index\"\n let-inlineEditMode=\"inlineEditMode\"\n let-layout94=\"layout94\"\n>\n <bsu-barsa-table-column\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo\"\n [icon]=\"column | columnIcon: mo\"\n [customComponent]=\"column.$CustomComponent\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [inlineEditMode]=\"inlineEditMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [layout94]=\"layout94\"\n (save)=\"onEditFormPanelSave(null)\"\n (cancel)=\"onEditFormPanelCancel(null)\"\n (tab)=\"onTabKeyDown($event, index)\"\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\n >\n </bsu-barsa-table-column>\n</ng-template>\n<ng-template #statusIndicator>\n <bsu-barsa-column-indicator\n [hideBorderBottom]=\"!detailsCollapsed\"\n *ngIf=\"rowIndicator\"\n [backColor]=\"rowIndicatorColor\"\n >\n </bsu-barsa-column-indicator>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId"], outputs: ["titleChanged", "moChanged", "formClose", "formRendered"] }, { kind: "component", type: i3.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "directive", type: i3.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "component", type: i4.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i7.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i7.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i8.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i9.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "dismissLabel", "width", "minWidth", "marginBottom"], outputs: ["onDismiss"] }, { kind: "directive", type: i10.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i10.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "directive", type: i10.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "component", type: i11.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i12.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i13.BarsaTableColumnComponent, selector: "bsu-barsa-table-column" }, { kind: "component", type: i14.BarsaColumnIndicatorComponent, selector: "bsu-barsa-column-indicator", inputs: ["backColor", "hideBorderBottom"] }, { kind: "directive", type: i15.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i3.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i3.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
40
|
+
BarsaTableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: { showDetailsInRow: "showDetailsInRow", detailsComponent: "detailsComponent", detailsColumns: "detailsColumns", detailsText: "detailsText", columnComponents: "columnComponents" }, providers: [FormPanelService], viewQueries: [{ propertyName: "detailsFormItems", first: true, predicate: ["detailsFormItems"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<tr\n [class.row-error]=\"hasError\"\n [class.showdetails-on]=\"!detailsCollapsed\"\n #trEl\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [activable]=\"false\"\n [hoverable]=\"false\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [main]=\"true\"\n [focusable]=\"true\"\n [attr.aria-selected]=\"isChecked\"\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\n [class.brule-message]=\"bruleActionMessage || workflowState?.errorText\"\n [class.workflow-pending]=\"workflowState?.state === 'Pending'\"\n>\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\n <td\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n fd-table-cell\n style=\"font-weight: bold; font-size: 1rem\"\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n class=\"row-group\"\n [class.mobile-mode]=\"secondaryColumns?.length\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 0\"\n >\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n (click)=\"onExpandClick()\"\n ></button>\n {{ mo.$Group }}\n </td>\n </ng-container>\n <ng-template #renderRow>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell *ngIf=\"isCheckList\">\n <div\n *ngIf=\"workflowState?.state === 'Pending'\"\n style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\"\n >\n <bsu-mask [top]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\n </div>\n\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n </td>\n <td\n fd-table-cell\n class=\"single-select\"\n *ngIf=\"!isCheckList\"\n (click)=\"onRowCheck()\"\n style=\"padding: 0; text-align: center\"\n >\n <ng-container\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\n >\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\n <fd-busy-indicator\n *ngIf=\"saving\"\n [loading]=\"true\"\n [size]=\"'s'\"\n title=\"record saving\"\n ></fd-busy-indicator>\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\n </ng-container>\n <ng-template #iconStateTemplate>\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\n </ng-template>\n </td>\n <ng-container *ngFor=\"let column of columns; let columnIndex = index\">\n <td\n *ngIf=\"(rowIndicator && columnIndex > 0) || !rowIndicator\"\n [attr.dbName]=\"column.Name\"\n #tdEl\n fd-table-cell\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"tdEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n [focusable]=\"false\"\n (click)=\"onRowCheck()\"\n (dblclick)=\"onRowClick()\"\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </td>\n </ng-container>\n <td\n class=\"col-context-menu\"\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\n fd-table-cell\n >\n <bsu-ulv-context-menu\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [mo]=\"mo\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n [menuItems]=\"contextMenuItems\"\n [allColumns]=\"allColumns\"\n ></bsu-ulv-context-menu>\n </td>\n <td\n class=\"col-details\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\n fd-button\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onRowDetails()\"\n ></button>\n </td>\n <td\n class=\"col-view\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n fd-button\n [glyph]=\"navigationArrow\"\n [navigation]=\"true\"\n [fdType]=\"'transparent'\"\n role=\"presentation\"\n (click)=\"onRowClick()\"\n ></button>\n </td>\n </ng-template>\n</tr>\n\n<tr\n #trEl\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [secondary]=\"true\"\n class=\"secondary-row\"\n [class.no-edit-mode]=\"!inlineEditMode\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\n <p\n #pEl\n fd-table-text\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"pEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n >\n <label fd-form-label>{{ column.Caption }} :</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </p>\n </td>\n</tr>\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems.length ? 1 : 0) +\n (canView ? 1 : 0) +\n (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container>\n <bnrc-form\n (click)=\"OnCartableFormClick($event)\"\n class=\"cartable-template\"\n [params]=\"cartableParams\"\n (formClose)=\"onCartableFormClosed()\"\n ></bnrc-form>\n </ng-container>\n </td>\n</tr>\n<tr\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\n fd-table-row\n class=\"showdetails\"\n [attr.aria-selected]=\"isChecked\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\n <bnrc-dynamic-item-component\n [component]=\"detailsComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"detailsComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [typeDefId]=\"typeDefId\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n </td>\n</tr>\n<ng-template #detailsColumnsTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n detailsFormItems;\n context: {\n $implicit: detailsColumns,\n mo: mo,\n inlineEditMode: inlineEditMode,\n layout94: layout$\n }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\n <div class=\"form-items\">\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip\n *ngIf=\"bruleActionMessage.MessageType === 2\"\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\n [dismissible]=\"false\"\n >\n {{ bruleActionMessage.MessageExpression }}\n </fd-message-strip>\n </td>\n</tr>\n<tr *ngIf=\"workflowState?.errorText\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip type=\"error\" [dismissible]=\"true\" (onDismiss)=\"resetWorkflowState.emit()\">\n {{ workflowState.errorText }}\n </fd-message-strip>\n </td>\n</tr>\n<ng-template\n #columnTemplate\n let-column\n let-mo=\"mo\"\n let-index=\"index\"\n let-inlineEditMode=\"inlineEditMode\"\n let-layout94=\"layout94\"\n>\n <bsu-barsa-table-column\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo\"\n [icon]=\"column | columnIcon: mo\"\n [customComponent]=\"column.$CustomComponent\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [inlineEditMode]=\"inlineEditMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [layout94]=\"layout94\"\n (save)=\"onEditFormPanelSave(null)\"\n (cancel)=\"onEditFormPanelCancel(null)\"\n (tab)=\"onTabKeyDown($event, index)\"\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\n >\n </bsu-barsa-table-column>\n</ng-template>\n<ng-template #statusIndicator>\n <bsu-barsa-column-indicator\n [hideBorderBottom]=\"!detailsCollapsed\"\n *ngIf=\"rowIndicator\"\n [backColor]=\"rowIndicatorColor\"\n >\n </bsu-barsa-column-indicator>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId"], outputs: ["titleChanged", "moChanged", "formClose", "formRendered"] }, { kind: "component", type: i3.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "directive", type: i3.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "component", type: i4.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i7.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i7.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i8.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i9.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "dismissLabel", "width", "minWidth", "marginBottom"], outputs: ["onDismiss"] }, { kind: "directive", type: i10.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i10.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "directive", type: i10.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "component", type: i11.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i12.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i13.BarsaTableColumnComponent, selector: "bsu-barsa-table-column" }, { kind: "component", type: i14.BarsaColumnIndicatorComponent, selector: "bsu-barsa-column-indicator", inputs: ["backColor", "hideBorderBottom"] }, { kind: "directive", type: i15.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i3.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i3.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
41
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTableRowComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
43
|
-
args: [{ selector: 'bsu-barsa-table-row', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<tr\n [class.row-error]=\"hasError\"\n [class.showdetails-on]=\"!detailsCollapsed\"\n #trEl\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [activable]=\"false\"\n [hoverable]=\"false\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [main]=\"true\"\n [focusable]=\"true\"\n [attr.aria-selected]=\"isChecked\"\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\n [class.brule-message]=\"bruleActionMessage || workflowState?.errorText\"\n [class.workflow-pending]=\"workflowState?.state === 'Pending'\"\n>\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\n <td\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n fd-table-cell\n style=\"font-weight: bold; font-size: 1.2rem\"\n [attr.colspan]=\"canView ? columnsCount + 1 : columnsCount\"\n class=\"row-group\"\n [class.mobile-mode]=\"secondaryColumns?.length\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 0\"\n >\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n [disabled]=\"inlineEditMode\"\n (click)=\"onExpandClick()\"\n ></button>\n {{ mo.$Group }}\n </td>\n </ng-container>\n <ng-template #renderRow>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell *ngIf=\"isCheckList\">\n <div\n *ngIf=\"workflowState?.state === 'Pending'\"\n style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\"\n >\n <bsu-mask [top]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\n </div>\n\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n </td>\n <td\n fd-table-cell\n class=\"single-select\"\n *ngIf=\"!isCheckList\"\n (click)=\"onRowCheck()\"\n style=\"padding: 0; text-align: center\"\n >\n <ng-container\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\n >\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\n <fd-busy-indicator\n *ngIf=\"saving\"\n [loading]=\"true\"\n [size]=\"'s'\"\n title=\"record saving\"\n ></fd-busy-indicator>\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\n </ng-container>\n <ng-template #iconStateTemplate>\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\n </ng-template>\n </td>\n <ng-container *ngFor=\"let column of columns; let columnIndex = index\">\n <td\n *ngIf=\"(rowIndicator && columnIndex > 0) || !rowIndicator\"\n [attr.dbName]=\"column.Name\"\n #tdEl\n fd-table-cell\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"tdEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n [focusable]=\"false\"\n (click)=\"onRowCheck()\"\n (dblclick)=\"onRowClick()\"\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </td>\n </ng-container>\n <td\n class=\"col-context-menu\"\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\n fd-table-cell\n >\n <bsu-ulv-context-menu\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [mo]=\"mo\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n [menuItems]=\"contextMenuItems\"\n [allColumns]=\"allColumns\"\n ></bsu-ulv-context-menu>\n </td>\n <td\n class=\"col-details\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\n fd-button\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onRowDetails()\"\n ></button>\n </td>\n <td\n class=\"col-view\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n fd-button\n [glyph]=\"navigationArrow\"\n [navigation]=\"true\"\n [fdType]=\"'transparent'\"\n role=\"presentation\"\n (click)=\"onRowClick()\"\n ></button>\n </td>\n </ng-template>\n</tr>\n\n<tr\n #trEl\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [secondary]=\"true\"\n class=\"secondary-row\"\n [class.no-edit-mode]=\"!inlineEditMode\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\n <p\n #pEl\n fd-table-text\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"pEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n >\n <label fd-form-label>{{ column.Caption }} :</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </p>\n </td>\n</tr>\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems.length ? 1 : 0) +\n (canView ? 1 : 0) +\n (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container>\n <bnrc-form\n (click)=\"OnCartableFormClick($event)\"\n class=\"cartable-template\"\n [params]=\"cartableParams\"\n (formClose)=\"onCartableFormClosed()\"\n ></bnrc-form>\n </ng-container>\n </td>\n</tr>\n<tr\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\n fd-table-row\n class=\"showdetails\"\n [attr.aria-selected]=\"isChecked\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\n <bnrc-dynamic-item-component\n [component]=\"detailsComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"detailsComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [typeDefId]=\"typeDefId\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n </td>\n</tr>\n<ng-template #detailsColumnsTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n detailsFormItems;\n context: {\n $implicit: detailsColumns,\n mo: mo,\n inlineEditMode: inlineEditMode,\n layout94: layout$\n }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\n <div class=\"form-items\">\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip\n *ngIf=\"bruleActionMessage.MessageType === 2\"\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\n [dismissible]=\"false\"\n >\n {{ bruleActionMessage.MessageExpression }}\n </fd-message-strip>\n </td>\n</tr>\n<tr *ngIf=\"workflowState?.errorText\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip type=\"error\" [dismissible]=\"true\" (onDismiss)=\"resetWorkflowState.emit()\">\n {{ workflowState.errorText }}\n </fd-message-strip>\n </td>\n</tr>\n<ng-template\n #columnTemplate\n let-column\n let-mo=\"mo\"\n let-index=\"index\"\n let-inlineEditMode=\"inlineEditMode\"\n let-layout94=\"layout94\"\n>\n <bsu-barsa-table-column\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo\"\n [icon]=\"column | columnIcon: mo\"\n [customComponent]=\"column.$CustomComponent\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [inlineEditMode]=\"inlineEditMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [layout94]=\"layout94\"\n (save)=\"onEditFormPanelSave(null)\"\n (cancel)=\"onEditFormPanelCancel(null)\"\n (tab)=\"onTabKeyDown($event, index)\"\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\n >\n </bsu-barsa-table-column>\n</ng-template>\n<ng-template #statusIndicator>\n <bsu-barsa-column-indicator\n [hideBorderBottom]=\"!detailsCollapsed\"\n *ngIf=\"rowIndicator\"\n [backColor]=\"rowIndicatorColor\"\n >\n </bsu-barsa-column-indicator>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}\n"] }]
|
|
43
|
+
args: [{ selector: 'bsu-barsa-table-row', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<tr\n [class.row-error]=\"hasError\"\n [class.showdetails-on]=\"!detailsCollapsed\"\n #trEl\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [activable]=\"false\"\n [hoverable]=\"false\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [main]=\"true\"\n [focusable]=\"true\"\n [attr.aria-selected]=\"isChecked\"\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\n [class.brule-message]=\"bruleActionMessage || workflowState?.errorText\"\n [class.workflow-pending]=\"workflowState?.state === 'Pending'\"\n>\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\n <td\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n fd-table-cell\n style=\"font-weight: bold; font-size: 1rem\"\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n class=\"row-group\"\n [class.mobile-mode]=\"secondaryColumns?.length\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 0\"\n >\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n (click)=\"onExpandClick()\"\n ></button>\n {{ mo.$Group }}\n </td>\n </ng-container>\n <ng-template #renderRow>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell *ngIf=\"isCheckList\">\n <div\n *ngIf=\"workflowState?.state === 'Pending'\"\n style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\"\n >\n <bsu-mask [top]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\n </div>\n\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n </td>\n <td\n fd-table-cell\n class=\"single-select\"\n *ngIf=\"!isCheckList\"\n (click)=\"onRowCheck()\"\n style=\"padding: 0; text-align: center\"\n >\n <ng-container\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\n >\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\n <fd-busy-indicator\n *ngIf=\"saving\"\n [loading]=\"true\"\n [size]=\"'s'\"\n title=\"record saving\"\n ></fd-busy-indicator>\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\n </ng-container>\n <ng-template #iconStateTemplate>\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\n </ng-template>\n </td>\n <ng-container *ngFor=\"let column of columns; let columnIndex = index\">\n <td\n *ngIf=\"(rowIndicator && columnIndex > 0) || !rowIndicator\"\n [attr.dbName]=\"column.Name\"\n #tdEl\n fd-table-cell\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"tdEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n [focusable]=\"false\"\n (click)=\"onRowCheck()\"\n (dblclick)=\"onRowClick()\"\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </td>\n </ng-container>\n <td\n class=\"col-context-menu\"\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\n fd-table-cell\n >\n <bsu-ulv-context-menu\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [mo]=\"mo\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n [menuItems]=\"contextMenuItems\"\n [allColumns]=\"allColumns\"\n ></bsu-ulv-context-menu>\n </td>\n <td\n class=\"col-details\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\n fd-button\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onRowDetails()\"\n ></button>\n </td>\n <td\n class=\"col-view\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n fd-button\n [glyph]=\"navigationArrow\"\n [navigation]=\"true\"\n [fdType]=\"'transparent'\"\n role=\"presentation\"\n (click)=\"onRowClick()\"\n ></button>\n </td>\n </ng-template>\n</tr>\n\n<tr\n #trEl\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [secondary]=\"true\"\n class=\"secondary-row\"\n [class.no-edit-mode]=\"!inlineEditMode\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\n <p\n #pEl\n fd-table-text\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"pEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n >\n <label fd-form-label>{{ column.Caption }} :</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </p>\n </td>\n</tr>\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems.length ? 1 : 0) +\n (canView ? 1 : 0) +\n (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container>\n <bnrc-form\n (click)=\"OnCartableFormClick($event)\"\n class=\"cartable-template\"\n [params]=\"cartableParams\"\n (formClose)=\"onCartableFormClosed()\"\n ></bnrc-form>\n </ng-container>\n </td>\n</tr>\n<tr\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\n fd-table-row\n class=\"showdetails\"\n [attr.aria-selected]=\"isChecked\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\n <bnrc-dynamic-item-component\n [component]=\"detailsComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"detailsComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [typeDefId]=\"typeDefId\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n </td>\n</tr>\n<ng-template #detailsColumnsTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n detailsFormItems;\n context: {\n $implicit: detailsColumns,\n mo: mo,\n inlineEditMode: inlineEditMode,\n layout94: layout$\n }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\n <div class=\"form-items\">\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip\n *ngIf=\"bruleActionMessage.MessageType === 2\"\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\n [dismissible]=\"false\"\n >\n {{ bruleActionMessage.MessageExpression }}\n </fd-message-strip>\n </td>\n</tr>\n<tr *ngIf=\"workflowState?.errorText\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip type=\"error\" [dismissible]=\"true\" (onDismiss)=\"resetWorkflowState.emit()\">\n {{ workflowState.errorText }}\n </fd-message-strip>\n </td>\n</tr>\n<ng-template\n #columnTemplate\n let-column\n let-mo=\"mo\"\n let-index=\"index\"\n let-inlineEditMode=\"inlineEditMode\"\n let-layout94=\"layout94\"\n>\n <bsu-barsa-table-column\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo\"\n [icon]=\"column | columnIcon: mo\"\n [customComponent]=\"column.$CustomComponent\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [inlineEditMode]=\"inlineEditMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [layout94]=\"layout94\"\n (save)=\"onEditFormPanelSave(null)\"\n (cancel)=\"onEditFormPanelCancel(null)\"\n (tab)=\"onTabKeyDown($event, index)\"\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\n >\n </bsu-barsa-table-column>\n</ng-template>\n<ng-template #statusIndicator>\n <bsu-barsa-column-indicator\n [hideBorderBottom]=\"!detailsCollapsed\"\n *ngIf=\"rowIndicator\"\n [backColor]=\"rowIndicatorColor\"\n >\n </bsu-barsa-column-indicator>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}\n"] }]
|
|
44
44
|
}], propDecorators: { showDetailsInRow: [{
|
|
45
45
|
type: Input
|
|
46
46
|
}], detailsComponent: [{
|
|
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
55
55
|
type: ViewChild,
|
|
56
56
|
args: ['detailsFormItems', { static: true }]
|
|
57
57
|
}] } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLXJvdy9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtcm93L2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxnQkFBZ0IsRUFBK0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTakgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDBCQUEwQjtJQVB0RTs7UUFRYSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFPbEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDO0tBZTNCO0lBYkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsdUJBQXVCLEdBQUc7WUFDM0IsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNwQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQzNDLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxLQUFoQixJQUFJLENBQUMsV0FBVyxHQUFLLFNBQVMsRUFBQztJQUNuQyxDQUFDO0lBQ0QsWUFBWTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7O21IQXRCUSxzQkFBc0I7dUdBQXRCLHNCQUFzQiwwT0FIcEIsQ0FBQyxnQkFBZ0IsQ0FBQyxxTENSakMsODdiQW9YQTsyRkR6V2Esc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNJLHFCQUFxQixhQUdwQixDQUFDLGdCQUFnQixDQUFDLG1CQUNaLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDMkMsZ0JBQWdCO3NCQUFoRSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vRm9yUmVwb3J0TW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCwgRm9ybVBhbmVsU2VydmljZSwgRWpyYXlPbGdvLCBSZXBvcnRWaWV3Q29sdW1uIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10YWJsZS1yb3cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGFibGVSb3dDb21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgc2hvd0RldGFpbHNJblJvdyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGRldGFpbHNDb21wb25lbnQ/OiBFanJheU9sZ287XG4gICAgQElucHV0KCkgZGV0YWlsc0NvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcbiAgICBASW5wdXQoKSBkZXRhaWxzVGV4dDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNvbHVtbkNvbXBvbmVudHM6IE1vRm9yUmVwb3J0TW9kZWwgfCBudWxsO1xuICAgIEBWaWV3Q2hpbGQoJ2RldGFpbHNGb3JtSXRlbXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBkZXRhaWxzRm9ybUl0ZW1zOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgZGV0YWlsc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgZGV0YWlsc0NvbXBvbmVudFNldHRpbmc6IGFueTtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5kZXRhaWxzQ29tcG9uZW50U2V0dGluZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuc2V0dGluZyxcbiAgICAgICAgICAgICRkZXRhaWxzQ29sdW1uczogdGhpcy5kZXRhaWxzQ29sdW1ucyxcbiAgICAgICAgICAgICRkZXRhaWxzRm9ybUl0ZW1zOiB0aGlzLmRldGFpbHNGb3JtSXRlbXNcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kZXRhaWxzVGV4dCB8fD0gJ0RldGFpbHMnO1xuICAgIH1cbiAgICBvblJvd0RldGFpbHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGV0YWlsc0NvbGxhcHNlZCA9ICF0aGlzLmRldGFpbHNDb2xsYXBzZWQ7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPHRyXG4gICAgW2NsYXNzLnJvdy1lcnJvcl09XCJoYXNFcnJvclwiXG4gICAgW2NsYXNzLnNob3dkZXRhaWxzLW9uXT1cIiFkZXRhaWxzQ29sbGFwc2VkXCJcbiAgICAjdHJFbFxuICAgICpuZ0lmPVwiKCFtby4kUGFyZW50IHx8IHBhcmVudEV4cGFuZGVkKSAmJiB2aXNpYmlsaXR5ICE9PSBmYWxzZVwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgW2FjdGl2YWJsZV09XCJmYWxzZVwiXG4gICAgW2hvdmVyYWJsZV09XCJmYWxzZVwiXG4gICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgW2hvc3RFbF09XCJ0ckVsXCJcbiAgICBbbWFpbl09XCJ0cnVlXCJcbiAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCJcbiAgICBbZm9jdXNhYmxlXT1cIiFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0XCJcbiAgICBbY2xhc3MuYnJ1bGUtbWVzc2FnZV09XCJicnVsZUFjdGlvbk1lc3NhZ2UgfHwgd29ya2Zsb3dTdGF0ZT8uZXJyb3JUZXh0XCJcbiAgICBbY2xhc3Mud29ya2Zsb3ctcGVuZGluZ109XCJ3b3JrZmxvd1N0YXRlPy5zdGF0ZSA9PT0gJ1BlbmRpbmcnXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW8uJEdyb3VwIHx8IG1vLiRHcm91cCA9PT0gJyc7IGVsc2UgcmVuZGVyUm93XCI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwicnRsID8gJ2NhbGMoIDFyZW0gKyAnICsgbGV2ZWwgKiAxMiArICdweCcgKyAnICknIDogJ2luaGVyaXQnXCJcbiAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwiIXJ0bCA/ICdjYWxjKCAxcmVtICsgJyArIGxldmVsICogMTIgKyAncHgnICsgJyApJyA6ICdpbmhlcml0J1wiXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDEuMnJlbVwiXG4gICAgICAgICAgICBbYXR0ci5jb2xzcGFuXT1cImNhblZpZXcgPyBjb2x1bW5zQ291bnQgKyAxIDogY29sdW1uc0NvdW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwicm93LWdyb3VwXCJcbiAgICAgICAgICAgIFtjbGFzcy5tb2JpbGUtbW9kZV09XCJzZWNvbmRhcnlDb2x1bW5zPy5sZW5ndGhcIlxuICAgICAgICAgICAgW2F0dHIubGV2ZWxdPVwibGV2ZWxcIlxuICAgICAgICAgICAgW2NsYXNzLnJvb3QtZ3JvdXBdPVwibGV2ZWwgPT09IDBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZXhwYW5kZWQgIT09IGZhbHNlID8gJ25hdmlnYXRpb24tZG93bi1hcnJvdycgOiAnbmF2aWdhdGlvbi1sZWZ0LWFycm93J1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjZWxsLWV4cGFuZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlubGluZUVkaXRNb2RlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FeHBhbmRDbGljaygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIHt7IG1vLiRHcm91cCB9fVxuICAgICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjcmVuZGVyUm93PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhdHVzSW5kaWNhdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsICpuZ0lmPVwiaXNDaGVja0xpc3RcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cIndvcmtmbG93U3RhdGU/LnN0YXRlID09PSAnUGVuZGluZydcIlxuICAgICAgICAgICAgICAgIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyByaWdodDogMDsgYm90dG9tOiAwOyB0b3A6IDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxic3UtbWFzayBbdG9wXT1cIicyMHB4J1wiIFtzaXplXT1cIidzJ1wiPjwvYnN1LW1hc2s+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGZkLWNoZWNrYm94IFtuYW1lXT1cIm1vLiRDYXB0aW9uXCIgW25nTW9kZWxdPVwiaXNDaGVja2VkXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25Sb3dDaGVjaygpXCI+PC9mZC1jaGVja2JveD5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBjbGFzcz1cInNpbmdsZS1zZWxlY3RcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiXG4gICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdCAmJiAoaGFzRXJyb3IgfHwgc2F2aW5nIHx8IHNhdmVkKTsgZWxzZSBpY29uU3RhdGVUZW1wbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJoYXNFcnJvclwiIGNsYXNzPVwic2F2ZS1lcnJvclwiIGdseXBoPVwiZXJyb3JcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgPGZkLWJ1c3ktaW5kaWNhdG9yXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2F2aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidzJ1wiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwicmVjb3JkIHNhdmluZ1wiXG4gICAgICAgICAgICAgICAgPjwvZmQtYnVzeS1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJzYXZlZFwiIGNsYXNzPVwic2F2ZS1zdWNjZXNzXCIgZ2x5cGg9XCJhY2NlcHRcIj48L2ZkLWljb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvblN0YXRlVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJtby4kU3RhdGUgPT09ICdOZXcnICYmICFpc0NoZWNrZWRcIiBnbHlwaD1cImZhdm9yaXRlXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgIDxmZC1pY29uICpuZ0lmPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0ICYmIGlzQ2hlY2tlZFwiIGdseXBoPVwiZWRpdFwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgY29sdW1uSW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIocm93SW5kaWNhdG9yICYmIGNvbHVtbkluZGV4ID4gMCkgfHwgIXJvd0luZGljYXRvclwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgICAgICAgICAjdGRFbFxuICAgICAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICBbaG9zdEVsXT1cInRkRWxcIlxuICAgICAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgICAgICAgICAgICAgIFtkYk5hbWVdPVwiY29sdW1uLk5hbWVcIlxuICAgICAgICAgICAgICAgIFtmb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgICAgIFtob3ZlcmFibGVdPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgY2xhc3M9XCJjb2wtY29udGV4dC1tZW51XCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29udGV4dE1lbnVJdGVtcz8ubGVuZ3RoICYmICghaW5saW5lRWRpdE1vZGUgfHwgIWFsbG93SW5saW5lRWRpdClcIlxuICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICA+XG4gICAgICAgICAgICA8YnN1LXVsdi1jb250ZXh0LW1lbnVcbiAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgID48L2JzdS11bHYtY29udGV4dC1tZW51PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGRcbiAgICAgICAgICAgIGNsYXNzPVwiY29sLWRldGFpbHNcIlxuICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICAgICAgW2ZpdENvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dEZXRhaWxzSW5Sb3cgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImRldGFpbHNDb21wb25lbnQ/LlNlbGVjdG9yIHx8IGNhcnRhYmxlUGFyYW1zPy5tb0lkXCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiKGRldGFpbHNDb2xsYXBzZWQgPyBkZXRhaWxzVGV4dCA6ICdIaWRlJykgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93RGV0YWlscygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICBjbGFzcz1cImNvbC12aWV3XCJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIFtmaXRDb250ZW50XT1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaGlkZU9wZW5JY29uICYmIGNhblZpZXcgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICBbbmF2aWdhdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3RyPlxuXG48dHJcbiAgICAjdHJFbFxuICAgICpuZ0lmPVwic2Vjb25kYXJ5Q29sdW1ucz8ubGVuZ3RoICYmICFtby4kR3JvdXAgJiYgKCFtby4kUGFyZW50IHx8IHBhcmVudEV4cGFuZGVkKSAmJiB2aXNpYmlsaXR5ICE9PSBmYWxzZVwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgW3NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICBjbGFzcz1cInNlY29uZGFyeS1yb3dcIlxuICAgIFtjbGFzcy5uby1lZGl0LW1vZGVdPVwiIWlubGluZUVkaXRNb2RlXCJcbiAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICBbaG9zdEVsXT1cInRyRWxcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkICYmICFpbmxpbmVFZGl0TW9kZSA/IHRydWUgOiBmYWxzZVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPHRkIGZkLXRhYmxlLWNlbGwgY2xhc3M9XCJzaW5nbGUtc2VsZWN0XCIgKm5nSWY9XCIhaXNDaGVja0xpc3RcIiAoY2xpY2spPVwib25Sb3dDaGVjaygpXCI+PC90ZD5cbiAgICA8dGQgZmQtdGFibGUtY2VsbCBjb2xzcGFuPVwiMTAwJVwiIChjbGljayk9XCJvblJvd0NoZWNrKClcIj5cbiAgICAgICAgPHBcbiAgICAgICAgICAgICNwRWxcbiAgICAgICAgICAgIGZkLXRhYmxlLXRleHRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2Ygc2Vjb25kYXJ5Q29sdW1uczsgbGV0IGNvbHVtbkluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IF90cmFja0J5Q29sdW1uXCJcbiAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgW2hvc3RFbF09XCJwRWxcIlxuICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICBbZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWw+e3sgY29sdW1uLkNhcHRpb24gfX0gOjwvbGFiZWw+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lRWRpdE1vZGU6IGlubGluZUVkaXRNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luY1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9wPlxuICAgIDwvdGQ+XG48L3RyPlxuPHRyICpuZ0lmPVwiIWRldGFpbHNDb2xsYXBzZWQgJiYgY2FydGFibGVQYXJhbXM/Lm1vSWRcIiBmZC10YWJsZS1yb3cgY2xhc3M9XCJzaG93ZGV0YWlsc1wiIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDx0ZFxuICAgICAgICAoY2xpY2spPVwib25Sb3dDaGVjaygpXCJcbiAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICBbYXR0ci5jb2xzcGFuXT1cIlxuICAgICAgICAgICAgY29sdW1ucy5sZW5ndGggK1xuICAgICAgICAgICAgMSArXG4gICAgICAgICAgICAocm93SW5kaWNhdG9yID8gLTEgOiAwKSArXG4gICAgICAgICAgICAoY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPyAxIDogMCkgK1xuICAgICAgICAgICAgKGNhblZpZXcgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dEZXRhaWxzSW5Sb3cgPyAxIDogMClcbiAgICAgICAgXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICA8Ym5yYy1mb3JtXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIk9uQ2FydGFibGVGb3JtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJ0YWJsZS10ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgW3BhcmFtc109XCJjYXJ0YWJsZVBhcmFtc1wiXG4gICAgICAgICAgICAgICAgKGZvcm1DbG9zZSk9XCJvbkNhcnRhYmxlRm9ybUNsb3NlZCgpXCJcbiAgICAgICAgICAgID48L2JucmMtZm9ybT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90ZD5cbjwvdHI+XG48dHJcbiAgICAqbmdJZj1cIiFkZXRhaWxzQ29sbGFwc2VkICYmIGRldGFpbHNDb21wb25lbnQ/LlNlbGVjdG9yXCJcbiAgICBmZC10YWJsZS1yb3dcbiAgICBjbGFzcz1cInNob3dkZXRhaWxzXCJcbiAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzQ2hlY2tlZFwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPHRkXG4gICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAxICtcbiAgICAgICAgICAgIChyb3dJbmRpY2F0b3IgPyAtMSA6IDApICtcbiAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dWaWV3QnV0dG9uID8gMSA6IDApICtcbiAgICAgICAgICAgIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRldGFpbHNDb2x1bW5zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNDb21wb25lbnQgJiYgZGV0YWlsc0NvbXBvbmVudC5TZWxlY3RvclwiPlxuICAgICAgICAgICAgPGJucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudFxuICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwiZGV0YWlsc0NvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgW1Vsdk1haW5DdHJscl09XCJVbHZNYWluQ3RybHJcIlxuICAgICAgICAgICAgICAgIFtzZXR0aW5nXT1cImRldGFpbHNDb21wb25lbnRTZXR0aW5nXCJcbiAgICAgICAgICAgICAgICBbcGFyYW1ldGVyc109XCJkZXRhaWxzQ29tcG9uZW50LlNldHRpbmdzXCJcbiAgICAgICAgICAgICAgICBbZWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICAgICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXG4gICAgICAgICAgICAgICAgW3R5cGVEZWZJZF09XCJ0eXBlRGVmSWRcIlxuICAgICAgICAgICAgPjwvYm5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RkPlxuPC90cj5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlsc0NvbHVtbnNUZW1wbGF0ZT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBkZXRhaWxzRm9ybUl0ZW1zO1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZGV0YWlsc0NvbHVtbnMsXG4gICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JFxuICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2RldGFpbHNGb3JtSXRlbXMgbGV0LWRldGFpbHNDb2x1bW5zIGxldC1tbz1cIm1vXCIgbGV0LWlubGluZUVkaXRNb2RlPVwiaW5saW5lRWRpdE1vZGVcIiBsZXQtbGF5b3V0JD1cImxheW91dCRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1pdGVtc1wiPlxuICAgICAgICA8ZGl2IGZkLWZvcm0taXRlbSAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGRldGFpbHNDb2x1bW5zOyBsZXQgY29sdW1uSW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWwgZm9yPVwiaW5wdXQtMlwiPnt7IGNvbHVtbi5DYXB0aW9uIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBjb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogY29sdW1uSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmxpbmVFZGl0TW9kZTogaW5saW5lRWRpdE1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48dHIgKm5nSWY9XCJicnVsZUFjdGlvbk1lc3NhZ2UgJiYgaW5saW5lRWRpdE1vZGVcIiBmZC10YWJsZS1yb3c+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDx0ZFxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAxICtcbiAgICAgICAgICAgIChyb3dJbmRpY2F0b3IgPyAtMSA6IDApICtcbiAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dWaWV3QnV0dG9uID8gMSA6IDApICtcbiAgICAgICAgICAgIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPGZkLW1lc3NhZ2Utc3RyaXBcbiAgICAgICAgICAgICpuZ0lmPVwiYnJ1bGVBY3Rpb25NZXNzYWdlLk1lc3NhZ2VUeXBlID09PSAyXCJcbiAgICAgICAgICAgIFt0eXBlXT1cImJydWxlQWN0aW9uTWVzc2FnZS5NZXNzYWdlVHlwZSA9PT0gMiA/ICdlcnJvcicgOiAnaW5mb3JtYXRpb24nXCJcbiAgICAgICAgICAgIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGJydWxlQWN0aW9uTWVzc2FnZS5NZXNzYWdlRXhwcmVzc2lvbiB9fVxuICAgICAgICA8L2ZkLW1lc3NhZ2Utc3RyaXA+XG4gICAgPC90ZD5cbjwvdHI+XG48dHIgKm5nSWY9XCJ3b3JrZmxvd1N0YXRlPy5lcnJvclRleHRcIiBmZC10YWJsZS1yb3c+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDx0ZFxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAxICtcbiAgICAgICAgICAgIChyb3dJbmRpY2F0b3IgPyAtMSA6IDApICtcbiAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dWaWV3QnV0dG9uID8gMSA6IDApICtcbiAgICAgICAgICAgIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPGZkLW1lc3NhZ2Utc3RyaXAgdHlwZT1cImVycm9yXCIgW2Rpc21pc3NpYmxlXT1cInRydWVcIiAob25EaXNtaXNzKT1cInJlc2V0V29ya2Zsb3dTdGF0ZS5lbWl0KClcIj5cbiAgICAgICAgICAgIHt7IHdvcmtmbG93U3RhdGUuZXJyb3JUZXh0IH19XG4gICAgICAgIDwvZmQtbWVzc2FnZS1zdHJpcD5cbiAgICA8L3RkPlxuPC90cj5cbjxuZy10ZW1wbGF0ZVxuICAgICNjb2x1bW5UZW1wbGF0ZVxuICAgIGxldC1jb2x1bW5cbiAgICBsZXQtbW89XCJtb1wiXG4gICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgIGxldC1pbmxpbmVFZGl0TW9kZT1cImlubGluZUVkaXRNb2RlXCJcbiAgICBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiXG4+XG4gICAgPGJzdS1iYXJzYS10YWJsZS1jb2x1bW5cbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbdmFsdWVdPVwiY29sdW1uIHwgY29sdW1uVmFsdWU6IG1vXCJcbiAgICAgICAgW2ljb25dPVwiY29sdW1uIHwgY29sdW1uSWNvbjogbW9cIlxuICAgICAgICBbY3VzdG9tQ29tcG9uZW50XT1cImNvbHVtbi4kQ3VzdG9tQ29tcG9uZW50XCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbZWRpdE1vZGVdPVwiaXNDaGVja2VkICYmIGlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFtpc0NoZWNrZWRdPVwiaXNDaGVja2VkXCJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtsYXlvdXQ5NF09XCJsYXlvdXQ5NFwiXG4gICAgICAgIChzYXZlKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUobnVsbClcIlxuICAgICAgICAoY2FuY2VsKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbChudWxsKVwiXG4gICAgICAgICh0YWIpPVwib25UYWJLZXlEb3duKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgKGNoYW5nZVRvRWRpdE1vZGUpPVwib25Db2x1bW5DaGFuZ2VUb0VkaXRNb2RlKCRldmVudCwgaW5kZXgpXCJcbiAgICA+XG4gICAgPC9ic3UtYmFyc2EtdGFibGUtY29sdW1uPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjc3RhdHVzSW5kaWNhdG9yPlxuICAgIDxic3UtYmFyc2EtY29sdW1uLWluZGljYXRvclxuICAgICAgICBbaGlkZUJvcmRlckJvdHRvbV09XCIhZGV0YWlsc0NvbGxhcHNlZFwiXG4gICAgICAgICpuZ0lmPVwicm93SW5kaWNhdG9yXCJcbiAgICAgICAgW2JhY2tDb2xvcl09XCJyb3dJbmRpY2F0b3JDb2xvclwiXG4gICAgPlxuICAgIDwvYnN1LWJhcnNhLWNvbHVtbi1pbmRpY2F0b3I+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLXJvdy9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtcm93L2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxnQkFBZ0IsRUFBK0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTakgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDBCQUEwQjtJQVB0RTs7UUFRYSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFPbEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDO0tBZTNCO0lBYkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsdUJBQXVCLEdBQUc7WUFDM0IsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNwQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQzNDLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxLQUFoQixJQUFJLENBQUMsV0FBVyxHQUFLLFNBQVMsRUFBQztJQUNuQyxDQUFDO0lBQ0QsWUFBWTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7O21IQXRCUSxzQkFBc0I7dUdBQXRCLHNCQUFzQiwwT0FIcEIsQ0FBQyxnQkFBZ0IsQ0FBQyxxTENSakMsK3BjQTBYQTsyRkQvV2Esc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNJLHFCQUFxQixhQUdwQixDQUFDLGdCQUFnQixDQUFDLG1CQUNaLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDMkMsZ0JBQWdCO3NCQUFoRSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vRm9yUmVwb3J0TW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCwgRm9ybVBhbmVsU2VydmljZSwgRWpyYXlPbGdvLCBSZXBvcnRWaWV3Q29sdW1uIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10YWJsZS1yb3cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGFibGVSb3dDb21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgc2hvd0RldGFpbHNJblJvdyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGRldGFpbHNDb21wb25lbnQ/OiBFanJheU9sZ287XG4gICAgQElucHV0KCkgZGV0YWlsc0NvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcbiAgICBASW5wdXQoKSBkZXRhaWxzVGV4dDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNvbHVtbkNvbXBvbmVudHM6IE1vRm9yUmVwb3J0TW9kZWwgfCBudWxsO1xuICAgIEBWaWV3Q2hpbGQoJ2RldGFpbHNGb3JtSXRlbXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBkZXRhaWxzRm9ybUl0ZW1zOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgZGV0YWlsc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgZGV0YWlsc0NvbXBvbmVudFNldHRpbmc6IGFueTtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5kZXRhaWxzQ29tcG9uZW50U2V0dGluZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuc2V0dGluZyxcbiAgICAgICAgICAgICRkZXRhaWxzQ29sdW1uczogdGhpcy5kZXRhaWxzQ29sdW1ucyxcbiAgICAgICAgICAgICRkZXRhaWxzRm9ybUl0ZW1zOiB0aGlzLmRldGFpbHNGb3JtSXRlbXNcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kZXRhaWxzVGV4dCB8fD0gJ0RldGFpbHMnO1xuICAgIH1cbiAgICBvblJvd0RldGFpbHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGV0YWlsc0NvbGxhcHNlZCA9ICF0aGlzLmRldGFpbHNDb2xsYXBzZWQ7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPHRyXG4gICAgW2NsYXNzLnJvdy1lcnJvcl09XCJoYXNFcnJvclwiXG4gICAgW2NsYXNzLnNob3dkZXRhaWxzLW9uXT1cIiFkZXRhaWxzQ29sbGFwc2VkXCJcbiAgICAjdHJFbFxuICAgICpuZ0lmPVwiKCFtby4kUGFyZW50IHx8IHBhcmVudEV4cGFuZGVkKSAmJiB2aXNpYmlsaXR5ICE9PSBmYWxzZVwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgW2FjdGl2YWJsZV09XCJmYWxzZVwiXG4gICAgW2hvdmVyYWJsZV09XCJmYWxzZVwiXG4gICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgW2hvc3RFbF09XCJ0ckVsXCJcbiAgICBbbWFpbl09XCJ0cnVlXCJcbiAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCJcbiAgICBbZm9jdXNhYmxlXT1cIiFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0XCJcbiAgICBbY2xhc3MuYnJ1bGUtbWVzc2FnZV09XCJicnVsZUFjdGlvbk1lc3NhZ2UgfHwgd29ya2Zsb3dTdGF0ZT8uZXJyb3JUZXh0XCJcbiAgICBbY2xhc3Mud29ya2Zsb3ctcGVuZGluZ109XCJ3b3JrZmxvd1N0YXRlPy5zdGF0ZSA9PT0gJ1BlbmRpbmcnXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW8uJEdyb3VwIHx8IG1vLiRHcm91cCA9PT0gJyc7IGVsc2UgcmVuZGVyUm93XCI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwicnRsID8gJ2NhbGMoIDFyZW0gKyAnICsgbGV2ZWwgKiAxMiArICdweCcgKyAnICknIDogJ2luaGVyaXQnXCJcbiAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwiIXJ0bCA/ICdjYWxjKCAxcmVtICsgJyArIGxldmVsICogMTIgKyAncHgnICsgJyApJyA6ICdpbmhlcml0J1wiXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDFyZW1cIlxuICAgICAgICAgICAgW2F0dHIuY29sc3Bhbl09XCJcbiAgICAgICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAgICAgMSArXG4gICAgICAgICAgICAgICAgKHJvd0luZGljYXRvciA/IC0xIDogMCkgK1xuICAgICAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgICAgIChzaG93Vmlld0J1dHRvbiA/IDEgOiAwKSArXG4gICAgICAgICAgICAgICAgKHNob3dEZXRhaWxzSW5Sb3cgJiYgIWlubGluZUVkaXRNb2RlID8gMSA6IDApXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgY2xhc3M9XCJyb3ctZ3JvdXBcIlxuICAgICAgICAgICAgW2NsYXNzLm1vYmlsZS1tb2RlXT1cInNlY29uZGFyeUNvbHVtbnM/Lmxlbmd0aFwiXG4gICAgICAgICAgICBbYXR0ci5sZXZlbF09XCJsZXZlbFwiXG4gICAgICAgICAgICBbY2xhc3Mucm9vdC1ncm91cF09XCJsZXZlbCA9PT0gMFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJleHBhbmRlZCAhPT0gZmFsc2UgPyAnbmF2aWdhdGlvbi1kb3duLWFycm93JyA6ICduYXZpZ2F0aW9uLWxlZnQtYXJyb3cnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNlbGwtZXhwYW5kXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FeHBhbmRDbGljaygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIHt7IG1vLiRHcm91cCB9fVxuICAgICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjcmVuZGVyUm93PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhdHVzSW5kaWNhdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsICpuZ0lmPVwiaXNDaGVja0xpc3RcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cIndvcmtmbG93U3RhdGU/LnN0YXRlID09PSAnUGVuZGluZydcIlxuICAgICAgICAgICAgICAgIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyByaWdodDogMDsgYm90dG9tOiAwOyB0b3A6IDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxic3UtbWFzayBbdG9wXT1cIicyMHB4J1wiIFtzaXplXT1cIidzJ1wiPjwvYnN1LW1hc2s+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGZkLWNoZWNrYm94IFtuYW1lXT1cIm1vLiRDYXB0aW9uXCIgW25nTW9kZWxdPVwiaXNDaGVja2VkXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25Sb3dDaGVjaygpXCI+PC9mZC1jaGVja2JveD5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBjbGFzcz1cInNpbmdsZS1zZWxlY3RcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiXG4gICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdCAmJiAoaGFzRXJyb3IgfHwgc2F2aW5nIHx8IHNhdmVkKTsgZWxzZSBpY29uU3RhdGVUZW1wbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJoYXNFcnJvclwiIGNsYXNzPVwic2F2ZS1lcnJvclwiIGdseXBoPVwiZXJyb3JcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgPGZkLWJ1c3ktaW5kaWNhdG9yXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2F2aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidzJ1wiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwicmVjb3JkIHNhdmluZ1wiXG4gICAgICAgICAgICAgICAgPjwvZmQtYnVzeS1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJzYXZlZFwiIGNsYXNzPVwic2F2ZS1zdWNjZXNzXCIgZ2x5cGg9XCJhY2NlcHRcIj48L2ZkLWljb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvblN0YXRlVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJtby4kU3RhdGUgPT09ICdOZXcnICYmICFpc0NoZWNrZWRcIiBnbHlwaD1cImZhdm9yaXRlXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgIDxmZC1pY29uICpuZ0lmPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0ICYmIGlzQ2hlY2tlZFwiIGdseXBoPVwiZWRpdFwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgY29sdW1uSW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIocm93SW5kaWNhdG9yICYmIGNvbHVtbkluZGV4ID4gMCkgfHwgIXJvd0luZGljYXRvclwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgICAgICAgICAjdGRFbFxuICAgICAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICBbaG9zdEVsXT1cInRkRWxcIlxuICAgICAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgICAgICAgICAgICAgIFtkYk5hbWVdPVwiY29sdW1uLk5hbWVcIlxuICAgICAgICAgICAgICAgIFtmb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgICAgIFtob3ZlcmFibGVdPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgY2xhc3M9XCJjb2wtY29udGV4dC1tZW51XCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29udGV4dE1lbnVJdGVtcz8ubGVuZ3RoICYmICghaW5saW5lRWRpdE1vZGUgfHwgIWFsbG93SW5saW5lRWRpdClcIlxuICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICA+XG4gICAgICAgICAgICA8YnN1LXVsdi1jb250ZXh0LW1lbnVcbiAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgID48L2JzdS11bHYtY29udGV4dC1tZW51PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGRcbiAgICAgICAgICAgIGNsYXNzPVwiY29sLWRldGFpbHNcIlxuICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICAgICAgW2ZpdENvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dEZXRhaWxzSW5Sb3cgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImRldGFpbHNDb21wb25lbnQ/LlNlbGVjdG9yIHx8IGNhcnRhYmxlUGFyYW1zPy5tb0lkXCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiKGRldGFpbHNDb2xsYXBzZWQgPyBkZXRhaWxzVGV4dCA6ICdIaWRlJykgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93RGV0YWlscygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICBjbGFzcz1cImNvbC12aWV3XCJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIFtmaXRDb250ZW50XT1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaGlkZU9wZW5JY29uICYmIGNhblZpZXcgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICBbbmF2aWdhdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3RyPlxuXG48dHJcbiAgICAjdHJFbFxuICAgICpuZ0lmPVwic2Vjb25kYXJ5Q29sdW1ucz8ubGVuZ3RoICYmICFtby4kR3JvdXAgJiYgKCFtby4kUGFyZW50IHx8IHBhcmVudEV4cGFuZGVkKSAmJiB2aXNpYmlsaXR5ICE9PSBmYWxzZVwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgW3NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICBjbGFzcz1cInNlY29uZGFyeS1yb3dcIlxuICAgIFtjbGFzcy5uby1lZGl0LW1vZGVdPVwiIWlubGluZUVkaXRNb2RlXCJcbiAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICBbaG9zdEVsXT1cInRyRWxcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkICYmICFpbmxpbmVFZGl0TW9kZSA/IHRydWUgOiBmYWxzZVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPHRkIGZkLXRhYmxlLWNlbGwgY2xhc3M9XCJzaW5nbGUtc2VsZWN0XCIgKm5nSWY9XCIhaXNDaGVja0xpc3RcIiAoY2xpY2spPVwib25Sb3dDaGVjaygpXCI+PC90ZD5cbiAgICA8dGQgZmQtdGFibGUtY2VsbCBjb2xzcGFuPVwiMTAwJVwiIChjbGljayk9XCJvblJvd0NoZWNrKClcIj5cbiAgICAgICAgPHBcbiAgICAgICAgICAgICNwRWxcbiAgICAgICAgICAgIGZkLXRhYmxlLXRleHRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2Ygc2Vjb25kYXJ5Q29sdW1uczsgbGV0IGNvbHVtbkluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IF90cmFja0J5Q29sdW1uXCJcbiAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgW2hvc3RFbF09XCJwRWxcIlxuICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICBbZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWw+e3sgY29sdW1uLkNhcHRpb24gfX0gOjwvbGFiZWw+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lRWRpdE1vZGU6IGlubGluZUVkaXRNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luY1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9wPlxuICAgIDwvdGQ+XG48L3RyPlxuPHRyICpuZ0lmPVwiIWRldGFpbHNDb2xsYXBzZWQgJiYgY2FydGFibGVQYXJhbXM/Lm1vSWRcIiBmZC10YWJsZS1yb3cgY2xhc3M9XCJzaG93ZGV0YWlsc1wiIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDx0ZFxuICAgICAgICAoY2xpY2spPVwib25Sb3dDaGVjaygpXCJcbiAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICBbYXR0ci5jb2xzcGFuXT1cIlxuICAgICAgICAgICAgY29sdW1ucy5sZW5ndGggK1xuICAgICAgICAgICAgMSArXG4gICAgICAgICAgICAocm93SW5kaWNhdG9yID8gLTEgOiAwKSArXG4gICAgICAgICAgICAoY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPyAxIDogMCkgK1xuICAgICAgICAgICAgKGNhblZpZXcgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dEZXRhaWxzSW5Sb3cgPyAxIDogMClcbiAgICAgICAgXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICA8Ym5yYy1mb3JtXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIk9uQ2FydGFibGVGb3JtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJ0YWJsZS10ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgW3BhcmFtc109XCJjYXJ0YWJsZVBhcmFtc1wiXG4gICAgICAgICAgICAgICAgKGZvcm1DbG9zZSk9XCJvbkNhcnRhYmxlRm9ybUNsb3NlZCgpXCJcbiAgICAgICAgICAgID48L2JucmMtZm9ybT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90ZD5cbjwvdHI+XG48dHJcbiAgICAqbmdJZj1cIiFkZXRhaWxzQ29sbGFwc2VkICYmIGRldGFpbHNDb21wb25lbnQ/LlNlbGVjdG9yXCJcbiAgICBmZC10YWJsZS1yb3dcbiAgICBjbGFzcz1cInNob3dkZXRhaWxzXCJcbiAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzQ2hlY2tlZFwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPHRkXG4gICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAxICtcbiAgICAgICAgICAgIChyb3dJbmRpY2F0b3IgPyAtMSA6IDApICtcbiAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dWaWV3QnV0dG9uID8gMSA6IDApICtcbiAgICAgICAgICAgIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRldGFpbHNDb2x1bW5zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNDb21wb25lbnQgJiYgZGV0YWlsc0NvbXBvbmVudC5TZWxlY3RvclwiPlxuICAgICAgICAgICAgPGJucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudFxuICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwiZGV0YWlsc0NvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgW1Vsdk1haW5DdHJscl09XCJVbHZNYWluQ3RybHJcIlxuICAgICAgICAgICAgICAgIFtzZXR0aW5nXT1cImRldGFpbHNDb21wb25lbnRTZXR0aW5nXCJcbiAgICAgICAgICAgICAgICBbcGFyYW1ldGVyc109XCJkZXRhaWxzQ29tcG9uZW50LlNldHRpbmdzXCJcbiAgICAgICAgICAgICAgICBbZWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICAgICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXG4gICAgICAgICAgICAgICAgW3R5cGVEZWZJZF09XCJ0eXBlRGVmSWRcIlxuICAgICAgICAgICAgPjwvYm5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RkPlxuPC90cj5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlsc0NvbHVtbnNUZW1wbGF0ZT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBkZXRhaWxzRm9ybUl0ZW1zO1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZGV0YWlsc0NvbHVtbnMsXG4gICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JFxuICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2RldGFpbHNGb3JtSXRlbXMgbGV0LWRldGFpbHNDb2x1bW5zIGxldC1tbz1cIm1vXCIgbGV0LWlubGluZUVkaXRNb2RlPVwiaW5saW5lRWRpdE1vZGVcIiBsZXQtbGF5b3V0JD1cImxheW91dCRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1pdGVtc1wiPlxuICAgICAgICA8ZGl2IGZkLWZvcm0taXRlbSAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGRldGFpbHNDb2x1bW5zOyBsZXQgY29sdW1uSW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWwgZm9yPVwiaW5wdXQtMlwiPnt7IGNvbHVtbi5DYXB0aW9uIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBjb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogY29sdW1uSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmxpbmVFZGl0TW9kZTogaW5saW5lRWRpdE1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48dHIgKm5nSWY9XCJicnVsZUFjdGlvbk1lc3NhZ2UgJiYgaW5saW5lRWRpdE1vZGVcIiBmZC10YWJsZS1yb3c+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDx0ZFxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAxICtcbiAgICAgICAgICAgIChyb3dJbmRpY2F0b3IgPyAtMSA6IDApICtcbiAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dWaWV3QnV0dG9uID8gMSA6IDApICtcbiAgICAgICAgICAgIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPGZkLW1lc3NhZ2Utc3RyaXBcbiAgICAgICAgICAgICpuZ0lmPVwiYnJ1bGVBY3Rpb25NZXNzYWdlLk1lc3NhZ2VUeXBlID09PSAyXCJcbiAgICAgICAgICAgIFt0eXBlXT1cImJydWxlQWN0aW9uTWVzc2FnZS5NZXNzYWdlVHlwZSA9PT0gMiA/ICdlcnJvcicgOiAnaW5mb3JtYXRpb24nXCJcbiAgICAgICAgICAgIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGJydWxlQWN0aW9uTWVzc2FnZS5NZXNzYWdlRXhwcmVzc2lvbiB9fVxuICAgICAgICA8L2ZkLW1lc3NhZ2Utc3RyaXA+XG4gICAgPC90ZD5cbjwvdHI+XG48dHIgKm5nSWY9XCJ3b3JrZmxvd1N0YXRlPy5lcnJvclRleHRcIiBmZC10YWJsZS1yb3c+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDx0ZFxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAxICtcbiAgICAgICAgICAgIChyb3dJbmRpY2F0b3IgPyAtMSA6IDApICtcbiAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dWaWV3QnV0dG9uID8gMSA6IDApICtcbiAgICAgICAgICAgIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPGZkLW1lc3NhZ2Utc3RyaXAgdHlwZT1cImVycm9yXCIgW2Rpc21pc3NpYmxlXT1cInRydWVcIiAob25EaXNtaXNzKT1cInJlc2V0V29ya2Zsb3dTdGF0ZS5lbWl0KClcIj5cbiAgICAgICAgICAgIHt7IHdvcmtmbG93U3RhdGUuZXJyb3JUZXh0IH19XG4gICAgICAgIDwvZmQtbWVzc2FnZS1zdHJpcD5cbiAgICA8L3RkPlxuPC90cj5cbjxuZy10ZW1wbGF0ZVxuICAgICNjb2x1bW5UZW1wbGF0ZVxuICAgIGxldC1jb2x1bW5cbiAgICBsZXQtbW89XCJtb1wiXG4gICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgIGxldC1pbmxpbmVFZGl0TW9kZT1cImlubGluZUVkaXRNb2RlXCJcbiAgICBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiXG4+XG4gICAgPGJzdS1iYXJzYS10YWJsZS1jb2x1bW5cbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbdmFsdWVdPVwiY29sdW1uIHwgY29sdW1uVmFsdWU6IG1vXCJcbiAgICAgICAgW2ljb25dPVwiY29sdW1uIHwgY29sdW1uSWNvbjogbW9cIlxuICAgICAgICBbY3VzdG9tQ29tcG9uZW50XT1cImNvbHVtbi4kQ3VzdG9tQ29tcG9uZW50XCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbZWRpdE1vZGVdPVwiaXNDaGVja2VkICYmIGlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFtpc0NoZWNrZWRdPVwiaXNDaGVja2VkXCJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtsYXlvdXQ5NF09XCJsYXlvdXQ5NFwiXG4gICAgICAgIChzYXZlKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUobnVsbClcIlxuICAgICAgICAoY2FuY2VsKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbChudWxsKVwiXG4gICAgICAgICh0YWIpPVwib25UYWJLZXlEb3duKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgKGNoYW5nZVRvRWRpdE1vZGUpPVwib25Db2x1bW5DaGFuZ2VUb0VkaXRNb2RlKCRldmVudCwgaW5kZXgpXCJcbiAgICA+XG4gICAgPC9ic3UtYmFyc2EtdGFibGUtY29sdW1uPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjc3RhdHVzSW5kaWNhdG9yPlxuICAgIDxic3UtYmFyc2EtY29sdW1uLWluZGljYXRvclxuICAgICAgICBbaGlkZUJvcmRlckJvdHRvbV09XCIhZGV0YWlsc0NvbGxhcHNlZFwiXG4gICAgICAgICpuZ0lmPVwicm93SW5kaWNhdG9yXCJcbiAgICAgICAgW2JhY2tDb2xvcl09XCJyb3dJbmRpY2F0b3JDb2xvclwiXG4gICAgPlxuICAgIDwvYnN1LWJhcnNhLWNvbHVtbi1pbmRpY2F0b3I+XG48L25nLXRlbXBsYXRlPlxuIl19
|