tnx-shared 5.1.403 → 5.1.404
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/bundles/tnx-shared.umd.js +111 -28
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/classes/base/component-base.d.ts +9 -0
- package/classes/base/component-base.d.ts.map +1 -1
- package/classes/base/data-form-base.d.ts +2 -1
- package/classes/base/data-form-base.d.ts.map +1 -1
- package/components/add-news/add-news.component.d.ts.map +1 -1
- package/components/autocomplete-picker/autocomplete-picker.component.d.ts +1 -1
- package/components/autocomplete-picker/autocomplete-picker.component.d.ts.map +1 -1
- package/components/crud/crud-form/crud-form.component.d.ts +5 -2
- package/components/crud/crud-form/crud-form.component.d.ts.map +1 -1
- package/components/file-explorer/file-picker-dialog/file-picker-dialog.component.d.ts.map +1 -1
- package/components/file-explorer/file-picker-dialog/file-picker-dialog.component.scss.shim.ngstyle.d.ts.map +1 -0
- package/components/file-explorer/services/file-object.service.d.ts +2 -0
- package/components/file-explorer/services/file-object.service.d.ts.map +1 -1
- package/components/workflow/process-workflow-form/process-workflow-form.component.d.ts +0 -1
- package/components/workflow/process-workflow-form/process-workflow-form.component.d.ts.map +1 -1
- package/esm2015/classes/base/component-base.js +44 -1
- package/esm2015/classes/base/data-form-base.js +6 -2
- package/esm2015/components/add-news/add-news.component.js +2 -1
- package/esm2015/components/autocomplete-picker/autocomplete-picker.component.js +13 -9
- package/esm2015/components/crud/crud-form/crud-form.component.js +23 -3
- package/esm2015/components/file-explorer/file-picker-dialog/file-picker-dialog.component.js +5 -3
- package/esm2015/components/file-explorer/services/file-object.service.js +7 -1
- package/esm2015/components/workflow/process-workflow-form/process-workflow-form.component.js +10 -19
- package/fesm2015/tnx-shared.js +99 -28
- package/fesm2015/tnx-shared.js.map +1 -1
- package/package.json +2 -2
- package/tnx-shared.metadata.json +1 -1
- package/components/file-explorer/file-picker-dialog/file-picker-dialog.component.css.shim.ngstyle.d.ts.map +0 -1
|
@@ -73,7 +73,9 @@ export class FilePickerDialogComponent extends DataFormBase {
|
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
if (element.extension.toUpperCase() == '.PNG' || element.extension.toUpperCase() == '.JPG' || element.extension.toUpperCase() == '.JPEG') {
|
|
76
|
-
result = '<div style="width:100%; margin-bottom: 15px;text-align: center;"><img style="display:block; margin:auto;" width="500" src="'
|
|
76
|
+
result = '<div style="width:100%; margin-bottom: 15px;text-align: center;"><img style="display:block; margin:auto;" width="500" src="'
|
|
77
|
+
+ this._fileObjectService.getFileUrlWithThumbor(element.id, 1080)
|
|
78
|
+
+ '" /><p><em>Tiêu đề hình ảnh</em></p></div>';
|
|
77
79
|
}
|
|
78
80
|
else if (element.extension.toUpperCase() == '.MP3' || element.extension.toUpperCase() == '.WMA' || element.extension.toUpperCase() == '.FLAC' || element.extension.toUpperCase() == '.AAC' || element.extension.toUpperCase() == '.OGG') {
|
|
79
81
|
result = '<div style="width:100%; margin-bottom: 15px"><audio style="display: block;margin-left: auto;margin-right: auto;" controls><source src="' + this._fileObjectService.endPoint + '/v5/FileObject/public/' + element.id + '/download" type="audio/mpeg"></audio></div>';
|
|
@@ -99,7 +101,7 @@ export class FilePickerDialogComponent extends DataFormBase {
|
|
|
99
101
|
FilePickerDialogComponent.decorators = [
|
|
100
102
|
{ type: Component, args: [{
|
|
101
103
|
selector: 'file-picker-dialog',
|
|
102
|
-
template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n <ng-template #fileManager let-control=\"control\">\r\n <file-manager serviceCode=\"user\" entity=\"user\" entityKey=\"entityKey\" label=\"My folder\"
|
|
104
|
+
template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n <ng-template #fileManager let-control=\"control\">\r\n <file-manager serviceCode=\"user\" entity=\"user\" [entityKey]=\"entityKey\" label=\"My folder\"\r\n [dataType]=\"model.data.fileType\" (onSelected)=\"selectedFile($event)\"></file-manager>\r\n </ng-template>\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <button type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"chooseFiles($event)\"></button>\r\n\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>",
|
|
103
105
|
providers: [ComponentContextService],
|
|
104
106
|
styles: [""]
|
|
105
107
|
},] }
|
|
@@ -115,4 +117,4 @@ FilePickerDialogComponent.propDecorators = {
|
|
|
115
117
|
dataType: [{ type: Input }],
|
|
116
118
|
onChanged: [{ type: Output }]
|
|
117
119
|
};
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvZmlsZS1waWNrZXItZGlhbG9nL2ZpbGUtcGlja2VyLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQWtCLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQVFwRSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsWUFBWTtJQVN2RCxZQUNjLFNBQW1CLEVBQ3JCLGtCQUFxQyxFQUNyQyxtQkFBdUM7UUFFL0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBSlAsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFYMUMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsOEJBQXlCLEdBQVksSUFBSSxDQUFDO1FBR25ELGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBRWQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFP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LE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1NBQ25MO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFJO1FBQ2IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEMsQ0FBQzs7O1lBdEdKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QiwwNUJBQWtEO2dCQUVsRCxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzs7YUFDdkM7OztZQWJpQyxRQUFRO1lBTWpDLGlCQUFpQjtZQURqQixrQkFBa0I7OzsyQkFVdEIsS0FBSzt3Q0FDTCxLQUFLO3VCQUNMLEtBQUs7d0JBSUwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLWNvbnRleHQvY29tcG9uZW50LWNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFGb3JtQmFzZSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvYmFzZS9kYXRhLWZvcm0tYmFzZSc7XHJcbmltcG9ydCB7IEN1c3RvbUNvbnRyb2xTY2hlbWEsIERyb3Bkb3duQ29udHJvbFNjaGVtYSwgRm9ybVNjaGVtYUJhc2UsIExhYmVsU2NoZW1hIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XHJcbmltcG9ydCB7IGZpbGVUeXBlU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2ZpbGUtdHlwZSc7XHJcbmltcG9ydCB7IEZpbGVNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpbGUtbWFuYWdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsZU9iamVjdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9maWxlLW9iamVjdC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdmaWxlLXBpY2tlci1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtcGlja2VyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9maWxlLXBpY2tlci1kaWFsb2cuY29tcG9uZW50LmNzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbQ29tcG9uZW50Q29udGV4dFNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlUGlja2VyRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgRGF0YUZvcm1CYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGlzRmlsZVBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbXVsdGlwbGVDaGVja1doZW5DbGlja1JvdzogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBkYXRhVHlwZTogYW55O1xyXG4gICAgZW50aXR5S2V5OiBhbnk7XHJcbiAgICBzZWxlY3RlZEl0ZW1zOiBhbnkgPSBbXTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBfZmlsZU9iamVjdFNlcnZpY2U6IEZpbGVPYmplY3RTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2ZpbGVNYW5hZ2VyU2VydmljZTogRmlsZU1hbmFnZXJTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UgPSB0aGlzLl9maWxlT2JqZWN0U2VydmljZTtcclxuICAgICAgICB0aGlzLmVudGl0eUtleSA9ICh0aGlzLl91c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpKS51c2VySWQ7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNjaGVtYSA9IDxGb3JtU2NoZW1hQmFzZVtdPltcclxuICAgICAgICAgICAgbmV3IExhYmVsU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnZW1wdHlDb250cm9sJyxcclxuICAgICAgICAgICAgICAgIG1kV2lkdGg6IDlcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBEcm9wZG93bkNvbnRyb2xTY2hlbWEoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdmaWxlVHlwZScsXHJcbiAgICAgICAgICAgICAgICBzaG93TGFiZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdDaOG7jW4gbG/huqFpIGZpbGUnLFxyXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogZmlsZVR5cGVTb3VyY2UsXHJcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiAzLFxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2VkOiAoZXZ0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC52YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YVR5cGUgPSBldnQudmFsdWUuaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFUeXBlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxvYWREYXRhKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB0aGlzLmRhdGFUeXBlXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ3VzdG9tQ29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2ZpbGVNYW5hZ2VyJyxcclxuICAgICAgICAgICAgICAgIHNob3dMYWJlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ015IGZvbGRlcicsXHJcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiAxMlxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIF07XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjaG9vc2VGaWxlcyhkYXRhKSB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgICAgIGlmICh0aGlzLmlzRmlsZVBpY2tlcikge1xyXG4gICAgICAgICAgICByZXN1bHQgPSB0aGlzLnNlbGVjdGVkSXRlbXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5zZWxlY3RlZEl0ZW1zKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gYXdhaXQgdGhpcy5yZW5kZXJIdG1sKGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub25DaGFuZ2VkLmVtaXQocmVzdWx0KTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXJIdG1sKGVsZW1lbnQ6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgICAgIGlmICghZWxlbWVudC5leHRlbnNpb24gfHwgZWxlbWVudC5leHRlbnNpb24ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQubmFtZS5sYXN0SW5kZXhPZignLicpICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudC5leHRlbnNpb24gPSBlbGVtZW50Lm5hbWUuc3Vic3RyaW5nKGVsZW1lbnQubmFtZS5sYXN0SW5kZXhPZignLicpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZWxlbWVudC5leHRlbnNpb24udG9VcHBlckNhc2UoKSA9PSAnLlBORycgfHwgZWxlbWVudC5leHRlbnNpb24udG9VcHBlckNhc2UoKSA9PSAnLkpQRycgfHwgZWxlbWVudC5leHRlbnNpb24udG9VcHBlckNhc2UoKSA9PSAnLkpQRUcnKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9ICc8ZGl2IHN0eWxlPVwid2lkdGg6MTAwJTsgbWFyZ2luLWJvdHRvbTogMTVweDt0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IG1hcmdpbjphdXRvO1wiIHdpZHRoPVwiNTAwXCIgc3JjPVwiJyArIHRoaXMuX2ZpbGVPYmplY3RTZXJ2aWNlLmVuZFBvaW50ICsgJy92NS9GaWxlT2JqZWN0L3B1YmxpYy8nICsgZWxlbWVudC5pZCArICcvZG93bmxvYWRcIiAvPjxwPjxlbT5UacOqdSDEkeG7gSBow6xuaCDhuqNuaDwvZW0+PC9wPjwvZGl2Pic7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkgPT0gJy5NUDMnIHx8IGVsZW1lbnQuZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkgPT0gJy5XTUEnIHx8IGVsZW1lbnQuZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkgPT0gJy5GTEFDJyB8fCBlbGVtZW50LmV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpID09ICcuQUFDJyB8fCBlbGVtZW50LmV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpID09ICcuT0dHJykge1xyXG4gICAgICAgICAgICByZXN1bHQgPSAnPGRpdiBzdHlsZT1cIndpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206IDE1cHhcIj48YXVkaW8gc3R5bGU9XCJkaXNwbGF5OiBibG9jazttYXJnaW4tbGVmdDogYXV0bzttYXJnaW4tcmlnaHQ6IGF1dG87XCIgY29udHJvbHM+PHNvdXJjZSBzcmM9XCInICsgdGhpcy5fZmlsZU9iamVjdFNlcnZpY2UuZW5kUG9pbnQgKyAnL3Y1L0ZpbGVPYmplY3QvcHVibGljLycgKyBlbGVtZW50LmlkICsgJy9kb3dubG9hZFwiIHR5cGU9XCJhdWRpby9tcGVnXCI+PC9hdWRpbz48L2Rpdj4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChlbGVtZW50LmV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpID09ICcuTVA0JyB8fCBlbGVtZW50LmV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpID09ICcuQVZJJyB8fCBlbGVtZW50LmV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpID09ICcuTU9WJyB8fCBlbGVtZW50LmV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpID09ICcuV01WJyB8fCBlbGVtZW50LmV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpID09ICcuRkxWJykge1xyXG4gICAgICAgICAgICByZXN1bHQgPSAnPGRpdiBzdHlsZT1cIndpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206IDE1cHhcIj48dmlkZW8gc3R5bGU9XCJkaXNwbGF5OiBibG9jazttYXJnaW4tbGVmdDogYXV0bzttYXJnaW4tcmlnaHQ6IGF1dG87XCIgd2lkdGg9XCI1MDBcIiBoZWlnaHQ9XCJhdXRvXCIgY29udHJvbHM+PHNvdXJjZSBzcmM9XCInICsgdGhpcy5fZmlsZU9iamVjdFNlcnZpY2UuZW5kUG9pbnQgKyAnL3Y1L0ZpbGVPYmplY3QvcHVibGljLycgKyBlbGVtZW50LmlkICsgJy9kb3dubG9hZFwiIHR5cGU9XCJ2aWRlby9tcDRcIj48L3ZpZGVvPjwvZGl2Pic7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkgPT0gJy5QREYnKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9ICc8ZGl2IHN0eWxlPVwid2lkdGg6MTAwJTsgbWFyZ2luLWJvdHRvbTogMTVweFwiPjxpZnJhbWUgc3R5bGU9XCJhc3BlY3QtcmF0aW86IDkvMTY7XCJcIiBzcmM9XCInICsgdGhpcy5fZmlsZU9iamVjdFNlcnZpY2UuZW5kUG9pbnQgKyAnL3Y1L0ZpbGVPYmplY3QvcHVibGljLycgKyBlbGVtZW50LmlkICsgJy9kb3dubG9hZFwiIHdpZHRoPVwiMTAwJVwiPjwvaWZyYW1lPjwvZGl2Pic7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXN1bHQgPSAnPGEgc3R5bGU9XCJ3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOiAxNXB4XCIgaHJlZj1cIicgKyB0aGlzLl9maWxlT2JqZWN0U2VydmljZS5lbmRQb2ludCArICcvdjUvRmlsZU9iamVjdC9wdWJsaWMvJyArIGVsZW1lbnQuaWQgKyAnL2Rvd25sb2FkXCI+JyArIGVsZW1lbnQubmFtZSArICc8L2E+JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RlZEZpbGUoZGF0YSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IGRhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgcmVsb2FkRGF0YSgpIHtcclxuICAgICAgICB0aGlzLl9maWxlTWFuYWdlclNlcnZpY2Uub25SZWxvYWQoKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvZmlsZS1waWNrZXItZGlhbG9nL2ZpbGUtcGlja2VyLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQWtCLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQVFwRSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsWUFBWTtJQVN2RCxZQUNjLFNBQW1CLEVBQ3JCLGtCQUFxQyxFQUNyQyxtQkFBdUM7UUFFL0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBSlAsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFYMUMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsOEJBQXlCLEdBQVksSUFBSSxDQUFDO1FBR25ELGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBRWQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFRMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQXFCO1lBQ3BDLElBQUksV0FBVyxDQUFDO2dCQUNaLEtBQUssRUFBRSxjQUFjO2dCQUNyQixPQUFPLEVBQUUsQ0FBQzthQUNiLENBQUM7WUFDRixJQUFJLHFCQUFxQixDQUFDO2dCQUN0QixLQUFLLEVBQUUsVUFBVTtnQkFDakIsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLFdBQVcsRUFBRSxnQkFBZ0I7Z0JBQzdCLFVBQVUsRUFBRSxjQUFjO2dCQUMxQixPQUFPLEVBQUUsQ0FBQztnQkFDVixTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDZixJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO3dCQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO3FCQUNoQzt5QkFDSTt3QkFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztxQkFDeEI7b0JBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN0QixDQUFDO2dCQUNELFlBQVksRUFBRSxJQUFJLENBQUMsUUFBUTthQUM5QixDQUFDO1lBQ0YsSUFBSSxtQkFBbUIsQ0FBQztnQkFDcEIsS0FBSyxFQUFFLGFBQWE7Z0JBQ3BCLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixLQUFLLEVBQUUsV0FBVztnQkFDbEIsT0FBTyxFQUFFLEVBQUU7YUFDZCxDQUFDO1NBQ0wsQ0FBQztRQUNGLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUssV0FBVyxDQUFDLElBQUk7O1lBQ2xCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNoQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ25CLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQy9CO2lCQUNJO2dCQUNELEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtvQkFDbkMsTUFBTSxJQUFJLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDekM7YUFDSjtZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLENBQUM7S0FBQTtJQUVELFVBQVUsQ0FBQyxPQUFZO1FBQ25CLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDckQsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDdEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQzdFO1NBQ0o7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksT0FBTyxFQUFFO1lBQ3RJLE1BQU0sR0FBRyw2SEFBNkg7a0JBQ2hJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQztrQkFDL0QsNENBQTRDLENBQUM7U0FDdEQ7YUFDSSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxFQUFFO1lBQ3JPLE1BQU0sR0FBRyx5SUFBeUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxHQUFHLHdCQUF3QixHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsNkNBQTZDLENBQUM7U0FDalI7YUFDSSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxFQUFFO1lBQ3BPLE1BQU0sR0FBRyxtS0FBbUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxHQUFHLHdCQUF3QixHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsNENBQTRDLENBQUM7U0FDMVM7YUFDSSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxFQUFFO1lBQ2hELE1BQU0sR0FBRyx5RkFBeUYsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxHQUFHLHdCQUF3QixHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcseUNBQXlDLENBQUM7U0FDN047YUFDSTtZQUNELE1BQU0sR0FBRyxtREFBbUQsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxHQUFHLHdCQUF3QixHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1NBQ25MO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFJO1FBQ2IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEMsQ0FBQzs7O1lBeEdKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5Qix3NUJBQWtEO2dCQUVsRCxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzs7YUFDdkM7OztZQWJpQyxRQUFRO1lBTWpDLGlCQUFpQjtZQURqQixrQkFBa0I7OzsyQkFVdEIsS0FBSzt3Q0FDTCxLQUFLO3VCQUNMLEtBQUs7d0JBSUwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLWNvbnRleHQvY29tcG9uZW50LWNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFGb3JtQmFzZSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvYmFzZS9kYXRhLWZvcm0tYmFzZSc7XHJcbmltcG9ydCB7IEN1c3RvbUNvbnRyb2xTY2hlbWEsIERyb3Bkb3duQ29udHJvbFNjaGVtYSwgRm9ybVNjaGVtYUJhc2UsIExhYmVsU2NoZW1hIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XHJcbmltcG9ydCB7IGZpbGVUeXBlU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2ZpbGUtdHlwZSc7XHJcbmltcG9ydCB7IEZpbGVNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpbGUtbWFuYWdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsZU9iamVjdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9maWxlLW9iamVjdC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdmaWxlLXBpY2tlci1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtcGlja2VyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9maWxlLXBpY2tlci1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW0NvbXBvbmVudENvbnRleHRTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVBpY2tlckRpYWxvZ0NvbXBvbmVudCBleHRlbmRzIERhdGFGb3JtQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKSBpc0ZpbGVQaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIG11bHRpcGxlQ2hlY2tXaGVuQ2xpY2tSb3c6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgZGF0YVR5cGU6IGFueTtcclxuICAgIGVudGl0eUtleTogYW55O1xyXG4gICAgc2VsZWN0ZWRJdGVtczogYW55ID0gW107XHJcblxyXG4gICAgQE91dHB1dCgpIG9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgX2ZpbGVPYmplY3RTZXJ2aWNlOiBGaWxlT2JqZWN0U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9maWxlTWFuYWdlclNlcnZpY2U6IEZpbGVNYW5hZ2VyU2VydmljZSxcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKF9pbmplY3Rvcik7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlID0gdGhpcy5fZmlsZU9iamVjdFNlcnZpY2U7XHJcbiAgICAgICAgdGhpcy5lbnRpdHlLZXkgPSAodGhpcy5fdXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKSkudXNlcklkO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5zY2hlbWEgPSA8Rm9ybVNjaGVtYUJhc2VbXT5bXHJcbiAgICAgICAgICAgIG5ldyBMYWJlbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2VtcHR5Q29udHJvbCcsXHJcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiA5XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRHJvcGRvd25Db250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnZmlsZVR5cGUnLFxyXG4gICAgICAgICAgICAgICAgc2hvd0xhYmVsOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnQ2jhu41uIGxv4bqhaSBmaWxlJyxcclxuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2U6IGZpbGVUeXBlU291cmNlLFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogMyxcclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlZDogKGV2dCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChldnQudmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFUeXBlID0gZXZ0LnZhbHVlLmlkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhVHlwZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkRGF0YSgpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy5kYXRhVHlwZVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEN1c3RvbUNvbnRyb2xTY2hlbWEoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdmaWxlTWFuYWdlcicsXHJcbiAgICAgICAgICAgICAgICBzaG93TGFiZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdNeSBmb2xkZXInLFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogMTJcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICBdO1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY2hvb3NlRmlsZXMoZGF0YSkge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSAnJztcclxuICAgICAgICBpZiAodGhpcy5pc0ZpbGVQaWNrZXIpIHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy5zZWxlY3RlZEl0ZW1zO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuc2VsZWN0ZWRJdGVtcykge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IGF3YWl0IHRoaXMucmVuZGVySHRtbChpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm9uQ2hhbmdlZC5lbWl0KHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVySHRtbChlbGVtZW50OiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSAnJztcclxuICAgICAgICBpZiAoIWVsZW1lbnQuZXh0ZW5zaW9uIHx8IGVsZW1lbnQuZXh0ZW5zaW9uLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50Lm5hbWUubGFzdEluZGV4T2YoJy4nKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuZXh0ZW5zaW9uID0gZWxlbWVudC5uYW1lLnN1YnN0cmluZyhlbGVtZW50Lm5hbWUubGFzdEluZGV4T2YoJy4nKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkgPT0gJy5QTkcnIHx8IGVsZW1lbnQuZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkgPT0gJy5KUEcnIHx8IGVsZW1lbnQuZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkgPT0gJy5KUEVHJykge1xyXG4gICAgICAgICAgICByZXN1bHQgPSAnPGRpdiBzdHlsZT1cIndpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206IDE1cHg7dGV4dC1hbGlnbjogY2VudGVyO1wiPjxpbWcgc3R5bGU9XCJkaXNwbGF5OmJsb2NrOyBtYXJnaW46YXV0bztcIiB3aWR0aD1cIjUwMFwiIHNyYz1cIidcclxuICAgICAgICAgICAgICAgICsgdGhpcy5fZmlsZU9iamVjdFNlcnZpY2UuZ2V0RmlsZVVybFdpdGhUaHVtYm9yKGVsZW1lbnQuaWQsIDEwODApXHJcbiAgICAgICAgICAgICAgICArICdcIiAvPjxwPjxlbT5UacOqdSDEkeG7gSBow6xuaCDhuqNuaDwvZW0+PC9wPjwvZGl2Pic7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkgPT0gJy5NUDMnIHx8IGVsZW1lbnQuZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkgPT0gJy5XTUEnIHx8IGVsZW1lbnQuZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkgPT0gJy5GTEFDJyB8fCBlbGVtZW50LmV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpID09ICcuQUFDJyB8fCBlbGVtZW50LmV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpID09ICcuT0dHJykge1xyXG4gICAgICAgICAgICByZXN1bHQgPSAnPGRpdiBzdHlsZT1cIndpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206IDE1cHhcIj48YXVkaW8gc3R5bGU9XCJkaXNwbGF5OiBibG9jazttYXJnaW4tbGVmdDogYXV0bzttYXJnaW4tcmlnaHQ6IGF1dG87XCIgY29udHJvbHM+PHNvdXJjZSBzcmM9XCInICsgdGhpcy5fZmlsZU9iamVjdFNlcnZpY2UuZW5kUG9pbnQgKyAnL3Y1L0ZpbGVPYmplY3QvcHVibGljLycgKyBlbGVtZW50LmlkICsgJy9kb3dubG9hZFwiIHR5cGU9XCJhdWRpby9tcGVnXCI+PC9hdWRpbz48L2Rpdj4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChlbGVtZW50LmV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpID09ICcuTVA0JyB8fCBlbGVtZW50LmV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpID09ICcuQVZJJyB8fCBlbGVtZW50LmV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpID09ICcuTU9WJyB8fCBlbGVtZW50LmV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpID09ICcuV01WJyB8fCBlbGVtZW50LmV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpID09ICcuRkxWJykge1xyXG4gICAgICAgICAgICByZXN1bHQgPSAnPGRpdiBzdHlsZT1cIndpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206IDE1cHhcIj48dmlkZW8gc3R5bGU9XCJkaXNwbGF5OiBibG9jazttYXJnaW4tbGVmdDogYXV0bzttYXJnaW4tcmlnaHQ6IGF1dG87XCIgd2lkdGg9XCI1MDBcIiBoZWlnaHQ9XCJhdXRvXCIgY29udHJvbHM+PHNvdXJjZSBzcmM9XCInICsgdGhpcy5fZmlsZU9iamVjdFNlcnZpY2UuZW5kUG9pbnQgKyAnL3Y1L0ZpbGVPYmplY3QvcHVibGljLycgKyBlbGVtZW50LmlkICsgJy9kb3dubG9hZFwiIHR5cGU9XCJ2aWRlby9tcDRcIj48L3ZpZGVvPjwvZGl2Pic7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkgPT0gJy5QREYnKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9ICc8ZGl2IHN0eWxlPVwid2lkdGg6MTAwJTsgbWFyZ2luLWJvdHRvbTogMTVweFwiPjxpZnJhbWUgc3R5bGU9XCJhc3BlY3QtcmF0aW86IDkvMTY7XCJcIiBzcmM9XCInICsgdGhpcy5fZmlsZU9iamVjdFNlcnZpY2UuZW5kUG9pbnQgKyAnL3Y1L0ZpbGVPYmplY3QvcHVibGljLycgKyBlbGVtZW50LmlkICsgJy9kb3dubG9hZFwiIHdpZHRoPVwiMTAwJVwiPjwvaWZyYW1lPjwvZGl2Pic7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXN1bHQgPSAnPGEgc3R5bGU9XCJ3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOiAxNXB4XCIgaHJlZj1cIicgKyB0aGlzLl9maWxlT2JqZWN0U2VydmljZS5lbmRQb2ludCArICcvdjUvRmlsZU9iamVjdC9wdWJsaWMvJyArIGVsZW1lbnQuaWQgKyAnL2Rvd25sb2FkXCI+JyArIGVsZW1lbnQubmFtZSArICc8L2E+JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RlZEZpbGUoZGF0YSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IGRhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgcmVsb2FkRGF0YSgpIHtcclxuICAgICAgICB0aGlzLl9maWxlTWFuYWdlclNlcnZpY2Uub25SZWxvYWQoKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -11,7 +11,13 @@ export class FileObjectService extends BaseService {
|
|
|
11
11
|
constructor(http, injector, _moduleConfigService) {
|
|
12
12
|
super(http, injector, `${_moduleConfigService.getConfig().environment.apiDomain.fileEndpoint}/${_moduleConfigService.getConfig().environment.apiVersion}/FileObject`);
|
|
13
13
|
this._moduleConfigService = _moduleConfigService;
|
|
14
|
+
this.thumborEndpoint = '';
|
|
14
15
|
this.endPoint = _moduleConfigService.getConfig().environment.apiDomain.fileEndpoint;
|
|
16
|
+
this.thumborEndpoint = _moduleConfigService.getConfig().environment.apiDomain.thumbor;
|
|
17
|
+
}
|
|
18
|
+
getFileUrlWithThumbor(fileId, width = 0, height = 0) {
|
|
19
|
+
const url = `${this.thumborEndpoint}/unsafe/${width}x${height}/smart/${this.endPoint}/v5/FileObject/public/${fileId}/download`;
|
|
20
|
+
return url;
|
|
15
21
|
}
|
|
16
22
|
copyMultipleFile(idsFile, idDesFolder) {
|
|
17
23
|
const url = `${this.serviceUri}/CopyMultipleFile?parentFolderId=${idDesFolder}`;
|
|
@@ -186,4 +192,4 @@ FileObjectService.ctorParameters = () => [
|
|
|
186
192
|
{ type: Injector },
|
|
187
193
|
{ type: ModuleConfigService }
|
|
188
194
|
];
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1vYmplY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvc2VydmljZXMvZmlsZS1vYmplY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQUsxRixNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQUM5QyxZQUFZLElBQWdCLEVBQUUsUUFBa0IsRUFDNUIsb0JBQXlDO1FBQ3pELEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsYUFBYSxDQUFDLENBQUM7UUFEdEoseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUV6RCxJQUFJLENBQUMsUUFBUSxHQUFHLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO0lBQ3hGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUFpQixFQUFFLFdBQW1CO1FBQ25ELE1BQU0sR0FBRyxHQUFHLEdBQUcs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SyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbkQ7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbkQ7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbkQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7OztZQW5NSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQVZRLFVBQVU7WUFDRSxRQUFRO1lBSXBCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZJTEVfVFlQRVMgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Jlc3BvbnNlLXJlc3VsdCc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9kdWxlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21vZHVsZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IEV4dGVuc2lvbnNDb25zdCwgRmlsZUV4dGVuc2lvbnMsIEZpbGVUeXBlRmxhZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9maWxlLXR5cGUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlT2JqZWN0U2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKGh0dHA6IEh0dHBDbGllbnQsIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihodHRwLCBpbmplY3RvciwgYCR7X21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQuYXBpRG9tYWluLmZpbGVFbmRwb2ludH0vJHtfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudC5hcGlWZXJzaW9ufS9GaWxlT2JqZWN0YCk7XHJcbiAgICAgICAgdGhpcy5lbmRQb2ludCA9IF9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaURvbWFpbi5maWxlRW5kcG9pbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29weU11bHRpcGxlRmlsZShpZHNGaWxlOiBzdHJpbmdbXSwgaWREZXNGb2xkZXI6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vQ29weU11bHRpcGxlRmlsZT9wYXJlbnRGb2xkZXJJZD0ke2lkRGVzRm9sZGVyfWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBvc3QodXJsLCBpZHNGaWxlKTtcclxuICAgIH1cclxuXHJcbiAgICBjb3B5RmlsZUJ5SGFzaChoYXNoOiBzdHJpbmcsIHBhcmVudEZvbGRlcklkOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0NvcHlGaWxlRnJvbUhhc2g/aGFzaD0ke2hhc2h9JnBhcmVudEZvbGRlcklkPSR7cGFyZW50Rm9sZGVySWR9YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0R2V0KHVybCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VXBsb2FkVXJsKCkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLnNlcnZpY2VVcml9L1VwbG9hZEZpbGVJbnRvRm9sZGVyYDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRVcGxvYWRJbnRvU2hhcmVkRm9sZGVyVXJsKCkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLnNlcnZpY2VVcml9L1VwbG9hZEZpbGVJbnRvU2hhcmVkRm9sZGVyYDtcclxuICAgIH1cclxuXHJcbiAgICBpc1N1cHBvcnRlZFZpZXdPbmxpbmUoZmlsZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmIChmaWxlTmFtZS5sYXN0SW5kZXhPZignLicpID09PSAtMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBmaWxlVHlwZSA9IGZpbGVOYW1lLnN1YnN0cmluZyhmaWxlTmFtZS5sYXN0SW5kZXhPZignLicpICsgMSk7XHJcblxyXG4gICAgICAgIGlmICgoLyhnaWZ8anBnfGpwZWd8dGlmZnxwbmcpJC9pKS50ZXN0KGZpbGVUeXBlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKC8oZG9jfGRvY218ZG9jeHxkb3R8ZG90bXxkb3R4fGVwdWJ8Zm9kdHxodG18aHRtbHxtaHR8b2R0fG90dHxwZGZ8cnRmfHR4dHxkanZ1fHhwcykkL2kpLnRlc3QoZmlsZVR5cGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICgoLyhjc3Z8Zm9kc3xvZHN8b3RzfHhsc3x4bHNtfHhsc3h8eGx0fHhsdG18eGx0eCkkL2kpLnRlc3QoZmlsZVR5cGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICgoLyhmb2RwfG9kcHxvdHB8cG90fHBvdG18cG90eHxwcHN8cHBzbXxwcHN4fHBwdHxwcHRtfHBwdHgpJC9pKS50ZXN0KGZpbGVUeXBlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKC8obXA0fG1vdnxhdml8d212fHZvYnxybXxhc2Z8M2dwKSQvaSkudGVzdChmaWxlVHlwZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKCgvKG1wM3x3bWF8d2F2fHdtdnxvZ2cpJC9pKS50ZXN0KGZpbGVUeXBlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoIWZpbGVOYW1lKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIGNvbnN0IGFyciA9IGZpbGVOYW1lLnNwbGl0KCcuJyk7XHJcbiAgICAgICAgaWYgKGFyci5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhcnJbYXJyLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRGaWxlVHlwZShmaWxlRXh0ZW5zaW9uOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoZmlsZUV4dGVuc2lvbikge1xyXG4gICAgICAgICAgICBmaWxlRXh0ZW5zaW9uID0gZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICBpZiAoZmlsZUV4dGVuc2lvbi5pbmRleE9mKCcuJykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYXJyID0gZmlsZUV4dGVuc2lvbi5zcGxpdCgnLicpO1xyXG4gICAgICAgICAgICAgICAgZmlsZUV4dGVuc2lvbiA9IGFyclthcnIubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCgvKGdpZnxqcGd8anBlZ3x0aWZmfHBuZykkL2kpLnRlc3QoZmlsZUV4dGVuc2lvbikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBGSUxFX1RZUEVTLklNQUdFO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKCgvKGRvY3xkb2NtfGRvY3h8ZG90fGRvdG18ZG90eHxlcHVifGZvZHR8aHRtfGh0bWx8bWh0fG9kdHxvdHR8cnRmfHR4dHxkanZ1fHhwcykkL2kpLnRlc3QoZmlsZUV4dGVuc2lvbikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBGSUxFX1RZUEVTLlRFWFQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKC8ocGRmKSQvaSkudGVzdChmaWxlRXh0ZW5zaW9uKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIEZJTEVfVFlQRVMuUERGO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKCgvKGNzdnxmb2RzfG9kc3xvdHN8eGxzfHhsc218eGxzeHx4bHR8eGx0bXx4bHR4KSQvaSkudGVzdChmaWxlRXh0ZW5zaW9uKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIEZJTEVfVFlQRVMuU1BSRUFEU0hFRVQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKC8oZm9kcHxvZHB8b3RwfHBvdHxwb3RtfHBvdHh8cHBzfHBwc218cHBzeHxwcHR8cHB0bXxwcHR4KSQvaSkudGVzdChmaWxlRXh0ZW5zaW9uKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIEZJTEVfVFlQRVMuUFJFU0VOVEFUSU9OO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKCgvKG1wNHxtb3Z8YXZpfHdtdnx2b2J8cm18YXNmfDNncCkkL2kpLnRlc3QoZmlsZUV4dGVuc2lvbikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBGSUxFX1RZUEVTLlZJREVPO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKCgvKG1wM3x3bWF8d2F2fHdtdnxvZ2cpJC9pKS50ZXN0KGZpbGVFeHRlbnNpb24pKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gRklMRV9UWVBFUy5BVURJTztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgaXNUeXBlRmlsZUt5U28oZmlsZU5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIGxldCBmaWxlRXh0ZW5zaW9uID0gdGhpcy5nZXRGaWxlRXh0ZW5zaW9uKGZpbGVOYW1lKTtcclxuICAgICAgICBpZiAoZmlsZUV4dGVuc2lvbikge1xyXG4gICAgICAgICAgICBmaWxlRXh0ZW5zaW9uID0gZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICBpZiAoZmlsZUV4dGVuc2lvbi5pbmRleE9mKCcuJykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYXJyID0gZmlsZUV4dGVuc2lvbi5zcGxpdCgnLicpO1xyXG4gICAgICAgICAgICAgICAgZmlsZUV4dGVuc2lvbiA9IGFyclthcnIubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCgvKHBkZnxkb2N8ZG9jeCkkL2kpLnRlc3QoZmlsZUV4dGVuc2lvbikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpc0ZpbGVUeXBlKGZpbGVFeHRlbnNpb246IHN0cmluZywgdHlwZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEZpbGVUeXBlKGZpbGVFeHRlbnNpb24pID09PSB0eXBlO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZUZpbGVJbnRvU2hhcmVkRm9sZGVyKGZvcm1EYXRhKSB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9VcGxvYWRGaWxlSW50b1NoYXJlZEZvbGRlcmA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRQb3N0KHVybCwgZm9ybURhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZpbGVJblNoYXJlZEZvbGRlcihtb2RlbCkge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vR2V0RmlsZUluU2hhcmVkRm9sZGVyYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBvc3QodXJsLCBtb2RlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlRmlsZUZyb21TaGFyZWRGb2xkZXIobW9kZWwpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0RlbGV0ZUZpbGVGcm9tU2hhcmVkRm9sZGVyYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBvc3QodXJsLCBtb2RlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlU2VydmljZUZpbGUoc2VydmljZUZpbGVPYmplY3REVE86IEZvcm1EYXRhKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vQ3JlYXRlU2VydmljZUZpbGVgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9zdCh1cmwsIHNlcnZpY2VGaWxlT2JqZWN0RFRPKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTaW5nbGVTZXJ2aWNlRmlsZShzZXJ2aWNlUmVxdWVzdE1vZGVsOiBhbnkpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9HZXRTaW5nbGVTZXJ2aWNlRmlsZWA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRQb3N0KHVybCwgc2VydmljZVJlcXVlc3RNb2RlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2NhbkZpbGVVcGxvYWRFbmRwb2ludChjb3JyZWxhdGlvbklkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5zZXJ2aWNlQ29kZX0vQ3JlYXRlU2Nhbm5lZEZpbGUvJHtjb3JyZWxhdGlvbklkfWA7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGdldEFjY2VwdGVkRXh0ZW5zaW9ucyhhY2NlcHRGaWxlVHlwZXM6IEZpbGVUeXBlRmxhZykge1xyXG4gICAgICAgIGxldCBhY2NlcHQgPSAnJztcclxuICAgICAgICBpZiAoKGFjY2VwdEZpbGVUeXBlcyAmIEZpbGVUeXBlRmxhZy5WSURFTykgIT09IDApIHtcclxuICAgICAgICAgICAgYWNjZXB0ICs9IEZpbGVFeHRlbnNpb25zLlZJREVPICsgJywnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoKGFjY2VwdEZpbGVUeXBlcyAmIEZpbGVUeXBlRmxhZy5JTUFHRSkgIT09IDApIHtcclxuICAgICAgICAgICAgYWNjZXB0ICs9IEZpbGVFeHRlbnNpb25zLklNQUdFICsgJywnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoKGFjY2VwdEZpbGVUeXBlcyAmIEZpbGVUeXBlRmxhZy5ET0MpICE9PSAwKSB7XHJcbiAgICAgICAgICAgIGFjY2VwdCArPSBGaWxlRXh0ZW5zaW9ucy5ET0MgKyAnLCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgoYWNjZXB0RmlsZVR5cGVzICYgRmlsZVR5cGVGbGFnLkFVRElPKSAhPT0gMCkge1xyXG4gICAgICAgICAgICBhY2NlcHQgKz0gRmlsZUV4dGVuc2lvbnMuQVVESU8gKyAnLCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgoYWNjZXB0RmlsZVR5cGVzICYgRmlsZVR5cGVGbGFnLkNPTVBSRVNTRUQpICE9PSAwKSB7XHJcbiAgICAgICAgICAgIGFjY2VwdCArPSBGaWxlRXh0ZW5zaW9ucy5DT01QUkVTU0VEICsgJywnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYWNjZXB0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFjY2VwdGVkRXh0ZW5zaW9uc0FycmF5KGFjY2VwdEZpbGVUeXBlczogRmlsZVR5cGVGbGFnKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XHJcbiAgICAgICAgaWYgKChhY2NlcHRGaWxlVHlwZXMgJiBGaWxlVHlwZUZsYWcuVklERU8pICE9PSAwKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLkV4dGVuc2lvbnNDb25zdC5WaWRlb0V4dGVuc2lvbnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoKGFjY2VwdEZpbGVUeXBlcyAmIEZpbGVUeXBlRmxhZy5JTUFHRSkgIT09IDApIHtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4uRXh0ZW5zaW9uc0NvbnN0LkltYWdlRXh0ZW5zaW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgoYWNjZXB0RmlsZVR5cGVzICYgRmlsZVR5cGVGbGFnLkRPQykgIT09IDApIHtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4uRXh0ZW5zaW9uc0NvbnN0LkRvY0V4dGVuc2lvbnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoKGFjY2VwdEZpbGVUeXBlcyAmIEZpbGVUeXBlRmxhZy5BVURJTykgIT09IDApIHtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4uRXh0ZW5zaW9uc0NvbnN0LkF1ZGlvRXh0ZW5zaW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgoYWNjZXB0RmlsZVR5cGVzICYgRmlsZVR5cGVGbGFnLkNPTVBSRVNTRUQpICE9PSAwKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLkV4dGVuc2lvbnNDb25zdC5Db21wcmVzc2VkRXh0ZW5zaW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1vYmplY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvc2VydmljZXMvZmlsZS1vYmplY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQUsxRixNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQUU5QyxZQUFZLElBQWdCLEVBQUUsUUFBa0IsRUFDcEMsb0JBQXlDO1FBQ2pELEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsYUFBYSxDQUFDLENBQUM7UUFEOUoseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUZyRCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUlqQixJQUFJLENBQUMsUUFBUSxHQUFHLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ3BGLElBQUksQ0FBQyxlQUFlLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxF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SUFDbEIsQ0FBQzs7OztZQTFNSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQVZRLFVBQVU7WUFDRSxRQUFRO1lBSXBCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZJTEVfVFlQRVMgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Jlc3BvbnNlLXJlc3VsdCc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9kdWxlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21vZHVsZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IEV4dGVuc2lvbnNDb25zdCwgRmlsZUV4dGVuc2lvbnMsIEZpbGVUeXBlRmxhZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9maWxlLXR5cGUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlT2JqZWN0U2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcclxuICAgIHRodW1ib3JFbmRwb2ludCA9ICcnO1xyXG4gICAgY29uc3RydWN0b3IoaHR0cDogSHR0cENsaWVudCwgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihodHRwLCBpbmplY3RvciwgYCR7X21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQuYXBpRG9tYWluLmZpbGVFbmRwb2ludH0vJHtfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudC5hcGlWZXJzaW9ufS9GaWxlT2JqZWN0YCk7XHJcbiAgICAgICAgdGhpcy5lbmRQb2ludCA9IF9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaURvbWFpbi5maWxlRW5kcG9pbnQ7XHJcbiAgICAgICAgdGhpcy50aHVtYm9yRW5kcG9pbnQgPSBfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudC5hcGlEb21haW4udGh1bWJvcjtcclxuICAgIH1cclxuXHJcbiAgICBnZXRGaWxlVXJsV2l0aFRodW1ib3IoZmlsZUlkLCB3aWR0aCA9IDAsIGhlaWdodCA9IDApIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnRodW1ib3JFbmRwb2ludH0vdW5zYWZlLyR7d2lkdGh9eCR7aGVpZ2h0fS9zbWFydC8ke3RoaXMuZW5kUG9pbnR9L3Y1L0ZpbGVPYmplY3QvcHVibGljLyR7ZmlsZUlkfS9kb3dubG9hZGA7XHJcbiAgICAgICAgcmV0dXJuIHVybDtcclxuICAgIH1cclxuXHJcbiAgICBjb3B5TXVsdGlwbGVGaWxlKGlkc0ZpbGU6IHN0cmluZ1tdLCBpZERlc0ZvbGRlcjogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9Db3B5TXVsdGlwbGVGaWxlP3BhcmVudEZvbGRlcklkPSR7aWREZXNGb2xkZXJ9YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9zdCh1cmwsIGlkc0ZpbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvcHlGaWxlQnlIYXNoKGhhc2g6IHN0cmluZywgcGFyZW50Rm9sZGVySWQ6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vQ29weUZpbGVGcm9tSGFzaD9oYXNoPSR7aGFzaH0mcGFyZW50Rm9sZGVySWQ9JHtwYXJlbnRGb2xkZXJJZH1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRHZXQodXJsKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRVcGxvYWRVcmwoKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuc2VydmljZVVyaX0vVXBsb2FkRmlsZUludG9Gb2xkZXJgO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVwbG9hZEludG9TaGFyZWRGb2xkZXJVcmwoKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuc2VydmljZVVyaX0vVXBsb2FkRmlsZUludG9TaGFyZWRGb2xkZXJgO1xyXG4gICAgfVxyXG5cclxuICAgIGlzU3VwcG9ydGVkVmlld09ubGluZShmaWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKGZpbGVOYW1lLmxhc3RJbmRleE9mKCcuJykgPT09IC0xKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGZpbGVUeXBlID0gZmlsZU5hbWUuc3Vic3RyaW5nKGZpbGVOYW1lLmxhc3RJbmRleE9mKCcuJykgKyAxKTtcclxuXHJcbiAgICAgICAgaWYgKCgvKGdpZnxqcGd8anBlZ3x0aWZmfHBuZykkL2kpLnRlc3QoZmlsZVR5cGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICgoLyhkb2N8ZG9jbXxkb2N4fGRvdHxkb3RtfGRvdHh8ZXB1Ynxmb2R0fGh0bXxodG1sfG1odHxvZHR8b3R0fHBkZnxydGZ8dHh0fGRqdnV8eHBzKSQvaSkudGVzdChmaWxlVHlwZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKCgvKGNzdnxmb2RzfG9kc3xvdHN8eGxzfHhsc218eGxzeHx4bHR8eGx0bXx4bHR4KSQvaSkudGVzdChmaWxlVHlwZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKCgvKGZvZHB8b2RwfG90cHxwb3R8cG90bXxwb3R4fHBwc3xwcHNtfHBwc3h8cHB0fHBwdG18cHB0eCkkL2kpLnRlc3QoZmlsZVR5cGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICgoLyhtcDR8bW92fGF2aXx3bXZ8dm9ifHJtfGFzZnwzZ3ApJC9pKS50ZXN0KGZpbGVUeXBlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKC8obXAzfHdtYXx3YXZ8d212fG9nZykkL2kpLnRlc3QoZmlsZVR5cGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZpbGVFeHRlbnNpb24oZmlsZU5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIGlmICghZmlsZU5hbWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgY29uc3QgYXJyID0gZmlsZU5hbWUuc3BsaXQoJy4nKTtcclxuICAgICAgICBpZiAoYXJyLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFyclthcnIubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldEZpbGVUeXBlKGZpbGVFeHRlbnNpb246IHN0cmluZykge1xyXG4gICAgICAgIGlmIChmaWxlRXh0ZW5zaW9uKSB7XHJcbiAgICAgICAgICAgIGZpbGVFeHRlbnNpb24gPSBmaWxlRXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgIGlmIChmaWxlRXh0ZW5zaW9uLmluZGV4T2YoJy4nKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhcnIgPSBmaWxlRXh0ZW5zaW9uLnNwbGl0KCcuJyk7XHJcbiAgICAgICAgICAgICAgICBmaWxlRXh0ZW5zaW9uID0gYXJyW2Fyci5sZW5ndGggLSAxXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoKC8oZ2lmfGpwZ3xqcGVnfHRpZmZ8cG5nKSQvaSkudGVzdChmaWxlRXh0ZW5zaW9uKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIEZJTEVfVFlQRVMuSU1BR0U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKC8oZG9jfGRvY218ZG9jeHxkb3R8ZG90bXxkb3R4fGVwdWJ8Zm9kdHxodG18aHRtbHxtaHR8b2R0fG90dHxydGZ8dHh0fGRqdnV8eHBzKSQvaSkudGVzdChmaWxlRXh0ZW5zaW9uKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIEZJTEVfVFlQRVMuVEVYVDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICgoLyhwZGYpJC9pKS50ZXN0KGZpbGVFeHRlbnNpb24pKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gRklMRV9UWVBFUy5QREY7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKC8oY3N2fGZvZHN8b2RzfG90c3x4bHN8eGxzbXx4bHN4fHhsdHx4bHRtfHhsdHgpJC9pKS50ZXN0KGZpbGVFeHRlbnNpb24pKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gRklMRV9UWVBFUy5TUFJFQURTSEVFVDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICgoLyhmb2RwfG9kcHxvdHB8cG90fHBvdG18cG90eHxwcHN8cHBzbXxwcHN4fHBwdHxwcHRtfHBwdHgpJC9pKS50ZXN0KGZpbGVFeHRlbnNpb24pKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gRklMRV9UWVBFUy5QUkVTRU5UQVRJT047XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKC8obXA0fG1vdnxhdml8d212fHZvYnxybXxhc2Z8M2dwKSQvaSkudGVzdChmaWxlRXh0ZW5zaW9uKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIEZJTEVfVFlQRVMuVklERU87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKC8obXAzfHdtYXx3YXZ8d212fG9nZykkL2kpLnRlc3QoZmlsZUV4dGVuc2lvbikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBGSUxFX1RZUEVTLkFVRElPO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBpc1R5cGVGaWxlS3lTbyhmaWxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgbGV0IGZpbGVFeHRlbnNpb24gPSB0aGlzLmdldEZpbGVFeHRlbnNpb24oZmlsZU5hbWUpO1xyXG4gICAgICAgIGlmIChmaWxlRXh0ZW5zaW9uKSB7XHJcbiAgICAgICAgICAgIGZpbGVFeHRlbnNpb24gPSBmaWxlRXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgIGlmIChmaWxlRXh0ZW5zaW9uLmluZGV4T2YoJy4nKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhcnIgPSBmaWxlRXh0ZW5zaW9uLnNwbGl0KCcuJyk7XHJcbiAgICAgICAgICAgICAgICBmaWxlRXh0ZW5zaW9uID0gYXJyW2Fyci5sZW5ndGggLSAxXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoKC8ocGRmfGRvY3xkb2N4KSQvaSkudGVzdChmaWxlRXh0ZW5zaW9uKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRmlsZVR5cGUoZmlsZUV4dGVuc2lvbjogc3RyaW5nLCB0eXBlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmlsZVR5cGUoZmlsZUV4dGVuc2lvbikgPT09IHR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlRmlsZUludG9TaGFyZWRGb2xkZXIoZm9ybURhdGEpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L1VwbG9hZEZpbGVJbnRvU2hhcmVkRm9sZGVyYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBvc3QodXJsLCBmb3JtRGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RmlsZUluU2hhcmVkRm9sZGVyKG1vZGVsKSB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9HZXRGaWxlSW5TaGFyZWRGb2xkZXJgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9zdCh1cmwsIG1vZGVsKTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVGaWxlRnJvbVNoYXJlZEZvbGRlcihtb2RlbCkge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vRGVsZXRlRmlsZUZyb21TaGFyZWRGb2xkZXJgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9zdCh1cmwsIG1vZGVsKTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVTZXJ2aWNlRmlsZShzZXJ2aWNlRmlsZU9iamVjdERUTzogRm9ybURhdGEpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9DcmVhdGVTZXJ2aWNlRmlsZWA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRQb3N0KHVybCwgc2VydmljZUZpbGVPYmplY3REVE8pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNpbmdsZVNlcnZpY2VGaWxlKHNlcnZpY2VSZXF1ZXN0TW9kZWw6IGFueSk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0dldFNpbmdsZVNlcnZpY2VGaWxlYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBvc3QodXJsLCBzZXJ2aWNlUmVxdWVzdE1vZGVsKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTY2FuRmlsZVVwbG9hZEVuZHBvaW50KGNvcnJlbGF0aW9uSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLnNlcnZpY2VDb2RlfS9DcmVhdGVTY2FubmVkRmlsZS8ke2NvcnJlbGF0aW9uSWR9YDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZ2V0QWNjZXB0ZWRFeHRlbnNpb25zKGFjY2VwdEZpbGVUeXBlczogRmlsZVR5cGVGbGFnKSB7XHJcbiAgICAgICAgbGV0IGFjY2VwdCA9ICcnO1xyXG4gICAgICAgIGlmICgoYWNjZXB0RmlsZVR5cGVzICYgRmlsZVR5cGVGbGFnLlZJREVPKSAhPT0gMCkge1xyXG4gICAgICAgICAgICBhY2NlcHQgKz0gRmlsZUV4dGVuc2lvbnMuVklERU8gKyAnLCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgoYWNjZXB0RmlsZVR5cGVzICYgRmlsZVR5cGVGbGFnLklNQUdFKSAhPT0gMCkge1xyXG4gICAgICAgICAgICBhY2NlcHQgKz0gRmlsZUV4dGVuc2lvbnMuSU1BR0UgKyAnLCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgoYWNjZXB0RmlsZVR5cGVzICYgRmlsZVR5cGVGbGFnLkRPQykgIT09IDApIHtcclxuICAgICAgICAgICAgYWNjZXB0ICs9IEZpbGVFeHRlbnNpb25zLkRPQyArICcsJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKChhY2NlcHRGaWxlVHlwZXMgJiBGaWxlVHlwZUZsYWcuQVVESU8pICE9PSAwKSB7XHJcbiAgICAgICAgICAgIGFjY2VwdCArPSBGaWxlRXh0ZW5zaW9ucy5BVURJTyArICcsJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKChhY2NlcHRGaWxlVHlwZXMgJiBGaWxlVHlwZUZsYWcuQ09NUFJFU1NFRCkgIT09IDApIHtcclxuICAgICAgICAgICAgYWNjZXB0ICs9IEZpbGVFeHRlbnNpb25zLkNPTVBSRVNTRUQgKyAnLCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhY2NlcHQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWNjZXB0ZWRFeHRlbnNpb25zQXJyYXkoYWNjZXB0RmlsZVR5cGVzOiBGaWxlVHlwZUZsYWcpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcclxuICAgICAgICBpZiAoKGFjY2VwdEZpbGVUeXBlcyAmIEZpbGVUeXBlRmxhZy5WSURFTykgIT09IDApIHtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4uRXh0ZW5zaW9uc0NvbnN0LlZpZGVvRXh0ZW5zaW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgoYWNjZXB0RmlsZVR5cGVzICYgRmlsZVR5cGVGbGFnLklNQUdFKSAhPT0gMCkge1xyXG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi5FeHRlbnNpb25zQ29uc3QuSW1hZ2VFeHRlbnNpb25zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKChhY2NlcHRGaWxlVHlwZXMgJiBGaWxlVHlwZUZsYWcuRE9DKSAhPT0gMCkge1xyXG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi5FeHRlbnNpb25zQ29uc3QuRG9jRXh0ZW5zaW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgoYWNjZXB0RmlsZVR5cGVzICYgRmlsZVR5cGVGbGFnLkFVRElPKSAhPT0gMCkge1xyXG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi5FeHRlbnNpb25zQ29uc3QuQXVkaW9FeHRlbnNpb25zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKChhY2NlcHRGaWxlVHlwZXMgJiBGaWxlVHlwZUZsYWcuQ09NUFJFU1NFRCkgIT09IDApIHtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4uRXh0ZW5zaW9uc0NvbnN0LkNvbXByZXNzZWRFeHRlbnNpb25zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
package/esm2015/components/workflow/process-workflow-form/process-workflow-form.component.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { Component, EventEmitter, Injector, Input, Output, ViewChild } from '@angular/core';
|
|
3
3
|
import { DataFormBase } from '../../../classes/base/data-form-base';
|
|
4
|
-
import { CrudListSetting, EditorControlSchema, EnumFileLayout, FileManagerControlSchema
|
|
4
|
+
import { CrudListSetting, EditorControlSchema, EnumFileLayout, FileManagerControlSchema } from '../../../classes/form-schema';
|
|
5
5
|
import { EnumProcessWorkflowType, EnumStateType } from '../../statemachines/models/enums';
|
|
6
6
|
import { StateMachinesService } from '../../statemachines/services/statemachines.service';
|
|
7
7
|
import { WfAction, WfItem, WorkflowTargetDefaultValue } from '../models/models';
|
|
@@ -154,25 +154,16 @@ export class ProcessWorkflowFormComponent extends DataFormBase {
|
|
|
154
154
|
roleIds: (_f = this.action.data.roleViewIds) !== null && _f !== void 0 ? _f : [],
|
|
155
155
|
type: EnumProcessWorkflowType.VIEW
|
|
156
156
|
};
|
|
157
|
-
this.
|
|
158
|
-
this.
|
|
159
|
-
this.
|
|
160
|
-
this.
|
|
161
|
-
this.
|
|
162
|
-
this.
|
|
163
|
-
this.
|
|
164
|
-
this.
|
|
157
|
+
this.addDistinctList(this.dataAllowEdit.userIds, this.initValueForTargetForm.lstUserId);
|
|
158
|
+
this.addDistinctList(this.dataAllowEdit.departmentIds, this.initValueForTargetForm.lstDonViId);
|
|
159
|
+
this.addDistinctList(this.dataAllowEdit.groupIds, this.initValueForTargetForm.lstGroupId);
|
|
160
|
+
this.addDistinctList(this.dataAllowEdit.roleIds, this.initValueForTargetForm.lstRoleId);
|
|
161
|
+
this.addDistinctList(this.dataOnlyView.userIds, this.initValueForTargetForm.lstUserViewId);
|
|
162
|
+
this.addDistinctList(this.dataOnlyView.departmentIds, this.initValueForTargetForm.lstDonViViewId);
|
|
163
|
+
this.addDistinctList(this.dataOnlyView.groupIds, this.initValueForTargetForm.lstGroupViewId);
|
|
164
|
+
this.addDistinctList(this.dataOnlyView.roleIds, this.initValueForTargetForm.lstRoleViewId);
|
|
165
165
|
this.formReady = true;
|
|
166
166
|
}
|
|
167
|
-
addDistinct(dest, source) {
|
|
168
|
-
if (!source || !source.length)
|
|
169
|
-
return;
|
|
170
|
-
source.forEach(item => {
|
|
171
|
-
if (dest.indexOf(item) == -1) {
|
|
172
|
-
dest.push(item);
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
167
|
onFormInitialized(evt) {
|
|
177
168
|
return __awaiter(this, void 0, void 0, function* () {
|
|
178
169
|
evt.model.id = this._commonService.guid();
|
|
@@ -269,4 +260,4 @@ ProcessWorkflowFormComponent.propDecorators = {
|
|
|
269
260
|
action: [{ type: Input }],
|
|
270
261
|
onInvalidWorkflow: [{ type: Output }]
|
|
271
262
|
};
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy13b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3dvcmtmbG93L3Byb2Nlc3Mtd29ya2Zsb3ctZm9ybS9wcm9jZXNzLXdvcmtmbG93LWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BFLE9BQU8sRUFDSCxlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGNBQWMsRUFFZCx3QkFBd0IsR0FFM0IsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQU85RSxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsWUFBWTtJQStCMUQsWUFDYyxTQUFtQixFQUNyQixxQkFBMkMsRUFDM0MsdUJBQStDO1FBRXZELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUpQLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDckIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFzQjtRQUMzQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBekJqRCxz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Q0FBSSxFQUFFO1lBQ3ZELFFBQVEsUUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLG1DQUFJLEVBQUU7WUFDN0MsT0FBTyxRQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsbUNBQUksRUFBRTtZQUMzQyxJQUFJLEVBQUUsdUJBQXVCLENBQUMsSUFBSTtTQUNyQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNC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UyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx1QkFBdUI7Z0JBQ2pDLDY2Q0FBcUQ7O2FBRXhEOzs7WUFyQmlDLFFBQVE7WUFZakMsb0JBQW9CO1lBR3BCLHNCQUFzQjs7O2tDQVExQixTQUFTLFNBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2lDQUM5QyxTQUFTLFNBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzhCQUU3QyxLQUFLO21CQUNMLEtBQUs7dUJBQ0wsS0FBSztxQkFDTCxLQUFLO2dDQUVMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEYXRhRm9ybUJhc2UgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Jhc2UvZGF0YS1mb3JtLWJhc2UnO1xyXG5pbXBvcnQge1xyXG4gICAgQ3J1ZExpc3RTZXR0aW5nLFxyXG4gICAgRWRpdG9yQ29udHJvbFNjaGVtYSxcclxuICAgIEVudW1GaWxlTGF5b3V0LFxyXG4gICAgRXZlbnREYXRhLFxyXG4gICAgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hLFxyXG4gICAgRm9ybVNjaGVtYUJhc2UsXHJcbn0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XHJcbmltcG9ydCB7IEVudW1Qcm9jZXNzV29ya2Zsb3dUeXBlLCBFbnVtU3RhdGVUeXBlIH0gZnJvbSAnLi4vLi4vc3RhdGVtYWNoaW5lcy9tb2RlbHMvZW51bXMnO1xyXG5pbXBvcnQgeyBTdGF0ZU1hY2hpbmVzU2VydmljZSB9IGZyb20gJy4uLy4uL3N0YXRlbWFjaGluZXMvc2VydmljZXMvc3RhdGVtYWNoaW5lcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2ZBY3Rpb24sIFdmSXRlbSwgV29ya2Zsb3dUYXJnZXREZWZhdWx0VmFsdWUgfSBmcm9tICcuLi9tb2RlbHMvbW9kZWxzJztcclxuaW1wb3J0IHsgUHJvY2Vzc1dvcmtmbG93VGFyZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQvcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgV29ya2Zsb3dIaXN0b3J5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3dvcmtmbG93LWhpc3Rvcnkuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncHJvY2Vzcy13b3JrZmxvdy1mb3JtJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzLXdvcmtmbG93LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJvY2Vzcy13b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvY2Vzc1dvcmtmbG93Rm9ybUNvbXBvbmVudCBleHRlbmRzIERhdGFGb3JtQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCd0YXJnZXRBbGxvd0VkaXQnLCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybVRhcmdldEFsbG93RWRpdDogUHJvY2Vzc1dvcmtmbG93VGFyZ2V0Q29tcG9uZW50O1xyXG4gICAgQFZpZXdDaGlsZCgndGFyZ2V0T25seVZpZXcnLCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybVRhcmdldE9ubHlWaWV3OiBQcm9jZXNzV29ya2Zsb3dUYXJnZXRDb21wb25lbnQ7XHJcblxyXG4gICAgQElucHV0KCkgYnVzaW5lc3NTZXR0aW5nOiBDcnVkTGlzdFNldHRpbmc7XHJcbiAgICBASW5wdXQoKSBpdGVtOiBhbnk7XHJcbiAgICBASW5wdXQoKSB3b3JrZmxvdzogV2ZJdGVtO1xyXG4gICAgQElucHV0KCkgYWN0aW9uOiBXZkFjdGlvbjtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25JbnZhbGlkV29ya2Zsb3c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgZm9ybVJlYWR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBtYWluVGFiRGF0YTogYW55W10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnYWxsb3dFZGl0JyxcclxuICAgICAgICAgICAgaWNvbjogJ3BpIHBpLWV4Y2xhbWF0aW9uLWNpcmNsZScsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnTmfGsOG7nWkgbmjhuq1uJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnb25seVZpZXcnLFxyXG4gICAgICAgICAgICBpY29uOiAncGkgcGktbGlzdCcsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnTmfGsOG7nWkgdGhlbyBkw7VpJ1xyXG4gICAgICAgIH1cclxuICAgIF07XHJcbiAgICBpc0FjdGlvbktldFRodWM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGRhdGFBbGxvd0VkaXQ6IGFueSA9IHt9O1xyXG4gICAgZGF0YU9ubHlWaWV3OiBhbnkgPSB7fTtcclxuICAgIHJ1bGVVc2VycyA9IFtdO1xyXG4gICAgaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybTogV29ya2Zsb3dUYXJnZXREZWZhdWx0VmFsdWUgPSBuZXcgV29ya2Zsb3dUYXJnZXREZWZhdWx0VmFsdWUoKTtcclxuICAgIHVzZXJJZHNEYVRodWNIaWVuOiBzdHJpbmdbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcml2YXRlIF9zdGF0ZU1hY2hpbmVzU2VydmljZTogU3RhdGVNYWNoaW5lc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfd29ya2Zsb3dIaXN0b3J5U2VydmljZTogV29ya2Zsb3dIaXN0b3J5U2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgICAgIGNvbnN0IG1pc3NpbmdOYW1lcyA9IFtdO1xyXG4gICAgICAgIGlmICghdGhpcy5idXNpbmVzc1NldHRpbmcuYmFzZVNlcnZpY2Uub2JqZWN0TmFtZSkge1xyXG4gICAgICAgICAgICBtaXNzaW5nTmFtZXMucHVzaCgndMOqbiDEkeG7kWkgdMaw4bujbmcgKGJhc2Ugc2VydmljZSknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmJ1c2luZXNzU2V0dGluZy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICAgICAgbWlzc2luZ05hbWVzLnB1c2goJ2Rpc3BsYXkgZmllbGQgKGNydWQgbGlzdCBzZXR0aW5nKScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobWlzc2luZ05hbWVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93V2FybmluZyhgQuG6oW4gY2jGsGEgY+G6pXUgaMOsbmggJHttaXNzaW5nTmFtZXMuam9pbignLCAnKX1gKTtcclxuICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlID0gdGhpcy5fc3RhdGVNYWNoaW5lc1NlcnZpY2U7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNjaGVtYSA9IDxGb3JtU2NoZW1hQmFzZVtdPltcclxuICAgICAgICAgICAgbmV3IEVkaXRvckNvbnRyb2xTY2hlbWEoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdub3RlJyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ8OdIGtp4bq/bicpLFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogMTJcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdmaWxlRGluaEtlbScsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdGaWxlIMSRw61uaCBrw6htJyksXHJcbiAgICAgICAgICAgICAgICBsYXlvdXQ6IEVudW1GaWxlTGF5b3V0LlNJTVBMRSxcclxuICAgICAgICAgICAgICAgIHNlcnZpY2VDb2RlOiB0aGlzLl93b3JrZmxvd0hpc3RvcnlTZXJ2aWNlLnNlcnZpY2VDb2RlLFxyXG4gICAgICAgICAgICAgICAgZW50aXR5OiB0aGlzLl93b3JrZmxvd0hpc3RvcnlTZXJ2aWNlLmVudGl0eU5hbWUsXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6IHRoaXMubW9kZWwuZGF0YS5pZCxcclxuICAgICAgICAgICAgICAgIG1kV2lkdGg6IDEyLFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgXTtcclxuICAgICAgICB0aGlzLmluaXRSdWxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgaW5pdFJ1bGUoKSB7XHJcbiAgICAgICAgLy8gS2nhu4NtIHRyYSDEkcOieSBsw6AgYWN0aW9uIGvhur90IHRow7pjXHJcbiAgICAgICAgY29uc3QgbmV4dE1hY2hpbmUgPSB0aGlzLndvcmtmbG93LmRhdGEubWFjaGluZXMuZmluZChxID0+IHEuaWQgPT0gdGhpcy5hY3Rpb24udGFyZ2V0KTtcclxuICAgICAgICB0aGlzLmlzQWN0aW9uS2V0VGh1YyA9IG5leHRNYWNoaW5lLnR5cGUgPT0gRW51bVN0YXRlVHlwZS5TVE9QO1xyXG4gICAgICAgIGlmICh0aGlzLmlzQWN0aW9uS2V0VGh1Yykge1xyXG4gICAgICAgICAgICB0aGlzLm1haW5UYWJEYXRhWzFdLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGlmICh0aGlzLmNoZWNrTmVlZEdldFVzZXIoKSkge1xyXG4gICAgICAgIGlmICghYXdhaXQgdGhpcy5nZXRVc2VyRm9yUHJvY2Vzc1dvcmtmbG93KCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgdGhpcy5zZXREYXRhQW5kVHJpZ2dlclJlYWR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tOZWVkR2V0VXNlcigpIHtcclxuICAgICAgICB0aGlzLnJ1bGVVc2VycyA9IFtdO1xyXG4gICAgICAgIGlmICghdGhpcy5hY3Rpb24uZGF0YS5pbmZvUmVjZWl2ZXIgfHwgIXRoaXMuYWN0aW9uLmRhdGEuaW5mb1JlY2VpdmVyLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5hY3Rpb24uZGF0YS5pbmZvUmVjZWl2ZXIubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5hY3Rpb24uZGF0YS5pbmZvUmVjZWl2ZXJbMF0ubGFuVGh1ID0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChjb25zdCBpbmZvUmVjZWl2ZXIgb2YgdGhpcy5hY3Rpb24uZGF0YS5pbmZvUmVjZWl2ZXIpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tOZWVkR2V0VXNlckJ5VXNlckRhdGEoaW5mb1JlY2VpdmVyLnVzZXIpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja05lZWRHZXRVc2VyQnlVc2VyRGF0YShpbmZvUmVjZWl2ZXIudXNlclZpZXcpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0VXNlckZvclByb2Nlc3NXb3JrZmxvdygpIHtcclxuICAgICAgICBjb25zdCBzb3VyY2VNYWNoaW5lID0gdGhpcy53b3JrZmxvdy5kYXRhLm1hY2hpbmVzLmZpbmQocSA9PiBxLmlkID09IHRoaXMuYWN0aW9uLnNvdXJjZSk7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0R2V0VXNlckluUHJvY2Vzc0Zvcm0gPSBhd2FpdCB0aGlzLmJ1c2luZXNzU2V0dGluZy5iYXNlU2VydmljZS5nZXRVc2VySW5Qcm9jZXNzRm9ybShcclxuICAgICAgICAgICAgdGhpcy53b3JrZmxvdy5jb2RlLCBzb3VyY2VNYWNoaW5lLmNvZGUsIHRoaXMuYWN0aW9uLmNvZGUsIHRoaXMuaXRlbS5pZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKCFyZXN1bHRHZXRVc2VySW5Qcm9jZXNzRm9ybS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UocmVzdWx0R2V0VXNlckluUHJvY2Vzc0Zvcm0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRhdGFVc2VySW5Qcm9jZXNzRm9ybSA9IHJlc3VsdEdldFVzZXJJblByb2Nlc3NGb3JtLmRhdGE7XHJcbiAgICAgICAgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdFVzZXJJZCA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3RVc2VySWQ7XHJcbiAgICAgICAgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdFVzZXJWaWV3SWQgPSBkYXRhVXNlckluUHJvY2Vzc0Zvcm0ubHN0VXNlclZpZXdJZDtcclxuICAgICAgICB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0RG9uVmlJZCA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3REb25WaUlkO1xyXG4gICAgICAgIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3REb25WaVZpZXdJZCA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3REb25WaVZpZXdJZDtcclxuICAgICAgICB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0R3JvdXBJZCA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3RHcm91cElkO1xyXG4gICAgICAgIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RHcm91cFZpZXdJZCA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3RHcm91cFZpZXdJZDtcclxuICAgICAgICB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0Um9sZUlkID0gZGF0YVVzZXJJblByb2Nlc3NGb3JtLmxzdFJvbGVJZDtcclxuICAgICAgICB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0Um9sZVZpZXdJZCA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3RSb2xlVmlld0lkO1xyXG4gICAgICAgIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RVc2VySWRJbldvcmtmbG93ID0gZGF0YVVzZXJJblByb2Nlc3NGb3JtLmxzdFVzZXJJZEluV29ya2Zsb3c7XHJcbiAgICAgICAgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdERvblZpSWRJbldvcmtmbG93ID0gZGF0YVVzZXJJblByb2Nlc3NGb3JtLmxzdERvblZpSWRJbldvcmtmbG93O1xyXG4gICAgICAgIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RHcm91cElkSW5Xb3JrZmxvdyA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3RHcm91cElkSW5Xb3JrZmxvdztcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoZWNrTmVlZEdldFVzZXJCeVVzZXJEYXRhKHVzZXJEYXRhOiBhbnkpIHtcclxuICAgICAgICBpZiAodXNlckRhdGFcclxuICAgICAgICAgICAgJiYgKCh1c2VyRGF0YS5ydWxlcyAmJiB1c2VyRGF0YS5ydWxlcy5sZW5ndGgpXHJcbiAgICAgICAgICAgICAgICB8fCAodXNlckRhdGEucnVsZUluV29ya2Zsb3dzICYmIHVzZXJEYXRhLnJ1bGVJbldvcmtmbG93cy5sZW5ndGgpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXREYXRhQW5kVHJpZ2dlclJlYWR5KCkge1xyXG4gICAgICAgIHRoaXMuZGF0YUFsbG93RWRpdCA9IHtcclxuICAgICAgICAgICAgcnVsZXM6IFtdLFxyXG4gICAgICAgICAgICB1c2VySWRzOiBbXSxcclxuICAgICAgICAgICAgcnVsZUluV29ya2Zsb3dzOiBbXSxcclxuICAgICAgICAgICAgZGVwYXJ0bWVudElkczogdGhpcy5hY3Rpb24uZGF0YS5kZXBhcnRtZW50SWRzID8/IFtdLFxyXG4gICAgICAgICAgICBncm91cElkczogdGhpcy5hY3Rpb24uZGF0YS5ncm91cElkcyA/PyBbXSxcclxuICAgICAgICAgICAgcm9sZUlkczogdGhpcy5hY3Rpb24uZGF0YS5yb2xlSWRzID8/IFtdLFxyXG4gICAgICAgICAgICB0eXBlOiBFbnVtUHJvY2Vzc1dvcmtmbG93VHlwZS5FRElUXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmRhdGFPbmx5VmlldyA9IHtcclxuICAgICAgICAgICAgcnVsZXM6IFtdLFxyXG4gICAgICAgICAgICB1c2VySWRzOiBbXSxcclxuICAgICAgICAgICAgcnVsZUluV29ya2Zsb3dzOiBbXSxcclxuICAgICAgICAgICAgZGVwYXJ0bWVudElkczogdGhpcy5hY3Rpb24uZGF0YS5kZXBhcnRtZW50Vmlld0lkcyA/PyBbXSxcclxuICAgICAgICAgICAgZ3JvdXBJZHM6IHRoaXMuYWN0aW9uLmRhdGEuZ3JvdXBWaWV3SWRzID8/IFtdLFxyXG4gICAgICAgICAgICByb2xlSWRzOiB0aGlzLmFjdGlvbi5kYXRhLnJvbGVWaWV3SWRzID8/IFtdLFxyXG4gICAgICAgICAgICB0eXBlOiBFbnVtUHJvY2Vzc1dvcmtmbG93VHlwZS5WSUVXXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmFkZERpc3RpbmN0KHRoaXMuZGF0YUFsbG93RWRpdC51c2VySWRzLCB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0VXNlcklkKTtcclxuICAgICAgICB0aGlzLmFkZERpc3RpbmN0KHRoaXMuZGF0YUFsbG93RWRpdC5kZXBhcnRtZW50SWRzLCB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0RG9uVmlJZCk7XHJcbiAgICAgICAgdGhpcy5hZGREaXN0aW5jdCh0aGlzLmRhdGFBbGxvd0VkaXQuZ3JvdXBJZHMsIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RHcm91cElkKTtcclxuICAgICAgICB0aGlzLmFkZERpc3RpbmN0KHRoaXMuZGF0YUFsbG93RWRpdC5yb2xlSWRzLCB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0Um9sZUlkKTtcclxuXHJcbiAgICAgICAgdGhpcy5hZGREaXN0aW5jdCh0aGlzLmRhdGFPbmx5Vmlldy51c2VySWRzLCB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0VXNlclZpZXdJZCk7XHJcbiAgICAgICAgdGhpcy5hZGREaXN0aW5jdCh0aGlzLmRhdGFPbmx5Vmlldy5kZXBhcnRtZW50SWRzLCB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0RG9uVmlWaWV3SWQpO1xyXG4gICAgICAgIHRoaXMuYWRkRGlzdGluY3QodGhpcy5kYXRhT25seVZpZXcuZ3JvdXBJZHMsIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RHcm91cFZpZXdJZCk7XHJcbiAgICAgICAgdGhpcy5hZGREaXN0aW5jdCh0aGlzLmRhdGFPbmx5Vmlldy5yb2xlSWRzLCB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0Um9sZVZpZXdJZCk7XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybVJlYWR5ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFkZERpc3RpbmN0KGRlc3Q6IHN0cmluZ1tdLCBzb3VyY2U6IHN0cmluZ1tdKSB7XHJcbiAgICAgICAgaWYgKCFzb3VyY2UgfHwgIXNvdXJjZS5sZW5ndGgpIHJldHVybjtcclxuICAgICAgICBzb3VyY2UuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgICAgaWYgKGRlc3QuaW5kZXhPZihpdGVtKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgZGVzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25Gb3JtSW5pdGlhbGl6ZWQoZXZ0OiBFdmVudERhdGEpIHtcclxuICAgICAgICBldnQubW9kZWwuaWQgPSB0aGlzLl9jb21tb25TZXJ2aWNlLmd1aWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB2YWxpZGF0ZUZvcm0oKSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5kYXRhLnVzZXJJZHMgPSB0aGlzLmZvcm1UYXJnZXRBbGxvd0VkaXQubW9kZWwuZGF0YS51c2VySWRzO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZGF0YS5kZXBhcnRtZW50SWRzID0gdGhpcy5mb3JtVGFyZ2V0QWxsb3dFZGl0Lm1vZGVsLmRhdGEuZGVwYXJ0bWVudElkcztcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEuZ3JvdXBJZHMgPSB0aGlzLmZvcm1UYXJnZXRBbGxvd0VkaXQubW9kZWwuZGF0YS5ncm91cElkcztcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEucm9sZUlkcyA9IHRoaXMuZm9ybVRhcmdldEFsbG93RWRpdC5tb2RlbC5kYXRhLnJvbGVJZHM7XHJcblxyXG4gICAgICAgIHRoaXMubW9kZWwuZGF0YS51c2VyVmlld0lkcyA9IHRoaXMuZm9ybVRhcmdldE9ubHlWaWV3Lm1vZGVsLmRhdGEudXNlcklkcztcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEuZGVwYXJ0bWVudFZpZXdJZHMgPSB0aGlzLmZvcm1UYXJnZXRPbmx5Vmlldy5tb2RlbC5kYXRhLmRlcGFydG1lbnRJZHM7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5kYXRhLmdyb3VwVmlld0lkcyA9IHRoaXMuZm9ybVRhcmdldE9ubHlWaWV3Lm1vZGVsLmRhdGEuZ3JvdXBJZHM7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5kYXRhLnJvbGVWaWV3SWRzID0gdGhpcy5mb3JtVGFyZ2V0T25seVZpZXcubW9kZWwuZGF0YS5yb2xlSWRzO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaXNBY3Rpb25LZXRUaHVjKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRW1wdHlBcnJheSh0aGlzLm1vZGVsLmRhdGEudXNlcklkcylcclxuICAgICAgICAgICAgICAgICYmIHRoaXMuaXNFbXB0eUFycmF5KHRoaXMubW9kZWwuZGF0YS5kZXBhcnRtZW50SWRzKVxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5pc0VtcHR5QXJyYXkodGhpcy5tb2RlbC5kYXRhLmdyb3VwSWRzKVxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5pc0VtcHR5QXJyYXkodGhpcy5tb2RlbC5kYXRhLnJvbGVJZHMpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKCdQaOG6o2kgY2jhu41uIMOtdCBuaOG6pXQgMSBuaMOzbSDEkeG7kWkgdMaw4bujbmcgbmjhuq1uIChOZ8aw4budaSBuaOG6rW4geOG7rSBsw70gfCDEkMahbiB24buLIHwgTmjDs20gbmfGsOG7nWkgZMO5bmcpJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0VtcHR5QXJyYXkodmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gIXZhbHVlIHx8ICF2YWx1ZS5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TW9kZWxQcm9jZXNzV29ya2Zsb3coKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlSW5zZXJ0U3VjY2VzcyA9IGAke3RoaXMuYWN0aW9uLm5hbWV9IHRow6BuaCBjw7RuZ2A7XHJcbiAgICAgICAgY29uc3QgZGF0YVBvc3QgPSB0aGlzLl9jb21tb25TZXJ2aWNlLmNsb25lT2JqZWN0KHRoaXMubW9kZWwuZGF0YSk7XHJcbiAgICAgICAgZGF0YVBvc3QudGFibGVOYW1lID0gdGhpcy5idXNpbmVzc1NldHRpbmcuYmFzZVNlcnZpY2UuZW50aXR5TmFtZTtcclxuICAgICAgICBsZXQgbmFtZSA9ICcnO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idXNpbmVzc1NldHRpbmcuZGlzcGxheUZpZWxkID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIG5hbWUgPSB0aGlzLml0ZW1bPHN0cmluZz4odGhpcy5idXNpbmVzc1NldHRpbmcuZGlzcGxheUZpZWxkKV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBuYW1lID0gKDxGdW5jdGlvbj4odGhpcy5idXNpbmVzc1NldHRpbmcuZGlzcGxheUZpZWxkKSkodGhpcy5pdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbmFtZSA9IGAke3RoaXMuYnVzaW5lc3NTZXR0aW5nLmJhc2VTZXJ2aWNlLm9iamVjdE5hbWV9ICR7bmFtZX1gO1xyXG4gICAgICAgIGRhdGFQb3N0Lm9iamVjdEZ1bGxOYW1lID0gbmFtZTtcclxuICAgICAgICBkYXRhUG9zdC5vYmplY3ROYW1lID0gdGhpcy5idXNpbmVzc1NldHRpbmcuYmFzZVNlcnZpY2Uub2JqZWN0TmFtZTtcclxuICAgICAgICBkYXRhUG9zdC53b3JrZmxvd0NvZGUgPSB0aGlzLml0ZW0uX193b3JrZmxvd0NvZGU7XHJcbiAgICAgICAgZGF0YVBvc3QuaXRlbUlkID0gdGhpcy5pdGVtLmlkO1xyXG4gICAgICAgIGRhdGFQb3N0LnNvdXJjZVN0YXR1c0NvZGUgPSB0aGlzLml0ZW0uX190cmFuZ1RoYWk7XHJcbiAgICAgICAgZGF0YVBvc3QuYWN0aW9uQ29kZSA9IHRoaXMuYWN0aW9uLmNvZGU7XHJcblxyXG4gICAgICAgIHRoaXMuZmllbGRMaXN0VG9TdHJpbmcoZGF0YVBvc3QsICd1c2VySWRzJyk7XHJcbiAgICAgICAgdGhpcy5maWVsZExpc3RUb1N0cmluZyhkYXRhUG9zdCwgJ3VzZXJWaWV3SWRzJyk7XHJcbiAgICAgICAgdGhpcy5maWVsZExpc3RUb1N0cmluZyhkYXRhUG9zdCwgJ2RlcGFydG1lbnRJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAnZGVwYXJ0bWVudFZpZXdJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAnZ3JvdXBJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAnZ3JvdXBWaWV3SWRzJyk7XHJcbiAgICAgICAgdGhpcy5maWVsZExpc3RUb1N0cmluZyhkYXRhUG9zdCwgJ3JvbGVJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAncm9sZVZpZXdJZHMnKTtcclxuICAgICAgICByZXR1cm4gZGF0YVBvc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvbWlzZUFjdGlvbkluc2VydCgpIHtcclxuICAgICAgICBjb25zdCBkYXRhUG9zdCA9IHRoaXMuZ2V0TW9kZWxQcm9jZXNzV29ya2Zsb3coKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5idXNpbmVzc1NldHRpbmcuYmFzZVNlcnZpY2UuY2hhbmdlU3RhdGUoXHJcbiAgICAgICAgICAgIGRhdGFQb3N0XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBmaWVsZExpc3RUb1N0cmluZyhkYXRhUG9zdDogYW55LCBmaWVsZDogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKGRhdGFQb3N0W2ZpZWxkXSkge1xyXG4gICAgICAgICAgICBkYXRhUG9zdFtmaWVsZF0gPSBkYXRhUG9zdFtmaWVsZF0udG9TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlSW5zZXJ0RXJyb3IoKSB7XHJcbiAgICAgICAgdGhpcy5vbkludmFsaWRXb3JrZmxvdy5lbWl0KHtcclxuICAgICAgICAgICAgaXRlbTogdGhpcy5pdGVtLFxyXG4gICAgICAgICAgICBhY3Rpb246IHRoaXMuYWN0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb25Db2RlOiB0aGlzLmFjdGlvbi5jb2RlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy13b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3dvcmtmbG93L3Byb2Nlc3Mtd29ya2Zsb3ctZm9ybS9wcm9jZXNzLXdvcmtmbG93LWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BFLE9BQU8sRUFDSCxlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGNBQWMsRUFFZCx3QkFBd0IsRUFFM0IsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQU85RSxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsWUFBWTtJQStCMUQsWUFDYyxTQUFtQixFQUNyQixxQkFBMkMsRUFDM0MsdUJBQStDO1FBRXZELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUpQLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDckIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFzQjtRQUMzQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBekJqRCxz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Q0FBSSxFQUFFO1lBQ3ZELFFBQVEsUUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLG1DQUFJLEVBQUU7WUFDN0MsT0FBTyxRQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsbUNBQUksRUFBRTtZQUMzQyxJQUFJLEVBQUUsdUJBQXVCLENBQUMsSUFBSTtTQUNyQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFeEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNC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Q29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEYXRhRm9ybUJhc2UgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Jhc2UvZGF0YS1mb3JtLWJhc2UnO1xyXG5pbXBvcnQge1xyXG4gICAgQ3J1ZExpc3RTZXR0aW5nLFxyXG4gICAgRWRpdG9yQ29udHJvbFNjaGVtYSxcclxuICAgIEVudW1GaWxlTGF5b3V0LFxyXG4gICAgRXZlbnREYXRhLFxyXG4gICAgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hLFxyXG4gICAgRm9ybVNjaGVtYUJhc2VcclxufSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgRW51bVByb2Nlc3NXb3JrZmxvd1R5cGUsIEVudW1TdGF0ZVR5cGUgfSBmcm9tICcuLi8uLi9zdGF0ZW1hY2hpbmVzL21vZGVscy9lbnVtcyc7XHJcbmltcG9ydCB7IFN0YXRlTWFjaGluZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3RhdGVtYWNoaW5lcy9zZXJ2aWNlcy9zdGF0ZW1hY2hpbmVzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXZkFjdGlvbiwgV2ZJdGVtLCBXb3JrZmxvd1RhcmdldERlZmF1bHRWYWx1ZSB9IGZyb20gJy4uL21vZGVscy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQcm9jZXNzV29ya2Zsb3dUYXJnZXRDb21wb25lbnQgfSBmcm9tICcuLi9wcm9jZXNzLXdvcmtmbG93LXRhcmdldC9wcm9jZXNzLXdvcmtmbG93LXRhcmdldC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBXb3JrZmxvd0hpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvd29ya2Zsb3ctaGlzdG9yeS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdwcm9jZXNzLXdvcmtmbG93LWZvcm0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2Nlc3Mtd29ya2Zsb3ctZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9jZXNzLXdvcmtmbG93LWZvcm0uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9jZXNzV29ya2Zsb3dGb3JtQ29tcG9uZW50IGV4dGVuZHMgRGF0YUZvcm1CYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ3RhcmdldEFsbG93RWRpdCcsIHsgc3RhdGljOiBmYWxzZSB9KSBmb3JtVGFyZ2V0QWxsb3dFZGl0OiBQcm9jZXNzV29ya2Zsb3dUYXJnZXRDb21wb25lbnQ7XHJcbiAgICBAVmlld0NoaWxkKCd0YXJnZXRPbmx5VmlldycsIHsgc3RhdGljOiBmYWxzZSB9KSBmb3JtVGFyZ2V0T25seVZpZXc6IFByb2Nlc3NXb3JrZmxvd1RhcmdldENvbXBvbmVudDtcclxuXHJcbiAgICBASW5wdXQoKSBidXNpbmVzc1NldHRpbmc6IENydWRMaXN0U2V0dGluZztcclxuICAgIEBJbnB1dCgpIGl0ZW06IGFueTtcclxuICAgIEBJbnB1dCgpIHdvcmtmbG93OiBXZkl0ZW07XHJcbiAgICBASW5wdXQoKSBhY3Rpb246IFdmQWN0aW9uO1xyXG5cclxuICAgIEBPdXRwdXQoKSBvbkludmFsaWRXb3JrZmxvdzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBmb3JtUmVhZHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIG1haW5UYWJEYXRhOiBhbnlbXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICdhbGxvd0VkaXQnLFxyXG4gICAgICAgICAgICBpY29uOiAncGkgcGktZXhjbGFtYXRpb24tY2lyY2xlJyxcclxuICAgICAgICAgICAgbGFiZWw6ICdOZ8aw4budaSBuaOG6rW4nXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICdvbmx5VmlldycsXHJcbiAgICAgICAgICAgIGljb246ICdwaSBwaS1saXN0JyxcclxuICAgICAgICAgICAgbGFiZWw6ICdOZ8aw4budaSB0aGVvIGTDtWknXHJcbiAgICAgICAgfVxyXG4gICAgXTtcclxuICAgIGlzQWN0aW9uS2V0VGh1YzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgZGF0YUFsbG93RWRpdDogYW55ID0ge307XHJcbiAgICBkYXRhT25seVZpZXc6IGFueSA9IHt9O1xyXG4gICAgcnVsZVVzZXJzID0gW107XHJcbiAgICBpbml0VmFsdWVGb3JUYXJnZXRGb3JtOiBXb3JrZmxvd1RhcmdldERlZmF1bHRWYWx1ZSA9IG5ldyBXb3JrZmxvd1RhcmdldERlZmF1bHRWYWx1ZSgpO1xyXG4gICAgdXNlcklkc0RhVGh1Y0hpZW46IHN0cmluZ1tdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgX3N0YXRlTWFjaGluZXNTZXJ2aWNlOiBTdGF0ZU1hY2hpbmVzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF93b3JrZmxvd0hpc3RvcnlTZXJ2aWNlOiBXb3JrZmxvd0hpc3RvcnlTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgICAgY29uc3QgbWlzc2luZ05hbWVzID0gW107XHJcbiAgICAgICAgaWYgKCF0aGlzLmJ1c2luZXNzU2V0dGluZy5iYXNlU2VydmljZS5vYmplY3ROYW1lKSB7XHJcbiAgICAgICAgICAgIG1pc3NpbmdOYW1lcy5wdXNoKCd0w6puIMSR4buRaSB0xrDhu6NuZyAoYmFzZSBzZXJ2aWNlKScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMuYnVzaW5lc3NTZXR0aW5nLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgICAgICBtaXNzaW5nTmFtZXMucHVzaCgnZGlzcGxheSBmaWVsZCAoY3J1ZCBsaXN0IHNldHRpbmcpJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtaXNzaW5nTmFtZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKGBC4bqhbiBjaMawYSBj4bqldSBow6xuaCAke21pc3NpbmdOYW1lcy5qb2luKCcsICcpfWApO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCgpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UgPSB0aGlzLl9zdGF0ZU1hY2hpbmVzU2VydmljZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuc2NoZW1hID0gPEZvcm1TY2hlbWFCYXNlW10+W1xyXG4gICAgICAgICAgICBuZXcgRWRpdG9yQ29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25vdGUnLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnw50ga2nhur9uJyksXHJcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiAxMlxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2ZpbGVEaW5oS2VtJyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0ZpbGUgxJHDrW5oIGvDqG0nKSxcclxuICAgICAgICAgICAgICAgIGxheW91dDogRW51bUZpbGVMYXlvdXQuU0lNUExFLFxyXG4gICAgICAgICAgICAgICAgc2VydmljZUNvZGU6IHRoaXMuX3dvcmtmbG93SGlzdG9yeVNlcnZpY2Uuc2VydmljZUNvZGUsXHJcbiAgICAgICAgICAgICAgICBlbnRpdHk6IHRoaXMuX3dvcmtmbG93SGlzdG9yeVNlcnZpY2UuZW50aXR5TmFtZSxcclxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogdGhpcy5tb2RlbC5kYXRhLmlkLFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogMTIsXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2VcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICBdO1xyXG4gICAgICAgIHRoaXMuaW5pdFJ1bGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBpbml0UnVsZSgpIHtcclxuICAgICAgICAvLyBLaeG7g20gdHJhIMSRw6J5IGzDoCBhY3Rpb24ga+G6v3QgdGjDumNcclxuICAgICAgICBjb25zdCBuZXh0TWFjaGluZSA9IHRoaXMud29ya2Zsb3cuZGF0YS5tYWNoaW5lcy5maW5kKHEgPT4gcS5pZCA9PSB0aGlzLmFjdGlvbi50YXJnZXQpO1xyXG4gICAgICAgIHRoaXMuaXNBY3Rpb25LZXRUaHVjID0gbmV4dE1hY2hpbmUudHlwZSA9PSBFbnVtU3RhdGVUeXBlLlNUT1A7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNBY3Rpb25LZXRUaHVjKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFpblRhYkRhdGFbMV0uYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gaWYgKHRoaXMuY2hlY2tOZWVkR2V0VXNlcigpKSB7XHJcbiAgICAgICAgaWYgKCFhd2FpdCB0aGlzLmdldFVzZXJGb3JQcm9jZXNzV29ya2Zsb3coKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIH1cclxuICAgICAgICB0aGlzLnNldERhdGFBbmRUcmlnZ2VyUmVhZHkoKTtcclxuICAgIH1cclxuXHJcbiAgICBjaGVja05lZWRHZXRVc2VyKCkge1xyXG4gICAgICAgIHRoaXMucnVsZVVzZXJzID0gW107XHJcbiAgICAgICAgaWYgKCF0aGlzLmFjdGlvbi5kYXRhLmluZm9SZWNlaXZlciB8fCAhdGhpcy5hY3Rpb24uZGF0YS5pbmZvUmVjZWl2ZXIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFjdGlvbi5kYXRhLmluZm9SZWNlaXZlci5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGlvbi5kYXRhLmluZm9SZWNlaXZlclswXS5sYW5UaHUgPSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGNvbnN0IGluZm9SZWNlaXZlciBvZiB0aGlzLmFjdGlvbi5kYXRhLmluZm9SZWNlaXZlcikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja05lZWRHZXRVc2VyQnlVc2VyRGF0YShpbmZvUmVjZWl2ZXIudXNlcikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrTmVlZEdldFVzZXJCeVVzZXJEYXRhKGluZm9SZWNlaXZlci51c2VyVmlldykpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRVc2VyRm9yUHJvY2Vzc1dvcmtmbG93KCkge1xyXG4gICAgICAgIGNvbnN0IHNvdXJjZU1hY2hpbmUgPSB0aGlzLndvcmtmbG93LmRhdGEubWFjaGluZXMuZmluZChxID0+IHEuaWQgPT0gdGhpcy5hY3Rpb24uc291cmNlKTtcclxuICAgICAgICBjb25zdCByZXN1bHRHZXRVc2VySW5Qcm9jZXNzRm9ybSA9IGF3YWl0IHRoaXMuYnVzaW5lc3NTZXR0aW5nLmJhc2VTZXJ2aWNlLmdldFVzZXJJblByb2Nlc3NGb3JtKFxyXG4gICAgICAgICAgICB0aGlzLndvcmtmbG93LmNvZGUsIHNvdXJjZU1hY2hpbmUuY29kZSwgdGhpcy5hY3Rpb24uY29kZSwgdGhpcy5pdGVtLmlkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoIXJlc3VsdEdldFVzZXJJblByb2Nlc3NGb3JtLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShyZXN1bHRHZXRVc2VySW5Qcm9jZXNzRm9ybSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZGF0YVVzZXJJblByb2Nlc3NGb3JtID0gcmVzdWx0R2V0VXNlckluUHJvY2Vzc0Zvcm0uZGF0YTtcclxuICAgICAgICB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0VXNlcklkID0gZGF0YVVzZXJJblByb2Nlc3NGb3JtLmxzdFVzZXJJZDtcclxuICAgICAgICB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0VXNlclZpZXdJZCA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3RVc2VyVmlld0lkO1xyXG4gICAgICAgIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3REb25WaUlkID0gZGF0YVVzZXJJblByb2Nlc3NGb3JtLmxzdERvblZpSWQ7XHJcbiAgICAgICAgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdERvblZpVmlld0lkID0gZGF0YVVzZXJJblByb2Nlc3NGb3JtLmxzdERvblZpVmlld0lkO1xyXG4gICAgICAgIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RHcm91cElkID0gZGF0YVVzZXJJblByb2Nlc3NGb3JtLmxzdEdyb3VwSWQ7XHJcbiAgICAgICAgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdEdyb3VwVmlld0lkID0gZGF0YVVzZXJJblByb2Nlc3NGb3JtLmxzdEdyb3VwVmlld0lkO1xyXG4gICAgICAgIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RSb2xlSWQgPSBkYXRhVXNlckluUHJvY2Vzc0Zvcm0ubHN0Um9sZUlkO1xyXG4gICAgICAgIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RSb2xlVmlld0lkID0gZGF0YVVzZXJJblByb2Nlc3NGb3JtLmxzdFJvbGVWaWV3SWQ7XHJcbiAgICAgICAgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdFVzZXJJZEluV29ya2Zsb3cgPSBkYXRhVXNlckluUHJvY2Vzc0Zvcm0ubHN0VXNlcklkSW5Xb3JrZmxvdztcclxuICAgICAgICB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0RG9uVmlJZEluV29ya2Zsb3cgPSBkYXRhVXNlckluUHJvY2Vzc0Zvcm0ubHN0RG9uVmlJZEluV29ya2Zsb3c7XHJcbiAgICAgICAgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdEdyb3VwSWRJbldvcmtmbG93ID0gZGF0YVVzZXJJblByb2Nlc3NGb3JtLmxzdEdyb3VwSWRJbldvcmtmbG93O1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hlY2tOZWVkR2V0VXNlckJ5VXNlckRhdGEodXNlckRhdGE6IGFueSkge1xyXG4gICAgICAgIGlmICh1c2VyRGF0YVxyXG4gICAgICAgICAgICAmJiAoKHVzZXJEYXRhLnJ1bGVzICYmIHVzZXJEYXRhLnJ1bGVzLmxlbmd0aClcclxuICAgICAgICAgICAgICAgIHx8ICh1c2VyRGF0YS5ydWxlSW5Xb3JrZmxvd3MgJiYgdXNlckRhdGEucnVsZUluV29ya2Zsb3dzLmxlbmd0aClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERhdGFBbmRUcmlnZ2VyUmVhZHkoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhQWxsb3dFZGl0ID0ge1xyXG4gICAgICAgICAgICBydWxlczogW10sXHJcbiAgICAgICAgICAgIHVzZXJJZHM6IFtdLFxyXG4gICAgICAgICAgICBydWxlSW5Xb3JrZmxvd3M6IFtdLFxyXG4gICAgICAgICAgICBkZXBhcnRtZW50SWRzOiB0aGlzLmFjdGlvbi5kYXRhLmRlcGFydG1lbnRJZHMgPz8gW10sXHJcbiAgICAgICAgICAgIGdyb3VwSWRzOiB0aGlzLmFjdGlvbi5kYXRhLmdyb3VwSWRzID8/IFtdLFxyXG4gICAgICAgICAgICByb2xlSWRzOiB0aGlzLmFjdGlvbi5kYXRhLnJvbGVJZHMgPz8gW10sXHJcbiAgICAgICAgICAgIHR5cGU6IEVudW1Qcm9jZXNzV29ya2Zsb3dUeXBlLkVESVRcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuZGF0YU9ubHlWaWV3ID0ge1xyXG4gICAgICAgICAgICBydWxlczogW10sXHJcbiAgICAgICAgICAgIHVzZXJJZHM6IFtdLFxyXG4gICAgICAgICAgICBydWxlSW5Xb3JrZmxvd3M6IFtdLFxyXG4gICAgICAgICAgICBkZXBhcnRtZW50SWRzOiB0aGlzLmFjdGlvbi5kYXRhLmRlcGFydG1lbnRWaWV3SWRzID8/IFtdLFxyXG4gICAgICAgICAgICBncm91cElkczogdGhpcy5hY3Rpb24uZGF0YS5ncm91cFZpZXdJZHMgPz8gW10sXHJcbiAgICAgICAgICAgIHJvbGVJZHM6IHRoaXMuYWN0aW9uLmRhdGEucm9sZVZpZXdJZHMgPz8gW10sXHJcbiAgICAgICAgICAgIHR5cGU6IEVudW1Qcm9jZXNzV29ya2Zsb3dUeXBlLlZJRVdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuYWRkRGlzdGluY3RMaXN0KHRoaXMuZGF0YUFsbG93RWRpdC51c2VySWRzLCB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0VXNlcklkKTtcclxuICAgICAgICB0aGlzLmFkZERpc3RpbmN0TGlzdCh0aGlzLmRhdGFBbGxvd0VkaXQuZGVwYXJ0bWVudElkcywgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdERvblZpSWQpO1xyXG4gICAgICAgIHRoaXMuYWRkRGlzdGluY3RMaXN0KHRoaXMuZGF0YUFsbG93RWRpdC5ncm91cElkcywgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdEdyb3VwSWQpO1xyXG4gICAgICAgIHRoaXMuYWRkRGlzdGluY3RMaXN0KHRoaXMuZGF0YUFsbG93RWRpdC5yb2xlSWRzLCB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0Um9sZUlkKTtcclxuXHJcbiAgICAgICAgdGhpcy5hZGREaXN0aW5jdExpc3QodGhpcy5kYXRhT25seVZpZXcudXNlcklkcywgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdFVzZXJWaWV3SWQpO1xyXG4gICAgICAgIHRoaXMuYWRkRGlzdGluY3RMaXN0KHRoaXMuZGF0YU9ubHlWaWV3LmRlcGFydG1lbnRJZHMsIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3REb25WaVZpZXdJZCk7XHJcbiAgICAgICAgdGhpcy5hZGREaXN0aW5jdExpc3QodGhpcy5kYXRhT25seVZpZXcuZ3JvdXBJZHMsIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RHcm91cFZpZXdJZCk7XHJcbiAgICAgICAgdGhpcy5hZGREaXN0aW5jdExpc3QodGhpcy5kYXRhT25seVZpZXcucm9sZUlkcywgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdFJvbGVWaWV3SWQpO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1SZWFkeSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25Gb3JtSW5pdGlhbGl6ZWQoZXZ0OiBFdmVudERhdGEpIHtcclxuICAgICAgICBldnQubW9kZWwuaWQgPSB0aGlzLl9jb21tb25TZXJ2aWNlLmd1aWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB2YWxpZGF0ZUZvcm0oKSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5kYXRhLnVzZXJJZHMgPSB0aGlzLmZvcm1UYXJnZXRBbGxvd0VkaXQubW9kZWwuZGF0YS51c2VySWRzO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZGF0YS5kZXBhcnRtZW50SWRzID0gdGhpcy5mb3JtVGFyZ2V0QWxsb3dFZGl0Lm1vZGVsLmRhdGEuZGVwYXJ0bWVudElkcztcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEuZ3JvdXBJZHMgPSB0aGlzLmZvcm1UYXJnZXRBbGxvd0VkaXQubW9kZWwuZGF0YS5ncm91cElkcztcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEucm9sZUlkcyA9IHRoaXMuZm9ybVRhcmdldEFsbG93RWRpdC5tb2RlbC5kYXRhLnJvbGVJZHM7XHJcblxyXG4gICAgICAgIHRoaXMubW9kZWwuZGF0YS51c2VyVmlld0lkcyA9IHRoaXMuZm9ybVRhcmdldE9ubHlWaWV3Lm1vZGVsLmRhdGEudXNlcklkcztcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEuZGVwYXJ0bWVudFZpZXdJZHMgPSB0aGlzLmZvcm1UYXJnZXRPbmx5Vmlldy5tb2RlbC5kYXRhLmRlcGFydG1lbnRJZHM7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5kYXRhLmdyb3VwVmlld0lkcyA9IHRoaXMuZm9ybVRhcmdldE9ubHlWaWV3Lm1vZGVsLmRhdGEuZ3JvdXBJZHM7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5kYXRhLnJvbGVWaWV3SWRzID0gdGhpcy5mb3JtVGFyZ2V0T25seVZpZXcubW9kZWwuZGF0YS5yb2xlSWRzO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaXNBY3Rpb25LZXRUaHVjKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRW1wdHlBcnJheSh0aGlzLm1vZGVsLmRhdGEudXNlcklkcylcclxuICAgICAgICAgICAgICAgICYmIHRoaXMuaXNFbXB0eUFycmF5KHRoaXMubW9kZWwuZGF0YS5kZXBhcnRtZW50SWRzKVxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5pc0VtcHR5QXJyYXkodGhpcy5tb2RlbC5kYXRhLmdyb3VwSWRzKVxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5pc0VtcHR5QXJyYXkodGhpcy5tb2RlbC5kYXRhLnJvbGVJZHMpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKCdQaOG6o2kgY2jhu41uIMOtdCBuaOG6pXQgMSBuaMOzbSDEkeG7kWkgdMaw4bujbmcgbmjhuq1uIChOZ8aw4budaSBuaOG6rW4geOG7rSBsw70gfCDEkMahbiB24buLIHwgTmjDs20gbmfGsOG7nWkgZMO5bmcpJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0VtcHR5QXJyYXkodmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gIXZhbHVlIHx8ICF2YWx1ZS5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TW9kZWxQcm9jZXNzV29ya2Zsb3coKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlSW5zZXJ0U3VjY2VzcyA9IGAke3RoaXMuYWN0aW9uLm5hbWV9IHRow6BuaCBjw7RuZ2A7XHJcbiAgICAgICAgY29uc3QgZGF0YVBvc3QgPSB0aGlzLl9jb21tb25TZXJ2aWNlLmNsb25lT2JqZWN0KHRoaXMubW9kZWwuZGF0YSk7XHJcbiAgICAgICAgZGF0YVBvc3QudGFibGVOYW1lID0gdGhpcy5idXNpbmVzc1NldHRpbmcuYmFzZVNlcnZpY2UuZW50aXR5TmFtZTtcclxuICAgICAgICBsZXQgbmFtZSA9ICcnO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idXNpbmVzc1NldHRpbmcuZGlzcGxheUZpZWxkID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIG5hbWUgPSB0aGlzLml0ZW1bPHN0cmluZz4odGhpcy5idXNpbmVzc1NldHRpbmcuZGlzcGxheUZpZWxkKV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBuYW1lID0gKDxGdW5jdGlvbj4odGhpcy5idXNpbmVzc1NldHRpbmcuZGlzcGxheUZpZWxkKSkodGhpcy5pdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbmFtZSA9IGAke3RoaXMuYnVzaW5lc3NTZXR0aW5nLmJhc2VTZXJ2aWNlLm9iamVjdE5hbWV9ICR7bmFtZX1gO1xyXG4gICAgICAgIGRhdGFQb3N0Lm9iamVjdEZ1bGxOYW1lID0gbmFtZTtcclxuICAgICAgICBkYXRhUG9zdC5vYmplY3ROYW1lID0gdGhpcy5idXNpbmVzc1NldHRpbmcuYmFzZVNlcnZpY2Uub2JqZWN0TmFtZTtcclxuICAgICAgICBkYXRhUG9zdC53b3JrZmxvd0NvZGUgPSB0aGlzLml0ZW0uX193b3JrZmxvd0NvZGU7XHJcbiAgICAgICAgZGF0YVBvc3QuaXRlbUlkID0gdGhpcy5pdGVtLmlkO1xyXG4gICAgICAgIGRhdGFQb3N0LnNvdXJjZVN0YXR1c0NvZGUgPSB0aGlzLml0ZW0uX190cmFuZ1RoYWk7XHJcbiAgICAgICAgZGF0YVBvc3QuYWN0aW9uQ29kZSA9IHRoaXMuYWN0aW9uLmNvZGU7XHJcblxyXG4gICAgICAgIHRoaXMuZmllbGRMaXN0VG9TdHJpbmcoZGF0YVBvc3QsICd1c2VySWRzJyk7XHJcbiAgICAgICAgdGhpcy5maWVsZExpc3RUb1N0cmluZyhkYXRhUG9zdCwgJ3VzZXJWaWV3SWRzJyk7XHJcbiAgICAgICAgdGhpcy5maWVsZExpc3RUb1N0cmluZyhkYXRhUG9zdCwgJ2RlcGFydG1lbnRJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAnZGVwYXJ0bWVudFZpZXdJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAnZ3JvdXBJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAnZ3JvdXBWaWV3SWRzJyk7XHJcbiAgICAgICAgdGhpcy5maWVsZExpc3RUb1N0cmluZyhkYXRhUG9zdCwgJ3JvbGVJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAncm9sZVZpZXdJZHMnKTtcclxuICAgICAgICByZXR1cm4gZGF0YVBvc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvbWlzZUFjdGlvbkluc2VydCgpIHtcclxuICAgICAgICBjb25zdCBkYXRhUG9zdCA9IHRoaXMuZ2V0TW9kZWxQcm9jZXNzV29ya2Zsb3coKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5idXNpbmVzc1NldHRpbmcuYmFzZVNlcnZpY2UuY2hhbmdlU3RhdGUoXHJcbiAgICAgICAgICAgIGRhdGFQb3N0XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBmaWVsZExpc3RUb1N0cmluZyhkYXRhUG9zdDogYW55LCBmaWVsZDogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKGRhdGFQb3N0W2ZpZWxkXSkge1xyXG4gICAgICAgICAgICBkYXRhUG9zdFtmaWVsZF0gPSBkYXRhUG9zdFtmaWVsZF0udG9TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlSW5zZXJ0RXJyb3IoKSB7XHJcbiAgICAgICAgdGhpcy5vbkludmFsaWRXb3JrZmxvdy5lbWl0KHtcclxuICAgICAgICAgICAgaXRlbTogdGhpcy5pdGVtLFxyXG4gICAgICAgICAgICBhY3Rpb246IHRoaXMuYWN0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb25Db2RlOiB0aGlzLmFjdGlvbi5jb2RlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|