barsa-develop-components 2.0.127 → 2.0.129

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.
@@ -75,7 +75,7 @@ export class ColumnFormViewerComponent extends ColumnRendererComponent {
75
75
  });
76
76
  }
77
77
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ColumnFormViewerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DialogService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: ColumnFormViewerComponent, selector: "bdc-column-form-viewer", inputs: { layout94: "layout94", parameters: "parameters" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"newPage || deviceSize === 's' ? renderColumn : popoverTpl\"> </ng-container>\n<a href=\"http://localhost:4200/#/landingpage/query?actionlist=[{MoId:1,TypeDefId:1}]\"></a>\n<ng-template #popoverTpl>\n <fd-popover\n #popover\n [closeOnOutsideClick]=\"true\"\n [noArrow]=\"false\"\n placement=\"bottom-start\"\n [title]=\"column.Caption\"\n >\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"renderColumn\"></ng-container>\n </fd-popover-control>\n <fd-popover-body class=\"popover-form-inColumn\">\n @if (loading && loadForm) {\n <div style=\"position: relative; height: 80px; width: 100%\">\n <bsu-mask [top]=\"'50%'\"></bsu-mask>\n </div>\n } @if (this.mo.Id && loadForm) {\n <bnrc-form\n [params]=\"formParam\"\n (formRendered)=\"onFormRendered(popover)\"\n (formClose)=\"popover.close()\"\n class=\"form-inColumn\"\n ></bnrc-form>\n }\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #renderColumn>\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"editMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\n (click)=\"newPage || deviceSize === 's' ? openMoInNewPage() : openPopover()\"\n ></bsu-column-renderer>\n</ng-template>\n", styles: [":host{display:flex;width:100%;height:100%;align-items:stretch;justify-content:stretch}:host fd-popover{flex:1}:host ::ng-deep span{color:var(--sapLinkColor);text-decoration:var(--fdLink_Text_Content_Decoration, none);cursor:pointer}:host ::ng-deep span:hover{text-decoration:var(--fdLink_Text_Content_Decoration, none)}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange", "inlineEditInReport"], outputs: ["titleChanged", "moChanged", "formClose", "uiComponent", "formRendered", "bruleAction", "beforeTransition", "afterTransition"] }, { kind: "directive", type: i3.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "component", type: i4.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i4.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "deviceName", "deviceSize", "value", "icon"] }, { kind: "component", type: i5.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i5.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i5.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i3.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i3.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i3.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: ColumnFormViewerComponent, selector: "bdc-column-form-viewer", inputs: { layout94: "layout94", parameters: "parameters" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"newPage || deviceSize === 's' ? renderColumn : popoverTpl\"> </ng-container>\n<a href=\"http://localhost:4200/#/landingpage/query?actionlist=[{MoId:1,TypeDefId:1}]\"></a>\n<ng-template #popoverTpl>\n <fd-popover\n #popover\n [closeOnOutsideClick]=\"true\"\n [noArrow]=\"false\"\n placement=\"bottom-start\"\n [title]=\"column.Caption\"\n >\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"renderColumn\"></ng-container>\n </fd-popover-control>\n <fd-popover-body class=\"popover-form-inColumn\">\n @if (loading && loadForm) {\n <div style=\"position: relative; height: 80px; width: 100%\">\n <bsu-mask [top]=\"'50%'\"></bsu-mask>\n </div>\n } @if (this.mo.Id && loadForm) {\n <bnrc-form\n [params]=\"formParam\"\n (formRendered)=\"onFormRendered(popover)\"\n (formClose)=\"popover.close()\"\n class=\"form-inColumn\"\n ></bnrc-form>\n }\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #renderColumn>\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"editMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\n (click)=\"newPage || deviceSize === 's' ? openMoInNewPage() : openPopover()\"\n ></bsu-column-renderer>\n</ng-template>\n", styles: [":host{display:flex;width:100%;height:100%;align-items:stretch;justify-content:stretch}:host fd-popover{flex:1}:host ::ng-deep span{color:var(--sapLinkColor);text-decoration:var(--fdLink_Text_Content_Decoration, none);cursor:pointer}:host ::ng-deep span:hover{text-decoration:var(--fdLink_Text_Content_Decoration, none)}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange", "inlineEditInReport"], outputs: ["titleChanged", "moChanged", "formClose", "uiComponent", "formRendered", "bruleAction", "beforeTransition", "afterTransition"] }, { kind: "directive", type: i3.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "component", type: i4.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i4.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "isMobile", "deviceName", "deviceSize", "value", "icon"] }, { kind: "component", type: i5.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i5.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i5.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i3.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i3.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i3.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
79
79
  }
