@unifylib/ui-lib 1.1.24 → 1.1.25

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.
@@ -76,7 +76,7 @@ export class ReportDetailsDialogComponent {
76
76
  return `${mainLine}${directorateLine}`;
77
77
  }
78
78
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReportDetailsDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.TranslateService }, { token: i3.BackendService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
79
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ReportDetailsDialogComponent, isStandalone: true, selector: "app-audit-log-details-dialog", host: { listeners: { "window:keyup.esc": "onKeyUp()", "document:click": "onBackdropClick($event)" } }, ngImport: i0, template: "<mat-dialog-content style=\"max-height: 70vh; overflow: auto; position: relative;\">\r\n <button mat-icon-button class=\"close-button\" (click)=\"cancel()\" [attr.dir]=\"dialogDirection\" id=\"report-details-close-btn\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n\r\n <h1 mat-dialog-title [innerHTML]=\"getTitle()\"></h1>\r\n\r\n <app-base-table\r\n [pageInfo]=\"pageInfo\"\r\n [columns]=\"columns\"\r\n id=\"junior\"\r\n [enforceRefresh]=\"true\"\r\n [reportRequest]=\"reportRequest\">\r\n </app-base-table>\r\n</mat-dialog-content>\r\n\r\n", styles: ["::ng-deep .mat-dialog-actions{justify-content:flex-end!important}.close-button{position:absolute;right:8px;top:8px;z-index:10;background-color:#fff;border-radius:50%}:host-context([dir=\"rtl\"]) .close-button{right:auto;left:8px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: BaseTableComponent, selector: "app-base-table", inputs: ["filterFields", "noDataFoundSvgPath", "noDataFoundTitle", "noDataFoundSubtitle", "noResultSvgPath", "noResultTitle", "noResultSubtitle", "pageInfo", "enablePagination", "data", "listAction", "columns", "filters", "pathParam", "extraButton", "enforceRefresh", "isPending", "trigger", "reportRequest", "separateEndpointData", "manageablePages", "totalPagesCount", "currentPageIndex", "customizedData"], outputs: ["pageChange", "userAction", "hyperLinkAction", "extraAction", "selectedColumn", "listActionClicked", "showDialog", "clickRoutePage"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ReportDetailsDialogComponent, isStandalone: true, selector: "app-audit-log-details-dialog", host: { listeners: { "window:keyup.esc": "onKeyUp()", "document:click": "onBackdropClick($event)" } }, ngImport: i0, template: "<mat-dialog-content style=\"max-height: 70vh; overflow: auto; position: relative;\">\r\n <button mat-icon-button class=\"close-button\" (click)=\"cancel()\" [attr.dir]=\"dialogDirection\" id=\"report-details-close-btn\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n\r\n <h1 mat-dialog-title [innerHTML]=\"getTitle()\"></h1>\r\n\r\n <app-base-table\r\n [pageInfo]=\"pageInfo\"\r\n [columns]=\"columns\"\r\n id=\"junior\"\r\n [enforceRefresh]=\"true\"\r\n [reportRequest]=\"reportRequest\">\r\n </app-base-table>\r\n</mat-dialog-content>\r\n\r\n", styles: ["::ng-deep .mat-dialog-actions{justify-content:flex-end!important}.close-button{position:absolute;right:8px;top:8px;z-index:10;background-color:#fff;border-radius:50%}:host-context([dir=\"rtl\"]) .close-button{right:auto;left:8px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: BaseTableComponent, selector: "app-base-table", inputs: ["filterFields", "noDataFoundSvgPath", "noDataFoundTitle", "noDataFoundSubtitle", "noResultSvgPath", "noResultTitle", "noResultSubtitle", "pageInfo", "enablePagination", "data", "listAction", "extraActions", "buttonsDisplayMode", "columns", "filters", "pathParam", "extraButton", "enforceRefresh", "isPending", "trigger", "reportRequest", "separateEndpointData", "manageablePages", "totalPagesCount", "currentPageIndex", "customizedData"], outputs: ["buttonClicked", "pageChange", "userAction", "hyperLinkAction", "extraAction", "selectedColumn", "listActionClicked", "showDialog", "clickRoutePage"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
80
80
  }
81
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReportDetailsDialogComponent, decorators: [{
82
82
  type: Component,
@@ -99,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
99
99
  type: HostListener,
100
100
  args: ['document:click', ['$event']]
101
101
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRldGFpbHMtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0LWRldGFpbHMtZGlhbG9nL3JlcG9ydC1kZXRhaWxzLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydC1kZXRhaWxzLWRpYWxvZy9yZXBvcnQtZGV0YWlscy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQ0wsZUFBZSxFQUFvQixnQkFBZ0IsRUFDckMsY0FBYyxHQUM3QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBWSxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVsRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBaUIvQyxNQUFNLE9BQU8sNEJBQTRCO0lBZXZDLFlBQW1CLFNBQXFELEVBQzVCLElBQVMsRUFDakMsZ0JBQWtDLEVBQ25DLGNBQTZCLEVBQzVCLEtBQWlCO1FBSmxCLGNBQVMsR0FBVCxTQUFTLENBQTRDO1FBQzVCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDakMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNuQyxtQkFBYyxHQUFk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QUFXLDhCQUNYLGVBQWUsK0JBQ2Ysa0JBQWtCLHFtQkFDbEIsZ0JBQWdCLHlHQUNoQixjQUFjLCtIQUNkLGFBQWEsNkZBQ2IsT0FBTzs7NEZBS0UsNEJBQTRCO2tCQWZ4QyxTQUFTOytCQUNFLDhCQUE4QixjQUM1QixJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsT0FBTztxQkFDUjs7MEJBb0JZLE1BQU07MkJBQUMsZUFBZTs4SEFNRCxPQUFPO3NCQUF4QyxZQUFZO3VCQUFDLGtCQUFrQjtnQkEyQmhDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ0FjdGlvbnMsIE1hdERpYWxvZ0NvbnRlbnQsXHJcbiAgTWF0RGlhbG9nUmVmLCBNYXREaWFsb2dUaXRsZSxcclxufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHtGaWVsZEluZm8sIFBhZ2VJbmZvLCBSZXBvcnRSZXF1ZXN0LCBUYWJsZUNvbHVtbn0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWxcIjtcclxuaW1wb3J0IHtCYXNlVGFibGVDb21wb25lbnR9IGZyb20gXCIuLi9iYXNlLXRhYmxlL2Jhc2UtdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0QnV0dG9uLCBNYXRJY29uQnV0dG9ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQge01hdEljb259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hdWRpdC1sb2ctZGV0YWlscy1kaWFsb2cnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBCYXNlVGFibGVDb21wb25lbnQsXHJcbiAgICBNYXREaWFsb2dDb250ZW50LFxyXG4gICAgTWF0RGlhbG9nVGl0bGUsXHJcbiAgICBNYXRJY29uQnV0dG9uLFxyXG4gICAgTWF0SWNvblxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcG9ydC1kZXRhaWxzLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3JlcG9ydC1kZXRhaWxzLWRpYWxvZy5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0RGV0YWlsc0RpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCAsIEFmdGVyVmlld0luaXR7XHJcbiAgZGlhbG9nRGlyZWN0aW9uOiAnbHRyJyB8ICdydGwnID0gJ2x0cic7XHJcblxyXG4gIHBhZ2VJbmZvOiBQYWdlSW5mbztcclxuICBmaWVsZHM6IEZpZWxkSW5mb1tdID0gW107XHJcblxyXG4gIGlzVGVybWluYXRpb24gOiBib29sZWFuPWZhbHNlO1xyXG4gIGNvbW1lbnQ6IHN0cmluZyA9ICcnO1xyXG4gIGV4dGVybmFsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2lnbmluZ1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdG9rZW5SZWZlcmVuY2U6IHN0cmluZyA9IFwiXCI7XHJcbiAgd2FybmluZ01zZyA9IGZhbHNlO1xyXG4gIGl0ZW06IGFueSA9IHt9O1xyXG4gIHJlcG9ydFJlcXVlc3Q6IFJlcG9ydFJlcXVlc3Q7XHJcbiAgY29sdW1uczogVGFibGVDb2x1bW48YW55PltdO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxSZXBvcnREZXRhaWxzRGlhbG9nQ29tcG9uZW50PixcclxuICAgICAgICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIGJhY2tlbmRTZXJ2aWNlOkJhY2tlbmRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIGRpYWxvZ1JlZi5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAuZXNjJykgb25LZXlVcCgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5wYWdlSW5mbyA9IHRoaXMuZGF0YS5wYWdlSW5mbztcclxuICAgIHRoaXMucGFnZUluZm8uaGlkZVRpdGxlID0gdHJ1ZTtcclxuICAgIHRoaXMuaXRlbSA9IHRoaXMuZGF0YS5pdGVtO1xyXG4gICAgdGhpcy5wYWdlSW5mby5oaWRlRXh0cmFjdEJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jb2x1bW5zID0gdGhpcy5kYXRhLmNvbHVtbnM7XHJcbiAgICB0aGlzLnJlcG9ydFJlcXVlc3QgPSB0aGlzLmRhdGEucmVxdWVzdDtcclxuICAgIHRoaXMud2FybmluZ01zZyA9IHRoaXMuZGF0YS53YXJuaW5nTXNnIHx8IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnbWF0LWRpYWxvZy1jb250YWluZXInKTtcclxuICAgIGlmIChjb250YWluZXIgJiYgY29udGFpbmVyLmdldEF0dHJpYnV0ZSgnZGlyJykpIHtcclxuICAgICAgdGhpcy5kaWFsb2dEaXJlY3Rpb24gPSBjb250YWluZXIuZ2V0QXR0cmlidXRlKCdkaXInKSBhcyAnbHRyJyB8ICdydGwnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy5yZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QuZmlsdGVycyA9IFtdO1xyXG4gICAgdGhpcy5iYWNrZW5kU2VydmljZS5pc0VtcHR5SXRlbXMgPSBmYWxzZTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25CYWNrZHJvcENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAodGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnY2RrLW92ZXJsYXktYmFja2Ryb3AnKSkge1xyXG4gICAgICB0aGlzLnJlcG9ydFJlcXVlc3QuZmlsdGVyUmVxdWVzdC5maWx0ZXJzID0gW107XHJcbiAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UuaXNFbXB0eUl0ZW1zID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUaXRsZSgpIHtcclxuICAgIGlmICh0aGlzLml0ZW0/LmlzZWNfdmFsdWVfYXIpIHtcclxuICAgICAgY29uc3QgaXNlY0xhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0lTRUMnKTtcclxuICAgICAgcmV0dXJuIGA8c3Ryb25nPiR7aXNlY0xhYmVsfSAke3RoaXMuaXRlbS5pc2VjX3ZhbHVlX2FyfTwvc3Ryb25nPmA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2VjdG9yTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnU0VDVE9SJyk7XHJcbiAgICBjb25zdCBwZXJpb2RMYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdGT1JfUEVSSU9EJyk7XHJcbiAgICBjb25zdCBkaXJlY3RvcmF0ZUxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0RJUkVDVE9SQVRFJyk7XHJcblxyXG4gICAgY29uc3Qgc2VjdG9yVGV4dCA9IHRoaXMuaXRlbS5zZWN0b3IgPyBgJHtzZWN0b3JMYWJlbH0gJHt0aGlzLml0ZW0uc2VjdG9yfWAgOiAnJztcclxuICAgIGNvbnN0IHBlcmlvZFRleHQgPSB0aGlzLml0ZW0ucGVyaW9kID8gYCAke3BlcmlvZExhYmVsfSAke3RoaXMuaXRlbS5wZXJpb2R9YCA6ICcnO1xyXG4gICAgY29uc3QgeWVhclRleHQgPSB0aGlzLml0ZW0ueWVhciA/IGAgLSAke3RoaXMuaXRlbS55ZWFyfWAgOiAnJztcclxuICAgIGNvbnN0IGRpcmVjdG9yYXRlTGluZSA9IHRoaXMuaXRlbS5kaXJlY3RvcmF0ZSA/IGA8YnI+PHN0cm9uZz4ke2RpcmVjdG9yYXRlTGFiZWx9IC0gJHt0aGlzLml0ZW0uZGlyZWN0b3JhdGV9PC9zdHJvbmc+YCA6ICcnO1xyXG5cclxuICAgIGNvbnN0IG1haW5MaW5lID0gKHNlY3RvclRleHQgfHwgcGVyaW9kVGV4dCB8fCB5ZWFyVGV4dClcclxuICAgICAgPyBgPHN0cm9uZz4ke1tzZWN0b3JUZXh0LCBwZXJpb2RUZXh0LCB5ZWFyVGV4dF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJycpfTwvc3Ryb25nPmBcclxuICAgICAgOiAnJztcclxuXHJcbiAgICByZXR1cm4gYCR7bWFpbkxpbmV9JHtkaXJlY3RvcmF0ZUxpbmV9YDtcclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuIiwiPG1hdC1kaWFsb2ctY29udGVudCBzdHlsZT1cIm1heC1oZWlnaHQ6IDcwdmg7IG92ZXJmbG93OiBhdXRvOyBwb3NpdGlvbjogcmVsYXRpdmU7XCI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIiAoY2xpY2spPVwiY2FuY2VsKClcIiBbYXR0ci5kaXJdPVwiZGlhbG9nRGlyZWN0aW9uXCIgaWQ9XCJyZXBvcnQtZGV0YWlscy1jbG9zZS1idG5cIj5cclxuICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcblxyXG4gICAgPGgxIG1hdC1kaWFsb2ctdGl0bGUgW2lubmVySFRNTF09XCJnZXRUaXRsZSgpXCI+PC9oMT5cclxuXHJcbiAgICA8YXBwLWJhc2UtdGFibGVcclxuICAgICAgICAgICAgW3BhZ2VJbmZvXT1cInBhZ2VJbmZvXCJcclxuICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICAgICAgICAgIGlkPVwianVuaW9yXCJcclxuICAgICAgICAgICAgW2VuZm9yY2VSZWZyZXNoXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbcmVwb3J0UmVxdWVzdF09XCJyZXBvcnRSZXF1ZXN0XCI+XHJcbiAgICA8L2FwcC1iYXNlLXRhYmxlPlxyXG48L21hdC1kaWFsb2ctY29udGVudD5cclxuXHJcbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRldGFpbHMtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0LWRldGFpbHMtZGlhbG9nL3JlcG9ydC1kZXRhaWxzLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydC1kZXRhaWxzLWRpYWxvZy9yZXBvcnQtZGV0YWlscy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQ0wsZUFBZSxFQUFvQixnQkFBZ0IsRUFDckMsY0FBYyxHQUM3QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBWSxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVsRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBaUIvQyxNQUFNLE9BQU8sNEJBQTRCO0lBZXZDLFlBQW1CLFNBQXFELEVBQzVCLElBQVMsRUFDakMsZ0JBQWtDLEVBQ25DLGNBQTZCLEVBQzVCLEtBQWlCO1FBSmxCLGNBQVMsR0FBVCxTQUFTLENBQTRDO1FBQzVCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDakMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNuQyxtQkFBYyxHQUFk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QUFXLDhCQUNYLGVBQWUsK0JBQ2Ysa0JBQWtCLDRwQkFDbEIsZ0JBQWdCLHlHQUNoQixjQUFjLCtIQUNkLGFBQWEsNkZBQ2IsT0FBTzs7NEZBS0UsNEJBQTRCO2tCQWZ4QyxTQUFTOytCQUNFLDhCQUE4QixjQUM1QixJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsT0FBTztxQkFDUjs7MEJBb0JZLE1BQU07MkJBQUMsZUFBZTs4SEFNRCxPQUFPO3NCQUF4QyxZQUFZO3VCQUFDLGtCQUFrQjtnQkEyQmhDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ0FjdGlvbnMsIE1hdERpYWxvZ0NvbnRlbnQsXHJcbiAgTWF0RGlhbG9nUmVmLCBNYXREaWFsb2dUaXRsZSxcclxufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHtGaWVsZEluZm8sIFBhZ2VJbmZvLCBSZXBvcnRSZXF1ZXN0LCBUYWJsZUNvbHVtbn0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWxcIjtcclxuaW1wb3J0IHtCYXNlVGFibGVDb21wb25lbnR9IGZyb20gXCIuLi9iYXNlLXRhYmxlL2Jhc2UtdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0QnV0dG9uLCBNYXRJY29uQnV0dG9ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQge01hdEljb259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hdWRpdC1sb2ctZGV0YWlscy1kaWFsb2cnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBCYXNlVGFibGVDb21wb25lbnQsXHJcbiAgICBNYXREaWFsb2dDb250ZW50LFxyXG4gICAgTWF0RGlhbG9nVGl0bGUsXHJcbiAgICBNYXRJY29uQnV0dG9uLFxyXG4gICAgTWF0SWNvblxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcG9ydC1kZXRhaWxzLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3JlcG9ydC1kZXRhaWxzLWRpYWxvZy5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0RGV0YWlsc0RpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCAsIEFmdGVyVmlld0luaXR7XHJcbiAgZGlhbG9nRGlyZWN0aW9uOiAnbHRyJyB8ICdydGwnID0gJ2x0cic7XHJcblxyXG4gIHBhZ2VJbmZvOiBQYWdlSW5mbztcclxuICBmaWVsZHM6IEZpZWxkSW5mb1tdID0gW107XHJcblxyXG4gIGlzVGVybWluYXRpb24gOiBib29sZWFuPWZhbHNlO1xyXG4gIGNvbW1lbnQ6IHN0cmluZyA9ICcnO1xyXG4gIGV4dGVybmFsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2lnbmluZ1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdG9rZW5SZWZlcmVuY2U6IHN0cmluZyA9IFwiXCI7XHJcbiAgd2FybmluZ01zZyA9IGZhbHNlO1xyXG4gIGl0ZW06IGFueSA9IHt9O1xyXG4gIHJlcG9ydFJlcXVlc3Q6IFJlcG9ydFJlcXVlc3Q7XHJcbiAgY29sdW1uczogVGFibGVDb2x1bW48YW55PltdO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxSZXBvcnREZXRhaWxzRGlhbG9nQ29tcG9uZW50PixcclxuICAgICAgICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIGJhY2tlbmRTZXJ2aWNlOkJhY2tlbmRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIGRpYWxvZ1JlZi5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAuZXNjJykgb25LZXlVcCgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5wYWdlSW5mbyA9IHRoaXMuZGF0YS5wYWdlSW5mbztcclxuICAgIHRoaXMucGFnZUluZm8uaGlkZVRpdGxlID0gdHJ1ZTtcclxuICAgIHRoaXMuaXRlbSA9IHRoaXMuZGF0YS5pdGVtO1xyXG4gICAgdGhpcy5wYWdlSW5mby5oaWRlRXh0cmFjdEJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jb2x1bW5zID0gdGhpcy5kYXRhLmNvbHVtbnM7XHJcbiAgICB0aGlzLnJlcG9ydFJlcXVlc3QgPSB0aGlzLmRhdGEucmVxdWVzdDtcclxuICAgIHRoaXMud2FybmluZ01zZyA9IHRoaXMuZGF0YS53YXJuaW5nTXNnIHx8IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnbWF0LWRpYWxvZy1jb250YWluZXInKTtcclxuICAgIGlmIChjb250YWluZXIgJiYgY29udGFpbmVyLmdldEF0dHJpYnV0ZSgnZGlyJykpIHtcclxuICAgICAgdGhpcy5kaWFsb2dEaXJlY3Rpb24gPSBjb250YWluZXIuZ2V0QXR0cmlidXRlKCdkaXInKSBhcyAnbHRyJyB8ICdydGwnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy5yZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QuZmlsdGVycyA9IFtdO1xyXG4gICAgdGhpcy5iYWNrZW5kU2VydmljZS5pc0VtcHR5SXRlbXMgPSBmYWxzZTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25CYWNrZHJvcENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAodGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnY2RrLW92ZXJsYXktYmFja2Ryb3AnKSkge1xyXG4gICAgICB0aGlzLnJlcG9ydFJlcXVlc3QuZmlsdGVyUmVxdWVzdC5maWx0ZXJzID0gW107XHJcbiAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UuaXNFbXB0eUl0ZW1zID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUaXRsZSgpIHtcclxuICAgIGlmICh0aGlzLml0ZW0/LmlzZWNfdmFsdWVfYXIpIHtcclxuICAgICAgY29uc3QgaXNlY0xhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0lTRUMnKTtcclxuICAgICAgcmV0dXJuIGA8c3Ryb25nPiR7aXNlY0xhYmVsfSAke3RoaXMuaXRlbS5pc2VjX3ZhbHVlX2FyfTwvc3Ryb25nPmA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2VjdG9yTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnU0VDVE9SJyk7XHJcbiAgICBjb25zdCBwZXJpb2RMYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdGT1JfUEVSSU9EJyk7XHJcbiAgICBjb25zdCBkaXJlY3RvcmF0ZUxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0RJUkVDVE9SQVRFJyk7XHJcblxyXG4gICAgY29uc3Qgc2VjdG9yVGV4dCA9IHRoaXMuaXRlbS5zZWN0b3IgPyBgJHtzZWN0b3JMYWJlbH0gJHt0aGlzLml0ZW0uc2VjdG9yfWAgOiAnJztcclxuICAgIGNvbnN0IHBlcmlvZFRleHQgPSB0aGlzLml0ZW0ucGVyaW9kID8gYCAke3BlcmlvZExhYmVsfSAke3RoaXMuaXRlbS5wZXJpb2R9YCA6ICcnO1xyXG4gICAgY29uc3QgeWVhclRleHQgPSB0aGlzLml0ZW0ueWVhciA/IGAgLSAke3RoaXMuaXRlbS55ZWFyfWAgOiAnJztcclxuICAgIGNvbnN0IGRpcmVjdG9yYXRlTGluZSA9IHRoaXMuaXRlbS5kaXJlY3RvcmF0ZSA/IGA8YnI+PHN0cm9uZz4ke2RpcmVjdG9yYXRlTGFiZWx9IC0gJHt0aGlzLml0ZW0uZGlyZWN0b3JhdGV9PC9zdHJvbmc+YCA6ICcnO1xyXG5cclxuICAgIGNvbnN0IG1haW5MaW5lID0gKHNlY3RvclRleHQgfHwgcGVyaW9kVGV4dCB8fCB5ZWFyVGV4dClcclxuICAgICAgPyBgPHN0cm9uZz4ke1tzZWN0b3JUZXh0LCBwZXJpb2RUZXh0LCB5ZWFyVGV4dF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJycpfTwvc3Ryb25nPmBcclxuICAgICAgOiAnJztcclxuXHJcbiAgICByZXR1cm4gYCR7bWFpbkxpbmV9JHtkaXJlY3RvcmF0ZUxpbmV9YDtcclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuIiwiPG1hdC1kaWFsb2ctY29udGVudCBzdHlsZT1cIm1heC1oZWlnaHQ6IDcwdmg7IG92ZXJmbG93OiBhdXRvOyBwb3NpdGlvbjogcmVsYXRpdmU7XCI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIiAoY2xpY2spPVwiY2FuY2VsKClcIiBbYXR0ci5kaXJdPVwiZGlhbG9nRGlyZWN0aW9uXCIgaWQ9XCJyZXBvcnQtZGV0YWlscy1jbG9zZS1idG5cIj5cclxuICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcblxyXG4gICAgPGgxIG1hdC1kaWFsb2ctdGl0bGUgW2lubmVySFRNTF09XCJnZXRUaXRsZSgpXCI+PC9oMT5cclxuXHJcbiAgICA8YXBwLWJhc2UtdGFibGVcclxuICAgICAgICAgICAgW3BhZ2VJbmZvXT1cInBhZ2VJbmZvXCJcclxuICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICAgICAgICAgIGlkPVwianVuaW9yXCJcclxuICAgICAgICAgICAgW2VuZm9yY2VSZWZyZXNoXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbcmVwb3J0UmVxdWVzdF09XCJyZXBvcnRSZXF1ZXN0XCI+XHJcbiAgICA8L2FwcC1iYXNlLXRhYmxlPlxyXG48L21hdC1kaWFsb2ctY29udGVudD5cclxuXHJcbiJdfQ==
@@ -459,7 +459,7 @@ export class ReportFormComponent {
459
459
  return !groupByValues.some(v => value.includes(v) && value.length >= v.length);
460
460
  }
461
461
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReportFormComponent, deps: [{ token: i1.TranslateService }, { token: i2.BackendService }, { token: i3.ActivatedRoute }, { token: i0.Injector }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.Directionality }, { token: i5.MatDialog }, { token: i6.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
462
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ReportFormComponent, isStandalone: true, selector: "app-report-form", inputs: { showDetails: "showDetails", showExtractButton: "showExtractButton", columns: "columns", actionRequestCallback: "actionRequestCallback", enrichDrillDownReportRequest: "enrichDrillDownReportRequest", enrichHyperLinkReportRequest: "enrichHyperLinkReportRequest", enrichJuniorReportRequest: "enrichJuniorReportRequest" }, outputs: { userAction: "userAction" }, ngImport: i0, template: "<div class=\"column full-width\">\r\n\r\n <div class=\"row align-start-center\" style=\"margin-bottom: 10px;\">\r\n <app-title-bar [pageTitle]=\"getTitle()\" [newAction]=\"false\"></app-title-bar>\r\n\r\n <mat-icon\r\n *ngIf=\"pageInfo?.hasHint\"\r\n [matTooltip]=\"pageInfo.labelsSection + '.hint' | translate\"\r\n matTooltipPosition=\"right\"\r\n color=\"primary\"\r\n class=\"hint-icon\"\r\n matTooltipClass=\"custom-tooltip\">\r\n help_outline\r\n </mat-icon>\r\n </div>\r\n\r\n <app-base-form-canvas\r\n [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [editable]=\"isEditable\"\r\n [errors]=\"errors\"\r\n [item]=\"this.reportForm?.value || {}\"\r\n (formUpdated)=\"updateForm($event)\"\r\n ></app-base-form-canvas>\r\n\r\n <br><br>\r\n\r\n <div class=\"column\">\r\n <div class=\"row gap-10 responsive-row\">\r\n <button *ngIf=\"activeLevel === 1\" color=\"primary\" mat-flat-button (click)=\"doAction(x)\" [disabled]=\"!isValidForm()\" id=\"report-generate-btn\">\r\n {{ 'REPORTS.generate' | translate }}\r\n </button>\r\n\r\n <button mat-raised-button [matMenuTriggerFor]=\"menu\" [disabled]=\"getIsEmptyList()\" color=\"primary\" id=\"report-extract-trigger\">\r\n {{ 'extract' | translate }}\r\n <mat-icon class=\"expand_more actionButton__expand\">expand_more</mat-icon>\r\n </button>\r\n\r\n <button mat-flat-button (click)=\"clear()\" [disabled]=\"isFormEmpty() || activeLevel > 1\" id=\"report-clear-btn\">\r\n {{ 'REPORTS.clear' | translate }}\r\n </button>\r\n\r\n <button *ngIf=\"activeLevel === 1 && drillDownEnabled()\" color=\"warn\" mat-flat-button (click)=\"drillDown()\" id=\"report-drilldown-btn\">\r\n {{ drillDownLabel() | translate }}\r\n </button>\r\n\r\n <button *ngIf=\"activeLevel > 1 && backButtonEnabled\" color=\"warn\" mat-flat-button (click)=\"goUp()\" id=\"report-up-btn\">\r\n {{ 'REPORTS.up' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"activeLevel >= 1\" class=\"main-form-canvas row align-start-start responsive-table\" style=\"margin-top: 3vh;\">\r\n <div class=\"column full-width\">\r\n <app-base-table\r\n *ngIf=\"activeLevel === 1\"\r\n [pageInfo]=\"pageInfo\"\r\n [columns]=\"columnsDefinition\"\r\n [enforceRefresh]=\"reloadData\"\r\n id=\"parent\"\r\n [reportRequest]=\"reportRequest\"\r\n (userAction)=\"emitUserAction($event)\"\r\n (hyperLinkAction)=\"emitHyperLinkAction($event)\">\r\n </app-base-table>\r\n\r\n <app-base-table\r\n *ngIf=\"activeLevel === 2\"\r\n [pageInfo]=\"drillDownPageInfo\"\r\n [columns]=\"drillDownColumns\"\r\n id=\"child\"\r\n [reportRequest]=\"childReportRequest\"\r\n (userAction)=\"emitJuniorAction($event)\"\r\n (hyperLinkAction)=\"emitHyperLinkAction($event)\">\r\n </app-base-table>\r\n\r\n <app-base-table\r\n *ngIf=\"activeLevel === 3\"\r\n [pageInfo]=\"juniorPageInfo\"\r\n [columns]=\"juniorColumns\"\r\n id=\"junior\"\r\n [reportRequest]=\"juniorReportRequest\">\r\n </app-base-table>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n<mat-menu #menu=\"matMenu\">\r\n <button type=\"button\" mat-menu-item *ngFor=\"let type of types\" (click)=\"extractReport(type)\" [attr.id]=\"'report-extract-item-' + type\">\r\n {{ type }}\r\n </button>\r\n</mat-menu>\r\n", styles: [".column{display:flex;flex-direction:column;width:100%}.row{display:flex;flex-direction:row;width:100%}.align-start-center{align-items:center;justify-content:flex-start}.align-start-start{align-items:flex-start;justify-content:flex-start}.gap-10>*+*{margin-left:10px}.full-width{width:100%}.hint-icon{cursor:pointer;margin-left:10px}.responsive-row{flex-wrap:wrap}@media (max-width: 960px){.responsive-row{flex-direction:column;align-items:flex-start}}@media (max-width: 600px){.responsive-table{justify-content:center}}\n"], dependencies: [{ kind: "component", type: TitleBarComponent, selector: "app-title-bar", inputs: ["pageTitle", "showExtractButton", "totalElements", "titleMode", "subTitle", "statusDesc", "newAction", "extraButton", "showDetails", "showImport", "showButton", "extraData", "titleCorporateAdmin", "hideBackButton", "buttons", "buttonsDisplayMode"], outputs: ["newActionClicked", "extraButtonClicked", "extractReport", "buttonClicked"] }, { kind: "component", type: BaseFormCanvasComponent, selector: "app-base-form-canvas", inputs: ["pageInfo", "currency", "fields", "errors", "workflowEditableFields", "isWorkflowEditableManaged", "supportingAttributes", "editable", "emitOnValueChanges", "item", "equationSuggestedFields", "currentEquationValue"], outputs: ["attachmentEmitter", "actionEmitter", "formUpdated", "hyperTextEvent", "currentEquationValueChange"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: BaseTableComponent, selector: "app-base-table", inputs: ["filterFields", "noDataFoundSvgPath", "noDataFoundTitle", "noDataFoundSubtitle", "noResultSvgPath", "noResultTitle", "noResultSubtitle", "pageInfo", "enablePagination", "data", "listAction", "columns", "filters", "pathParam", "extraButton", "enforceRefresh", "isPending", "trigger", "reportRequest", "separateEndpointData", "manageablePages", "totalPagesCount", "currentPageIndex", "customizedData"], outputs: ["pageChange", "userAction", "hyperLinkAction", "extraAction", "selectedColumn", "listActionClicked", "showDialog", "clickRoutePage"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
462
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ReportFormComponent, isStandalone: true, selector: "app-report-form", inputs: { showDetails: "showDetails", showExtractButton: "showExtractButton", columns: "columns", actionRequestCallback: "actionRequestCallback", enrichDrillDownReportRequest: "enrichDrillDownReportRequest", enrichHyperLinkReportRequest: "enrichHyperLinkReportRequest", enrichJuniorReportRequest: "enrichJuniorReportRequest" }, outputs: { userAction: "userAction" }, ngImport: i0, template: "<div class=\"column full-width\">\r\n\r\n <div class=\"row align-start-center\" style=\"margin-bottom: 10px;\">\r\n <app-title-bar [pageTitle]=\"getTitle()\" [newAction]=\"false\"></app-title-bar>\r\n\r\n <mat-icon\r\n *ngIf=\"pageInfo?.hasHint\"\r\n [matTooltip]=\"pageInfo.labelsSection + '.hint' | translate\"\r\n matTooltipPosition=\"right\"\r\n color=\"primary\"\r\n class=\"hint-icon\"\r\n matTooltipClass=\"custom-tooltip\">\r\n help_outline\r\n </mat-icon>\r\n </div>\r\n\r\n <app-base-form-canvas\r\n [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [editable]=\"isEditable\"\r\n [errors]=\"errors\"\r\n [item]=\"this.reportForm?.value || {}\"\r\n (formUpdated)=\"updateForm($event)\"\r\n ></app-base-form-canvas>\r\n\r\n <br><br>\r\n\r\n <div class=\"column\">\r\n <div class=\"row gap-10 responsive-row\">\r\n <button *ngIf=\"activeLevel === 1\" color=\"primary\" mat-flat-button (click)=\"doAction(x)\" [disabled]=\"!isValidForm()\" id=\"report-generate-btn\">\r\n {{ 'REPORTS.generate' | translate }}\r\n </button>\r\n\r\n <button mat-raised-button [matMenuTriggerFor]=\"menu\" [disabled]=\"getIsEmptyList()\" color=\"primary\" id=\"report-extract-trigger\">\r\n {{ 'extract' | translate }}\r\n <mat-icon class=\"expand_more actionButton__expand\">expand_more</mat-icon>\r\n </button>\r\n\r\n <button mat-flat-button (click)=\"clear()\" [disabled]=\"isFormEmpty() || activeLevel > 1\" id=\"report-clear-btn\">\r\n {{ 'REPORTS.clear' | translate }}\r\n </button>\r\n\r\n <button *ngIf=\"activeLevel === 1 && drillDownEnabled()\" color=\"warn\" mat-flat-button (click)=\"drillDown()\" id=\"report-drilldown-btn\">\r\n {{ drillDownLabel() | translate }}\r\n </button>\r\n\r\n <button *ngIf=\"activeLevel > 1 && backButtonEnabled\" color=\"warn\" mat-flat-button (click)=\"goUp()\" id=\"report-up-btn\">\r\n {{ 'REPORTS.up' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"activeLevel >= 1\" class=\"main-form-canvas row align-start-start responsive-table\" style=\"margin-top: 3vh;\">\r\n <div class=\"column full-width\">\r\n <app-base-table\r\n *ngIf=\"activeLevel === 1\"\r\n [pageInfo]=\"pageInfo\"\r\n [columns]=\"columnsDefinition\"\r\n [enforceRefresh]=\"reloadData\"\r\n id=\"parent\"\r\n [reportRequest]=\"reportRequest\"\r\n (userAction)=\"emitUserAction($event)\"\r\n (hyperLinkAction)=\"emitHyperLinkAction($event)\">\r\n </app-base-table>\r\n\r\n <app-base-table\r\n *ngIf=\"activeLevel === 2\"\r\n [pageInfo]=\"drillDownPageInfo\"\r\n [columns]=\"drillDownColumns\"\r\n id=\"child\"\r\n [reportRequest]=\"childReportRequest\"\r\n (userAction)=\"emitJuniorAction($event)\"\r\n (hyperLinkAction)=\"emitHyperLinkAction($event)\">\r\n </app-base-table>\r\n\r\n <app-base-table\r\n *ngIf=\"activeLevel === 3\"\r\n [pageInfo]=\"juniorPageInfo\"\r\n [columns]=\"juniorColumns\"\r\n id=\"junior\"\r\n [reportRequest]=\"juniorReportRequest\">\r\n </app-base-table>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n<mat-menu #menu=\"matMenu\">\r\n <button type=\"button\" mat-menu-item *ngFor=\"let type of types\" (click)=\"extractReport(type)\" [attr.id]=\"'report-extract-item-' + type\">\r\n {{ type }}\r\n </button>\r\n</mat-menu>\r\n", styles: [".column{display:flex;flex-direction:column;width:100%}.row{display:flex;flex-direction:row;width:100%}.align-start-center{align-items:center;justify-content:flex-start}.align-start-start{align-items:flex-start;justify-content:flex-start}.gap-10>*+*{margin-left:10px}.full-width{width:100%}.hint-icon{cursor:pointer;margin-left:10px}.responsive-row{flex-wrap:wrap}@media (max-width: 960px){.responsive-row{flex-direction:column;align-items:flex-start}}@media (max-width: 600px){.responsive-table{justify-content:center}}\n"], dependencies: [{ kind: "component", type: TitleBarComponent, selector: "app-title-bar", inputs: ["pageTitle", "showExtractButton", "totalElements", "titleMode", "pageInfo", "subTitle", "statusDesc", "newAction", "extraButton", "showDetails", "showImport", "showButton", "extraData", "titleCorporateAdmin", "hideBackButton", "buttons", "buttonsDisplayMode", "draftSupported", "isPending", "onViewModeChange"], outputs: ["newActionClicked", "extraButtonClicked", "extractReport", "buttonClicked", "viewModeChanged"] }, { kind: "component", type: BaseFormCanvasComponent, selector: "app-base-form-canvas", inputs: ["pageInfo", "currency", "fields", "errors", "workflowEditableFields", "isWorkflowEditableManaged", "supportingAttributes", "editable", "emitOnValueChanges", "item", "equationSuggestedFields", "currentEquationValue"], outputs: ["attachmentEmitter", "actionEmitter", "formUpdated", "hyperTextEvent", "currentEquationValueChange"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: BaseTableComponent, selector: "app-base-table", inputs: ["filterFields", "noDataFoundSvgPath", "noDataFoundTitle", "noDataFoundSubtitle", "noResultSvgPath", "noResultTitle", "noResultSubtitle", "pageInfo", "enablePagination", "data", "listAction", "extraActions", "buttonsDisplayMode", "columns", "filters", "pathParam", "extraButton", "enforceRefresh", "isPending", "trigger", "reportRequest", "separateEndpointData", "manageablePages", "totalPagesCount", "currentPageIndex", "customizedData"], outputs: ["buttonClicked", "pageChange", "userAction", "hyperLinkAction", "extraAction", "selectedColumn", "listActionClicked", "showDialog", "clickRoutePage"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
463
463
  }
464
464
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReportFormComponent, decorators: [{
465
465
  type: Component,
@@ -495,4 +495,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
495
495
  }], userAction: [{
496
496
  type: Output
497
497
  }] } });
498
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnQtZm9ybS9yZXBvcnQtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydC1mb3JtL3JlcG9ydC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMEIsU0FBUyxFQUFFLFlBQVksRUFBWSxLQUFLLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWhILE9BQU8sRUFBQyxlQUFlLEVBQVcsTUFBTSw0QkFBNEIsQ0FBQztBQUdyRSxPQUFPLEVBQUMsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBSXRFLE9BQU8sRUFBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVFLE9BQU8sRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFr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QkFBbUI7a0JBckIvQixTQUFTOytCQUNJLGlCQUFpQixjQUNmLElBQUksV0FDVDt3QkFDUCxpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsT0FBTzt3QkFDUCxXQUFXO3dCQUNYLE9BQU87d0JBQ1AsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixJQUFJO3dCQUNKLGFBQWE7d0JBQ2IsU0FBUzt3QkFDVCxVQUFVO3FCQUNYO3VTQU1DLFdBQVc7c0JBRFYsS0FBSztnQkFJTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUdHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFHTixVQUFVO3NCQURULE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RmllbGRJbmZvfSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9maWVsZC1pbmZvXCI7XHJcbmltcG9ydCB7RU1QVFlfUEFHRV9JTkZPLCBQYWdlSW5mb30gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWwvcGFnZS1pbmZvXCI7XHJcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsL3RhYmxlLWNvbHVtbi5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtGaWVsZE1lc3NhZ2V9IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsL2FwaS1yZXNwb25zZVwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHtCYWNrZW5kU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2JhY2tlbmQtc2VydmljZVwiO1xyXG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUdyb3VwfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtmb3JtYXREYXRlLCBOZ0Zvck9mLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TWF0TWVudSwgTWF0TWVudUl0ZW0sIE1hdE1lbnVUcmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xyXG5pbXBvcnQge01hdEJ1dHRvbiwgTWF0QnV0dG9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7QmFzZVRhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS10YWJsZS9iYXNlLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbmltcG9ydCB7RmlsdGVyUmVxdWVzdH0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWwvZmlsdGVyLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtSZXBvcnRSZXF1ZXN0fSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9yZXBvcnQtcmVxdWVzdC5tb2RlbFwiO1xyXG5pbXBvcnQge0ZpbHRlcn0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWwvZmlsdGVyLm1vZGVsXCI7XHJcbmltcG9ydCB7VGl0bGVCYXJDb21wb25lbnR9IGZyb20gXCIuLi90aXRsZS1iYXIvdGl0bGUtYmFyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0Jhc2VGb3JtQ2FudmFzQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS1mb3JtLWNhbnZhcy9iYXNlLWZvcm0tY2FudmFzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgQ2xhc3NpY0VkaXRvciBmcm9tIFwiQGNrZWRpdG9yL2NrZWRpdG9yNS1idWlsZC1jbGFzc2ljXCI7XHJcbmltcG9ydCB7RFJJTExfRE9XTl9BQ1RJT04sIEpVTklPUl9ET1dOX0FDVElPTiwgU25hY2tNZXNzYWdlLCBUYWJsZVBhZ2VVc2VyQWN0aW9ufSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbFwiO1xyXG5pbXBvcnQge30gZnJvbSBcIi4uL2F1ZGl0LWxvZy1kZXRhaWxzLWRpYWxvZy9hdWRpdC1sb2ctZGV0YWlscy1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7UmVwb3J0RGV0YWlsc0RpYWxvZ0NvbXBvbmVudH0gZnJvbSBcIi4uL3JlcG9ydC1kZXRhaWxzLWRpYWxvZy9yZXBvcnQtZGV0YWlscy1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7TWF0VG9vbHRpcH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuaW1wb3J0IHtEaXJlY3Rpb25hbGl0eX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9iaWRpXCI7XHJcblxyXG5cclxuY29uc3QgTk9OX1JFUE9SVF9DT0xVTU5TID0gWydsaXN0QWN0aW9uJywgJ2J1dHRvbicsICdjaGVja2JveCddO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1yZXBvcnQtZm9ybScsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFRpdGxlQmFyQ29tcG9uZW50LFxyXG4gICAgQmFzZUZvcm1DYW52YXNDb21wb25lbnQsXHJcbiAgICBNYXRNZW51LFxyXG4gICAgTWF0TWVudUl0ZW0sXHJcbiAgICBOZ0Zvck9mLFxyXG4gICAgTWF0TWVudVRyaWdnZXIsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBCYXNlVGFibGVDb21wb25lbnQsXHJcbiAgICBOZ0lmLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbixcclxuICAgIE1hdFRvb2x0aXBcclxuICBdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JlcG9ydC1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAnLi9yZXBvcnQtZm9ybS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcG9ydEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KClcclxuICAgIHNob3dEZXRhaWxzIDogYW55ID0gW107XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNob3dFeHRyYWN0QnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgY29sdW1uczogVGFibGVDb2x1bW48YW55PltdID1bXTtcclxuXHJcbiAgICBASW5wdXQoKSBhY3Rpb25SZXF1ZXN0Q2FsbGJhY2shOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbikgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuICAgIEBJbnB1dCgpIGVucmljaERyaWxsRG93blJlcG9ydFJlcXVlc3QhOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbiwgcmVwb3J0UmVxdWVzdDogUmVwb3J0UmVxdWVzdCkgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuICAgIEBJbnB1dCgpIGVucmljaEh5cGVyTGlua1JlcG9ydFJlcXVlc3QhOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbiwgcmVwb3J0UmVxdWVzdDogUmVwb3J0UmVxdWVzdCkgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuICAgIEBJbnB1dCgpIGVucmljaEp1bmlvclJlcG9ydFJlcXVlc3QhOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbiwgcmVwb3J0UmVxdWVzdDogUmVwb3J0UmVxdWVzdCkgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHVzZXJBY3Rpb246IEV2ZW50RW1pdHRlcjxUYWJsZVBhZ2VVc2VyQWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVQYWdlVXNlckFjdGlvbj4oKTtcclxuICAgIGFjdGl2ZUxldmVsOiBudW1iZXIgPSAxO1xyXG5cclxuICAgIHByaXZhdGUgZmlsdGVyUmVxdWVzdDogRmlsdGVyUmVxdWVzdDtcclxuICAgIHg6IGFueTtcclxuICAgIGlzRWRpdGFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgZmllbGRzOiBGaWVsZEluZm9bXSA9IFtdO1xyXG4gICAgcGFnZUluZm86IFBhZ2VJbmZvID0gRU1QVFlfUEFHRV9JTkZPO1xyXG4gICAgZHJpbGxEb3duUGFnZUluZm86IFBhZ2VJbmZvID0gRU1QVFlfUEFHRV9JTkZPO1xyXG4gICAgZHJpbGxEb3duQ29sdW1uczogVGFibGVDb2x1bW48YW55PltdID0gW107XHJcbiAgICBoaWRlRHJpbGxEb3duQnV0dG9uOiBmYWxzZTtcclxuXHJcbiAgICBqdW5pb3JQYWdlSW5mbzogUGFnZUluZm8gPSBFTVBUWV9QQUdFX0lORk87XHJcbiAgICBqdW5pb3JDb2x1bW5zOiBUYWJsZUNvbHVtbjxhbnk+W10gPSBbXTtcclxuXHJcbiAgICBjb2x1bW5zRGVmaW5pdGlvbjogVGFibGVDb2x1bW48YW55PltdID0gW107XHJcbiAgICB0eXBlczogc3RyaW5nW10gPSBbXCJwZGZcIiwgXCJjc3ZcIiwgXCJ4bHN4XCJdXHJcbiAgICBzZWFyY2hTdHI6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIGVycm9yczogRmllbGRNZXNzYWdlW10gPSBbXTtcclxuXHJcbiAgICByZWxvYWREYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBiYWNrQnV0dG9uRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cclxuICAgIHJlcG9ydFJlcXVlc3Q6IFJlcG9ydFJlcXVlc3QgPSBuZXcgUmVwb3J0UmVxdWVzdCh7fSk7XHJcbiAgICBjaGlsZFJlcG9ydFJlcXVlc3Q6IFJlcG9ydFJlcXVlc3QgPSBuZXcgUmVwb3J0UmVxdWVzdCh7fSk7XHJcbiAgICBqdW5pb3JSZXBvcnRSZXF1ZXN0OiBSZXBvcnRSZXF1ZXN0ID0gbmV3IFJlcG9ydFJlcXVlc3Qoe30pO1xyXG4gICAgcHVibGljIHJlcG9ydEZvcm06IEZvcm1Hcm91cDtcclxuICAgIHJlYWR5VG9TZWFyY2ggPSBmYWxzZTtcclxuICAgIHByaXZhdGUgcGFnZVNpemU6IGFueTtcclxuICAgIHByaXZhdGUgZGlhbG9nUmVwb3J0UmVxdWVzdDogYW55O1xyXG4gICAgY3VycmVudERpcmVjdGlvbjogJ2x0cicgfCAncnRsJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHVibGljIGJhY2tlbmRTZXJ2aWNlOiBCYWNrZW5kU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIGRpcmVjdGlvbmFsaXR5OiBEaXJlY3Rpb25hbGl0eSxcclxuICAgICAgICAgICAgICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICAgICBDbGFzc2ljRWRpdG9yLmRlZmF1bHRDb25maWcgPSB7XHJcbiAgICAgICAgICAgIHRvb2xiYXI6IHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbJ2hlYWRpbmcnLCAnfCcsICdib2xkJywgJ2l0YWxpYycsICd8JywgJ2J1bGxldGVkTGlzdCcsICdudW1iZXJlZExpc3QnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWFnZToge1xyXG4gICAgICAgICAgICAgICAgdG9vbGJhcjogWydpbWFnZVN0eWxlOnNpZGUnLCAnfCcsICdpbWFnZVRleHRBbHRlcm5hdGl2ZSddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRhYmxlOiB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50VG9vbGJhcjogWyAndGFibGVDb2x1bW4nLCAndGFibGVSb3cnLCAnbWVyZ2VUYWJsZUNlbGxzJyBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGxhbmd1YWdlOiAnZW4nXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlRXhwb3J0QWN0aW9uIDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmN1cnJlbnREaXJlY3Rpb24gPSB0aGlzLmRpcmVjdGlvbmFsaXR5LnZhbHVlO1xyXG4gICAgICB0aGlzLmRpcmVjdGlvbmFsaXR5LmNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uID0gdmFsdWU7XHJcbiAgICAgIH0pXHJcblxyXG4gICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgIHRoaXMucGFnZUluZm8gPSBkYXRhWydwYWdlSW5mbyddO1xyXG4gICAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLnBhZ2VJbmZvLnBhZ2VTaXplID8/IDEwO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyUmVxdWVzdCA9IG5ldyBGaWx0ZXJSZXF1ZXN0KHRoaXMucGFnZVNpemUpO1xyXG4gICAgICAgIGRhdGFbJ3BhZ2VJbmZvJ10ubGF6eUxvYWREYXRhID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmRyaWxsRG93blBhZ2VJbmZvID0gZGF0YVsnZHJpbGxEb3duUGFnZUluZm8nXTtcclxuICAgICAgICB0aGlzLmRyaWxsRG93bkNvbHVtbnMgPSBkYXRhWydkcmlsbERvd25Db2x1bW5zJ10/LmZpbHRlcihjID0+IGMucHJvcGVydHkgIT09ICdzZWxlY3RJdGVtJyk7XHJcbiAgICAgICAgdGhpcy5oaWRlRHJpbGxEb3duQnV0dG9uID0gZGF0YVsnaGlkZURyaWxsRG93bkJ1dHRvbiddID8/IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuanVuaW9yUGFnZUluZm8gPSBkYXRhWydqdW5pb3JQYWdlSW5mbyddO1xyXG4gICAgICAgIHRoaXMuanVuaW9yQ29sdW1ucyA9IGRhdGFbJ2p1bmlvckNvbHVtbnMnXTtcclxuICAgICAgICB0aGlzLmNvbHVtbnNEZWZpbml0aW9uID0gZGF0YVsnY29sdW1uc0RlZmluaXRpb24nXS5maWx0ZXIoYyA9PiAodGhpcy5kcmlsbERvd25QYWdlSW5mbyAmJiB0aGlzLmRyaWxsRG93bkNvbHVtbnMgfHwgKCFOT05fUkVQT1JUX0NPTFVNTlMuaW5jbHVkZXMoYy50eXBlKSkpKTtcclxuICAgICAgICB0aGlzLmZpZWxkcyA9IGRhdGFbJ2ZpZWxkcyddO1xyXG4gICAgICAgIGlmIChkYXRhWydlbnJpY2hEcmlsbERvd25SZXBvcnRSZXF1ZXN0J10pIHtcclxuICAgICAgICAgIHRoaXMuZW5yaWNoRHJpbGxEb3duUmVwb3J0UmVxdWVzdCA9IGRhdGFbJ2VucmljaERyaWxsRG93blJlcG9ydFJlcXVlc3QnXSh0aGlzLmluamVjdG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRhdGFbJ2VucmljaEp1bmlvclJlcG9ydFJlcXVlc3QnXSkge1xyXG4gICAgICAgICAgdGhpcy5lbnJpY2hKdW5pb3JSZXBvcnRSZXF1ZXN0ID0gZGF0YVsnZW5yaWNoSnVuaW9yUmVwb3J0UmVxdWVzdCddKHRoaXMuaW5qZWN0b3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGRhdGFbJ2VucmljaEh5cGVyTGlua1JlcG9ydFJlcXVlc3QnXSkge1xyXG4gICAgICAgICAgdGhpcy5lbnJpY2hIeXBlckxpbmtSZXBvcnRSZXF1ZXN0ID0gZGF0YVsnZW5yaWNoSHlwZXJMaW5rUmVwb3J0UmVxdWVzdCddKHRoaXMuaW5qZWN0b3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbU1hcC5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgICBjb25zdCBpc0NvbXBhcmlzb25SZXBvcnQgPSBwYXJhbXMuZ2V0KCdjb21wYXJpc29uUmVwb3J0JykgPT09ICd0cnVlJztcclxuXHJcbiAgICAgICAgaWYgKGlzQ29tcGFyaXNvblJlcG9ydCkge1xyXG4gICAgICAgICAgY29uc3QgY29tcGFyaXNvblN0ciA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2NvbXBhcmlzb25SZXBvcnRQYWdlSW5mbycpO1xyXG5cclxuICAgICAgICAgIGlmIChjb21wYXJpc29uU3RyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhcmlzb25EYXRhID0gSlNPTi5wYXJzZShjb21wYXJpc29uU3RyKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucGFnZUluZm8ubGF6eUxvYWREYXRhID0gY29tcGFyaXNvbkRhdGEubGF6eUxvYWREYXRhID8/IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUxldmVsID0gY29tcGFyaXNvbkRhdGEuYWN0aXZlTGV2ZWwgPz8gMjtcclxuICAgICAgICAgICAgdGhpcy5pc0VkaXRhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuYmFja0J1dHRvbkVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5kcmlsbERvd25QYWdlSW5mbyA9IGNvbXBhcmlzb25EYXRhLmRyaWxsRG93blBhZ2VJbmZvO1xyXG4gICAgICAgICAgICB0aGlzLmRyaWxsRG93bkNvbHVtbnMgPSBjb21wYXJpc29uRGF0YS5kcmlsbERvd25Db2x1bW5zO1xyXG4gICAgICAgICAgICB0aGlzLnJlcG9ydEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgICBkaXJlY3RvcmF0ZTogW1tdXSxcclxuICAgICAgICAgICAgICBmcm9tRGF0ZTogWycnXSxcclxuICAgICAgICAgICAgICB0b0RhdGU6IFsnJ10sXHJcbiAgICAgICAgICAgICAgc2VjdG9yOiBbJyddLFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucmVwb3J0Rm9ybS5wYXRjaFZhbHVlKGNvbXBhcmlzb25EYXRhLmZvcm0pXHJcbiAgICAgICAgICAgIHRoaXMuZmllbGRzID0gdGhpcy5maWVsZHMuZmlsdGVyKGMgPT4gYy50eXBlICE9PSAnY2hlY2tib3gnKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHJlcG9ydFJlcXVlc3QgPSBjb21wYXJpc29uRGF0YS5yZXBvcnRSZXF1ZXN0O1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jaGlsZFJlcG9ydFJlcXVlc3QgPSB0aGlzLmJhY2tlbmRTZXJ2aWNlLmJ1aWxkUmVwb3J0UmVxdWVzdChcclxuICAgICAgICAgICAgICB0aGlzLmRyaWxsRG93bkNvbHVtbnMsXHJcbiAgICAgICAgICAgICAgYCR7dGhpcy5kcmlsbERvd25QYWdlSW5mby5sYWJlbHNTZWN0aW9ufS4ke3RoaXMuZHJpbGxEb3duUGFnZUluZm8uaWR9YCxcclxuICAgICAgICAgICAgICByZXBvcnRSZXF1ZXN0LFxyXG4gICAgICAgICAgICAgICcnLFxyXG4gICAgICAgICAgICAgIHRoaXMuZHJpbGxEb3duUGFnZUluZm8sXHJcbiAgICAgICAgICAgICAgJ0xBTkRTQ0FQRSdcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgIC8vIG5nT25DaGFuZ2VzKHtpdGVtLCBlcnJvcnMsIGZpZWxkc306IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIC8vICAgICAvLyBlcnJvcnM/LmN1cnJlbnRWYWx1ZT8uZm9yRWFjaCgobXNnOiBGaWVsZE1lc3NhZ2UpID0+IHtcclxuICAgIC8vICAgICAvLyAgICAgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChtc2cuZmllbGROYW1lKT8uc2V0RXJyb3JzKHtzZXJ2ZXJFcnJvcjogbXNnLm1lc3NhZ2V9KTtcclxuICAgIC8vICAgICAvLyB9KTtcclxuICAgIC8vICAgICAvLyBpZiAoZmllbGRzPy5jdXJyZW50VmFsdWUgJiYgIWZpZWxkcy5pc0ZpcnN0Q2hhbmdlKCkpe1xyXG4gICAgLy8gICAgIC8vICAgICB0aGlzLmJ1aWxkRm9ybSgpO1xyXG4gICAgLy8gICAgIC8vIH1cclxuICAgIC8vICAgICAvLyB0aGlzLmJ1aWxkRm9ybSgpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGlzTWF0Y2hIZWlnaHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnZUluZm8ucGFnZUhlaWdodCA9PT0gJ21hdGNoJztcclxuICAgIH1cclxuXHJcblxyXG4gICAgZG9BY3Rpb24odHlwZTogc3RyaW5nKSB7XHJcbiAgICAgIGlmICh0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0udmFsaWQpIHtcclxuICAgICAgICB0aGlzLnJlbG9hZERhdGEgPSAhdGhpcy5yZWxvYWREYXRhO1xyXG4gICAgICAgIGNvbnN0IGZpbHRlclJlcXVlc3Q6IEZpbHRlclJlcXVlc3QgPSBuZXcgRmlsdGVyUmVxdWVzdCh0aGlzLnBhZ2VTaXplKTtcclxuICAgICAgICBmaWx0ZXJSZXF1ZXN0LmZpbHRlcnMgPSBbXTtcclxuICAgICAgICBsZXQgcGFyYW1zU3RyaW5nOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIHRoaXMuZmllbGRzLmZpbHRlcih4ID0+IHgudHlwZSAhPT0gJ3NwYWNlcicpLmZvckVhY2goZiA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5nZXRQYXJhbVZhbHVlKGYpICE9IG51bGwgJiYgdGhpcy5nZXRQYXJhbVZhbHVlKGYpLnRvU3RyaW5nKCkudHJpbSgpICE9PSAnJylcclxuICAgICAgICAgIHtcclxuICAgICAgICAgIGlmIChmLnR5cGUgPT09ICdtdWx0aS1zZWxlY3QnIHx8IGYudHlwZSA9PT0gJ2xvb2t1cCcpIHtcclxuICAgICAgICAgICAgLy8gZG8gbm90IGZpbHRlciBpZiB0aGlzIGZpZWxkIGFzIGNhc2NhZGluZyBmb3IgYW5vdGhlciBvbmUgYW5kIHRoZSBvdGhlciBvbmUgZ290IHNlbGVjdGVkIHZhbHVlc1xyXG4gICAgICAgICAgICBjb25zdCBjaGlsZEZpZWxkSWR4ID0gdGhpcy5maWVsZHMuZmluZEluZGV4KGZpZWxkID0+IGZpZWxkLmNhc2NhZGVkQnkgPT09IGYucHJvcGVydHkpO1xyXG4gICAgICAgICAgICBpZiAoY2hpbGRGaWVsZElkeCA+IC0xICYmIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQodGhpcy5maWVsZHNbY2hpbGRGaWVsZElkeF0ucHJvcGVydHkpPy52YWx1ZT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBpZHo6IG51bWJlcltdID0gW107XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUgJiYgQXJyYXkuaXNBcnJheSh0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZSlcclxuICAgICAgICAgICAgICAmJiB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUuZm9yRWFjaCgoYToge1xyXG4gICAgICAgICAgICAgICAgY2hhbm5lbElkOiBudW1iZXI7XHJcbiAgICAgICAgICAgICAgICBlbmdsaXNoTmFtZTogc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgaWQ6IG51bWJlcjtcclxuICAgICAgICAgICAgICB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZi5mbGF0dGVuQnlTdWJBdHRyaWJ1dGUpIHtcclxuICAgICAgICAgICAgICAgICAgaWR6LnB1c2goYVtmLmZsYXR0ZW5CeVN1YkF0dHJpYnV0ZV0pO1xyXG4gICAgICAgICAgICAgICAgICBwYXJhbS5wdXNoKGFbZi5mbGF0dGVuQnlTdWJBdHRyaWJ1dGVdKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZHMuZmluZChzID0+IHMucHJvcGVydHkgPT09ICd0ZXJtaW5hbElkJykpIHtcclxuICAgICAgICAgICAgICAgICAgaWR6LnB1c2goYS5jaGFubmVsSWQpO1xyXG4gICAgICAgICAgICAgICAgICBwYXJhbS5wdXNoKGEuZW5nbGlzaE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgaWR6LnB1c2goYS5pZCk7XHJcbiAgICAgICAgICAgICAgICAgIHBhcmFtLnB1c2goYS5lbmdsaXNoTmFtZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICBmaWx0ZXJSZXF1ZXN0LmZpbHRlcnM/LnB1c2gobmV3IEZpbHRlcih7XHJcbiAgICAgICAgICAgICAgICBpZDogZi5wcm9wZXJ0eSwgZmllbGROYW1lOiBmLnByb3BlcnR5LCBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZi5sYWJlbCksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlOiAnRklMRURfRklMVEVSJywgb3BlcmF0b3I6IGYuZmlsdGVyT3BlcmF0b3IsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZU9iamVjdDogaWR6XHJcbiAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgIHBhcmFtc1N0cmluZy5wdXNoKHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGYubGFiZWwpICsgJyA6ICcgKyBwYXJhbS5qb2luKCcsJykpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlICYmIGYuZmxhdHRlbkJ5U3ViQXR0cmlidXRlKSB7XHJcbiAgICAgICAgICAgICAgZmlsdGVyUmVxdWVzdC5maWx0ZXJzPy5wdXNoKG5ldyBGaWx0ZXIoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IGYucHJvcGVydHksIGZpZWxkTmFtZTogZi5wcm9wZXJ0eSwgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGYubGFiZWwpLFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0ZJTEVEX0ZJTFRFUicsIG9wZXJhdG9yOiBmLmZpbHRlck9wZXJhdG9yLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVPYmplY3Q6IHRoaXMuZ2V0UGFyYW1WYWx1ZShmKVtmLmZsYXR0ZW5CeVN1YkF0dHJpYnV0ZV1cclxuICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZSAhPT0gbnVsbCAmJlxyXG4gICAgICAgICAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZSAhPT0gXCJcIikge1xyXG4gICAgICAgICAgICAgIGZpbHRlclJlcXVlc3QuZmlsdGVycz8ucHVzaChuZXcgRmlsdGVyKHtcclxuICAgICAgICAgICAgICAgIGlkOiBmLnByb3BlcnR5LCBmaWVsZE5hbWU6IGYucHJvcGVydHksIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChmLmxhYmVsKSxcclxuICAgICAgICAgICAgICAgIGZpbHRlclR5cGU6ICdGSUxFRF9GSUxURVInLCBvcGVyYXRvcjogZi5maWx0ZXJPcGVyYXRvcixcclxuICAgICAgICAgICAgICAgIHZhbHVlT2JqZWN0OiB0aGlzLmdldFBhcmFtVmFsdWUoZilcclxuICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcGFyYW1zU3RyaW5nLnB1c2godGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZi5sYWJlbCkgKyAnIDogJyArIHRoaXMuZ2V0UGFyYW1WYWx1ZUxhYmVsKGYpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9fSlcclxuICAgICAgICBjb25zdCByZXBvcnRSZXF1ZXN0ID0gdGhpcy5iYWNrZW5kU2VydmljZS5idWlsZFJlcG9ydFJlcXVlc3QodGhpcy5jb2x1bW5zRGVmaW5pdGlvbiwgdGhpcy5wYWdlSW5mby5sYWJlbHNTZWN0aW9uICsgJy4nICsgdGhpcy5wYWdlSW5mby5pZCxcclxuICAgICAgICAgIGZpbHRlclJlcXVlc3QsIHR5cGUsIHRoaXMucGFnZUluZm8sICdMQU5EU0NBUEUnKTtcclxuICAgICAgICByZXBvcnRSZXF1ZXN0LnNlYXJjaFN0ciA9IHBhcmFtc1N0cmluZy5qb2luKCcgLCAnKTtcclxuICAgICAgICB0aGlzLnJlcG9ydFJlcXVlc3QgPSByZXBvcnRSZXF1ZXN0O1xyXG4gICAgICAgIC8vIHRoaXMuYWN0aXZlTGV2ZWwgPSAxO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UudG9wUGFuZWxNZXNzYWdlJC5uZXh0KG5ldyBTbmFja01lc3NhZ2UoJ0lOVkFMSURfUkVQT1JUX0ZPUk0nLCB0cnVlLCAnZXJyb3InKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFBhcmFtVmFsdWUoZjogRmllbGRJbmZvKSB7XHJcbiAgICAgICAgaWYgKGYudHlwZSA9PT0gJ2RhdGUnICYmIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXREYXRlKHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlLCAneXl5eS1NTS1kZCcsICdlbl9VUycpXHJcbiAgICAgICAgfWVsc2UgaWYgKGYudHlwZSA9PT0gJ2NoZWNrYm94Jykge1xyXG4gICAgICAgICAgICByZXR1cm4gISF0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZTtcclxuICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQYXJhbVZhbHVlTGFiZWwoZjogRmllbGRJbmZvKSB7XHJcbiAgICAgICAgaWYgKGYudHlwZSA9PT0gJ2NoZWNrYm94Jykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgneWVzJykgOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnbm8nKTtcclxuICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gIGdldFRpdGxlKCkge1xyXG4gICAgY29uc3QgcGFnZUluZm9NYXAgPSB7XHJcbiAgICAgIDE6IHRoaXMucGFnZUluZm8sXHJcbiAgICAgIDI6IHRoaXMuZHJpbGxEb3duUGFnZUluZm8sXHJcbiAgICAgIDM6IHRoaXMuanVuaW9yUGFnZUluZm9cclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgY3VycmVudEluZm8gPSBwYWdlSW5mb01hcFt0aGlzLmFjdGl2ZUxldmVsXSB8fCB0aGlzLnBhZ2VJbmZvO1xyXG4gICAgcmV0dXJuIGAke2N1cnJlbnRJbmZvLmxhYmVsc1NlY3Rpb259LiR7Y3VycmVudEluZm8uaWR9YDtcclxuICB9XHJcblxyXG4gICAgdXBkYXRlRm9ybSgkZXZlbnQ6IEZvcm1Hcm91cCkge1xyXG4gICAgICB0aGlzLnJlcG9ydEZvcm0gPSAkZXZlbnQ7XHJcbiAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybSA9ICRldmVudDtcclxuXHJcbiAgICAgIHRoaXMuc2V0dXBEZXBlbmRlbnRGaWVsZFdhdGNoZXJzKCk7XHJcblxyXG4gICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgIHRoaXMucmVhZHlUb1NlYXJjaCA9IHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS52YWxpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwRGVwZW5kZW50RmllbGRXYXRjaGVycygpIHtcclxuICAgIHRoaXMuZmllbGRzXHJcbiAgICAgIC5maWx0ZXIoZmllbGQgPT4gZmllbGQubG9va3VwRmlsdGVyTGlzdCAmJiBmaWVsZC5sb29rdXBGaWx0ZXJMaXN0Lmxlbmd0aCA+IDApXHJcbiAgICAgIC5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgICBjb25zdCBkZXBlbmRlbnRGaWVsZHMgPSBmaWVsZC5sb29rdXBGaWx0ZXJMaXN0Lm1hcChmID0+IGYuZmllbGROYW1lKTtcclxuXHJcbiAgICAgICAgZGVwZW5kZW50RmllbGRzLmZvckVhY2goZGVwZW5kZW50RmllbGROYW1lID0+IHtcclxuICAgICAgICAgIGNvbnN0IGRlcGVuZGVudENvbnRyb2wgPSB0aGlzLnJlcG9ydEZvcm0uZ2V0KGRlcGVuZGVudEZpZWxkTmFtZSk7XHJcbiAgICAgICAgICBpZiAoZGVwZW5kZW50Q29udHJvbCkge1xyXG4gICAgICAgICAgICBkZXBlbmRlbnRDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHRhcmdldENvbnRyb2wgPSB0aGlzLnJlcG9ydEZvcm0uZ2V0KGZpZWxkLnByb3BlcnR5KTtcclxuICAgICAgICAgICAgICBpZiAodGFyZ2V0Q29udHJvbCkge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5zZXRWYWx1ZShbXSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBpc1ZhbGlkRm9ybSgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVhZHlUb1NlYXJjaCA7XHJcblxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gIGVtaXRVc2VyQWN0aW9uKCRldmVudDogVGFibGVQYWdlVXNlckFjdGlvbikge1xyXG4gICAgJGV2ZW50LnBhZ2VJbmZvID0gdGhpcy5wYWdlSW5mbztcclxuICAgIHRoaXMuZG9BRHJpbGxEb3duQWN0aW9uKCRldmVudCk7XHJcbiAgfVxyXG5cclxuICBlbWl0SHlwZXJMaW5rQWN0aW9uKCRldmVudDogVGFibGVQYWdlVXNlckFjdGlvbikge1xyXG4gICAgaWYgKCF0aGlzLnNob3VsZFByb2Nlc3NFdmVudEl0ZW0oJGV2ZW50Lml0ZW0pKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgaXRlbSA9ICRldmVudC5pdGVtO1xyXG4gICAgdGhpcy5wcmVwYXJlRGlhbG9nUmVwb3J0UmVxdWVzdChpdGVtKTtcclxuICAgIGNvbnN0IHJlcG9ydFJlcXVlc3QgPSB0aGlzLmJ1aWxkRGlhbG9nUmVwb3J0UmVxdWVzdCgpO1xyXG4gICAgcmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0LnBhZ2VJbmRleCA9IDBcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUmVwb3J0RGV0YWlsc0RpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgcGFnZUluZm86IHRoaXMuanVuaW9yUGFnZUluZm8sXHJcbiAgICAgICAgcmVxdWVzdDogcmVwb3J0UmVxdWVzdCxcclxuICAgICAgICBjb2x1bW5zOiB0aGlzLmp1bmlvckNvbHVtbnMsXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgfSxcclxuICAgICAgaGVpZ2h0OiAnNTB2dycsXHJcbiAgICAgIG1heFdpZHRoOiAnMTIwdncnLFxyXG4gICAgICBkaXJlY3Rpb246IHRoaXMuY3VycmVudERpcmVjdGlvbixcclxuICAgICAgZGlzYWJsZUNsb3NlOiBmYWxzZSxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlck9wZW5lZCgpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmRvSHlwZXJMaW5rQWN0aW9uKCRldmVudCkpO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJlcGFyZURpYWxvZ1JlcG9ydFJlcXVlc3QoaXRlbTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlcG9ydFJlcXVlc3QgPSBjbG9uZURlZXAodGhpcy5yZXBvcnRSZXF1ZXN0KTtcclxuICAgIHRoaXMuZGlhbG9nUmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0ID0geyBmaWx0ZXJzOiBbXSB9O1xyXG5cclxuICAgIHRoaXMuYWRkU3RhbmRhcmRGaWx0ZXJzKGl0ZW0pO1xyXG4gICAgdGhpcy5hZGRPclJlcGxhY2VGaWx0ZXIoJ2lzZWMxJywgJ2lTZWMnLCBpdGVtWydpc2VjX3ZhbHVlJ10pO1xyXG4gICAgdGhpcy5hZGRGaWx0ZXJUeXBlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFN0YW5kYXJkRmlsdGVycyhpdGVtOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0YW5kYXJkRmlsdGVycyA9IFtcclxuICAgICAgeyBrZXk6ICdwZXJpb2QnLCB2YWx1ZTogaXRlbVsncGVyaW9kJ10gfSxcclxuICAgICAgeyBrZXk6ICd5ZWFyJywgdmFsdWU6IGl0ZW1bJ3llYXInXSB9LFxyXG4gICAgICB7IGtleTogJ3NlY3RvcicsIHZhbHVlOiBpdGVtWydzZWN0b3JDb2RlJ10gfSxcclxuICAgICAgeyBrZXk6ICdkaXJlY3RvcmF0ZScsIHZhbHVlOiBpdGVtWydkaXJlY3RvcmF0ZUNvZGUnXSB9LFxyXG4gICAgICB7IGtleTogJ3N1YlRheFJhdGUnLCB2YWx1ZTogaXRlbVsndGF4X3JhdGVfY29kZSddIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIHN0YW5kYXJkRmlsdGVycy5mb3JFYWNoKCh7IGtleSwgdmFsdWUgfSkgPT5cclxuICAgICAgdGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QuZmlsdGVycy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY3JlYXRlRmlsdGVyKGtleSwga2V5LCB2YWx1ZSlcclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkRmlsdGVyVHlwZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlzVGF4ID0gdGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0LmFjdGlvbktleT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygndGF4Jyk7XHJcbiAgICBjb25zdCBmaWx0ZXJUeXBlID0gaXNUYXggPyAnVEFYJyA6ICdWQUxVRSc7XHJcblxyXG4gICAgdGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QuZmlsdGVycy5wdXNoKFxyXG4gICAgICB0aGlzLmNyZWF0ZUZpbHRlcignZmlsdGVyVHlwZScsICdmaWx0ZXJUeXBlJywgZmlsdGVyVHlwZSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkRGlhbG9nUmVwb3J0UmVxdWVzdCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFNlcnZpY2UuYnVpbGRSZXBvcnRSZXF1ZXN0KFxyXG4gICAgICB0aGlzLmp1bmlvckNvbHVtbnMsXHJcbiAgICAgIGAke3RoaXMuanVuaW9yUGFnZUluZm8ubGFiZWxzU2VjdGlvbn0uJHt0aGlzLmp1bmlvclBhZ2VJbmZvLmlkfWAsXHJcbiAgICAgIHsgLi4udGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QgfSxcclxuICAgICAgJycsXHJcbiAgICAgIHRoaXMuanVuaW9yUGFnZUluZm8sXHJcbiAgICAgICdMQU5EU0NBUEUnXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVGaWx0ZXIoa2V5OiBzdHJpbmcsIGZpZWxkTmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogRmlsdGVyIHtcclxuICAgIHJldHVybiBuZXcgRmlsdGVyKHtcclxuICAgICAga2V5LFxyXG4gICAgICBmaWVsZE5hbWUsXHJcbiAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgZmlsdGVyVHlwZTogJ0ZJTEVEX0ZJTFRFUicsXHJcbiAgICAgIG9wZXJhdG9yOiAnRVFVQUxTJyxcclxuICAgICAgdmFsdWVPYmplY3Q6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZE9yUmVwbGFjZUZpbHRlcihpZDogc3RyaW5nLCBmaWVsZE5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgZmlsdGVyID0gbmV3IEZpbHRlcih7XHJcbiAgICAgIGlkLFxyXG4gICAgICBmaWVsZE5hbWUsXHJcbiAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgZmlsdGVyVHlwZTogJ0ZJTEVEX0ZJTFRFUicsXHJcbiAgICAgIG9wZXJhdG9yOiAnRVFVQUxTJyxcclxuICAgICAgdmFsdWVPYmplY3Q6IHZhbHVlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMuZGlhbG9nUmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0LmZpbHRlcnM7XHJcbiAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gZmlsdGVycy5maW5kSW5kZXgoKGY6IEZpbHRlcikgPT4gZi5pZCA9PT0gaWQpO1xyXG5cclxuICAgIGlmIChleGlzdGluZ0luZGV4ICE9PSAtMSkge1xyXG4gICAgICBmaWx0ZXJzLnNwbGljZShleGlzdGluZ0luZGV4LCAxLCBmaWx0ZXIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZmlsdGVycy5wdXNoKGZpbHRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGVtaXRKdW5pb3JBY3Rpb24oJGV2ZW50OiBUYWJsZVBhZ2VVc2VyQWN0aW9uKSB7XHJcbiAgICBjb25zdCBqdW5pb3JBY3Rpb24gPSBKVU5JT1JfRE9XTl9BQ1RJT047XHJcbiAgICBqdW5pb3JBY3Rpb24ucGFnZUluZm8gPSB0aGlzLmRyaWxsRG93blBhZ2VJbmZvO1xyXG4gICAgdGhpcy5kb0p1bmlvckFjdGlvbigkZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgZHJpbGxEb3duKCkge1xyXG4gICAgY29uc3QgZHJpbGxkb3duYWN0aW9uID0gRFJJTExfRE9XTl9BQ1RJT047XHJcbiAgICBkcmlsbGRvd25hY3Rpb24ucGFnZUluZm8gPSB0aGlzLmRyaWxsRG93blBhZ2VJbmZvO1xyXG4gICAgdGhpcy5kb0FEcmlsbERvd25BY3Rpb24oZHJpbGxkb3duYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZG9KdW5pb3JBY3Rpb24oJGV2ZW50OiBUYWJsZVBhZ2VVc2VyQWN0aW9uKSB7XHJcbiAgICBpZiAodGhpcy5qdW5pb3JDb2x1bW5zICYmIHRoaXMuanVuaW9yUGFnZUluZm8pIHtcclxuICAgICAgaWYgKHRoaXMuZW5yaWNoSnVuaW9yUmVwb3J0UmVxdWVzdCkge1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUxldmVsID09PSAyKSB7XHJcbiAgICAgICAgICB0aGlzLmlzRWRpdGFibGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUV4cG9ydEFjdGlvbiA9IHRoaXMuanVuaW9yUGFnZUluZm8uaGlkZVJlcG9ydHNFeHRyYWN0QnV0dG9uIHx8IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5qdW5pb3JSZXBvcnRSZXF1ZXN0ID0gdGhpcy5iYWNrZW5kU2VydmljZS5idWlsZFJlcG9ydFJlcXVlc3QodGhpcy5qdW5pb3JDb2x1bW5zLFxyXG4gICAgICAgICAgICB0aGlzLmp1bmlvclBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24gKyAnLicgKyB0aGlzLmp1bmlvclBhZ2VJbmZvLmlkLFxyXG4gICAgICAgICAgICB0aGlzLnJlcG9ydFJlcXVlc3QuZmlsdGVyUmVxdWVzdCwgJycsIHRoaXMuanVuaW9yUGFnZUluZm8sICdMQU5EU0NBUEUnKTtcclxuICAgICAgICAgIHRoaXMuZW5yaWNoSnVuaW9yUmVwb3J0UmVxdWVzdCgkZXZlbnQsIHRoaXMuanVuaW9yUmVwb3J0UmVxdWVzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYWN0aXZlTGV2ZWwgPSB0aGlzLmFjdGl2ZUxldmVsICsxO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIGRvQURyaWxsRG93bkFjdGlvbigkZXZlbnQ6IFRhYmxlUGFnZVVzZXJBY3Rpb24pIHtcclxuICAgIGlmICh0aGlzLmRyaWxsRG93bkNvbHVtbnMgJiYgdGhpcy5kcmlsbERvd25QYWdlSW5mbykge1xyXG4gICAgICBpZiAodGhpcy5lbnJpY2hEcmlsbERvd25SZXBvcnRSZXF1ZXN0KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlTGV2ZWwgPT09IDEpIHtcclxuICAgICAgICAgIHRoaXMuaXNFZGl0YWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5jaGlsZFJlcG9ydFJlcXVlc3QgPSB0aGlzLmJhY2tlbmRTZXJ2aWNlLmJ1aWxkUmVwb3J0UmVxdWVzdCh0aGlzLmRyaWxsRG93bkNvbHVtbnMsXHJcbiAgICAgICAgICAgIHRoaXMuZHJpbGxEb3duUGFnZUluZm8ubGFiZWxzU2VjdGlvbiArICcuJyArIHRoaXMuZHJpbGxEb3duUGFnZUluZm8uaWQsXHJcbiAgICAgICAgICAgIHRoaXMucmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0LCAnJywgdGhpcy5kcmlsbERvd25QYWdlSW5mbywgJ0xBTkRTQ0FQRScpO1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlRXhwb3J0QWN0aW9uID0gdGhpcy5kcmlsbERvd25QYWdlSW5mby5oaWRlUmVwb3J0c0V4dHJhY3RCdXR0b24gfHwgZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmVucmljaERyaWxsRG93blJlcG9ydFJlcXVlc3QoJGV2ZW50LCB0aGlzLmNoaWxkUmVwb3J0UmVxdWVzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYWN0aXZlTGV2ZWwgPSB0aGlzLmFjdGl2ZUxldmVsICsxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkb0h5cGVyTGlua0FjdGlvbigkZXZlbnQ6IFRhYmxlUGFnZVVzZXJBY3Rpb24pIHtcclxuICAgIGlmICh0aGlzLmVucmljaEh5cGVyTGlua1JlcG9ydFJlcXVlc3QpIHtcclxuICAgICAgICAgIHRoaXMuanVuaW9yUmVwb3J0UmVxdWVzdCA9IHRoaXMuYmFja2VuZFNlcnZpY2UuYnVpbGRSZXBvcnRSZXF1ZXN0KHRoaXMuanVuaW9yQ29sdW1ucyxcclxuICAgICAgICAgICAgdGhpcy5qdW5pb3JQYWdlSW5mby5sYWJlbHNTZWN0aW9uICsgJy4nICsgdGhpcy5qdW5pb3JQYWdlSW5mby5pZCxcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsICcnLCB0aGlzLmp1bmlvclBhZ2VJbmZvLCAnTEFORFNDQVBFJyk7XHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVFeHBvcnRBY3Rpb24gPSB0aGlzLmp1bmlvclBhZ2VJbmZvLmhpZGVSZXBvcnRzRXh0cmFjdEJ1dHRvbiB8fCBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZW5yaWNoSHlwZXJMaW5rUmVwb3J0UmVxdWVzdCgkZXZlbnQsIHRoaXMuanVuaW9yUmVwb3J0UmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHRyYWN0UmVwb3J0KHJlcG9ydFR5cGU6IGFueSkge1xyXG4gICAgICBpZiAodGhpcy5hY3RpdmVMZXZlbCA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMucmVwb3J0UmVxdWVzdC5yZXBvcnRUeXBlID0gcmVwb3J0VHlwZTtcclxuICAgICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLmRvd25sb2FkUmVwb3J0KHRoaXMucmVwb3J0UmVxdWVzdCwgdGhpcy5wYWdlSW5mby5hcGlVcmkgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZUxldmVsID09PSAyKSB7XHJcbiAgICAgICAgdGhpcy5jaGlsZFJlcG9ydFJlcXVlc3QucmVwb3J0VHlwZSA9IHJlcG9ydFR5cGU7XHJcbiAgICAgICAgdGhpcy5iYWNrZW5kU2VydmljZS5kb3dubG9hZFJlcG9ydCh0aGlzLmNoaWxkUmVwb3J0UmVxdWVzdCwgdGhpcy5kcmlsbERvd25QYWdlSW5mby5hcGlVcmkgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZUxldmVsID09PSAzKSB7XHJcbiAgICAgICAgdGhpcy5qdW5pb3JSZXBvcnRSZXF1ZXN0LnJlcG9ydFR5cGUgPSByZXBvcnRUeXBlO1xyXG4gICAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UuZG93bmxvYWRSZXBvcnQodGhpcy5qdW5pb3JSZXBvcnRSZXF1ZXN0LCB0aGlzLmp1bmlvclBhZ2VJbmZvLmFwaVVyaSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIGdvVXAoKSB7XHJcbiAgICB0aGlzLmlzRWRpdGFibGUgPSB0cnVlO1xyXG4gICAgdGhpcy5hY3RpdmVMZXZlbCA9IHRoaXMuYWN0aXZlTGV2ZWwgLTE7XHJcbiAgICB0aGlzLmRvQWN0aW9uKHRoaXMueCk7XHJcbiAgICB0aGlzLnJlbG9hZERhdGEgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlTGV2ZWwgPjEpIHtcclxuICAgICAgdGhpcy5pc0VkaXRhYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRpc2FibGVFeHBvcnRBY3Rpb24gPSBmYWxzZVxyXG4gIH1cclxuXHJcbiAgZHJpbGxEb3duRW5hYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRyaWxsRG93blBhZ2VJbmZvICYmICF0aGlzLmhpZGVEcmlsbERvd25CdXR0b24gJiYgIXRoaXMuZ2V0SXNFbXB0eUxpc3QoKTtcclxuICB9XHJcblxyXG4gIGRyaWxsRG93bkxhYmVsKCkge1xyXG4gICAgcmV0dXJuIGAke3RoaXMucGFnZUluZm8ubGFiZWxzU2VjdGlvbn0uZHJpbGxEb3duTGFiZWxgIDtcclxuICB9XHJcbiAgZ2V0SXNFbXB0eUxpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kU2VydmljZS5pc0VtcHR5SXRlbXMgfHwgdGhpcy5kaXNhYmxlRXhwb3J0QWN0aW9uID09PSB0cnVlO1xyXG4gIH1cclxuICBjbGVhcigpIHtcclxuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvJywgeyBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWUgfSkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtjdXJyZW50VXJsXSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBpZiAodGhpcy5yZXBvcnRGb3JtKSB7XHJcbiAgICAvLyAgIHRoaXMucmVwb3J0Rm9ybS5yZXNldCgpO1xyXG4gICAgLy9cclxuICAgIC8vICAgdGhpcy5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAvLyAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdsb29rdXAnIHx8IGZpZWxkLnR5cGUgPT09ICdtdWx0aS1zZWxlY3QnKSB7XHJcbiAgICAvLyAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5yZXBvcnRGb3JtLmdldChmaWVsZC5wcm9wZXJ0eSk7XHJcbiAgICAvLyAgICAgICBpZiAoY29udHJvbCkge1xyXG4gICAgLy8gICAgICAgICBjb250cm9sLnNldFZhbHVlKFtdKTtcclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH0pO1xyXG4gICAgLy8gfVxyXG5cclxuICB9XHJcblxyXG5cclxuICBpc0Zvcm1FbXB0eSgpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5yZXBvcnRGb3JtIHx8ICF0aGlzLnJlcG9ydEZvcm0udmFsdWUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5yZXBvcnRGb3JtLnZhbHVlKS5ldmVyeSh2YWx1ZSA9PiB7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDA7XHJcblxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2hvdWxkUHJvY2Vzc0V2ZW50SXRlbShpdGVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGdyb3VwQnlQcm9wID0gdGhpcy5wYWdlSW5mbz8uZ3JvdXBCeVByb3BlcnR5O1xyXG4gICAgY29uc3QgZ3JvdXBCeVZhbHVlcyA9IHRoaXMucGFnZUluZm8/Lmdyb3VwQnlWYWx1ZTtcclxuXHJcbiAgICBpZiAoIWdyb3VwQnlQcm9wIHx8ICFncm91cEJ5VmFsdWVzIHx8ICFpdGVtW2dyb3VwQnlQcm9wXSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWx1ZSA9IGl0ZW1bZ3JvdXBCeVByb3BdLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgcmV0dXJuICFncm91cEJ5VmFsdWVzLnNvbWUodiA9PiB2YWx1ZS5pbmNsdWRlcyh2KSAmJiB2YWx1ZS5sZW5ndGggPj0gdi5sZW5ndGgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29sdW1uIGZ1bGwtd2lkdGhcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1zdGFydC1jZW50ZXJcIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDEwcHg7XCI+XHJcbiAgICA8YXBwLXRpdGxlLWJhciBbcGFnZVRpdGxlXT1cImdldFRpdGxlKClcIiBbbmV3QWN0aW9uXT1cImZhbHNlXCI+PC9hcHAtdGl0bGUtYmFyPlxyXG5cclxuICAgIDxtYXQtaWNvblxyXG4gICAgICAqbmdJZj1cInBhZ2VJbmZvPy5oYXNIaW50XCJcclxuICAgICAgW21hdFRvb2x0aXBdPVwicGFnZUluZm8ubGFiZWxzU2VjdGlvbiArICcuaGludCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiXHJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgIGNsYXNzPVwiaGludC1pY29uXCJcclxuICAgICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRvb2x0aXBcIj5cclxuICAgICAgaGVscF9vdXRsaW5lXHJcbiAgICA8L21hdC1pY29uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8YXBwLWJhc2UtZm9ybS1jYW52YXNcclxuICAgIFtwYWdlSW5mb109XCJwYWdlSW5mb1wiXHJcbiAgICBbZmllbGRzXT1cImZpZWxkc1wiXHJcbiAgICBbZWRpdGFibGVdPVwiaXNFZGl0YWJsZVwiXHJcbiAgICBbZXJyb3JzXT1cImVycm9yc1wiXHJcbiAgICBbaXRlbV09XCJ0aGlzLnJlcG9ydEZvcm0/LnZhbHVlIHx8IHt9XCJcclxuICAgIChmb3JtVXBkYXRlZCk9XCJ1cGRhdGVGb3JtKCRldmVudClcIlxyXG4gID48L2FwcC1iYXNlLWZvcm0tY2FudmFzPlxyXG5cclxuICA8YnI+PGJyPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGdhcC0xMCByZXNwb25zaXZlLXJvd1wiPlxyXG4gICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPT09IDFcIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImRvQWN0aW9uKHgpXCIgW2Rpc2FibGVkXT1cIiFpc1ZhbGlkRm9ybSgpXCIgaWQ9XCJyZXBvcnQtZ2VuZXJhdGUtYnRuXCI+XHJcbiAgICAgICAge3sgJ1JFUE9SVFMuZ2VuZXJhdGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFtkaXNhYmxlZF09XCJnZXRJc0VtcHR5TGlzdCgpXCIgY29sb3I9XCJwcmltYXJ5XCIgaWQ9XCJyZXBvcnQtZXh0cmFjdC10cmlnZ2VyXCI+XHJcbiAgICAgICAge3sgJ2V4dHJhY3QnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZXhwYW5kX21vcmUgYWN0aW9uQnV0dG9uX19leHBhbmRcIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImNsZWFyKClcIiBbZGlzYWJsZWRdPVwiaXNGb3JtRW1wdHkoKSB8fCBhY3RpdmVMZXZlbCA+IDFcIiBpZD1cInJlcG9ydC1jbGVhci1idG5cIj5cclxuICAgICAgICB7eyAnUkVQT1JUUy5jbGVhcicgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPT09IDEgJiYgZHJpbGxEb3duRW5hYmxlZCgpXCIgY29sb3I9XCJ3YXJuXCIgbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJkcmlsbERvd24oKVwiIGlkPVwicmVwb3J0LWRyaWxsZG93bi1idG5cIj5cclxuICAgICAgICB7eyBkcmlsbERvd25MYWJlbCgpIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZUxldmVsID4gMSAmJiBiYWNrQnV0dG9uRW5hYmxlZFwiIGNvbG9yPVwid2FyblwiIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiZ29VcCgpXCIgaWQ9XCJyZXBvcnQtdXAtYnRuXCI+XHJcbiAgICAgICAge3sgJ1JFUE9SVFMudXAnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJhY3RpdmVMZXZlbCA+PSAxXCIgY2xhc3M9XCJtYWluLWZvcm0tY2FudmFzIHJvdyBhbGlnbi1zdGFydC1zdGFydCByZXNwb25zaXZlLXRhYmxlXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAzdmg7XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGZ1bGwtd2lkdGhcIj5cclxuICAgICAgPGFwcC1iYXNlLXRhYmxlXHJcbiAgICAgICAgKm5nSWY9XCJhY3RpdmVMZXZlbCA9PT0gMVwiXHJcbiAgICAgICAgW3BhZ2VJbmZvXT1cInBhZ2VJbmZvXCJcclxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zRGVmaW5pdGlvblwiXHJcbiAgICAgICAgW2VuZm9yY2VSZWZyZXNoXT1cInJlbG9hZERhdGFcIlxyXG4gICAgICAgIGlkPVwicGFyZW50XCJcclxuICAgICAgICBbcmVwb3J0UmVxdWVzdF09XCJyZXBvcnRSZXF1ZXN0XCJcclxuICAgICAgICAodXNlckFjdGlvbik9XCJlbWl0VXNlckFjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAoaHlwZXJMaW5rQWN0aW9uKT1cImVtaXRIeXBlckxpbmtBY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICA8L2FwcC1iYXNlLXRhYmxlPlxyXG5cclxuICAgICAgPGFwcC1iYXNlLXRhYmxlXHJcbiAgICAgICAgKm5nSWY9XCJhY3RpdmVMZXZlbCA9PT0gMlwiXHJcbiAgICAgICAgW3BhZ2VJbmZvXT1cImRyaWxsRG93blBhZ2VJbmZvXCJcclxuICAgICAgICBbY29sdW1uc109XCJkcmlsbERvd25Db2x1bW5zXCJcclxuICAgICAgICBpZD1cImNoaWxkXCJcclxuICAgICAgICBbcmVwb3J0UmVxdWVzdF09XCJjaGlsZFJlcG9ydFJlcXVlc3RcIlxyXG4gICAgICAgICh1c2VyQWN0aW9uKT1cImVtaXRKdW5pb3JBY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgKGh5cGVyTGlua0FjdGlvbik9XCJlbWl0SHlwZXJMaW5rQWN0aW9uKCRldmVudClcIj5cclxuICAgICAgPC9hcHAtYmFzZS10YWJsZT5cclxuXHJcbiAgICAgIDxhcHAtYmFzZS10YWJsZVxyXG4gICAgICAgICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPT09IDNcIlxyXG4gICAgICAgIFtwYWdlSW5mb109XCJqdW5pb3JQYWdlSW5mb1wiXHJcbiAgICAgICAgW2NvbHVtbnNdPVwianVuaW9yQ29sdW1uc1wiXHJcbiAgICAgICAgaWQ9XCJqdW5pb3JcIlxyXG4gICAgICAgIFtyZXBvcnRSZXF1ZXN0XT1cImp1bmlvclJlcG9ydFJlcXVlc3RcIj5cclxuICAgICAgPC9hcHAtYmFzZS10YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcblxyXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgdHlwZSBvZiB0eXBlc1wiIChjbGljayk9XCJleHRyYWN0UmVwb3J0KHR5cGUpXCIgW2F0dHIuaWRdPVwiJ3JlcG9ydC1leHRyYWN0LWl0ZW0tJyArIHR5cGVcIj5cclxuICAgIHt7IHR5cGUgfX1cclxuICA8L2J1dHRvbj5cclxuPC9tYXQtbWVudT5cclxuIl19
498
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnQtZm9ybS9yZXBvcnQtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydC1mb3JtL3JlcG9ydC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMEIsU0FBUyxFQUFFLFlBQVksRUFBWSxLQUFLLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWhILE9BQU8sRUFBQyxlQUFlLEVBQVcsTUFBTSw0QkFBNEIsQ0FBQztBQUdyRSxPQUFPLEVBQUMsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBSXRFLE9BQU8sRUFBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVFLE9BQU8sRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFr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QkFBbUI7a0JBckIvQixTQUFTOytCQUNJLGlCQUFpQixjQUNmLElBQUksV0FDVDt3QkFDUCxpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsT0FBTzt3QkFDUCxXQUFXO3dCQUNYLE9BQU87d0JBQ1AsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixJQUFJO3dCQUNKLGFBQWE7d0JBQ2IsU0FBUzt3QkFDVCxVQUFVO3FCQUNYO3VTQU1DLFdBQVc7c0JBRFYsS0FBSztnQkFJTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUdHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFHTixVQUFVO3NCQURULE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RmllbGRJbmZvfSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9maWVsZC1pbmZvXCI7XHJcbmltcG9ydCB7RU1QVFlfUEFHRV9JTkZPLCBQYWdlSW5mb30gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWwvcGFnZS1pbmZvXCI7XHJcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsL3RhYmxlLWNvbHVtbi5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtGaWVsZE1lc3NhZ2V9IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsL2FwaS1yZXNwb25zZVwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHtCYWNrZW5kU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2JhY2tlbmQtc2VydmljZVwiO1xyXG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUdyb3VwfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtmb3JtYXREYXRlLCBOZ0Zvck9mLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TWF0TWVudSwgTWF0TWVudUl0ZW0sIE1hdE1lbnVUcmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xyXG5pbXBvcnQge01hdEJ1dHRvbiwgTWF0QnV0dG9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7QmFzZVRhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS10YWJsZS9iYXNlLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbmltcG9ydCB7RmlsdGVyUmVxdWVzdH0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWwvZmlsdGVyLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtSZXBvcnRSZXF1ZXN0fSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9yZXBvcnQtcmVxdWVzdC5tb2RlbFwiO1xyXG5pbXBvcnQge0ZpbHRlcn0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWwvZmlsdGVyLm1vZGVsXCI7XHJcbmltcG9ydCB7VGl0bGVCYXJDb21wb25lbnR9IGZyb20gXCIuLi90aXRsZS1iYXIvdGl0bGUtYmFyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0Jhc2VGb3JtQ2FudmFzQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS1mb3JtLWNhbnZhcy9iYXNlLWZvcm0tY2FudmFzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgQ2xhc3NpY0VkaXRvciBmcm9tIFwiQGNrZWRpdG9yL2NrZWRpdG9yNS1idWlsZC1jbGFzc2ljXCI7XHJcbmltcG9ydCB7RFJJTExfRE9XTl9BQ1RJT04sIEpVTklPUl9ET1dOX0FDVElPTiwgU25hY2tNZXNzYWdlLCBUYWJsZVBhZ2VVc2VyQWN0aW9ufSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbFwiO1xyXG5pbXBvcnQge30gZnJvbSBcIi4uL2F1ZGl0LWxvZy1kZXRhaWxzLWRpYWxvZy9hdWRpdC1sb2ctZGV0YWlscy1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7UmVwb3J0RGV0YWlsc0RpYWxvZ0NvbXBvbmVudH0gZnJvbSBcIi4uL3JlcG9ydC1kZXRhaWxzLWRpYWxvZy9yZXBvcnQtZGV0YWlscy1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7TWF0VG9vbHRpcH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuaW1wb3J0IHtEaXJlY3Rpb25hbGl0eX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9iaWRpXCI7XHJcblxyXG5cclxuY29uc3QgTk9OX1JFUE9SVF9DT0xVTU5TID0gWydsaXN0QWN0aW9uJywgJ2J1dHRvbicsICdjaGVja2JveCddO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1yZXBvcnQtZm9ybScsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFRpdGxlQmFyQ29tcG9uZW50LFxyXG4gICAgQmFzZUZvcm1DYW52YXNDb21wb25lbnQsXHJcbiAgICBNYXRNZW51LFxyXG4gICAgTWF0TWVudUl0ZW0sXHJcbiAgICBOZ0Zvck9mLFxyXG4gICAgTWF0TWVudVRyaWdnZXIsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBCYXNlVGFibGVDb21wb25lbnQsXHJcbiAgICBOZ0lmLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbixcclxuICAgIE1hdFRvb2x0aXBcclxuICBdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JlcG9ydC1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAnLi9yZXBvcnQtZm9ybS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcG9ydEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KClcclxuICAgIHNob3dEZXRhaWxzIDogYW55ID0gW107XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNob3dFeHRyYWN0QnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgY29sdW1uczogVGFibGVDb2x1bW48YW55PltdID1bXTtcclxuXHJcbiAgICBASW5wdXQoKSBhY3Rpb25SZXF1ZXN0Q2FsbGJhY2shOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbikgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuICAgIEBJbnB1dCgpIGVucmljaERyaWxsRG93blJlcG9ydFJlcXVlc3QhOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbiwgcmVwb3J0UmVxdWVzdDogUmVwb3J0UmVxdWVzdCkgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuICAgIEBJbnB1dCgpIGVucmljaEh5cGVyTGlua1JlcG9ydFJlcXVlc3QhOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbiwgcmVwb3J0UmVxdWVzdDogUmVwb3J0UmVxdWVzdCkgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuICAgIEBJbnB1dCgpIGVucmljaEp1bmlvclJlcG9ydFJlcXVlc3QhOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbiwgcmVwb3J0UmVxdWVzdDogUmVwb3J0UmVxdWVzdCkgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHVzZXJBY3Rpb246IEV2ZW50RW1pdHRlcjxUYWJsZVBhZ2VVc2VyQWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVQYWdlVXNlckFjdGlvbj4oKTtcclxuICAgIGFjdGl2ZUxldmVsOiBudW1iZXIgPSAxO1xyXG5cclxuICAgIHByaXZhdGUgZmlsdGVyUmVxdWVzdDogRmlsdGVyUmVxdWVzdDtcclxuICAgIHg6IGFueTtcclxuICAgIGlzRWRpdGFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgZmllbGRzOiBGaWVsZEluZm9bXSA9IFtdO1xyXG4gICAgcGFnZUluZm86IFBhZ2VJbmZvID0gRU1QVFlfUEFHRV9JTkZPO1xyXG4gICAgZHJpbGxEb3duUGFnZUluZm86IFBhZ2VJbmZvID0gRU1QVFlfUEFHRV9JTkZPO1xyXG4gICAgZHJpbGxEb3duQ29sdW1uczogVGFibGVDb2x1bW48YW55PltdID0gW107XHJcbiAgICBoaWRlRHJpbGxEb3duQnV0dG9uOiBmYWxzZTtcclxuXHJcbiAgICBqdW5pb3JQYWdlSW5mbzogUGFnZUluZm8gPSBFTVBUWV9QQUdFX0lORk87XHJcbiAgICBqdW5pb3JDb2x1bW5zOiBUYWJsZUNvbHVtbjxhbnk+W10gPSBbXTtcclxuXHJcbiAgICBjb2x1bW5zRGVmaW5pdGlvbjogVGFibGVDb2x1bW48YW55PltdID0gW107XHJcbiAgICB0eXBlczogc3RyaW5nW10gPSBbXCJwZGZcIiwgXCJjc3ZcIiwgXCJ4bHN4XCJdXHJcbiAgICBzZWFyY2hTdHI6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIGVycm9yczogRmllbGRNZXNzYWdlW10gPSBbXTtcclxuXHJcbiAgICByZWxvYWREYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBiYWNrQnV0dG9uRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cclxuICAgIHJlcG9ydFJlcXVlc3Q6IFJlcG9ydFJlcXVlc3QgPSBuZXcgUmVwb3J0UmVxdWVzdCh7fSk7XHJcbiAgICBjaGlsZFJlcG9ydFJlcXVlc3Q6IFJlcG9ydFJlcXVlc3QgPSBuZXcgUmVwb3J0UmVxdWVzdCh7fSk7XHJcbiAgICBqdW5pb3JSZXBvcnRSZXF1ZXN0OiBSZXBvcnRSZXF1ZXN0ID0gbmV3IFJlcG9ydFJlcXVlc3Qoe30pO1xyXG4gICAgcHVibGljIHJlcG9ydEZvcm06IEZvcm1Hcm91cDtcclxuICAgIHJlYWR5VG9TZWFyY2ggPSBmYWxzZTtcclxuICAgIHByaXZhdGUgcGFnZVNpemU6IGFueTtcclxuICAgIHByaXZhdGUgZGlhbG9nUmVwb3J0UmVxdWVzdDogYW55O1xyXG4gICAgY3VycmVudERpcmVjdGlvbjogJ2x0cicgfCAncnRsJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHVibGljIGJhY2tlbmRTZXJ2aWNlOiBCYWNrZW5kU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIGRpcmVjdGlvbmFsaXR5OiBEaXJlY3Rpb25hbGl0eSxcclxuICAgICAgICAgICAgICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICAgICBDbGFzc2ljRWRpdG9yLmRlZmF1bHRDb25maWcgPSB7XHJcbiAgICAgICAgICAgIHRvb2xiYXI6IHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbJ2hlYWRpbmcnLCAnfCcsICdib2xkJywgJ2l0YWxpYycsICd8JywgJ2J1bGxldGVkTGlzdCcsICdudW1iZXJlZExpc3QnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWFnZToge1xyXG4gICAgICAgICAgICAgICAgdG9vbGJhcjogWydpbWFnZVN0eWxlOnNpZGUnLCAnfCcsICdpbWFnZVRleHRBbHRlcm5hdGl2ZSddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRhYmxlOiB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50VG9vbGJhcjogWyAndGFibGVDb2x1bW4nLCAndGFibGVSb3cnLCAnbWVyZ2VUYWJsZUNlbGxzJyBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGxhbmd1YWdlOiAnZW4nXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlRXhwb3J0QWN0aW9uIDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmN1cnJlbnREaXJlY3Rpb24gPSB0aGlzLmRpcmVjdGlvbmFsaXR5LnZhbHVlO1xyXG4gICAgICB0aGlzLmRpcmVjdGlvbmFsaXR5LmNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uID0gdmFsdWU7XHJcbiAgICAgIH0pXHJcblxyXG4gICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgIHRoaXMucGFnZUluZm8gPSBkYXRhWydwYWdlSW5mbyddO1xyXG4gICAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLnBhZ2VJbmZvLnBhZ2VTaXplID8/IDEwO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyUmVxdWVzdCA9IG5ldyBGaWx0ZXJSZXF1ZXN0KHRoaXMucGFnZVNpemUpO1xyXG4gICAgICAgIGRhdGFbJ3BhZ2VJbmZvJ10ubGF6eUxvYWREYXRhID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmRyaWxsRG93blBhZ2VJbmZvID0gZGF0YVsnZHJpbGxEb3duUGFnZUluZm8nXTtcclxuICAgICAgICB0aGlzLmRyaWxsRG93bkNvbHVtbnMgPSBkYXRhWydkcmlsbERvd25Db2x1bW5zJ10/LmZpbHRlcihjID0+IGMucHJvcGVydHkgIT09ICdzZWxlY3RJdGVtJyk7XHJcbiAgICAgICAgdGhpcy5oaWRlRHJpbGxEb3duQnV0dG9uID0gZGF0YVsnaGlkZURyaWxsRG93bkJ1dHRvbiddID8/IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuanVuaW9yUGFnZUluZm8gPSBkYXRhWydqdW5pb3JQYWdlSW5mbyddO1xyXG4gICAgICAgIHRoaXMuanVuaW9yQ29sdW1ucyA9IGRhdGFbJ2p1bmlvckNvbHVtbnMnXTtcclxuICAgICAgICB0aGlzLmNvbHVtbnNEZWZpbml0aW9uID0gZGF0YVsnY29sdW1uc0RlZmluaXRpb24nXS5maWx0ZXIoYyA9PiAodGhpcy5kcmlsbERvd25QYWdlSW5mbyAmJiB0aGlzLmRyaWxsRG93bkNvbHVtbnMgfHwgKCFOT05fUkVQT1JUX0NPTFVNTlMuaW5jbHVkZXMoYy50eXBlKSkpKTtcclxuICAgICAgICB0aGlzLmZpZWxkcyA9IGRhdGFbJ2ZpZWxkcyddO1xyXG4gICAgICAgIGlmIChkYXRhWydlbnJpY2hEcmlsbERvd25SZXBvcnRSZXF1ZXN0J10pIHtcclxuICAgICAgICAgIHRoaXMuZW5yaWNoRHJpbGxEb3duUmVwb3J0UmVxdWVzdCA9IGRhdGFbJ2VucmljaERyaWxsRG93blJlcG9ydFJlcXVlc3QnXSh0aGlzLmluamVjdG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRhdGFbJ2VucmljaEp1bmlvclJlcG9ydFJlcXVlc3QnXSkge1xyXG4gICAgICAgICAgdGhpcy5lbnJpY2hKdW5pb3JSZXBvcnRSZXF1ZXN0ID0gZGF0YVsnZW5yaWNoSnVuaW9yUmVwb3J0UmVxdWVzdCddKHRoaXMuaW5qZWN0b3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGRhdGFbJ2VucmljaEh5cGVyTGlua1JlcG9ydFJlcXVlc3QnXSkge1xyXG4gICAgICAgICAgdGhpcy5lbnJpY2hIeXBlckxpbmtSZXBvcnRSZXF1ZXN0ID0gZGF0YVsnZW5yaWNoSHlwZXJMaW5rUmVwb3J0UmVxdWVzdCddKHRoaXMuaW5qZWN0b3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbU1hcC5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgICBjb25zdCBpc0NvbXBhcmlzb25SZXBvcnQgPSBwYXJhbXMuZ2V0KCdjb21wYXJpc29uUmVwb3J0JykgPT09ICd0cnVlJztcclxuXHJcbiAgICAgICAgaWYgKGlzQ29tcGFyaXNvblJlcG9ydCkge1xyXG4gICAgICAgICAgY29uc3QgY29tcGFyaXNvblN0ciA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2NvbXBhcmlzb25SZXBvcnRQYWdlSW5mbycpO1xyXG5cclxuICAgICAgICAgIGlmIChjb21wYXJpc29uU3RyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhcmlzb25EYXRhID0gSlNPTi5wYXJzZShjb21wYXJpc29uU3RyKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucGFnZUluZm8ubGF6eUxvYWREYXRhID0gY29tcGFyaXNvbkRhdGEubGF6eUxvYWREYXRhID8/IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUxldmVsID0gY29tcGFyaXNvbkRhdGEuYWN0aXZlTGV2ZWwgPz8gMjtcclxuICAgICAgICAgICAgdGhpcy5pc0VkaXRhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuYmFja0J1dHRvbkVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5kcmlsbERvd25QYWdlSW5mbyA9IGNvbXBhcmlzb25EYXRhLmRyaWxsRG93blBhZ2VJbmZvO1xyXG4gICAgICAgICAgICB0aGlzLmRyaWxsRG93bkNvbHVtbnMgPSBjb21wYXJpc29uRGF0YS5kcmlsbERvd25Db2x1bW5zO1xyXG4gICAgICAgICAgICB0aGlzLnJlcG9ydEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgICBkaXJlY3RvcmF0ZTogW1tdXSxcclxuICAgICAgICAgICAgICBmcm9tRGF0ZTogWycnXSxcclxuICAgICAgICAgICAgICB0b0RhdGU6IFsnJ10sXHJcbiAgICAgICAgICAgICAgc2VjdG9yOiBbJyddLFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucmVwb3J0Rm9ybS5wYXRjaFZhbHVlKGNvbXBhcmlzb25EYXRhLmZvcm0pXHJcbiAgICAgICAgICAgIHRoaXMuZmllbGRzID0gdGhpcy5maWVsZHMuZmlsdGVyKGMgPT4gYy50eXBlICE9PSAnY2hlY2tib3gnKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHJlcG9ydFJlcXVlc3QgPSBjb21wYXJpc29uRGF0YS5yZXBvcnRSZXF1ZXN0O1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jaGlsZFJlcG9ydFJlcXVlc3QgPSB0aGlzLmJhY2tlbmRTZXJ2aWNlLmJ1aWxkUmVwb3J0UmVxdWVzdChcclxuICAgICAgICAgICAgICB0aGlzLmRyaWxsRG93bkNvbHVtbnMsXHJcbiAgICAgICAgICAgICAgYCR7dGhpcy5kcmlsbERvd25QYWdlSW5mby5sYWJlbHNTZWN0aW9ufS4ke3RoaXMuZHJpbGxEb3duUGFnZUluZm8uaWR9YCxcclxuICAgICAgICAgICAgICByZXBvcnRSZXF1ZXN0LFxyXG4gICAgICAgICAgICAgICcnLFxyXG4gICAgICAgICAgICAgIHRoaXMuZHJpbGxEb3duUGFnZUluZm8sXHJcbiAgICAgICAgICAgICAgJ0xBTkRTQ0FQRSdcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgIC8vIG5nT25DaGFuZ2VzKHtpdGVtLCBlcnJvcnMsIGZpZWxkc306IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIC8vICAgICAvLyBlcnJvcnM/LmN1cnJlbnRWYWx1ZT8uZm9yRWFjaCgobXNnOiBGaWVsZE1lc3NhZ2UpID0+IHtcclxuICAgIC8vICAgICAvLyAgICAgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChtc2cuZmllbGROYW1lKT8uc2V0RXJyb3JzKHtzZXJ2ZXJFcnJvcjogbXNnLm1lc3NhZ2V9KTtcclxuICAgIC8vICAgICAvLyB9KTtcclxuICAgIC8vICAgICAvLyBpZiAoZmllbGRzPy5jdXJyZW50VmFsdWUgJiYgIWZpZWxkcy5pc0ZpcnN0Q2hhbmdlKCkpe1xyXG4gICAgLy8gICAgIC8vICAgICB0aGlzLmJ1aWxkRm9ybSgpO1xyXG4gICAgLy8gICAgIC8vIH1cclxuICAgIC8vICAgICAvLyB0aGlzLmJ1aWxkRm9ybSgpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGlzTWF0Y2hIZWlnaHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnZUluZm8ucGFnZUhlaWdodCA9PT0gJ21hdGNoJztcclxuICAgIH1cclxuXHJcblxyXG4gICAgZG9BY3Rpb24odHlwZTogc3RyaW5nKSB7XHJcbiAgICAgIGlmICh0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0udmFsaWQpIHtcclxuICAgICAgICB0aGlzLnJlbG9hZERhdGEgPSAhdGhpcy5yZWxvYWREYXRhO1xyXG4gICAgICAgIGNvbnN0IGZpbHRlclJlcXVlc3Q6IEZpbHRlclJlcXVlc3QgPSBuZXcgRmlsdGVyUmVxdWVzdCh0aGlzLnBhZ2VTaXplKTtcclxuICAgICAgICBmaWx0ZXJSZXF1ZXN0LmZpbHRlcnMgPSBbXTtcclxuICAgICAgICBsZXQgcGFyYW1zU3RyaW5nOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIHRoaXMuZmllbGRzLmZpbHRlcih4ID0+IHgudHlwZSAhPT0gJ3NwYWNlcicpLmZvckVhY2goZiA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5nZXRQYXJhbVZhbHVlKGYpICE9IG51bGwgJiYgdGhpcy5nZXRQYXJhbVZhbHVlKGYpLnRvU3RyaW5nKCkudHJpbSgpICE9PSAnJylcclxuICAgICAgICAgIHtcclxuICAgICAgICAgIGlmIChmLnR5cGUgPT09ICdtdWx0aS1zZWxlY3QnIHx8IGYudHlwZSA9PT0gJ2xvb2t1cCcpIHtcclxuICAgICAgICAgICAgLy8gZG8gbm90IGZpbHRlciBpZiB0aGlzIGZpZWxkIGFzIGNhc2NhZGluZyBmb3IgYW5vdGhlciBvbmUgYW5kIHRoZSBvdGhlciBvbmUgZ290IHNlbGVjdGVkIHZhbHVlc1xyXG4gICAgICAgICAgICBjb25zdCBjaGlsZEZpZWxkSWR4ID0gdGhpcy5maWVsZHMuZmluZEluZGV4KGZpZWxkID0+IGZpZWxkLmNhc2NhZGVkQnkgPT09IGYucHJvcGVydHkpO1xyXG4gICAgICAgICAgICBpZiAoY2hpbGRGaWVsZElkeCA+IC0xICYmIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQodGhpcy5maWVsZHNbY2hpbGRGaWVsZElkeF0ucHJvcGVydHkpPy52YWx1ZT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBpZHo6IG51bWJlcltdID0gW107XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUgJiYgQXJyYXkuaXNBcnJheSh0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZSlcclxuICAgICAgICAgICAgICAmJiB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUuZm9yRWFjaCgoYToge1xyXG4gICAgICAgICAgICAgICAgY2hhbm5lbElkOiBudW1iZXI7XHJcbiAgICAgICAgICAgICAgICBlbmdsaXNoTmFtZTogc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgaWQ6IG51bWJlcjtcclxuICAgICAgICAgICAgICB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZi5mbGF0dGVuQnlTdWJBdHRyaWJ1dGUpIHtcclxuICAgICAgICAgICAgICAgICAgaWR6LnB1c2goYVtmLmZsYXR0ZW5CeVN1YkF0dHJpYnV0ZV0pO1xyXG4gICAgICAgICAgICAgICAgICBwYXJhbS5wdXNoKGFbZi5mbGF0dGVuQnlTdWJBdHRyaWJ1dGVdKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZHMuZmluZChzID0+IHMucHJvcGVydHkgPT09ICd0ZXJtaW5hbElkJykpIHtcclxuICAgICAgICAgICAgICAgICAgaWR6LnB1c2goYS5jaGFubmVsSWQpO1xyXG4gICAgICAgICAgICAgICAgICBwYXJhbS5wdXNoKGEuZW5nbGlzaE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgaWR6LnB1c2goYS5pZCk7XHJcbiAgICAgICAgICAgICAgICAgIHBhcmFtLnB1c2goYS5lbmdsaXNoTmFtZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICBmaWx0ZXJSZXF1ZXN0LmZpbHRlcnM/LnB1c2gobmV3IEZpbHRlcih7XHJcbiAgICAgICAgICAgICAgICBpZDogZi5wcm9wZXJ0eSwgZmllbGROYW1lOiBmLnByb3BlcnR5LCBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZi5sYWJlbCksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlOiAnRklMRURfRklMVEVSJywgb3BlcmF0b3I6IGYuZmlsdGVyT3BlcmF0b3IsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZU9iamVjdDogaWR6XHJcbiAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgIHBhcmFtc1N0cmluZy5wdXNoKHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGYubGFiZWwpICsgJyA6ICcgKyBwYXJhbS5qb2luKCcsJykpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlICYmIGYuZmxhdHRlbkJ5U3ViQXR0cmlidXRlKSB7XHJcbiAgICAgICAgICAgICAgZmlsdGVyUmVxdWVzdC5maWx0ZXJzPy5wdXNoKG5ldyBGaWx0ZXIoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IGYucHJvcGVydHksIGZpZWxkTmFtZTogZi5wcm9wZXJ0eSwgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGYubGFiZWwpLFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0ZJTEVEX0ZJTFRFUicsIG9wZXJhdG9yOiBmLmZpbHRlck9wZXJhdG9yLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVPYmplY3Q6IHRoaXMuZ2V0UGFyYW1WYWx1ZShmKVtmLmZsYXR0ZW5CeVN1YkF0dHJpYnV0ZV1cclxuICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZSAhPT0gbnVsbCAmJlxyXG4gICAgICAgICAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZSAhPT0gXCJcIikge1xyXG4gICAgICAgICAgICAgIGZpbHRlclJlcXVlc3QuZmlsdGVycz8ucHVzaChuZXcgRmlsdGVyKHtcclxuICAgICAgICAgICAgICAgIGlkOiBmLnByb3BlcnR5LCBmaWVsZE5hbWU6IGYucHJvcGVydHksIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChmLmxhYmVsKSxcclxuICAgICAgICAgICAgICAgIGZpbHRlclR5cGU6ICdGSUxFRF9GSUxURVInLCBvcGVyYXRvcjogZi5maWx0ZXJPcGVyYXRvcixcclxuICAgICAgICAgICAgICAgIHZhbHVlT2JqZWN0OiB0aGlzLmdldFBhcmFtVmFsdWUoZilcclxuICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcGFyYW1zU3RyaW5nLnB1c2godGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZi5sYWJlbCkgKyAnIDogJyArIHRoaXMuZ2V0UGFyYW1WYWx1ZUxhYmVsKGYpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9fSlcclxuICAgICAgICBjb25zdCByZXBvcnRSZXF1ZXN0ID0gdGhpcy5iYWNrZW5kU2VydmljZS5idWlsZFJlcG9ydFJlcXVlc3QodGhpcy5jb2x1bW5zRGVmaW5pdGlvbiwgdGhpcy5wYWdlSW5mby5sYWJlbHNTZWN0aW9uICsgJy4nICsgdGhpcy5wYWdlSW5mby5pZCxcclxuICAgICAgICAgIGZpbHRlclJlcXVlc3QsIHR5cGUsIHRoaXMucGFnZUluZm8sICdMQU5EU0NBUEUnKTtcclxuICAgICAgICByZXBvcnRSZXF1ZXN0LnNlYXJjaFN0ciA9IHBhcmFtc1N0cmluZy5qb2luKCcgLCAnKTtcclxuICAgICAgICB0aGlzLnJlcG9ydFJlcXVlc3QgPSByZXBvcnRSZXF1ZXN0O1xyXG4gICAgICAgIC8vIHRoaXMuYWN0aXZlTGV2ZWwgPSAxO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UudG9wUGFuZWxNZXNzYWdlJC5uZXh0KG5ldyBTbmFja01lc3NhZ2UoJ0lOVkFMSURfUkVQT1JUX0ZPUk0nLCB0cnVlLCAnZXJyb3InKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFBhcmFtVmFsdWUoZjogRmllbGRJbmZvKSB7XHJcbiAgICAgICAgaWYgKGYudHlwZSA9PT0gJ2RhdGUnICYmIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXREYXRlKHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlLCAneXl5eS1NTS1kZCcsICdlbl9VUycpXHJcbiAgICAgICAgfWVsc2UgaWYgKGYudHlwZSA9PT0gJ2NoZWNrYm94Jykge1xyXG4gICAgICAgICAgICByZXR1cm4gISF0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZTtcclxuICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQYXJhbVZhbHVlTGFiZWwoZjogRmllbGRJbmZvKSB7XHJcbiAgICAgICAgaWYgKGYudHlwZSA9PT0gJ2NoZWNrYm94Jykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgneWVzJykgOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnbm8nKTtcclxuICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gIGdldFRpdGxlKCkge1xyXG4gICAgY29uc3QgcGFnZUluZm9NYXAgPSB7XHJcbiAgICAgIDE6IHRoaXMucGFnZUluZm8sXHJcbiAgICAgIDI6IHRoaXMuZHJpbGxEb3duUGFnZUluZm8sXHJcbiAgICAgIDM6IHRoaXMuanVuaW9yUGFnZUluZm9cclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgY3VycmVudEluZm8gPSBwYWdlSW5mb01hcFt0aGlzLmFjdGl2ZUxldmVsXSB8fCB0aGlzLnBhZ2VJbmZvO1xyXG4gICAgcmV0dXJuIGAke2N1cnJlbnRJbmZvLmxhYmVsc1NlY3Rpb259LiR7Y3VycmVudEluZm8uaWR9YDtcclxuICB9XHJcblxyXG4gICAgdXBkYXRlRm9ybSgkZXZlbnQ6IEZvcm1Hcm91cCkge1xyXG4gICAgICB0aGlzLnJlcG9ydEZvcm0gPSAkZXZlbnQ7XHJcbiAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybSA9ICRldmVudDtcclxuXHJcbiAgICAgIHRoaXMuc2V0dXBEZXBlbmRlbnRGaWVsZFdhdGNoZXJzKCk7XHJcblxyXG4gICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgIHRoaXMucmVhZHlUb1NlYXJjaCA9IHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS52YWxpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwRGVwZW5kZW50RmllbGRXYXRjaGVycygpIHtcclxuICAgIHRoaXMuZmllbGRzXHJcbiAgICAgIC5maWx0ZXIoZmllbGQgPT4gZmllbGQubG9va3VwRmlsdGVyTGlzdCAmJiBmaWVsZC5sb29rdXBGaWx0ZXJMaXN0Lmxlbmd0aCA+IDApXHJcbiAgICAgIC5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgICBjb25zdCBkZXBlbmRlbnRGaWVsZHMgPSBmaWVsZC5sb29rdXBGaWx0ZXJMaXN0Lm1hcChmID0+IGYuZmllbGROYW1lKTtcclxuXHJcbiAgICAgICAgZGVwZW5kZW50RmllbGRzLmZvckVhY2goZGVwZW5kZW50RmllbGROYW1lID0+IHtcclxuICAgICAgICAgIGNvbnN0IGRlcGVuZGVudENvbnRyb2wgPSB0aGlzLnJlcG9ydEZvcm0uZ2V0KGRlcGVuZGVudEZpZWxkTmFtZSk7XHJcbiAgICAgICAgICBpZiAoZGVwZW5kZW50Q29udHJvbCkge1xyXG4gICAgICAgICAgICBkZXBlbmRlbnRDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHRhcmdldENvbnRyb2wgPSB0aGlzLnJlcG9ydEZvcm0uZ2V0KGZpZWxkLnByb3BlcnR5KTtcclxuICAgICAgICAgICAgICBpZiAodGFyZ2V0Q29udHJvbCkge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5zZXRWYWx1ZShbXSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBpc1ZhbGlkRm9ybSgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVhZHlUb1NlYXJjaCA7XHJcblxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gIGVtaXRVc2VyQWN0aW9uKCRldmVudDogVGFibGVQYWdlVXNlckFjdGlvbikge1xyXG4gICAgJGV2ZW50LnBhZ2VJbmZvID0gdGhpcy5wYWdlSW5mbztcclxuICAgIHRoaXMuZG9BRHJpbGxEb3duQWN0aW9uKCRldmVudCk7XHJcbiAgfVxyXG5cclxuICBlbWl0SHlwZXJMaW5rQWN0aW9uKCRldmVudDogVGFibGVQYWdlVXNlckFjdGlvbikge1xyXG4gICAgaWYgKCF0aGlzLnNob3VsZFByb2Nlc3NFdmVudEl0ZW0oJGV2ZW50Lml0ZW0pKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgaXRlbSA9ICRldmVudC5pdGVtO1xyXG4gICAgdGhpcy5wcmVwYXJlRGlhbG9nUmVwb3J0UmVxdWVzdChpdGVtKTtcclxuICAgIGNvbnN0IHJlcG9ydFJlcXVlc3QgPSB0aGlzLmJ1aWxkRGlhbG9nUmVwb3J0UmVxdWVzdCgpO1xyXG4gICAgcmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0LnBhZ2VJbmRleCA9IDBcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUmVwb3J0RGV0YWlsc0RpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgcGFnZUluZm86IHRoaXMuanVuaW9yUGFnZUluZm8sXHJcbiAgICAgICAgcmVxdWVzdDogcmVwb3J0UmVxdWVzdCxcclxuICAgICAgICBjb2x1bW5zOiB0aGlzLmp1bmlvckNvbHVtbnMsXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgfSxcclxuICAgICAgaGVpZ2h0OiAnNTB2dycsXHJcbiAgICAgIG1heFdpZHRoOiAnMTIwdncnLFxyXG4gICAgICBkaXJlY3Rpb246IHRoaXMuY3VycmVudERpcmVjdGlvbixcclxuICAgICAgZGlzYWJsZUNsb3NlOiBmYWxzZSxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlck9wZW5lZCgpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmRvSHlwZXJMaW5rQWN0aW9uKCRldmVudCkpO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJlcGFyZURpYWxvZ1JlcG9ydFJlcXVlc3QoaXRlbTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlcG9ydFJlcXVlc3QgPSBjbG9uZURlZXAodGhpcy5yZXBvcnRSZXF1ZXN0KTtcclxuICAgIHRoaXMuZGlhbG9nUmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0ID0geyBmaWx0ZXJzOiBbXSB9O1xyXG5cclxuICAgIHRoaXMuYWRkU3RhbmRhcmRGaWx0ZXJzKGl0ZW0pO1xyXG4gICAgdGhpcy5hZGRPclJlcGxhY2VGaWx0ZXIoJ2lzZWMxJywgJ2lTZWMnLCBpdGVtWydpc2VjX3ZhbHVlJ10pO1xyXG4gICAgdGhpcy5hZGRGaWx0ZXJUeXBlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFN0YW5kYXJkRmlsdGVycyhpdGVtOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0YW5kYXJkRmlsdGVycyA9IFtcclxuICAgICAgeyBrZXk6ICdwZXJpb2QnLCB2YWx1ZTogaXRlbVsncGVyaW9kJ10gfSxcclxuICAgICAgeyBrZXk6ICd5ZWFyJywgdmFsdWU6IGl0ZW1bJ3llYXInXSB9LFxyXG4gICAgICB7IGtleTogJ3NlY3RvcicsIHZhbHVlOiBpdGVtWydzZWN0b3JDb2RlJ10gfSxcclxuICAgICAgeyBrZXk6ICdkaXJlY3RvcmF0ZScsIHZhbHVlOiBpdGVtWydkaXJlY3RvcmF0ZUNvZGUnXSB9LFxyXG4gICAgICB7IGtleTogJ3N1YlRheFJhdGUnLCB2YWx1ZTogaXRlbVsndGF4X3JhdGVfY29kZSddIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIHN0YW5kYXJkRmlsdGVycy5mb3JFYWNoKCh7IGtleSwgdmFsdWUgfSkgPT5cclxuICAgICAgdGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QuZmlsdGVycy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY3JlYXRlRmlsdGVyKGtleSwga2V5LCB2YWx1ZSlcclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkRmlsdGVyVHlwZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlzVGF4ID0gdGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0LmFjdGlvbktleT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygndGF4Jyk7XHJcbiAgICBjb25zdCBmaWx0ZXJUeXBlID0gaXNUYXggPyAnVEFYJyA6ICdWQUxVRSc7XHJcblxyXG4gICAgdGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QuZmlsdGVycy5wdXNoKFxyXG4gICAgICB0aGlzLmNyZWF0ZUZpbHRlcignZmlsdGVyVHlwZScsICdmaWx0ZXJUeXBlJywgZmlsdGVyVHlwZSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkRGlhbG9nUmVwb3J0UmVxdWVzdCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFNlcnZpY2UuYnVpbGRSZXBvcnRSZXF1ZXN0KFxyXG4gICAgICB0aGlzLmp1bmlvckNvbHVtbnMsXHJcbiAgICAgIGAke3RoaXMuanVuaW9yUGFnZUluZm8ubGFiZWxzU2VjdGlvbn0uJHt0aGlzLmp1bmlvclBhZ2VJbmZvLmlkfWAsXHJcbiAgICAgIHsgLi4udGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QgfSxcclxuICAgICAgJycsXHJcbiAgICAgIHRoaXMuanVuaW9yUGFnZUluZm8sXHJcbiAgICAgICdMQU5EU0NBUEUnXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVGaWx0ZXIoa2V5OiBzdHJpbmcsIGZpZWxkTmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogRmlsdGVyIHtcclxuICAgIHJldHVybiBuZXcgRmlsdGVyKHtcclxuICAgICAga2V5LFxyXG4gICAgICBmaWVsZE5hbWUsXHJcbiAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgZmlsdGVyVHlwZTogJ0ZJTEVEX0ZJTFRFUicsXHJcbiAgICAgIG9wZXJhdG9yOiAnRVFVQUxTJyxcclxuICAgICAgdmFsdWVPYmplY3Q6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZE9yUmVwbGFjZUZpbHRlcihpZDogc3RyaW5nLCBmaWVsZE5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgZmlsdGVyID0gbmV3IEZpbHRlcih7XHJcbiAgICAgIGlkLFxyXG4gICAgICBmaWVsZE5hbWUsXHJcbiAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgZmlsdGVyVHlwZTogJ0ZJTEVEX0ZJTFRFUicsXHJcbiAgICAgIG9wZXJhdG9yOiAnRVFVQUxTJyxcclxuICAgICAgdmFsdWVPYmplY3Q6IHZhbHVlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMuZGlhbG9nUmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0LmZpbHRlcnM7XHJcbiAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gZmlsdGVycy5maW5kSW5kZXgoKGY6IEZpbHRlcikgPT4gZi5pZCA9PT0gaWQpO1xyXG5cclxuICAgIGlmIChleGlzdGluZ0luZGV4ICE9PSAtMSkge1xyXG4gICAgICBmaWx0ZXJzLnNwbGljZShleGlzdGluZ0luZGV4LCAxLCBmaWx0ZXIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZmlsdGVycy5wdXNoKGZpbHRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGVtaXRKdW5pb3JBY3Rpb24oJGV2ZW50OiBUYWJsZVBhZ2VVc2VyQWN0aW9uKSB7XHJcbiAgICBjb25zdCBqdW5pb3JBY3Rpb24gPSBKVU5JT1JfRE9XTl9BQ1RJT047XHJcbiAgICBqdW5pb3JBY3Rpb24ucGFnZUluZm8gPSB0aGlzLmRyaWxsRG93blBhZ2VJbmZvO1xyXG4gICAgdGhpcy5kb0p1bmlvckFjdGlvbigkZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgZHJpbGxEb3duKCkge1xyXG4gICAgY29uc3QgZHJpbGxkb3duYWN0aW9uID0gRFJJTExfRE9XTl9BQ1RJT047XHJcbiAgICBkcmlsbGRvd25hY3Rpb24ucGFnZUluZm8gPSB0aGlzLmRyaWxsRG93blBhZ2VJbmZvO1xyXG4gICAgdGhpcy5kb0FEcmlsbERvd25BY3Rpb24oZHJpbGxkb3duYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZG9KdW5pb3JBY3Rpb24oJGV2ZW50OiBUYWJsZVBhZ2VVc2VyQWN0aW9uKSB7XHJcbiAgICBpZiAodGhpcy5qdW5pb3JDb2x1bW5zICYmIHRoaXMuanVuaW9yUGFnZUluZm8pIHtcclxuICAgICAgaWYgKHRoaXMuZW5yaWNoSnVuaW9yUmVwb3J0UmVxdWVzdCkge1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUxldmVsID09PSAyKSB7XHJcbiAgICAgICAgICB0aGlzLmlzRWRpdGFibGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUV4cG9ydEFjdGlvbiA9IHRoaXMuanVuaW9yUGFnZUluZm8uaGlkZVJlcG9ydHNFeHRyYWN0QnV0dG9uIHx8IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5qdW5pb3JSZXBvcnRSZXF1ZXN0ID0gdGhpcy5iYWNrZW5kU2VydmljZS5idWlsZFJlcG9ydFJlcXVlc3QodGhpcy5qdW5pb3JDb2x1bW5zLFxyXG4gICAgICAgICAgICB0aGlzLmp1bmlvclBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24gKyAnLicgKyB0aGlzLmp1bmlvclBhZ2VJbmZvLmlkLFxyXG4gICAgICAgICAgICB0aGlzLnJlcG9ydFJlcXVlc3QuZmlsdGVyUmVxdWVzdCwgJycsIHRoaXMuanVuaW9yUGFnZUluZm8sICdMQU5EU0NBUEUnKTtcclxuICAgICAgICAgIHRoaXMuZW5yaWNoSnVuaW9yUmVwb3J0UmVxdWVzdCgkZXZlbnQsIHRoaXMuanVuaW9yUmVwb3J0UmVxdWVzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYWN0aXZlTGV2ZWwgPSB0aGlzLmFjdGl2ZUxldmVsICsxO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIGRvQURyaWxsRG93bkFjdGlvbigkZXZlbnQ6IFRhYmxlUGFnZVVzZXJBY3Rpb24pIHtcclxuICAgIGlmICh0aGlzLmRyaWxsRG93bkNvbHVtbnMgJiYgdGhpcy5kcmlsbERvd25QYWdlSW5mbykge1xyXG4gICAgICBpZiAodGhpcy5lbnJpY2hEcmlsbERvd25SZXBvcnRSZXF1ZXN0KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlTGV2ZWwgPT09IDEpIHtcclxuICAgICAgICAgIHRoaXMuaXNFZGl0YWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5jaGlsZFJlcG9ydFJlcXVlc3QgPSB0aGlzLmJhY2tlbmRTZXJ2aWNlLmJ1aWxkUmVwb3J0UmVxdWVzdCh0aGlzLmRyaWxsRG93bkNvbHVtbnMsXHJcbiAgICAgICAgICAgIHRoaXMuZHJpbGxEb3duUGFnZUluZm8ubGFiZWxzU2VjdGlvbiArICcuJyArIHRoaXMuZHJpbGxEb3duUGFnZUluZm8uaWQsXHJcbiAgICAgICAgICAgIHRoaXMucmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0LCAnJywgdGhpcy5kcmlsbERvd25QYWdlSW5mbywgJ0xBTkRTQ0FQRScpO1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlRXhwb3J0QWN0aW9uID0gdGhpcy5kcmlsbERvd25QYWdlSW5mby5oaWRlUmVwb3J0c0V4dHJhY3RCdXR0b24gfHwgZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmVucmljaERyaWxsRG93blJlcG9ydFJlcXVlc3QoJGV2ZW50LCB0aGlzLmNoaWxkUmVwb3J0UmVxdWVzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYWN0aXZlTGV2ZWwgPSB0aGlzLmFjdGl2ZUxldmVsICsxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkb0h5cGVyTGlua0FjdGlvbigkZXZlbnQ6IFRhYmxlUGFnZVVzZXJBY3Rpb24pIHtcclxuICAgIGlmICh0aGlzLmVucmljaEh5cGVyTGlua1JlcG9ydFJlcXVlc3QpIHtcclxuICAgICAgICAgIHRoaXMuanVuaW9yUmVwb3J0UmVxdWVzdCA9IHRoaXMuYmFja2VuZFNlcnZpY2UuYnVpbGRSZXBvcnRSZXF1ZXN0KHRoaXMuanVuaW9yQ29sdW1ucyxcclxuICAgICAgICAgICAgdGhpcy5qdW5pb3JQYWdlSW5mby5sYWJlbHNTZWN0aW9uICsgJy4nICsgdGhpcy5qdW5pb3JQYWdlSW5mby5pZCxcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsICcnLCB0aGlzLmp1bmlvclBhZ2VJbmZvLCAnTEFORFNDQVBFJyk7XHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVFeHBvcnRBY3Rpb24gPSB0aGlzLmp1bmlvclBhZ2VJbmZvLmhpZGVSZXBvcnRzRXh0cmFjdEJ1dHRvbiB8fCBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZW5yaWNoSHlwZXJMaW5rUmVwb3J0UmVxdWVzdCgkZXZlbnQsIHRoaXMuanVuaW9yUmVwb3J0UmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHRyYWN0UmVwb3J0KHJlcG9ydFR5cGU6IGFueSkge1xyXG4gICAgICBpZiAodGhpcy5hY3RpdmVMZXZlbCA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMucmVwb3J0UmVxdWVzdC5yZXBvcnRUeXBlID0gcmVwb3J0VHlwZTtcclxuICAgICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLmRvd25sb2FkUmVwb3J0KHRoaXMucmVwb3J0UmVxdWVzdCwgdGhpcy5wYWdlSW5mby5hcGlVcmkgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZUxldmVsID09PSAyKSB7XHJcbiAgICAgICAgdGhpcy5jaGlsZFJlcG9ydFJlcXVlc3QucmVwb3J0VHlwZSA9IHJlcG9ydFR5cGU7XHJcbiAgICAgICAgdGhpcy5iYWNrZW5kU2VydmljZS5kb3dubG9hZFJlcG9ydCh0aGlzLmNoaWxkUmVwb3J0UmVxdWVzdCwgdGhpcy5kcmlsbERvd25QYWdlSW5mby5hcGlVcmkgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZUxldmVsID09PSAzKSB7XHJcbiAgICAgICAgdGhpcy5qdW5pb3JSZXBvcnRSZXF1ZXN0LnJlcG9ydFR5cGUgPSByZXBvcnRUeXBlO1xyXG4gICAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UuZG93bmxvYWRSZXBvcnQodGhpcy5qdW5pb3JSZXBvcnRSZXF1ZXN0LCB0aGlzLmp1bmlvclBhZ2VJbmZvLmFwaVVyaSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIGdvVXAoKSB7XHJcbiAgICB0aGlzLmlzRWRpdGFibGUgPSB0cnVlO1xyXG4gICAgdGhpcy5hY3RpdmVMZXZlbCA9IHRoaXMuYWN0aXZlTGV2ZWwgLTE7XHJcbiAgICB0aGlzLmRvQWN0aW9uKHRoaXMueCk7XHJcbiAgICB0aGlzLnJlbG9hZERhdGEgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlTGV2ZWwgPjEpIHtcclxuICAgICAgdGhpcy5pc0VkaXRhYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRpc2FibGVFeHBvcnRBY3Rpb24gPSBmYWxzZVxyXG4gIH1cclxuXHJcbiAgZHJpbGxEb3duRW5hYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRyaWxsRG93blBhZ2VJbmZvICYmICF0aGlzLmhpZGVEcmlsbERvd25CdXR0b24gJiYgIXRoaXMuZ2V0SXNFbXB0eUxpc3QoKTtcclxuICB9XHJcblxyXG4gIGRyaWxsRG93bkxhYmVsKCkge1xyXG4gICAgcmV0dXJuIGAke3RoaXMucGFnZUluZm8ubGFiZWxzU2VjdGlvbn0uZHJpbGxEb3duTGFiZWxgIDtcclxuICB9XHJcbiAgZ2V0SXNFbXB0eUxpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kU2VydmljZS5pc0VtcHR5SXRlbXMgfHwgdGhpcy5kaXNhYmxlRXhwb3J0QWN0aW9uID09PSB0cnVlO1xyXG4gIH1cclxuICBjbGVhcigpIHtcclxuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvJywgeyBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWUgfSkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtjdXJyZW50VXJsXSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBpZiAodGhpcy5yZXBvcnRGb3JtKSB7XHJcbiAgICAvLyAgIHRoaXMucmVwb3J0Rm9ybS5yZXNldCgpO1xyXG4gICAgLy9cclxuICAgIC8vICAgdGhpcy5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAvLyAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdsb29rdXAnIHx8IGZpZWxkLnR5cGUgPT09ICdtdWx0aS1zZWxlY3QnKSB7XHJcbiAgICAvLyAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5yZXBvcnRGb3JtLmdldChmaWVsZC5wcm9wZXJ0eSk7XHJcbiAgICAvLyAgICAgICBpZiAoY29udHJvbCkge1xyXG4gICAgLy8gICAgICAgICBjb250cm9sLnNldFZhbHVlKFtdKTtcclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH0pO1xyXG4gICAgLy8gfVxyXG5cclxuICB9XHJcblxyXG5cclxuICBpc0Zvcm1FbXB0eSgpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5yZXBvcnRGb3JtIHx8ICF0aGlzLnJlcG9ydEZvcm0udmFsdWUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5yZXBvcnRGb3JtLnZhbHVlKS5ldmVyeSh2YWx1ZSA9PiB7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDA7XHJcblxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2hvdWxkUHJvY2Vzc0V2ZW50SXRlbShpdGVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGdyb3VwQnlQcm9wID0gdGhpcy5wYWdlSW5mbz8uZ3JvdXBCeVByb3BlcnR5O1xyXG4gICAgY29uc3QgZ3JvdXBCeVZhbHVlcyA9IHRoaXMucGFnZUluZm8/Lmdyb3VwQnlWYWx1ZTtcclxuXHJcbiAgICBpZiAoIWdyb3VwQnlQcm9wIHx8ICFncm91cEJ5VmFsdWVzIHx8ICFpdGVtW2dyb3VwQnlQcm9wXSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWx1ZSA9IGl0ZW1bZ3JvdXBCeVByb3BdLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgcmV0dXJuICFncm91cEJ5VmFsdWVzLnNvbWUodiA9PiB2YWx1ZS5pbmNsdWRlcyh2KSAmJiB2YWx1ZS5sZW5ndGggPj0gdi5sZW5ndGgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29sdW1uIGZ1bGwtd2lkdGhcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1zdGFydC1jZW50ZXJcIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDEwcHg7XCI+XHJcbiAgICA8YXBwLXRpdGxlLWJhciBbcGFnZVRpdGxlXT1cImdldFRpdGxlKClcIiBbbmV3QWN0aW9uXT1cImZhbHNlXCI+PC9hcHAtdGl0bGUtYmFyPlxyXG5cclxuICAgIDxtYXQtaWNvblxyXG4gICAgICAqbmdJZj1cInBhZ2VJbmZvPy5oYXNIaW50XCJcclxuICAgICAgW21hdFRvb2x0aXBdPVwicGFnZUluZm8ubGFiZWxzU2VjdGlvbiArICcuaGludCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiXHJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgIGNsYXNzPVwiaGludC1pY29uXCJcclxuICAgICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRvb2x0aXBcIj5cclxuICAgICAgaGVscF9vdXRsaW5lXHJcbiAgICA8L21hdC1pY29uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8YXBwLWJhc2UtZm9ybS1jYW52YXNcclxuICAgIFtwYWdlSW5mb109XCJwYWdlSW5mb1wiXHJcbiAgICBbZmllbGRzXT1cImZpZWxkc1wiXHJcbiAgICBbZWRpdGFibGVdPVwiaXNFZGl0YWJsZVwiXHJcbiAgICBbZXJyb3JzXT1cImVycm9yc1wiXHJcbiAgICBbaXRlbV09XCJ0aGlzLnJlcG9ydEZvcm0/LnZhbHVlIHx8IHt9XCJcclxuICAgIChmb3JtVXBkYXRlZCk9XCJ1cGRhdGVGb3JtKCRldmVudClcIlxyXG4gID48L2FwcC1iYXNlLWZvcm0tY2FudmFzPlxyXG5cclxuICA8YnI+PGJyPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGdhcC0xMCByZXNwb25zaXZlLXJvd1wiPlxyXG4gICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPT09IDFcIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImRvQWN0aW9uKHgpXCIgW2Rpc2FibGVkXT1cIiFpc1ZhbGlkRm9ybSgpXCIgaWQ9XCJyZXBvcnQtZ2VuZXJhdGUtYnRuXCI+XHJcbiAgICAgICAge3sgJ1JFUE9SVFMuZ2VuZXJhdGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFtkaXNhYmxlZF09XCJnZXRJc0VtcHR5TGlzdCgpXCIgY29sb3I9XCJwcmltYXJ5XCIgaWQ9XCJyZXBvcnQtZXh0cmFjdC10cmlnZ2VyXCI+XHJcbiAgICAgICAge3sgJ2V4dHJhY3QnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZXhwYW5kX21vcmUgYWN0aW9uQnV0dG9uX19leHBhbmRcIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImNsZWFyKClcIiBbZGlzYWJsZWRdPVwiaXNGb3JtRW1wdHkoKSB8fCBhY3RpdmVMZXZlbCA+IDFcIiBpZD1cInJlcG9ydC1jbGVhci1idG5cIj5cclxuICAgICAgICB7eyAnUkVQT1JUUy5jbGVhcicgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPT09IDEgJiYgZHJpbGxEb3duRW5hYmxlZCgpXCIgY29sb3I9XCJ3YXJuXCIgbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJkcmlsbERvd24oKVwiIGlkPVwicmVwb3J0LWRyaWxsZG93bi1idG5cIj5cclxuICAgICAgICB7eyBkcmlsbERvd25MYWJlbCgpIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZUxldmVsID4gMSAmJiBiYWNrQnV0dG9uRW5hYmxlZFwiIGNvbG9yPVwid2FyblwiIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiZ29VcCgpXCIgaWQ9XCJyZXBvcnQtdXAtYnRuXCI+XHJcbiAgICAgICAge3sgJ1JFUE9SVFMudXAnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJhY3RpdmVMZXZlbCA+PSAxXCIgY2xhc3M9XCJtYWluLWZvcm0tY2FudmFzIHJvdyBhbGlnbi1zdGFydC1zdGFydCByZXNwb25zaXZlLXRhYmxlXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAzdmg7XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGZ1bGwtd2lkdGhcIj5cclxuICAgICAgPGFwcC1iYXNlLXRhYmxlXHJcbiAgICAgICAgKm5nSWY9XCJhY3RpdmVMZXZlbCA9PT0gMVwiXHJcbiAgICAgICAgW3BhZ2VJbmZvXT1cInBhZ2VJbmZvXCJcclxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zRGVmaW5pdGlvblwiXHJcbiAgICAgICAgW2VuZm9yY2VSZWZyZXNoXT1cInJlbG9hZERhdGFcIlxyXG4gICAgICAgIGlkPVwicGFyZW50XCJcclxuICAgICAgICBbcmVwb3J0UmVxdWVzdF09XCJyZXBvcnRSZXF1ZXN0XCJcclxuICAgICAgICAodXNlckFjdGlvbik9XCJlbWl0VXNlckFjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAoaHlwZXJMaW5rQWN0aW9uKT1cImVtaXRIeXBlckxpbmtBY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICA8L2FwcC1iYXNlLXRhYmxlPlxyXG5cclxuICAgICAgPGFwcC1iYXNlLXRhYmxlXHJcbiAgICAgICAgKm5nSWY9XCJhY3RpdmVMZXZlbCA9PT0gMlwiXHJcbiAgICAgICAgW3BhZ2VJbmZvXT1cImRyaWxsRG93blBhZ2VJbmZvXCJcclxuICAgICAgICBbY29sdW1uc109XCJkcmlsbERvd25Db2x1bW5zXCJcclxuICAgICAgICBpZD1cImNoaWxkXCJcclxuICAgICAgICBbcmVwb3J0UmVxdWVzdF09XCJjaGlsZFJlcG9ydFJlcXVlc3RcIlxyXG4gICAgICAgICh1c2VyQWN0aW9uKT1cImVtaXRKdW5pb3JBY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgKGh5cGVyTGlua0FjdGlvbik9XCJlbWl0SHlwZXJMaW5rQWN0aW9uKCRldmVudClcIj5cclxuICAgICAgPC9hcHAtYmFzZS10YWJsZT5cclxuXHJcbiAgICAgIDxhcHAtYmFzZS10YWJsZVxyXG4gICAgICAgICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPT09IDNcIlxyXG4gICAgICAgIFtwYWdlSW5mb109XCJqdW5pb3JQYWdlSW5mb1wiXHJcbiAgICAgICAgW2NvbHVtbnNdPVwianVuaW9yQ29sdW1uc1wiXHJcbiAgICAgICAgaWQ9XCJqdW5pb3JcIlxyXG4gICAgICAgIFtyZXBvcnRSZXF1ZXN0XT1cImp1bmlvclJlcG9ydFJlcXVlc3RcIj5cclxuICAgICAgPC9hcHAtYmFzZS10YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcblxyXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgdHlwZSBvZiB0eXBlc1wiIChjbGljayk9XCJleHRyYWN0UmVwb3J0KHR5cGUpXCIgW2F0dHIuaWRdPVwiJ3JlcG9ydC1leHRyYWN0LWl0ZW0tJyArIHR5cGVcIj5cclxuICAgIHt7IHR5cGUgfX1cclxuICA8L2J1dHRvbj5cclxuPC9tYXQtbWVudT5cclxuIl19
@@ -34,7 +34,7 @@ export class SharedListComponent {
34
34
  });
35
35
  }
36
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SharedListComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SharedListComponent, isStandalone: true, selector: "app-shared-list", ngImport: i0, template: "<ng-container *ngIf=\"readyToLoad\">\r\n @if (editableTable) {\r\n <app-editable-base-table [filterRequest]=\"filterRequest\" [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [isPending]=\"isPending\"\r\n ></app-editable-base-table>\r\n\r\n } @else {\r\n\r\n <app-base-table [filters]=\"filters\" [pageInfo]=\"pageInfo\"\r\n [columns]=\"columnsDefinition\"\r\n [listAction]=\"listAction\"\r\n [isPending]=\"isPending\"\r\n ></app-base-table>\r\n\r\n }\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "component", type: BaseTableComponent, selector: "app-base-table", inputs: ["filterFields", "noDataFoundSvgPath", "noDataFoundTitle", "noDataFoundSubtitle", "noResultSvgPath", "noResultTitle", "noResultSubtitle", "pageInfo", "enablePagination", "data", "listAction", "columns", "filters", "pathParam", "extraButton", "enforceRefresh", "isPending", "trigger", "reportRequest", "separateEndpointData", "manageablePages", "totalPagesCount", "currentPageIndex", "customizedData"], outputs: ["pageChange", "userAction", "hyperLinkAction", "extraAction", "selectedColumn", "listActionClicked", "showDialog", "clickRoutePage"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EditableBaseTableComponent, selector: "app-editable-base-table", inputs: ["filterRequest", "superDataElements", "pageInfo", "enforceRefresh", "isPending", "isBulkItemsSupported", "fields", "searchFormFields", "translationKey", "actionRequestCallback"], outputs: ["formUpdated", "saveActionEmitter", "saveAttachmentEmitter"] }] }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SharedListComponent, isStandalone: true, selector: "app-shared-list", ngImport: i0, template: "<ng-container *ngIf=\"readyToLoad\">\r\n @if (editableTable) {\r\n <app-editable-base-table [filterRequest]=\"filterRequest\" [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [isPending]=\"isPending\"\r\n ></app-editable-base-table>\r\n\r\n } @else {\r\n\r\n <app-base-table [filters]=\"filters\" [pageInfo]=\"pageInfo\"\r\n [columns]=\"columnsDefinition\"\r\n [listAction]=\"listAction\"\r\n [isPending]=\"isPending\"\r\n ></app-base-table>\r\n\r\n }\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "component", type: BaseTableComponent, selector: "app-base-table", inputs: ["filterFields", "noDataFoundSvgPath", "noDataFoundTitle", "noDataFoundSubtitle", "noResultSvgPath", "noResultTitle", "noResultSubtitle", "pageInfo", "enablePagination", "data", "listAction", "extraActions", "buttonsDisplayMode", "columns", "filters", "pathParam", "extraButton", "enforceRefresh", "isPending", "trigger", "reportRequest", "separateEndpointData", "manageablePages", "totalPagesCount", "currentPageIndex", "customizedData"], outputs: ["buttonClicked", "pageChange", "userAction", "hyperLinkAction", "extraAction", "selectedColumn", "listActionClicked", "showDialog", "clickRoutePage"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EditableBaseTableComponent, selector: "app-editable-base-table", inputs: ["filterRequest", "superDataElements", "pageInfo", "enforceRefresh", "isPending", "isBulkItemsSupported", "fields", "searchFormFields", "translationKey", "actionRequestCallback"], outputs: ["formUpdated", "saveActionEmitter", "saveAttachmentEmitter"] }] }); }
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SharedListComponent, decorators: [{
40
40
  type: Component,
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
44
44
  EditableBaseTableComponent
45
45
  ], template: "<ng-container *ngIf=\"readyToLoad\">\r\n @if (editableTable) {\r\n <app-editable-base-table [filterRequest]=\"filterRequest\" [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [isPending]=\"isPending\"\r\n ></app-editable-base-table>\r\n\r\n } @else {\r\n\r\n <app-base-table [filters]=\"filters\" [pageInfo]=\"pageInfo\"\r\n [columns]=\"columnsDefinition\"\r\n [listAction]=\"listAction\"\r\n [isPending]=\"isPending\"\r\n ></app-base-table>\r\n\r\n }\r\n</ng-container>\r\n" }]
46
46
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }] });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtbGlzdC9zaGFyZWQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1saXN0L3NoYXJlZC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFFaEQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBdUIsZUFBZSxFQUFhLGFBQWEsRUFBd0IsTUFBTSxrQkFBa0IsQ0FBQztBQUV4SCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQzs7O0FBYWhHLE1BQU0sT0FBTyxtQkFBbUI7SUFVOUIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBVGxELGFBQVEsR0FBYSxlQUFlLENBQUM7UUFDckMsc0JBQWlCLEdBQXVCLEVBQUUsQ0FBQztRQUMzQyxXQUFNLEdBQWdCLEVBQUUsQ0FBQztRQUN6QixZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsZUFBVSxHQUEyQixFQUFFLENBQUM7UUFDeEMsa0JBQWEsR0FBYSxLQUFLLENBQUM7UUFDaEMsa0JBQWEsR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUNHLENBQUM7SUFFdkQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXJDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLENBQUM7WUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFFMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTlCVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwyRUNuQmhDLDZrQkFpQkEsMERETEksa0JBQWtCLHFtQkFDbEIsSUFBSSw2RkFDSiwwQkFBMEI7OzRGQUtqQixtQkFBbUI7a0JBWC9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQO3dCQUNQLGtCQUFrQjt3QkFDbEIsSUFBSTt3QkFDSiwwQkFBMEI7cUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7QmFzZVRhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS10YWJsZS9iYXNlLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0J1dHRvbkFjdGlvblNldHRpbmdzLCBFTVBUWV9QQUdFX0lORk8sIEZpZWxkSW5mbywgRmlsdGVyUmVxdWVzdCwgUGFnZUluZm8sIFRhYmxlQ29sdW1ufSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbFwiO1xyXG5pbXBvcnQge0ZpbHRlcn0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWxcIjtcclxuaW1wb3J0IHtFZGl0YWJsZUJhc2VUYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4uL2VkaXRhYmxlLWJhc2UtdGFibGUvZWRpdGFibGUtYmFzZS10YWJsZS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNoYXJlZC1saXN0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEJhc2VUYWJsZUNvbXBvbmVudCxcclxuICAgIE5nSWYsXHJcbiAgICBFZGl0YWJsZUJhc2VUYWJsZUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NoYXJlZC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6WyAnLi9zaGFyZWQtbGlzdC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNoYXJlZExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHBhZ2VJbmZvOiBQYWdlSW5mbyA9IEVNUFRZX1BBR0VfSU5GTztcclxuICBjb2x1bW5zRGVmaW5pdGlvbjogVGFibGVDb2x1bW48YW55PltdID0gW107XHJcbiAgZmllbGRzOiBGaWVsZEluZm9bXSA9IFtdO1xyXG4gIGZpbHRlcnM6IEZpbHRlcltdID0gW107XHJcbiAgcmVhZHlUb0xvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1BlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBsaXN0QWN0aW9uOiBCdXR0b25BY3Rpb25TZXR0aW5nc1tdID0gW107XHJcbiAgZWRpdGFibGVUYWJsZSA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmaWx0ZXJSZXF1ZXN0OiBGaWx0ZXJSZXF1ZXN0ID0gbmV3IEZpbHRlclJlcXVlc3QoKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgdGhpcy5wYWdlSW5mbyA9IGRhdGFbJ3BhZ2VJbmZvJ107XHJcbiAgICAgIHRoaXMuY29sdW1uc0RlZmluaXRpb24gPSBkYXRhW1wiY29sdW1uc0RlZmluaXRpb25cIl07XHJcbiAgICAgIHRoaXMuZmlsdGVycyA9IGRhdGFbXCJmaWx0ZXJzXCJdIHx8IFtdO1xyXG5cclxuICAgICAgdGhpcy5pc1BlbmRpbmcgPSAncGVuZGluZycgPT09IGRhdGFbXCJtb2RlXCJdO1xyXG4gICAgICB0aGlzLmxpc3RBY3Rpb24gPSBkYXRhWydhY3Rpb25zJ107XHJcbiAgICAgIHRoaXMuZWRpdGFibGVUYWJsZSA9IGRhdGFbJ2VkaXRhYmxlVGFibGUnXSB8fCBmYWxzZTtcclxuICAgICAgdGhpcy5maWVsZHMgPSBkYXRhWydmaWVsZHMnXTtcclxuXHJcbiAgICAgIHRoaXMuZmlsdGVyUmVxdWVzdCA9IG5ldyBGaWx0ZXJSZXF1ZXN0KCk7XHJcbiAgICAgIHRoaXMuZmlsdGVyUmVxdWVzdC5jb2x1bW5zID0gdGhpcy5maWVsZHM/LmZpbHRlcihjID0+IGMudHlwZSAhPT0gJ2J1dHRvbicpLm1hcChjID0+IGMucHJvcGVydHkpIHx8IFtdO1xyXG4gICAgICB0aGlzLmZpbHRlclJlcXVlc3QuZmlsdGVycyA9IHRoaXMuZmlsdGVycztcclxuXHJcbiAgICAgIHRoaXMucmVhZHlUb0xvYWQgPSB0cnVlO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJyZWFkeVRvTG9hZFwiPlxyXG4gIEBpZiAoZWRpdGFibGVUYWJsZSkge1xyXG4gICAgPGFwcC1lZGl0YWJsZS1iYXNlLXRhYmxlIFtmaWx0ZXJSZXF1ZXN0XT1cImZpbHRlclJlcXVlc3RcIiBbcGFnZUluZm9dPVwicGFnZUluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNQZW5kaW5nXT1cImlzUGVuZGluZ1wiXHJcbiAgICA+PC9hcHAtZWRpdGFibGUtYmFzZS10YWJsZT5cclxuXHJcbiAgfSBAZWxzZSB7XHJcblxyXG4gICAgPGFwcC1iYXNlLXRhYmxlIFtmaWx0ZXJzXT1cImZpbHRlcnNcIiBbcGFnZUluZm9dPVwicGFnZUluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNEZWZpbml0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGlzdEFjdGlvbl09XCJsaXN0QWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNQZW5kaW5nXT1cImlzUGVuZGluZ1wiXHJcbiAgICA+PC9hcHAtYmFzZS10YWJsZT5cclxuXHJcbiAgfVxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtbGlzdC9zaGFyZWQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1saXN0L3NoYXJlZC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFFaEQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBdUIsZUFBZSxFQUFhLGFBQWEsRUFBd0IsTUFBTSxrQkFBa0IsQ0FBQztBQUV4SCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQzs7O0FBYWhHLE1BQU0sT0FBTyxtQkFBbUI7SUFVOUIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBVGxELGFBQVEsR0FBYSxlQUFlLENBQUM7UUFDckMsc0JBQWlCLEdBQXVCLEVBQUUsQ0FBQztRQUMzQyxXQUFNLEdBQWdCLEVBQUUsQ0FBQztRQUN6QixZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsZUFBVSxHQUEyQixFQUFFLENBQUM7UUFDeEMsa0JBQWEsR0FBYSxLQUFLLENBQUM7UUFDaEMsa0JBQWEsR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUNHLENBQUM7SUFFdkQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXJDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLENBQUM7WUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFFMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTlCVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwyRUNuQmhDLDZrQkFpQkEsMERETEksa0JBQWtCLDRwQkFDbEIsSUFBSSw2RkFDSiwwQkFBMEI7OzRGQUtqQixtQkFBbUI7a0JBWC9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQO3dCQUNQLGtCQUFrQjt3QkFDbEIsSUFBSTt3QkFDSiwwQkFBMEI7cUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7QmFzZVRhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS10YWJsZS9iYXNlLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0J1dHRvbkFjdGlvblNldHRpbmdzLCBFTVBUWV9QQUdFX0lORk8sIEZpZWxkSW5mbywgRmlsdGVyUmVxdWVzdCwgUGFnZUluZm8sIFRhYmxlQ29sdW1ufSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbFwiO1xyXG5pbXBvcnQge0ZpbHRlcn0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWxcIjtcclxuaW1wb3J0IHtFZGl0YWJsZUJhc2VUYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4uL2VkaXRhYmxlLWJhc2UtdGFibGUvZWRpdGFibGUtYmFzZS10YWJsZS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNoYXJlZC1saXN0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEJhc2VUYWJsZUNvbXBvbmVudCxcclxuICAgIE5nSWYsXHJcbiAgICBFZGl0YWJsZUJhc2VUYWJsZUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NoYXJlZC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6WyAnLi9zaGFyZWQtbGlzdC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNoYXJlZExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHBhZ2VJbmZvOiBQYWdlSW5mbyA9IEVNUFRZX1BBR0VfSU5GTztcclxuICBjb2x1bW5zRGVmaW5pdGlvbjogVGFibGVDb2x1bW48YW55PltdID0gW107XHJcbiAgZmllbGRzOiBGaWVsZEluZm9bXSA9IFtdO1xyXG4gIGZpbHRlcnM6IEZpbHRlcltdID0gW107XHJcbiAgcmVhZHlUb0xvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1BlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBsaXN0QWN0aW9uOiBCdXR0b25BY3Rpb25TZXR0aW5nc1tdID0gW107XHJcbiAgZWRpdGFibGVUYWJsZSA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmaWx0ZXJSZXF1ZXN0OiBGaWx0ZXJSZXF1ZXN0ID0gbmV3IEZpbHRlclJlcXVlc3QoKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgdGhpcy5wYWdlSW5mbyA9IGRhdGFbJ3BhZ2VJbmZvJ107XHJcbiAgICAgIHRoaXMuY29sdW1uc0RlZmluaXRpb24gPSBkYXRhW1wiY29sdW1uc0RlZmluaXRpb25cIl07XHJcbiAgICAgIHRoaXMuZmlsdGVycyA9IGRhdGFbXCJmaWx0ZXJzXCJdIHx8IFtdO1xyXG5cclxuICAgICAgdGhpcy5pc1BlbmRpbmcgPSAncGVuZGluZycgPT09IGRhdGFbXCJtb2RlXCJdO1xyXG4gICAgICB0aGlzLmxpc3RBY3Rpb24gPSBkYXRhWydhY3Rpb25zJ107XHJcbiAgICAgIHRoaXMuZWRpdGFibGVUYWJsZSA9IGRhdGFbJ2VkaXRhYmxlVGFibGUnXSB8fCBmYWxzZTtcclxuICAgICAgdGhpcy5maWVsZHMgPSBkYXRhWydmaWVsZHMnXTtcclxuXHJcbiAgICAgIHRoaXMuZmlsdGVyUmVxdWVzdCA9IG5ldyBGaWx0ZXJSZXF1ZXN0KCk7XHJcbiAgICAgIHRoaXMuZmlsdGVyUmVxdWVzdC5jb2x1bW5zID0gdGhpcy5maWVsZHM/LmZpbHRlcihjID0+IGMudHlwZSAhPT0gJ2J1dHRvbicpLm1hcChjID0+IGMucHJvcGVydHkpIHx8IFtdO1xyXG4gICAgICB0aGlzLmZpbHRlclJlcXVlc3QuZmlsdGVycyA9IHRoaXMuZmlsdGVycztcclxuXHJcbiAgICAgIHRoaXMucmVhZHlUb0xvYWQgPSB0cnVlO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJyZWFkeVRvTG9hZFwiPlxyXG4gIEBpZiAoZWRpdGFibGVUYWJsZSkge1xyXG4gICAgPGFwcC1lZGl0YWJsZS1iYXNlLXRhYmxlIFtmaWx0ZXJSZXF1ZXN0XT1cImZpbHRlclJlcXVlc3RcIiBbcGFnZUluZm9dPVwicGFnZUluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNQZW5kaW5nXT1cImlzUGVuZGluZ1wiXHJcbiAgICA+PC9hcHAtZWRpdGFibGUtYmFzZS10YWJsZT5cclxuXHJcbiAgfSBAZWxzZSB7XHJcblxyXG4gICAgPGFwcC1iYXNlLXRhYmxlIFtmaWx0ZXJzXT1cImZpbHRlcnNcIiBbcGFnZUluZm9dPVwicGFnZUluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNEZWZpbml0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGlzdEFjdGlvbl09XCJsaXN0QWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNQZW5kaW5nXT1cImlzUGVuZGluZ1wiXHJcbiAgICA+PC9hcHAtYmFzZS10YWJsZT5cclxuXHJcbiAgfVxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19