@unifylib/ui-lib 1.1.35 → 1.1.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/activity-report-form/activity-report-form.component.mjs +1 -14
- package/esm2022/lib/components/base-form/base-form.component.mjs +1 -14
- package/esm2022/lib/components/base-form-canvas/base-form-canvas.component.mjs +2 -18
- package/esm2022/lib/components/report-form/report-form.component.mjs +1 -14
- package/esm2022/lib/components/section-form-canvas/section-form-canvas.component.mjs +3 -3
- package/fesm2022/iq-ui-lib.mjs +3 -55
- package/fesm2022/iq-ui-lib.mjs.map +1 -1
- package/fesm2022/unifylib-ui-lib.mjs +3 -55
- package/fesm2022/unifylib-ui-lib.mjs.map +1 -1
- package/lib/components/base-form-canvas/base-form-canvas.component.d.ts +0 -2
- package/package.json +1 -1
|
@@ -11,7 +11,6 @@ import { ReportRequest } from "../../base-model/report-request.model";
|
|
|
11
11
|
import { Filter } from "../../base-model/filter.model";
|
|
12
12
|
import { TitleBarComponent } from "../title-bar/title-bar.component";
|
|
13
13
|
import { BaseFormCanvasComponent } from "../base-form-canvas/base-form-canvas.component";
|
|
14
|
-
import ClassicEditor from "@ckeditor/ckeditor5-build-classic";
|
|
15
14
|
import { DRILL_DOWN_ACTION, JUNIOR_DOWN_ACTION, SnackMessage } from "../../base-model";
|
|
16
15
|
import { ReportDetailsDialogComponent } from "../report-details-dialog/report-details-dialog.component";
|
|
17
16
|
import { cloneDeep } from 'lodash';
|
|
@@ -60,18 +59,6 @@ export class ReportFormComponent {
|
|
|
60
59
|
this.juniorReportRequest = new ReportRequest({});
|
|
61
60
|
this.readyToSearch = false;
|
|
62
61
|
this.disableExportAction = false;
|
|
63
|
-
ClassicEditor.defaultConfig = {
|
|
64
|
-
toolbar: {
|
|
65
|
-
items: ['heading', '|', 'bold', 'italic', '|', 'bulletedList', 'numberedList']
|
|
66
|
-
},
|
|
67
|
-
image: {
|
|
68
|
-
toolbar: ['imageStyle:side', '|', 'imageTextAlternative']
|
|
69
|
-
},
|
|
70
|
-
table: {
|
|
71
|
-
contentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells']
|
|
72
|
-
},
|
|
73
|
-
language: 'en'
|
|
74
|
-
};
|
|
75
62
|
}
|
|
76
63
|
ngOnInit() {
|
|
77
64
|
this.currentDirection = this.directionality.value;
|
|
@@ -495,4 +482,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
495
482
|
}], userAction: [{
|
|
496
483
|
type: Output
|
|
497
484
|
}] } });
|
|
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
|
|
485
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnQtZm9ybS9yZXBvcnQtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydC1mb3JtL3JlcG9ydC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMEIsU0FBUyxFQUFFLFlBQVksRUFBWSxLQUFLLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWhILE9BQU8sRUFBQyxlQUFlLEVBQVcsTUFBTSw0QkFBNEIsQ0FBQztBQUdyRSxPQUFPLEVBQUMsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBSXRFLE9BQU8sRUFBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVFLE9BQU8sRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFr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Q0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUdOLFVBQVU7c0JBRFQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGaWVsZEluZm99IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsL2ZpZWxkLWluZm9cIjtcclxuaW1wb3J0IHtFTVBUWV9QQUdFX0lORk8sIFBhZ2VJbmZvfSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9wYWdlLWluZm9cIjtcclxuaW1wb3J0IHtUYWJsZUNvbHVtbn0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWwvdGFibGUtY29sdW1uLmludGVyZmFjZVwiO1xyXG5pbXBvcnQge0ZpZWxkTWVzc2FnZX0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWwvYXBpLXJlc3BvbnNlXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvYmFja2VuZC1zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBGb3JtR3JvdXB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge2Zvcm1hdERhdGUsIE5nRm9yT2YsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtNYXRNZW51LCBNYXRNZW51SXRlbSwgTWF0TWVudVRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7TWF0QnV0dG9uLCBNYXRCdXR0b25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHtCYXNlVGFibGVDb21wb25lbnR9IGZyb20gXCIuLi9iYXNlLXRhYmxlL2Jhc2UtdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHtGaWx0ZXJSZXF1ZXN0fSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9maWx0ZXItcmVxdWVzdFwiO1xyXG5pbXBvcnQge1JlcG9ydFJlcXVlc3R9IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsL3JlcG9ydC1yZXF1ZXN0Lm1vZGVsXCI7XHJcbmltcG9ydCB7RmlsdGVyfSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9maWx0ZXIubW9kZWxcIjtcclxuaW1wb3J0IHtUaXRsZUJhckNvbXBvbmVudH0gZnJvbSBcIi4uL3RpdGxlLWJhci90aXRsZS1iYXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QmFzZUZvcm1DYW52YXNDb21wb25lbnR9IGZyb20gXCIuLi9iYXNlLWZvcm0tY2FudmFzL2Jhc2UtZm9ybS1jYW52YXMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RFJJTExfRE9XTl9BQ1RJT04sIEpVTklPUl9ET1dOX0FDVElPTiwgU25hY2tNZXNzYWdlLCBUYWJsZVBhZ2VVc2VyQWN0aW9ufSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbFwiO1xyXG5pbXBvcnQge30gZnJvbSBcIi4uL2F1ZGl0LWxvZy1kZXRhaWxzLWRpYWxvZy9hdWRpdC1sb2ctZGV0YWlscy1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7UmVwb3J0RGV0YWlsc0RpYWxvZ0NvbXBvbmVudH0gZnJvbSBcIi4uL3JlcG9ydC1kZXRhaWxzLWRpYWxvZy9yZXBvcnQtZGV0YWlscy1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7TWF0VG9vbHRpcH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuaW1wb3J0IHtEaXJlY3Rpb25hbGl0eX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9iaWRpXCI7XHJcblxyXG5cclxuY29uc3QgTk9OX1JFUE9SVF9DT0xVTU5TID0gWydsaXN0QWN0aW9uJywgJ2J1dHRvbicsICdjaGVja2JveCddO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1yZXBvcnQtZm9ybScsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFRpdGxlQmFyQ29tcG9uZW50LFxyXG4gICAgQmFzZUZvcm1DYW52YXNDb21wb25lbnQsXHJcbiAgICBNYXRNZW51LFxyXG4gICAgTWF0TWVudUl0ZW0sXHJcbiAgICBOZ0Zvck9mLFxyXG4gICAgTWF0TWVudVRyaWdnZXIsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBCYXNlVGFibGVDb21wb25lbnQsXHJcbiAgICBOZ0lmLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbixcclxuICAgIE1hdFRvb2x0aXBcclxuICBdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JlcG9ydC1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAnLi9yZXBvcnQtZm9ybS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcG9ydEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KClcclxuICAgIHNob3dEZXRhaWxzIDogYW55ID0gW107XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNob3dFeHRyYWN0QnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgY29sdW1uczogVGFibGVDb2x1bW48YW55PltdID1bXTtcclxuXHJcbiAgICBASW5wdXQoKSBhY3Rpb25SZXF1ZXN0Q2FsbGJhY2shOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbikgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuICAgIEBJbnB1dCgpIGVucmljaERyaWxsRG93blJlcG9ydFJlcXVlc3QhOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbiwgcmVwb3J0UmVxdWVzdDogUmVwb3J0UmVxdWVzdCkgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuICAgIEBJbnB1dCgpIGVucmljaEh5cGVyTGlua1JlcG9ydFJlcXVlc3QhOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbiwgcmVwb3J0UmVxdWVzdDogUmVwb3J0UmVxdWVzdCkgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuICAgIEBJbnB1dCgpIGVucmljaEp1bmlvclJlcG9ydFJlcXVlc3QhOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbiwgcmVwb3J0UmVxdWVzdDogUmVwb3J0UmVxdWVzdCkgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHVzZXJBY3Rpb246IEV2ZW50RW1pdHRlcjxUYWJsZVBhZ2VVc2VyQWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVQYWdlVXNlckFjdGlvbj4oKTtcclxuICAgIGFjdGl2ZUxldmVsOiBudW1iZXIgPSAxO1xyXG5cclxuICAgIHByaXZhdGUgZmlsdGVyUmVxdWVzdDogRmlsdGVyUmVxdWVzdDtcclxuICAgIHg6IGFueTtcclxuICAgIGlzRWRpdGFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgZmllbGRzOiBGaWVsZEluZm9bXSA9IFtdO1xyXG4gICAgcGFnZUluZm86IFBhZ2VJbmZvID0gRU1QVFlfUEFHRV9JTkZPO1xyXG4gICAgZHJpbGxEb3duUGFnZUluZm86IFBhZ2VJbmZvID0gRU1QVFlfUEFHRV9JTkZPO1xyXG4gICAgZHJpbGxEb3duQ29sdW1uczogVGFibGVDb2x1bW48YW55PltdID0gW107XHJcbiAgICBoaWRlRHJpbGxEb3duQnV0dG9uOiBmYWxzZTtcclxuXHJcbiAgICBqdW5pb3JQYWdlSW5mbzogUGFnZUluZm8gPSBFTVBUWV9QQUdFX0lORk87XHJcbiAgICBqdW5pb3JDb2x1bW5zOiBUYWJsZUNvbHVtbjxhbnk+W10gPSBbXTtcclxuXHJcbiAgICBjb2x1bW5zRGVmaW5pdGlvbjogVGFibGVDb2x1bW48YW55PltdID0gW107XHJcbiAgICB0eXBlczogc3RyaW5nW10gPSBbXCJwZGZcIiwgXCJjc3ZcIiwgXCJ4bHN4XCJdXHJcbiAgICBzZWFyY2hTdHI6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIGVycm9yczogRmllbGRNZXNzYWdlW10gPSBbXTtcclxuXHJcbiAgICByZWxvYWREYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBiYWNrQnV0dG9uRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cclxuICAgIHJlcG9ydFJlcXVlc3Q6IFJlcG9ydFJlcXVlc3QgPSBuZXcgUmVwb3J0UmVxdWVzdCh7fSk7XHJcbiAgICBjaGlsZFJlcG9ydFJlcXVlc3Q6IFJlcG9ydFJlcXVlc3QgPSBuZXcgUmVwb3J0UmVxdWVzdCh7fSk7XHJcbiAgICBqdW5pb3JSZXBvcnRSZXF1ZXN0OiBSZXBvcnRSZXF1ZXN0ID0gbmV3IFJlcG9ydFJlcXVlc3Qoe30pO1xyXG4gICAgcHVibGljIHJlcG9ydEZvcm06IEZvcm1Hcm91cDtcclxuICAgIHJlYWR5VG9TZWFyY2ggPSBmYWxzZTtcclxuICAgIHByaXZhdGUgcGFnZVNpemU6IGFueTtcclxuICAgIHByaXZhdGUgZGlhbG9nUmVwb3J0UmVxdWVzdDogYW55O1xyXG4gICAgY3VycmVudERpcmVjdGlvbjogJ2x0cicgfCAncnRsJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHVibGljIGJhY2tlbmRTZXJ2aWNlOiBCYWNrZW5kU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIGRpcmVjdGlvbmFsaXR5OiBEaXJlY3Rpb25hbGl0eSxcclxuICAgICAgICAgICAgICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZUV4cG9ydEFjdGlvbiA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uID0gdGhpcy5kaXJlY3Rpb25hbGl0eS52YWx1ZTtcclxuICAgICAgdGhpcy5kaXJlY3Rpb25hbGl0eS5jaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuY3VycmVudERpcmVjdGlvbiA9IHZhbHVlO1xyXG4gICAgICB9KVxyXG5cclxuICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICB0aGlzLnBhZ2VJbmZvID0gZGF0YVsncGFnZUluZm8nXTtcclxuICAgICAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5wYWdlSW5mby5wYWdlU2l6ZSA/PyAxMDtcclxuICAgICAgICB0aGlzLmZpbHRlclJlcXVlc3QgPSBuZXcgRmlsdGVyUmVxdWVzdCh0aGlzLnBhZ2VTaXplKTtcclxuICAgICAgICBkYXRhWydwYWdlSW5mbyddLmxhenlMb2FkRGF0YSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5kcmlsbERvd25QYWdlSW5mbyA9IGRhdGFbJ2RyaWxsRG93blBhZ2VJbmZvJ107XHJcbiAgICAgICAgdGhpcy5kcmlsbERvd25Db2x1bW5zID0gZGF0YVsnZHJpbGxEb3duQ29sdW1ucyddPy5maWx0ZXIoYyA9PiBjLnByb3BlcnR5ICE9PSAnc2VsZWN0SXRlbScpO1xyXG4gICAgICAgIHRoaXMuaGlkZURyaWxsRG93bkJ1dHRvbiA9IGRhdGFbJ2hpZGVEcmlsbERvd25CdXR0b24nXSA/PyBmYWxzZTtcclxuICAgICAgICB0aGlzLmp1bmlvclBhZ2VJbmZvID0gZGF0YVsnanVuaW9yUGFnZUluZm8nXTtcclxuICAgICAgICB0aGlzLmp1bmlvckNvbHVtbnMgPSBkYXRhWydqdW5pb3JDb2x1bW5zJ107XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zRGVmaW5pdGlvbiA9IGRhdGFbJ2NvbHVtbnNEZWZpbml0aW9uJ10uZmlsdGVyKGMgPT4gKHRoaXMuZHJpbGxEb3duUGFnZUluZm8gJiYgdGhpcy5kcmlsbERvd25Db2x1bW5zIHx8ICghTk9OX1JFUE9SVF9DT0xVTU5TLmluY2x1ZGVzKGMudHlwZSkpKSk7XHJcbiAgICAgICAgdGhpcy5maWVsZHMgPSBkYXRhWydmaWVsZHMnXTtcclxuICAgICAgICBpZiAoZGF0YVsnZW5yaWNoRHJpbGxEb3duUmVwb3J0UmVxdWVzdCddKSB7XHJcbiAgICAgICAgICB0aGlzLmVucmljaERyaWxsRG93blJlcG9ydFJlcXVlc3QgPSBkYXRhWydlbnJpY2hEcmlsbERvd25SZXBvcnRSZXF1ZXN0J10odGhpcy5pbmplY3Rvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkYXRhWydlbnJpY2hKdW5pb3JSZXBvcnRSZXF1ZXN0J10pIHtcclxuICAgICAgICAgIHRoaXMuZW5yaWNoSnVuaW9yUmVwb3J0UmVxdWVzdCA9IGRhdGFbJ2VucmljaEp1bmlvclJlcG9ydFJlcXVlc3QnXSh0aGlzLmluamVjdG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkYXRhWydlbnJpY2hIeXBlckxpbmtSZXBvcnRSZXF1ZXN0J10pIHtcclxuICAgICAgICAgIHRoaXMuZW5yaWNoSHlwZXJMaW5rUmVwb3J0UmVxdWVzdCA9IGRhdGFbJ2VucmljaEh5cGVyTGlua1JlcG9ydFJlcXVlc3QnXSh0aGlzLmluamVjdG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1NYXAuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgICAgY29uc3QgaXNDb21wYXJpc29uUmVwb3J0ID0gcGFyYW1zLmdldCgnY29tcGFyaXNvblJlcG9ydCcpID09PSAndHJ1ZSc7XHJcblxyXG4gICAgICAgIGlmIChpc0NvbXBhcmlzb25SZXBvcnQpIHtcclxuICAgICAgICAgIGNvbnN0IGNvbXBhcmlzb25TdHIgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdjb21wYXJpc29uUmVwb3J0UGFnZUluZm8nKTtcclxuXHJcbiAgICAgICAgICBpZiAoY29tcGFyaXNvblN0cikge1xyXG4gICAgICAgICAgICBjb25zdCBjb21wYXJpc29uRGF0YSA9IEpTT04ucGFyc2UoY29tcGFyaXNvblN0cik7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnBhZ2VJbmZvLmxhenlMb2FkRGF0YSA9IGNvbXBhcmlzb25EYXRhLmxhenlMb2FkRGF0YSA/PyBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVMZXZlbCA9IGNvbXBhcmlzb25EYXRhLmFjdGl2ZUxldmVsID8/IDI7XHJcbiAgICAgICAgICAgIHRoaXMuaXNFZGl0YWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmJhY2tCdXR0b25FbmFibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuZHJpbGxEb3duUGFnZUluZm8gPSBjb21wYXJpc29uRGF0YS5kcmlsbERvd25QYWdlSW5mbztcclxuICAgICAgICAgICAgdGhpcy5kcmlsbERvd25Db2x1bW5zID0gY29tcGFyaXNvbkRhdGEuZHJpbGxEb3duQ29sdW1ucztcclxuICAgICAgICAgICAgdGhpcy5yZXBvcnRGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAgZGlyZWN0b3JhdGU6IFtbXV0sXHJcbiAgICAgICAgICAgICAgZnJvbURhdGU6IFsnJ10sXHJcbiAgICAgICAgICAgICAgdG9EYXRlOiBbJyddLFxyXG4gICAgICAgICAgICAgIHNlY3RvcjogWycnXSxcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlcG9ydEZvcm0ucGF0Y2hWYWx1ZShjb21wYXJpc29uRGF0YS5mb3JtKVxyXG4gICAgICAgICAgICB0aGlzLmZpZWxkcyA9IHRoaXMuZmllbGRzLmZpbHRlcihjID0+IGMudHlwZSAhPT0gJ2NoZWNrYm94Jyk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCByZXBvcnRSZXF1ZXN0ID0gY29tcGFyaXNvbkRhdGEucmVwb3J0UmVxdWVzdDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2hpbGRSZXBvcnRSZXF1ZXN0ID0gdGhpcy5iYWNrZW5kU2VydmljZS5idWlsZFJlcG9ydFJlcXVlc3QoXHJcbiAgICAgICAgICAgICAgdGhpcy5kcmlsbERvd25Db2x1bW5zLFxyXG4gICAgICAgICAgICAgIGAke3RoaXMuZHJpbGxEb3duUGFnZUluZm8ubGFiZWxzU2VjdGlvbn0uJHt0aGlzLmRyaWxsRG93blBhZ2VJbmZvLmlkfWAsXHJcbiAgICAgICAgICAgICAgcmVwb3J0UmVxdWVzdCxcclxuICAgICAgICAgICAgICAnJyxcclxuICAgICAgICAgICAgICB0aGlzLmRyaWxsRG93blBhZ2VJbmZvLFxyXG4gICAgICAgICAgICAgICdMQU5EU0NBUEUnXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAvLyBuZ09uQ2hhbmdlcyh7aXRlbSwgZXJyb3JzLCBmaWVsZHN9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAvLyAgICAgLy8gZXJyb3JzPy5jdXJyZW50VmFsdWU/LmZvckVhY2goKG1zZzogRmllbGRNZXNzYWdlKSA9PiB7XHJcbiAgICAvLyAgICAgLy8gICAgIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQobXNnLmZpZWxkTmFtZSk/LnNldEVycm9ycyh7c2VydmVyRXJyb3I6IG1zZy5tZXNzYWdlfSk7XHJcbiAgICAvLyAgICAgLy8gfSk7XHJcbiAgICAvLyAgICAgLy8gaWYgKGZpZWxkcz8uY3VycmVudFZhbHVlICYmICFmaWVsZHMuaXNGaXJzdENoYW5nZSgpKXtcclxuICAgIC8vICAgICAvLyAgICAgdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIC8vICAgICAvLyB9XHJcbiAgICAvLyAgICAgLy8gdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBpc01hdGNoSGVpZ2h0KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2VJbmZvLnBhZ2VIZWlnaHQgPT09ICdtYXRjaCc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGRvQWN0aW9uKHR5cGU6IHN0cmluZykge1xyXG4gICAgICBpZiAodGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy5yZWxvYWREYXRhID0gIXRoaXMucmVsb2FkRGF0YTtcclxuICAgICAgICBjb25zdCBmaWx0ZXJSZXF1ZXN0OiBGaWx0ZXJSZXF1ZXN0ID0gbmV3IEZpbHRlclJlcXVlc3QodGhpcy5wYWdlU2l6ZSk7XHJcbiAgICAgICAgZmlsdGVyUmVxdWVzdC5maWx0ZXJzID0gW107XHJcbiAgICAgICAgbGV0IHBhcmFtc1N0cmluZzogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICB0aGlzLmZpZWxkcy5maWx0ZXIoeCA9PiB4LnR5cGUgIT09ICdzcGFjZXInKS5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuZ2V0UGFyYW1WYWx1ZShmKSAhPSBudWxsICYmIHRoaXMuZ2V0UGFyYW1WYWx1ZShmKS50b1N0cmluZygpLnRyaW0oKSAhPT0gJycpXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICBpZiAoZi50eXBlID09PSAnbXVsdGktc2VsZWN0JyB8fCBmLnR5cGUgPT09ICdsb29rdXAnKSB7XHJcbiAgICAgICAgICAgIC8vIGRvIG5vdCBmaWx0ZXIgaWYgdGhpcyBmaWVsZCBhcyBjYXNjYWRpbmcgZm9yIGFub3RoZXIgb25lIGFuZCB0aGUgb3RoZXIgb25lIGdvdCBzZWxlY3RlZCB2YWx1ZXNcclxuICAgICAgICAgICAgY29uc3QgY2hpbGRGaWVsZElkeCA9IHRoaXMuZmllbGRzLmZpbmRJbmRleChmaWVsZCA9PiBmaWVsZC5jYXNjYWRlZEJ5ID09PSBmLnByb3BlcnR5KTtcclxuICAgICAgICAgICAgaWYgKGNoaWxkRmllbGRJZHggPiAtMSAmJiB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KHRoaXMuZmllbGRzW2NoaWxkRmllbGRJZHhdLnByb3BlcnR5KT8udmFsdWU/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgaWR6OiBudW1iZXJbXSA9IFtdO1xyXG4gICAgICAgICAgICBjb25zdCBwYXJhbTogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlICYmIEFycmF5LmlzQXJyYXkodGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUpXHJcbiAgICAgICAgICAgICAgJiYgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlLmZvckVhY2goKGE6IHtcclxuICAgICAgICAgICAgICAgIGNoYW5uZWxJZDogbnVtYmVyO1xyXG4gICAgICAgICAgICAgICAgZW5nbGlzaE5hbWU6IHN0cmluZztcclxuICAgICAgICAgICAgICAgIGlkOiBudW1iZXI7XHJcbiAgICAgICAgICAgICAgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGYuZmxhdHRlbkJ5U3ViQXR0cmlidXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgIGlkei5wdXNoKGFbZi5mbGF0dGVuQnlTdWJBdHRyaWJ1dGVdKTtcclxuICAgICAgICAgICAgICAgICAgcGFyYW0ucHVzaChhW2YuZmxhdHRlbkJ5U3ViQXR0cmlidXRlXSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZmllbGRzLmZpbmQocyA9PiBzLnByb3BlcnR5ID09PSAndGVybWluYWxJZCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgIGlkei5wdXNoKGEuY2hhbm5lbElkKTtcclxuICAgICAgICAgICAgICAgICAgcGFyYW0ucHVzaChhLmVuZ2xpc2hOYW1lKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIGlkei5wdXNoKGEuaWQpO1xyXG4gICAgICAgICAgICAgICAgICBwYXJhbS5wdXNoKGEuZW5nbGlzaE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgZmlsdGVyUmVxdWVzdC5maWx0ZXJzPy5wdXNoKG5ldyBGaWx0ZXIoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IGYucHJvcGVydHksIGZpZWxkTmFtZTogZi5wcm9wZXJ0eSwgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGYubGFiZWwpLFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0ZJTEVEX0ZJTFRFUicsIG9wZXJhdG9yOiBmLmZpbHRlck9wZXJhdG9yLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVPYmplY3Q6IGlkelxyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICBwYXJhbXNTdHJpbmcucHVzaCh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChmLmxhYmVsKSArICcgOiAnICsgcGFyYW0uam9pbignLCcpKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZSAmJiBmLmZsYXR0ZW5CeVN1YkF0dHJpYnV0ZSkge1xyXG4gICAgICAgICAgICAgIGZpbHRlclJlcXVlc3QuZmlsdGVycz8ucHVzaChuZXcgRmlsdGVyKHtcclxuICAgICAgICAgICAgICAgIGlkOiBmLnByb3BlcnR5LCBmaWVsZE5hbWU6IGYucHJvcGVydHksIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChmLmxhYmVsKSxcclxuICAgICAgICAgICAgICAgIGZpbHRlclR5cGU6ICdGSUxFRF9GSUxURVInLCBvcGVyYXRvcjogZi5maWx0ZXJPcGVyYXRvcixcclxuICAgICAgICAgICAgICAgIHZhbHVlT2JqZWN0OiB0aGlzLmdldFBhcmFtVmFsdWUoZilbZi5mbGF0dGVuQnlTdWJBdHRyaWJ1dGVdXHJcbiAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUgIT09IG51bGwgJiZcclxuICAgICAgICAgICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAgICAgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUgIT09IFwiXCIpIHtcclxuICAgICAgICAgICAgICBmaWx0ZXJSZXF1ZXN0LmZpbHRlcnM/LnB1c2gobmV3IEZpbHRlcih7XHJcbiAgICAgICAgICAgICAgICBpZDogZi5wcm9wZXJ0eSwgZmllbGROYW1lOiBmLnByb3BlcnR5LCBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZi5sYWJlbCksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlOiAnRklMRURfRklMVEVSJywgb3BlcmF0b3I6IGYuZmlsdGVyT3BlcmF0b3IsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZU9iamVjdDogdGhpcy5nZXRQYXJhbVZhbHVlKGYpXHJcbiAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHBhcmFtc1N0cmluZy5wdXNoKHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGYubGFiZWwpICsgJyA6ICcgKyB0aGlzLmdldFBhcmFtVmFsdWVMYWJlbChmKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfX0pXHJcbiAgICAgICAgY29uc3QgcmVwb3J0UmVxdWVzdCA9IHRoaXMuYmFja2VuZFNlcnZpY2UuYnVpbGRSZXBvcnRSZXF1ZXN0KHRoaXMuY29sdW1uc0RlZmluaXRpb24sIHRoaXMucGFnZUluZm8ubGFiZWxzU2VjdGlvbiArICcuJyArIHRoaXMucGFnZUluZm8uaWQsXHJcbiAgICAgICAgICBmaWx0ZXJSZXF1ZXN0LCB0eXBlLCB0aGlzLnBhZ2VJbmZvLCAnTEFORFNDQVBFJyk7XHJcbiAgICAgICAgcmVwb3J0UmVxdWVzdC5zZWFyY2hTdHIgPSBwYXJhbXNTdHJpbmcuam9pbignICwgJyk7XHJcbiAgICAgICAgdGhpcy5yZXBvcnRSZXF1ZXN0ID0gcmVwb3J0UmVxdWVzdDtcclxuICAgICAgICAvLyB0aGlzLmFjdGl2ZUxldmVsID0gMTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLnRvcFBhbmVsTWVzc2FnZSQubmV4dChuZXcgU25hY2tNZXNzYWdlKCdJTlZBTElEX1JFUE9SVF9GT1JNJywgdHJ1ZSwgJ2Vycm9yJykpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQYXJhbVZhbHVlKGY6IEZpZWxkSW5mbykge1xyXG4gICAgICAgIGlmIChmLnR5cGUgPT09ICdkYXRlJyAmJiB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZSh0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZSwgJ3l5eXktTU0tZGQnLCAnZW5fVVMnKVxyXG4gICAgICAgIH1lbHNlIGlmIChmLnR5cGUgPT09ICdjaGVja2JveCcpIHtcclxuICAgICAgICAgICAgcmV0dXJuICEhdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWU7XHJcbiAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UGFyYW1WYWx1ZUxhYmVsKGY6IEZpZWxkSW5mbykge1xyXG4gICAgICAgIGlmIChmLnR5cGUgPT09ICdjaGVja2JveCcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3llcycpIDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ25vJyk7XHJcbiAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICBnZXRUaXRsZSgpIHtcclxuICAgIGNvbnN0IHBhZ2VJbmZvTWFwID0ge1xyXG4gICAgICAxOiB0aGlzLnBhZ2VJbmZvLFxyXG4gICAgICAyOiB0aGlzLmRyaWxsRG93blBhZ2VJbmZvLFxyXG4gICAgICAzOiB0aGlzLmp1bmlvclBhZ2VJbmZvXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRJbmZvID0gcGFnZUluZm9NYXBbdGhpcy5hY3RpdmVMZXZlbF0gfHwgdGhpcy5wYWdlSW5mbztcclxuICAgIHJldHVybiBgJHtjdXJyZW50SW5mby5sYWJlbHNTZWN0aW9ufS4ke2N1cnJlbnRJbmZvLmlkfWA7XHJcbiAgfVxyXG5cclxuICAgIHVwZGF0ZUZvcm0oJGV2ZW50OiBGb3JtR3JvdXApIHtcclxuICAgICAgdGhpcy5yZXBvcnRGb3JtID0gJGV2ZW50O1xyXG4gICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0gPSAkZXZlbnQ7XHJcblxyXG4gICAgICB0aGlzLnNldHVwRGVwZW5kZW50RmllbGRXYXRjaGVycygpO1xyXG5cclxuICAgICAgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJlYWR5VG9TZWFyY2ggPSB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0udmFsaWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cERlcGVuZGVudEZpZWxkV2F0Y2hlcnMoKSB7XHJcbiAgICB0aGlzLmZpZWxkc1xyXG4gICAgICAuZmlsdGVyKGZpZWxkID0+IGZpZWxkLmxvb2t1cEZpbHRlckxpc3QgJiYgZmllbGQubG9va3VwRmlsdGVyTGlzdC5sZW5ndGggPiAwKVxyXG4gICAgICAuZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAgICAgY29uc3QgZGVwZW5kZW50RmllbGRzID0gZmllbGQubG9va3VwRmlsdGVyTGlzdC5tYXAoZiA9PiBmLmZpZWxkTmFtZSk7XHJcblxyXG4gICAgICAgIGRlcGVuZGVudEZpZWxkcy5mb3JFYWNoKGRlcGVuZGVudEZpZWxkTmFtZSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkZXBlbmRlbnRDb250cm9sID0gdGhpcy5yZXBvcnRGb3JtLmdldChkZXBlbmRlbnRGaWVsZE5hbWUpO1xyXG4gICAgICAgICAgaWYgKGRlcGVuZGVudENvbnRyb2wpIHtcclxuICAgICAgICAgICAgZGVwZW5kZW50Q29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCB0YXJnZXRDb250cm9sID0gdGhpcy5yZXBvcnRGb3JtLmdldChmaWVsZC5wcm9wZXJ0eSk7XHJcbiAgICAgICAgICAgICAgaWYgKHRhcmdldENvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgIHRhcmdldENvbnRyb2wuc2V0VmFsdWUoW10pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaXNWYWxpZEZvcm0oKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlYWR5VG9TZWFyY2ggO1xyXG5cclxuICAgIH1cclxuXHJcblxyXG5cclxuICBlbWl0VXNlckFjdGlvbigkZXZlbnQ6IFRhYmxlUGFnZVVzZXJBY3Rpb24pIHtcclxuICAgICRldmVudC5wYWdlSW5mbyA9IHRoaXMucGFnZUluZm87XHJcbiAgICB0aGlzLmRvQURyaWxsRG93bkFjdGlvbigkZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgZW1pdEh5cGVyTGlua0FjdGlvbigkZXZlbnQ6IFRhYmxlUGFnZVVzZXJBY3Rpb24pIHtcclxuICAgIGlmICghdGhpcy5zaG91bGRQcm9jZXNzRXZlbnRJdGVtKCRldmVudC5pdGVtKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGl0ZW0gPSAkZXZlbnQuaXRlbTtcclxuICAgIHRoaXMucHJlcGFyZURpYWxvZ1JlcG9ydFJlcXVlc3QoaXRlbSk7XHJcbiAgICBjb25zdCByZXBvcnRSZXF1ZXN0ID0gdGhpcy5idWlsZERpYWxvZ1JlcG9ydFJlcXVlc3QoKTtcclxuICAgIHJlcG9ydFJlcXVlc3QuZmlsdGVyUmVxdWVzdC5wYWdlSW5kZXggPSAwXHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJlcG9ydERldGFpbHNEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHBhZ2VJbmZvOiB0aGlzLmp1bmlvclBhZ2VJbmZvLFxyXG4gICAgICAgIHJlcXVlc3Q6IHJlcG9ydFJlcXVlc3QsXHJcbiAgICAgICAgY29sdW1uczogdGhpcy5qdW5pb3JDb2x1bW5zLFxyXG4gICAgICAgIGl0ZW0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGhlaWdodDogJzUwdncnLFxyXG4gICAgICBtYXhXaWR0aDogJzEyMHZ3JyxcclxuICAgICAgZGlyZWN0aW9uOiB0aGlzLmN1cnJlbnREaXJlY3Rpb24sXHJcbiAgICAgIGRpc2FibGVDbG9zZTogZmFsc2UsXHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5kb0h5cGVyTGlua0FjdGlvbigkZXZlbnQpKTtcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7fSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHByZXBhcmVEaWFsb2dSZXBvcnRSZXF1ZXN0KGl0ZW06IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0ID0gY2xvbmVEZWVwKHRoaXMucmVwb3J0UmVxdWVzdCk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlcG9ydFJlcXVlc3QuZmlsdGVyUmVxdWVzdCA9IHsgZmlsdGVyczogW10gfTtcclxuXHJcbiAgICB0aGlzLmFkZFN0YW5kYXJkRmlsdGVycyhpdGVtKTtcclxuICAgIHRoaXMuYWRkT3JSZXBsYWNlRmlsdGVyKCdpc2VjMScsICdpU2VjJywgaXRlbVsnaXNlY192YWx1ZSddKTtcclxuICAgIHRoaXMuYWRkRmlsdGVyVHlwZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRTdGFuZGFyZEZpbHRlcnMoaXRlbTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBzdGFuZGFyZEZpbHRlcnMgPSBbXHJcbiAgICAgIHsga2V5OiAncGVyaW9kJywgdmFsdWU6IGl0ZW1bJ3BlcmlvZCddIH0sXHJcbiAgICAgIHsga2V5OiAneWVhcicsIHZhbHVlOiBpdGVtWyd5ZWFyJ10gfSxcclxuICAgICAgeyBrZXk6ICdzZWN0b3InLCB2YWx1ZTogaXRlbVsnc2VjdG9yQ29kZSddIH0sXHJcbiAgICAgIHsga2V5OiAnZGlyZWN0b3JhdGUnLCB2YWx1ZTogaXRlbVsnZGlyZWN0b3JhdGVDb2RlJ10gfSxcclxuICAgICAgeyBrZXk6ICdzdWJUYXhSYXRlJywgdmFsdWU6IGl0ZW1bJ3RheF9yYXRlX2NvZGUnXSB9LFxyXG4gICAgXTtcclxuXHJcbiAgICBzdGFuZGFyZEZpbHRlcnMuZm9yRWFjaCgoeyBrZXksIHZhbHVlIH0pID0+XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0LmZpbHRlcnMucHVzaChcclxuICAgICAgICB0aGlzLmNyZWF0ZUZpbHRlcihrZXksIGtleSwgdmFsdWUpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZEZpbHRlclR5cGUoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpc1RheCA9IHRoaXMuZGlhbG9nUmVwb3J0UmVxdWVzdC5hY3Rpb25LZXk/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ3RheCcpO1xyXG4gICAgY29uc3QgZmlsdGVyVHlwZSA9IGlzVGF4ID8gJ1RBWCcgOiAnVkFMVUUnO1xyXG5cclxuICAgIHRoaXMuZGlhbG9nUmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0LmZpbHRlcnMucHVzaChcclxuICAgICAgdGhpcy5jcmVhdGVGaWx0ZXIoJ2ZpbHRlclR5cGUnLCAnZmlsdGVyVHlwZScsIGZpbHRlclR5cGUpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZERpYWxvZ1JlcG9ydFJlcXVlc3QoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRTZXJ2aWNlLmJ1aWxkUmVwb3J0UmVxdWVzdChcclxuICAgICAgdGhpcy5qdW5pb3JDb2x1bW5zLFxyXG4gICAgICBgJHt0aGlzLmp1bmlvclBhZ2VJbmZvLmxhYmVsc1NlY3Rpb259LiR7dGhpcy5qdW5pb3JQYWdlSW5mby5pZH1gLFxyXG4gICAgICB7IC4uLnRoaXMuZGlhbG9nUmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0IH0sXHJcbiAgICAgICcnLFxyXG4gICAgICB0aGlzLmp1bmlvclBhZ2VJbmZvLFxyXG4gICAgICAnTEFORFNDQVBFJ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRmlsdGVyKGtleTogc3RyaW5nLCBmaWVsZE5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IEZpbHRlciB7XHJcbiAgICByZXR1cm4gbmV3IEZpbHRlcih7XHJcbiAgICAgIGtleSxcclxuICAgICAgZmllbGROYW1lLFxyXG4gICAgICBsYWJlbDogJycsXHJcbiAgICAgIGZpbHRlclR5cGU6ICdGSUxFRF9GSUxURVInLFxyXG4gICAgICBvcGVyYXRvcjogJ0VRVUFMUycsXHJcbiAgICAgIHZhbHVlT2JqZWN0OiB2YWx1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRPclJlcGxhY2VGaWx0ZXIoaWQ6IHN0cmluZywgZmllbGROYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpbHRlciA9IG5ldyBGaWx0ZXIoe1xyXG4gICAgICBpZCxcclxuICAgICAgZmllbGROYW1lLFxyXG4gICAgICBsYWJlbDogJycsXHJcbiAgICAgIGZpbHRlclR5cGU6ICdGSUxFRF9GSUxURVInLFxyXG4gICAgICBvcGVyYXRvcjogJ0VRVUFMUycsXHJcbiAgICAgIHZhbHVlT2JqZWN0OiB2YWx1ZSxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLmRpYWxvZ1JlcG9ydFJlcXVlc3QuZmlsdGVyUmVxdWVzdC5maWx0ZXJzO1xyXG4gICAgY29uc3QgZXhpc3RpbmdJbmRleCA9IGZpbHRlcnMuZmluZEluZGV4KChmOiBGaWx0ZXIpID0+IGYuaWQgPT09IGlkKTtcclxuXHJcbiAgICBpZiAoZXhpc3RpbmdJbmRleCAhPT0gLTEpIHtcclxuICAgICAgZmlsdGVycy5zcGxpY2UoZXhpc3RpbmdJbmRleCwgMSwgZmlsdGVyKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZpbHRlcnMucHVzaChmaWx0ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuICBlbWl0SnVuaW9yQWN0aW9uKCRldmVudDogVGFibGVQYWdlVXNlckFjdGlvbikge1xyXG4gICAgY29uc3QganVuaW9yQWN0aW9uID0gSlVOSU9SX0RPV05fQUNUSU9OO1xyXG4gICAganVuaW9yQWN0aW9uLnBhZ2VJbmZvID0gdGhpcy5kcmlsbERvd25QYWdlSW5mbztcclxuICAgIHRoaXMuZG9KdW5pb3JBY3Rpb24oJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGRyaWxsRG93bigpIHtcclxuICAgIGNvbnN0IGRyaWxsZG93bmFjdGlvbiA9IERSSUxMX0RPV05fQUNUSU9OO1xyXG4gICAgZHJpbGxkb3duYWN0aW9uLnBhZ2VJbmZvID0gdGhpcy5kcmlsbERvd25QYWdlSW5mbztcclxuICAgIHRoaXMuZG9BRHJpbGxEb3duQWN0aW9uKGRyaWxsZG93bmFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRvSnVuaW9yQWN0aW9uKCRldmVudDogVGFibGVQYWdlVXNlckFjdGlvbikge1xyXG4gICAgaWYgKHRoaXMuanVuaW9yQ29sdW1ucyAmJiB0aGlzLmp1bmlvclBhZ2VJbmZvKSB7XHJcbiAgICAgIGlmICh0aGlzLmVucmljaEp1bmlvclJlcG9ydFJlcXVlc3QpIHtcclxuICAgICAgICBpZiAodGhpcy5hY3RpdmVMZXZlbCA9PT0gMikge1xyXG4gICAgICAgICAgdGhpcy5pc0VkaXRhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVFeHBvcnRBY3Rpb24gPSB0aGlzLmp1bmlvclBhZ2VJbmZvLmhpZGVSZXBvcnRzRXh0cmFjdEJ1dHRvbiB8fCBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuanVuaW9yUmVwb3J0UmVxdWVzdCA9IHRoaXMuYmFja2VuZFNlcnZpY2UuYnVpbGRSZXBvcnRSZXF1ZXN0KHRoaXMuanVuaW9yQ29sdW1ucyxcclxuICAgICAgICAgICAgdGhpcy5qdW5pb3JQYWdlSW5mby5sYWJlbHNTZWN0aW9uICsgJy4nICsgdGhpcy5qdW5pb3JQYWdlSW5mby5pZCxcclxuICAgICAgICAgICAgdGhpcy5yZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsICcnLCB0aGlzLmp1bmlvclBhZ2VJbmZvLCAnTEFORFNDQVBFJyk7XHJcbiAgICAgICAgICB0aGlzLmVucmljaEp1bmlvclJlcG9ydFJlcXVlc3QoJGV2ZW50LCB0aGlzLmp1bmlvclJlcG9ydFJlcXVlc3QpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFjdGl2ZUxldmVsID0gdGhpcy5hY3RpdmVMZXZlbCArMTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBkb0FEcmlsbERvd25BY3Rpb24oJGV2ZW50OiBUYWJsZVBhZ2VVc2VyQWN0aW9uKSB7XHJcbiAgICBpZiAodGhpcy5kcmlsbERvd25Db2x1bW5zICYmIHRoaXMuZHJpbGxEb3duUGFnZUluZm8pIHtcclxuICAgICAgaWYgKHRoaXMuZW5yaWNoRHJpbGxEb3duUmVwb3J0UmVxdWVzdCkge1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUxldmVsID09PSAxKSB7XHJcbiAgICAgICAgICB0aGlzLmlzRWRpdGFibGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuY2hpbGRSZXBvcnRSZXF1ZXN0ID0gdGhpcy5iYWNrZW5kU2VydmljZS5idWlsZFJlcG9ydFJlcXVlc3QodGhpcy5kcmlsbERvd25Db2x1bW5zLFxyXG4gICAgICAgICAgICB0aGlzLmRyaWxsRG93blBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24gKyAnLicgKyB0aGlzLmRyaWxsRG93blBhZ2VJbmZvLmlkLFxyXG4gICAgICAgICAgICB0aGlzLnJlcG9ydFJlcXVlc3QuZmlsdGVyUmVxdWVzdCwgJycsIHRoaXMuZHJpbGxEb3duUGFnZUluZm8sICdMQU5EU0NBUEUnKTtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUV4cG9ydEFjdGlvbiA9IHRoaXMuZHJpbGxEb3duUGFnZUluZm8uaGlkZVJlcG9ydHNFeHRyYWN0QnV0dG9uIHx8IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5lbnJpY2hEcmlsbERvd25SZXBvcnRSZXF1ZXN0KCRldmVudCwgdGhpcy5jaGlsZFJlcG9ydFJlcXVlc3QpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFjdGl2ZUxldmVsID0gdGhpcy5hY3RpdmVMZXZlbCArMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZG9IeXBlckxpbmtBY3Rpb24oJGV2ZW50OiBUYWJsZVBhZ2VVc2VyQWN0aW9uKSB7XHJcbiAgICBpZiAodGhpcy5lbnJpY2hIeXBlckxpbmtSZXBvcnRSZXF1ZXN0KSB7XHJcbiAgICAgICAgICB0aGlzLmp1bmlvclJlcG9ydFJlcXVlc3QgPSB0aGlzLmJhY2tlbmRTZXJ2aWNlLmJ1aWxkUmVwb3J0UmVxdWVzdCh0aGlzLmp1bmlvckNvbHVtbnMsXHJcbiAgICAgICAgICAgIHRoaXMuanVuaW9yUGFnZUluZm8ubGFiZWxzU2VjdGlvbiArICcuJyArIHRoaXMuanVuaW9yUGFnZUluZm8uaWQsXHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0LCAnJywgdGhpcy5qdW5pb3JQYWdlSW5mbywgJ0xBTkRTQ0FQRScpO1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlRXhwb3J0QWN0aW9uID0gdGhpcy5qdW5pb3JQYWdlSW5mby5oaWRlUmVwb3J0c0V4dHJhY3RCdXR0b24gfHwgZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmVucmljaEh5cGVyTGlua1JlcG9ydFJlcXVlc3QoJGV2ZW50LCB0aGlzLmp1bmlvclJlcG9ydFJlcXVlc3QpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXh0cmFjdFJlcG9ydChyZXBvcnRUeXBlOiBhbnkpIHtcclxuICAgICAgaWYgKHRoaXMuYWN0aXZlTGV2ZWwgPT09IDEpIHtcclxuICAgICAgICB0aGlzLnJlcG9ydFJlcXVlc3QucmVwb3J0VHlwZSA9IHJlcG9ydFR5cGU7XHJcbiAgICAgICAgdGhpcy5iYWNrZW5kU2VydmljZS5kb3dubG9hZFJlcG9ydCh0aGlzLnJlcG9ydFJlcXVlc3QsIHRoaXMucGFnZUluZm8uYXBpVXJpICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5hY3RpdmVMZXZlbCA9PT0gMikge1xyXG4gICAgICAgIHRoaXMuY2hpbGRSZXBvcnRSZXF1ZXN0LnJlcG9ydFR5cGUgPSByZXBvcnRUeXBlO1xyXG4gICAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UuZG93bmxvYWRSZXBvcnQodGhpcy5jaGlsZFJlcG9ydFJlcXVlc3QsIHRoaXMuZHJpbGxEb3duUGFnZUluZm8uYXBpVXJpICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5hY3RpdmVMZXZlbCA9PT0gMykge1xyXG4gICAgICAgIHRoaXMuanVuaW9yUmVwb3J0UmVxdWVzdC5yZXBvcnRUeXBlID0gcmVwb3J0VHlwZTtcclxuICAgICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLmRvd25sb2FkUmVwb3J0KHRoaXMuanVuaW9yUmVwb3J0UmVxdWVzdCwgdGhpcy5qdW5pb3JQYWdlSW5mby5hcGlVcmkgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICBnb1VwKCkge1xyXG4gICAgdGhpcy5pc0VkaXRhYmxlID0gdHJ1ZTtcclxuICAgIHRoaXMuYWN0aXZlTGV2ZWwgPSB0aGlzLmFjdGl2ZUxldmVsIC0xO1xyXG4gICAgdGhpcy5kb0FjdGlvbih0aGlzLngpO1xyXG4gICAgdGhpcy5yZWxvYWREYXRhID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZUxldmVsID4xKSB7XHJcbiAgICAgIHRoaXMuaXNFZGl0YWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kaXNhYmxlRXhwb3J0QWN0aW9uID0gZmFsc2VcclxuICB9XHJcblxyXG4gIGRyaWxsRG93bkVuYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kcmlsbERvd25QYWdlSW5mbyAmJiAhdGhpcy5oaWRlRHJpbGxEb3duQnV0dG9uICYmICF0aGlzLmdldElzRW1wdHlMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBkcmlsbERvd25MYWJlbCgpIHtcclxuICAgIHJldHVybiBgJHt0aGlzLnBhZ2VJbmZvLmxhYmVsc1NlY3Rpb259LmRyaWxsRG93bkxhYmVsYCA7XHJcbiAgfVxyXG4gIGdldElzRW1wdHlMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFNlcnZpY2UuaXNFbXB0eUl0ZW1zIHx8IHRoaXMuZGlzYWJsZUV4cG9ydEFjdGlvbiA9PT0gdHJ1ZTtcclxuICB9XHJcbiAgY2xlYXIoKSB7XHJcbiAgICBjb25zdCBjdXJyZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnLycsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbY3VycmVudFVybF0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gaWYgKHRoaXMucmVwb3J0Rm9ybSkge1xyXG4gICAgLy8gICB0aGlzLnJlcG9ydEZvcm0ucmVzZXQoKTtcclxuICAgIC8vXHJcbiAgICAvLyAgIHRoaXMuZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgLy8gICAgIGlmIChmaWVsZC50eXBlID09PSAnbG9va3VwJyB8fCBmaWVsZC50eXBlID09PSAnbXVsdGktc2VsZWN0Jykge1xyXG4gICAgLy8gICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMucmVwb3J0Rm9ybS5nZXQoZmllbGQucHJvcGVydHkpO1xyXG4gICAgLy8gICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgIC8vICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShbXSk7XHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9KTtcclxuICAgIC8vIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgaXNGb3JtRW1wdHkoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMucmVwb3J0Rm9ybSB8fCAhdGhpcy5yZXBvcnRGb3JtLnZhbHVlKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMucmVwb3J0Rm9ybS52YWx1ZSkuZXZlcnkodmFsdWUgPT4ge1xyXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwO1xyXG5cclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNob3VsZFByb2Nlc3NFdmVudEl0ZW0oaXRlbTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBncm91cEJ5UHJvcCA9IHRoaXMucGFnZUluZm8/Lmdyb3VwQnlQcm9wZXJ0eTtcclxuICAgIGNvbnN0IGdyb3VwQnlWYWx1ZXMgPSB0aGlzLnBhZ2VJbmZvPy5ncm91cEJ5VmFsdWU7XHJcblxyXG4gICAgaWYgKCFncm91cEJ5UHJvcCB8fCAhZ3JvdXBCeVZhbHVlcyB8fCAhaXRlbVtncm91cEJ5UHJvcF0pIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdmFsdWUgPSBpdGVtW2dyb3VwQnlQcm9wXS50b1N0cmluZygpO1xyXG5cclxuICAgIHJldHVybiAhZ3JvdXBCeVZhbHVlcy5zb21lKHYgPT4gdmFsdWUuaW5jbHVkZXModikgJiYgdmFsdWUubGVuZ3RoID49IHYubGVuZ3RoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbHVtbiBmdWxsLXdpZHRoXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24tc3RhcnQtY2VudGVyXCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxMHB4O1wiPlxyXG4gICAgPGFwcC10aXRsZS1iYXIgW3BhZ2VUaXRsZV09XCJnZXRUaXRsZSgpXCIgW25ld0FjdGlvbl09XCJmYWxzZVwiPjwvYXBwLXRpdGxlLWJhcj5cclxuXHJcbiAgICA8bWF0LWljb25cclxuICAgICAgKm5nSWY9XCJwYWdlSW5mbz8uaGFzSGludFwiXHJcbiAgICAgIFttYXRUb29sdGlwXT1cInBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24gKyAnLmhpbnQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxyXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICBjbGFzcz1cImhpbnQtaWNvblwiXHJcbiAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10b29sdGlwXCI+XHJcbiAgICAgIGhlbHBfb3V0bGluZVxyXG4gICAgPC9tYXQtaWNvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGFwcC1iYXNlLWZvcm0tY2FudmFzXHJcbiAgICBbcGFnZUluZm9dPVwicGFnZUluZm9cIlxyXG4gICAgW2ZpZWxkc109XCJmaWVsZHNcIlxyXG4gICAgW2VkaXRhYmxlXT1cImlzRWRpdGFibGVcIlxyXG4gICAgW2Vycm9yc109XCJlcnJvcnNcIlxyXG4gICAgW2l0ZW1dPVwidGhpcy5yZXBvcnRGb3JtPy52YWx1ZSB8fCB7fVwiXHJcbiAgICAoZm9ybVVwZGF0ZWQpPVwidXBkYXRlRm9ybSgkZXZlbnQpXCJcclxuICA+PC9hcHAtYmFzZS1mb3JtLWNhbnZhcz5cclxuXHJcbiAgPGJyPjxicj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBnYXAtMTAgcmVzcG9uc2l2ZS1yb3dcIj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZUxldmVsID09PSAxXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJkb0FjdGlvbih4KVwiIFtkaXNhYmxlZF09XCIhaXNWYWxpZEZvcm0oKVwiIGlkPVwicmVwb3J0LWdlbmVyYXRlLWJ0blwiPlxyXG4gICAgICAgIHt7ICdSRVBPUlRTLmdlbmVyYXRlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBbZGlzYWJsZWRdPVwiZ2V0SXNFbXB0eUxpc3QoKVwiIGNvbG9yPVwicHJpbWFyeVwiIGlkPVwicmVwb3J0LWV4dHJhY3QtdHJpZ2dlclwiPlxyXG4gICAgICAgIHt7ICdleHRyYWN0JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImV4cGFuZF9tb3JlIGFjdGlvbkJ1dHRvbl9fZXhwYW5kXCI+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJjbGVhcigpXCIgW2Rpc2FibGVkXT1cImlzRm9ybUVtcHR5KCkgfHwgYWN0aXZlTGV2ZWwgPiAxXCIgaWQ9XCJyZXBvcnQtY2xlYXItYnRuXCI+XHJcbiAgICAgICAge3sgJ1JFUE9SVFMuY2xlYXInIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZUxldmVsID09PSAxICYmIGRyaWxsRG93bkVuYWJsZWQoKVwiIGNvbG9yPVwid2FyblwiIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiZHJpbGxEb3duKClcIiBpZD1cInJlcG9ydC1kcmlsbGRvd24tYnRuXCI+XHJcbiAgICAgICAge3sgZHJpbGxEb3duTGFiZWwoKSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgIDxidXR0b24gKm5nSWY9XCJhY3RpdmVMZXZlbCA+IDEgJiYgYmFja0J1dHRvbkVuYWJsZWRcIiBjb2xvcj1cIndhcm5cIiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImdvVXAoKVwiIGlkPVwicmVwb3J0LXVwLWJ0blwiPlxyXG4gICAgICAgIHt7ICdSRVBPUlRTLnVwJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPj0gMVwiIGNsYXNzPVwibWFpbi1mb3JtLWNhbnZhcyByb3cgYWxpZ24tc3RhcnQtc3RhcnQgcmVzcG9uc2l2ZS10YWJsZVwiIHN0eWxlPVwibWFyZ2luLXRvcDogM3ZoO1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBmdWxsLXdpZHRoXCI+XHJcbiAgICAgIDxhcHAtYmFzZS10YWJsZVxyXG4gICAgICAgICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPT09IDFcIlxyXG4gICAgICAgIFtwYWdlSW5mb109XCJwYWdlSW5mb1wiXHJcbiAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc0RlZmluaXRpb25cIlxyXG4gICAgICAgIFtlbmZvcmNlUmVmcmVzaF09XCJyZWxvYWREYXRhXCJcclxuICAgICAgICBpZD1cInBhcmVudFwiXHJcbiAgICAgICAgW3JlcG9ydFJlcXVlc3RdPVwicmVwb3J0UmVxdWVzdFwiXHJcbiAgICAgICAgKHVzZXJBY3Rpb24pPVwiZW1pdFVzZXJBY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgKGh5cGVyTGlua0FjdGlvbik9XCJlbWl0SHlwZXJMaW5rQWN0aW9uKCRldmVudClcIj5cclxuICAgICAgPC9hcHAtYmFzZS10YWJsZT5cclxuXHJcbiAgICAgIDxhcHAtYmFzZS10YWJsZVxyXG4gICAgICAgICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPT09IDJcIlxyXG4gICAgICAgIFtwYWdlSW5mb109XCJkcmlsbERvd25QYWdlSW5mb1wiXHJcbiAgICAgICAgW2NvbHVtbnNdPVwiZHJpbGxEb3duQ29sdW1uc1wiXHJcbiAgICAgICAgaWQ9XCJjaGlsZFwiXHJcbiAgICAgICAgW3JlcG9ydFJlcXVlc3RdPVwiY2hpbGRSZXBvcnRSZXF1ZXN0XCJcclxuICAgICAgICAodXNlckFjdGlvbik9XCJlbWl0SnVuaW9yQWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgIChoeXBlckxpbmtBY3Rpb24pPVwiZW1pdEh5cGVyTGlua0FjdGlvbigkZXZlbnQpXCI+XHJcbiAgICAgIDwvYXBwLWJhc2UtdGFibGU+XHJcblxyXG4gICAgICA8YXBwLWJhc2UtdGFibGVcclxuICAgICAgICAqbmdJZj1cImFjdGl2ZUxldmVsID09PSAzXCJcclxuICAgICAgICBbcGFnZUluZm9dPVwianVuaW9yUGFnZUluZm9cIlxyXG4gICAgICAgIFtjb2x1bW5zXT1cImp1bmlvckNvbHVtbnNcIlxyXG4gICAgICAgIGlkPVwianVuaW9yXCJcclxuICAgICAgICBbcmVwb3J0UmVxdWVzdF09XCJqdW5pb3JSZXBvcnRSZXF1ZXN0XCI+XHJcbiAgICAgIDwvYXBwLWJhc2UtdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IHR5cGUgb2YgdHlwZXNcIiAoY2xpY2spPVwiZXh0cmFjdFJlcG9ydCh0eXBlKVwiIFthdHRyLmlkXT1cIidyZXBvcnQtZXh0cmFjdC1pdGVtLScgKyB0eXBlXCI+XHJcbiAgICB7eyB0eXBlIH19XHJcbiAgPC9idXR0b24+XHJcbjwvbWF0LW1lbnU+XHJcbiJdfQ==
|
|
@@ -36,7 +36,7 @@ export class SectionFormCanvasComponent {
|
|
|
36
36
|
return this.buttons.filter(btn => btn.id !== 'download');
|
|
37
37
|
}
|
|
38
38
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionFormCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SectionFormCanvasComponent, isStandalone: true, selector: "lib-section-form-canvas", inputs: { pageInfo: "pageInfo", fields: "fields", itemId: "itemId", editable: "editable", hideBackButton: "hideBackButton", item: "item", title: "title", subtitle: "subtitle", isTranslateTitle: "isTranslateTitle", isTranslateSubtitle: "isTranslateSubtitle", key: "key", hideToggle: "hideToggle", isExpanded: "isExpanded", alwaysOpen: "alwaysOpen", buttons: "buttons", itemStatus: "itemStatus" }, outputs: { actionEdit: "actionEdit", formEdit: "formEdit", buttonClicked: "buttonClicked" }, ngImport: i0, template: "<mat-expansion-panel class=\"location-card\"\r\n #panel=\"matExpansionPanel\"\r\n [expanded]=\"isExpanded\"\r\n [hideToggle]=\"hideToggle\"\r\n (opened)=\"alwaysOpen ? panel.open() : null\"\r\n (closed)=\"alwaysOpen ? panel.open() : null\">\r\n <mat-expansion-panel-header class=\"card-header\" (click)=\"toggleExpand()\">\r\n <mat-panel-title>\r\n <div class=\"title-container\">\r\n <h3 class=\"card-title\" *ngIf=\"isTranslateTitle\">\r\n {{ pageInfo.labelsSection + '.' + title | translate }}\r\n </h3>\r\n <h3 class=\"card-title\" *ngIf=\"!isTranslateTitle\">{{ title }}</h3>\r\n <p class=\"card-subtitle\" *ngIf=\"subtitle\">\r\n <span *ngIf=\"isTranslateSubtitle\">{{ pageInfo.labelsSection + '.' + subtitle | translate }}</span>\r\n <span *ngIf=\"!isTranslateSubtitle\">{{ subtitle }}</span>\r\n </p>\r\n <button mat-button *ngIf=\"itemStatus\" class=\"stateType\" [ngClass]=\"itemStatus\">\r\n {{ pageInfo.labelsSection + '.' + itemStatus | translate }}\r\n </button>\r\n </div>\r\n </mat-panel-title>\r\n\r\n <mat-panel-description class=\"panel-description\" *ngIf=\"buttons && buttons.length > 0\">\r\n <div class=\"row flex-auto buttons-wrapper desktop-buttons\" [class.show-on-mobile]=\"!getDownloadButton()\">\r\n <button\r\n mat-flat-button\r\n *ngFor=\"let btn of buttons\"\r\n type=\"button\"\r\n [color]=\"btn.color || 'primary'\"\r\n (click)=\"onButtonClick(btn , key); $event.stopPropagation()\"\r\n class=\"btn-none-background-primary action\"\r\n [attr.id]=\"btn.id || ('section-btn-' + (btn.action || btn.label || btn.key))\"\r\n >\r\n <div class=\"button-text\">\r\n <mat-icon *ngIf=\"btn.icon\">{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </div>\r\n </button>\r\n </div>\r\n \r\n <div class=\"mobile-buttons\" *ngIf=\"getDownloadButton()\">\r\n <button\r\n mat-flat-button\r\n type=\"button\"\r\n color=\"primary\"\r\n (click)=\"onButtonClick(getDownloadButton()!, key); $event.stopPropagation()\"\r\n class=\"btn-download-mobile\"\r\n [attr.id]=\"getDownloadButton()?.id\"\r\n >\r\n <mat-icon>{{ getDownloadButton()?.icon }}</mat-icon>\r\n </button>\r\n <button\r\n *ngIf=\"getMenuButtons().length > 0\"\r\n mat-stroked-button\r\n type=\"button\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"btn-menu-mobile\"\r\n >\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n mat-menu-item\r\n *ngFor=\"let btn of getMenuButtons()\"\r\n (click)=\"onButtonClick(btn, key); $event.stopPropagation()\"\r\n [attr.id]=\"btn.id\"\r\n >\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div class=\"panel-body\">\r\n <hr class=\"divider\"/>\r\n <ng-content></ng-content>\r\n <app-base-form-canvas\r\n [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [editable]=\"editable\"\r\n [item]=\"item\"\r\n (formUpdated)=\"formUpdated($event)\"\r\n ></app-base-form-canvas>\r\n </div>\r\n</mat-expansion-panel>\r\n", styles: [".location-card{border:1px solid #dcdcdc;border-radius:8px;background:#fff;margin:18px auto;overflow:hidden}.location-card .mat-expansion-panel-header{padding:0 15px}.location-card .mat-expansion-panel-header ::ng-deep .mat-content{margin:0!important}.location-card .panel-body{padding:20px 15px;padding-top:0!important}.location-card .panel-body ::ng-deep app-base-form-canvas .main-form-canvas{margin-top:20px!important}.location-card .panel-description{justify-content:end!important;margin:0!important}.location-card .card-header{display:flex;justify-content:space-between;align-items:center;padding:
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SectionFormCanvasComponent, isStandalone: true, selector: "lib-section-form-canvas", inputs: { pageInfo: "pageInfo", fields: "fields", itemId: "itemId", editable: "editable", hideBackButton: "hideBackButton", item: "item", title: "title", subtitle: "subtitle", isTranslateTitle: "isTranslateTitle", isTranslateSubtitle: "isTranslateSubtitle", key: "key", hideToggle: "hideToggle", isExpanded: "isExpanded", alwaysOpen: "alwaysOpen", buttons: "buttons", itemStatus: "itemStatus" }, outputs: { actionEdit: "actionEdit", formEdit: "formEdit", buttonClicked: "buttonClicked" }, ngImport: i0, template: "<mat-expansion-panel class=\"location-card\"\r\n #panel=\"matExpansionPanel\"\r\n [expanded]=\"isExpanded\"\r\n [hideToggle]=\"hideToggle\"\r\n (opened)=\"alwaysOpen ? panel.open() : null\"\r\n (closed)=\"alwaysOpen ? panel.open() : null\">\r\n <mat-expansion-panel-header class=\"card-header\" (click)=\"toggleExpand()\">\r\n <mat-panel-title>\r\n <div class=\"title-container\">\r\n <h3 class=\"card-title\" *ngIf=\"isTranslateTitle\">\r\n {{ pageInfo.labelsSection + '.' + title | translate }}\r\n </h3>\r\n <h3 class=\"card-title\" *ngIf=\"!isTranslateTitle\">{{ title }}</h3>\r\n <p class=\"card-subtitle\" *ngIf=\"subtitle\">\r\n <span *ngIf=\"isTranslateSubtitle\">{{ pageInfo.labelsSection + '.' + subtitle | translate }}</span>\r\n <span *ngIf=\"!isTranslateSubtitle\">{{ subtitle }}</span>\r\n </p>\r\n <button mat-button *ngIf=\"itemStatus\" class=\"stateType\" [ngClass]=\"itemStatus\">\r\n {{ pageInfo.labelsSection + '.' + itemStatus | translate }}\r\n </button>\r\n </div>\r\n </mat-panel-title>\r\n\r\n <mat-panel-description class=\"panel-description\" *ngIf=\"buttons && buttons.length > 0\">\r\n <div class=\"row flex-auto buttons-wrapper desktop-buttons\" [class.show-on-mobile]=\"!getDownloadButton()\">\r\n <button\r\n mat-flat-button\r\n *ngFor=\"let btn of buttons\"\r\n type=\"button\"\r\n [color]=\"btn.color || 'primary'\"\r\n (click)=\"onButtonClick(btn , key); $event.stopPropagation()\"\r\n class=\"btn-none-background-primary action\"\r\n [attr.id]=\"btn.id || ('section-btn-' + (btn.action || btn.label || btn.key))\"\r\n >\r\n <div class=\"button-text\">\r\n <mat-icon *ngIf=\"btn.icon\">{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </div>\r\n </button>\r\n </div>\r\n \r\n <div class=\"mobile-buttons\" *ngIf=\"getDownloadButton()\">\r\n <button\r\n mat-flat-button\r\n type=\"button\"\r\n color=\"primary\"\r\n (click)=\"onButtonClick(getDownloadButton()!, key); $event.stopPropagation()\"\r\n class=\"btn-download-mobile\"\r\n [attr.id]=\"getDownloadButton()?.id\"\r\n >\r\n <mat-icon>{{ getDownloadButton()?.icon }}</mat-icon>\r\n </button>\r\n <button\r\n *ngIf=\"getMenuButtons().length > 0\"\r\n mat-stroked-button\r\n type=\"button\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"btn-menu-mobile\"\r\n >\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n mat-menu-item\r\n *ngFor=\"let btn of getMenuButtons()\"\r\n (click)=\"onButtonClick(btn, key); $event.stopPropagation()\"\r\n [attr.id]=\"btn.id\"\r\n >\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div class=\"panel-body\">\r\n <hr class=\"divider\"/>\r\n <ng-content></ng-content>\r\n <app-base-form-canvas\r\n [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [editable]=\"editable\"\r\n [item]=\"item\"\r\n (formUpdated)=\"formUpdated($event)\"\r\n ></app-base-form-canvas>\r\n </div>\r\n</mat-expansion-panel>\r\n", styles: [".location-card{border:1px solid #dcdcdc;border-radius:8px;background:#fff;margin:18px auto;overflow:hidden}.location-card .mat-expansion-panel-header{padding:0 15px}.location-card .mat-expansion-panel-header ::ng-deep .mat-content{margin:0!important}.location-card .panel-body{padding:20px 15px;padding-top:0!important}.location-card .panel-body ::ng-deep app-base-form-canvas .main-form-canvas{margin-top:20px!important}.location-card .panel-description{justify-content:end!important;margin:0!important}.location-card .card-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px!important}.location-card .card-header .title-container{display:flex;flex-direction:column;gap:8px;align-items:flex-start;justify-content:center}.location-card .card-header .card-title{margin:0;font-size:24px;font-weight:700;line-height:1.2;color:#000;width:fit-content;white-space:nowrap}.location-card .card-header .card-subtitle{margin:0;font-family:lusail-light,sans-serif;font-weight:300;font-size:16px;line-height:1.2;color:#888;width:fit-content}.location-card .card-header .btn-edit{width:120px;min-height:32px!important;border-radius:9999px!important;font-size:16px!important}.location-card .card-header .expand-icon{color:#339dff;font-size:16px}.location-card .divider{border:none;border-top:2px solid var(--primary-color-3nd);margin-bottom:20px;margin-top:0}.flex-auto{flex:1 1 auto;display:flex;flex-direction:column}.row{display:flex;flex-direction:row;width:100%}.gap-20{gap:20px}.buttons-wrapper{display:flex;text-align-last:end;margin:0!important;gap:16px;justify-content:flex-end}.buttons-wrapper .action{min-height:44px!important;min-width:135px!important;width:auto!important}.button-text span{font-size:18px}.button-text mat-icon{font-size:18px!important}.btn-none-background-primary{margin:0!important}@media (max-width: 768px){.desktop-buttons{display:none!important}.desktop-buttons.show-on-mobile{display:flex!important}.mobile-buttons{display:flex;gap:12px;align-items:center;justify-content:flex-end}.btn-download-mobile{width:45px!important;height:44px!important;min-width:45px!important;padding:0!important;border-radius:8px!important;background:#0d4261!important;display:flex;align-items:center;justify-content:center}.btn-download-mobile mat-icon{color:#fff!important;font-size:24px!important;width:24px!important;height:28px!important;margin:0!important}.btn-download-mobile .mdc-button__label{padding:0!important}.btn-menu-mobile{width:44px!important;height:44px!important;min-width:44px!important;padding:0!important;border-radius:8px!important;border:1px solid #3e627b!important;background:#fff!important;display:flex;align-items:center;justify-content:center}.btn-menu-mobile mat-icon{color:#0d4261!important;font-size:24px!important;width:25px!important;height:24px!important;margin:0!important;rotate:90deg}.btn-menu-mobile .mdc-button__label{padding:0!important}}@media (min-width: 769px){.mobile-buttons{display:none!important}}@media (max-width: 600px){::ng-deep .main-form-canvas{display:block!important}}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { 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: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "component", type: MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: "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: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }] }); }
|
|
40
40
|
}
|
|
41
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionFormCanvasComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
@@ -56,7 +56,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
56
56
|
MatMenu,
|
|
57
57
|
MatMenuTrigger,
|
|
58
58
|
MatMenuItem
|
|
59
|
-
], template: "<mat-expansion-panel class=\"location-card\"\r\n #panel=\"matExpansionPanel\"\r\n [expanded]=\"isExpanded\"\r\n [hideToggle]=\"hideToggle\"\r\n (opened)=\"alwaysOpen ? panel.open() : null\"\r\n (closed)=\"alwaysOpen ? panel.open() : null\">\r\n <mat-expansion-panel-header class=\"card-header\" (click)=\"toggleExpand()\">\r\n <mat-panel-title>\r\n <div class=\"title-container\">\r\n <h3 class=\"card-title\" *ngIf=\"isTranslateTitle\">\r\n {{ pageInfo.labelsSection + '.' + title | translate }}\r\n </h3>\r\n <h3 class=\"card-title\" *ngIf=\"!isTranslateTitle\">{{ title }}</h3>\r\n <p class=\"card-subtitle\" *ngIf=\"subtitle\">\r\n <span *ngIf=\"isTranslateSubtitle\">{{ pageInfo.labelsSection + '.' + subtitle | translate }}</span>\r\n <span *ngIf=\"!isTranslateSubtitle\">{{ subtitle }}</span>\r\n </p>\r\n <button mat-button *ngIf=\"itemStatus\" class=\"stateType\" [ngClass]=\"itemStatus\">\r\n {{ pageInfo.labelsSection + '.' + itemStatus | translate }}\r\n </button>\r\n </div>\r\n </mat-panel-title>\r\n\r\n <mat-panel-description class=\"panel-description\" *ngIf=\"buttons && buttons.length > 0\">\r\n <div class=\"row flex-auto buttons-wrapper desktop-buttons\" [class.show-on-mobile]=\"!getDownloadButton()\">\r\n <button\r\n mat-flat-button\r\n *ngFor=\"let btn of buttons\"\r\n type=\"button\"\r\n [color]=\"btn.color || 'primary'\"\r\n (click)=\"onButtonClick(btn , key); $event.stopPropagation()\"\r\n class=\"btn-none-background-primary action\"\r\n [attr.id]=\"btn.id || ('section-btn-' + (btn.action || btn.label || btn.key))\"\r\n >\r\n <div class=\"button-text\">\r\n <mat-icon *ngIf=\"btn.icon\">{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </div>\r\n </button>\r\n </div>\r\n \r\n <div class=\"mobile-buttons\" *ngIf=\"getDownloadButton()\">\r\n <button\r\n mat-flat-button\r\n type=\"button\"\r\n color=\"primary\"\r\n (click)=\"onButtonClick(getDownloadButton()!, key); $event.stopPropagation()\"\r\n class=\"btn-download-mobile\"\r\n [attr.id]=\"getDownloadButton()?.id\"\r\n >\r\n <mat-icon>{{ getDownloadButton()?.icon }}</mat-icon>\r\n </button>\r\n <button\r\n *ngIf=\"getMenuButtons().length > 0\"\r\n mat-stroked-button\r\n type=\"button\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"btn-menu-mobile\"\r\n >\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n mat-menu-item\r\n *ngFor=\"let btn of getMenuButtons()\"\r\n (click)=\"onButtonClick(btn, key); $event.stopPropagation()\"\r\n [attr.id]=\"btn.id\"\r\n >\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div class=\"panel-body\">\r\n <hr class=\"divider\"/>\r\n <ng-content></ng-content>\r\n <app-base-form-canvas\r\n [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [editable]=\"editable\"\r\n [item]=\"item\"\r\n (formUpdated)=\"formUpdated($event)\"\r\n ></app-base-form-canvas>\r\n </div>\r\n</mat-expansion-panel>\r\n", styles: [".location-card{border:1px solid #dcdcdc;border-radius:8px;background:#fff;margin:18px auto;overflow:hidden}.location-card .mat-expansion-panel-header{padding:0 15px}.location-card .mat-expansion-panel-header ::ng-deep .mat-content{margin:0!important}.location-card .panel-body{padding:20px 15px;padding-top:0!important}.location-card .panel-body ::ng-deep app-base-form-canvas .main-form-canvas{margin-top:20px!important}.location-card .panel-description{justify-content:end!important;margin:0!important}.location-card .card-header{display:flex;justify-content:space-between;align-items:center;padding:
|
|
59
|
+
], template: "<mat-expansion-panel class=\"location-card\"\r\n #panel=\"matExpansionPanel\"\r\n [expanded]=\"isExpanded\"\r\n [hideToggle]=\"hideToggle\"\r\n (opened)=\"alwaysOpen ? panel.open() : null\"\r\n (closed)=\"alwaysOpen ? panel.open() : null\">\r\n <mat-expansion-panel-header class=\"card-header\" (click)=\"toggleExpand()\">\r\n <mat-panel-title>\r\n <div class=\"title-container\">\r\n <h3 class=\"card-title\" *ngIf=\"isTranslateTitle\">\r\n {{ pageInfo.labelsSection + '.' + title | translate }}\r\n </h3>\r\n <h3 class=\"card-title\" *ngIf=\"!isTranslateTitle\">{{ title }}</h3>\r\n <p class=\"card-subtitle\" *ngIf=\"subtitle\">\r\n <span *ngIf=\"isTranslateSubtitle\">{{ pageInfo.labelsSection + '.' + subtitle | translate }}</span>\r\n <span *ngIf=\"!isTranslateSubtitle\">{{ subtitle }}</span>\r\n </p>\r\n <button mat-button *ngIf=\"itemStatus\" class=\"stateType\" [ngClass]=\"itemStatus\">\r\n {{ pageInfo.labelsSection + '.' + itemStatus | translate }}\r\n </button>\r\n </div>\r\n </mat-panel-title>\r\n\r\n <mat-panel-description class=\"panel-description\" *ngIf=\"buttons && buttons.length > 0\">\r\n <div class=\"row flex-auto buttons-wrapper desktop-buttons\" [class.show-on-mobile]=\"!getDownloadButton()\">\r\n <button\r\n mat-flat-button\r\n *ngFor=\"let btn of buttons\"\r\n type=\"button\"\r\n [color]=\"btn.color || 'primary'\"\r\n (click)=\"onButtonClick(btn , key); $event.stopPropagation()\"\r\n class=\"btn-none-background-primary action\"\r\n [attr.id]=\"btn.id || ('section-btn-' + (btn.action || btn.label || btn.key))\"\r\n >\r\n <div class=\"button-text\">\r\n <mat-icon *ngIf=\"btn.icon\">{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </div>\r\n </button>\r\n </div>\r\n \r\n <div class=\"mobile-buttons\" *ngIf=\"getDownloadButton()\">\r\n <button\r\n mat-flat-button\r\n type=\"button\"\r\n color=\"primary\"\r\n (click)=\"onButtonClick(getDownloadButton()!, key); $event.stopPropagation()\"\r\n class=\"btn-download-mobile\"\r\n [attr.id]=\"getDownloadButton()?.id\"\r\n >\r\n <mat-icon>{{ getDownloadButton()?.icon }}</mat-icon>\r\n </button>\r\n <button\r\n *ngIf=\"getMenuButtons().length > 0\"\r\n mat-stroked-button\r\n type=\"button\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"btn-menu-mobile\"\r\n >\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n mat-menu-item\r\n *ngFor=\"let btn of getMenuButtons()\"\r\n (click)=\"onButtonClick(btn, key); $event.stopPropagation()\"\r\n [attr.id]=\"btn.id\"\r\n >\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div class=\"panel-body\">\r\n <hr class=\"divider\"/>\r\n <ng-content></ng-content>\r\n <app-base-form-canvas\r\n [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [editable]=\"editable\"\r\n [item]=\"item\"\r\n (formUpdated)=\"formUpdated($event)\"\r\n ></app-base-form-canvas>\r\n </div>\r\n</mat-expansion-panel>\r\n", styles: [".location-card{border:1px solid #dcdcdc;border-radius:8px;background:#fff;margin:18px auto;overflow:hidden}.location-card .mat-expansion-panel-header{padding:0 15px}.location-card .mat-expansion-panel-header ::ng-deep .mat-content{margin:0!important}.location-card .panel-body{padding:20px 15px;padding-top:0!important}.location-card .panel-body ::ng-deep app-base-form-canvas .main-form-canvas{margin-top:20px!important}.location-card .panel-description{justify-content:end!important;margin:0!important}.location-card .card-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px!important}.location-card .card-header .title-container{display:flex;flex-direction:column;gap:8px;align-items:flex-start;justify-content:center}.location-card .card-header .card-title{margin:0;font-size:24px;font-weight:700;line-height:1.2;color:#000;width:fit-content;white-space:nowrap}.location-card .card-header .card-subtitle{margin:0;font-family:lusail-light,sans-serif;font-weight:300;font-size:16px;line-height:1.2;color:#888;width:fit-content}.location-card .card-header .btn-edit{width:120px;min-height:32px!important;border-radius:9999px!important;font-size:16px!important}.location-card .card-header .expand-icon{color:#339dff;font-size:16px}.location-card .divider{border:none;border-top:2px solid var(--primary-color-3nd);margin-bottom:20px;margin-top:0}.flex-auto{flex:1 1 auto;display:flex;flex-direction:column}.row{display:flex;flex-direction:row;width:100%}.gap-20{gap:20px}.buttons-wrapper{display:flex;text-align-last:end;margin:0!important;gap:16px;justify-content:flex-end}.buttons-wrapper .action{min-height:44px!important;min-width:135px!important;width:auto!important}.button-text span{font-size:18px}.button-text mat-icon{font-size:18px!important}.btn-none-background-primary{margin:0!important}@media (max-width: 768px){.desktop-buttons{display:none!important}.desktop-buttons.show-on-mobile{display:flex!important}.mobile-buttons{display:flex;gap:12px;align-items:center;justify-content:flex-end}.btn-download-mobile{width:45px!important;height:44px!important;min-width:45px!important;padding:0!important;border-radius:8px!important;background:#0d4261!important;display:flex;align-items:center;justify-content:center}.btn-download-mobile mat-icon{color:#fff!important;font-size:24px!important;width:24px!important;height:28px!important;margin:0!important}.btn-download-mobile .mdc-button__label{padding:0!important}.btn-menu-mobile{width:44px!important;height:44px!important;min-width:44px!important;padding:0!important;border-radius:8px!important;border:1px solid #3e627b!important;background:#fff!important;display:flex;align-items:center;justify-content:center}.btn-menu-mobile mat-icon{color:#0d4261!important;font-size:24px!important;width:25px!important;height:24px!important;margin:0!important;rotate:90deg}.btn-menu-mobile .mdc-button__label{padding:0!important}}@media (min-width: 769px){.mobile-buttons{display:none!important}}@media (max-width: 600px){::ng-deep .main-form-canvas{display:block!important}}\n"] }]
|
|
60
60
|
}], propDecorators: { pageInfo: [{
|
|
61
61
|
type: Input
|
|
62
62
|
}], fields: [{
|
|
@@ -96,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
96
96
|
}], buttonClicked: [{
|
|
97
97
|
type: Output
|
|
98
98
|
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1mb3JtLWNhbnZhcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlY3Rpb24tZm9ybS1jYW52YXMvc2VjdGlvbi1mb3JtLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlY3Rpb24tZm9ybS1jYW52YXMvc2VjdGlvbi1mb3JtLWNhbnZhcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdkIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBeUI1RSxNQUFNLE9BQU8sMEJBQTBCO0lBdkJ2QztRQWlDVyx3QkFBbUIsR0FBWSxJQUFJLENBQUM7UUFFcEMsZUFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDMUIsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELGFBQVEsR0FBNEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4RCxZQUFPLEdBQTJCLEVBQUUsQ0FBQztRQUVwQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7S0FzQm5EO0lBcEJDLFdBQVcsQ0FBQyxNQUFNO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTdCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUF5QixFQUFFLFVBQWtCO1FBQ3pELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUMsR0FBRyxHQUFHLEVBQUcsVUFBVSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssVUFBVSxDQUFDLENBQUM7SUFDM0QsQ0FBQzsrR0F4Q1UsMEJBQTBCO21HQUExQiwwQkFBMEIsNGpCQ3hDdkMsMG5IQXVGQSxraUdEbEVJLE9BQU8sMklBQ1AsU0FBUyxpTEFFVCx1QkFBdUIsbVpBQ3ZCLElBQUksNkZBQ0osT0FBTyxtRkFDUCxlQUFlLDRGQUNmLGlCQUFpQixzTEFDakIsc0JBQXNCLDREQUN0Qiw0QkFBNEIsa0VBQzVCLHVCQUF1QixrSUFDdkIsT0FBTyxtSEFDUCxPQUFPLDJRQUNQLGNBQWMscVNBQ2QsV0FBVzs7NEZBS0YsMEJBQTBCO2tCQXZCdEMsU0FBUzsrQkFDRSx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AsU0FBUzt3QkFDVCxpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsSUFBSTt3QkFDSixPQUFPO3dCQUNQLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLDRCQUE0Qjt3QkFDNUIsdUJBQXVCO3dCQUN2QixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsY0FBYzt3QkFDZCxXQUFXO3FCQUNaOzhCQUtRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TWF0SWNvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHtNYXRCdXR0b259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHtCdXR0b25BY3Rpb25TZXR0aW5ncywgRmllbGRJbmZvLCBQYWdlSW5mb30gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWxcIjtcclxuaW1wb3J0IHtCYXNlRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4uL2Jhc2UtZm9ybS9iYXNlLWZvcm0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QmFzZUZvcm1DYW52YXNDb21wb25lbnR9IGZyb20gXCIuLi9iYXNlLWZvcm0tY2FudmFzL2Jhc2UtZm9ybS1jYW52YXMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TmdGb3JPZiwgTmdJZiwgTmdDbGFzc30gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1xyXG4gIE1hdEV4cGFuc2lvblBhbmVsLFxyXG4gIE1hdEV4cGFuc2lvblBhbmVsSGVhZGVyLFxyXG4gIE1hdEV4cGFuc2lvblBhbmVsRGVzY3JpcHRpb24sXHJcbiAgTWF0RXhwYW5zaW9uUGFuZWxUaXRsZVxyXG59IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb25cIjtcclxuaW1wb3J0IHtNYXRNZW51LCBNYXRNZW51VHJpZ2dlciwgTWF0TWVudUl0ZW19IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zZWN0aW9uLWZvcm0tY2FudmFzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEljb24sXHJcbiAgICBNYXRCdXR0b24sXHJcbiAgICBCYXNlRm9ybUNvbXBvbmVudCxcclxuICAgIEJhc2VGb3JtQ2FudmFzQ29tcG9uZW50LFxyXG4gICAgTmdJZixcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBNYXRFeHBhbnNpb25QYW5lbCxcclxuICAgIE1hdEV4cGFuc2lvblBhbmVsVGl0bGUsXHJcbiAgICBNYXRFeHBhbnNpb25QYW5lbERlc2NyaXB0aW9uLFxyXG4gICAgTWF0RXhwYW5zaW9uUGFuZWxIZWFkZXIsXHJcbiAgICBOZ0Zvck9mLFxyXG4gICAgTWF0TWVudSxcclxuICAgIE1hdE1lbnVUcmlnZ2VyLFxyXG4gICAgTWF0TWVudUl0ZW1cclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWN0aW9uLWZvcm0tY2FudmFzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc2VjdGlvbi1mb3JtLWNhbnZhcy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlY3Rpb25Gb3JtQ2FudmFzQ29tcG9uZW50e1xyXG4gIEBJbnB1dCgpIHBhZ2VJbmZvOiBQYWdlSW5mbztcclxuICBASW5wdXQoKSBmaWVsZHM6IEZpZWxkSW5mb1tdO1xyXG4gIEBJbnB1dCgpIGl0ZW1JZDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGVkaXRhYmxlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhpZGVCYWNrQnV0dG9uOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGl0ZW06IGFueTtcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN1YnRpdGxlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNUcmFuc2xhdGVUaXRsZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpc1RyYW5zbGF0ZVN1YnRpdGxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBrZXk6IG51bWJlcjtcclxuICBASW5wdXQoKSBoaWRlVG9nZ2xlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpc0V4cGFuZGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBhbHdheXNPcGVuOiBib29sZWFuID0gdHJ1ZTtcclxuICBAT3V0cHV0KCkgYWN0aW9uRWRpdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGZvcm1FZGl0OiBFdmVudEVtaXR0ZXI8Rm9ybUdyb3VwPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBidXR0b25zOiBCdXR0b25BY3Rpb25TZXR0aW5nc1tdID0gW107XHJcbiAgQElucHV0KCkgaXRlbVN0YXR1czogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGZvcm1VcGRhdGVkKCRldmVudCkge1xyXG4gICAgdGhpcy5mb3JtRWRpdC5lbWl0KCRldmVudCk7XHJcblxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlRXhwYW5kKCkge1xyXG4gICAgdGhpcy5pc0V4cGFuZGVkID0gIXRoaXMuaXNFeHBhbmRlZDtcclxuICB9XHJcblxyXG4gIG9uQnV0dG9uQ2xpY2soYnRuOiBCdXR0b25BY3Rpb25TZXR0aW5ncywgc2VjdGlvbktleTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmJ1dHRvbkNsaWNrZWQuZW1pdCh7Li4uYnRuICwgc2VjdGlvbktleTogc2VjdGlvbktleX0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RG93bmxvYWRCdXR0b24oKTogQnV0dG9uQWN0aW9uU2V0dGluZ3MgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuYnV0dG9ucy5maW5kKGJ0biA9PiBidG4uaWQgPT09ICdkb3dubG9hZCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TWVudUJ1dHRvbnMoKTogQnV0dG9uQWN0aW9uU2V0dGluZ3NbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5idXR0b25zLmZpbHRlcihidG4gPT4gYnRuLmlkICE9PSAnZG93bmxvYWQnKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1leHBhbnNpb24tcGFuZWwgY2xhc3M9XCJsb2NhdGlvbi1jYXJkXCJcclxuICAgICAgICAgICAgICAgICAgICAgI3BhbmVsPVwibWF0RXhwYW5zaW9uUGFuZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZXhwYW5kZWRdPVwiaXNFeHBhbmRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtoaWRlVG9nZ2xlXT1cImhpZGVUb2dnbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAob3BlbmVkKT1cImFsd2F5c09wZW4gPyBwYW5lbC5vcGVuKCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsb3NlZCk9XCJhbHdheXNPcGVuID8gcGFuZWwub3BlbigpIDogbnVsbFwiPlxyXG4gIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciBjbGFzcz1cImNhcmQtaGVhZGVyXCIgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZCgpXCI+XHJcbiAgICA8bWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZVwiICpuZ0lmPVwiaXNUcmFuc2xhdGVUaXRsZVwiPlxyXG4gICAgICAgICAge3sgcGFnZUluZm8ubGFiZWxzU2VjdGlvbiArICcuJyArIHRpdGxlIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9oMz5cclxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlXCIgKm5nSWY9XCIhaXNUcmFuc2xhdGVUaXRsZVwiPnt7IHRpdGxlIH19PC9oMz5cclxuICAgICAgICA8cCBjbGFzcz1cImNhcmQtc3VidGl0bGVcIiAqbmdJZj1cInN1YnRpdGxlXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzVHJhbnNsYXRlU3VidGl0bGVcIj57eyBwYWdlSW5mby5sYWJlbHNTZWN0aW9uICsgJy4nICsgc3VidGl0bGUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFpc1RyYW5zbGF0ZVN1YnRpdGxlXCI+e3sgc3VidGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAqbmdJZj1cIml0ZW1TdGF0dXNcIiBjbGFzcz1cInN0YXRlVHlwZVwiIFtuZ0NsYXNzXT1cIml0ZW1TdGF0dXNcIj5cclxuICAgICAgICAgIHt7IHBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24gKyAnLicgKyBpdGVtU3RhdHVzIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtcGFuZWwtdGl0bGU+XHJcblxyXG4gICAgPG1hdC1wYW5lbC1kZXNjcmlwdGlvbiBjbGFzcz1cInBhbmVsLWRlc2NyaXB0aW9uXCIgKm5nSWY9XCJidXR0b25zICYmIGJ1dHRvbnMubGVuZ3RoID4gMFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGZsZXgtYXV0byBidXR0b25zLXdyYXBwZXIgZGVza3RvcC1idXR0b25zXCIgW2NsYXNzLnNob3ctb24tbW9iaWxlXT1cIiFnZXREb3dubG9hZEJ1dHRvbigpXCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgYnRuIG9mIGJ1dHRvbnNcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBbY29sb3JdPVwiYnRuLmNvbG9yIHx8ICdwcmltYXJ5J1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25CdXR0b25DbGljayhidG4gLCBrZXkpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4tbm9uZS1iYWNrZ3JvdW5kLXByaW1hcnkgYWN0aW9uXCJcclxuICAgICAgICAgIFthdHRyLmlkXT1cImJ0bi5pZCB8fCAoJ3NlY3Rpb24tYnRuLScgKyAoYnRuLmFjdGlvbiB8fCBidG4ubGFiZWwgfHwgYnRuLmtleSkpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRleHRcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiYnRuLmljb25cIj57eyBidG4uaWNvbiB9fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGJ0bi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtYnV0dG9uc1wiICpuZ0lmPVwiZ2V0RG93bmxvYWRCdXR0b24oKVwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQnV0dG9uQ2xpY2soZ2V0RG93bmxvYWRCdXR0b24oKSEsIGtleSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0bi1kb3dubG9hZC1tb2JpbGVcIlxyXG4gICAgICAgICAgW2F0dHIuaWRdPVwiZ2V0RG93bmxvYWRCdXR0b24oKT8uaWRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbj57eyBnZXREb3dubG9hZEJ1dHRvbigpPy5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cImdldE1lbnVCdXR0b25zKCkubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4tbWVudS1tb2JpbGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgYnRuIG9mIGdldE1lbnVCdXR0b25zKClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25CdXR0b25DbGljayhidG4sIGtleSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImJ0bi5pZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj57eyBidG4uaWNvbiB9fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGJ0bi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICA8ZGl2IGNsYXNzPVwicGFuZWwtYm9keVwiPlxyXG4gICAgPGhyIGNsYXNzPVwiZGl2aWRlclwiLz5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDxhcHAtYmFzZS1mb3JtLWNhbnZhc1xyXG4gICAgICBbcGFnZUluZm9dPVwicGFnZUluZm9cIlxyXG4gICAgICBbZmllbGRzXT1cImZpZWxkc1wiXHJcbiAgICAgIFtlZGl0YWJsZV09XCJlZGl0YWJsZVwiXHJcbiAgICAgIFtpdGVtXT1cIml0ZW1cIlxyXG4gICAgICAoZm9ybVVwZGF0ZWQpPVwiZm9ybVVwZGF0ZWQoJGV2ZW50KVwiXHJcbiAgICA+PC9hcHAtYmFzZS1mb3JtLWNhbnZhcz5cclxuICA8L2Rpdj5cclxuPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4iXX0=
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1mb3JtLWNhbnZhcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlY3Rpb24tZm9ybS1jYW52YXMvc2VjdGlvbi1mb3JtLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlY3Rpb24tZm9ybS1jYW52YXMvc2VjdGlvbi1mb3JtLWNhbnZhcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdkIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBeUI1RSxNQUFNLE9BQU8sMEJBQTBCO0lBdkJ2QztRQWlDVyx3QkFBbUIsR0FBWSxJQUFJLENBQUM7UUFFcEMsZUFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDMUIsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELGFBQVEsR0FBNEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4RCxZQUFPLEdBQTJCLEVBQUUsQ0FBQztRQUVwQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7S0FzQm5EO0lBcEJDLFdBQVcsQ0FBQyxNQUFNO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTdCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUF5QixFQUFFLFVBQWtCO1FBQ3pELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUMsR0FBRyxHQUFHLEVBQUcsVUFBVSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssVUFBVSxDQUFDLENBQUM7SUFDM0QsQ0FBQzsrR0F4Q1UsMEJBQTBCO21HQUExQiwwQkFBMEIsNGpCQ3hDdkMsMG5IQXVGQSw2aUdEbEVJLE9BQU8sMklBQ1AsU0FBUyxpTEFFVCx1QkFBdUIsbVpBQ3ZCLElBQUksNkZBQ0osT0FBTyxtRkFDUCxlQUFlLDRGQUNmLGlCQUFpQixzTEFDakIsc0JBQXNCLDREQUN0Qiw0QkFBNEIsa0VBQzVCLHVCQUF1QixrSUFDdkIsT0FBTyxtSEFDUCxPQUFPLDJRQUNQLGNBQWMscVNBQ2QsV0FBVzs7NEZBS0YsMEJBQTBCO2tCQXZCdEMsU0FBUzsrQkFDRSx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AsU0FBUzt3QkFDVCxpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsSUFBSTt3QkFDSixPQUFPO3dCQUNQLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLDRCQUE0Qjt3QkFDNUIsdUJBQXVCO3dCQUN2QixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsY0FBYzt3QkFDZCxXQUFXO3FCQUNaOzhCQUtRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TWF0SWNvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHtNYXRCdXR0b259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHtCdXR0b25BY3Rpb25TZXR0aW5ncywgRmllbGRJbmZvLCBQYWdlSW5mb30gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWxcIjtcclxuaW1wb3J0IHtCYXNlRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4uL2Jhc2UtZm9ybS9iYXNlLWZvcm0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QmFzZUZvcm1DYW52YXNDb21wb25lbnR9IGZyb20gXCIuLi9iYXNlLWZvcm0tY2FudmFzL2Jhc2UtZm9ybS1jYW52YXMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TmdGb3JPZiwgTmdJZiwgTmdDbGFzc30gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1xyXG4gIE1hdEV4cGFuc2lvblBhbmVsLFxyXG4gIE1hdEV4cGFuc2lvblBhbmVsSGVhZGVyLFxyXG4gIE1hdEV4cGFuc2lvblBhbmVsRGVzY3JpcHRpb24sXHJcbiAgTWF0RXhwYW5zaW9uUGFuZWxUaXRsZVxyXG59IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb25cIjtcclxuaW1wb3J0IHtNYXRNZW51LCBNYXRNZW51VHJpZ2dlciwgTWF0TWVudUl0ZW19IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zZWN0aW9uLWZvcm0tY2FudmFzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEljb24sXHJcbiAgICBNYXRCdXR0b24sXHJcbiAgICBCYXNlRm9ybUNvbXBvbmVudCxcclxuICAgIEJhc2VGb3JtQ2FudmFzQ29tcG9uZW50LFxyXG4gICAgTmdJZixcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBNYXRFeHBhbnNpb25QYW5lbCxcclxuICAgIE1hdEV4cGFuc2lvblBhbmVsVGl0bGUsXHJcbiAgICBNYXRFeHBhbnNpb25QYW5lbERlc2NyaXB0aW9uLFxyXG4gICAgTWF0RXhwYW5zaW9uUGFuZWxIZWFkZXIsXHJcbiAgICBOZ0Zvck9mLFxyXG4gICAgTWF0TWVudSxcclxuICAgIE1hdE1lbnVUcmlnZ2VyLFxyXG4gICAgTWF0TWVudUl0ZW1cclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWN0aW9uLWZvcm0tY2FudmFzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc2VjdGlvbi1mb3JtLWNhbnZhcy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlY3Rpb25Gb3JtQ2FudmFzQ29tcG9uZW50e1xyXG4gIEBJbnB1dCgpIHBhZ2VJbmZvOiBQYWdlSW5mbztcclxuICBASW5wdXQoKSBmaWVsZHM6IEZpZWxkSW5mb1tdO1xyXG4gIEBJbnB1dCgpIGl0ZW1JZDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGVkaXRhYmxlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhpZGVCYWNrQnV0dG9uOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGl0ZW06IGFueTtcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN1YnRpdGxlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNUcmFuc2xhdGVUaXRsZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpc1RyYW5zbGF0ZVN1YnRpdGxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBrZXk6IG51bWJlcjtcclxuICBASW5wdXQoKSBoaWRlVG9nZ2xlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpc0V4cGFuZGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBhbHdheXNPcGVuOiBib29sZWFuID0gdHJ1ZTtcclxuICBAT3V0cHV0KCkgYWN0aW9uRWRpdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGZvcm1FZGl0OiBFdmVudEVtaXR0ZXI8Rm9ybUdyb3VwPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBidXR0b25zOiBCdXR0b25BY3Rpb25TZXR0aW5nc1tdID0gW107XHJcbiAgQElucHV0KCkgaXRlbVN0YXR1czogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGZvcm1VcGRhdGVkKCRldmVudCkge1xyXG4gICAgdGhpcy5mb3JtRWRpdC5lbWl0KCRldmVudCk7XHJcblxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlRXhwYW5kKCkge1xyXG4gICAgdGhpcy5pc0V4cGFuZGVkID0gIXRoaXMuaXNFeHBhbmRlZDtcclxuICB9XHJcblxyXG4gIG9uQnV0dG9uQ2xpY2soYnRuOiBCdXR0b25BY3Rpb25TZXR0aW5ncywgc2VjdGlvbktleTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmJ1dHRvbkNsaWNrZWQuZW1pdCh7Li4uYnRuICwgc2VjdGlvbktleTogc2VjdGlvbktleX0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RG93bmxvYWRCdXR0b24oKTogQnV0dG9uQWN0aW9uU2V0dGluZ3MgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuYnV0dG9ucy5maW5kKGJ0biA9PiBidG4uaWQgPT09ICdkb3dubG9hZCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TWVudUJ1dHRvbnMoKTogQnV0dG9uQWN0aW9uU2V0dGluZ3NbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5idXR0b25zLmZpbHRlcihidG4gPT4gYnRuLmlkICE9PSAnZG93bmxvYWQnKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1leHBhbnNpb24tcGFuZWwgY2xhc3M9XCJsb2NhdGlvbi1jYXJkXCJcclxuICAgICAgICAgICAgICAgICAgICAgI3BhbmVsPVwibWF0RXhwYW5zaW9uUGFuZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZXhwYW5kZWRdPVwiaXNFeHBhbmRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtoaWRlVG9nZ2xlXT1cImhpZGVUb2dnbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAob3BlbmVkKT1cImFsd2F5c09wZW4gPyBwYW5lbC5vcGVuKCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsb3NlZCk9XCJhbHdheXNPcGVuID8gcGFuZWwub3BlbigpIDogbnVsbFwiPlxyXG4gIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciBjbGFzcz1cImNhcmQtaGVhZGVyXCIgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZCgpXCI+XHJcbiAgICA8bWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZVwiICpuZ0lmPVwiaXNUcmFuc2xhdGVUaXRsZVwiPlxyXG4gICAgICAgICAge3sgcGFnZUluZm8ubGFiZWxzU2VjdGlvbiArICcuJyArIHRpdGxlIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9oMz5cclxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlXCIgKm5nSWY9XCIhaXNUcmFuc2xhdGVUaXRsZVwiPnt7IHRpdGxlIH19PC9oMz5cclxuICAgICAgICA8cCBjbGFzcz1cImNhcmQtc3VidGl0bGVcIiAqbmdJZj1cInN1YnRpdGxlXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzVHJhbnNsYXRlU3VidGl0bGVcIj57eyBwYWdlSW5mby5sYWJlbHNTZWN0aW9uICsgJy4nICsgc3VidGl0bGUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFpc1RyYW5zbGF0ZVN1YnRpdGxlXCI+e3sgc3VidGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAqbmdJZj1cIml0ZW1TdGF0dXNcIiBjbGFzcz1cInN0YXRlVHlwZVwiIFtuZ0NsYXNzXT1cIml0ZW1TdGF0dXNcIj5cclxuICAgICAgICAgIHt7IHBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24gKyAnLicgKyBpdGVtU3RhdHVzIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtcGFuZWwtdGl0bGU+XHJcblxyXG4gICAgPG1hdC1wYW5lbC1kZXNjcmlwdGlvbiBjbGFzcz1cInBhbmVsLWRlc2NyaXB0aW9uXCIgKm5nSWY9XCJidXR0b25zICYmIGJ1dHRvbnMubGVuZ3RoID4gMFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGZsZXgtYXV0byBidXR0b25zLXdyYXBwZXIgZGVza3RvcC1idXR0b25zXCIgW2NsYXNzLnNob3ctb24tbW9iaWxlXT1cIiFnZXREb3dubG9hZEJ1dHRvbigpXCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgYnRuIG9mIGJ1dHRvbnNcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBbY29sb3JdPVwiYnRuLmNvbG9yIHx8ICdwcmltYXJ5J1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25CdXR0b25DbGljayhidG4gLCBrZXkpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4tbm9uZS1iYWNrZ3JvdW5kLXByaW1hcnkgYWN0aW9uXCJcclxuICAgICAgICAgIFthdHRyLmlkXT1cImJ0bi5pZCB8fCAoJ3NlY3Rpb24tYnRuLScgKyAoYnRuLmFjdGlvbiB8fCBidG4ubGFiZWwgfHwgYnRuLmtleSkpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRleHRcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiYnRuLmljb25cIj57eyBidG4uaWNvbiB9fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGJ0bi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtYnV0dG9uc1wiICpuZ0lmPVwiZ2V0RG93bmxvYWRCdXR0b24oKVwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQnV0dG9uQ2xpY2soZ2V0RG93bmxvYWRCdXR0b24oKSEsIGtleSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0bi1kb3dubG9hZC1tb2JpbGVcIlxyXG4gICAgICAgICAgW2F0dHIuaWRdPVwiZ2V0RG93bmxvYWRCdXR0b24oKT8uaWRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbj57eyBnZXREb3dubG9hZEJ1dHRvbigpPy5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cImdldE1lbnVCdXR0b25zKCkubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4tbWVudS1tb2JpbGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgYnRuIG9mIGdldE1lbnVCdXR0b25zKClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25CdXR0b25DbGljayhidG4sIGtleSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImJ0bi5pZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj57eyBidG4uaWNvbiB9fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGJ0bi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICA8ZGl2IGNsYXNzPVwicGFuZWwtYm9keVwiPlxyXG4gICAgPGhyIGNsYXNzPVwiZGl2aWRlclwiLz5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDxhcHAtYmFzZS1mb3JtLWNhbnZhc1xyXG4gICAgICBbcGFnZUluZm9dPVwicGFnZUluZm9cIlxyXG4gICAgICBbZmllbGRzXT1cImZpZWxkc1wiXHJcbiAgICAgIFtlZGl0YWJsZV09XCJlZGl0YWJsZVwiXHJcbiAgICAgIFtpdGVtXT1cIml0ZW1cIlxyXG4gICAgICAoZm9ybVVwZGF0ZWQpPVwiZm9ybVVwZGF0ZWQoJGV2ZW50KVwiXHJcbiAgICA+PC9hcHAtYmFzZS1mb3JtLWNhbnZhcz5cclxuICA8L2Rpdj5cclxuPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4iXX0=
|