80
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ColumnFormViewerComponent, decorators: [{
81
81
  type: Component,
@@ -30,7 +30,9 @@ export class ColumnProgressbarComponent extends ColumnRendererComponent {
30
30
  if (this.parameters.Color) {
31
31
  const dom = this._el.nativeElement;
32
32
  const x = dom.querySelector('.fd-progress-indicator__progress-bar');
33
- this._renderer2.setStyle(x, 'background-color', this.parameters.Color);
33
+ if (x) {
34
+ this._renderer2.setStyle(x, 'background-color', this.parameters.Color);
35
+ }
34
36
  }
35
37
  }
36
38
  ngOnChanges(changes) {
@@ -60,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
60
62
  }], parameters: [{
61
63
  type: Input
62
64
  }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXByb2dyZXNzYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2NvbHVtbi1wcm9ncmVzc2Jhci9jb2x1bW4tcHJvZ3Jlc3NiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvY29sdW1uLXByb2dyZXNzYmFyL2NvbHVtbi1wcm9ncmVzc2Jhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBR0wsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFRdkQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHVCQUF1QjtJQU52RTs7UUFVSSx1QkFBa0IsR0FBRyxHQUFHLENBQUM7UUFDekIsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLFVBQUssR0FBMkIsYUFBYSxDQUFDO1FBQzlDLFFBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQXNDbEM7SUFyQ0csUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDeEQsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELGVBQWU7UUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBNEIsQ0FBQztZQUNsRCxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzFCLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQWE7UUFDdkIsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25CLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNmLElBQUksS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxFQUFFLENBQUM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDTCxDQUFDOzhHQTlDUSwwQkFBMEI7a0dBQTFCLDBCQUEwQixzS0NwQnZDLHVMQU1BOzsyRkRjYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0ksd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBpbmplY3QsXG4gICAgRWxlbWVudFJlZixcbiAgICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9ncmVzc0luZGljYXRvclN0YXRlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IExheW91dFNldHRpbmcsIE1ldGFvYmplY3REYXRhTW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBDb2x1bW5SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLXNhcC11aSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmRjLWNvbHVtbi1wcm9ncmVzc2JhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1wcm9ncmVzc2Jhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLXByb2dyZXNzYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uUHJvZ3Jlc3NiYXJDb21wb25lbnQgZXh0ZW5kcyBDb2x1bW5SZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgbGF5b3V0OTQ6IExheW91dFNldHRpbmc7XG4gICAgQElucHV0KCkgcGFyYW1ldGVyczogTWV0YW9iamVjdERhdGFNb2RlbDtcblxuICAgIGN1c3RvbVVuaXRWYWx1ZU1heCA9IDEwMDtcbiAgICBjdXN0b21VbnRpdFZhbHVlTm93ID0gMDtcbiAgICBjdXN0b21Vbml0cyA9ICdNQic7XG4gICAgc3RhdGU6IFByb2dyZXNzSW5kaWNhdG9yU3RhdGUgPSAnaW5mb3JtYXRpdmUnO1xuICAgIF9lbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICBfcmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLnBhcmFtZXRlcnM/Lk1heFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmN1c3RvbVVuaXRWYWx1ZU1heCA9ICt0aGlzLnBhcmFtZXRlcnMuTWF4VmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGFyYW1ldGVycz8uVW5pdHMpIHtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tVW5pdHMgPSB0aGlzLnBhcmFtZXRlcnMuVW5pdHM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGFyYW1ldGVycz8uU3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLnBhcmFtZXRlcnMuU3RhdGUkQ2FwdGlvbjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wcmVwYXJlVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIGlmICh0aGlzLnBhcmFtZXRlcnMuQ29sb3IpIHtcbiAgICAgICAgICAgIGNvbnN0IGRvbSA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCB4ID0gZG9tLnF1ZXJ5U2VsZWN0b3IoJy5mZC1wcm9ncmVzcy1pbmRpY2F0b3JfX3Byb2dyZXNzLWJhcicpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKHgsICdiYWNrZ3JvdW5kLWNvbG9yJywgdGhpcy5wYXJhbWV0ZXJzLkNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAodmFsdWUgJiYgIXZhbHVlLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlVmFsdWUodmFsdWUuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfcHJlcGFyZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCBzaW5kZXggPSAwO1xuICAgICAgICAgICAgaWYgKGlzTmFOKCt2YWx1ZVswXSkpIHtcbiAgICAgICAgICAgICAgICBzaW5kZXgrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY3VzdG9tVW50aXRWYWx1ZU5vdyA9ICt2YWx1ZS5zdWJzdHJpbmcoc2luZGV4LCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGZkLXByb2dyZXNzLWluZGljYXRvclxuICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgW3ZhbHVlTm93XT1cImN1c3RvbVVudGl0VmFsdWVOb3dcIlxuICAgIFt2YWx1ZU1heF09XCJjdXN0b21Vbml0VmFsdWVNYXhcIlxuICAgIFt1bml0XT1cImN1c3RvbVVuaXRzXCJcbj48L2ZkLXByb2dyZXNzLWluZGljYXRvcj5cbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXByb2dyZXNzYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2NvbHVtbi1wcm9ncmVzc2Jhci9jb2x1bW4tcHJvZ3Jlc3NiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvY29sdW1uLXByb2dyZXNzYmFyL2NvbHVtbi1wcm9ncmVzc2Jhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBR0wsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFRdkQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHVCQUF1QjtJQU52RTs7UUFVSSx1QkFBa0IsR0FBRyxHQUFHLENBQUM7UUFDekIsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLFVBQUssR0FBMkIsYUFBYSxDQUFDO1FBQzlDLFFBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQXdDbEM7SUF2Q0csUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDeEQsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELGVBQWU7UUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBNEIsQ0FBQztZQUNsRCxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDSixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRSxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzFCLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQWE7UUFDdkIsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25CLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNmLElBQUksS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxFQUFFLENBQUM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDTCxDQUFDOzhHQWhEUSwwQkFBMEI7a0dBQTFCLDBCQUEwQixzS0NwQnZDLHVMQU1BOzsyRkRjYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0ksd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBpbmplY3QsXG4gICAgRWxlbWVudFJlZixcbiAgICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9ncmVzc0luZGljYXRvclN0YXRlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IExheW91dFNldHRpbmcsIE1ldGFvYmplY3REYXRhTW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBDb2x1bW5SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLXNhcC11aSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmRjLWNvbHVtbi1wcm9ncmVzc2JhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1wcm9ncmVzc2Jhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLXByb2dyZXNzYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uUHJvZ3Jlc3NiYXJDb21wb25lbnQgZXh0ZW5kcyBDb2x1bW5SZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgbGF5b3V0OTQ6IExheW91dFNldHRpbmc7XG4gICAgQElucHV0KCkgcGFyYW1ldGVyczogTWV0YW9iamVjdERhdGFNb2RlbDtcblxuICAgIGN1c3RvbVVuaXRWYWx1ZU1heCA9IDEwMDtcbiAgICBjdXN0b21VbnRpdFZhbHVlTm93ID0gMDtcbiAgICBjdXN0b21Vbml0cyA9ICdNQic7XG4gICAgc3RhdGU6IFByb2dyZXNzSW5kaWNhdG9yU3RhdGUgPSAnaW5mb3JtYXRpdmUnO1xuICAgIF9lbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICBfcmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLnBhcmFtZXRlcnM/Lk1heFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmN1c3RvbVVuaXRWYWx1ZU1heCA9ICt0aGlzLnBhcmFtZXRlcnMuTWF4VmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGFyYW1ldGVycz8uVW5pdHMpIHtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tVW5pdHMgPSB0aGlzLnBhcmFtZXRlcnMuVW5pdHM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGFyYW1ldGVycz8uU3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLnBhcmFtZXRlcnMuU3RhdGUkQ2FwdGlvbjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wcmVwYXJlVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIGlmICh0aGlzLnBhcmFtZXRlcnMuQ29sb3IpIHtcbiAgICAgICAgICAgIGNvbnN0IGRvbSA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCB4ID0gZG9tLnF1ZXJ5U2VsZWN0b3IoJy5mZC1wcm9ncmVzcy1pbmRpY2F0b3JfX3Byb2dyZXNzLWJhcicpO1xuICAgICAgICAgICAgaWYgKHgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUoeCwgJ2JhY2tncm91bmQtY29sb3InLCB0aGlzLnBhcmFtZXRlcnMuQ29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmICh2YWx1ZSAmJiAhdmFsdWUuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3ByZXBhcmVWYWx1ZSh2YWx1ZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9wcmVwYXJlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IHNpbmRleCA9IDA7XG4gICAgICAgICAgICBpZiAoaXNOYU4oK3ZhbHVlWzBdKSkge1xuICAgICAgICAgICAgICAgIHNpbmRleCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jdXN0b21VbnRpdFZhbHVlTm93ID0gK3ZhbHVlLnN1YnN0cmluZyhzaW5kZXgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZmQtcHJvZ3Jlc3MtaW5kaWNhdG9yXG4gICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICBbdmFsdWVOb3ddPVwiY3VzdG9tVW50aXRWYWx1ZU5vd1wiXG4gICAgW3ZhbHVlTWF4XT1cImN1c3RvbVVuaXRWYWx1ZU1heFwiXG4gICAgW3VuaXRdPVwiY3VzdG9tVW5pdHNcIlxuPjwvZmQtcHJvZ3Jlc3MtaW5kaWNhdG9yPlxuIl19
@@ -235,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
235
235
  }], settings: [{
236
236
  type: Input
237
237
  }] } });
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1kZXNrLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1kZXZlbG9wLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlLWRlc2staGVhZGVyL3NlcnZpY2UtZGVzay1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZS1kZXNrLWhlYWRlci9zZXJ2aWNlLWRlc2staGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUVqQixVQUFVLEVBQ1YsU0FBUyxFQUVULFlBQVksRUFHWixtQkFBbUIsRUFDbkIsS0FBSyxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFZLE1BQU0sdUJBQXVCLENBQUM7QUFFcEUsT0FBTyxFQUNILDZCQUE2QixFQUM3QixrQkFBa0IsRUFFbEIseUJBQXlCLEVBQzVCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7QUFVckIsTUFBTSxPQUFPLDBCQUEyQixTQUFRLDZCQUE2QjtJQTRCekUsWUFDYyxjQUE2QixFQUM3QixhQUEyQixFQUMzQixtQkFBdUMsRUFDdkMsU0FBb0IsRUFDdEIsaUJBQW1DLEVBQ25DLElBQXVCO1FBRS9CLEtBQUssQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFQaEQsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0Isd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3RC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bml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRWxlbWVudFJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgUmVuZGVyZXJTdHlsZUZsYWdzMixcbiAgICBJbnB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpZXdwb3J0U2Nyb2xsZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUYWJQYW5lbENvbXBvbmVudCwgVGFiU2l6ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHsgTWV0YW9iamVjdERhdGFNb2RlbCwgUG9ydGFsU2VydmljZSwgQWJicmV2YXRpb25EZXZpY2VTaXplIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHtcbiAgICBUaWxlc1ZpZXdlckNvbnRhaW5lckNvbXBvbmVudCxcbiAgICBUaWxlc1ZpZXdlclNlcnZpY2UsXG4gICAgVGlsZXNTZXJ2aWNlLFxuICAgIFRpbGVzVmlld2VyR3JvdXBDb21wb25lbnRcbn0gZnJvbSAnYmFyc2EtdGlsZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JkYy1zZXJ2aWNlLWRlc2staGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VydmljZS1kZXNrLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VydmljZS1kZXNrLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1RpbGVzVmlld2VyU2VydmljZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlRGVza0hlYWRlckNvbXBvbmVudCBleHRlbmRzIFRpbGVzVmlld2VyQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKCdoZWFkZXJTcGFjZUhvbGRlcicsIHsgc3RhdGljOiB0cnVlIH0pIGhlYWRlclNwYWNlSG9sZGVyOiBFbGVtZW50UmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnaGVhZGVyR3JpZCcsIHsgc3RhdGljOiB0cnVlIH0pIGhlYWRlckdyaWQ6IEVsZW1lbnRSZWY8YW55PjtcbiAgICBAVmlld0NoaWxkKCdhYm92ZVNlYXJjaCcsIHsgc3RhdGljOiB0cnVlIH0pIGFib3ZlU2VhcmNoOiBFbGVtZW50UmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnc2VhcmNoSG9sZGVyJywgeyBzdGF0aWM6IHRydWUgfSkgc2VhcmNoSG9sZGVyOiBFbGVtZW50UmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnbmF2SG9sZGVyJywgeyBzdGF0aWM6IHRydWUgfSkgbmF2SG9sZGVyOiBFbGVtZW50UmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnYWJvdmVDb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSkgYWJvdmVDb250ZW50OiBFbGVtZW50UmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnYmdPdXRlckhvbGRlcicsIHsgc3RhdGljOiB0cnVlIH0pIGJnT3V0ZXJIb2xkZXI6IEVsZW1lbnRSZWY8YW55PjtcbiAgICBAVmlld0NoaWxkKCdjb250ZW50QW5kTmF2JywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudEFuZE5hdjogRWxlbWVudFJlZjxhbnk+O1xuICAgIEBWaWV3Q2hpbGRyZW4oVGlsZXNWaWV3ZXJHcm91cENvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIHRpbGVzVmlld2VyR3JvdXBFbExpc3Q6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgICAvLyBASG9zdEJpbmRpbmcoJ2NsYXNzLnBhZ2UtY29udGVudCcpIHBhZ2VDb250ZW50Q2xhc3MgPSB0cnVlO1xuXG4gICAgQFZpZXdDaGlsZHJlbihUYWJQYW5lbENvbXBvbmVudCkgdGFiUGFuZWxDb21wb25lbnRzOiBRdWVyeUxpc3Q8VGFiUGFuZWxDb21wb25lbnQ+O1xuICAgIEBJbnB1dCgpIHNldHRpbmdzOiBTZXJ2aWNlRGVza0hlYWRlclNldHRpbmc7XG4gICAgc2VsZWN0ZWRUYWJJbmRleCA9IDA7XG4gICAgaGVpZ2h0T2ZTcGFjZUhvbGRlciA9IDg4O1xuICAgIHRhYlNpemU6IFRhYlNpemVzO1xuICAgIHNlYXJjaFRlcm0kOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgc2VhcmNoVGVybSA9ICcnO1xuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPEFiYnJldmF0aW9uRGV2aWNlU2l6ZT47XG4gICAgcHJpdmF0ZSBfZW5hYmxlU2Nyb2xsID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfZGlzYWJsZUludGVyc2VjdGlvbjogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9pc0Zvcm1PcGVuZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfc3RpY2t5VG9wUG9zaXRpb24gPSA2NjtcbiAgICBwcml2YXRlIG9ic2VydmVyTGlzdDogeyBlbDogYW55OyBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgfVtdID0gW107XG4gICAgcHJpdmF0ZSBfbGFzdFNjcm9sbFBvczogbnVtYmVyO1xuICAgIGFwcEdyb3VwczogYW55W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfdGlsZXNTZXJ2aWNlOiBUaWxlc1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfdGlsZXNWaWV3ZXJTZXJ2aWNlOiBUaWxlc1ZpZXdlclNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBfdmlld3BvcnRTY3JvbGxlcjogVmlld3BvcnRTY3JvbGxlcixcbiAgICAgICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihfcG9ydGFsU2VydmljZSwgX3RpbGVzU2VydmljZSwgX3RpbGVzVmlld2VyU2VydmljZSk7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgIHJvb3Quc3R5bGUuc2V0UHJvcGVydHkoJy0tYWJzb2x1dGUtcGFnZS10b3AnLCB0aGlzLl9zdGlja3lUb3BQb3NpdGlvbiArICdweCcpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5zZWFyY2hUZXJtJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCh0ZXJtKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSB0ZXJtO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXBwVGlsZUdyb3VwcyQuc3Vic2NyaWJlKChhcHBUaWxlR3JvdXBzKSA9PiB7XG4gICAgICAgICAgICBhcHBUaWxlR3JvdXBzLmZvckVhY2goKGMpID0+IHRoaXMuX3RpbGVzVmlld2VyU2VydmljZS5sb2FkQXBwR3JvdXAoYykpO1xuICAgICAgICAgICAgdGhpcy5hcHBHcm91cHMgPSBhcHBUaWxlR3JvdXBzO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5uYXZIb2xkZXIubmF0aXZlRWxlbWVudCwgJ3RvcCcsIHRoaXMuX3N0aWNreVRvcFBvc2l0aW9uICsgJ3B4Jyk7XG5cbiAgICAgICAgdGhpcy5zZXRHcmlkVGVtcGxhdGVSb3dzKHRoaXMuaGVpZ2h0T2ZTcGFjZUhvbGRlcik7XG4gICAgICAgIHRoaXMuZGV2aWNlU2l6ZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkO1xuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgICAgICAgbGV0IG5ld0hlaWdodCA9IHRoaXMuaGVpZ2h0T2ZTcGFjZUhvbGRlcjtcbiAgICAgICAgICAgIHRoaXMudGFiU2l6ZSA9IGM7XG4gICAgICAgICAgICBpZiAoYyA9PT0gJ3MnKSB7XG4gICAgICAgICAgICAgICAgbmV3SGVpZ2h0ID0gODg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT09ICdtJykge1xuICAgICAgICAgICAgICAgIG5ld0hlaWdodCA9IDIyMDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PT0gJ2wnKSB7XG4gICAgICAgICAgICAgICAgbmV3SGVpZ2h0ID0gMjUwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdIZWlnaHQgPSAzMjU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXdIZWlnaHQgPSA4ODtcbiAgICAgICAgICAgIGlmICh0aGlzLmhlaWdodE9mU3BhY2VIb2xkZXIgIT09IG5ld0hlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGVpZ2h0T2ZTcGFjZUhvbGRlciA9IG5ld0hlaWdodDtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEdyaWRUZW1wbGF0ZVJvd3MobmV3SGVpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGV2aWNlU2l6ZSA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZTtcbiAgICAgICAgbGV0IHN0aWNreVRvcFBvc2l0aW9uID0gMjA7XG4gICAgICAgIGlmIChkZXZpY2VTaXplID09PSAncycpIHtcbiAgICAgICAgICAgIHN0aWNreVRvcFBvc2l0aW9uID0gNjA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3RpY2t5RG9tKHRoaXMuYWJvdmVTZWFyY2gubmF0aXZlRWxlbWVudCwgdGhpcy5zZWFyY2hIb2xkZXIubmF0aXZlRWxlbWVudCwgLXN0aWNreVRvcFBvc2l0aW9uLCAnc3RpY2t5Jyk7XG4gICAgICAgIHRoaXMuX3N0aWNreURvbShcbiAgICAgICAgICAgIHRoaXMuYWJvdmVDb250ZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICB0aGlzLm5hdkhvbGRlci5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgLXRoaXMuX3N0aWNreVRvcFBvc2l0aW9uLFxuICAgICAgICAgICAgJ3N0aWNreSdcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fc3RpY2t5RG9tKFxuICAgICAgICAgICAgdGhpcy5hYm92ZUNvbnRlbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHRoaXMuYmdPdXRlckhvbGRlci5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgLXRoaXMuX3N0aWNreVRvcFBvc2l0aW9uLFxuICAgICAgICAgICAgJ3N0aWNreScsXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iZ091dGVySG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCB0aGlzLl9zdGlja3lUb3BQb3NpdGlvbiArICdweCcpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJnT3V0ZXJIb2xkZXIubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsICcxMDAlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3N0aWNreURvbShcbiAgICAgICAgICAgIHRoaXMuYWJvdmVTZWFyY2gubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHRoaXMuY29udGVudEFuZE5hdi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgLXN0aWNreVRvcFBvc2l0aW9uLFxuICAgICAgICAgICAgJ25hdkFuZENvbnRlbnRfdGInLFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmNvbnRlbnRBbmROYXYubmF0aXZlRWxlbWVudCwgJ2ZpcnN0Jyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmNvbnRlbnRBbmROYXYubmF0aXZlRWxlbWVudCwgJ2ZpcnN0JywgJ3RydWUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9lbmFibGVTY3JvbGwgPSB0cnVlO1xuICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5uYXZpZ2F0aW9uU3RhcnQkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0U2Nyb2xsUG9zID0gd2luZG93LnNjcm9sbFk7XG4gICAgICAgICAgICBpZiAoZXZlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXZlbnQ/LnVybCAhPT0gJy9zZXJ2aWNlZGVzaycgJiYgZXZlbnQ/LnVybCAhPT0gJy8nICYmICF0aGlzLl9kaXNhYmxlSW50ZXJzZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlRm9ybSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5uYXZpZ2F0aW9uRW5kJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGV2ZW50ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgKGV2ZW50Py51cmwgPT09ICcvc2VydmljZWRlc2snIHx8IGV2ZW50Py51cmwgPT09ICcvJyB8fCBldmVudC51cmxBZnRlclJlZGlyZWN0cyA9PT0gJy9zZXJ2aWNlZGVzaycpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVuUHJlcGFyZUZvcm0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uU2VhcmNoU3VibWl0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnc2VydmljZWRlc2svc2VhcmNoP3Rlcm09JyArIHRoaXMuc2VhcmNoVGVybSk7XG4gICAgICAgIC8vIHZhciBzZWFyY2hNbyA9IEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kKCdHZXRTZWFyY2hNbycsIHRoaXMuc2VhcmNoVGVybSk7XG4gICAgICAgIC8vIEJhcnNhQXBpLkJ3LkZvcm0uU2hvdyh7IE1vOiBzZWFyY2hNbyB9KTtcbiAgICB9XG4gICAgcHJlcGFyZUZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVJbnRlcnNlY3Rpb24gPSB0cnVlO1xuICAgICAgICB0aGlzLl9jZHIuZGV0YWNoKCk7XG4gICAgICAgIHRoaXMuZGlzY29ubmVjdEludGVyc2N0aW9uT2JzZXJ2ZXJMaXN0KCk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuc2VhcmNoSG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdzdGlja3knKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5jb250ZW50QW5kTmF2Lm5hdGl2ZUVsZW1lbnQsICdoaWRlJyk7XG4gICAgICAgIHRoaXMudmlzaWJsZUNvbnRlbnQoZmFsc2UpO1xuICAgICAgICBjb25zdCBmbGFncyA9IFJlbmRlcmVyU3R5bGVGbGFnczIuSW1wb3J0YW50O1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5ib2R5LCAnb3ZlcmZsb3cnLCAnaGlkZGVuJywgZmxhZ3MpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG4gICAgfVxuICAgIHVuUHJlcGFyZUZvcm0oKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMuc2V0SGVpZ2h0U2VhcmNoSG9sZGVyKHRoaXMuaGVpZ2h0T2ZTcGFjZUhvbGRlcik7XG4gICAgICAgIHRoaXMudmlzaWJsZUNvbnRlbnQodHJ1ZSk7XG4gICAgICAgIC8vIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuc2VhcmNoSG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdzdGlja3knKTtcblxuICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnNlYXJjaEhvbGRlci5uYXRpdmVFbGVtZW50LCAnaGlkZScpO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmNvbnRlbnRBbmROYXYubmF0aXZlRWxlbWVudCwgJ2hpZGUnKTtcbiAgICAgICAgY29uc3QgZmxhZ3MgPSBSZW5kZXJlclN0eWxlRmxhZ3MyLkltcG9ydGFudDtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ292ZXJmbG93JywgJ2F1dG8nLCBmbGFncyk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9Ub3AoKTtcbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLl9jZHIucmVhdHRhY2goKTtcbiAgICAgICAgdGhpcy5fZGlzYWJsZUludGVyc2VjdGlvbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbm5lY3RJbnRlcnNjdGlvbk9ic2VydmVyTGlzdCgpO1xuICAgIH1cbiAgICBzZXRIZWlnaHRTZWFyY2hIb2xkZXIoaGVpZ2h0KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuaGVhZGVyU3BhY2VIb2xkZXIubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xuICAgIH1cbiAgICB2aXNpYmxlQ29udGVudCh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuY29udGVudEFuZE5hdi5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsIHZpc2libGUgPyAnZmxleCcgOiAnbm9uZScpO1xuICAgIH1cblxuICAgIHNldEdyaWRUZW1wbGF0ZVJvd3MoaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICB0aGlzLmhlYWRlckdyaWQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdncmlkLXRlbXBsYXRlLXJvd3MnLFxuICAgICAgICAgICAgYG1pbm1heCg3OHB4LCAxNSUpIDQ2cHggMzJweCAxZnIgYXV0byAxMiU7IGhlaWdodDoke2hlaWdodH1weGBcbiAgICAgICAgKTtcbiAgICAgICAgLy8gdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5oZWFkZXJHcmlkLm5hdGl2ZUVsZW1lbnQsICdiYWNrZ3JvdW5kLWNvbG9yJywgYHJlZGApO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhlYWRlclNwYWNlSG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHtoZWlnaHR9cHhgKTtcbiAgICB9XG4gICAgb25TZWxlY3RlZFRhYkNoYW5nZTMoc2VsZWN0ZWRUYWI6IFRhYlBhbmVsQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhYmxpc3RDbXAgPSAoc2VsZWN0ZWRUYWIgYXMgYW55KS5fdGFic0NvbXBvbmVudDtcbiAgICAgICAgaWYgKHRhYmxpc3RDbXApIHtcbiAgICAgICAgICAgIHRhYmxpc3RDbXAuX2Rpc2FibGVTY3JvbGxTcHkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9Ub3AoKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkVGFiLmlkID09PSAnMCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbGVtZW50UmVmT2ZzZWxlY3RlZFRpbGVHcm91cDogSFRNTEVsZW1lbnQgPSB0aGlzLnRpbGVzVmlld2VyR3JvdXBFbExpc3QuZ2V0KFxuICAgICAgICAgICAgTnVtYmVyKHNlbGVjdGVkVGFiLmlkKVxuICAgICAgICApPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGVsZW1lbnRSZWZPZnNlbGVjdGVkVGlsZUdyb3VwLnNjcm9sbEludG9WaWV3KHtcbiAgICAgICAgICAgIGJsb2NrOiAnc3RhcnQnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIHNjcm9sbFRvTGFzdFBvcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmlld3BvcnRTY3JvbGxlci5zY3JvbGxUb1Bvc2l0aW9uKFswLCB0aGlzLl9sYXN0U2Nyb2xsUG9zXSk7XG4gICAgfVxuICAgIHByaXZhdGUgc2Nyb2xsVG9Ub3AoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9lbmFibGVTY3JvbGwpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9Qb3NpdGlvbihbMCwgdGhpcy5oZWlnaHRPZlNwYWNlSG9sZGVyIC0gdGhpcy5fc3RpY2t5VG9wUG9zaXRpb25dKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIGRpc2Nvbm5lY3RJbnRlcnNjdGlvbk9ic2VydmVyTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlckxpc3QuZm9yRWFjaCgoYykgPT4gYy5vYnNlcnZlci5kaXNjb25uZWN0KCkpO1xuICAgIH1cbiAgICBwcml2YXRlIGNvbm5lY3RJbnRlcnNjdGlvbk9ic2VydmVyTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlckxpc3QuZm9yRWFjaCgoYykgPT4gYy5vYnNlcnZlci5vYnNlcnZlKGMuZWwpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zdGlja3lEb20oXG4gICAgICAgIGFib3ZlLFxuICAgICAgICBob2xkZXIsXG4gICAgICAgIG1hcmdpblRvcCxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICB2aXNpYmxlQ2FsbGJhY2s/OiAoKSA9PiB2b2lkLFxuICAgICAgICBoaWRkZW5DYWxsQmFjaz86ICgpID0+IHZvaWRcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IChlbnRyaWVzKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fZGlzYWJsZUludGVyc2VjdGlvbikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZW50cmllc1swXS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKGhvbGRlciwgY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZpc2libGVDYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICB2aXNpYmxlQ2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKGhvbGRlciwgY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGhpZGRlbkNhbGxCYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGhpZGRlbkNhbGxCYWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgcm9vdE1hcmdpbjogYCR7bWFyZ2luVG9wfXB4IDBweCAwcHggMHB4YCxcbiAgICAgICAgICAgIHRocmVzaG9sZDogMC4xXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IHdpbmRvdy5JbnRlcnNlY3Rpb25PYnNlcnZlcihoYW5kbGVyLCBvcHRpb25zKTtcblxuICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGFib3ZlKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlckxpc3QucHVzaCh7IGVsOiBhYm92ZSwgb2JzZXJ2ZXIgfSk7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgU2VydmljZURlc2tIZWFkZXJTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgSGlkZVNlYXJjaDogYm9vbGVhbjtcbn1cbiIsIjxkaXYgaWQ9XCJoZWFkZXJHcmlkXCIgc3R5bGU9XCJncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCgxcHgsIDE1JSkgNDhweCAzMnB4IDFmciBhdXRvIDEyJTsgaGVpZ2h0OiAxNDhweFwiICNoZWFkZXJHcmlkPlxuICAgIDxkaXYgY2xhc3M9XCJjb21wYW55TG9nb0hvbGRlcl9hYm92ZVNlYXJjaFwiICNhYm92ZVNlYXJjaD48L2Rpdj5cbiAgICA8ZGl2IGlkPVwic2VhcmNoSG9sZGVyXCIgc3R5bGU9XCJncmlkLXJvdzogMlwiICNzZWFyY2hIb2xkZXI+XG4gICAgICAgIDxmZC1pbnB1dC1ncm91cFxuICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwic2V0dGluZ3M/LkhpZGVTZWFyY2ggPyAnbm9uZScgOiBudWxsXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtc2VhcmNoXCJcbiAgICAgICAgICAgIGNvbnRlbnREZW5zaXR5PVwiY296eVwiXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgZ2x5cGg9XCJzZWFyY2hcIlxuICAgICAgICAgICAgW2dseXBoQXJpYUxhYmVsXT1cIidTZWFyY2gnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbYnV0dG9uXT1cInRydWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiXG4gICAgICAgICAgICAoYWRkT25CdXR0b25DbGlja2VkKT1cIm9uU2VhcmNoU3VibWl0KClcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtaW5wdXQtZ3JvdXA+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgaWQ9XCJoZWFkZXJTcGFjZUhvbGRlclwiICNoZWFkZXJTcGFjZUhvbGRlcj5cbiAgICA8ZGl2IGlkPVwiYmdPdXRlckhvbGRlclwiICNiZ091dGVySG9sZGVyPlxuICAgICAgICA8ZGl2IGlkPVwiYmdJbm5lckhvbGRlclwiIHN0eWxlPVwiaGVpZ2h0OiAxMDB2aFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhY2tncm91bmRJbWFnZVwiIGlkPVwiYmFja2dyb3VuZEltYWdlXCI+XG4gICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInBpY3R1cmVcIiBzcmM9XCIvYXNzZXRzL2JhY2suanBnXCIgbG9hZGluZz1cImxhenlcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGlkPVwiYmFja2dyb3VuZEltYWdlT3ZlcmxheVwiIGNsYXNzPVwib3ZlcmxheVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBpZD1cImNvbnRlbnRIb2xkZXJBbmROYXZcIiBmaXJzdD1cInRydWVcIiAjY29udGVudEFuZE5hdiBmaWxsRW1wdHlTcGFjZSBbc2V0TWluSGVpZ2h0XT1cInRydWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWJvdmVDb250ZW50XCIgI2Fib3ZlQ29udGVudD48L2Rpdj5cbiAgICA8ZGl2IGlkPVwiY29udGVudEhvbGRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2XCIgI25hdkhvbGRlcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlclRhYnM7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiAoYXBwVGlsZUdyb3VwcyQgfCBhc3luYykhISB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXZfc3Vycm9nYXRlXCIgc3R5bGU9XCJoZWlnaHQ6IDEwcHhcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtZmVlZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyR3JvdXBzOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogKGFwcFRpbGVHcm91cHMkIHwgYXN5bmMpISEgfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3JlbmRlclRhYnMgbGV0LWFwcFRpbGVHcm91cHM+XG4gICAgPGZkLXRhYi1saXN0XG4gICAgICAgIFtzaXplXT1cInRhYlNpemVcIlxuICAgICAgICBbY29sbGFwc2VPdmVyZmxvd109XCJ0YWJTaXplID09PSAncycgfHwgYXBwVGlsZUdyb3Vwcy5sZW5ndGggPiA1XCJcbiAgICAgICAgW2V4cGFuZE92ZXJmbG93VGV4dF09XCInTW9yZScgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwib25TZWxlY3RlZFRhYkNoYW5nZTMoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICBAZm9yIChhcHBUaWxlR3JvdXAgb2YgYXBwVGlsZUdyb3VwczsgdHJhY2sgYXBwVGlsZUdyb3VwOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICA8ZmQtdGFiIFtpZF09XCInJyArIGlcIiBbdGl0bGVdPVwiYXBwVGlsZUdyb3VwLm5hdmlnYXRvclRpdGxlXCI+IDwvZmQtdGFiPlxuICAgICAgICB9XG4gICAgPC9mZC10YWItbGlzdD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3JlbmRlckdyb3VwcyBsZXQtYXBwVGlsZUdyb3Vwcz5cbiAgICBAZm9yIChhcHBUaWxlR3JvdXAgb2YgYXBwVGlsZUdyb3VwczsgdHJhY2sgYXBwVGlsZUdyb3VwOyBsZXQgaSA9ICRpbmRleCkge1xuICAgIDxidC10aWxlcy12aWV3ZXItZ3JvdXBcbiAgICAgICAgW2NsYXNzXT1cImRldmljZVNpemUkIHwgYXN5bmNcIlxuICAgICAgICBbYXR0ci5pbmRleF09XCJpXCJcbiAgICAgICAgW2FwcFRpbGVHcm91cF09XCJhcHBUaWxlR3JvdXBcIlxuICAgICAgICBbZWRpdF09XCJmYWxzZVwiXG4gICAgICAgIFtzdGFja0NvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAgIFtpc0FwcFRpbGVTdWJHcm91cF09XCJmYWxzZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSEhXCJcbiAgICA+PC9idC10aWxlcy12aWV3ZXItZ3JvdXA+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1kZXNrLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1kZXZlbG9wLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlLWRlc2staGVhZGVyL3NlcnZpY2UtZGVzay1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZS1kZXNrLWhlYWRlci9zZXJ2aWNlLWRlc2staGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUVqQixVQUFVLEVBQ1YsU0FBUyxFQUVULFlBQVksRUFHWixtQkFBbUIsRUFDbkIsS0FBSyxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFZLE1BQU0sdUJBQXVCLENBQUM7QUFFcEUsT0FBTyxFQUNILDZCQUE2QixFQUM3QixrQkFBa0IsRUFFbEIseUJBQXlCLEVBQzVCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7QUFVckIsTUFBTSxPQUFPLDBCQUEyQixTQUFRLDZCQUE2QjtJQTRCekUsWUFDYyxjQUE2QixFQUM3QixhQUEyQixFQUMzQixtQkFBdUMsRUFDdkMsU0FBb0IsRUFDdEIsaUJBQW1DLEVBQ25DLElBQXVCO1FBRS9CLEtBQUssQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFQaEQsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0Isd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFwQm5DLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUNyQix3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFHekIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVSLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBR3RCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFrRCxFQUFFLENBQUM7UUFFekUsY0FBUyxHQUFVLEVBQUUsQ0FBQztRQVdsQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBQ0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2pGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzVDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFN0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7UUFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNaLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDbkIsQ0FBQztpQkFBTSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsU0FBUyxHQUFHLEdBQUcsQ0FBQztZQUNwQixDQUFDO2lCQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixTQUFTLEdBQUcsR0FBRyxDQUFDO1lBQ3BCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixTQUFTLEdBQUcsR0FBRyxDQUFDO1lBQ3BCLENBQUM7WUFDRCxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ2YsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsZUFBZTtRQUNYLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO1FBQ2xELElBQUksaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQzNCLElBQUksVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxVQUFVLENBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUM1QixDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFDeEIsUUFBUSxDQUNYLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFDaEMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQ3hCLFFBQVEsRUFDUixHQUFHLEVBQUU7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3hHLENBQUMsRUFDRCxHQUFHLEVBQUU7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUNKLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFDaEMsQ0FBQyxpQkFBaUIsRUFDbEIsa0JBQWtCLEVBQ2xCLEdBQUcsRUFBRTtZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlFLENBQUMsRUFDRCxHQUFHLEVBQUU7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUNKLENBQUM7UUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDOUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZGLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNyQyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDakIsT0FBTztZQUNYLENBQUM7WUFDRCxJQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssY0FBYyxJQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3BGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2QixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JGLElBQ0ksS0FBSyxLQUFLLElBQUk7Z0JBQ2QsQ0FBQyxLQUFLLEVBQUUsR0FBRyxLQUFLLGNBQWMsSUFBSSxLQUFLLEVBQUUsR0FBRyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEtBQUssY0FBYyxDQUFDLEVBQ3JHLENBQUM7Z0JBQ0MsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLDBFQUEwRTtRQUMxRSwyQ0FBMkM7SUFDL0MsQ0FBQztJQUNELFdBQVc7UUFDUCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBQ0QsYUFBYTtRQUNULHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLHlFQUF5RTtRQUV6RSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRSxNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBQ0QscUJBQXFCLENBQUMsTUFBTTtRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNELGNBQWMsQ0FBQyxPQUFnQjtRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFjO1FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0Isb0JBQW9CLEVBQ3BCLG9EQUFvRCxNQUFNLElBQUksQ0FDakUsQ0FBQztRQUNGLHFGQUFxRjtRQUNyRixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNELG9CQUFvQixDQUFDLFdBQThCO1FBQy9DLE1BQU0sVUFBVSxHQUFJLFdBQW1CLENBQUMsY0FBYyxDQUFDO1FBQ3ZELElBQUksVUFBVSxFQUFFLENBQUM7WUFDYixVQUFVLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxXQUFXLENBQUMsRUFBRSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSw2QkFBNkIsR0FBZ0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FDOUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FDekIsRUFBRSxhQUFhLENBQUM7UUFFakIsNkJBQTZCLENBQUMsY0FBYyxDQUFDO1lBQ3pDLEtBQUssRUFBRSxPQUFPO1NBQ2pCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDTyxlQUFlO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ08sV0FBVztRQUNmLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUNyRyxDQUFDO0lBQ0wsQ0FBQztJQUNPLGlDQUFpQztRQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDTyw4QkFBOEI7UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTyxVQUFVLENBQ2QsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULGVBQTRCLEVBQzVCLGNBQTJCO1FBRTNCLE1BQU0sT0FBTyxHQUFHLENBQUMsT0FBTyxFQUFRLEVBQUU7WUFDOUIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDNUIsT0FBTztZQUNYLENBQUM7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQzNDLElBQUksT0FBTyxlQUFlLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQ3hDLGVBQWUsRUFBRSxDQUFDO2dCQUN0QixDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxPQUFPLGNBQWMsS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUM7Z0JBQ3JCLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUc7WUFDWixVQUFVLEVBQUUsR0FBRyxTQUFTLGdCQUFnQjtZQUN4QyxTQUFTLEVBQUUsR0FBRztTQUNqQixDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRW5FLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs4R0FsUFEsMEJBQTBCO2tHQUExQiwwQkFBMEIsb0ZBSnhCLENBQUMsa0JBQWtCLENBQUMsKzZCQWFqQix5QkFBeUIsMkJBQVUsVUFBVSxxREFHN0MsaUJBQWlCLHVFQzlDbkMsMCtGQXlFQTs7MkZEdkNhLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDSSx5QkFBeUIsYUFHeEIsQ0FBQyxrQkFBa0IsQ0FBQyxtQkFDZCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJO3FPQUdhLGlCQUFpQjtzQkFBbEUsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0wsVUFBVTtzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNHLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRyxZQUFZO3NCQUF4RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0QsU0FBUztzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNLLFlBQVk7c0JBQXhELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRyxhQUFhO3NCQUExRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsYUFBYTtzQkFBMUQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNtQixzQkFBc0I7c0JBQXBGLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUc1QixrQkFBa0I7c0JBQWxELFlBQVk7dUJBQUMsaUJBQWlCO2dCQUN0QixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRWxlbWVudFJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgUmVuZGVyZXJTdHlsZUZsYWdzMixcbiAgICBJbnB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpZXdwb3J0U2Nyb2xsZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUYWJQYW5lbENvbXBvbmVudCwgVGFiU2l6ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHsgTWV0YW9iamVjdERhdGFNb2RlbCwgUG9ydGFsU2VydmljZSwgQWJicmV2YXRpb25EZXZpY2VTaXplIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHtcbiAgICBUaWxlc1ZpZXdlckNvbnRhaW5lckNvbXBvbmVudCxcbiAgICBUaWxlc1ZpZXdlclNlcnZpY2UsXG4gICAgVGlsZXNTZXJ2aWNlLFxuICAgIFRpbGVzVmlld2VyR3JvdXBDb21wb25lbnRcbn0gZnJvbSAnYmFyc2EtdGlsZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JkYy1zZXJ2aWNlLWRlc2staGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VydmljZS1kZXNrLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VydmljZS1kZXNrLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1RpbGVzVmlld2VyU2VydmljZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlRGVza0hlYWRlckNvbXBvbmVudCBleHRlbmRzIFRpbGVzVmlld2VyQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKCdoZWFkZXJTcGFjZUhvbGRlcicsIHsgc3RhdGljOiB0cnVlIH0pIGhlYWRlclNwYWNlSG9sZGVyOiBFbGVtZW50UmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnaGVhZGVyR3JpZCcsIHsgc3RhdGljOiB0cnVlIH0pIGhlYWRlckdyaWQ6IEVsZW1lbnRSZWY8YW55PjtcbiAgICBAVmlld0NoaWxkKCdhYm92ZVNlYXJjaCcsIHsgc3RhdGljOiB0cnVlIH0pIGFib3ZlU2VhcmNoOiBFbGVtZW50UmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnc2VhcmNoSG9sZGVyJywgeyBzdGF0aWM6IHRydWUgfSkgc2VhcmNoSG9sZGVyOiBFbGVtZW50UmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnbmF2SG9sZGVyJywgeyBzdGF0aWM6IHRydWUgfSkgbmF2SG9sZGVyOiBFbGVtZW50UmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnYWJvdmVDb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSkgYWJvdmVDb250ZW50OiBFbGVtZW50UmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnYmdPdXRlckhvbGRlcicsIHsgc3RhdGljOiB0cnVlIH0pIGJnT3V0ZXJIb2xkZXI6IEVsZW1lbnRSZWY8YW55PjtcbiAgICBAVmlld0NoaWxkKCdjb250ZW50QW5kTmF2JywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudEFuZE5hdjogRWxlbWVudFJlZjxhbnk+O1xuICAgIEBWaWV3Q2hpbGRyZW4oVGlsZXNWaWV3ZXJHcm91cENvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIHRpbGVzVmlld2VyR3JvdXBFbExpc3Q6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgICAvLyBASG9zdEJpbmRpbmcoJ2NsYXNzLnBhZ2UtY29udGVudCcpIHBhZ2VDb250ZW50Q2xhc3MgPSB0cnVlO1xuXG4gICAgQFZpZXdDaGlsZHJlbihUYWJQYW5lbENvbXBvbmVudCkgdGFiUGFuZWxDb21wb25lbnRzOiBRdWVyeUxpc3Q8VGFiUGFuZWxDb21wb25lbnQ+O1xuICAgIEBJbnB1dCgpIHNldHRpbmdzOiBTZXJ2aWNlRGVza0hlYWRlclNldHRpbmc7XG4gICAgc2VsZWN0ZWRUYWJJbmRleCA9IDA7XG4gICAgaGVpZ2h0T2ZTcGFjZUhvbGRlciA9IDg4O1xuICAgIHRhYlNpemU6IFRhYlNpemVzO1xuICAgIHNlYXJjaFRlcm0kOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgc2VhcmNoVGVybSA9ICcnO1xuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPEFiYnJldmF0aW9uRGV2aWNlU2l6ZT47XG4gICAgcHJpdmF0ZSBfZW5hYmxlU2Nyb2xsID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfZGlzYWJsZUludGVyc2VjdGlvbjogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9pc0Zvcm1PcGVuZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfc3RpY2t5VG9wUG9zaXRpb24gPSA2NjtcbiAgICBwcml2YXRlIG9ic2VydmVyTGlzdDogeyBlbDogYW55OyBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgfVtdID0gW107XG4gICAgcHJpdmF0ZSBfbGFzdFNjcm9sbFBvczogbnVtYmVyO1xuICAgIGFwcEdyb3VwczogYW55W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfdGlsZXNTZXJ2aWNlOiBUaWxlc1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfdGlsZXNWaWV3ZXJTZXJ2aWNlOiBUaWxlc1ZpZXdlclNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBfdmlld3BvcnRTY3JvbGxlcjogVmlld3BvcnRTY3JvbGxlcixcbiAgICAgICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihfcG9ydGFsU2VydmljZSwgX3RpbGVzU2VydmljZSwgX3RpbGVzVmlld2VyU2VydmljZSk7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgIHJvb3Quc3R5bGUuc2V0UHJvcGVydHkoJy0tYWJzb2x1dGUtcGFnZS10b3AnLCB0aGlzLl9zdGlja3lUb3BQb3NpdGlvbiArICdweCcpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5zZWFyY2hUZXJtJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCh0ZXJtKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSB0ZXJtO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXBwVGlsZUdyb3VwcyQuc3Vic2NyaWJlKChhcHBUaWxlR3JvdXBzKSA9PiB7XG4gICAgICAgICAgICBhcHBUaWxlR3JvdXBzLmZvckVhY2goKGMpID0+IHRoaXMuX3RpbGVzVmlld2VyU2VydmljZS5sb2FkQXBwR3JvdXAoYykpO1xuICAgICAgICAgICAgdGhpcy5hcHBHcm91cHMgPSBhcHBUaWxlR3JvdXBzO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5uYXZIb2xkZXIubmF0aXZlRWxlbWVudCwgJ3RvcCcsIHRoaXMuX3N0aWNreVRvcFBvc2l0aW9uICsgJ3B4Jyk7XG5cbiAgICAgICAgdGhpcy5zZXRHcmlkVGVtcGxhdGVSb3dzKHRoaXMuaGVpZ2h0T2ZTcGFjZUhvbGRlcik7XG4gICAgICAgIHRoaXMuZGV2aWNlU2l6ZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkO1xuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgICAgICAgbGV0IG5ld0hlaWdodCA9IHRoaXMuaGVpZ2h0T2ZTcGFjZUhvbGRlcjtcbiAgICAgICAgICAgIHRoaXMudGFiU2l6ZSA9IGM7XG4gICAgICAgICAgICBpZiAoYyA9PT0gJ3MnKSB7XG4gICAgICAgICAgICAgICAgbmV3SGVpZ2h0ID0gODg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT09ICdtJykge1xuICAgICAgICAgICAgICAgIG5ld0hlaWdodCA9IDIyMDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PT0gJ2wnKSB7XG4gICAgICAgICAgICAgICAgbmV3SGVpZ2h0ID0gMjUwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdIZWlnaHQgPSAzMjU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXdIZWlnaHQgPSA4ODtcbiAgICAgICAgICAgIGlmICh0aGlzLmhlaWdodE9mU3BhY2VIb2xkZXIgIT09IG5ld0hlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGVpZ2h0T2ZTcGFjZUhvbGRlciA9IG5ld0hlaWdodDtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEdyaWRUZW1wbGF0ZVJvd3MobmV3SGVpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGV2aWNlU2l6ZSA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZTtcbiAgICAgICAgbGV0IHN0aWNreVRvcFBvc2l0aW9uID0gMjA7XG4gICAgICAgIGlmIChkZXZpY2VTaXplID09PSAncycpIHtcbiAgICAgICAgICAgIHN0aWNreVRvcFBvc2l0aW9uID0gNjA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3RpY2t5RG9tKHRoaXMuYWJvdmVTZWFyY2gubmF0aXZlRWxlbWVudCwgdGhpcy5zZWFyY2hIb2xkZXIubmF0aXZlRWxlbWVudCwgLXN0aWNreVRvcFBvc2l0aW9uLCAnc3RpY2t5Jyk7XG4gICAgICAgIHRoaXMuX3N0aWNreURvbShcbiAgICAgICAgICAgIHRoaXMuYWJvdmVDb250ZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICB0aGlzLm5hdkhvbGRlci5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgLXRoaXMuX3N0aWNreVRvcFBvc2l0aW9uLFxuICAgICAgICAgICAgJ3N0aWNreSdcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fc3RpY2t5RG9tKFxuICAgICAgICAgICAgdGhpcy5hYm92ZUNvbnRlbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHRoaXMuYmdPdXRlckhvbGRlci5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgLXRoaXMuX3N0aWNreVRvcFBvc2l0aW9uLFxuICAgICAgICAgICAgJ3N0aWNreScsXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iZ091dGVySG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCB0aGlzLl9zdGlja3lUb3BQb3NpdGlvbiArICdweCcpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJnT3V0ZXJIb2xkZXIubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsICcxMDAlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3N0aWNreURvbShcbiAgICAgICAgICAgIHRoaXMuYWJvdmVTZWFyY2gubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHRoaXMuY29udGVudEFuZE5hdi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgLXN0aWNreVRvcFBvc2l0aW9uLFxuICAgICAgICAgICAgJ25hdkFuZENvbnRlbnRfdGInLFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmNvbnRlbnRBbmROYXYubmF0aXZlRWxlbWVudCwgJ2ZpcnN0Jyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmNvbnRlbnRBbmROYXYubmF0aXZlRWxlbWVudCwgJ2ZpcnN0JywgJ3RydWUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9lbmFibGVTY3JvbGwgPSB0cnVlO1xuICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5uYXZpZ2F0aW9uU3RhcnQkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0U2Nyb2xsUG9zID0gd2luZG93LnNjcm9sbFk7XG4gICAgICAgICAgICBpZiAoZXZlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXZlbnQ/LnVybCAhPT0gJy9zZXJ2aWNlZGVzaycgJiYgZXZlbnQ/LnVybCAhPT0gJy8nICYmICF0aGlzLl9kaXNhYmxlSW50ZXJzZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlRm9ybSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5uYXZpZ2F0aW9uRW5kJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGV2ZW50ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgKGV2ZW50Py51cmwgPT09ICcvc2VydmljZWRlc2snIHx8IGV2ZW50Py51cmwgPT09ICcvJyB8fCBldmVudC51cmxBZnRlclJlZGlyZWN0cyA9PT0gJy9zZXJ2aWNlZGVzaycpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVuUHJlcGFyZUZvcm0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uU2VhcmNoU3VibWl0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnc2VydmljZWRlc2svc2VhcmNoP3Rlcm09JyArIHRoaXMuc2VhcmNoVGVybSk7XG4gICAgICAgIC8vIHZhciBzZWFyY2hNbyA9IEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kKCdHZXRTZWFyY2hNbycsIHRoaXMuc2VhcmNoVGVybSk7XG4gICAgICAgIC8vIEJhcnNhQXBpLkJ3LkZvcm0uU2hvdyh7IE1vOiBzZWFyY2hNbyB9KTtcbiAgICB9XG4gICAgcHJlcGFyZUZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVJbnRlcnNlY3Rpb24gPSB0cnVlO1xuICAgICAgICB0aGlzLl9jZHIuZGV0YWNoKCk7XG4gICAgICAgIHRoaXMuZGlzY29ubmVjdEludGVyc2N0aW9uT2JzZXJ2ZXJMaXN0KCk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuc2VhcmNoSG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdzdGlja3knKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5jb250ZW50QW5kTmF2Lm5hdGl2ZUVsZW1lbnQsICdoaWRlJyk7XG4gICAgICAgIHRoaXMudmlzaWJsZUNvbnRlbnQoZmFsc2UpO1xuICAgICAgICBjb25zdCBmbGFncyA9IFJlbmRlcmVyU3R5bGVGbGFnczIuSW1wb3J0YW50O1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5ib2R5LCAnb3ZlcmZsb3cnLCAnaGlkZGVuJywgZmxhZ3MpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG4gICAgfVxuICAgIHVuUHJlcGFyZUZvcm0oKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMuc2V0SGVpZ2h0U2VhcmNoSG9sZGVyKHRoaXMuaGVpZ2h0T2ZTcGFjZUhvbGRlcik7XG4gICAgICAgIHRoaXMudmlzaWJsZUNvbnRlbnQodHJ1ZSk7XG4gICAgICAgIC8vIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuc2VhcmNoSG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdzdGlja3knKTtcblxuICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnNlYXJjaEhvbGRlci5uYXRpdmVFbGVtZW50LCAnaGlkZScpO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmNvbnRlbnRBbmROYXYubmF0aXZlRWxlbWVudCwgJ2hpZGUnKTtcbiAgICAgICAgY29uc3QgZmxhZ3MgPSBSZW5kZXJlclN0eWxlRmxhZ3MyLkltcG9ydGFudDtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ292ZXJmbG93JywgJ2F1dG8nLCBmbGFncyk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9Ub3AoKTtcbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLl9jZHIucmVhdHRhY2goKTtcbiAgICAgICAgdGhpcy5fZGlzYWJsZUludGVyc2VjdGlvbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbm5lY3RJbnRlcnNjdGlvbk9ic2VydmVyTGlzdCgpO1xuICAgIH1cbiAgICBzZXRIZWlnaHRTZWFyY2hIb2xkZXIoaGVpZ2h0KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuaGVhZGVyU3BhY2VIb2xkZXIubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xuICAgIH1cbiAgICB2aXNpYmxlQ29udGVudCh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuY29udGVudEFuZE5hdi5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsIHZpc2libGUgPyAnZmxleCcgOiAnbm9uZScpO1xuICAgIH1cblxuICAgIHNldEdyaWRUZW1wbGF0ZVJvd3MoaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICB0aGlzLmhlYWRlckdyaWQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdncmlkLXRlbXBsYXRlLXJvd3MnLFxuICAgICAgICAgICAgYG1pbm1heCg3OHB4LCAxNSUpIDQ2cHggMzJweCAxZnIgYXV0byAxMiU7IGhlaWdodDoke2hlaWdodH1weGBcbiAgICAgICAgKTtcbiAgICAgICAgLy8gdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5oZWFkZXJHcmlkLm5hdGl2ZUVsZW1lbnQsICdiYWNrZ3JvdW5kLWNvbG9yJywgYHJlZGApO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhlYWRlclNwYWNlSG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHtoZWlnaHR9cHhgKTtcbiAgICB9XG4gICAgb25TZWxlY3RlZFRhYkNoYW5nZTMoc2VsZWN0ZWRUYWI6IFRhYlBhbmVsQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhYmxpc3RDbXAgPSAoc2VsZWN0ZWRUYWIgYXMgYW55KS5fdGFic0NvbXBvbmVudDtcbiAgICAgICAgaWYgKHRhYmxpc3RDbXApIHtcbiAgICAgICAgICAgIHRhYmxpc3RDbXAuX2Rpc2FibGVTY3JvbGxTcHkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9Ub3AoKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkVGFiLmlkID09PSAnMCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbGVtZW50UmVmT2ZzZWxlY3RlZFRpbGVHcm91cDogSFRNTEVsZW1lbnQgPSB0aGlzLnRpbGVzVmlld2VyR3JvdXBFbExpc3QuZ2V0KFxuICAgICAgICAgICAgTnVtYmVyKHNlbGVjdGVkVGFiLmlkKVxuICAgICAgICApPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGVsZW1lbnRSZWZPZnNlbGVjdGVkVGlsZUdyb3VwLnNjcm9sbEludG9WaWV3KHtcbiAgICAgICAgICAgIGJsb2NrOiAnc3RhcnQnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIHNjcm9sbFRvTGFzdFBvcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmlld3BvcnRTY3JvbGxlci5zY3JvbGxUb1Bvc2l0aW9uKFswLCB0aGlzLl9sYXN0U2Nyb2xsUG9zXSk7XG4gICAgfVxuICAgIHByaXZhdGUgc2Nyb2xsVG9Ub3AoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9lbmFibGVTY3JvbGwpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9Qb3NpdGlvbihbMCwgdGhpcy5oZWlnaHRPZlNwYWNlSG9sZGVyIC0gdGhpcy5fc3RpY2t5VG9wUG9zaXRpb25dKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIGRpc2Nvbm5lY3RJbnRlcnNjdGlvbk9ic2VydmVyTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlckxpc3QuZm9yRWFjaCgoYykgPT4gYy5vYnNlcnZlci5kaXNjb25uZWN0KCkpO1xuICAgIH1cbiAgICBwcml2YXRlIGNvbm5lY3RJbnRlcnNjdGlvbk9ic2VydmVyTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlckxpc3QuZm9yRWFjaCgoYykgPT4gYy5vYnNlcnZlci5vYnNlcnZlKGMuZWwpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zdGlja3lEb20oXG4gICAgICAgIGFib3ZlLFxuICAgICAgICBob2xkZXIsXG4gICAgICAgIG1hcmdpblRvcCxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICB2aXNpYmxlQ2FsbGJhY2s/OiAoKSA9PiB2b2lkLFxuICAgICAgICBoaWRkZW5DYWxsQmFjaz86ICgpID0+IHZvaWRcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IChlbnRyaWVzKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fZGlzYWJsZUludGVyc2VjdGlvbikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZW50cmllc1swXS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKGhvbGRlciwgY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZpc2libGVDYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICB2aXNpYmxlQ2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKGhvbGRlciwgY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGhpZGRlbkNhbGxCYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGhpZGRlbkNhbGxCYWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgcm9vdE1hcmdpbjogYCR7bWFyZ2luVG9wfXB4IDBweCAwcHggMHB4YCxcbiAgICAgICAgICAgIHRocmVzaG9sZDogMC4xXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IHdpbmRvdy5JbnRlcnNlY3Rpb25PYnNlcnZlcihoYW5kbGVyLCBvcHRpb25zKTtcblxuICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGFib3ZlKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlckxpc3QucHVzaCh7IGVsOiBhYm92ZSwgb2JzZXJ2ZXIgfSk7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgU2VydmljZURlc2tIZWFkZXJTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgSGlkZVNlYXJjaDogYm9vbGVhbjtcbiAgICBIaWRlVGFiczogYm9vbGVhbjtcbn1cbiIsIjxkaXYgaWQ9XCJoZWFkZXJHcmlkXCIgc3R5bGU9XCJncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCgxcHgsIDE1JSkgNDhweCAzMnB4IDFmciBhdXRvIDEyJTsgaGVpZ2h0OiAxNDhweFwiICNoZWFkZXJHcmlkPlxuICAgIDxkaXYgY2xhc3M9XCJjb21wYW55TG9nb0hvbGRlcl9hYm92ZVNlYXJjaFwiICNhYm92ZVNlYXJjaD48L2Rpdj5cbiAgICA8ZGl2IGlkPVwic2VhcmNoSG9sZGVyXCIgc3R5bGU9XCJncmlkLXJvdzogMlwiICNzZWFyY2hIb2xkZXI+XG4gICAgICAgIDxmZC1pbnB1dC1ncm91cFxuICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwic2V0dGluZ3M/LkhpZGVTZWFyY2ggPyAnbm9uZScgOiBudWxsXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtc2VhcmNoXCJcbiAgICAgICAgICAgIGNvbnRlbnREZW5zaXR5PVwiY296eVwiXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgZ2x5cGg9XCJzZWFyY2hcIlxuICAgICAgICAgICAgW2dseXBoQXJpYUxhYmVsXT1cIidTZWFyY2gnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbYnV0dG9uXT1cInRydWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiXG4gICAgICAgICAgICAoYWRkT25CdXR0b25DbGlja2VkKT1cIm9uU2VhcmNoU3VibWl0KClcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtaW5wdXQtZ3JvdXA+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgaWQ9XCJoZWFkZXJTcGFjZUhvbGRlclwiICNoZWFkZXJTcGFjZUhvbGRlcj5cbiAgICA8ZGl2IGlkPVwiYmdPdXRlckhvbGRlclwiICNiZ091dGVySG9sZGVyPlxuICAgICAgICA8ZGl2IGlkPVwiYmdJbm5lckhvbGRlclwiIHN0eWxlPVwiaGVpZ2h0OiAxMDB2aFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhY2tncm91bmRJbWFnZVwiIGlkPVwiYmFja2dyb3VuZEltYWdlXCI+XG4gICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInBpY3R1cmVcIiBzcmM9XCIvYXNzZXRzL2JhY2suanBnXCIgbG9hZGluZz1cImxhenlcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGlkPVwiYmFja2dyb3VuZEltYWdlT3ZlcmxheVwiIGNsYXNzPVwib3ZlcmxheVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBpZD1cImNvbnRlbnRIb2xkZXJBbmROYXZcIiBmaXJzdD1cInRydWVcIiAjY29udGVudEFuZE5hdiBmaWxsRW1wdHlTcGFjZSBbc2V0TWluSGVpZ2h0XT1cInRydWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWJvdmVDb250ZW50XCIgI2Fib3ZlQ29udGVudD48L2Rpdj5cbiAgICA8ZGl2IGlkPVwiY29udGVudEhvbGRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2XCIgI25hdkhvbGRlcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlclRhYnM7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiAoYXBwVGlsZUdyb3VwcyQgfCBhc3luYykhISB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXZfc3Vycm9nYXRlXCIgc3R5bGU9XCJoZWlnaHQ6IDEwcHhcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtZmVlZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyR3JvdXBzOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogKGFwcFRpbGVHcm91cHMkIHwgYXN5bmMpISEgfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3JlbmRlclRhYnMgbGV0LWFwcFRpbGVHcm91cHM+XG4gICAgPGZkLXRhYi1saXN0XG4gICAgICAgIFtzaXplXT1cInRhYlNpemVcIlxuICAgICAgICBbY29sbGFwc2VPdmVyZmxvd109XCJ0YWJTaXplID09PSAncycgfHwgYXBwVGlsZUdyb3Vwcy5sZW5ndGggPiA1XCJcbiAgICAgICAgW2V4cGFuZE92ZXJmbG93VGV4dF09XCInTW9yZScgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwib25TZWxlY3RlZFRhYkNoYW5nZTMoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICBAZm9yIChhcHBUaWxlR3JvdXAgb2YgYXBwVGlsZUdyb3VwczsgdHJhY2sgYXBwVGlsZUdyb3VwOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICA8ZmQtdGFiIFtpZF09XCInJyArIGlcIiBbdGl0bGVdPVwiYXBwVGlsZUdyb3VwLm5hdmlnYXRvclRpdGxlXCI+IDwvZmQtdGFiPlxuICAgICAgICB9XG4gICAgPC9mZC10YWItbGlzdD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3JlbmRlckdyb3VwcyBsZXQtYXBwVGlsZUdyb3Vwcz5cbiAgICBAZm9yIChhcHBUaWxlR3JvdXAgb2YgYXBwVGlsZUdyb3VwczsgdHJhY2sgYXBwVGlsZUdyb3VwOyBsZXQgaSA9ICRpbmRleCkge1xuICAgIDxidC10aWxlcy12aWV3ZXItZ3JvdXBcbiAgICAgICAgW2NsYXNzXT1cImRldmljZVNpemUkIHwgYXN5bmNcIlxuICAgICAgICBbYXR0ci5pbmRleF09XCJpXCJcbiAgICAgICAgW2FwcFRpbGVHcm91cF09XCJhcHBUaWxlR3JvdXBcIlxuICAgICAgICBbZWRpdF09XCJmYWxzZVwiXG4gICAgICAgIFtzdGFja0NvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAgIFtpc0FwcFRpbGVTdWJHcm91cF09XCJmYWxzZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSEhXCJcbiAgICA+PC9idC10aWxlcy12aWV3ZXItZ3JvdXA+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -7,7 +7,7 @@ import * as i3 from "@fundamental-ngx/core/table";
7
7
  import * as i4 from "barsa-novin-ray-core";
