@tsi-developpement/tsi-shared-ui 1.7.16 → 1.7.17
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/tsi-components/manage-import-export/manage-import-export.component.mjs +21 -17
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs +20 -16
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs.map +1 -1
- package/lib/tsi-components/manage-import-export/manage-import-export.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -287,7 +287,7 @@ export class ManageImportExportComponent extends TsiFormComponentBaseComponent {
|
|
|
287
287
|
});
|
|
288
288
|
}
|
|
289
289
|
else if (data.field == "delete") {
|
|
290
|
-
this.deleteModeleImport(data);
|
|
290
|
+
this.deleteModeleImport(data.key?.uid);
|
|
291
291
|
}
|
|
292
292
|
else if (data.field == "import") {
|
|
293
293
|
this.isImportFileToExecuteVisible = true;
|
|
@@ -357,23 +357,27 @@ export class ManageImportExportComponent extends TsiFormComponentBaseComponent {
|
|
|
357
357
|
link.click();
|
|
358
358
|
document.body.removeChild(link);
|
|
359
359
|
}
|
|
360
|
-
deleteModeleImport(
|
|
361
|
-
this.confirmationService.confirm(
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
360
|
+
deleteModeleImport(uid) {
|
|
361
|
+
// this.confirmationService.confirm(
|
|
362
|
+
// LocalizationKeys.confirmDelete,
|
|
363
|
+
// undefined,
|
|
364
|
+
// (result: boolean) => {
|
|
365
|
+
// if (result && data.key != null && data.key != undefined) {
|
|
366
|
+
this.isloading = true;
|
|
367
|
+
this.modeleImportService.delete(uid).subscribe({
|
|
368
|
+
next: () => {
|
|
369
|
+
this.gridComponent.refresh(true);
|
|
370
|
+
this.notificationService.success(LocalizationKeys.deletedSuccessfully);
|
|
371
|
+
this.isloading = false;
|
|
372
|
+
},
|
|
373
|
+
error: (error) => {
|
|
374
|
+
this.isloading = false;
|
|
375
|
+
this.notificationService.error(error);
|
|
375
376
|
}
|
|
376
377
|
});
|
|
378
|
+
// }
|
|
379
|
+
// }
|
|
380
|
+
// );
|
|
377
381
|
}
|
|
378
382
|
onImportFileToExecute_FileSelected(event) {
|
|
379
383
|
const file = event.currentFiles[0];
|
|
@@ -499,4 +503,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
499
503
|
type: ViewChild,
|
|
500
504
|
args: ['importFileToExecuteFileUpload']
|
|
501
505
|
}] } });
|
|
502
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWltcG9ydC1leHBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL21hbmFnZS1pbXBvcnQtZXhwb3J0L21hbmFnZS1pbXBvcnQtZXhwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy9tYW5hZ2UtaW1wb3J0LWV4cG9ydC9tYW5hZ2UtaW1wb3J0LWV4cG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNyRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUMzSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxvQkFBb0IsRUFBNkIsTUFBTSxjQUFjLENBQUM7QUFFL0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDaEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFB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QUlqQixvQkFBb0IscVlDN0JqQyxvdVVBK0pXOzs0RkRwSUUsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLDBCQUEwQixhQUl6QixDQUFDLEdBQUcsWUFBWSxDQUFDOzJTQUlLLGFBQWE7c0JBQTdDLFNBQVM7dUJBQUMsb0JBQW9CO2dCQUNOLFlBQVk7c0JBQXBDLFNBQVM7dUJBQUMsWUFBWTtnQkFDQSxpQkFBaUI7c0JBQXZDLFNBQVM7dUJBQUMsVUFBVTtnQkFnRHVCLDZCQUE2QjtzQkFBeEUsU0FBUzt1QkFBQywrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZCB9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFsZXJ0SW1wb3J0TWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4uL2FsZXJ0LWltcG9ydC1tZXNzYWdlL2FsZXJ0LWltcG9ydC1tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENyZWF0ZU9yRWRpdE1vZGVsZUltcG9ydENvbXBvbmVudCB9IGZyb20gJy4uL2NyZWF0ZS1vci1lZGl0LW1vZGVsZS1pbXBvcnQvY3JlYXRlLW9yLWVkaXQtbW9kZWxlLWltcG9ydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUc2lWaWV3R3JpZENvbXBvbmVudCB9IGZyb20gJy4uL291dHB1dC1jb21wb25lbnRzL3RzaS12aWV3LWdyaWQvdHNpLXZpZXctZ3JpZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb29sdGlwUG9zaXRpb24gfSBmcm9tICcuLi8uLi9lbnVtcy90b29sdGlwUG9zaXRpb24uZW51bSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25LZXlzIH0gZnJvbSAnLi4vLi4vY29uc3RzL2xvY2FsaXphdGlvbi1rZXknO1xyXG5pbXBvcnQgeyBJbnB1dFR5cGVzLCBGaWx0ZXJPcGVyYXRvclR5cGUsIE1vZGVzLCBEaXNwbGF5VHlwZXMgfSBmcm9tICcuLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7IEdyaWRDb2x1bW4sIEJ1dHRvbkNsaWNrUmVzdWx0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEV4ZWN1dGVJbXBvcnRSZXF1ZXN0LCBJbXBvcnRSZXN1bHQsIFNlYXJjaEZpZWxkIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgTW9kZWxlSW1wb3J0U2VydmljZSwgVHNpQ29uZmlybWF0aW9uU2VydmljZSwgVHNpTm90aWZpY2F0aW9uU2VydmljZSwgRXJyb3JSZXNwb25zZU1hbmFnZXJTZXJ2aWNlLCBUc2lNZXNzYWdlU2VydmljZSwgVHNpTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUc2lGb3JtQ29tcG9uZW50QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RzaS1iYXNlL2NvbXBvbmVudHMvdHNpLWZvcm0tYmFzZS90c2ktZm9ybS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlZ21lbnQgfSBmcm9tICcuLi8uLi9lbmQtcG9pbnRzJztcclxuaW1wb3J0IHsgYXBwUHJvdmlkZXJzIH0gZnJvbSAnLi4vLi4vY29uc3RzL2FwcC1wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgRmlsZVR5cGVJbXBvcnRFbnVtIH0gZnJvbSAnLi4vLi4vZW51bXMvZmlsZS10eXBlLWltcG9ydC1lbnVtJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1tYW5hZ2UtaW1wb3J0LWV4cG9ydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21hbmFnZS1pbXBvcnQtZXhwb3J0LmNvbXBvbmVudC5odG1sJyxcclxuICAvL2VuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWFuYWdlLWltcG9ydC1leHBvcnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFsuLi5hcHBQcm92aWRlcnNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYW5hZ2VJbXBvcnRFeHBvcnRDb21wb25lbnQgZXh0ZW5kcyBUc2lGb3JtQ29tcG9uZW50QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQFZpZXdDaGlsZChUc2lWaWV3R3JpZENvbXBvbmVudCkgZ3JpZENvbXBvbmVudCE6IFRzaVZpZXdHcmlkQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVVcGxvYWQnKSBmaWxlVXBsb2FkZXIhOiBGaWxlVXBsb2FkO1xyXG4gIEBWaWV3Q2hpbGQoXCJ2aWV3R3JpZFwiKSB2aWV3R3JpZENvbXBvbmVudD86IFRzaVZpZXdHcmlkQ29tcG9uZW50O1xyXG4gIHRvb2x0aXBQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbjtcclxuXHJcbiAgdG9VcGxvYWRGaWxlRGF0YTogYW55O1xyXG4gIG9uUmVtb3ZlKCRldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnRvVXBsb2FkRmlsZURhdGEgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG4gIG9uQ2xlYXIoJGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMudG9VcGxvYWRGaWxlRGF0YSA9IHVuZGVmaW5lZDtcclxuICB9XHJcbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgZmlsZTogRmlsZSA9IGV2ZW50LmN1cnJlbnRGaWxlc1swXTtcclxuICAgIHRoaXMudG9VcGxvYWRGaWxlRGF0YSA9IGZpbGU7XHJcbiAgfVxyXG4gIG9uSW1wb3J0RmlsZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm1vZGVsZUltcG9ydFNlcnZpY2UudXBsb2FkSnNvbkZpbGUodGhpcy50b1VwbG9hZEZpbGVEYXRhKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS5lcnJvciA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2Vzcygnc2hhcmVkX2ltcG9ydE1vZGVsZV9qc29uX3VwbG9hZGVkX3N1Y2Nlc3NmdWxseScpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmdyaWRDb21wb25lbnQucmVmcmVzaCh0cnVlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIilcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgIHRoaXMuZmlsZVVwbG9hZGVyLmNsZWFyKClcclxuICB9XHJcblxyXG4gIGNvbHVtbnNKc29uOiBBcnJheTxHcmlkQ29sdW1uPiA9IFtcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiBcInNoYXJlZF9pbXBvcnRNb2RlbGVfanNvbl9uYW1lXCIsXHJcbiAgICAgIGZpZWxkOiBcImpzb25GaWxlTmFtZVwiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6ICcnLFxyXG4gICAgICBmaWVsZDogJ2Zyb21Kc29uVG9EYXRhYmFzZScsXHJcbiAgICAgIGlzQnV0dG9uOiB0cnVlLFxyXG4gICAgICBidXR0b25JY29uOiAncGkgcGktYXJyb3ctY2lyY2xlLXVwJyxcclxuICAgICAgc3R5bGVDbGFzczogJ3AtYnV0dG9uLXRleHQgcC1idXR0b24tc2Vjb25kYXJ5J1xyXG4gICAgfSxcclxuICBdO1xyXG4gIGtleTogc3RyaW5nID0gJ2pzb25GaWxlTmFtZSc7XHJcbiAgZ3JpZERhdGE6IGFueVxyXG5cclxuICBAVmlld0NoaWxkKCdpbXBvcnRGaWxlVG9FeGVjdXRlRmlsZVVwbG9hZCcpIGltcG9ydEZpbGVUb0V4ZWN1dGVGaWxlVXBsb2FkPzogRmlsZVVwbG9hZDtcclxuXHJcbiAgY29sdW1uczogYW55XHJcblxyXG4gIGlzSW1wb3J0RmlsZVRvRXhlY3V0ZVZpc2libGU6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIHRvVXBsb2FkVG9FeGVjdXRlRmlsZTogYW55ID0gdW5kZWZpbmVkXHJcbiAgdG9VcGxvYWRXaXRob3V0TW9kZWw6IGFueSA9IHVuZGVmaW5lZFxyXG4gIHRvSW1wb3J0TW9kZWxlVWlkPzogc3RyaW5nXHJcblxyXG4gIGNvbHVtbnNIaXN0b3J5OiBBcnJheTxHcmlkQ29sdW1uPiA9IFtcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiBcInNoYXJlZF9pbXBvcnRNb2RlbGVfY29kZV9pbXBvcnRcIixcclxuICAgICAgZmllbGQ6IFwiY29kZUltcG9ydFwiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6IFwic2hhcmVkX2ltcG9ydE1vZGVsZV9kYXRlX2ltcG9ydFwiLFxyXG4gICAgICBmaWVsZDogXCJkYXRlSW1wb3J0XCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogXCJzaGFyZWRfaW1wb3J0TW9kZWxlX25vbWJyZV9saWduZXNcIixcclxuICAgICAgZmllbGQ6IFwibm9tYnJlTGlnbmVzXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogJycsXHJcbiAgICAgIGZpZWxkOiAnZGVsZXRlRnJvbURhdGFiYXNlJyxcclxuICAgICAgaXNCdXR0b246IHRydWUsXHJcbiAgICAgIGJ1dHRvbkljb246ICdwaSBwaS10cmFzaCcsXHJcbiAgICAgIHN0eWxlQ2xhc3M6ICdwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXNlY29uZGFyeSdcclxuICAgIH0sXHJcbiAgXTtcclxuICBoaXN0b3J5R3JpZERhdGE6IGFueVxyXG4gIGltcG9ydEhpc3RvcnlLZXk6IHN0cmluZyA9ICdjb2RlSW1wb3J0JztcclxuXHJcbiAgZmlsZVR5cGUgOiBzdHJpbmcgPSBcIi54bHMsLnhsc3hcIjtcclxuXHJcbiAgaW1wb3J0UmVzdWx0RGF0YTogQXJyYXk8SW1wb3J0UmVzdWx0PiA9IFtdXHJcblxyXG4gIHNlYXJjaEZpZWxkczogQXJyYXk8U2VhcmNoRmllbGQ+ID0gW1xyXG4gIF1cclxuXHJcbiAgaW1wb3J0UmVzdWx0c0NvbHVtbnM6IEFycmF5PEdyaWRDb2x1bW4+ID0gW1xyXG4gICAge1xyXG4gICAgICBoZWFkZXI6ICcnLFxyXG4gICAgICBmaWVsZDogJ2NvbnN1bHREZXRhaWwnLFxyXG4gICAgICBpc0J1dHRvbjogdHJ1ZSxcclxuICAgICAgYnV0dG9uSWNvbjogJ3BpIHBpLWV5ZScsXHJcbiAgICAgIHN0eWxlQ2xhc3M6ICdwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXNlY29uZGFyeSdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogXCJzaGFyZWRfaW1wb3J0X3Jlc3VsdF9tb2RlbGVfaW1wb3J0X2xpYmVsbGVcIixcclxuICAgICAgZmllbGQ6IFwibW9kZWxlSW1wb3J0TGliZWxsZVwiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6IFwic2hhcmVkX2ltcG9ydF9yZXN1bHRfbW9kZWxlX3V0aWxpc2F0ZXVyXCIsXHJcbiAgICAgIGZpZWxkOiBcInVzZXJOYW1lXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogXCJzaGFyZWRfaW1wb3J0X3Jlc3VsdF9maWxlbmFtZVwiLFxyXG4gICAgICBmaWVsZDogXCJmaWxlTmFtZVwiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6IFwic2hhcmVkX2ltcG9ydF9yZXN1bHRfc3RhcnREYXRlXCIsXHJcbiAgICAgIGZpZWxkOiBcInN0YXJ0RGF0ZVwiLFxyXG4gICAgICB0eXBlOiBEaXNwbGF5VHlwZXMuREFURVRJTUVfRElTUExBWVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiBcInNoYXJlZF9pbXBvcnRfcmVzdWx0X2VuZF9kYXRlXCIsXHJcbiAgICAgIGZpZWxkOiBcImVuZERhdGVcIixcclxuICAgICAgdHlwZTogRGlzcGxheVR5cGVzLkRBVEVUSU1FX0RJU1BMQVlcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogXCJzaGFyZWRfaW1wb3J0X3Jlc3VsdF9zdGF0dXNcIixcclxuICAgICAgZmllbGQ6IFwic3RhdHVzXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogXCJzaGFyZWRfaW1wb3J0X3Jlc3VsdF9wcm9ncmVzc1wiLFxyXG4gICAgICBmaWVsZDogXCJwcm9ncmVzc1wiLFxyXG4gICAgICB0eXBlOiBEaXNwbGF5VHlwZXMuUkFURV9ESVNQTEFZXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6IFwic2hhcmVkX2ltcG9ydF9yZXN1bHRfdG90YWxfbGluZXNfbnVtYmVyXCIsXHJcbiAgICAgIGZpZWxkOiBcInRvdGFsTGluZXNOdW1iZXJcIixcclxuICAgICAgdHlwZTogRGlzcGxheVR5cGVzLklOVEVHRVJfRElTUExBWVxyXG4gICAgfVxyXG4gIF1cclxuXHJcbiAgcHJpdmF0ZSBfZGlhbG9nUmVmPzogRHluYW1pY0RpYWxvZ1JlZjtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIG1vZGVsZUltcG9ydFNlcnZpY2U6IE1vZGVsZUltcG9ydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IFRzaUNvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IFRzaU5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29uZmlnOiBEeW5hbWljRGlhbG9nQ29uZmlnLCBwcml2YXRlIF90c2lNb2RhbFNlcnZpY2U6IFRzaU1vZGFsU2VydmljZSxcclxuICAgIHByaXZhdGUgX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZTogRXJyb3JSZXNwb25zZU1hbmFnZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIHJlZj86IER5bmFtaWNEaWFsb2dSZWYpIHtcclxuICAgIHN1cGVyKHJlZiwgY29uZmlnKVxyXG4gICAgdGhpcy5zZWFyY2hGaWVsZHMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICB0eXBlOiBJbnB1dFR5cGVzLlRFWFRfQk9YLFxyXG4gICAgICAgIGZpZWxkOiBcIkNsYXNzZVwiLFxyXG4gICAgICAgIGxhYmVsVmFsdWU6IFwiQ2xhc3NlXCIsXHJcbiAgICAgICAgb3BlcmF0b3I6IEZpbHRlck9wZXJhdG9yVHlwZS5FUVVBTCxcclxuICAgICAgICBzdHlsZUNsYXNzOiAnY29sLTYnLFxyXG4gICAgICAgIGlucHV0U3R5bGVDbGFzczogJ2NvbC0zJyxcclxuICAgICAgICBsYWJlbFN0eWxlQ2xhc3M6ICdjb2wtMycsXHJcbiAgICAgICAgZGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgdmFsdWU6IHRoaXMuY29uZmlnPy5kYXRhPy5idXNpbmVzc0NsYXNzXHJcbiAgICAgIH1cclxuICAgIF1cclxuICAgIHRoaXMuY29sdW1ucyA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGZpZWxkOiAnbm9tTW9kZWxlJyxcclxuICAgICAgICBoZWFkZXI6ICdzaGFyZWRfaW1wb3J0TW9kZWxlX25vbSdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGhlYWRlcjogJycsXHJcbiAgICAgICAgZmllbGQ6ICdlZGl0JyxcclxuICAgICAgICBpc0J1dHRvbjogdHJ1ZSxcclxuICAgICAgICBidXR0b25JY29uOiAncGkgcGktZmlsZS1lZGl0JyxcclxuICAgICAgICBzdHlsZUNsYXNzOiAncC1idXR0b24tdGV4dCBwLWJ1dHRvbi1zdWNjZXNzJyxcclxuICAgICAgICB0b29sVGlwVGV4dDogJ01vZGlmaWVyJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaGVhZGVyOiAnJyxcclxuICAgICAgICBmaWVsZDogJ2V4cG9ydEpzb24nLFxyXG4gICAgICAgIGlzQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgIGJ1dHRvbkljb246ICdwaSBwaS1maWxlLWV4cG9ydCcsXHJcbiAgICAgICAgc3R5bGVDbGFzczogJ3AtYnV0dG9uLXRleHQgcC1idXR0b24taGVscCcsXHJcbiAgICAgICAgdG9vbFRpcFRleHQ6ICdFeHBvcnRlciBKc29uJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaGVhZGVyOiAnJyxcclxuICAgICAgICBmaWVsZDogJ2V4cG9ydCcsXHJcbiAgICAgICAgaXNCdXR0b246IHRydWUsXHJcbiAgICAgICAgYnV0dG9uSWNvbjogJ3BpIHBpLWZpbGUtZXhjZWwnLFxyXG4gICAgICAgIHN0eWxlQ2xhc3M6ICdwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXdhcm5pbmcnLFxyXG4gICAgICAgIHRvb2xUaXBUZXh0OiAnRXhwb3J0ZXInXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBoZWFkZXI6ICcnLFxyXG4gICAgICAgIGZpZWxkOiAnaW1wb3J0JyxcclxuICAgICAgICBpc0J1dHRvbjogdHJ1ZSxcclxuICAgICAgICBidXR0b25JY29uOiAncGkgcGktZmlsZS1pbXBvcnQnLFxyXG4gICAgICAgIHN0eWxlQ2xhc3M6ICdwLWJ1dHRvbi10ZXh0JyxcclxuICAgICAgICB0b29sVGlwVGV4dDogJ0ltcG9ydGVyJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaGVhZGVyOiAnJyxcclxuICAgICAgICBmaWVsZDogJ2RlbGV0ZScsXHJcbiAgICAgICAgaXNCdXR0b246IHRydWUsXHJcbiAgICAgICAgYnV0dG9uSWNvbjogJ3BpIHBpLXRyYXNoJyxcclxuICAgICAgICBzdHlsZUNsYXNzOiAncC1idXR0b24tdGV4dCBwLWJ1dHRvbi1kYW5nZXInLFxyXG4gICAgICAgIHRvb2xUaXBUZXh0OiAnU3VwcHJpbWVyJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaGVhZGVyOiAnJyxcclxuICAgICAgICBmaWVsZDogJ2Rvd25sb2FkSnNvbicsXHJcbiAgICAgICAgaXNCdXR0b246IHRydWUsXHJcbiAgICAgICAgYnV0dG9uSWNvbjogJ3BpIHBpLWFycm93LWNpcmNsZS1kb3duJyxcclxuICAgICAgICBzdHlsZUNsYXNzOiAncC1idXR0b24tdGV4dCBwLWJ1dHRvbi1oZWxwJyxcclxuICAgICAgICB0b29sVGlwVGV4dDogJ0V4cG9ydCBKc29uIFNlcnZlcidcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuXHJcbiAgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcblxyXG4gICAgc3VwZXIubmdPbkluaXQoKVxyXG4gICAgbGV0IGRhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLm1vZGVsZUltcG9ydFNlcnZpY2UuR2V0SnNvbkZpbGVzKHRoaXMuY29uZmlnPy5kYXRhPy5mb3JtTmFtZSkpXHJcbiAgICB0aGlzLmdyaWREYXRhID0gZGF0YVxyXG4gICAgYXdhaXQgdGhpcy5nZXRJbXBvcnRSZXN1bHQoKVxyXG4gICAgaWYgKFNlZ21lbnQucHJvZHVjdGlvbikge1xyXG4gICAgICBsZXQgYnV0dG9uQWRCdWlsdGluVGVtcGxhdGVzSW5kZXggPSB0aGlzLmNvbHVtbnMuZmluZEluZGV4KChjb2w6IEdyaWRDb2x1bW4pID0+IHtcclxuICAgICAgICByZXR1cm4gY29sLmZpZWxkID09IFwiZG93bmxvYWRKc29uXCJcclxuICAgICAgfSlcclxuICAgICAgaWYgKGJ1dHRvbkFkQnVpbHRpblRlbXBsYXRlc0luZGV4ICE9IC0xKSB7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zLnNwbGljZShidXR0b25BZEJ1aWx0aW5UZW1wbGF0ZXNJbmRleCwgMSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5oaXN0b3J5R3JpZERhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLm1vZGVsZUltcG9ydFNlcnZpY2UuR2V0SW1wb3J0SGlzdG9yeSh0aGlzLmNvbmZpZz8uZGF0YT8uYnVzaW5lc3NDbGFzcykpXHJcbiAgfVxyXG5cclxuICBhc3luYyByZWZyZXNoSW1wb3J0RXhwb3J0RGF0YSgpe1xyXG4gICAgbGV0IGRhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLm1vZGVsZUltcG9ydFNlcnZpY2UuR2V0SnNvbkZpbGVzKHRoaXMuY29uZmlnPy5kYXRhPy5mb3JtTmFtZSkpXHJcbiAgICB0aGlzLmdyaWREYXRhID0gZGF0YVxyXG4gICAgYXdhaXQgdGhpcy5nZXRJbXBvcnRSZXN1bHQoKVxyXG4gICAgdGhpcy5oaXN0b3J5R3JpZERhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLm1vZGVsZUltcG9ydFNlcnZpY2UuR2V0SW1wb3J0SGlzdG9yeSh0aGlzLmNvbmZpZz8uZGF0YT8uYnVzaW5lc3NDbGFzcykpXHJcbiAgfVxyXG5cclxuICBvcGVuTW9kYWwoKSB7XHJcbiAgICB0aGlzLl9kaWFsb2dSZWYgPSB0aGlzLl90c2lNb2RhbFNlcnZpY2Uub3BlbihDcmVhdGVPckVkaXRNb2RlbGVJbXBvcnRDb21wb25lbnQsIHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGVudGl0eUJ1c2luZXNzQ2xhc3M6IHRoaXMuY29uZmlnPy5kYXRhPy5idXNpbmVzc0NsYXNzLFxyXG4gICAgICAgIGZvcm1OYW1lOiB0aGlzLmNvbmZpZz8uZGF0YT8uZm9ybU5hbWUsXHJcbiAgICAgICAgbW9kZTogTW9kZXMuY3JlYXRlXHJcbiAgICAgIH0sXHJcbiAgICAgIHN0eWxlQ2xhc3M6ICcnLFxyXG4gICAgICB3aWR0aDogJzc1dncnLFxyXG4gICAgICBoZWlnaHQ6ICc1NXZ3JyxcclxuICAgICAgbWF4aW1pemFibGU6IHRydWUsXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9kaWFsb2dSZWYub25DbG9zZS5zdWJzY3JpYmUoKHZhbD86IGFueSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy52aWV3R3JpZENvbXBvbmVudCkge1xyXG4gICAgICAgIHRoaXMudmlld0dyaWRDb21wb25lbnQucmVmcmVzaCh0cnVlKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldEltcG9ydFJlc3VsdCgpIHtcclxuICAgIGlmICghdGhpcy5jb25maWc/LmRhdGE/LmJ1c2luZXNzQ2xhc3MpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IGRhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLm1vZGVsZUltcG9ydFNlcnZpY2UuZ2V0SW1wb3J0UmVzdWx0QnlCdXNpbmVzc0NsYXNzKHRoaXMuY29uZmlnPy5kYXRhPy5idXNpbmVzc0NsYXNzKSlcclxuICAgICAgdGhpcy5pbXBvcnRSZXN1bHREYXRhID0gZGF0YVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJ1dHRvbkNsaWNrZWQoZGF0YTogQnV0dG9uQ2xpY2tSZXN1bHQpIHtcclxuICAgIGlmIChkYXRhLmZpZWxkID09IFwiZWRpdFwiKSB7XHJcbiAgICAgIHRoaXMuX2RpYWxvZ1JlZiA9IHRoaXMuX3RzaU1vZGFsU2VydmljZS5vcGVuKENyZWF0ZU9yRWRpdE1vZGVsZUltcG9ydENvbXBvbmVudCwge1xyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIGlkOiBkYXRhLmtleT8udWlkLFxyXG4gICAgICAgICAgZW50aXR5QnVzaW5lc3NDbGFzczogdGhpcy5jb25maWc/LmRhdGE/LmJ1c2luZXNzQ2xhc3MsXHJcbiAgICAgICAgICBtb2RlOiBNb2Rlcy5lZGl0XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzdHlsZUNsYXNzOiAnJyxcclxuICAgICAgICB3aWR0aDogJzc1dncnLFxyXG4gICAgICAgIGhlaWdodDogJzU1dncnLFxyXG4gICAgICAgIG1heGltaXphYmxlOiB0cnVlLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuX2RpYWxvZ1JlZi5vbkNsb3NlLnN1YnNjcmliZSgodmFsPzogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMudmlld0dyaWRDb21wb25lbnQpIHtcclxuICAgICAgICAgIHRoaXMudmlld0dyaWRDb21wb25lbnQucmVmcmVzaCh0cnVlKVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChkYXRhLmZpZWxkID09IFwiZGVsZXRlXCIpIHtcclxuICAgICAgdGhpcy5kZWxldGVNb2RlbGVJbXBvcnQoZGF0YSlcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGRhdGEuZmllbGQgPT0gXCJpbXBvcnRcIikge1xyXG4gICAgICB0aGlzLmlzSW1wb3J0RmlsZVRvRXhlY3V0ZVZpc2libGUgPSB0cnVlXHJcbiAgICAgIHRoaXMudG9JbXBvcnRNb2RlbGVVaWQgPSBkYXRhLmtleT8udWlkXHJcbiAgICAgIHRoaXMuZmlsZVR5cGUgPSBkYXRhLmtleT8uZmlsZVR5cGUgPT0gRmlsZVR5cGVJbXBvcnRFbnVtLlhMU1ggPyBcIi54bHMsLnhsc3hcIiA6IFwiLmNzdlwiXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChkYXRhLmZpZWxkID09IFwiZXhwb3J0XCIpIHtcclxuICAgICAgdGhpcy5leHBvcnREYXRhKGRhdGEua2V5Py51aWQpXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChkYXRhLmZpZWxkID09IFwiZXhwb3J0SnNvblwiKSB7XHJcbiAgICAgIHRoaXMuZXhwb3J0RGF0YUpzb24oZGF0YS5rZXk/LnVpZClcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGRhdGEuZmllbGQgPT0gXCJkb3dubG9hZEpzb25cIikge1xyXG4gICAgICB0aGlzLmV4cG9ydERhdGFKc29uU2VydmVyKGRhdGEua2V5Py51aWQpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHBvcnREYXRhKGlkOiBzdHJpbmcpIHtcclxuICAgIGlmIChpZCAhPSB1bmRlZmluZWQgJiYgaWQgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmlzbG9hZGluZyA9IHRydWVcclxuICAgICAgdGhpcy5tb2RlbGVJbXBvcnRTZXJ2aWNlLmV4ZWN1dGVFeHBvcnQoaWQsIHRoaXMuY29uZmlnLmRhdGE/LnBhZ2VkUmVxdWVzdCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUoZGF0YT8uZGF0YSlcclxuICAgICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkV4cG9ydCBlcnJvciA9PlwiLCBlcnJvcilcclxuICAgICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5fZXJyb3JSZXNwb25zZU1hbmFnZXJTZXJ2aWNlLnNob3dFcnJvck1lc3NhZ2VzRnJvbUFycmF5U3RyaW5nKFtlcnJvcj8uZXJyb3I/Lm1lc3NhZ2VdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4cG9ydERhdGFKc29uKGlkOiBzdHJpbmcpIHtcclxuICAgIGlmIChpZCAhPSB1bmRlZmluZWQgJiYgaWQgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmlzbG9hZGluZyA9IHRydWVcclxuICAgICAgdGhpcy5tb2RlbGVJbXBvcnRTZXJ2aWNlLmV4ZWN1dGVFeHBvcnRKc29uKGlkKS5zdWJzY3JpYmUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRvd25sb2FkRmlsZShkYXRhPy5kYXRhKVxyXG4gICAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHBvcnREYXRhSnNvblNlcnZlcihpZDogc3RyaW5nKSB7XHJcbiAgICBpZiAoaWQgIT0gdW5kZWZpbmVkICYmIGlkICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlXHJcbiAgICAgIHRoaXMubW9kZWxlSW1wb3J0U2VydmljZS5leGVjdXRlRXhwb3J0SnNvblNlcnZlcihpZCkuc3Vic2NyaWJlKFxyXG5cclxuICAgICAgICByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlXHJcbiAgICAgICAgICB0aGlzLnJlZnJlc2hHcmlkKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZEZpbGUoZGF0YTogYW55KSB7XHJcbiAgICBsZXQgYmxvYlVybCA9IFwiZGF0YTphcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDtiYXNlNjQsXCIgKyBkYXRhLmZpbGVDb250ZW50O1xyXG4gICAgbGV0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcclxuICAgIGxpbmsuc2V0QXR0cmlidXRlKFwiaHJlZlwiLCBibG9iVXJsKTtcclxuICAgIGxpbmsuc2V0QXR0cmlidXRlKFwiZG93bmxvYWRcIiwgZGF0YS5maWxlTmFtZSk7XHJcbiAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xyXG4gICAgbGluay5jbGljaygpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICB9XHJcblxyXG5cclxuICBkZWxldGVNb2RlbGVJbXBvcnQoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybShcclxuICAgICAgTG9jYWxpemF0aW9uS2V5cy5jb25maXJtRGVsZXRlLFxyXG4gICAgICB1bmRlZmluZWQsXHJcbiAgICAgIChyZXN1bHQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0ICYmIGRhdGEua2V5ICE9IG51bGwgJiYgZGF0YS5rZXkgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsZUltcG9ydFNlcnZpY2UuZGVsZXRlKGRhdGEua2V5KS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRDb21wb25lbnQucmVmcmVzaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKExvY2FsaXphdGlvbktleXMuZGVsZXRlZFN1Y2Nlc3NmdWxseSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgb25JbXBvcnRGaWxlVG9FeGVjdXRlX0ZpbGVTZWxlY3RlZChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBmaWxlOiBGaWxlID0gZXZlbnQuY3VycmVudEZpbGVzWzBdXHJcbiAgICB0aGlzLnRvVXBsb2FkVG9FeGVjdXRlRmlsZSA9IGZpbGU7XHJcbiAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlXHJcbiAgfVxyXG5cclxuICBvbkltcG9ydEZpbGVUb0V4ZWN1dGVfQ2xlYXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50b1VwbG9hZFRvRXhlY3V0ZUZpbGUgPSB1bmRlZmluZWRcclxuICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2VcclxuICB9XHJcblxyXG4gIG9uSW1wb3J0RmlsZVRvRXhlY3V0ZV9SZW1vdmUoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50b1VwbG9hZFRvRXhlY3V0ZUZpbGUgPSB1bmRlZmluZWRcclxuICB9XHJcblxyXG4gIG9uSW1wb3J0RmlsZVRvRXhlY3V0ZV9JbXBvcnRGaWxlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnRvSW1wb3J0TW9kZWxlVWlkICYmIHRoaXMudG9VcGxvYWRUb0V4ZWN1dGVGaWxlKSB7XHJcbiAgICAgIHRoaXMuaXNsb2FkaW5nID0gdHJ1ZVxyXG4gICAgICB0aGlzLmlzSW1wb3J0RmlsZVRvRXhlY3V0ZVZpc2libGUgPSBmYWxzZVxyXG4gICAgICBsZXQgZXhlY3V0ZUltcG9ydFJlcXVlc3Q6IEV4ZWN1dGVJbXBvcnRSZXF1ZXN0ID0gbmV3IEV4ZWN1dGVJbXBvcnRSZXF1ZXN0KClcclxuICAgICAgZXhlY3V0ZUltcG9ydFJlcXVlc3QubW9kZWxlSW1wb3J0VWlkID0gdGhpcy50b0ltcG9ydE1vZGVsZVVpZDtcclxuICAgICAgZXhlY3V0ZUltcG9ydFJlcXVlc3QuZmlsZU5hbWUgPSB0aGlzLnRvVXBsb2FkVG9FeGVjdXRlRmlsZT8ubmFtZVxyXG5cclxuICAgICAgdGhpcy5tb2RlbGVJbXBvcnRTZXJ2aWNlLmV4ZWN1dGVJbXBvcnQoZXhlY3V0ZUltcG9ydFJlcXVlc3QsIHRoaXMudG9VcGxvYWRUb0V4ZWN1dGVGaWxlKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIG5leHQ6IGFzeW5jIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQpXHJcbiAgICAgICAgICAgICAgdGhpcy5pc0ltcG9ydEZpbGVUb0V4ZWN1dGVWaXNpYmxlID0gZmFsc2VcclxuICAgICAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZVxyXG4gICAgICAgICAgICAgIHRoaXMuX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZS5zaG93RXJyb3JNZXNzYWdlKGVycm9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW1wb3J0RmlsZVdpdGhvdXRNb2RlbF9GaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgZmlsZTogRmlsZSA9IGV2ZW50LmN1cnJlbnRGaWxlc1swXTtcclxuICAgIHRoaXMudG9VcGxvYWRXaXRob3V0TW9kZWwgPSBmaWxlO1xyXG4gICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZVxyXG4gIH1cclxuXHJcbiAgb25JbXBvcnRGaWxlV2l0aG91dE1vZGVsX0NsZWFyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMudG9VcGxvYWRXaXRob3V0TW9kZWwgPSB1bmRlZmluZWRcclxuICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2VcclxuICB9XHJcblxyXG4gIG9uSW1wb3J0RmlsZVdpdGhvdXRNb2RlbF9SZW1vdmUoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50b1VwbG9hZFdpdGhvdXRNb2RlbCA9IHVuZGVmaW5lZFxyXG4gIH1cclxuXHJcbiAgb25JbXBvcnRGaWxlV2l0aG91dE1vZGVsX0ltcG9ydEZpbGUoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMudG9VcGxvYWRXaXRob3V0TW9kZWwpIHtcclxuICAgICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlXHJcblxyXG4gICAgICBsZXQgZXhlY3V0ZUltcG9ydFJlcXVlc3Q6IEV4ZWN1dGVJbXBvcnRSZXF1ZXN0ID0gbmV3IEV4ZWN1dGVJbXBvcnRSZXF1ZXN0KClcclxuICAgICAgZXhlY3V0ZUltcG9ydFJlcXVlc3QubW9kZWxlSW1wb3J0VWlkID0gdW5kZWZpbmVkO1xyXG4gICAgICBleGVjdXRlSW1wb3J0UmVxdWVzdC5maWxlTmFtZSA9IHRoaXMudG9VcGxvYWRXaXRob3V0TW9kZWw/Lm5hbWVcclxuXHJcbiAgICAgIHRoaXMubW9kZWxlSW1wb3J0U2VydmljZS5leGVjdXRlSW1wb3J0V2l0aG91dE1vZGVsKGV4ZWN1dGVJbXBvcnRSZXF1ZXN0LCB0aGlzLnRvVXBsb2FkV2l0aG91dE1vZGVsKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIG5leHQ6IGFzeW5jIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQpXHJcbiAgICAgICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZVxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWRHcmlkRGF0YSgpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kZWxlSW1wb3J0U2VydmljZS5HZXRKc29uRmlsZXModGhpcy5jb25maWc/LmRhdGE/LmZvcm1OYW1lKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JpZERhdGEgPSBkYXRhO1xyXG4gICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIGdyaWQgZGF0YScsIGVycm9yKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaEdyaWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRHcmlkRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ29uc3VsdEltcG9ydFJlc3VsdEJ1dHRvbkNsaWNrZWQoZXZlbnQ6IEJ1dHRvbkNsaWNrUmVzdWx0KSB7XHJcbiAgICB0aGlzLl90c2lNb2RhbFNlcnZpY2Uub3BlbihBbGVydEltcG9ydE1lc3NhZ2VDb21wb25lbnQsIHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGlkOiBldmVudC5rZXksXHJcbiAgICAgIH0sXHJcbiAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICBkcmFnZ2FibGU6IHRydWUsXHJcbiAgICAgIHdpZHRoOiAnMzV2dycsXHJcbiAgICAgIGhlaWdodDogJzI1dncnLFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGhhbmRsZUJ1dHRvbkNvbHVtbkV4ZWN1dGVDbGlja2VkKGV2ZW50OiBCdXR0b25DbGlja1Jlc3VsdCkge1xyXG4gICAgaWYgKGV2ZW50LmZpZWxkID09ICdmcm9tSnNvblRvRGF0YWJhc2UnKSB7XHJcbiAgICAgIHRoaXMubW9kZWxlSW1wb3J0U2VydmljZS5leGVjdXRlSW1wb3J0SnNvbihldmVudC5rZXksIHRoaXMuY29uZmlnPy5kYXRhPy5mb3JtTmFtZSlcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdyaWRDb21wb25lbnQucmVmcmVzaCh0cnVlKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGltcG9ydGluZyBqc29uOicsIGVycm9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZXZlbnQuZmllbGQgPT0gJ2RlbGV0ZUZyb21EYXRhYmFzZScpIHtcclxuICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oXHJcbiAgICAgICAgTG9jYWxpemF0aW9uS2V5cy5jb25maXJtRGVsZXRlLFxyXG4gICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWxlSW1wb3J0U2VydmljZS5kZWxldGVJbXBvcnQoZXZlbnQua2V5LCB0aGlzLmNvbmZpZz8uZGF0YT8uYnVzaW5lc3NDbGFzcylcclxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgYXN5bmMgcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdyaWRDb21wb25lbnQucmVmcmVzaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5R3JpZERhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLm1vZGVsZUltcG9ydFNlcnZpY2UuR2V0SW1wb3J0SGlzdG9yeSh0aGlzLmNvbmZpZz8uZGF0YT8uYnVzaW5lc3NDbGFzcykpXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKExvY2FsaXphdGlvbktleXMuZGVsZXRlZFN1Y2Nlc3NmdWxseSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbXBvcnRpbmcganNvbjonLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPHAtdGFiVmlldz5cclxuICA8cC10YWJQYW5lbCBbaGVhZGVyXT1cIidzaGFyZWRfZXhlY3V0ZV9pbXBvcnRfbW9kZWxfaW1wb3J0X2V4cG9ydCcgfCBsb2NhbGl6ZVwiIGNsYXNzPVwicHQtMyBweC0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICA8ZGl2ICpidXN5PVwiaXNsb2FkaW5nXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgY29sLTEwXCI+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8VHNpLUxhYmVsIGNsYXNzPVwiY29sLTJcIiBbbGFiZWxWYWx1ZV09XCInc2hhcmVkX3JlcG9ydGluZ19mb3JtJ1wiPlxyXG4gICAgICAgICAgICA8L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPCEtLSA8cC1kcm9wZG93biBjbGFzcz1cImNvbC0xMCB0c2ktY29tcG9uZW50XCIgY2xhc3M9XCJ0c2ktY29tcG9uZW50XCIgc3R5bGVDbGFzcz1cInRzaS1jb21wb25lbnRcIiBhcHBlbmRUcD1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ2YWx1ZVwiIG9wdGlvblZhbHVlPVwia2V5XCIgW2ZpbHRlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIGZpbHRlckJ5PVwidmFsdWVcIiBbc2hvd0NsZWFyXT1cInRydWVcIiBwbGFjZWhvbGRlcj1cInt7J3NoYXJlZF9yZXBvcnRpbmdfc2VsZWN0X2Zvcm0nIHwgbG9jYWxpemV9fVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgIDwvcC1kcm9wZG93bj4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8cC10b29sYmFyIHN0eWxlQ2xhc3M9XCJtYi00IGdhcC0yXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImxlZnRcIj5cclxuICAgICAgICAgIDxUc2ktQnV0dG9uIFt0ZXh0XT1cIidzaGFyZWRfcmVwb3J0aW5nX2FkZF9yZXBvcnQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICBpY29uPVwicC1idXR0b24taWNvbiBwLWJ1dHRvbi1pY29uLWxlZnQgcGkgcGktcGx1c1wiXHJcbiAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJwLWVsZW1lbnQgcC1idXR0b24tc3VjY2VzcyBtci0yIHAtYnV0dG9uIHAtY29tcG9uZW50IG5nLXN0YXItaW5zZXJ0ZWQgcC1idXR0b24tbGFiZWxcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib3Blbk1vZGFsKClcIj48L1RzaS1CdXR0b24+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicmlnaHRcIj5cclxuICAgICAgICAgIDxwLWZpbGVVcGxvYWQgI2ZpbGVVcGxvYWQgbmFtZT1cImRlbW9bXVwiIChvbkJlZm9yZVVwbG9hZCk9XCJvbkltcG9ydEZpbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChvblNlbGVjdCk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCIgKG9uQ2xlYXIpPVwib25DbGVhcigkZXZlbnQpXCIgKG9uUmVtb3ZlKT1cIm9uUmVtb3ZlKCRldmVudClcIlxyXG4gICAgICAgICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIiBhY2NlcHQ9XCJhcHBsaWNhdGlvbi9qc29uXCIgW21heEZpbGVTaXplXT1cIjEwMDAwMDBcIlxyXG4gICAgICAgICAgICBbaW52YWxpZEZpbGVTaXplTWVzc2FnZVN1bW1hcnldPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfc2l6ZV9tZXNzYWdlX3N1bW1hcnknIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICBbaW52YWxpZEZpbGVTaXplTWVzc2FnZURldGFpbF09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV9zaXplX21lc3NhZ2VfZGV0YWlsJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgW2ludmFsaWRGaWxlVHlwZU1lc3NhZ2VTdW1tYXJ5XT1cIidzaGFyZWRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlX3R5cGVfbWVzc2FnZV9zdW1tYXJ5JyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgW2ludmFsaWRGaWxlTGltaXRNZXNzYWdlRGV0YWlsXT1cIidzaGFyZWRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlX2xpbWl0X21lc3NhZ2VfZGV0YWlsJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgW2ludmFsaWRGaWxlTGltaXRNZXNzYWdlU3VtbWFyeV09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV9saW1pdF9tZXNzYWdlX3N1bW1hcnknIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICBbaW52YWxpZEZpbGVUeXBlTWVzc2FnZURldGFpbF09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV90eXBlX21lc3NhZ2VfZGV0YWlsJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgW2Nob29zZUljb25dPVwiJ3BpIHBpLXBhcGVyY2xpcCdcIiBjYW5jZWxTdHlsZUNsYXNzPVwicC1idXR0b24tc2Vjb25kYXJ5XCIgdXBsb2FkU3R5bGVDbGFzcz1cInAtYnV0dG9uLWhlbHBcIlxyXG4gICAgICAgICAgICByZW1vdmVTdHlsZUNsYXNzPVwicC1idXR0b24tZGFuZ2VyXCIgW2Nob29zZUxhYmVsXT1cIidzaGFyZWRfcmVwb3J0aW5nX2Nob29zZV9yZXBvcnRfZmlsZScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgIFt1cGxvYWRMYWJlbF09XCInc2hhcmVkX3JlcG9ydGluZ19pbXBvcnRfcmVwb3J0JyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgW2NhbmNlbExhYmVsXT1cIidzaGFyZWRfcmVwb3J0aW5nX2NhbmNlbF9jaG9vc2VfcmVwb3J0X2ZpbGUnIHwgbG9jYWxpemVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwidG9VcGxvYWRGaWxlRGF0YVwiIHBUZW1wbGF0ZT1cImZpbGV1cGxvYWQtY29udGVudFwiIGxldC1maWxlcz5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZmlsZXM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyBmaWxlc1swXS5uYW1lIH19PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L3AtZmlsZVVwbG9hZD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L3AtdG9vbGJhcj5cclxuXHJcbiAgICAgIDx0c2ktdmlldy1ncmlkICN2aWV3R3JpZCBbaGVhZGVyXT1cIidzaGFyZWRfZXhlY3V0ZV9pbXBvcnRfbW9kZWxfaW1wb3J0X2V4cG9ydCcgIHxsb2NhbGl6ZVwiXHJcbiAgICAgICAgW3NlYXJjaEZpZWxkc109XCJzZWFyY2hGaWVsZHNcIiBbc2hvd0NvbnN1bHRCdXR0b25dPVwiZmFsc2VcIiBbZ2V0RGF0YUZyb21BcGldPVwidHJ1ZVwiXHJcbiAgICAgICAgW2NydWRTZXJ2aWNlXT1cIm1vZGVsZUltcG9ydFNlcnZpY2VcIiAoYnV0dG9uQ29sdW1uQ2xpY2tlZCk9XCJidXR0b25DbGlja2VkKCRldmVudClcIlxyXG4gICAgICAgIFtmb3JtTmFtZV09XCInYXBwLW1hbmFnZS1pbXBvcnQtZXhwb3J0J1wiIFtjb2x1bW5zXT1cImNvbHVtbnNcIiBrZXk9XCJ1aWRcIiBbc2VsZWN0S2V5T25seV09XCJmYWxzZVwiPlxyXG4gICAgICA8L3RzaS12aWV3LWdyaWQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L3AtdGFiUGFuZWw+XHJcblxyXG4gIDxwLXRhYlBhbmVsIFtoZWFkZXJdPVwiJ3NoYXJlZF9leGVjdXRlX2ltcG9ydF9tb2RlbF9pbXBvcnRfZXhwb3J0X2RlZmF1bHQnIHwgbG9jYWxpemVcIiBjbGFzcz1cInB0LTMgcHgtMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cclxuICAgICAgPHRzaS12aWV3LWdyaWQgY2xhc3M9XCJjb2wtMTJcIiBbaGVhZGVyXT1cIidzaGFyZWRfZXhlY3V0ZV9pbXBvcnRfbW9kZWxfaW1wb3J0X2V4cG9ydF9kZWZhdWx0JyAgfGxvY2FsaXplXCJcclxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zSnNvblwiIFtnZXREYXRhRnJvbUFwaV09XCJmYWxzZVwiIFtncmlkRGF0YV09XCJncmlkRGF0YVwiIFtrZXldPVwia2V5XCJcclxuICAgICAgICBbZm9ybU5hbWVdPVwiJ21vZGVsZS1pbXBvcnQtcGFyLWRlZmF1bHQnXCJcclxuICAgICAgICAoYnV0dG9uQ29sdW1uQ2xpY2tlZCk9XCJoYW5kbGVCdXR0b25Db2x1bW5FeGVjdXRlQ2xpY2tlZCgkZXZlbnQpXCI+PC90c2ktdmlldy1ncmlkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9wLXRhYlBhbmVsPlxyXG5cclxuICA8cC10YWJQYW5lbCBbaGVhZGVyXT1cIidzaGFyZWRfZXhlY3V0ZV9pbXBvcnRfaGlzdG9yeScgfCBsb2NhbGl6ZVwiIGNsYXNzPVwicHQtMyBweC0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICA8dHNpLXZpZXctZ3JpZCBjbGFzcz1cImNvbC0xMlwiIFtoZWFkZXJdPVwiJ3NoYXJlZF9leGVjdXRlX2ltcG9ydF9oaXN0b3J5JyAgfGxvY2FsaXplXCIgW2NvbHVtbnNdPVwiY29sdW1uc0hpc3RvcnlcIlxyXG4gICAgICAgIFtnZXREYXRhRnJvbUFwaV09XCJmYWxzZVwiIFtncmlkRGF0YV09XCJoaXN0b3J5R3JpZERhdGFcIiBba2V5XT1cImltcG9ydEhpc3RvcnlLZXlcIlxyXG4gICAgICAgIFtmb3JtTmFtZV09XCInbW9kZWxlLWltcG9ydC1wYXItZGVmYXVsdCdcIlxyXG4gICAgICAgIChidXR0b25Db2x1bW5DbGlja2VkKT1cImhhbmRsZUJ1dHRvbkNvbHVtbkV4ZWN1dGVDbGlja2VkKCRldmVudClcIj48L3RzaS12aWV3LWdyaWQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L3AtdGFiUGFuZWw+XHJcblxyXG4gIDxwLXRhYlBhbmVsIFtoZWFkZXJdPVwiJ3NoYXJlZF9leGVjdXRlX2ltcG9ydF93aXRob3V0X21vZGVsJyB8IGxvY2FsaXplXCIgY2xhc3M9XCJwdC0zIHB4LTJcIj5cclxuICAgIDxkaXYgKmJ1c3k9XCJpc2xvYWRpbmdcIj48L2Rpdj5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCI+XHJcbiAgICAgIDxwLWZpbGVVcGxvYWQgI2ltcG9ydEZpbGVUb1JlcG9ydEZpbGVVcGxvYWQgbmFtZT1cImltcG9ydEZpbGVUb1JlcG9ydFwiIFttdWx0aXBsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgKG9uU2VsZWN0KT1cIm9uSW1wb3J0RmlsZVdpdGhvdXRNb2RlbF9GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiIChvbkNsZWFyKT1cIm9uSW1wb3J0RmlsZVdpdGhvdXRNb2RlbF9DbGVhcigkZXZlbnQpXCJcclxuICAgICAgICAob25CZWZvcmVVcGxvYWQpPVwib25JbXBvcnRGaWxlV2l0aG91dE1vZGVsX0ltcG9ydEZpbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uUmVtb3ZlKT1cIm9uSW1wb3J0RmlsZVdpdGhvdXRNb2RlbF9SZW1vdmUoJGV2ZW50KVwiIGFjY2VwdD1cIi54bHMsLnhsc3hcIiBbbWF4RmlsZVNpemVdPVwiMTAwMDAwMDBcIlxyXG4gICAgICAgIFtpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeV09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV9zaXplX21lc3NhZ2Vfc3VtbWFyeScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2ludmFsaWRGaWxlU2l6ZU1lc3NhZ2VEZXRhaWxdPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfc2l6ZV9tZXNzYWdlX2RldGFpbCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2ludmFsaWRGaWxlVHlwZU1lc3NhZ2VTdW1tYXJ5XT1cIidzaGFyZWRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlX3R5cGVfbWVzc2FnZV9zdW1tYXJ5JyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWxdPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfbGltaXRfbWVzc2FnZV9kZXRhaWwnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnldPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfbGltaXRfbWVzc2FnZV9zdW1tYXJ5JyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbaW52YWxpZEZpbGVUeXBlTWVzc2FnZURldGFpbF09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV90eXBlX21lc3NhZ2VfZGV0YWlsJyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbY2hvb3NlSWNvbl09XCIncGkgcGktcGFwZXJjbGlwJ1wiIGNhbmNlbFN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1zZWNvbmRhcnlcIiB1cGxvYWRTdHlsZUNsYXNzPVwicC1idXR0b24taGVscFwiXHJcbiAgICAgICAgcmVtb3ZlU3R5bGVDbGFzcz1cInAtYnV0dG9uLWRhbmdlclwiIFtjaG9vc2VMYWJlbF09XCInc2hhcmVkX3JlcG9ydGluZ19jaG9vc2VfcmVwb3J0X2ZpbGUnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFt1cGxvYWRMYWJlbF09XCInc2hhcmVkX3JlcG9ydGluZ19pbXBvcnRfcmVwb3J0JyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbY2FuY2VsTGFiZWxdPVwiJ3NoYXJlZF9yZXBvcnRpbmdfY2FuY2VsX2Nob29zZV9yZXBvcnRfZmlsZScgfCBsb2NhbGl6ZVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRvVXBsb2FkV2l0aG91dE1vZGVsXCIgcFRlbXBsYXRlPVwiZmlsZXVwbG9hZC1jb250ZW50XCIgbGV0LWZpbGVzPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImZpbGVzPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPHN0cm9uZz57eyBmaWxlc1swXS5uYW1lIH19PC9zdHJvbmc+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L3AtZmlsZVVwbG9hZD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9wLXRhYlBhbmVsPlxyXG5cclxuICA8cC10YWJQYW5lbCBbaGVhZGVyXT1cIidzaGFyZWRfaW1wb3J0X3Jlc3VsdF9oZWFkZXInIHwgbG9jYWxpemVcIiBjbGFzcz1cInB0LTMgcHgtMlwiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwLTFcIj5cclxuICAgICAgPFRzaS1CdXR0b24gKG9uQ2xpY2spPVwiZ2V0SW1wb3J0UmVzdWx0KClcIlxyXG4gICAgICAgIHN0eWxlQ2xhc3M9XCJwLWVsZW1lbnQgcC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yYWlzZWQgcC1idXR0b24tcm91bmRlZCBtci0yIHAtYnV0dG9uIHAtY29tcG9uZW50IHAtYnV0dG9uLWljb24tb25seVwiXHJcbiAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidzaGFyZWRfaW1wb3J0X2V4cG9ydF9yZWZyZXNoJ1wiIFt0b29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uLlRvcFwiXHJcbiAgICAgICAgaWNvbj1cInAtYnV0dG9uLWljb24gcGkgcGktcmVmcmVzaFwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yYWlzZWQgcC1idXR0b24tcm91bmRlZCBtci0yXCI+PC9Uc2ktQnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cclxuICAgICAgPHRzaS12aWV3LWdyaWQgY2xhc3M9XCJjb2wtMTJcIiBbaGVhZGVyXT1cIidzaGFyZWRfaW1wb3J0X3Jlc3VsdF9oZWFkZXInICB8bG9jYWxpemVcIiBbY29sdW1uc109XCJpbXBvcnRSZXN1bHRzQ29sdW1uc1wiXHJcbiAgICAgICAgW2dldERhdGFGcm9tQXBpXT1cImZhbHNlXCIgW2dyaWREYXRhXT1cImltcG9ydFJlc3VsdERhdGFcIiBba2V5XT1cIid1aWQnXCIgW2Zvcm1OYW1lXT1cIidtb2RlbGUtaW1wb3J0LXJlc3VsdC1pbXBvcnQnXCJcclxuICAgICAgICAoYnV0dG9uQ29sdW1uQ2xpY2tlZCk9XCJoYW5kbGVDb25zdWx0SW1wb3J0UmVzdWx0QnV0dG9uQ2xpY2tlZCgkZXZlbnQpXCI+PC90c2ktdmlldy1ncmlkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9wLXRhYlBhbmVsPlxyXG5cclxuPC9wLXRhYlZpZXc+XHJcblxyXG48ZGl2IGNsYXNzPVwicC0xXCI+XHJcbiAgPFRzaS1CdXR0b25cclxuICAgIHN0eWxlQ2xhc3M9XCJwLWVsZW1lbnQgcC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yYWlzZWQgcC1idXR0b24tcm91bmRlZCBtci0yIHAtYnV0dG9uIHAtY29tcG9uZW50IHAtYnV0dG9uLWljb24tb25seVwiXHJcbiAgICBbdG9vbHRpcFRleHRdPVwiJ3NoYXJlZF9pbXBvcnRfZXhwb3J0X3JlZnJlc2gnXCIgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb24uVG9wXCJcclxuICAgIGljb249XCJwLWJ1dHRvbi1pY29uIHBpIHBpLXJlZnJlc2hcIiAob25DbGljayk9XCJyZWZyZXNoSW1wb3J0RXhwb3J0RGF0YSgpXCJcclxuICAgIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yYWlzZWQgcC1idXR0b24tcm91bmRlZCBtci0yXCI+PC9Uc2ktQnV0dG9uPlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gZGlhbG9nIHRvIGltcG9ydCBmaWxlIHRvIHJlcG9ydCAtLT5cclxuPHAtZGlhbG9nIGhlYWRlcj1cInt7J3NoYXJlZF9yZXBvcnRpbmdfc2VsZWN0X2ZpbGVfdG9faW1wb3J0X2ludG9fcmVwb3J0JyB8IGxvY2FsaXplfX1cIlxyXG4gIFsodmlzaWJsZSldPVwiaXNJbXBvcnRGaWxlVG9FeGVjdXRlVmlzaWJsZVwiIFtzdHlsZV09XCJ7d2lkdGg6ICc1MHZ3J31cIj5cclxuICA8IS0tIDxUc2ktTW9kYWwtSGVhZGVyIChvbkNsb3NlQ2xpY2spPVwib25JbXBvcnRGaWxlVG9SZXBvcnRNb2RhbENhbmNlbENsaWNrKClcIiBbaW5wdXRUaXRsZV09XCInc2hhcmVkX3JlcG9ydGluZ19zZWxlY3RfZmlsZV90b19pbXBvcnRfaW50b19yZXBvcnQnXCI+PC9Uc2ktTW9kYWwtSGVhZGVyPiAtLT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIj5cclxuICAgIDxwLWZpbGVVcGxvYWQgI2ltcG9ydEZpbGVUb1JlcG9ydEZpbGVVcGxvYWQgbmFtZT1cImltcG9ydEZpbGVUb1JlcG9ydFwiIFttdWx0aXBsZV09XCJmYWxzZVwiXHJcbiAgICAgIChvblNlbGVjdCk9XCJvbkltcG9ydEZpbGVUb0V4ZWN1dGVfRmlsZVNlbGVjdGVkKCRldmVudClcIiAob25DbGVhcik9XCJvbkltcG9ydEZpbGVUb0V4ZWN1dGVfQ2xlYXIoJGV2ZW50KVwiXHJcbiAgICAgIChvbkJlZm9yZVVwbG9hZCk9XCJvbkltcG9ydEZpbGVUb0V4ZWN1dGVfSW1wb3J0RmlsZSgkZXZlbnQpXCIgKG9uUmVtb3ZlKT1cIm9uSW1wb3J0RmlsZVRvRXhlY3V0ZV9SZW1vdmUoJGV2ZW50KVwiXHJcbiAgICAgIGFjY2VwdD1cInt7ZmlsZVR5cGV9fVwiIFttYXhGaWxlU2l6ZV09XCIxMDAwMDAwMFwiXHJcbiAgICAgIFtpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeV09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV9zaXplX21lc3NhZ2Vfc3VtbWFyeScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgIFtpbnZhbGlkRmlsZVNpemVNZXNzYWdlRGV0YWlsXT1cIidzaGFyZWRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlX3NpemVfbWVzc2FnZV9kZXRhaWwnIHwgbG9jYWxpemVcIlxyXG4gICAgICBbaW52YWxpZEZpbGVUeXBlTWVzc2FnZVN1bW1hcnldPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfdHlwZV9tZXNzYWdlX3N1bW1hcnknIHwgbG9jYWxpemVcIlxyXG4gICAgICBbaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWxdPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfbGltaXRfbWVzc2FnZV9kZXRhaWwnIHwgbG9jYWxpemVcIlxyXG4gICAgICBbaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VTdW1tYXJ5XT1cIidzaGFyZWRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlX2xpbWl0X21lc3NhZ2Vfc3VtbWFyeScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgIFtpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsXT1cIidzaGFyZWRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlX3R5cGVfbWVzc2FnZV9kZXRhaWwnIHwgbG9jYWxpemVcIlxyXG4gICAgICBbY2hvb3NlSWNvbl09XCIncGkgcGktcGFwZXJjbGlwJ1wiIGNhbmNlbFN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1zZWNvbmRhcnlcIiB1cGxvYWRTdHlsZUNsYXNzPVwicC1idXR0b24taGVscFwiXHJcbiAgICAgIHJlbW92ZVN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1kYW5nZXJcIiBbY2hvb3NlTGFiZWxdPVwiJ3NoYXJlZF9yZXBvcnRpbmdfY2hvb3NlX3JlcG9ydF9maWxlJyB8IGxvY2FsaXplXCJcclxuICAgICAgW3VwbG9hZExhYmVsXT1cIidzaGFyZWRfcmVwb3J0aW5nX2ltcG9ydF9yZXBvcnQnIHwgbG9jYWxpemVcIlxyXG4gICAgICBbY2FuY2VsTGFiZWxdPVwiJ3NoYXJlZF9yZXBvcnRpbmdfY2FuY2VsX2Nob29zZV9yZXBvcnRfZmlsZScgfCBsb2NhbGl6ZVwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJ0b1VwbG9hZFRvRXhlY3V0ZUZpbGVcIiBwVGVtcGxhdGU9XCJmaWxldXBsb2FkLWNvbnRlbnRcIiBsZXQtZmlsZXM+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImZpbGVzPy5sZW5ndGhcIj5cclxuICAgICAgICAgIDxzdHJvbmc+e3sgZmlsZXNbMF0ubmFtZSB9fTwvc3Ryb25nPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wLWZpbGVVcGxvYWQ+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG4gIDwhLS0gPFRzaS1Nb2RhbC1Gb290ZXIgKG9uQ2FuY2VsQ2xpY2spPVwib25JbXBvcnRGaWxlVG9SZXBvcnRNb2RhbENhbmNlbENsaWNrKClcIlxyXG4gICAgKG9uU2F2ZUNsaWNrKT1cIm9uSW1wb3J0RmlsZVRvUmVwb3J0TW9kYWxTYXZlQ2xpY2soKVwiXHJcbiAgICBbc2F2ZURpc2FibGVkXT1cIiF0b1VwbG9hZFRvVXBkYXRlUmVwb3J0RmlsZURhdGFcIj48L1RzaS1Nb2RhbC1Gb290ZXI+IC0tPlxyXG5cclxuPC9wLWRpYWxvZz4iXX0=
|
|
506
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWltcG9ydC1leHBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL21hbmFnZS1pbXBvcnQtZXhwb3J0L21hbmFnZS1pbXBvcnQtZXhwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy9tYW5hZ2UtaW1wb3J0LWV4cG9ydC9tYW5hZ2UtaW1wb3J0LWV4cG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNyRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUMzSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxvQkFBb0IsRUFBNkIsTUFBTSxjQUFjLENBQUM7QUFFL0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDaEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFB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QUFTO3VCQUFDLG9CQUFvQjtnQkFDTixZQUFZO3NCQUFwQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0EsaUJBQWlCO3NCQUF2QyxTQUFTO3VCQUFDLFVBQVU7Z0JBZ0R1Qiw2QkFBNkI7c0JBQXhFLFNBQVM7dUJBQUMsK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICdwcmltZW5nL2ZpbGV1cGxvYWQnO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBbGVydEltcG9ydE1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9hbGVydC1pbXBvcnQtbWVzc2FnZS9hbGVydC1pbXBvcnQtbWVzc2FnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDcmVhdGVPckVkaXRNb2RlbGVJbXBvcnRDb21wb25lbnQgfSBmcm9tICcuLi9jcmVhdGUtb3ItZWRpdC1tb2RlbGUtaW1wb3J0L2NyZWF0ZS1vci1lZGl0LW1vZGVsZS1pbXBvcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHNpVmlld0dyaWRDb21wb25lbnQgfSBmcm9tICcuLi9vdXRwdXQtY29tcG9uZW50cy90c2ktdmlldy1ncmlkL3RzaS12aWV3LWdyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vZW51bXMvdG9vbHRpcFBvc2l0aW9uLmVudW0nO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uS2V5cyB9IGZyb20gJy4uLy4uL2NvbnN0cy9sb2NhbGl6YXRpb24ta2V5JztcclxuaW1wb3J0IHsgSW5wdXRUeXBlcywgRmlsdGVyT3BlcmF0b3JUeXBlLCBNb2RlcywgRGlzcGxheVR5cGVzIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xyXG5pbXBvcnQgeyBHcmlkQ29sdW1uLCBCdXR0b25DbGlja1Jlc3VsdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBFeGVjdXRlSW1wb3J0UmVxdWVzdCwgSW1wb3J0UmVzdWx0LCBTZWFyY2hGaWVsZCB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IE1vZGVsZUltcG9ydFNlcnZpY2UsIFRzaUNvbmZpcm1hdGlvblNlcnZpY2UsIFRzaU5vdGlmaWNhdGlvblNlcnZpY2UsIEVycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZSwgVHNpTWVzc2FnZVNlcnZpY2UsIFRzaU1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVHNpRm9ybUNvbXBvbmVudEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi90c2ktYmFzZS9jb21wb25lbnRzL3RzaS1mb3JtLWJhc2UvdHNpLWZvcm0tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWdtZW50IH0gZnJvbSAnLi4vLi4vZW5kLXBvaW50cyc7XHJcbmltcG9ydCB7IGFwcFByb3ZpZGVycyB9IGZyb20gJy4uLy4uL2NvbnN0cy9hcHAtcHJvdmlkZXJzJztcclxuaW1wb3J0IHsgRHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IEZpbGVUeXBlSW1wb3J0RW51bSB9IGZyb20gJy4uLy4uL2VudW1zL2ZpbGUtdHlwZS1pbXBvcnQtZW51bSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbWFuYWdlLWltcG9ydC1leHBvcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tYW5hZ2UtaW1wb3J0LWV4cG9ydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgLy9lbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHN0eWxlVXJsczogWycuL21hbmFnZS1pbXBvcnQtZXhwb3J0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbLi4uYXBwUHJvdmlkZXJzXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFuYWdlSW1wb3J0RXhwb3J0Q29tcG9uZW50IGV4dGVuZHMgVHNpRm9ybUNvbXBvbmVudEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoVHNpVmlld0dyaWRDb21wb25lbnQpIGdyaWRDb21wb25lbnQhOiBUc2lWaWV3R3JpZENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdmaWxlVXBsb2FkJykgZmlsZVVwbG9hZGVyITogRmlsZVVwbG9hZDtcclxuICBAVmlld0NoaWxkKFwidmlld0dyaWRcIikgdmlld0dyaWRDb21wb25lbnQ/OiBUc2lWaWV3R3JpZENvbXBvbmVudDtcclxuICB0b29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XHJcblxyXG4gIHRvVXBsb2FkRmlsZURhdGE6IGFueTtcclxuICBvblJlbW92ZSgkZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50b1VwbG9hZEZpbGVEYXRhID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuICBvbkNsZWFyKCRldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnRvVXBsb2FkRmlsZURhdGEgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBldmVudC5jdXJyZW50RmlsZXNbMF07XHJcbiAgICB0aGlzLnRvVXBsb2FkRmlsZURhdGEgPSBmaWxlO1xyXG4gIH1cclxuICBvbkltcG9ydEZpbGUoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5tb2RlbGVJbXBvcnRTZXJ2aWNlLnVwbG9hZEpzb25GaWxlKHRoaXMudG9VcGxvYWRGaWxlRGF0YSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3IgPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoJ3NoYXJlZF9pbXBvcnRNb2RlbGVfanNvbl91cGxvYWRlZF9zdWNjZXNzZnVsbHknKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihyZXNwb25zZS5tZXNzYWdlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5ncmlkQ29tcG9uZW50LnJlZnJlc2godHJ1ZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIpXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICB0aGlzLmZpbGVVcGxvYWRlci5jbGVhcigpXHJcbiAgfVxyXG5cclxuICBjb2x1bW5zSnNvbjogQXJyYXk8R3JpZENvbHVtbj4gPSBbXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogXCJzaGFyZWRfaW1wb3J0TW9kZWxlX2pzb25fbmFtZVwiLFxyXG4gICAgICBmaWVsZDogXCJqc29uRmlsZU5hbWVcIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiAnJyxcclxuICAgICAgZmllbGQ6ICdmcm9tSnNvblRvRGF0YWJhc2UnLFxyXG4gICAgICBpc0J1dHRvbjogdHJ1ZSxcclxuICAgICAgYnV0dG9uSWNvbjogJ3BpIHBpLWFycm93LWNpcmNsZS11cCcsXHJcbiAgICAgIHN0eWxlQ2xhc3M6ICdwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXNlY29uZGFyeSdcclxuICAgIH0sXHJcbiAgXTtcclxuICBrZXk6IHN0cmluZyA9ICdqc29uRmlsZU5hbWUnO1xyXG4gIGdyaWREYXRhOiBhbnlcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW1wb3J0RmlsZVRvRXhlY3V0ZUZpbGVVcGxvYWQnKSBpbXBvcnRGaWxlVG9FeGVjdXRlRmlsZVVwbG9hZD86IEZpbGVVcGxvYWQ7XHJcblxyXG4gIGNvbHVtbnM6IGFueVxyXG5cclxuICBpc0ltcG9ydEZpbGVUb0V4ZWN1dGVWaXNpYmxlOiBib29sZWFuID0gZmFsc2VcclxuICB0b1VwbG9hZFRvRXhlY3V0ZUZpbGU6IGFueSA9IHVuZGVmaW5lZFxyXG4gIHRvVXBsb2FkV2l0aG91dE1vZGVsOiBhbnkgPSB1bmRlZmluZWRcclxuICB0b0ltcG9ydE1vZGVsZVVpZD86IHN0cmluZ1xyXG5cclxuICBjb2x1bW5zSGlzdG9yeTogQXJyYXk8R3JpZENvbHVtbj4gPSBbXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogXCJzaGFyZWRfaW1wb3J0TW9kZWxlX2NvZGVfaW1wb3J0XCIsXHJcbiAgICAgIGZpZWxkOiBcImNvZGVJbXBvcnRcIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiBcInNoYXJlZF9pbXBvcnRNb2RlbGVfZGF0ZV9pbXBvcnRcIixcclxuICAgICAgZmllbGQ6IFwiZGF0ZUltcG9ydFwiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6IFwic2hhcmVkX2ltcG9ydE1vZGVsZV9ub21icmVfbGlnbmVzXCIsXHJcbiAgICAgIGZpZWxkOiBcIm5vbWJyZUxpZ25lc1wiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6ICcnLFxyXG4gICAgICBmaWVsZDogJ2RlbGV0ZUZyb21EYXRhYmFzZScsXHJcbiAgICAgIGlzQnV0dG9uOiB0cnVlLFxyXG4gICAgICBidXR0b25JY29uOiAncGkgcGktdHJhc2gnLFxyXG4gICAgICBzdHlsZUNsYXNzOiAncC1idXR0b24tdGV4dCBwLWJ1dHRvbi1zZWNvbmRhcnknXHJcbiAgICB9LFxyXG4gIF07XHJcbiAgaGlzdG9yeUdyaWREYXRhOiBhbnlcclxuICBpbXBvcnRIaXN0b3J5S2V5OiBzdHJpbmcgPSAnY29kZUltcG9ydCc7XHJcblxyXG4gIGZpbGVUeXBlIDogc3RyaW5nID0gXCIueGxzLC54bHN4XCI7XHJcblxyXG4gIGltcG9ydFJlc3VsdERhdGE6IEFycmF5PEltcG9ydFJlc3VsdD4gPSBbXVxyXG5cclxuICBzZWFyY2hGaWVsZHM6IEFycmF5PFNlYXJjaEZpZWxkPiA9IFtcclxuICBdXHJcblxyXG4gIGltcG9ydFJlc3VsdHNDb2x1bW5zOiBBcnJheTxHcmlkQ29sdW1uPiA9IFtcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiAnJyxcclxuICAgICAgZmllbGQ6ICdjb25zdWx0RGV0YWlsJyxcclxuICAgICAgaXNCdXR0b246IHRydWUsXHJcbiAgICAgIGJ1dHRvbkljb246ICdwaSBwaS1leWUnLFxyXG4gICAgICBzdHlsZUNsYXNzOiAncC1idXR0b24tdGV4dCBwLWJ1dHRvbi1zZWNvbmRhcnknXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6IFwic2hhcmVkX2ltcG9ydF9yZXN1bHRfbW9kZWxlX2ltcG9ydF9saWJlbGxlXCIsXHJcbiAgICAgIGZpZWxkOiBcIm1vZGVsZUltcG9ydExpYmVsbGVcIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiBcInNoYXJlZF9pbXBvcnRfcmVzdWx0X21vZGVsZV91dGlsaXNhdGV1clwiLFxyXG4gICAgICBmaWVsZDogXCJ1c2VyTmFtZVwiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6IFwic2hhcmVkX2ltcG9ydF9yZXN1bHRfZmlsZW5hbWVcIixcclxuICAgICAgZmllbGQ6IFwiZmlsZU5hbWVcIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiBcInNoYXJlZF9pbXBvcnRfcmVzdWx0X3N0YXJ0RGF0ZVwiLFxyXG4gICAgICBmaWVsZDogXCJzdGFydERhdGVcIixcclxuICAgICAgdHlwZTogRGlzcGxheVR5cGVzLkRBVEVUSU1FX0RJU1BMQVlcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogXCJzaGFyZWRfaW1wb3J0X3Jlc3VsdF9lbmRfZGF0ZVwiLFxyXG4gICAgICBmaWVsZDogXCJlbmREYXRlXCIsXHJcbiAgICAgIHR5cGU6IERpc3BsYXlUeXBlcy5EQVRFVElNRV9ESVNQTEFZXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6IFwic2hhcmVkX2ltcG9ydF9yZXN1bHRfc3RhdHVzXCIsXHJcbiAgICAgIGZpZWxkOiBcInN0YXR1c1wiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6IFwic2hhcmVkX2ltcG9ydF9yZXN1bHRfcHJvZ3Jlc3NcIixcclxuICAgICAgZmllbGQ6IFwicHJvZ3Jlc3NcIixcclxuICAgICAgdHlwZTogRGlzcGxheVR5cGVzLlJBVEVfRElTUExBWVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiBcInNoYXJlZF9pbXBvcnRfcmVzdWx0X3RvdGFsX2xpbmVzX251bWJlclwiLFxyXG4gICAgICBmaWVsZDogXCJ0b3RhbExpbmVzTnVtYmVyXCIsXHJcbiAgICAgIHR5cGU6IERpc3BsYXlUeXBlcy5JTlRFR0VSX0RJU1BMQVlcclxuICAgIH1cclxuICBdXHJcblxyXG4gIHByaXZhdGUgX2RpYWxvZ1JlZj86IER5bmFtaWNEaWFsb2dSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtb2RlbGVJbXBvcnRTZXJ2aWNlOiBNb2RlbGVJbXBvcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBUc2lDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBUc2lOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZywgcHJpdmF0ZSBfdHNpTW9kYWxTZXJ2aWNlOiBUc2lNb2RhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lcnJvclJlc3BvbnNlTWFuYWdlclNlcnZpY2U6IEVycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZSxcclxuICAgIHB1YmxpYyBvdmVycmlkZSByZWY/OiBEeW5hbWljRGlhbG9nUmVmKSB7XHJcbiAgICBzdXBlcihyZWYsIGNvbmZpZylcclxuICAgIHRoaXMuc2VhcmNoRmllbGRzID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgdHlwZTogSW5wdXRUeXBlcy5URVhUX0JPWCxcclxuICAgICAgICBmaWVsZDogXCJDbGFzc2VcIixcclxuICAgICAgICBsYWJlbFZhbHVlOiBcIkNsYXNzZVwiLFxyXG4gICAgICAgIG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvclR5cGUuRVFVQUwsXHJcbiAgICAgICAgc3R5bGVDbGFzczogJ2NvbC02JyxcclxuICAgICAgICBpbnB1dFN0eWxlQ2xhc3M6ICdjb2wtMycsXHJcbiAgICAgICAgbGFiZWxTdHlsZUNsYXNzOiAnY29sLTMnLFxyXG4gICAgICAgIGRpc2FibGVkOiB0cnVlLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLmNvbmZpZz8uZGF0YT8uYnVzaW5lc3NDbGFzc1xyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgICB0aGlzLmNvbHVtbnMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBmaWVsZDogJ25vbU1vZGVsZScsXHJcbiAgICAgICAgaGVhZGVyOiAnc2hhcmVkX2ltcG9ydE1vZGVsZV9ub20nXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBoZWFkZXI6ICcnLFxyXG4gICAgICAgIGZpZWxkOiAnZWRpdCcsXHJcbiAgICAgICAgaXNCdXR0b246IHRydWUsXHJcbiAgICAgICAgYnV0dG9uSWNvbjogJ3BpIHBpLWZpbGUtZWRpdCcsXHJcbiAgICAgICAgc3R5bGVDbGFzczogJ3AtYnV0dG9uLXRleHQgcC1idXR0b24tc3VjY2VzcycsXHJcbiAgICAgICAgdG9vbFRpcFRleHQ6ICdNb2RpZmllcidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGhlYWRlcjogJycsXHJcbiAgICAgICAgZmllbGQ6ICdleHBvcnRKc29uJyxcclxuICAgICAgICBpc0J1dHRvbjogdHJ1ZSxcclxuICAgICAgICBidXR0b25JY29uOiAncGkgcGktZmlsZS1leHBvcnQnLFxyXG4gICAgICAgIHN0eWxlQ2xhc3M6ICdwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLWhlbHAnLFxyXG4gICAgICAgIHRvb2xUaXBUZXh0OiAnRXhwb3J0ZXIgSnNvbidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGhlYWRlcjogJycsXHJcbiAgICAgICAgZmllbGQ6ICdleHBvcnQnLFxyXG4gICAgICAgIGlzQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgIGJ1dHRvbkljb246ICdwaSBwaS1maWxlLWV4Y2VsJyxcclxuICAgICAgICBzdHlsZUNsYXNzOiAncC1idXR0b24tdGV4dCBwLWJ1dHRvbi13YXJuaW5nJyxcclxuICAgICAgICB0b29sVGlwVGV4dDogJ0V4cG9ydGVyJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaGVhZGVyOiAnJyxcclxuICAgICAgICBmaWVsZDogJ2ltcG9ydCcsXHJcbiAgICAgICAgaXNCdXR0b246IHRydWUsXHJcbiAgICAgICAgYnV0dG9uSWNvbjogJ3BpIHBpLWZpbGUtaW1wb3J0JyxcclxuICAgICAgICBzdHlsZUNsYXNzOiAncC1idXR0b24tdGV4dCcsXHJcbiAgICAgICAgdG9vbFRpcFRleHQ6ICdJbXBvcnRlcidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGhlYWRlcjogJycsXHJcbiAgICAgICAgZmllbGQ6ICdkZWxldGUnLFxyXG4gICAgICAgIGlzQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgIGJ1dHRvbkljb246ICdwaSBwaS10cmFzaCcsXHJcbiAgICAgICAgc3R5bGVDbGFzczogJ3AtYnV0dG9uLXRleHQgcC1idXR0b24tZGFuZ2VyJyxcclxuICAgICAgICB0b29sVGlwVGV4dDogJ1N1cHByaW1lcidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGhlYWRlcjogJycsXHJcbiAgICAgICAgZmllbGQ6ICdkb3dubG9hZEpzb24nLFxyXG4gICAgICAgIGlzQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgIGJ1dHRvbkljb246ICdwaSBwaS1hcnJvdy1jaXJjbGUtZG93bicsXHJcbiAgICAgICAgc3R5bGVDbGFzczogJ3AtYnV0dG9uLXRleHQgcC1idXR0b24taGVscCcsXHJcbiAgICAgICAgdG9vbFRpcFRleHQ6ICdFeHBvcnQgSnNvbiBTZXJ2ZXInXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG4gIH1cclxuXHJcblxyXG4gIG92ZXJyaWRlIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIHN1cGVyLm5nT25Jbml0KClcclxuICAgIGxldCBkYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5tb2RlbGVJbXBvcnRTZXJ2aWNlLkdldEpzb25GaWxlcyh0aGlzLmNvbmZpZz8uZGF0YT8uZm9ybU5hbWUpKVxyXG4gICAgdGhpcy5ncmlkRGF0YSA9IGRhdGFcclxuICAgIGF3YWl0IHRoaXMuZ2V0SW1wb3J0UmVzdWx0KClcclxuICAgIGlmIChTZWdtZW50LnByb2R1Y3Rpb24pIHtcclxuICAgICAgbGV0IGJ1dHRvbkFkQnVpbHRpblRlbXBsYXRlc0luZGV4ID0gdGhpcy5jb2x1bW5zLmZpbmRJbmRleCgoY29sOiBHcmlkQ29sdW1uKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGNvbC5maWVsZCA9PSBcImRvd25sb2FkSnNvblwiXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmIChidXR0b25BZEJ1aWx0aW5UZW1wbGF0ZXNJbmRleCAhPSAtMSkge1xyXG4gICAgICAgIHRoaXMuY29sdW1ucy5zcGxpY2UoYnV0dG9uQWRCdWlsdGluVGVtcGxhdGVzSW5kZXgsIDEpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuaGlzdG9yeUdyaWREYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5tb2RlbGVJbXBvcnRTZXJ2aWNlLkdldEltcG9ydEhpc3RvcnkodGhpcy5jb25maWc/LmRhdGE/LmJ1c2luZXNzQ2xhc3MpKVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgcmVmcmVzaEltcG9ydEV4cG9ydERhdGEoKXtcclxuICAgIGxldCBkYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5tb2RlbGVJbXBvcnRTZXJ2aWNlLkdldEpzb25GaWxlcyh0aGlzLmNvbmZpZz8uZGF0YT8uZm9ybU5hbWUpKVxyXG4gICAgdGhpcy5ncmlkRGF0YSA9IGRhdGFcclxuICAgIGF3YWl0IHRoaXMuZ2V0SW1wb3J0UmVzdWx0KClcclxuICAgIHRoaXMuaGlzdG9yeUdyaWREYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5tb2RlbGVJbXBvcnRTZXJ2aWNlLkdldEltcG9ydEhpc3RvcnkodGhpcy5jb25maWc/LmRhdGE/LmJ1c2luZXNzQ2xhc3MpKVxyXG4gIH1cclxuXHJcbiAgb3Blbk1vZGFsKCkge1xyXG4gICAgdGhpcy5fZGlhbG9nUmVmID0gdGhpcy5fdHNpTW9kYWxTZXJ2aWNlLm9wZW4oQ3JlYXRlT3JFZGl0TW9kZWxlSW1wb3J0Q29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBlbnRpdHlCdXNpbmVzc0NsYXNzOiB0aGlzLmNvbmZpZz8uZGF0YT8uYnVzaW5lc3NDbGFzcyxcclxuICAgICAgICBmb3JtTmFtZTogdGhpcy5jb25maWc/LmRhdGE/LmZvcm1OYW1lLFxyXG4gICAgICAgIG1vZGU6IE1vZGVzLmNyZWF0ZVxyXG4gICAgICB9LFxyXG4gICAgICBzdHlsZUNsYXNzOiAnJyxcclxuICAgICAgd2lkdGg6ICc3NXZ3JyxcclxuICAgICAgaGVpZ2h0OiAnNTV2dycsXHJcbiAgICAgIG1heGltaXphYmxlOiB0cnVlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fZGlhbG9nUmVmLm9uQ2xvc2Uuc3Vic2NyaWJlKCh2YWw/OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHRoaXMudmlld0dyaWRDb21wb25lbnQpIHtcclxuICAgICAgICB0aGlzLnZpZXdHcmlkQ29tcG9uZW50LnJlZnJlc2godHJ1ZSlcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRJbXBvcnRSZXN1bHQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnPy5kYXRhPy5idXNpbmVzc0NsYXNzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCBkYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5tb2RlbGVJbXBvcnRTZXJ2aWNlLmdldEltcG9ydFJlc3VsdEJ5QnVzaW5lc3NDbGFzcyh0aGlzLmNvbmZpZz8uZGF0YT8uYnVzaW5lc3NDbGFzcykpXHJcbiAgICAgIHRoaXMuaW1wb3J0UmVzdWx0RGF0YSA9IGRhdGFcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidXR0b25DbGlja2VkKGRhdGE6IEJ1dHRvbkNsaWNrUmVzdWx0KSB7XHJcbiAgICBpZiAoZGF0YS5maWVsZCA9PSBcImVkaXRcIikge1xyXG4gICAgICB0aGlzLl9kaWFsb2dSZWYgPSB0aGlzLl90c2lNb2RhbFNlcnZpY2Uub3BlbihDcmVhdGVPckVkaXRNb2RlbGVJbXBvcnRDb21wb25lbnQsIHtcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBpZDogZGF0YS5rZXk/LnVpZCxcclxuICAgICAgICAgIGVudGl0eUJ1c2luZXNzQ2xhc3M6IHRoaXMuY29uZmlnPy5kYXRhPy5idXNpbmVzc0NsYXNzLFxyXG4gICAgICAgICAgbW9kZTogTW9kZXMuZWRpdFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3R5bGVDbGFzczogJycsXHJcbiAgICAgICAgd2lkdGg6ICc3NXZ3JyxcclxuICAgICAgICBoZWlnaHQ6ICc1NXZ3JyxcclxuICAgICAgICBtYXhpbWl6YWJsZTogdHJ1ZSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLl9kaWFsb2dSZWYub25DbG9zZS5zdWJzY3JpYmUoKHZhbD86IGFueSkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnZpZXdHcmlkQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICB0aGlzLnZpZXdHcmlkQ29tcG9uZW50LnJlZnJlc2godHJ1ZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZGF0YS5maWVsZCA9PSBcImRlbGV0ZVwiKSB7XHJcbiAgICAgIHRoaXMuZGVsZXRlTW9kZWxlSW1wb3J0KGRhdGEua2V5Py51aWQpXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChkYXRhLmZpZWxkID09IFwiaW1wb3J0XCIpIHtcclxuICAgICAgdGhpcy5pc0ltcG9ydEZpbGVUb0V4ZWN1dGVWaXNpYmxlID0gdHJ1ZVxyXG4gICAgICB0aGlzLnRvSW1wb3J0TW9kZWxlVWlkID0gZGF0YS5rZXk/LnVpZFxyXG4gICAgICB0aGlzLmZpbGVUeXBlID0gZGF0YS5rZXk/LmZpbGVUeXBlID09IEZpbGVUeXBlSW1wb3J0RW51bS5YTFNYID8gXCIueGxzLC54bHN4XCIgOiBcIi5jc3ZcIlxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZGF0YS5maWVsZCA9PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgIHRoaXMuZXhwb3J0RGF0YShkYXRhLmtleT8udWlkKVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZGF0YS5maWVsZCA9PSBcImV4cG9ydEpzb25cIikge1xyXG4gICAgICB0aGlzLmV4cG9ydERhdGFKc29uKGRhdGEua2V5Py51aWQpXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChkYXRhLmZpZWxkID09IFwiZG93bmxvYWRKc29uXCIpIHtcclxuICAgICAgdGhpcy5leHBvcnREYXRhSnNvblNlcnZlcihkYXRhLmtleT8udWlkKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0RGF0YShpZDogc3RyaW5nKSB7XHJcbiAgICBpZiAoaWQgIT0gdW5kZWZpbmVkICYmIGlkICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlXHJcbiAgICAgIHRoaXMubW9kZWxlSW1wb3J0U2VydmljZS5leGVjdXRlRXhwb3J0KGlkLCB0aGlzLmNvbmZpZy5kYXRhPy5wYWdlZFJlcXVlc3QpLnN1YnNjcmliZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZG93bmxvYWRGaWxlKGRhdGE/LmRhdGEpXHJcbiAgICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2VcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJFeHBvcnQgZXJyb3IgPT5cIiwgZXJyb3IpXHJcbiAgICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZS5zaG93RXJyb3JNZXNzYWdlc0Zyb21BcnJheVN0cmluZyhbZXJyb3I/LmVycm9yPy5tZXNzYWdlXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHBvcnREYXRhSnNvbihpZDogc3RyaW5nKSB7XHJcbiAgICBpZiAoaWQgIT0gdW5kZWZpbmVkICYmIGlkICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlXHJcbiAgICAgIHRoaXMubW9kZWxlSW1wb3J0U2VydmljZS5leGVjdXRlRXhwb3J0SnNvbihpZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUoZGF0YT8uZGF0YSlcclxuICAgICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0RGF0YUpzb25TZXJ2ZXIoaWQ6IHN0cmluZykge1xyXG4gICAgaWYgKGlkICE9IHVuZGVmaW5lZCAmJiBpZCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuaXNsb2FkaW5nID0gdHJ1ZVxyXG4gICAgICB0aGlzLm1vZGVsZUltcG9ydFNlcnZpY2UuZXhlY3V0ZUV4cG9ydEpzb25TZXJ2ZXIoaWQpLnN1YnNjcmliZShcclxuXHJcbiAgICAgICAgcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZVxyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRGaWxlKGRhdGE6IGFueSkge1xyXG4gICAgbGV0IGJsb2JVcmwgPSBcImRhdGE6YXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7YmFzZTY0LFwiICsgZGF0YS5maWxlQ29udGVudDtcclxuICAgIGxldCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICBsaW5rLnNldEF0dHJpYnV0ZShcImhyZWZcIiwgYmxvYlVybCk7XHJcbiAgICBsaW5rLnNldEF0dHJpYnV0ZShcImRvd25sb2FkXCIsIGRhdGEuZmlsZU5hbWUpO1xyXG4gICAgbGluay5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgIGxpbmsuY2xpY2soKTtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZGVsZXRlTW9kZWxlSW1wb3J0KHVpZCA6IHN0cmluZykge1xyXG4gICAgLy8gdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oXHJcbiAgICAvLyAgIExvY2FsaXphdGlvbktleXMuY29uZmlybURlbGV0ZSxcclxuICAgIC8vICAgdW5kZWZpbmVkLFxyXG4gICAgLy8gICAocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAvLyAgICAgaWYgKHJlc3VsdCAmJiBkYXRhLmtleSAhPSBudWxsICYmIGRhdGEua2V5ICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbGVJbXBvcnRTZXJ2aWNlLmRlbGV0ZSh1aWQpLnN1YnNjcmliZShcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZENvbXBvbmVudC5yZWZyZXNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoTG9jYWxpemF0aW9uS2V5cy5kZWxldGVkU3VjY2Vzc2Z1bGx5KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAvLyAgIH1cclxuICAgIC8vICk7XHJcbiAgfVxyXG5cclxuICBvbkltcG9ydEZpbGVUb0V4ZWN1dGVfRmlsZVNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBldmVudC5jdXJyZW50RmlsZXNbMF1cclxuICAgIHRoaXMudG9VcGxvYWRUb0V4ZWN1dGVGaWxlID0gZmlsZTtcclxuICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2VcclxuICB9XHJcblxyXG4gIG9uSW1wb3J0RmlsZVRvRXhlY3V0ZV9DbGVhcihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnRvVXBsb2FkVG9FeGVjdXRlRmlsZSA9IHVuZGVmaW5lZFxyXG4gICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZVxyXG4gIH1cclxuXHJcbiAgb25JbXBvcnRGaWxlVG9FeGVjdXRlX1JlbW92ZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnRvVXBsb2FkVG9FeGVjdXRlRmlsZSA9IHVuZGVmaW5lZFxyXG4gIH1cclxuXHJcbiAgb25JbXBvcnRGaWxlVG9FeGVjdXRlX0ltcG9ydEZpbGUoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMudG9JbXBvcnRNb2RlbGVVaWQgJiYgdGhpcy50b1VwbG9hZFRvRXhlY3V0ZUZpbGUpIHtcclxuICAgICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlXHJcbiAgICAgIHRoaXMuaXNJbXBvcnRGaWxlVG9FeGVjdXRlVmlzaWJsZSA9IGZhbHNlXHJcbiAgICAgIGxldCBleGVjdXRlSW1wb3J0UmVxdWVzdDogRXhlY3V0ZUltcG9ydFJlcXVlc3QgPSBuZXcgRXhlY3V0ZUltcG9ydFJlcXVlc3QoKVxyXG4gICAgICBleGVjdXRlSW1wb3J0UmVxdWVzdC5tb2RlbGVJbXBvcnRVaWQgPSB0aGlzLnRvSW1wb3J0TW9kZWxlVWlkO1xyXG4gICAgICBleGVjdXRlSW1wb3J0UmVxdWVzdC5maWxlTmFtZSA9IHRoaXMudG9VcGxvYWRUb0V4ZWN1dGVGaWxlPy5uYW1lXHJcblxyXG4gICAgICB0aGlzLm1vZGVsZUltcG9ydFNlcnZpY2UuZXhlY3V0ZUltcG9ydChleGVjdXRlSW1wb3J0UmVxdWVzdCwgdGhpcy50b1VwbG9hZFRvRXhlY3V0ZUZpbGUpXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbmV4dDogYXN5bmMgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdClcclxuICAgICAgICAgICAgICB0aGlzLmlzSW1wb3J0RmlsZVRvRXhlY3V0ZVZpc2libGUgPSBmYWxzZVxyXG4gICAgICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2VcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlXHJcbiAgICAgICAgICAgICAgdGhpcy5fZXJyb3JSZXNwb25zZU1hbmFnZXJTZXJ2aWNlLnNob3dFcnJvck1lc3NhZ2UoZXJyb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbXBvcnRGaWxlV2l0aG91dE1vZGVsX0ZpbGVTZWxlY3RlZChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBmaWxlOiBGaWxlID0gZXZlbnQuY3VycmVudEZpbGVzWzBdO1xyXG4gICAgdGhpcy50b1VwbG9hZFdpdGhvdXRNb2RlbCA9IGZpbGU7XHJcbiAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlXHJcbiAgfVxyXG5cclxuICBvbkltcG9ydEZpbGVXaXRob3V0TW9kZWxfQ2xlYXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50b1VwbG9hZFdpdGhvdXRNb2RlbCA9IHVuZGVmaW5lZFxyXG4gICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZVxyXG4gIH1cclxuXHJcbiAgb25JbXBvcnRGaWxlV2l0aG91dE1vZGVsX1JlbW92ZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnRvVXBsb2FkV2l0aG91dE1vZGVsID0gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuICBvbkltcG9ydEZpbGVXaXRob3V0TW9kZWxfSW1wb3J0RmlsZShldmVudDogYW55KSB7XHJcbiAgICBpZiAodGhpcy50b1VwbG9hZFdpdGhvdXRNb2RlbCkge1xyXG4gICAgICB0aGlzLmlzbG9hZGluZyA9IHRydWVcclxuXHJcbiAgICAgIGxldCBleGVjdXRlSW1wb3J0UmVxdWVzdDogRXhlY3V0ZUltcG9ydFJlcXVlc3QgPSBuZXcgRXhlY3V0ZUltcG9ydFJlcXVlc3QoKVxyXG4gICAgICBleGVjdXRlSW1wb3J0UmVxdWVzdC5tb2RlbGVJbXBvcnRVaWQgPSB1bmRlZmluZWQ7XHJcbiAgICAgIGV4ZWN1dGVJbXBvcnRSZXF1ZXN0LmZpbGVOYW1lID0gdGhpcy50b1VwbG9hZFdpdGhvdXRNb2RlbD8ubmFtZVxyXG5cclxuICAgICAgdGhpcy5tb2RlbGVJbXBvcnRTZXJ2aWNlLmV4ZWN1dGVJbXBvcnRXaXRob3V0TW9kZWwoZXhlY3V0ZUltcG9ydFJlcXVlc3QsIHRoaXMudG9VcGxvYWRXaXRob3V0TW9kZWwpXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbmV4dDogYXN5bmMgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdClcclxuICAgICAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlXHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZEdyaWREYXRhKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RlbGVJbXBvcnRTZXJ2aWNlLkdldEpzb25GaWxlcyh0aGlzLmNvbmZpZz8uZGF0YT8uZm9ybU5hbWUpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgdGhpcy5ncmlkRGF0YSA9IGRhdGE7XHJcbiAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgZ3JpZCBkYXRhJywgZXJyb3IpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoR3JpZCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZEdyaWREYXRhKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDb25zdWx0SW1wb3J0UmVzdWx0QnV0dG9uQ2xpY2tlZChldmVudDogQnV0dG9uQ2xpY2tSZXN1bHQpIHtcclxuICAgIHRoaXMuX3RzaU1vZGFsU2VydmljZS5vcGVuKEFsZXJ0SW1wb3J0TWVzc2FnZUNvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgaWQ6IGV2ZW50LmtleSxcclxuICAgICAgfSxcclxuICAgICAgY2xvc2FibGU6IHRydWUsXHJcbiAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcclxuICAgICAgd2lkdGg6ICczNXZ3JyxcclxuICAgICAgaGVpZ2h0OiAnMjV2dycsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlQnV0dG9uQ29sdW1uRXhlY3V0ZUNsaWNrZWQoZXZlbnQ6IEJ1dHRvbkNsaWNrUmVzdWx0KSB7XHJcbiAgICBpZiAoZXZlbnQuZmllbGQgPT0gJ2Zyb21Kc29uVG9EYXRhYmFzZScpIHtcclxuICAgICAgdGhpcy5tb2RlbGVJbXBvcnRTZXJ2aWNlLmV4ZWN1dGVJbXBvcnRKc29uKGV2ZW50LmtleSwgdGhpcy5jb25maWc/LmRhdGE/LmZvcm1OYW1lKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JpZENvbXBvbmVudC5yZWZyZXNoKHRydWUpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW1wb3J0aW5nIGpzb246JywgZXJyb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChldmVudC5maWVsZCA9PSAnZGVsZXRlRnJvbURhdGFiYXNlJykge1xyXG4gICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybShcclxuICAgICAgICBMb2NhbGl6YXRpb25LZXlzLmNvbmZpcm1EZWxldGUsXHJcbiAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgIChyZXN1bHQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbGVJbXBvcnRTZXJ2aWNlLmRlbGV0ZUltcG9ydChldmVudC5rZXksIHRoaXMuY29uZmlnPy5kYXRhPy5idXNpbmVzc0NsYXNzKVxyXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICBhc3luYyByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZENvbXBvbmVudC5yZWZyZXNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlHcmlkRGF0YSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMubW9kZWxlSW1wb3J0U2VydmljZS5HZXRJbXBvcnRIaXN0b3J5KHRoaXMuY29uZmlnPy5kYXRhPy5idXNpbmVzc0NsYXNzKSlcclxuICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoTG9jYWxpemF0aW9uS2V5cy5kZWxldGVkU3VjY2Vzc2Z1bGx5KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGltcG9ydGluZyBqc29uOicsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8cC10YWJWaWV3PlxyXG4gIDxwLXRhYlBhbmVsIFtoZWFkZXJdPVwiJ3NoYXJlZF9leGVjdXRlX2ltcG9ydF9tb2RlbF9pbXBvcnRfZXhwb3J0JyB8IGxvY2FsaXplXCIgY2xhc3M9XCJwdC0zIHB4LTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgIDxkaXYgKmJ1c3k9XCJpc2xvYWRpbmdcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBjb2wtMTBcIj5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtMlwiIFtsYWJlbFZhbHVlXT1cIidzaGFyZWRfcmVwb3J0aW5nX2Zvcm0nXCI+XHJcbiAgICAgICAgICAgIDwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8IS0tIDxwLWRyb3Bkb3duIGNsYXNzPVwiY29sLTEwIHRzaS1jb21wb25lbnRcIiBjbGFzcz1cInRzaS1jb21wb25lbnRcIiBzdHlsZUNsYXNzPVwidHNpLWNvbXBvbmVudFwiIGFwcGVuZFRwPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInZhbHVlXCIgb3B0aW9uVmFsdWU9XCJrZXlcIiBbZmlsdGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgZmlsdGVyQnk9XCJ2YWx1ZVwiIFtzaG93Q2xlYXJdPVwidHJ1ZVwiIHBsYWNlaG9sZGVyPVwie3snc2hhcmVkX3JlcG9ydGluZ19zZWxlY3RfZm9ybScgfCBsb2NhbGl6ZX19XCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgPC9wLWRyb3Bkb3duPiAtLT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxwLXRvb2xiYXIgc3R5bGVDbGFzcz1cIm1iLTQgZ2FwLTJcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwibGVmdFwiPlxyXG4gICAgICAgICAgPFRzaS1CdXR0b24gW3RleHRdPVwiJ3NoYXJlZF9yZXBvcnRpbmdfYWRkX3JlcG9ydCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgIGljb249XCJwLWJ1dHRvbi1pY29uIHAtYnV0dG9uLWljb24tbGVmdCBwaSBwaS1wbHVzXCJcclxuICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtZWxlbWVudCBwLWJ1dHRvbi1zdWNjZXNzIG1yLTIgcC1idXR0b24gcC1jb21wb25lbnQgbmctc3Rhci1pbnNlcnRlZCBwLWJ1dHRvbi1sYWJlbFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuTW9kYWwoKVwiPjwvVHNpLUJ1dHRvbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJyaWdodFwiPlxyXG4gICAgICAgICAgPHAtZmlsZVVwbG9hZCAjZmlsZVVwbG9hZCBuYW1lPVwiZGVtb1tdXCIgKG9uQmVmb3JlVXBsb2FkKT1cIm9uSW1wb3J0RmlsZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKG9uU2VsZWN0KT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIiAob25DbGVhcik9XCJvbkNsZWFyKCRldmVudClcIiAob25SZW1vdmUpPVwib25SZW1vdmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiIGFjY2VwdD1cImFwcGxpY2F0aW9uL2pzb25cIiBbbWF4RmlsZVNpemVdPVwiMTAwMDAwMFwiXHJcbiAgICAgICAgICAgIFtpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeV09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV9zaXplX21lc3NhZ2Vfc3VtbWFyeScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgIFtpbnZhbGlkRmlsZVNpemVNZXNzYWdlRGV0YWlsXT1cIidzaGFyZWRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlX3NpemVfbWVzc2FnZV9kZXRhaWwnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICBbaW52YWxpZEZpbGVUeXBlTWVzc2FnZVN1bW1hcnldPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfdHlwZV9tZXNzYWdlX3N1bW1hcnknIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICBbaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWxdPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfbGltaXRfbWVzc2FnZV9kZXRhaWwnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICBbaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VTdW1tYXJ5XT1cIidzaGFyZWRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlX2xpbWl0X21lc3NhZ2Vfc3VtbWFyeScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgIFtpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsXT1cIidzaGFyZWRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlX3R5cGVfbWVzc2FnZV9kZXRhaWwnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICBbY2hvb3NlSWNvbl09XCIncGkgcGktcGFwZXJjbGlwJ1wiIGNhbmNlbFN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1zZWNvbmRhcnlcIiB1cGxvYWRTdHlsZUNsYXNzPVwicC1idXR0b24taGVscFwiXHJcbiAgICAgICAgICAgIHJlbW92ZVN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1kYW5nZXJcIiBbY2hvb3NlTGFiZWxdPVwiJ3NoYXJlZF9yZXBvcnRpbmdfY2hvb3NlX3JlcG9ydF9maWxlJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgW3VwbG9hZExhYmVsXT1cIidzaGFyZWRfcmVwb3J0aW5nX2ltcG9ydF9yZXBvcnQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICBbY2FuY2VsTGFiZWxdPVwiJ3NoYXJlZF9yZXBvcnRpbmdfY2FuY2VsX2Nob29zZV9yZXBvcnRfZmlsZScgfCBsb2NhbGl6ZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJ0b1VwbG9hZEZpbGVEYXRhXCIgcFRlbXBsYXRlPVwiZmlsZXVwbG9hZC1jb250ZW50XCIgbGV0LWZpbGVzPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmaWxlcz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IGZpbGVzWzBdLm5hbWUgfX08L3N0cm9uZz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvcC1maWxlVXBsb2FkPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvcC10b29sYmFyPlxyXG5cclxuICAgICAgPHRzaS12aWV3LWdyaWQgI3ZpZXdHcmlkIFtoZWFkZXJdPVwiJ3NoYXJlZF9leGVjdXRlX2ltcG9ydF9tb2RlbF9pbXBvcnRfZXhwb3J0JyAgfGxvY2FsaXplXCJcclxuICAgICAgICBbc2VhcmNoRmllbGRzXT1cInNlYXJjaEZpZWxkc1wiIFtzaG93Q29uc3VsdEJ1dHRvbl09XCJmYWxzZVwiIFtnZXREYXRhRnJvbUFwaV09XCJ0cnVlXCJcclxuICAgICAgICBbY3J1ZFNlcnZpY2VdPVwibW9kZWxlSW1wb3J0U2VydmljZVwiIChidXR0b25Db2x1bW5DbGlja2VkKT1cImJ1dHRvbkNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgW2Zvcm1OYW1lXT1cIidhcHAtbWFuYWdlLWltcG9ydC1leHBvcnQnXCIgW2NvbHVtbnNdPVwiY29sdW1uc1wiIGtleT1cInVpZFwiIFtzZWxlY3RLZXlPbmx5XT1cImZhbHNlXCI+XHJcbiAgICAgIDwvdHNpLXZpZXctZ3JpZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvcC10YWJQYW5lbD5cclxuXHJcbiAgPHAtdGFiUGFuZWwgW2hlYWRlcl09XCInc2hhcmVkX2V4ZWN1dGVfaW1wb3J0X21vZGVsX2ltcG9ydF9leHBvcnRfZGVmYXVsdCcgfCBsb2NhbGl6ZVwiIGNsYXNzPVwicHQtMyBweC0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICA8dHNpLXZpZXctZ3JpZCBjbGFzcz1cImNvbC0xMlwiIFtoZWFkZXJdPVwiJ3NoYXJlZF9leGVjdXRlX2ltcG9ydF9tb2RlbF9pbXBvcnRfZXhwb3J0X2RlZmF1bHQnICB8bG9jYWxpemVcIlxyXG4gICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNKc29uXCIgW2dldERhdGFGcm9tQXBpXT1cImZhbHNlXCIgW2dyaWREYXRhXT1cImdyaWREYXRhXCIgW2tleV09XCJrZXlcIlxyXG4gICAgICAgIFtmb3JtTmFtZV09XCInbW9kZWxlLWltcG9ydC1wYXItZGVmYXVsdCdcIlxyXG4gICAgICAgIChidXR0b25Db2x1bW5DbGlja2VkKT1cImhhbmRsZUJ1dHRvbkNvbHVtbkV4ZWN1dGVDbGlja2VkKCRldmVudClcIj48L3RzaS12aWV3LWdyaWQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L3AtdGFiUGFuZWw+XHJcblxyXG4gIDxwLXRhYlBhbmVsIFtoZWFkZXJdPVwiJ3NoYXJlZF9leGVjdXRlX2ltcG9ydF9oaXN0b3J5JyB8IGxvY2FsaXplXCIgY2xhc3M9XCJwdC0zIHB4LTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgICAgIDx0c2ktdmlldy1ncmlkIGNsYXNzPVwiY29sLTEyXCIgW2hlYWRlcl09XCInc2hhcmVkX2V4ZWN1dGVfaW1wb3J0X2hpc3RvcnknICB8bG9jYWxpemVcIiBbY29sdW1uc109XCJjb2x1bW5zSGlzdG9yeVwiXHJcbiAgICAgICAgW2dldERhdGFGcm9tQXBpXT1cImZhbHNlXCIgW2dyaWREYXRhXT1cImhpc3RvcnlHcmlkRGF0YVwiIFtrZXldPVwiaW1wb3J0SGlzdG9yeUtleVwiXHJcbiAgICAgICAgW2Zvcm1OYW1lXT1cIidtb2RlbGUtaW1wb3J0LXBhci1kZWZhdWx0J1wiXHJcbiAgICAgICAgKGJ1dHRvbkNvbHVtbkNsaWNrZWQpPVwiaGFuZGxlQnV0dG9uQ29sdW1uRXhlY3V0ZUNsaWNrZWQoJGV2ZW50KVwiPjwvdHNpLXZpZXctZ3JpZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvcC10YWJQYW5lbD5cclxuXHJcbiAgPHAtdGFiUGFuZWwgW2hlYWRlcl09XCInc2hhcmVkX2V4ZWN1dGVfaW1wb3J0X3dpdGhvdXRfbW9kZWwnIHwgbG9jYWxpemVcIiBjbGFzcz1cInB0LTMgcHgtMlwiPlxyXG4gICAgPGRpdiAqYnVzeT1cImlzbG9hZGluZ1wiPjwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIj5cclxuICAgICAgPHAtZmlsZVVwbG9hZCAjaW1wb3J0RmlsZVRvUmVwb3J0RmlsZVVwbG9hZCBuYW1lPVwiaW1wb3J0RmlsZVRvUmVwb3J0XCIgW211bHRpcGxlXT1cImZhbHNlXCJcclxuICAgICAgICAob25TZWxlY3QpPVwib25JbXBvcnRGaWxlV2l0aG91dE1vZGVsX0ZpbGVTZWxlY3RlZCgkZXZlbnQpXCIgKG9uQ2xlYXIpPVwib25JbXBvcnRGaWxlV2l0aG91dE1vZGVsX0NsZWFyKCRldmVudClcIlxyXG4gICAgICAgIChvbkJlZm9yZVVwbG9hZCk9XCJvbkltcG9ydEZpbGVXaXRob3V0TW9kZWxfSW1wb3J0RmlsZSgkZXZlbnQpXCJcclxuICAgICAgICAob25SZW1vdmUpPVwib25JbXBvcnRGaWxlV2l0aG91dE1vZGVsX1JlbW92ZSgkZXZlbnQpXCIgYWNjZXB0PVwiLnhscywueGxzeFwiIFttYXhGaWxlU2l6ZV09XCIxMDAwMDAwMFwiXHJcbiAgICAgICAgW2ludmFsaWRGaWxlU2l6ZU1lc3NhZ2VTdW1tYXJ5XT1cIidzaGFyZWRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlX3NpemVfbWVzc2FnZV9zdW1tYXJ5JyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbaW52YWxpZEZpbGVTaXplTWVzc2FnZURldGFpbF09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV9zaXplX21lc3NhZ2VfZGV0YWlsJyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbaW52YWxpZEZpbGVUeXBlTWVzc2FnZVN1bW1hcnldPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfdHlwZV9tZXNzYWdlX3N1bW1hcnknIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZURldGFpbF09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV9saW1pdF9tZXNzYWdlX2RldGFpbCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2ludmFsaWRGaWxlTGltaXRNZXNzYWdlU3VtbWFyeV09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV9saW1pdF9tZXNzYWdlX3N1bW1hcnknIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsXT1cIidzaGFyZWRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlX3R5cGVfbWVzc2FnZV9kZXRhaWwnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtjaG9vc2VJY29uXT1cIidwaSBwaS1wYXBlcmNsaXAnXCIgY2FuY2VsU3R5bGVDbGFzcz1cInAtYnV0dG9uLXNlY29uZGFyeVwiIHVwbG9hZFN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1oZWxwXCJcclxuICAgICAgICByZW1vdmVTdHlsZUNsYXNzPVwicC1idXR0b24tZGFuZ2VyXCIgW2Nob29zZUxhYmVsXT1cIidzaGFyZWRfcmVwb3J0aW5nX2Nob29zZV9yZXBvcnRfZmlsZScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW3VwbG9hZExhYmVsXT1cIidzaGFyZWRfcmVwb3J0aW5nX2ltcG9ydF9yZXBvcnQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtjYW5jZWxMYWJlbF09XCInc2hhcmVkX3JlcG9ydGluZ19jYW5jZWxfY2hvb3NlX3JlcG9ydF9maWxlJyB8IGxvY2FsaXplXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwidG9VcGxvYWRXaXRob3V0TW9kZWxcIiBwVGVtcGxhdGU9XCJmaWxldXBsb2FkLWNvbnRlbnRcIiBsZXQtZmlsZXM+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZmlsZXM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8c3Ryb25nPnt7IGZpbGVzWzBdLm5hbWUgfX08L3N0cm9uZz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvcC1maWxlVXBsb2FkPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3AtdGFiUGFuZWw+XHJcblxyXG4gIDxwLXRhYlBhbmVsIFtoZWFkZXJdPVwiJ3NoYXJlZF9pbXBvcnRfcmVzdWx0X2hlYWRlcicgfCBsb2NhbGl6ZVwiIGNsYXNzPVwicHQtMyBweC0yXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInAtMVwiPlxyXG4gICAgICA8VHNpLUJ1dHRvbiAob25DbGljayk9XCJnZXRJbXBvcnRSZXN1bHQoKVwiXHJcbiAgICAgICAgc3R5bGVDbGFzcz1cInAtZWxlbWVudCBwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJhaXNlZCBwLWJ1dHRvbi1yb3VuZGVkIG1yLTIgcC1idXR0b24gcC1jb21wb25lbnQgcC1idXR0b24taWNvbi1vbmx5XCJcclxuICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ3NoYXJlZF9pbXBvcnRfZXhwb3J0X3JlZnJlc2gnXCIgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb24uVG9wXCJcclxuICAgICAgICBpY29uPVwicC1idXR0b24taWNvbiBwaSBwaS1yZWZyZXNoXCIgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJhaXNlZCBwLWJ1dHRvbi1yb3VuZGVkIG1yLTJcIj48L1RzaS1CdXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICA8dHNpLXZpZXctZ3JpZCBjbGFzcz1cImNvbC0xMlwiIFtoZWFkZXJdPVwiJ3NoYXJlZF9pbXBvcnRfcmVzdWx0X2hlYWRlcicgIHxsb2NhbGl6ZVwiIFtjb2x1bW5zXT1cImltcG9ydFJlc3VsdHNDb2x1bW5zXCJcclxuICAgICAgICBbZ2V0RGF0YUZyb21BcGldPVwiZmFsc2VcIiBbZ3JpZERhdGFdPVwiaW1wb3J0UmVzdWx0RGF0YVwiIFtrZXldPVwiJ3VpZCdcIiBbZm9ybU5hbWVdPVwiJ21vZGVsZS1pbXBvcnQtcmVzdWx0LWltcG9ydCdcIlxyXG4gICAgICAgIChidXR0b25Db2x1bW5DbGlja2VkKT1cImhhbmRsZUNvbnN1bHRJbXBvcnRSZXN1bHRCdXR0b25DbGlja2VkKCRldmVudClcIj48L3RzaS12aWV3LWdyaWQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L3AtdGFiUGFuZWw+XHJcblxyXG48L3AtdGFiVmlldz5cclxuXHJcbjxkaXYgY2xhc3M9XCJwLTFcIj5cclxuICA8VHNpLUJ1dHRvblxyXG4gICAgc3R5bGVDbGFzcz1cInAtZWxlbWVudCBwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJhaXNlZCBwLWJ1dHRvbi1yb3VuZGVkIG1yLTIgcC1idXR0b24gcC1jb21wb25lbnQgcC1idXR0b24taWNvbi1vbmx5XCJcclxuICAgIFt0b29sdGlwVGV4dF09XCInc2hhcmVkX2ltcG9ydF9leHBvcnRfcmVmcmVzaCdcIiBbdG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvbi5Ub3BcIlxyXG4gICAgaWNvbj1cInAtYnV0dG9uLWljb24gcGkgcGktcmVmcmVzaFwiIChvbkNsaWNrKT1cInJlZnJlc2hJbXBvcnRFeHBvcnREYXRhKClcIlxyXG4gICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJhaXNlZCBwLWJ1dHRvbi1yb3VuZGVkIG1yLTJcIj48L1RzaS1CdXR0b24+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSBkaWFsb2cgdG8gaW1wb3J0IGZpbGUgdG8gcmVwb3J0IC0tPlxyXG48cC1kaWFsb2cgaGVhZGVyPVwie3snc2hhcmVkX3JlcG9ydGluZ19zZWxlY3RfZmlsZV90b19pbXBvcnRfaW50b19yZXBvcnQnIHwgbG9jYWxpemV9fVwiXHJcbiAgWyh2aXNpYmxlKV09XCJpc0ltcG9ydEZpbGVUb0V4ZWN1dGVWaXNpYmxlXCIgW3N0eWxlXT1cInt3aWR0aDogJzUwdncnfVwiPlxyXG4gIDwhLS0gPFRzaS1Nb2RhbC1IZWFkZXIgKG9uQ2xvc2VDbGljayk9XCJvbkltcG9ydEZpbGVUb1JlcG9ydE1vZGFsQ2FuY2VsQ2xpY2soKVwiIFtpbnB1dFRpdGxlXT1cIidzaGFyZWRfcmVwb3J0aW5nX3NlbGVjdF9maWxlX3RvX2ltcG9ydF9pbnRvX3JlcG9ydCdcIj48L1RzaS1Nb2RhbC1IZWFkZXI+IC0tPlxyXG5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiPlxyXG4gICAgPHAtZmlsZVVwbG9hZCAjaW1wb3J0RmlsZVRvUmVwb3J0RmlsZVVwbG9hZCBuYW1lPVwiaW1wb3J0RmlsZVRvUmVwb3J0XCIgW211bHRpcGxlXT1cImZhbHNlXCJcclxuICAgICAgKG9uU2VsZWN0KT1cIm9uSW1wb3J0RmlsZVRvRXhlY3V0ZV9GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiIChvbkNsZWFyKT1cIm9uSW1wb3J0RmlsZVRvRXhlY3V0ZV9DbGVhcigkZXZlbnQpXCJcclxuICAgICAgKG9uQmVmb3JlVXBsb2FkKT1cIm9uSW1wb3J0RmlsZVRvRXhlY3V0ZV9JbXBvcnRGaWxlKCRldmVudClcIiAob25SZW1vdmUpPVwib25JbXBvcnRGaWxlVG9FeGVjdXRlX1JlbW92ZSgkZXZlbnQpXCJcclxuICAgICAgYWNjZXB0PVwie3tmaWxlVHlwZX19XCIgW21heEZpbGVTaXplXT1cIjEwMDAwMDAwXCJcclxuICAgICAgW2ludmFsaWRGaWxlU2l6ZU1lc3NhZ2VTdW1tYXJ5XT1cIidzaGFyZWRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlX3NpemVfbWVzc2FnZV9zdW1tYXJ5JyB8IGxvY2FsaXplXCJcclxuICAgICAgW2ludmFsaWRGaWxlU2l6ZU1lc3NhZ2VEZXRhaWxdPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfc2l6ZV9tZXNzYWdlX2RldGFpbCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgIFtpbnZhbGlkRmlsZVR5cGVNZXNzYWdlU3VtbWFyeV09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV90eXBlX21lc3NhZ2Vfc3VtbWFyeScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgIFtpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZURldGFpbF09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV9saW1pdF9tZXNzYWdlX2RldGFpbCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgIFtpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnldPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfbGltaXRfbWVzc2FnZV9zdW1tYXJ5JyB8IGxvY2FsaXplXCJcclxuICAgICAgW2ludmFsaWRGaWxlVHlwZU1lc3NhZ2VEZXRhaWxdPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfdHlwZV9tZXNzYWdlX2RldGFpbCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgIFtjaG9vc2VJY29uXT1cIidwaSBwaS1wYXBlcmNsaXAnXCIgY2FuY2VsU3R5bGVDbGFzcz1cInAtYnV0dG9uLXNlY29uZGFyeVwiIHVwbG9hZFN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1oZWxwXCJcclxuICAgICAgcmVtb3ZlU3R5bGVDbGFzcz1cInAtYnV0dG9uLWRhbmdlclwiIFtjaG9vc2VMYWJlbF09XCInc2hhcmVkX3JlcG9ydGluZ19jaG9vc2VfcmVwb3J0X2ZpbGUnIHwgbG9jYWxpemVcIlxyXG4gICAgICBbdXBsb2FkTGFiZWxdPVwiJ3NoYXJlZF9yZXBvcnRpbmdfaW1wb3J0X3JlcG9ydCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgIFtjYW5jZWxMYWJlbF09XCInc2hhcmVkX3JlcG9ydGluZ19jYW5jZWxfY2hvb3NlX3JlcG9ydF9maWxlJyB8IGxvY2FsaXplXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRvVXBsb2FkVG9FeGVjdXRlRmlsZVwiIHBUZW1wbGF0ZT1cImZpbGV1cGxvYWQtY29udGVudFwiIGxldC1maWxlcz5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZmlsZXM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgPHN0cm9uZz57eyBmaWxlc1swXS5uYW1lIH19PC9zdHJvbmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3AtZmlsZVVwbG9hZD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuXHJcbiAgPCEtLSA8VHNpLU1vZGFsLUZvb3RlciAob25DYW5jZWxDbGljayk9XCJvbkltcG9ydEZpbGVUb1JlcG9ydE1vZGFsQ2FuY2VsQ2xpY2soKVwiXHJcbiAgICAob25TYXZlQ2xpY2spPVwib25JbXBvcnRGaWxlVG9SZXBvcnRNb2RhbFNhdmVDbGljaygpXCJcclxuICAgIFtzYXZlRGlzYWJsZWRdPVwiIXRvVXBsb2FkVG9VcGRhdGVSZXBvcnRGaWxlRGF0YVwiPjwvVHNpLU1vZGFsLUZvb3Rlcj4gLS0+XHJcblxyXG48L3AtZGlhbG9nPiJdfQ==
|
|
@@ -15241,7 +15241,7 @@ class ManageImportExportComponent extends TsiFormComponentBaseComponent {
|
|
|
15241
15241
|
});
|
|
15242
15242
|
}
|
|
15243
15243
|
else if (data.field == "delete") {
|
|
15244
|
-
this.deleteModeleImport(data);
|
|
15244
|
+
this.deleteModeleImport(data.key?.uid);
|
|
15245
15245
|
}
|
|
15246
15246
|
else if (data.field == "import") {
|
|
15247
15247
|
this.isImportFileToExecuteVisible = true;
|
|
@@ -15311,23 +15311,27 @@ class ManageImportExportComponent extends TsiFormComponentBaseComponent {
|
|
|
15311
15311
|
link.click();
|
|
15312
15312
|
document.body.removeChild(link);
|
|
15313
15313
|
}
|
|
15314
|
-
deleteModeleImport(
|
|
15315
|
-
this.confirmationService.confirm(
|
|
15316
|
-
|
|
15317
|
-
|
|
15318
|
-
|
|
15319
|
-
|
|
15320
|
-
|
|
15321
|
-
|
|
15322
|
-
|
|
15323
|
-
|
|
15324
|
-
|
|
15325
|
-
|
|
15326
|
-
|
|
15327
|
-
|
|
15328
|
-
|
|
15314
|
+
deleteModeleImport(uid) {
|
|
15315
|
+
// this.confirmationService.confirm(
|
|
15316
|
+
// LocalizationKeys.confirmDelete,
|
|
15317
|
+
// undefined,
|
|
15318
|
+
// (result: boolean) => {
|
|
15319
|
+
// if (result && data.key != null && data.key != undefined) {
|
|
15320
|
+
this.isloading = true;
|
|
15321
|
+
this.modeleImportService.delete(uid).subscribe({
|
|
15322
|
+
next: () => {
|
|
15323
|
+
this.gridComponent.refresh(true);
|
|
15324
|
+
this.notificationService.success(LocalizationKeys.deletedSuccessfully);
|
|
15325
|
+
this.isloading = false;
|
|
15326
|
+
},
|
|
15327
|
+
error: (error) => {
|
|
15328
|
+
this.isloading = false;
|
|
15329
|
+
this.notificationService.error(error);
|
|
15329
15330
|
}
|
|
15330
15331
|
});
|
|
15332
|
+
// }
|
|
15333
|
+
// }
|
|
15334
|
+
// );
|
|
15331
15335
|
}
|
|
15332
15336
|
onImportFileToExecute_FileSelected(event) {
|
|
15333
15337
|
const file = event.currentFiles[0];
|