8
8
  export class TableViewVerticalColumnsComponent extends ReportViewBaseComponent {
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TableViewVerticalColumnsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: TableViewVerticalColumnsComponent, selector: "bdc-table-view-vertical-columns", usesInheritance: true, ngImport: i0, template: "@for (mo of moDataList | multipleGroupBy: groupby; track mo; let index = $index) { @if (mo.$Group) {\r\n<h3>{{ mo.$Group }}</h3>\r\n<ng-container *ngTemplateOutlet=\"tplTable; context: { $implicit: mo.$Children, index: this.index }\"></ng-container>\r\n} }\r\n<ng-template #tplTable let-children let-index=\"index\">\r\n <table fd-table [style.margin-top]=\"index > 0 ? '2rem' : 0\">\r\n <tbody fd-table-body>\r\n @for (column of columns; track column) {\r\n <tr fd-table-row>\r\n <th fd-table-cell>\r\n <strong>{{ column.Alias }}:</strong>\r\n </th>\r\n @for (mo of children; track mo; let index = $index) {\r\n <td\r\n fd-table-cell\r\n #tdEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"tdEl\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [dbName]=\"column.Name\"\r\n >\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [column]=\"column\"\r\n [value]=\"column | columnValue: mo | bbbTranslate\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [editMode]=\"false\"\r\n [isChecked]=\"false\"\r\n [isNewInlineMo]=\"false\"\r\n [index]=\"index\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [formLayoutShowLabel]=\"false\"\r\n [deviceSize]=\"deviceSize\"\r\n ></bsu-column-renderer>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i2.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "component", type: i3.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "noOuterBorder", "topBorder", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i3.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i3.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "pipe", type: i4.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i4.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i4.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i4.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: TableViewVerticalColumnsComponent, selector: "bdc-table-view-vertical-columns", usesInheritance: true, ngImport: i0, template: "@for (mo of moDataList | multipleGroupBy: groupby; track mo; let index = $index) { @if (mo.$Group) {\r\n<h3>{{ mo.$Group }}</h3>\r\n<ng-container *ngTemplateOutlet=\"tplTable; context: { $implicit: mo.$Children, index: this.index }\"></ng-container>\r\n} }\r\n<ng-template #tplTable let-children let-index=\"index\">\r\n <table fd-table [style.margin-top]=\"index > 0 ? '2rem' : 0\">\r\n <tbody fd-table-body>\r\n @for (column of columns; track column) {\r\n <tr fd-table-row>\r\n <th fd-table-cell>\r\n <strong>{{ column.Alias }}:</strong>\r\n </th>\r\n @for (mo of children; track mo; let index = $index) {\r\n <td\r\n fd-table-cell\r\n #tdEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"tdEl\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [dbName]=\"column.Name\"\r\n >\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [column]=\"column\"\r\n [value]=\"column | columnValue: mo | bbbTranslate\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [editMode]=\"false\"\r\n [isChecked]=\"false\"\r\n [isNewInlineMo]=\"false\"\r\n [index]=\"index\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [formLayoutShowLabel]=\"false\"\r\n [deviceSize]=\"deviceSize\"\r\n ></bsu-column-renderer>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "isMobile", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i2.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "component", type: i3.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "noOuterBorder", "topBorder", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i3.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i3.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "pipe", type: i4.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i4.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i4.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i4.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TableViewVerticalColumnsComponent, decorators: [{
13
13
  type: Component,
@@ -1948,7 +1948,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
1948
1948
 
1949
1949
  class TableViewVerticalColumnsComponent extends ReportViewBaseComponent {
1950
1950
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TableViewVerticalColumnsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1951
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: TableViewVerticalColumnsComponent, selector: "bdc-table-view-vertical-columns", usesInheritance: true, ngImport: i0, template: "@for (mo of moDataList | multipleGroupBy: groupby; track mo; let index = $index) { @if (mo.$Group) {\r\n<h3>{{ mo.$Group }}</h3>\r\n<ng-container *ngTemplateOutlet=\"tplTable; context: { $implicit: mo.$Children, index: this.index }\"></ng-container>\r\n} }\r\n<ng-template #tplTable let-children let-index=\"index\">\r\n <table fd-table [style.margin-top]=\"index > 0 ? '2rem' : 0\">\r\n <tbody fd-table-body>\r\n @for (column of columns; track column) {\r\n <tr fd-table-row>\r\n <th fd-table-cell>\r\n <strong>{{ column.Alias }}:</strong>\r\n </th>\r\n @for (mo of children; track mo; let index = $index) {\r\n <td\r\n fd-table-cell\r\n #tdEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"tdEl\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [dbName]=\"column.Name\"\r\n >\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [column]=\"column\"\r\n [value]=\"column | columnValue: mo | bbbTranslate\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [editMode]=\"false\"\r\n [isChecked]=\"false\"\r\n [isNewInlineMo]=\"false\"\r\n [index]=\"index\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [formLayoutShowLabel]=\"false\"\r\n [deviceSize]=\"deviceSize\"\r\n ></bsu-column-renderer>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$1.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i2$1.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "component", type: i3$6.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "noOuterBorder", "topBorder", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i3$6.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i3$6.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3$6.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "pipe", type: i1$1.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i1$1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i1$1.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i1$1.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1951
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: TableViewVerticalColumnsComponent, selector: "bdc-table-view-vertical-columns", usesInheritance: true, ngImport: i0, template: "@for (mo of moDataList | multipleGroupBy: groupby; track mo; let index = $index) { @if (mo.$Group) {\r\n<h3>{{ mo.$Group }}</h3>\r\n<ng-container *ngTemplateOutlet=\"tplTable; context: { $implicit: mo.$Children, index: this.index }\"></ng-container>\r\n} }\r\n<ng-template #tplTable let-children let-index=\"index\">\r\n <table fd-table [style.margin-top]=\"index > 0 ? '2rem' : 0\">\r\n <tbody fd-table-body>\r\n @for (column of columns; track column) {\r\n <tr fd-table-row>\r\n <th fd-table-cell>\r\n <strong>{{ column.Alias }}:</strong>\r\n </th>\r\n @for (mo of children; track mo; let index = $index) {\r\n <td\r\n fd-table-cell\r\n #tdEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"tdEl\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [dbName]=\"column.Name\"\r\n >\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [column]=\"column\"\r\n [value]=\"column | columnValue: mo | bbbTranslate\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [editMode]=\"false\"\r\n [isChecked]=\"false\"\r\n [isNewInlineMo]=\"false\"\r\n [index]=\"index\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [formLayoutShowLabel]=\"false\"\r\n [deviceSize]=\"deviceSize\"\r\n ></bsu-column-renderer>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$1.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "isMobile", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i2$1.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "component", type: i3$6.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "noOuterBorder", "topBorder", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i3$6.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i3$6.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3$6.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "pipe", type: i1$1.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i1$1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i1$1.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i1$1.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1952
1952
  }
1953
1953
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TableViewVerticalColumnsComponent, decorators: [{
1954
1954
  type: Component,
@@ -3325,7 +3325,7 @@ class ColumnFormViewerComponent extends ColumnRendererComponent {
3325
3325
  });
3326
3326
  }
3327
3327
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ColumnFormViewerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i2$2.DialogService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
3328
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: ColumnFormViewerComponent, selector: "bdc-column-form-viewer", inputs: { layout94: "layout94", parameters: "parameters" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"newPage || deviceSize === 's' ? renderColumn : popoverTpl\"> </ng-container>\n<a href=\"http://localhost:4200/#/landingpage/query?actionlist=[{MoId:1,TypeDefId:1}]\"></a>\n<ng-template #popoverTpl>\n <fd-popover\n #popover\n [closeOnOutsideClick]=\"true\"\n [noArrow]=\"false\"\n placement=\"bottom-start\"\n [title]=\"column.Caption\"\n >\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"renderColumn\"></ng-container>\n </fd-popover-control>\n <fd-popover-body class=\"popover-form-inColumn\">\n @if (loading && loadForm) {\n <div style=\"position: relative; height: 80px; width: 100%\">\n <bsu-mask [top]=\"'50%'\"></bsu-mask>\n </div>\n } @if (this.mo.Id && loadForm) {\n <bnrc-form\n [params]=\"formParam\"\n (formRendered)=\"onFormRendered(popover)\"\n (formClose)=\"popover.close()\"\n class=\"form-inColumn\"\n ></bnrc-form>\n }\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #renderColumn>\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"editMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\n (click)=\"newPage || deviceSize === 's' ? openMoInNewPage() : openPopover()\"\n ></bsu-column-renderer>\n</ng-template>\n", styles: [":host{display:flex;width:100%;height:100%;align-items:stretch;justify-content:stretch}:host fd-popover{flex:1}:host ::ng-deep span{color:var(--sapLinkColor);text-decoration:var(--fdLink_Text_Content_Decoration, none);cursor:pointer}:host ::ng-deep span:hover{text-decoration:var(--fdLink_Text_Content_Decoration, none)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$1.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange", "inlineEditInReport"], outputs: ["titleChanged", "moChanged", "formClose", "uiComponent", "formRendered", "bruleAction", "beforeTransition", "afterTransition"] }, { kind: "directive", type: i1$1.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "component", type: i2$1.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i2$1.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "deviceName", "deviceSize", "value", "icon"] }, { kind: "component", type: i7$2.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i7$2.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i7$2.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i1$1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i1$1.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i1$1.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i1$1.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3328
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: ColumnFormViewerComponent, selector: "bdc-column-form-viewer", inputs: { layout94: "layout94", parameters: "parameters" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"newPage || deviceSize === 's' ? renderColumn : popoverTpl\"> </ng-container>\n<a href=\"http://localhost:4200/#/landingpage/query?actionlist=[{MoId:1,TypeDefId:1}]\"></a>\n<ng-template #popoverTpl>\n <fd-popover\n #popover\n [closeOnOutsideClick]=\"true\"\n [noArrow]=\"false\"\n placement=\"bottom-start\"\n [title]=\"column.Caption\"\n >\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"renderColumn\"></ng-container>\n </fd-popover-control>\n <fd-popover-body class=\"popover-form-inColumn\">\n @if (loading && loadForm) {\n <div style=\"position: relative; height: 80px; width: 100%\">\n <bsu-mask [top]=\"'50%'\"></bsu-mask>\n </div>\n } @if (this.mo.Id && loadForm) {\n <bnrc-form\n [params]=\"formParam\"\n (formRendered)=\"onFormRendered(popover)\"\n (formClose)=\"popover.close()\"\n class=\"form-inColumn\"\n ></bnrc-form>\n }\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #renderColumn>\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"editMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\n (click)=\"newPage || deviceSize === 's' ? openMoInNewPage() : openPopover()\"\n ></bsu-column-renderer>\n</ng-template>\n", styles: [":host{display:flex;width:100%;height:100%;align-items:stretch;justify-content:stretch}:host fd-popover{flex:1}:host ::ng-deep span{color:var(--sapLinkColor);text-decoration:var(--fdLink_Text_Content_Decoration, none);cursor:pointer}:host ::ng-deep span:hover{text-decoration:var(--fdLink_Text_Content_Decoration, none)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$1.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange", "inlineEditInReport"], outputs: ["titleChanged", "moChanged", "formClose", "uiComponent", "formRendered", "bruleAction", "beforeTransition", "afterTransition"] }, { kind: "directive", type: i1$1.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "component", type: i2$1.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i2$1.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "isMobile", "deviceName", "deviceSize", "value", "icon"] }, { kind: "component", type: i7$2.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i7$2.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i7$2.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i1$1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i1$1.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i1$1.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i1$1.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3329
3329
  }
3330
3330
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ColumnFormViewerComponent, decorators: [{
3331
3331
  type: Component,
@@ -3437,7 +3437,9 @@ class ColumnProgressbarComponent extends ColumnRendererComponent {
3437
3437
  if (this.parameters.Color) {
3438
3438
  const dom = this._el.nativeElement;
3439
3439
  const x = dom.querySelector('.fd-progress-indicator__progress-bar');
3440
- this._renderer2.setStyle(x, 'background-color', this.parameters.Color);
3440
+ if (x) {
3441
+ this._renderer2.setStyle(x, 'background-color', this.parameters.Color);
3442
+ }
3441
3443
  }
3442
3444
  }
3443
3445
  ngOnChanges(changes) {