@c8y/ngx-components 1021.22.98 → 1021.22.104
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/core/login/login.component.mjs +2 -2
- package/esm2022/tenants/tenant-list/tenant-list.component.mjs +9 -3
- package/esm2022/widgets/implementations/alarms/alarm-widget.service.mjs +2 -2
- package/fesm2022/c8y-ngx-components-tenants.mjs +8 -2
- package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +1 -1
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/ja_JP.po +1 -1
- package/locales/ko.po +1 -1
- package/locales/pl.po +1 -1
- package/locales/pt_BR.po +1 -1
- package/locales/zh_CN.po +1 -1
- package/locales/zh_TW.po +1 -1
- package/package.json +1 -1
- package/tenants/tenant-list/tenant-list.component.d.ts.map +1 -1
|
@@ -84,7 +84,7 @@ export class LoginComponent {
|
|
|
84
84
|
catch (e) {
|
|
85
85
|
await this.loginService.clearCookies();
|
|
86
86
|
const preferredLoginOptionType = this.loginService.loginMode.type;
|
|
87
|
-
if (preferredLoginOptionType === TenantLoginOptionType.OAUTH2) {
|
|
87
|
+
if (preferredLoginOptionType === TenantLoginOptionType.OAUTH2 && e.res?.status !== 403) {
|
|
88
88
|
this.loginService.redirectToOauth();
|
|
89
89
|
}
|
|
90
90
|
else {
|
|
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
159
159
|
type: HostListener,
|
|
160
160
|
args: ['keyup', ['$event']]
|
|
161
161
|
}] } });
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9sb2dpbi9sb2dpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUU1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPN0QsTUFBTSxPQUFPLGNBQWM7SUFhekI7O09BRUc7SUFDSCxZQUNTLFlBQTBCLEVBQ3pCLE9BQXVCLEVBQ3ZCLEtBQW1CLEVBQ25CLGlDQUFvRSxFQUNyRSxFQUFtQjtRQUpuQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFDckUsT0FBRSxHQUFGLEVBQUUsQ0FBaUI7UUFwQjVCLGdCQUFXLEdBQWUsVUFBVSxDQUFDLElBQUksQ0FBQztRQUMxQyxnQkFBVyxHQUFHLFVBQVUs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O1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQzs4R0E1SVUsY0FBYztrR0FBZCxjQUFjLGdJQ2hCM0Isb2xGQWlGQTs7MkZEakVhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsV0FBVzt1TkFVWixJQUFJO3NCQUFaLEtBQUs7Z0JBaUQ2QixPQUFPO3NCQUF6QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDcmVkZW50aWFscywgVGVuYW50TG9naW5PcHRpb25UeXBlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dpblZpZXdzLCBTc29EYXRhLCBTc29FcnJvciB9IGZyb20gJy4vbG9naW4ubW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnLi4vaTE4bi9nZXR0ZXh0JztcbmltcG9ydCB7IENyZWRlbnRpYWxzRnJvbVF1ZXJ5UGFyYW1zU2VydmljZSB9IGZyb20gJy4vY3JlZGVudGlhbHMtZnJvbS1xdWVyeS1wYXJhbXMuc2VydmljZSc7XG5pbXBvcnQgeyBDcmVkZW50aWFsc0NvbXBvbmVudFBhcmFtcyB9IGZyb20gJy4vY3JlZGVudGlhbHMtY29tcG9uZW50LXBhcmFtcyc7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vdWktc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1sb2dpbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW11cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGN1cnJlbnRWaWV3OiBMb2dpblZpZXdzID0gTG9naW5WaWV3cy5Ob25lO1xuICBMT0dJTl9WSUVXUyA9IExvZ2luVmlld3M7XG5cbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG5cbiAgY3JlZGVudGlhbHM6IElDcmVkZW50aWFscyA9IHt9O1xuICBsb2dpblZpZXdQYXJhbXM6IENyZWRlbnRpYWxzQ29tcG9uZW50UGFyYW1zIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICBkaXNwbGF5QWxlcnRzID0gZmFsc2U7XG4gIHByaXZhdGUgVE9LRU5fUEFSQU0gPSAndG9rZW4nO1xuXG4gIC8qKlxuICAgKiBKdXN0IERJLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGxvZ2luU2VydmljZTogTG9naW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgb3B0aW9uczogT3B0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY3JlZGVudGlhbHNGcm9tUXVlcnlQYXJhbXNTZXJ2aWNlOiBDcmVkZW50aWFsc0Zyb21RdWVyeVBhcmFtc1NlcnZpY2UsXG4gICAgcHVibGljIHVpOiBBcHBTdGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IHRva2VuID0gdGhpcy5nZXRQYXJhbUFuZENsZWFyKHRoaXMuVE9LRU5fUEFSQU0pO1xuICAgIGNvbnN0IHNzb0RhdGEgPSB0aGlzLmdldFNzb0RhdGEoKTtcbiAgICBpZiAoc3NvRGF0YSkge1xuICAgICAgdGhpcy5oYW5kbGVTc28oc3NvRGF0YSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxvZ2luU2VydmljZS5pc0ZpcnN0TG9naW4pIHtcbiAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgdGhpcy5sb2dpbkF1dG9tYXRpY2FsbHkoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlZGVudGlhbHMudG9rZW4gPSB0b2tlbjtcbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmxvZ2luU2VydmljZS5pc0ZpcnN0TG9naW4gPSBmYWxzZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHdlIGRvIG5vdCBoYXZlIGFueSBxdWVyeVBhcmFtZXRlcnMgcmVsYXRlZCB0byBjcmVkZW50aWFscyBhZnRlciBsb2dnaW5nIGluIG9yIGV2ZW4gaWYgd2Ugd2VyZSBhbHJlYWR5IGxvZ2dlZCBpbi5cbiAgICB0aGlzLmNyZWRlbnRpYWxzRnJvbVF1ZXJ5UGFyYW1zU2VydmljZS5yZW1vdmVDcmVkZW50aWFsc0Zyb21RdWVyeVBhcmFtcygpO1xuICB9XG5cbiAgaGFuZGxlTG9naW5UZW1wbGF0ZShldmVudDoge1xuICAgIHZpZXc6IExvZ2luVmlld3M7XG4gICAgY3JlZGVudGlhbHM/OiBJQ3JlZGVudGlhbHM7XG4gICAgbG9naW5WaWV3UGFyYW1zPzogQ3JlZGVudGlhbHNDb21wb25lbnRQYXJhbXMgfCB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICB9KSB7XG4gICAgdGhpcy5jdXJyZW50VmlldyA9IGV2ZW50LnZpZXc7XG4gICAgdGhpcy5jcmVkZW50aWFscyA9IGV2ZW50LmNyZWRlbnRpYWxzIHx8IHt9O1xuICAgIHRoaXMubG9naW5WaWV3UGFyYW1zID0gZXZlbnQubG9naW5WaWV3UGFyYW1zIHx8IHt9O1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKSBvbmtleXVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleSAhPT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5sb2dpblNlcnZpY2UuY2xlYW5NZXNzYWdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMubG9naW5TZXJ2aWNlLnJlc2V0KCk7XG4gICAgdGhpcy5zZXRWaWV3KCk7XG4gICAgdGhpcy5sb2dpblNlcnZpY2UuY2xlYW5NZXNzYWdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2dpbkF1dG9tYXRpY2FsbHkoKSB7XG4gICAgdGhpcy5sb2dpblNlcnZpY2UuYXV0b21hdGljTG9naW5JblByb2dyZXNzJC5uZXh0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmxvZ2luU2VydmljZS5sb2dpbigpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9naW5TZXJ2aWNlLmNsZWFyQ29va2llcygpO1xuICAgICAgY29uc3QgcHJlZmVycmVkTG9naW5PcHRpb25UeXBlID0gdGhpcy5sb2dpblNlcnZpY2UubG9naW5Nb2RlLnR5cGU7XG4gICAgICBpZiAocHJlZmVycmVkTG9naW5PcHRpb25UeXBlID09PSBUZW5hbnRMb2dpbk9wdGlvblR5cGUuT0FVVEgyKSB7XG4gICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLnJlZGlyZWN0VG9PYXV0aCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcHJlZmVycmVkTG9naW5PcHRpb25UeXBlID09PSBUZW5hbnRMb2dpbk9wdGlvblR5cGUuT0FVVEgyX0lOVEVSTkFMICYmXG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLnByb3RvY29sICE9PSAnaHR0cHM6J1xuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmFsZXJ0LmRhbmdlcihnZXR0ZXh0KCdDdXJyZW50IGxvZ2luIG1vZGUgb25seSBzdXBwb3J0cyBIVFRQUy4nKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZS5yZXMgJiYgZS5yZXMuc3RhdHVzID09PSA0MDMpIHtcbiAgICAgICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5sb2dpblNlcnZpY2UuYXV0b21hdGljTG9naW5JblByb2dyZXNzJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VmlldygpIHtcbiAgICBpZiAodGhpcy5jcmVkZW50aWFscyAmJiB0aGlzLmNyZWRlbnRpYWxzLnRva2VuKSB7XG4gICAgICB0aGlzLmhhbmRsZUxvZ2luVGVtcGxhdGUoeyB2aWV3OiBMb2dpblZpZXdzLkNoYW5nZVBhc3N3b3JkLCBjcmVkZW50aWFsczogdGhpcy5jcmVkZW50aWFscyB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubG9naW5TZXJ2aWNlLnNob3dUZW5hbnRTZXR1cCgpKSB7XG4gICAgICB0aGlzLmhhbmRsZUxvZ2luVGVtcGxhdGUoeyB2aWV3OiBMb2dpblZpZXdzLlRlbmFudElkU2V0dXAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFuZGxlTG9naW5UZW1wbGF0ZSh7IHZpZXc6IExvZ2luVmlld3MuQ3JlZGVudGlhbHMgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXJhbUFuZENsZWFyKHBhcmFtTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBwYXJhbVZhbHVlID0gdGhpcy5vcHRpb25zLmdldDxzdHJpbmc+KHBhcmFtTmFtZSk7XG4gICAgaWYgKHBhcmFtVmFsdWUpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5zZXQocGFyYW1OYW1lLCB1bmRlZmluZWQpOyAvLyBvbmx5IHVzZSBvbmNlXG4gICAgfVxuICAgIHJldHVybiBwYXJhbVZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTc29EYXRhKCk6IFNzb0RhdGEgfCBTc29FcnJvciB7XG4gICAgY29uc3QgY29kZSA9IHRoaXMuZ2V0UGFyYW1BbmRDbGVhcignY29kZScpO1xuICAgIGNvbnN0IHNlc3Npb25TdGF0ZSA9IHRoaXMuZ2V0UGFyYW1BbmRDbGVhcignc2Vzc2lvbl9zdGF0ZScpO1xuICAgIGlmIChjb2RlKSB7XG4gICAgICByZXR1cm4geyBzZXNzaW9uU3RhdGUsIGNvZGUgfTtcbiAgICB9XG5cbiAgICBjb25zdCBzc29FcnJvciA9IHRoaXMuZ2V0UGFyYW1BbmRDbGVhcignZXJyb3InKTtcbiAgICBjb25zdCBzc29FcnJvckRlc2NyaXB0aW9uID0gdGhpcy5nZXRQYXJhbUFuZENsZWFyKCdlcnJvcl9kZXNjcmlwdGlvbicpO1xuICAgIGlmIChzc29FcnJvciAmJiBzc29FcnJvckRlc2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm4geyBzc29FcnJvciwgc3NvRXJyb3JEZXNjcmlwdGlvbiB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3NvKHNzb0RhdGE6IFNzb0RhdGEgfCBTc29FcnJvcikge1xuICAgIGlmICgnc3NvRXJyb3InIGluIHNzb0RhdGEpIHtcbiAgICAgIHRoaXMubG9naW5TZXJ2aWNlLnNob3dTc29FcnJvcihcbiAgICAgICAgZGVjb2RlVVJJQ29tcG9uZW50KHNzb0RhdGEuc3NvRXJyb3JEZXNjcmlwdGlvbikucmVwbGFjZSgvXFwrL2csICclMjAnKVxuICAgICAgKTtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dpblNlcnZpY2VcbiAgICAgICAgLmxvZ2luQnlTc28oc3NvRGF0YSlcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5sb2dpblNlcnZpY2UubG9naW4oKSlcbiAgICAgICAgLmNhdGNoKGUgPT4ge1xuICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICBpZiAoZS5yZXM/LnN0YXR1cykge1xuICAgICAgICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwibG9hZGluZyBjYXJkIGZhZGVJblVwIGFuaW1hdGVkIGVsZXZhdGlvbi1sZ1wiXG4gICpuZ0lmPVwiY3VycmVudFZpZXcgIT09IExPR0lOX1ZJRVdTLk5vbmVcIlxuICBbbmdTd2l0Y2hdPVwiY3VycmVudFZpZXdcIlxuPlxuICA8bWFpbiBjbGFzcz1cImNhcmQtYmxvY2sgcC1iLTBcIj5cbiAgICA8c3BhbiBjbGFzcz1cIm1haW5sb2dvXCI+PC9zcGFuPlxuXG4gICAgPGM4eS1jcmVkZW50aWFsc1xuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkxPR0lOX1ZJRVdTLkNyZWRlbnRpYWxzXCJcbiAgICAgIChvbkNoYW5nZVZpZXcpPVwiaGFuZGxlTG9naW5UZW1wbGF0ZSgkZXZlbnQpXCJcbiAgICAgIFtsb2dpblZpZXdQYXJhbXNdPVwibG9naW5WaWV3UGFyYW1zXCJcbiAgICA+PC9jOHktY3JlZGVudGlhbHM+XG4gICAgPGM4eS1yZWNvdmVyLXBhc3N3b3JkXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiTE9HSU5fVklFV1MuUmVjb3ZlclBhc3N3b3JkXCJcbiAgICAgIChvbkNoYW5nZVZpZXcpPVwiaGFuZGxlTG9naW5UZW1wbGF0ZSgkZXZlbnQpXCJcbiAgICA+PC9jOHktcmVjb3Zlci1wYXNzd29yZD5cbiAgICA8Yzh5LWNoYW5nZS1wYXNzd29yZFxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkxPR0lOX1ZJRVdTLkNoYW5nZVBhc3N3b3JkXCJcbiAgICAgIChvbkNoYW5nZVZpZXcpPVwiaGFuZGxlTG9naW5UZW1wbGF0ZSgkZXZlbnQpXCJcbiAgICAgIFtjcmVkZW50aWFsc109XCJjcmVkZW50aWFsc1wiXG4gICAgPjwvYzh5LWNoYW5nZS1wYXNzd29yZD5cbiAgICA8Yzh5LXRvdHAtYXV0aFxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkxPR0lOX1ZJRVdTLlRvdHBDaGFsbGVuZ2VcIlxuICAgICAgKG9uQ2FuY2VsKT1cInJlc2V0KClcIlxuICAgICAgW3ZpZXddPVwiY3VycmVudFZpZXdcIlxuICAgICAgW2NyZWRlbnRpYWxzXT1cImNyZWRlbnRpYWxzXCJcbiAgICA+PC9jOHktdG90cC1hdXRoPlxuICAgIDxjOHktdG90cC1hdXRoXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiTE9HSU5fVklFV1MuVG90cFNldHVwXCJcbiAgICAgIChvbkNhbmNlbCk9XCJyZXNldCgpXCJcbiAgICAgIFt2aWV3XT1cImN1cnJlbnRWaWV3XCJcbiAgICAgIFtjcmVkZW50aWFsc109XCJjcmVkZW50aWFsc1wiXG4gICAgPjwvYzh5LXRvdHAtYXV0aD5cbiAgICA8Yzh5LXNtcy1jaGFsbGVuZ2VcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJMT0dJTl9WSUVXUy5TbXNDaGFsbGVuZ2VcIlxuICAgICAgKG9uQ2FuY2VsKT1cInJlc2V0KClcIlxuICAgICAgW2NyZWRlbnRpYWxzXT1cImNyZWRlbnRpYWxzXCJcbiAgICA+PC9jOHktc21zLWNoYWxsZW5nZT5cblxuICAgIDxjOHktcHJvdmlkZS1waG9uZS1udW1iZXJcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJMT0dJTl9WSUVXUy5Qcm92aWRlUGhvbmVOdW1iZXJcIlxuICAgICAgKG9uQ2FuY2VsKT1cInJlc2V0KClcIlxuICAgICAgKG9uQ2hhbmdlVmlldyk9XCJoYW5kbGVMb2dpblRlbXBsYXRlKCRldmVudClcIlxuICAgICAgW2NyZWRlbnRpYWxzXT1cImNyZWRlbnRpYWxzXCJcbiAgICA+PC9jOHktcHJvdmlkZS1waG9uZS1udW1iZXI+XG4gICAgPGM4eS10ZW5hbnQtaWQtc2V0dXBcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJMT0dJTl9WSUVXUy5UZW5hbnRJZFNldHVwXCJcbiAgICAgIChvbkNoYW5nZVZpZXcpPVwiaGFuZGxlTG9naW5UZW1wbGF0ZSgkZXZlbnQpXCJcbiAgICA+PC9jOHktdGVuYW50LWlkLXNldHVwPlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtLXQtOFwiXG4gICAgICAqbmdJZj1cIiEhKHVpLnN0YXRlJCB8IGFzeW5jKS5sb2dpbkV4dHJhTGlua1wiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cIiEhKHVpLnN0YXRlJCB8IGFzeW5jKS5sb2dpbkV4dHJhTGluay5sZW5ndGg7IGVsc2Ugc2luZ2xlRXh0cmFMaW5rXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgY2xhc3M9XCJzbWFsbCBkLWJsb2NrIG0tdC04XCJcbiAgICAgICAgICB0aXRsZT1cInt7IGxpbmsubGFiZWwgfX1cIlxuICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBsaW5rIG9mICh1aS5zdGF0ZSQgfCBhc3luYykubG9naW5FeHRyYUxpbmtcIlxuICAgICAgICAgIFtocmVmXT1cImxpbmsudXJsXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGxpbmsubGFiZWwgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI3NpbmdsZUV4dHJhTGluaz5cbiAgICAgICAgPGFcbiAgICAgICAgICBjbGFzcz1cInNtYWxsXCJcbiAgICAgICAgICB0aXRsZT1cInt7ICh1aS5zdGF0ZSQgfCBhc3luYykubG9naW5FeHRyYUxpbmsubGFiZWwgfX1cIlxuICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgIFtocmVmXT1cIih1aS5zdGF0ZSQgfCBhc3luYykubG9naW5FeHRyYUxpbmsudXJsXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICh1aS5zdGF0ZSQgfCBhc3luYykubG9naW5FeHRyYUxpbmsubGFiZWwgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cblxuICAgIDxjOHktYWxlcnQtb3V0bGV0IHBvc2l0aW9uPVwic3RhdGljXCI+PC9jOHktYWxlcnQtb3V0bGV0PlxuICA8L21haW4+XG48L2Rpdj5cbiJdfQ==
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9sb2dpbi9sb2dpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUU1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPN0QsTUFBTSxPQUFPLGNBQWM7SUFhekI7O09BRUc7SUFDSCxZQUNTLFlBQTBCLEVBQ3pCLE9BQXVCLEVBQ3ZCLEtBQW1CLEVBQ25CLGlDQUFvRSxFQUNyRSxFQUFtQjtRQUpuQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFDckUsT0FBRSxHQUFGLEVBQUUsQ0FBaUI7UUFwQjVCLGdCQUFXLEdBQWUsVUFBVSxDQUFDLElBQUksQ0FBQztRQUMxQyxnQkFBVyxHQUFHLFVBQVUs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QyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakMsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7OEdBNUlVLGNBQWM7a0dBQWQsY0FBYyxnSUNoQjNCLG9sRkFpRkE7OzJGRGpFYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFdBQVc7dU5BVVosSUFBSTtzQkFBWixLQUFLO2dCQWlENkIsT0FBTztzQkFBekMsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQ3JlZGVudGlhbHMsIFRlbmFudExvZ2luT3B0aW9uVHlwZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4vbG9naW4uc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5WaWV3cywgU3NvRGF0YSwgU3NvRXJyb3IgfSBmcm9tICcuL2xvZ2luLm1vZGVsJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uL2kxOG4vZ2V0dGV4dCc7XG5pbXBvcnQgeyBDcmVkZW50aWFsc0Zyb21RdWVyeVBhcmFtc1NlcnZpY2UgfSBmcm9tICcuL2NyZWRlbnRpYWxzLWZyb20tcXVlcnktcGFyYW1zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3JlZGVudGlhbHNDb21wb25lbnRQYXJhbXMgfSBmcm9tICcuL2NyZWRlbnRpYWxzLWNvbXBvbmVudC1wYXJhbXMnO1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3VpLXN0YXRlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktbG9naW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9naW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIExvZ2luQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBjdXJyZW50VmlldzogTG9naW5WaWV3cyA9IExvZ2luVmlld3MuTm9uZTtcbiAgTE9HSU5fVklFV1MgPSBMb2dpblZpZXdzO1xuXG4gIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuXG4gIGNyZWRlbnRpYWxzOiBJQ3JlZGVudGlhbHMgPSB7fTtcbiAgbG9naW5WaWV3UGFyYW1zOiBDcmVkZW50aWFsc0NvbXBvbmVudFBhcmFtcyB8IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgZGlzcGxheUFsZXJ0cyA9IGZhbHNlO1xuICBwcml2YXRlIFRPS0VOX1BBUkFNID0gJ3Rva2VuJztcblxuICAvKipcbiAgICogSnVzdCBESS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBsb2dpblNlcnZpY2U6IExvZ2luU2VydmljZSxcbiAgICBwcml2YXRlIG9wdGlvbnM6IE9wdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnQ6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGNyZWRlbnRpYWxzRnJvbVF1ZXJ5UGFyYW1zU2VydmljZTogQ3JlZGVudGlhbHNGcm9tUXVlcnlQYXJhbXNTZXJ2aWNlLFxuICAgIHB1YmxpYyB1aTogQXBwU3RhdGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuZ2V0UGFyYW1BbmRDbGVhcih0aGlzLlRPS0VOX1BBUkFNKTtcbiAgICBjb25zdCBzc29EYXRhID0gdGhpcy5nZXRTc29EYXRhKCk7XG4gICAgaWYgKHNzb0RhdGEpIHtcbiAgICAgIHRoaXMuaGFuZGxlU3NvKHNzb0RhdGEpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sb2dpblNlcnZpY2UuaXNGaXJzdExvZ2luKSB7XG4gICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgIHRoaXMubG9naW5BdXRvbWF0aWNhbGx5KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNyZWRlbnRpYWxzLnRva2VuID0gdG9rZW47XG4gICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5sb2dpblNlcnZpY2UuaXNGaXJzdExvZ2luID0gZmFsc2U7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAvLyBtYWtlIHN1cmUgdGhhdCB3ZSBkbyBub3QgaGF2ZSBhbnkgcXVlcnlQYXJhbWV0ZXJzIHJlbGF0ZWQgdG8gY3JlZGVudGlhbHMgYWZ0ZXIgbG9nZ2luZyBpbiBvciBldmVuIGlmIHdlIHdlcmUgYWxyZWFkeSBsb2dnZWQgaW4uXG4gICAgdGhpcy5jcmVkZW50aWFsc0Zyb21RdWVyeVBhcmFtc1NlcnZpY2UucmVtb3ZlQ3JlZGVudGlhbHNGcm9tUXVlcnlQYXJhbXMoKTtcbiAgfVxuXG4gIGhhbmRsZUxvZ2luVGVtcGxhdGUoZXZlbnQ6IHtcbiAgICB2aWV3OiBMb2dpblZpZXdzO1xuICAgIGNyZWRlbnRpYWxzPzogSUNyZWRlbnRpYWxzO1xuICAgIGxvZ2luVmlld1BhcmFtcz86IENyZWRlbnRpYWxzQ29tcG9uZW50UGFyYW1zIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgfSkge1xuICAgIHRoaXMuY3VycmVudFZpZXcgPSBldmVudC52aWV3O1xuICAgIHRoaXMuY3JlZGVudGlhbHMgPSBldmVudC5jcmVkZW50aWFscyB8fCB7fTtcbiAgICB0aGlzLmxvZ2luVmlld1BhcmFtcyA9IGV2ZW50LmxvZ2luVmlld1BhcmFtcyB8fCB7fTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSkgb25rZXl1cChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgIT09ICdFbnRlcicpIHtcbiAgICAgIHRoaXMubG9naW5TZXJ2aWNlLmNsZWFuTWVzc2FnZXMoKTtcbiAgICB9XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLmxvZ2luU2VydmljZS5yZXNldCgpO1xuICAgIHRoaXMuc2V0VmlldygpO1xuICAgIHRoaXMubG9naW5TZXJ2aWNlLmNsZWFuTWVzc2FnZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9naW5BdXRvbWF0aWNhbGx5KCkge1xuICAgIHRoaXMubG9naW5TZXJ2aWNlLmF1dG9tYXRpY0xvZ2luSW5Qcm9ncmVzcyQubmV4dCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5sb2dpblNlcnZpY2UubG9naW4oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvZ2luU2VydmljZS5jbGVhckNvb2tpZXMoKTtcbiAgICAgIGNvbnN0IHByZWZlcnJlZExvZ2luT3B0aW9uVHlwZSA9IHRoaXMubG9naW5TZXJ2aWNlLmxvZ2luTW9kZS50eXBlO1xuICAgICAgaWYgKHByZWZlcnJlZExvZ2luT3B0aW9uVHlwZSA9PT0gVGVuYW50TG9naW5PcHRpb25UeXBlLk9BVVRIMiAmJiBlLnJlcz8uc3RhdHVzICE9PSA0MDMpIHtcbiAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UucmVkaXJlY3RUb09hdXRoKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBwcmVmZXJyZWRMb2dpbk9wdGlvblR5cGUgPT09IFRlbmFudExvZ2luT3B0aW9uVHlwZS5PQVVUSDJfSU5URVJOQUwgJiZcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgIT09ICdodHRwczonXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuYWxlcnQuZGFuZ2VyKGdldHRleHQoJ0N1cnJlbnQgbG9naW4gbW9kZSBvbmx5IHN1cHBvcnRzIEhUVFBTLicpKTtcbiAgICAgICAgfSBlbHNlIGlmIChlLnJlcyAmJiBlLnJlcy5zdGF0dXMgPT09IDQwMykge1xuICAgICAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmxvZ2luU2VydmljZS5hdXRvbWF0aWNMb2dpbkluUHJvZ3Jlc3MkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRWaWV3KCkge1xuICAgIGlmICh0aGlzLmNyZWRlbnRpYWxzICYmIHRoaXMuY3JlZGVudGlhbHMudG9rZW4pIHtcbiAgICAgIHRoaXMuaGFuZGxlTG9naW5UZW1wbGF0ZSh7IHZpZXc6IExvZ2luVmlld3MuQ2hhbmdlUGFzc3dvcmQsIGNyZWRlbnRpYWxzOiB0aGlzLmNyZWRlbnRpYWxzIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sb2dpblNlcnZpY2Uuc2hvd1RlbmFudFNldHVwKCkpIHtcbiAgICAgIHRoaXMuaGFuZGxlTG9naW5UZW1wbGF0ZSh7IHZpZXc6IExvZ2luVmlld3MuVGVuYW50SWRTZXR1cCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYW5kbGVMb2dpblRlbXBsYXRlKHsgdmlldzogTG9naW5WaWV3cy5DcmVkZW50aWFscyB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFBhcmFtQW5kQ2xlYXIocGFyYW1OYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHBhcmFtVmFsdWUgPSB0aGlzLm9wdGlvbnMuZ2V0PHN0cmluZz4ocGFyYW1OYW1lKTtcbiAgICBpZiAocGFyYW1WYWx1ZSkge1xuICAgICAgdGhpcy5vcHRpb25zLnNldChwYXJhbU5hbWUsIHVuZGVmaW5lZCk7IC8vIG9ubHkgdXNlIG9uY2VcbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGdldFNzb0RhdGEoKTogU3NvRGF0YSB8IFNzb0Vycm9yIHtcbiAgICBjb25zdCBjb2RlID0gdGhpcy5nZXRQYXJhbUFuZENsZWFyKCdjb2RlJyk7XG4gICAgY29uc3Qgc2Vzc2lvblN0YXRlID0gdGhpcy5nZXRQYXJhbUFuZENsZWFyKCdzZXNzaW9uX3N0YXRlJyk7XG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIHJldHVybiB7IHNlc3Npb25TdGF0ZSwgY29kZSB9O1xuICAgIH1cblxuICAgIGNvbnN0IHNzb0Vycm9yID0gdGhpcy5nZXRQYXJhbUFuZENsZWFyKCdlcnJvcicpO1xuICAgIGNvbnN0IHNzb0Vycm9yRGVzY3JpcHRpb24gPSB0aGlzLmdldFBhcmFtQW5kQ2xlYXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyk7XG4gICAgaWYgKHNzb0Vycm9yICYmIHNzb0Vycm9yRGVzY3JpcHRpb24pIHtcbiAgICAgIHJldHVybiB7IHNzb0Vycm9yLCBzc29FcnJvckRlc2NyaXB0aW9uIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTc28oc3NvRGF0YTogU3NvRGF0YSB8IFNzb0Vycm9yKSB7XG4gICAgaWYgKCdzc29FcnJvcicgaW4gc3NvRGF0YSkge1xuICAgICAgdGhpcy5sb2dpblNlcnZpY2Uuc2hvd1Nzb0Vycm9yKFxuICAgICAgICBkZWNvZGVVUklDb21wb25lbnQoc3NvRGF0YS5zc29FcnJvckRlc2NyaXB0aW9uKS5yZXBsYWNlKC9cXCsvZywgJyUyMCcpXG4gICAgICApO1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2luU2VydmljZVxuICAgICAgICAubG9naW5CeVNzbyhzc29EYXRhKVxuICAgICAgICAudGhlbigoKSA9PiB0aGlzLmxvZ2luU2VydmljZS5sb2dpbigpKVxuICAgICAgICAuY2F0Y2goZSA9PiB7XG4gICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgIGlmIChlLnJlcz8uc3RhdHVzKSB7XG4gICAgICAgICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJsb2FkaW5nIGNhcmQgZmFkZUluVXAgYW5pbWF0ZWQgZWxldmF0aW9uLWxnXCJcbiAgKm5nSWY9XCJjdXJyZW50VmlldyAhPT0gTE9HSU5fVklFV1MuTm9uZVwiXG4gIFtuZ1N3aXRjaF09XCJjdXJyZW50Vmlld1wiXG4+XG4gIDxtYWluIGNsYXNzPVwiY2FyZC1ibG9jayBwLWItMFwiPlxuICAgIDxzcGFuIGNsYXNzPVwibWFpbmxvZ29cIj48L3NwYW4+XG5cbiAgICA8Yzh5LWNyZWRlbnRpYWxzXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiTE9HSU5fVklFV1MuQ3JlZGVudGlhbHNcIlxuICAgICAgKG9uQ2hhbmdlVmlldyk9XCJoYW5kbGVMb2dpblRlbXBsYXRlKCRldmVudClcIlxuICAgICAgW2xvZ2luVmlld1BhcmFtc109XCJsb2dpblZpZXdQYXJhbXNcIlxuICAgID48L2M4eS1jcmVkZW50aWFscz5cbiAgICA8Yzh5LXJlY292ZXItcGFzc3dvcmRcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJMT0dJTl9WSUVXUy5SZWNvdmVyUGFzc3dvcmRcIlxuICAgICAgKG9uQ2hhbmdlVmlldyk9XCJoYW5kbGVMb2dpblRlbXBsYXRlKCRldmVudClcIlxuICAgID48L2M4eS1yZWNvdmVyLXBhc3N3b3JkPlxuICAgIDxjOHktY2hhbmdlLXBhc3N3b3JkXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiTE9HSU5fVklFV1MuQ2hhbmdlUGFzc3dvcmRcIlxuICAgICAgKG9uQ2hhbmdlVmlldyk9XCJoYW5kbGVMb2dpblRlbXBsYXRlKCRldmVudClcIlxuICAgICAgW2NyZWRlbnRpYWxzXT1cImNyZWRlbnRpYWxzXCJcbiAgICA+PC9jOHktY2hhbmdlLXBhc3N3b3JkPlxuICAgIDxjOHktdG90cC1hdXRoXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiTE9HSU5fVklFV1MuVG90cENoYWxsZW5nZVwiXG4gICAgICAob25DYW5jZWwpPVwicmVzZXQoKVwiXG4gICAgICBbdmlld109XCJjdXJyZW50Vmlld1wiXG4gICAgICBbY3JlZGVudGlhbHNdPVwiY3JlZGVudGlhbHNcIlxuICAgID48L2M4eS10b3RwLWF1dGg+XG4gICAgPGM4eS10b3RwLWF1dGhcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJMT0dJTl9WSUVXUy5Ub3RwU2V0dXBcIlxuICAgICAgKG9uQ2FuY2VsKT1cInJlc2V0KClcIlxuICAgICAgW3ZpZXddPVwiY3VycmVudFZpZXdcIlxuICAgICAgW2NyZWRlbnRpYWxzXT1cImNyZWRlbnRpYWxzXCJcbiAgICA+PC9jOHktdG90cC1hdXRoPlxuICAgIDxjOHktc21zLWNoYWxsZW5nZVxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkxPR0lOX1ZJRVdTLlNtc0NoYWxsZW5nZVwiXG4gICAgICAob25DYW5jZWwpPVwicmVzZXQoKVwiXG4gICAgICBbY3JlZGVudGlhbHNdPVwiY3JlZGVudGlhbHNcIlxuICAgID48L2M4eS1zbXMtY2hhbGxlbmdlPlxuXG4gICAgPGM4eS1wcm92aWRlLXBob25lLW51bWJlclxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkxPR0lOX1ZJRVdTLlByb3ZpZGVQaG9uZU51bWJlclwiXG4gICAgICAob25DYW5jZWwpPVwicmVzZXQoKVwiXG4gICAgICAob25DaGFuZ2VWaWV3KT1cImhhbmRsZUxvZ2luVGVtcGxhdGUoJGV2ZW50KVwiXG4gICAgICBbY3JlZGVudGlhbHNdPVwiY3JlZGVudGlhbHNcIlxuICAgID48L2M4eS1wcm92aWRlLXBob25lLW51bWJlcj5cbiAgICA8Yzh5LXRlbmFudC1pZC1zZXR1cFxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkxPR0lOX1ZJRVdTLlRlbmFudElkU2V0dXBcIlxuICAgICAgKG9uQ2hhbmdlVmlldyk9XCJoYW5kbGVMb2dpblRlbXBsYXRlKCRldmVudClcIlxuICAgID48L2M4eS10ZW5hbnQtaWQtc2V0dXA+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInRleHQtY2VudGVyIG0tdC04XCJcbiAgICAgICpuZ0lmPVwiISEodWkuc3RhdGUkIHwgYXN5bmMpLmxvZ2luRXh0cmFMaW5rXCJcbiAgICA+XG4gICAgICA8ZGl2ICpuZ0lmPVwiISEodWkuc3RhdGUkIHwgYXN5bmMpLmxvZ2luRXh0cmFMaW5rLmxlbmd0aDsgZWxzZSBzaW5nbGVFeHRyYUxpbmtcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICBjbGFzcz1cInNtYWxsIGQtYmxvY2sgbS10LThcIlxuICAgICAgICAgIHRpdGxlPVwie3sgbGluay5sYWJlbCB9fVwiXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGxpbmsgb2YgKHVpLnN0YXRlJCB8IGFzeW5jKS5sb2dpbkV4dHJhTGlua1wiXG4gICAgICAgICAgW2hyZWZdPVwibGluay51cmxcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgbGluay5sYWJlbCB9fVxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2luZ2xlRXh0cmFMaW5rPlxuICAgICAgICA8YVxuICAgICAgICAgIGNsYXNzPVwic21hbGxcIlxuICAgICAgICAgIHRpdGxlPVwie3sgKHVpLnN0YXRlJCB8IGFzeW5jKS5sb2dpbkV4dHJhTGluay5sYWJlbCB9fVwiXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2hyZWZdPVwiKHVpLnN0YXRlJCB8IGFzeW5jKS5sb2dpbkV4dHJhTGluay51cmxcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgKHVpLnN0YXRlJCB8IGFzeW5jKS5sb2dpbkV4dHJhTGluay5sYWJlbCB9fVxuICAgICAgICA8L2E+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuXG4gICAgPGM4eS1hbGVydC1vdXRsZXQgcG9zaXRpb249XCJzdGF0aWNcIj48L2M4eS1hbGVydC1vdXRsZXQ+XG4gIDwvbWFpbj5cbjwvZGl2PlxuIl19
|
|
@@ -147,14 +147,20 @@ export class TenantListComponent {
|
|
|
147
147
|
type: 'activateTenantAction',
|
|
148
148
|
icon: 'power-off',
|
|
149
149
|
text: gettext('Activate`tenant`'),
|
|
150
|
-
callback: (tenant) =>
|
|
150
|
+
callback: async (tenant) => {
|
|
151
|
+
await this.activateTenant(tenant);
|
|
152
|
+
this.loadTenants();
|
|
153
|
+
},
|
|
151
154
|
showIf: (tenant) => this.isSuspended(tenant)
|
|
152
155
|
},
|
|
153
156
|
{
|
|
154
157
|
type: 'suspendTenantAction',
|
|
155
158
|
icon: 'power-off',
|
|
156
159
|
text: gettext('Suspend`tenant`'),
|
|
157
|
-
callback: (tenant) =>
|
|
160
|
+
callback: async (tenant) => {
|
|
161
|
+
await this.suspendTenant(tenant);
|
|
162
|
+
this.loadTenants();
|
|
163
|
+
},
|
|
158
164
|
showIf: (tenant) => this.isActive(tenant)
|
|
159
165
|
},
|
|
160
166
|
{
|
|
@@ -271,4 +277,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
271
277
|
type: Component,
|
|
272
278
|
args: [{ selector: 'c8y-tenant-list', template: "<c8y-title>\n {{ 'Subtenants' | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-layers\"\n label=\"{{ 'Tenants' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-layers'\"\n [label]=\"'Subtenants' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item\n *ngIf=\"!!(appState.state$ | async).newsletter\"\n [placement]=\"'right'\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{\n 'Downloads the list of emails of users subscribed for newsletter on the current tenant and its subtenants.'\n | translate\n }}\"\n type=\"button\"\n (click)=\"downloadNewsletterEmails()\"\n >\n <i c8yIcon=\"download\"></i>\n {{ 'Email addresses' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Create tenant' | translate }}\"\n type=\"button\"\n (click)=\"createTenant()\"\n [disabled]=\"!isPermittedToCreateTenanant\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Create tenant' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/docs/enterprise-tenant/managing-tenants/#managing-subtenants\"></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [rows]=\"tenants$ | async\"\n [pagination]=\"pagination\"\n [showSearch]=\"showSearch\"\n [actionControls]=\"actionControls\"\n (onReload)=\"loadTenants()\"\n >\n <ng-container *ngIf=\"!(tenants$ | async); else empty\">\n <c8y-loading></c8y-loading>\n </ng-container>\n <ng-template #empty>\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-layers'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"\n stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\n \"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <ng-container *ngIf=\"stats?.size === 0\">\n <div>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Create tenant' | translate }}\"\n (click)=\"createTenant()\"\n [disabled]=\"!isPermittedToCreateTenanant\"\n >\n {{ 'Create tenant' | translate }}\n </button>\n </div>\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/enterprise-tenant/managing-tenants\">user documentation</a>\n .\n </small>\n </p>\n </ng-container>\n </c8y-ui-empty-state>\n </ng-template>\n\n <c8y-column name=\"company\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }}\">\n <a [routerLink]=\"['/tenants', context.item.id]\">{{ context.value }}</a>\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"parent\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value || currentTenant.name }}\">\n {{ context.value || currentTenant.name }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"creationTime\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value | c8yDate }}\">\n {{ context.value | c8yDate }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"status\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span\n title=\"{{ 'Active`tenant`' | translate }}\"\n *ngIf=\"context.item.status === TenantStatus.ACTIVE\"\n >\n <i\n class=\"text-success\"\n c8yIcon=\"check-circle\"\n ></i>\n </span>\n <span\n title=\"{{ 'Suspended`tenant`' | translate }}\"\n *ngIf=\"context.item.status === TenantStatus.SUSPENDED\"\n >\n <i\n class=\"text-danger\"\n c8yIcon=\"ban\"\n ></i>\n </span>\n </ng-container>\n </c8y-column>\n </c8y-data-grid>\n</div>\n" }]
|
|
273
279
|
}], ctorParameters: () => [{ type: i1.AppStateService }, { type: i1.AlertService }, { type: i1.ModalService }, { type: i2.TranslateService }, { type: i3.TenantService }, { type: i1.TenantUiService }, { type: i4.Location }, { type: i1.PasswordService }, { type: i3.UserService }, { type: i1.Permissions }] });
|
|
274
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVuYW50cy90ZW5hbnQtbGlzdC90ZW5hbnQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi90ZW5hbnRzL3RlbmFudC1saXN0L3RlbmFudC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhFLE9BQU8sRUFJTCxhQUFhLEVBQ2IsWUFBWSxFQUNaLFdBQVcsRUFDWixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBRUwsWUFBWSxFQUNaLGVBQWUsRUFDZixpQkFBaUIsRUFHakIsT0FBTyxFQUNQLFlBQVksRUFFWixlQUFlLEVBQ2YsV0FBVyxFQUVYLE1BQU0sRUFDTixlQUFlLEVBQ2hCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDL0csT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7QUFNbEcsTUFBTSxPQUFPLG1CQUFtQjtJQWtDOUIsWUFDUyxRQUF5QixFQUN4QixZQUEwQixFQUMxQixZQUEwQixFQUMxQixnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsZUFBZ0MsRUFD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O1FBQ3pCLE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFFRCxLQUFLLENBQUMsd0JBQXdCO1FBQzVCLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDbkUsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNyRCxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBelJVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHVEQ3ZDaEMsZytJQW1KQTs7MkZENUdhLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGV4cGFuZCwgcmVkdWNlLCBzaGFyZVJlcGxheSwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBJQ3VycmVudFRlbmFudCxcbiAgSVJlc3VsdExpc3QsXG4gIElUZW5hbnQsXG4gIFRlbmFudFNlcnZpY2UsXG4gIFRlbmFudFN0YXR1cyxcbiAgVXNlclNlcnZpY2Vcbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29udHJvbCxcbiAgQWxlcnRTZXJ2aWNlLFxuICBBcHBTdGF0ZVNlcnZpY2UsXG4gIEJ1aWx0SW5BY3Rpb25UeXBlLFxuICBDb2x1bW4sXG4gIERpc3BsYXlPcHRpb25zLFxuICBnZXR0ZXh0LFxuICBNb2RhbFNlcnZpY2UsXG4gIFBhZ2luYXRpb24sXG4gIFBhc3N3b3JkU2VydmljZSxcbiAgUGVybWlzc2lvbnMsXG4gIFNvcnRPcmRlcixcbiAgU3RhdHVzLFxuICBUZW5hbnRVaVNlcnZpY2Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IENyZWF0aW9uVGltZUZpbHRlcmluZ0Zvcm1SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vY3JlYXRpb24tdGltZS5maWx0ZXJpbmctZm9ybS1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RhdHVzRmlsdGVyaW5nRm9ybVJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9zdGF0dXMuZmlsdGVyaW5nLWZvcm0tcmVuZGVyZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXRlbmFudC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbmFudC1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUZW5hbnRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgdGVuYW50cyQ6IEJlaGF2aW9yU3ViamVjdDxJVGVuYW50W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh1bmRlZmluZWQpO1xuICBpc1Blcm1pdHRlZFRvQ3JlYXRlVGVuYW5hbnQgPSB0aGlzLnBlcm1pc3Npb25zU2VydmljZS5oYXNBbnlSb2xlKFtcbiAgICBQZXJtaXNzaW9ucy5ST0xFX1RFTkFOVF9NQU5BR0VNRU5UX0FETUlOLFxuICAgIFBlcm1pc3Npb25zLlJPTEVfVEVOQU5UX01BTkFHRU1FTlRfQ1JFQVRFXG4gIF0pO1xuICBjdXJyZW50VGVuYW50OiBJQ3VycmVudFRlbmFudDtcbiAgaXNNYW5hZ2VtZW50VGVuYW50OiBib29sZWFuO1xuICBUT1BfVEVOQU5UX05BTUUgPSAnbWFuYWdlbWVudCc7XG5cbiAgdGl0bGU6IHN0cmluZyA9IG51bGw7XG4gIGxvYWRNb3JlSXRlbXNMYWJlbDogc3RyaW5nID0gZ2V0dGV4dCgnTG9hZCBtb3JlIHRlbmFudHMnKTtcbiAgbG9hZGluZ0l0ZW1zTGFiZWw6IHN0cmluZyA9IGdldHRleHQoJ0xvYWRpbmcgdGVuYW50c+KApicpO1xuXG4gIGRpc3BsYXlPcHRpb25zOiBEaXNwbGF5T3B0aW9ucyA9IHtcbiAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgc3RyaXBlZDogdHJ1ZSxcbiAgICBmaWx0ZXI6IHRydWUsXG4gICAgZ3JpZEhlYWRlcjogdHJ1ZSxcbiAgICBob3ZlcjogdHJ1ZVxuICB9O1xuXG4gIGNvbHVtbnM6IENvbHVtbltdID0gdGhpcy5nZXRDb2x1bW5zKCk7XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB0aGlzLmdldFBhZ2luYXRpb24oKTtcbiAgc2hvd1NlYXJjaCA9IHRydWU7XG4gIGFjdGlvbkNvbnRyb2xzOiBBY3Rpb25Db250cm9sW10gPSB0aGlzLmdldEFjdGlvbkNvbnRyb2xzKCk7XG5cbiAgbm9SZXN1bHRzTWVzc2FnZSA9IGdldHRleHQoJ05vIHRlbmFudHMgdG8gZGlzcGxheS4nKTtcbiAgbm9EYXRhTWVzc2FnZSA9IGdldHRleHQoJ1RoZXJlIGFyZSBubyB0ZW5hbnRzIGRlZmluZWQuJyk7XG4gIG5vUmVzdWx0c1N1YnRpdGxlID0gZ2V0dGV4dCgnUmVmaW5lIHlvdXIgc2VhcmNoIHRlcm1zIG9yIGNoZWNrIHlvdXIgc3BlbGxpbmcuJyk7XG4gIG5vRGF0YVN1YnRpdGxlID0gZ2V0dGV4dCgnQ3JlYXRlIHRoZSBmaXJzdCB0ZW5hbnQuJyk7XG5cbiAgVGVuYW50U3RhdHVzID0gVGVuYW50U3RhdHVzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhcHBTdGF0ZTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0ZW5hbnRTZXJ2aWNlOiBUZW5hbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGVuYW50VWlTZXJ2aWNlOiBUZW5hbnRVaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSBwYXNzd29yZFNlcnZpY2U6IFBhc3N3b3JkU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIHBlcm1pc3Npb25zU2VydmljZTogUGVybWlzc2lvbnNcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY3VycmVudFRlbmFudCA9IHRoaXMuYXBwU3RhdGUuY3VycmVudFRlbmFudC52YWx1ZTtcbiAgICB0aGlzLmlzTWFuYWdlbWVudFRlbmFudCA9IGF3YWl0IHRoaXMudGVuYW50VWlTZXJ2aWNlLmlzTWFuYWdlbWVudFRlbmFudCgpO1xuICAgIHRoaXMubG9hZFRlbmFudHMoKTtcbiAgfVxuXG4gIGxvYWRUZW5hbnRzKCkge1xuICAgIHRoaXMudGVuYW50cyQubmV4dCh1bmRlZmluZWQpO1xuICAgIGZyb20odGhpcy50ZW5hbnRTZXJ2aWNlLmxpc3QoeyBwYWdlU2l6ZTogMjAwMCwgd2l0aFRvdGFsUGFnZXM6IHRydWUsIHdpdGhBcHBzOiBmYWxzZSB9KSlcbiAgICAgIC5waXBlKFxuICAgICAgICBleHBhbmQocmVzdWx0TGlzdCA9PiByZXN1bHRMaXN0LnBhZ2luZy5uZXh0UGFnZSAhPT0gbnVsbCAmJiByZXN1bHRMaXN0LnBhZ2luZy5uZXh0KCkpLFxuICAgICAgICB0YWtlV2hpbGUocmVzdWx0TGlzdCA9PiByZXN1bHRMaXN0LnBhZ2luZy5uZXh0UGFnZSAhPT0gbnVsbCwgdHJ1ZSksXG4gICAgICAgIHJlZHVjZShcbiAgICAgICAgICAodGVuYW50czogSVRlbmFudFtdLCByZXN1bHRMaXN0OiBJUmVzdWx0TGlzdDxJVGVuYW50PikgPT4gW1xuICAgICAgICAgICAgLi4udGVuYW50cyxcbiAgICAgICAgICAgIC4uLnJlc3VsdExpc3QuZGF0YVxuICAgICAgICAgIF0sXG4gICAgICAgICAgW11cbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGVuYW50cyA9PiB0aGlzLnRlbmFudHMkLm5leHQodGVuYW50cykpO1xuICB9XG5cbiAgZ2V0Q29sdW1ucygpOiBDb2x1bW5bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NvbXBhbnknLFxuICAgICAgICBoZWFkZXI6IGdldHRleHQoJ1RlbmFudCcpLFxuICAgICAgICBwYXRoOiAnY29tcGFueScsXG4gICAgICAgIGZpbHRlcmFibGU6IHRydWUsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICBzb3J0T3JkZXI6ICdhc2MnIGFzIFNvcnRPcmRlclxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdJRCcpLFxuICAgICAgICBwYXRoOiAnaWQnLFxuICAgICAgICBmaWx0ZXJhYmxlOiB0cnVlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2RvbWFpbicsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnRG9tYWluJyksXG4gICAgICAgIHBhdGg6ICdkb21haW4nLFxuICAgICAgICBmaWx0ZXJhYmxlOiB0cnVlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3BhcmVudCcsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnUGFyZW50IHRlbmFudCcpLFxuICAgICAgICBwYXRoOiAncGFyZW50JyxcbiAgICAgICAgZmlsdGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgc29ydGFibGU6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjb250YWN0TmFtZScsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnQ29udGFjdCBuYW1lJyksXG4gICAgICAgIHBhdGg6ICdjb250YWN0TmFtZScsXG4gICAgICAgIGZpbHRlcmFibGU6IHRydWUsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY3JlYXRpb25UaW1lJyxcbiAgICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdDcmVhdGVkJyksXG4gICAgICAgIHBhdGg6ICdjcmVhdGlvblRpbWUnLFxuICAgICAgICBmaWx0ZXJhYmxlOiB0cnVlLFxuICAgICAgICBmaWx0ZXJpbmdGb3JtUmVuZGVyZXJDb21wb25lbnQ6IENyZWF0aW9uVGltZUZpbHRlcmluZ0Zvcm1SZW5kZXJlckNvbXBvbmVudCxcbiAgICAgICAgc29ydGFibGU6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdleHRlcm5hbFJlZmVyZW5jZScsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnRXh0ZXJuYWwgcmVmZXJlbmNlJyksXG4gICAgICAgIHBhdGg6ICdjdXN0b21Qcm9wZXJ0aWVzLmV4dGVybmFsUmVmZXJlbmNlJyxcbiAgICAgICAgZmlsdGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgc29ydGFibGU6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzdGF0dXMnLFxuICAgICAgICBoZWFkZXI6IGdldHRleHQoJ1N0YXR1cycpLFxuICAgICAgICBwYXRoOiAnc3RhdHVzJyxcbiAgICAgICAgZmlsdGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZmlsdGVyaW5nRm9ybVJlbmRlcmVyQ29tcG9uZW50OiBTdGF0dXNGaWx0ZXJpbmdGb3JtUmVuZGVyZXJDb21wb25lbnQsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICByZXNpemFibGU6IGZhbHNlXG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIGdldFBhZ2luYXRpb24oKTogUGFnaW5hdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VTaXplOiAxMCxcbiAgICAgIGN1cnJlbnRQYWdlOiAxXG4gICAgfTtcbiAgfVxuXG4gIGdldEFjdGlvbkNvbnRyb2xzKCk6IEFjdGlvbkNvbnRyb2xbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRWRpdCxcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnRWRpdGB0ZW5hbnRgJyksXG4gICAgICAgIGNhbGxiYWNrOiB0ZW5hbnQgPT4gdGhpcy5nb1RvRGV0YWlscyh0ZW5hbnQpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnYWN0aXZhdGVUZW5hbnRBY3Rpb24nLFxuICAgICAgICBpY29uOiAncG93ZXItb2ZmJyxcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnQWN0aXZhdGVgdGVuYW50YCcpLFxuICAgICAgICBjYWxsYmFjazogKHRlbmFudDogSVRlbmFudCkgPT4gdGhpcy5hY3RpdmF0ZVRlbmFudCh0ZW5hbnQpLFxuICAgICAgICBzaG93SWY6ICh0ZW5hbnQ6IElUZW5hbnQpID0+IHRoaXMuaXNTdXNwZW5kZWQodGVuYW50KVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ3N1c3BlbmRUZW5hbnRBY3Rpb24nLFxuICAgICAgICBpY29uOiAncG93ZXItb2ZmJyxcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnU3VzcGVuZGB0ZW5hbnRgJyksXG4gICAgICAgIGNhbGxiYWNrOiAodGVuYW50OiBJVGVuYW50KSA9PiB0aGlzLnN1c3BlbmRUZW5hbnQodGVuYW50KSxcbiAgICAgICAgc2hvd0lmOiAodGVuYW50OiBJVGVuYW50KSA9PiB0aGlzLmlzQWN0aXZlKHRlbmFudClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IEJ1aWx0SW5BY3Rpb25UeXBlLkRlbGV0ZSxcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnRGVsZXRlYHRlbmFudGAnKSxcbiAgICAgICAgY2FsbGJhY2s6IHRlbmFudCA9PiB0aGlzLmRlbGV0ZSh0ZW5hbnQpLFxuICAgICAgICBzaG93SWY6ICgpID0+IHRoaXMuaXNNYW5hZ2VtZW50VGVuYW50XG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIGNyZWF0ZVRlbmFudCgpIHtcbiAgICB0aGlzLmxvY2F0aW9uLmdvKCcvdGVuYW50cy9uZXcnKTtcbiAgfVxuXG4gIGdvVG9EZXRhaWxzKHRlbmFudDogSVRlbmFudCkge1xuICAgIHRoaXMubG9jYXRpb24uZ28oYC90ZW5hbnRzLyR7dGVuYW50LmlkfWApO1xuICB9XG5cbiAgYXN5bmMgYWN0aXZhdGVUZW5hbnQodGVuYW50KSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YTogc2F2ZWRUZW5hbnQgfSA9IGF3YWl0IHRoaXMudGVuYW50U2VydmljZS51cGRhdGUoe1xuICAgICAgICBpZDogdGVuYW50LmlkLFxuICAgICAgICBzdGF0dXM6IFRlbmFudFN0YXR1cy5BQ1RJVkVcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmFzc2lnbih0ZW5hbnQsIHNhdmVkVGVuYW50KTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnVGVuYW50IGFjdGl2YXRlZC4nKSk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBzdXNwZW5kVGVuYW50KHRlbmFudCkge1xuICAgIGNvbnN0IHRpdGxlID0gZ2V0dGV4dCgnU3VzcGVuZCB0ZW5hbnQnKTtcbiAgICBjb25zdCBjb25maXJtYXRpb25UZXh0ID0gZ2V0dGV4dChcbiAgICAgICdZb3UgYXJlIGFib3V0IHRvIHN1c3BlbmQgdGVuYW50IFwie3sgY29tcGFueSB9fVwiIChJRCBcInt7IGlkIH19XCIpLidcbiAgICApO1xuICAgIGNvbnN0IHByb2NlZWQgPSBnZXR0ZXh0KCdEbyB5b3Ugd2FudCB0byBwcm9jZWVkPycpO1xuICAgIGNvbnN0IGJvZHkgPSBbXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChjb25maXJtYXRpb25UZXh0LCB7XG4gICAgICAgIGNvbXBhbnk6IHRlbmFudC5jb21wYW55LFxuICAgICAgICBpZDogdGVuYW50LmlkXG4gICAgICB9KSxcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHByb2NlZWQpXG4gICAgXS5qb2luKCcgJyk7XG4gICAgY29uc3QgbGFiZWxzID0ge1xuICAgICAgb2s6IGdldHRleHQoJ1N1c3BlbmRgdGVuYW50YCcpXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbFNlcnZpY2UuY29uZmlybSh0aXRsZSwgYm9keSwgU3RhdHVzLkRBTkdFUiwgbGFiZWxzKTtcbiAgICAgIGNvbnN0IGNvbmZpcm1lZCA9IGF3YWl0IHRoaXMucGFzc3dvcmRTZXJ2aWNlLmNvbmZpcm1QYXNzd29yZCgpLnRvUHJvbWlzZSgpO1xuICAgICAgaWYgKGNvbmZpcm1lZCA9PT0gdHJ1ZSkge1xuICAgICAgICBjb25zdCB7IGRhdGE6IHNhdmVkVGVuYW50IH0gPSBhd2FpdCB0aGlzLnRlbmFudFNlcnZpY2UudXBkYXRlKHtcbiAgICAgICAgICBpZDogdGVuYW50LmlkLFxuICAgICAgICAgIHN0YXR1czogVGVuYW50U3RhdHVzLlNVU1BFTkRFRFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0ZW5hbnQsIHNhdmVkVGVuYW50KTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhnZXR0ZXh0KCdUZW5hbnQgc3VzcGVuZGVkLicpKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgaWYgKGV4KSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZSh0ZW5hbnQpIHtcbiAgICBjb25zdCB0aXRsZSA9IGdldHRleHQoJ0RlbGV0ZSB0ZW5hbnQnKTtcbiAgICBjb25zdCBjb25maXJtYXRpb25UZXh0ID0gZ2V0dGV4dChcbiAgICAgICdZb3UgYXJlIGFib3V0IHRvIGRlbGV0ZSB0ZW5hbnQgXCJ7eyBjb21wYW55IH19XCIgKElEIFwie3sgaWQgfX1cIikuJ1xuICAgICk7XG4gICAgY29uc3QgaGludCA9IGdldHRleHQoJ1RoaXMgb3BlcmF0aW9uIGlzIGlycmV2ZXJzaWJsZS4nKTtcbiAgICBjb25zdCBwcm9jZWVkID0gZ2V0dGV4dCgnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nKTtcbiAgICBjb25zdCBib2R5ID0gW1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoY29uZmlybWF0aW9uVGV4dCwge1xuICAgICAgICBjb21wYW55OiB0ZW5hbnQuY29tcGFueSxcbiAgICAgICAgaWQ6IHRlbmFudC5pZFxuICAgICAgfSksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChoaW50KSxcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHByb2NlZWQpXG4gICAgXS5qb2luKCcgJyk7XG4gICAgY29uc3QgbGFiZWxzID0ge1xuICAgICAgb2s6IGdldHRleHQoJ0RlbGV0ZWB0ZW5hbnRgJylcbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLm1vZGFsU2VydmljZS5jb25maXJtKHRpdGxlLCBib2R5LCBTdGF0dXMuREFOR0VSLCBsYWJlbHMpO1xuICAgICAgY29uc3QgY29uZmlybWVkID0gYXdhaXQgdGhpcy5wYXNzd29yZFNlcnZpY2UuY29uZmlybVBhc3N3b3JkKCkudG9Qcm9taXNlKCk7XG4gICAgICBpZiAoY29uZmlybWVkID09PSB0cnVlKSB7XG4gICAgICAgIGF3YWl0IHRoaXMudGVuYW50U2VydmljZS5kZWxldGUodGVuYW50KTtcbiAgICAgICAgY29uc3QgdGVuYW50c1dpdGhvdXRSZW1vdmVkT25lID0gdGhpcy50ZW5hbnRzJC52YWx1ZS5maWx0ZXIodCA9PiB0ICE9PSB0ZW5hbnQpO1xuICAgICAgICB0aGlzLnRlbmFudHMkLm5leHQodGVuYW50c1dpdGhvdXRSZW1vdmVkT25lKTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhcbiAgICAgICAgICBnZXR0ZXh0KCdUZW5hbnQgaXMgYmVpbmcgZGVsZXRlZCBpbiB0aGUgYmFja2dyb3VuZC4gVGhpcyBtaWdodCB0YWtlIGEgd2hpbGXigKYnKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBpZiAoZXgpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaXNBY3RpdmUodGVuYW50OiBJVGVuYW50KSB7XG4gICAgcmV0dXJuIHRlbmFudC5zdGF0dXMgPT09IFRlbmFudFN0YXR1cy5BQ1RJVkU7XG4gIH1cblxuICBpc1N1c3BlbmRlZCh0ZW5hbnQ6IElUZW5hbnQpIHtcbiAgICByZXR1cm4gdGVuYW50LnN0YXR1cyA9PT0gVGVuYW50U3RhdHVzLlNVU1BFTkRFRDtcbiAgfVxuXG4gIGFzeW5jIGRvd25sb2FkTmV3c2xldHRlckVtYWlscygpIHtcbiAgICBjb25zdCB7IHJlcywgZGF0YSB9ID0gYXdhaXQgdGhpcy51c2VyU2VydmljZS5nZXROZXdzbGV0dGVyRW1haWxzKCk7XG4gICAgY29uc3QgY29udGVudFR5cGUgPSByZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpO1xuICAgIGNvbnN0IGNvbnRlbnREaXNwb3NpdGlvbiA9IHJlcy5oZWFkZXJzLmdldCgnY29udGVudC1kaXNwb3NpdGlvbicpO1xuICAgIGNvbnN0IGZpbGVuYW1lID0gL2ZpbGVuYW1lPVwiKC4qKVwiLy5leGVjKGNvbnRlbnREaXNwb3NpdGlvbilbMV07XG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtkYXRhXSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcbiAgICBzYXZlQXMoYmxvYiwgZmlsZW5hbWUpO1xuICB9XG59XG4iLCI8Yzh5LXRpdGxlPlxuICB7eyAnU3VidGVuYW50cycgfCB0cmFuc2xhdGUgfX1cbjwvYzh5LXRpdGxlPlxuXG48Yzh5LWJyZWFkY3J1bWI+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgaWNvbj1cImM4eS1sYXllcnNcIlxuICAgIGxhYmVsPVwie3sgJ1RlbmFudHMnIHwgdHJhbnNsYXRlIH19XCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LWxheWVycydcIlxuICAgIFtsYWJlbF09XCInU3VidGVuYW50cycgfCB0cmFuc2xhdGVcIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuPC9jOHktYnJlYWRjcnVtYj5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgKm5nSWY9XCIhIShhcHBTdGF0ZS5zdGF0ZSQgfCBhc3luYykubmV3c2xldHRlclwiXG4gIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiXG4+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgdGl0bGU9XCJ7e1xuICAgICAgJ0Rvd25sb2FkcyB0aGUgbGlzdCBvZiBlbWFpbHMgb2YgdXNlcnMgc3Vic2NyaWJlZCBmb3IgbmV3c2xldHRlciBvbiB0aGUgY3VycmVudCB0ZW5hbnQgYW5kIGl0cyBzdWJ0ZW5hbnRzLidcbiAgICAgICAgfCB0cmFuc2xhdGVcbiAgICB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cImRvd25sb2FkTmV3c2xldHRlckVtYWlscygpXCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJkb3dubG9hZFwiPjwvaT5cbiAgICB7eyAnRW1haWwgYWRkcmVzc2VzJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnQ3JlYXRlIHRlbmFudCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJjcmVhdGVUZW5hbnQoKVwiXG4gICAgW2Rpc2FibGVkXT1cIiFpc1Blcm1pdHRlZFRvQ3JlYXRlVGVuYW5hbnRcIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCI+PC9pPlxuICAgIHt7ICdDcmVhdGUgdGVuYW50JyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1oZWxwIHNyYz1cIi9kb2NzL2VudGVycHJpc2UtdGVuYW50L21hbmFnaW5nLXRlbmFudHMvI21hbmFnaW5nLXN1YnRlbmFudHNcIj48L2M4eS1oZWxwPlxuXG48ZGl2IGNsYXNzPVwiY29udGVudC1mdWxscGFnZSBib3JkZXItdG9wIGJvcmRlci1ib3R0b21cIj5cbiAgPGM4eS1kYXRhLWdyaWRcbiAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgIFtsb2FkTW9yZUl0ZW1zTGFiZWxdPVwibG9hZE1vcmVJdGVtc0xhYmVsXCJcbiAgICBbbG9hZGluZ0l0ZW1zTGFiZWxdPVwibG9hZGluZ0l0ZW1zTGFiZWxcIlxuICAgIFtkaXNwbGF5T3B0aW9uc109XCJkaXNwbGF5T3B0aW9uc1wiXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgW3Jvd3NdPVwidGVuYW50cyQgfCBhc3luY1wiXG4gICAgW3BhZ2luYXRpb25dPVwicGFnaW5hdGlvblwiXG4gICAgW3Nob3dTZWFyY2hdPVwic2hvd1NlYXJjaFwiXG4gICAgW2FjdGlvbkNvbnRyb2xzXT1cImFjdGlvbkNvbnRyb2xzXCJcbiAgICAob25SZWxvYWQpPVwibG9hZFRlbmFudHMoKVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISh0ZW5hbnRzJCB8IGFzeW5jKTsgZWxzZSBlbXB0eVwiPlxuICAgICAgPGM4eS1sb2FkaW5nPjwvYzh5LWxvYWRpbmc+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgICAgIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICAgICAgW2ljb25dPVwic3RhdHM/LnNpemUgPiAwID8gJ3NlYXJjaCcgOiAnYzh5LWxheWVycydcIlxuICAgICAgICBbdGl0bGVdPVwic3RhdHM/LnNpemUgPiAwID8gKG5vUmVzdWx0c01lc3NhZ2UgfCB0cmFuc2xhdGUpIDogKG5vRGF0YU1lc3NhZ2UgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgW3N1YnRpdGxlXT1cIlxuICAgICAgICAgIHN0YXRzPy5zaXplID4gMCA/IChub1Jlc3VsdHNTdWJ0aXRsZSB8IHRyYW5zbGF0ZSkgOiAobm9EYXRhU3VidGl0bGUgfCB0cmFuc2xhdGUpXG4gICAgICAgIFwiXG4gICAgICAgICplbXB0eVN0YXRlQ29udGV4dD1cImxldCBzdGF0c1wiXG4gICAgICAgIFtob3Jpem9udGFsXT1cInN0YXRzPy5zaXplID4gMFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0cz8uc2l6ZSA9PT0gMFwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQ3JlYXRlIHRlbmFudCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY3JlYXRlVGVuYW50KClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzUGVybWl0dGVkVG9DcmVhdGVUZW5hbmFudFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdDcmVhdGUgdGVuYW50JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHAgYzh5LWd1aWRlLWRvY3M+XG4gICAgICAgICAgICA8c21hbGxcbiAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgIG5nTm9uQmluZGFibGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgRmluZCBvdXQgbW9yZSBpbiB0aGVcbiAgICAgICAgICAgICAgPGEgYzh5LWd1aWRlLWhyZWY9XCIvZG9jcy9lbnRlcnByaXNlLXRlbmFudC9tYW5hZ2luZy10ZW5hbnRzXCI+dXNlciBkb2N1bWVudGF0aW9uPC9hPlxuICAgICAgICAgICAgICAuXG4gICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2M4eS11aS1lbXB0eS1zdGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPGM4eS1jb2x1bW4gbmFtZT1cImNvbXBhbnlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKmM4eUNlbGxSZW5kZXJlckRlZj1cImxldCBjb250ZXh0XCI+XG4gICAgICAgIDxzcGFuIHRpdGxlPVwie3sgY29udGV4dC52YWx1ZSB9fVwiPlxuICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL3RlbmFudHMnLCBjb250ZXh0Lml0ZW0uaWRdXCI+e3sgY29udGV4dC52YWx1ZSB9fTwvYT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9jOHktY29sdW1uPlxuXG4gICAgPGM4eS1jb2x1bW4gbmFtZT1cInBhcmVudFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqYzh5Q2VsbFJlbmRlcmVyRGVmPVwibGV0IGNvbnRleHRcIj5cbiAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBjb250ZXh0LnZhbHVlIHx8IGN1cnJlbnRUZW5hbnQubmFtZSB9fVwiPlxuICAgICAgICAgIHt7IGNvbnRleHQudmFsdWUgfHwgY3VycmVudFRlbmFudC5uYW1lIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvYzh5LWNvbHVtbj5cblxuICAgIDxjOHktY29sdW1uIG5hbWU9XCJjcmVhdGlvblRpbWVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKmM4eUNlbGxSZW5kZXJlckRlZj1cImxldCBjb250ZXh0XCI+XG4gICAgICAgIDxzcGFuIHRpdGxlPVwie3sgY29udGV4dC52YWx1ZSB8IGM4eURhdGUgfX1cIj5cbiAgICAgICAgICB7eyBjb250ZXh0LnZhbHVlIHwgYzh5RGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2M4eS1jb2x1bW4+XG5cbiAgICA8Yzh5LWNvbHVtbiBuYW1lPVwic3RhdHVzXCI+XG4gICAgICA8bmctY29udGFpbmVyICpjOHlDZWxsUmVuZGVyZXJEZWY9XCJsZXQgY29udGV4dFwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIHRpdGxlPVwie3sgJ0FjdGl2ZWB0ZW5hbnRgJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgKm5nSWY9XCJjb250ZXh0Lml0ZW0uc3RhdHVzID09PSBUZW5hbnRTdGF0dXMuQUNUSVZFXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtc3VjY2Vzc1wiXG4gICAgICAgICAgICBjOHlJY29uPVwiY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICA+PC9pPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgdGl0bGU9XCJ7eyAnU3VzcGVuZGVkYHRlbmFudGAnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAqbmdJZj1cImNvbnRleHQuaXRlbS5zdGF0dXMgPT09IFRlbmFudFN0YXR1cy5TVVNQRU5ERURcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgYzh5SWNvbj1cImJhblwiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9jOHktY29sdW1uPlxuICA8L2M4eS1kYXRhLWdyaWQ+XG48L2Rpdj5cbiJdfQ==
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVuYW50cy90ZW5hbnQtbGlzdC90ZW5hbnQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi90ZW5hbnRzL3RlbmFudC1saXN0L3RlbmFudC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhFLE9BQU8sRUFJTCxhQUFhLEVBQ2IsWUFBWSxFQUNaLFdBQVcsRUFDWixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBRUwsWUFBWSxFQUNaLGVBQWUsRUFDZixpQkFBaUIsRUFHakIsT0FBTyxFQUNQLFlBQVksRUFFWixlQUFlLEVBQ2YsV0FBVyxFQUVYLE1BQU0sRUFDTixlQUFlLEVBQ2hCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDL0csT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7QUFNbEcsTUFBTSxPQUFPLG1CQUFtQjtJQWtDOUIsWUFDUyxRQUF5QixFQUN4QixZQUEwQixFQUMxQixZQUEwQixFQUMxQixnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsZUFBZ0MsRUFD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QUNILENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWU7UUFDdEIsT0FBTyxNQUFNLENBQUMsTUFBTSxLQUFLLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFlO1FBQ3pCLE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFFRCxLQUFLLENBQUMsd0JBQXdCO1FBQzVCLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDbkUsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNyRCxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBL1JVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHVEQ3ZDaEMsZytJQW1KQTs7MkZENUdhLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGV4cGFuZCwgcmVkdWNlLCBzaGFyZVJlcGxheSwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBJQ3VycmVudFRlbmFudCxcbiAgSVJlc3VsdExpc3QsXG4gIElUZW5hbnQsXG4gIFRlbmFudFNlcnZpY2UsXG4gIFRlbmFudFN0YXR1cyxcbiAgVXNlclNlcnZpY2Vcbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29udHJvbCxcbiAgQWxlcnRTZXJ2aWNlLFxuICBBcHBTdGF0ZVNlcnZpY2UsXG4gIEJ1aWx0SW5BY3Rpb25UeXBlLFxuICBDb2x1bW4sXG4gIERpc3BsYXlPcHRpb25zLFxuICBnZXR0ZXh0LFxuICBNb2RhbFNlcnZpY2UsXG4gIFBhZ2luYXRpb24sXG4gIFBhc3N3b3JkU2VydmljZSxcbiAgUGVybWlzc2lvbnMsXG4gIFNvcnRPcmRlcixcbiAgU3RhdHVzLFxuICBUZW5hbnRVaVNlcnZpY2Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IENyZWF0aW9uVGltZUZpbHRlcmluZ0Zvcm1SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vY3JlYXRpb24tdGltZS5maWx0ZXJpbmctZm9ybS1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RhdHVzRmlsdGVyaW5nRm9ybVJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9zdGF0dXMuZmlsdGVyaW5nLWZvcm0tcmVuZGVyZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXRlbmFudC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbmFudC1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUZW5hbnRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgdGVuYW50cyQ6IEJlaGF2aW9yU3ViamVjdDxJVGVuYW50W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh1bmRlZmluZWQpO1xuICBpc1Blcm1pdHRlZFRvQ3JlYXRlVGVuYW5hbnQgPSB0aGlzLnBlcm1pc3Npb25zU2VydmljZS5oYXNBbnlSb2xlKFtcbiAgICBQZXJtaXNzaW9ucy5ST0xFX1RFTkFOVF9NQU5BR0VNRU5UX0FETUlOLFxuICAgIFBlcm1pc3Npb25zLlJPTEVfVEVOQU5UX01BTkFHRU1FTlRfQ1JFQVRFXG4gIF0pO1xuICBjdXJyZW50VGVuYW50OiBJQ3VycmVudFRlbmFudDtcbiAgaXNNYW5hZ2VtZW50VGVuYW50OiBib29sZWFuO1xuICBUT1BfVEVOQU5UX05BTUUgPSAnbWFuYWdlbWVudCc7XG5cbiAgdGl0bGU6IHN0cmluZyA9IG51bGw7XG4gIGxvYWRNb3JlSXRlbXNMYWJlbDogc3RyaW5nID0gZ2V0dGV4dCgnTG9hZCBtb3JlIHRlbmFudHMnKTtcbiAgbG9hZGluZ0l0ZW1zTGFiZWw6IHN0cmluZyA9IGdldHRleHQoJ0xvYWRpbmcgdGVuYW50c+KApicpO1xuXG4gIGRpc3BsYXlPcHRpb25zOiBEaXNwbGF5T3B0aW9ucyA9IHtcbiAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgc3RyaXBlZDogdHJ1ZSxcbiAgICBmaWx0ZXI6IHRydWUsXG4gICAgZ3JpZEhlYWRlcjogdHJ1ZSxcbiAgICBob3ZlcjogdHJ1ZVxuICB9O1xuXG4gIGNvbHVtbnM6IENvbHVtbltdID0gdGhpcy5nZXRDb2x1bW5zKCk7XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB0aGlzLmdldFBhZ2luYXRpb24oKTtcbiAgc2hvd1NlYXJjaCA9IHRydWU7XG4gIGFjdGlvbkNvbnRyb2xzOiBBY3Rpb25Db250cm9sW10gPSB0aGlzLmdldEFjdGlvbkNvbnRyb2xzKCk7XG5cbiAgbm9SZXN1bHRzTWVzc2FnZSA9IGdldHRleHQoJ05vIHRlbmFudHMgdG8gZGlzcGxheS4nKTtcbiAgbm9EYXRhTWVzc2FnZSA9IGdldHRleHQoJ1RoZXJlIGFyZSBubyB0ZW5hbnRzIGRlZmluZWQuJyk7XG4gIG5vUmVzdWx0c1N1YnRpdGxlID0gZ2V0dGV4dCgnUmVmaW5lIHlvdXIgc2VhcmNoIHRlcm1zIG9yIGNoZWNrIHlvdXIgc3BlbGxpbmcuJyk7XG4gIG5vRGF0YVN1YnRpdGxlID0gZ2V0dGV4dCgnQ3JlYXRlIHRoZSBmaXJzdCB0ZW5hbnQuJyk7XG5cbiAgVGVuYW50U3RhdHVzID0gVGVuYW50U3RhdHVzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhcHBTdGF0ZTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0ZW5hbnRTZXJ2aWNlOiBUZW5hbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGVuYW50VWlTZXJ2aWNlOiBUZW5hbnRVaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSBwYXNzd29yZFNlcnZpY2U6IFBhc3N3b3JkU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIHBlcm1pc3Npb25zU2VydmljZTogUGVybWlzc2lvbnNcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY3VycmVudFRlbmFudCA9IHRoaXMuYXBwU3RhdGUuY3VycmVudFRlbmFudC52YWx1ZTtcbiAgICB0aGlzLmlzTWFuYWdlbWVudFRlbmFudCA9IGF3YWl0IHRoaXMudGVuYW50VWlTZXJ2aWNlLmlzTWFuYWdlbWVudFRlbmFudCgpO1xuICAgIHRoaXMubG9hZFRlbmFudHMoKTtcbiAgfVxuXG4gIGxvYWRUZW5hbnRzKCkge1xuICAgIHRoaXMudGVuYW50cyQubmV4dCh1bmRlZmluZWQpO1xuICAgIGZyb20odGhpcy50ZW5hbnRTZXJ2aWNlLmxpc3QoeyBwYWdlU2l6ZTogMjAwMCwgd2l0aFRvdGFsUGFnZXM6IHRydWUsIHdpdGhBcHBzOiBmYWxzZSB9KSlcbiAgICAgIC5waXBlKFxuICAgICAgICBleHBhbmQocmVzdWx0TGlzdCA9PiByZXN1bHRMaXN0LnBhZ2luZy5uZXh0UGFnZSAhPT0gbnVsbCAmJiByZXN1bHRMaXN0LnBhZ2luZy5uZXh0KCkpLFxuICAgICAgICB0YWtlV2hpbGUocmVzdWx0TGlzdCA9PiByZXN1bHRMaXN0LnBhZ2luZy5uZXh0UGFnZSAhPT0gbnVsbCwgdHJ1ZSksXG4gICAgICAgIHJlZHVjZShcbiAgICAgICAgICAodGVuYW50czogSVRlbmFudFtdLCByZXN1bHRMaXN0OiBJUmVzdWx0TGlzdDxJVGVuYW50PikgPT4gW1xuICAgICAgICAgICAgLi4udGVuYW50cyxcbiAgICAgICAgICAgIC4uLnJlc3VsdExpc3QuZGF0YVxuICAgICAgICAgIF0sXG4gICAgICAgICAgW11cbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGVuYW50cyA9PiB0aGlzLnRlbmFudHMkLm5leHQodGVuYW50cykpO1xuICB9XG5cbiAgZ2V0Q29sdW1ucygpOiBDb2x1bW5bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NvbXBhbnknLFxuICAgICAgICBoZWFkZXI6IGdldHRleHQoJ1RlbmFudCcpLFxuICAgICAgICBwYXRoOiAnY29tcGFueScsXG4gICAgICAgIGZpbHRlcmFibGU6IHRydWUsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICBzb3J0T3JkZXI6ICdhc2MnIGFzIFNvcnRPcmRlclxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdJRCcpLFxuICAgICAgICBwYXRoOiAnaWQnLFxuICAgICAgICBmaWx0ZXJhYmxlOiB0cnVlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2RvbWFpbicsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnRG9tYWluJyksXG4gICAgICAgIHBhdGg6ICdkb21haW4nLFxuICAgICAgICBmaWx0ZXJhYmxlOiB0cnVlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3BhcmVudCcsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnUGFyZW50IHRlbmFudCcpLFxuICAgICAgICBwYXRoOiAncGFyZW50JyxcbiAgICAgICAgZmlsdGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgc29ydGFibGU6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjb250YWN0TmFtZScsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnQ29udGFjdCBuYW1lJyksXG4gICAgICAgIHBhdGg6ICdjb250YWN0TmFtZScsXG4gICAgICAgIGZpbHRlcmFibGU6IHRydWUsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY3JlYXRpb25UaW1lJyxcbiAgICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdDcmVhdGVkJyksXG4gICAgICAgIHBhdGg6ICdjcmVhdGlvblRpbWUnLFxuICAgICAgICBmaWx0ZXJhYmxlOiB0cnVlLFxuICAgICAgICBmaWx0ZXJpbmdGb3JtUmVuZGVyZXJDb21wb25lbnQ6IENyZWF0aW9uVGltZUZpbHRlcmluZ0Zvcm1SZW5kZXJlckNvbXBvbmVudCxcbiAgICAgICAgc29ydGFibGU6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdleHRlcm5hbFJlZmVyZW5jZScsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnRXh0ZXJuYWwgcmVmZXJlbmNlJyksXG4gICAgICAgIHBhdGg6ICdjdXN0b21Qcm9wZXJ0aWVzLmV4dGVybmFsUmVmZXJlbmNlJyxcbiAgICAgICAgZmlsdGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgc29ydGFibGU6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzdGF0dXMnLFxuICAgICAgICBoZWFkZXI6IGdldHRleHQoJ1N0YXR1cycpLFxuICAgICAgICBwYXRoOiAnc3RhdHVzJyxcbiAgICAgICAgZmlsdGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZmlsdGVyaW5nRm9ybVJlbmRlcmVyQ29tcG9uZW50OiBTdGF0dXNGaWx0ZXJpbmdGb3JtUmVuZGVyZXJDb21wb25lbnQsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICByZXNpemFibGU6IGZhbHNlXG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIGdldFBhZ2luYXRpb24oKTogUGFnaW5hdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VTaXplOiAxMCxcbiAgICAgIGN1cnJlbnRQYWdlOiAxXG4gICAgfTtcbiAgfVxuXG4gIGdldEFjdGlvbkNvbnRyb2xzKCk6IEFjdGlvbkNvbnRyb2xbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRWRpdCxcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnRWRpdGB0ZW5hbnRgJyksXG4gICAgICAgIGNhbGxiYWNrOiB0ZW5hbnQgPT4gdGhpcy5nb1RvRGV0YWlscyh0ZW5hbnQpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnYWN0aXZhdGVUZW5hbnRBY3Rpb24nLFxuICAgICAgICBpY29uOiAncG93ZXItb2ZmJyxcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnQWN0aXZhdGVgdGVuYW50YCcpLFxuICAgICAgICBjYWxsYmFjazogYXN5bmMgKHRlbmFudDogSVRlbmFudCkgPT4ge1xuICAgICAgICAgIGF3YWl0IHRoaXMuYWN0aXZhdGVUZW5hbnQodGVuYW50KTtcbiAgICAgICAgICB0aGlzLmxvYWRUZW5hbnRzKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNob3dJZjogKHRlbmFudDogSVRlbmFudCkgPT4gdGhpcy5pc1N1c3BlbmRlZCh0ZW5hbnQpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnc3VzcGVuZFRlbmFudEFjdGlvbicsXG4gICAgICAgIGljb246ICdwb3dlci1vZmYnLFxuICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdTdXNwZW5kYHRlbmFudGAnKSxcbiAgICAgICAgY2FsbGJhY2s6IGFzeW5jICh0ZW5hbnQ6IElUZW5hbnQpID0+IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnN1c3BlbmRUZW5hbnQodGVuYW50KTtcbiAgICAgICAgICB0aGlzLmxvYWRUZW5hbnRzKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNob3dJZjogKHRlbmFudDogSVRlbmFudCkgPT4gdGhpcy5pc0FjdGl2ZSh0ZW5hbnQpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBCdWlsdEluQWN0aW9uVHlwZS5EZWxldGUsXG4gICAgICAgIHRleHQ6IGdldHRleHQoJ0RlbGV0ZWB0ZW5hbnRgJyksXG4gICAgICAgIGNhbGxiYWNrOiB0ZW5hbnQgPT4gdGhpcy5kZWxldGUodGVuYW50KSxcbiAgICAgICAgc2hvd0lmOiAoKSA9PiB0aGlzLmlzTWFuYWdlbWVudFRlbmFudFxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBjcmVhdGVUZW5hbnQoKSB7XG4gICAgdGhpcy5sb2NhdGlvbi5nbygnL3RlbmFudHMvbmV3Jyk7XG4gIH1cblxuICBnb1RvRGV0YWlscyh0ZW5hbnQ6IElUZW5hbnQpIHtcbiAgICB0aGlzLmxvY2F0aW9uLmdvKGAvdGVuYW50cy8ke3RlbmFudC5pZH1gKTtcbiAgfVxuXG4gIGFzeW5jIGFjdGl2YXRlVGVuYW50KHRlbmFudCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGRhdGE6IHNhdmVkVGVuYW50IH0gPSBhd2FpdCB0aGlzLnRlbmFudFNlcnZpY2UudXBkYXRlKHtcbiAgICAgICAgaWQ6IHRlbmFudC5pZCxcbiAgICAgICAgc3RhdHVzOiBUZW5hbnRTdGF0dXMuQUNUSVZFXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5hc3NpZ24odGVuYW50LCBzYXZlZFRlbmFudCk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ1RlbmFudCBhY3RpdmF0ZWQuJykpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBpZiAoZXgpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc3VzcGVuZFRlbmFudCh0ZW5hbnQpIHtcbiAgICBjb25zdCB0aXRsZSA9IGdldHRleHQoJ1N1c3BlbmQgdGVuYW50Jyk7XG4gICAgY29uc3QgY29uZmlybWF0aW9uVGV4dCA9IGdldHRleHQoXG4gICAgICAnWW91IGFyZSBhYm91dCB0byBzdXNwZW5kIHRlbmFudCBcInt7IGNvbXBhbnkgfX1cIiAoSUQgXCJ7eyBpZCB9fVwiKS4nXG4gICAgKTtcbiAgICBjb25zdCBwcm9jZWVkID0gZ2V0dGV4dCgnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nKTtcbiAgICBjb25zdCBib2R5ID0gW1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoY29uZmlybWF0aW9uVGV4dCwge1xuICAgICAgICBjb21wYW55OiB0ZW5hbnQuY29tcGFueSxcbiAgICAgICAgaWQ6IHRlbmFudC5pZFxuICAgICAgfSksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChwcm9jZWVkKVxuICAgIF0uam9pbignICcpO1xuICAgIGNvbnN0IGxhYmVscyA9IHtcbiAgICAgIG9rOiBnZXR0ZXh0KCdTdXNwZW5kYHRlbmFudGAnKVxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLmNvbmZpcm0odGl0bGUsIGJvZHksIFN0YXR1cy5EQU5HRVIsIGxhYmVscyk7XG4gICAgICBjb25zdCBjb25maXJtZWQgPSBhd2FpdCB0aGlzLnBhc3N3b3JkU2VydmljZS5jb25maXJtUGFzc3dvcmQoKS50b1Byb21pc2UoKTtcbiAgICAgIGlmIChjb25maXJtZWQgPT09IHRydWUpIHtcbiAgICAgICAgY29uc3QgeyBkYXRhOiBzYXZlZFRlbmFudCB9ID0gYXdhaXQgdGhpcy50ZW5hbnRTZXJ2aWNlLnVwZGF0ZSh7XG4gICAgICAgICAgaWQ6IHRlbmFudC5pZCxcbiAgICAgICAgICBzdGF0dXM6IFRlbmFudFN0YXR1cy5TVVNQRU5ERURcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGVuYW50LCBzYXZlZFRlbmFudCk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnVGVuYW50IHN1c3BlbmRlZC4nKSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGUodGVuYW50KSB7XG4gICAgY29uc3QgdGl0bGUgPSBnZXR0ZXh0KCdEZWxldGUgdGVuYW50Jyk7XG4gICAgY29uc3QgY29uZmlybWF0aW9uVGV4dCA9IGdldHRleHQoXG4gICAgICAnWW91IGFyZSBhYm91dCB0byBkZWxldGUgdGVuYW50IFwie3sgY29tcGFueSB9fVwiIChJRCBcInt7IGlkIH19XCIpLidcbiAgICApO1xuICAgIGNvbnN0IGhpbnQgPSBnZXR0ZXh0KCdUaGlzIG9wZXJhdGlvbiBpcyBpcnJldmVyc2libGUuJyk7XG4gICAgY29uc3QgcHJvY2VlZCA9IGdldHRleHQoJ0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/Jyk7XG4gICAgY29uc3QgYm9keSA9IFtcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGNvbmZpcm1hdGlvblRleHQsIHtcbiAgICAgICAgY29tcGFueTogdGVuYW50LmNvbXBhbnksXG4gICAgICAgIGlkOiB0ZW5hbnQuaWRcbiAgICAgIH0pLFxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoaGludCksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChwcm9jZWVkKVxuICAgIF0uam9pbignICcpO1xuICAgIGNvbnN0IGxhYmVscyA9IHtcbiAgICAgIG9rOiBnZXR0ZXh0KCdEZWxldGVgdGVuYW50YCcpXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbFNlcnZpY2UuY29uZmlybSh0aXRsZSwgYm9keSwgU3RhdHVzLkRBTkdFUiwgbGFiZWxzKTtcbiAgICAgIGNvbnN0IGNvbmZpcm1lZCA9IGF3YWl0IHRoaXMucGFzc3dvcmRTZXJ2aWNlLmNvbmZpcm1QYXNzd29yZCgpLnRvUHJvbWlzZSgpO1xuICAgICAgaWYgKGNvbmZpcm1lZCA9PT0gdHJ1ZSkge1xuICAgICAgICBhd2FpdCB0aGlzLnRlbmFudFNlcnZpY2UuZGVsZXRlKHRlbmFudCk7XG4gICAgICAgIGNvbnN0IHRlbmFudHNXaXRob3V0UmVtb3ZlZE9uZSA9IHRoaXMudGVuYW50cyQudmFsdWUuZmlsdGVyKHQgPT4gdCAhPT0gdGVuYW50KTtcbiAgICAgICAgdGhpcy50ZW5hbnRzJC5uZXh0KHRlbmFudHNXaXRob3V0UmVtb3ZlZE9uZSk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoXG4gICAgICAgICAgZ2V0dGV4dCgnVGVuYW50IGlzIGJlaW5nIGRlbGV0ZWQgaW4gdGhlIGJhY2tncm91bmQuIFRoaXMgbWlnaHQgdGFrZSBhIHdoaWxl4oCmJylcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgaWYgKGV4KSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzQWN0aXZlKHRlbmFudDogSVRlbmFudCkge1xuICAgIHJldHVybiB0ZW5hbnQuc3RhdHVzID09PSBUZW5hbnRTdGF0dXMuQUNUSVZFO1xuICB9XG5cbiAgaXNTdXNwZW5kZWQodGVuYW50OiBJVGVuYW50KSB7XG4gICAgcmV0dXJuIHRlbmFudC5zdGF0dXMgPT09IFRlbmFudFN0YXR1cy5TVVNQRU5ERUQ7XG4gIH1cblxuICBhc3luYyBkb3dubG9hZE5ld3NsZXR0ZXJFbWFpbHMoKSB7XG4gICAgY29uc3QgeyByZXMsIGRhdGEgfSA9IGF3YWl0IHRoaXMudXNlclNlcnZpY2UuZ2V0TmV3c2xldHRlckVtYWlscygpO1xuICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVzLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKTtcbiAgICBjb25zdCBjb250ZW50RGlzcG9zaXRpb24gPSByZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtZGlzcG9zaXRpb24nKTtcbiAgICBjb25zdCBmaWxlbmFtZSA9IC9maWxlbmFtZT1cIiguKilcIi8uZXhlYyhjb250ZW50RGlzcG9zaXRpb24pWzFdO1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHsgdHlwZTogY29udGVudFR5cGUgfSk7XG4gICAgc2F2ZUFzKGJsb2IsIGZpbGVuYW1lKTtcbiAgfVxufVxuIiwiPGM4eS10aXRsZT5cbiAge3sgJ1N1YnRlbmFudHMnIHwgdHJhbnNsYXRlIH19XG48L2M4eS10aXRsZT5cblxuPGM4eS1icmVhZGNydW1iPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIGljb249XCJjOHktbGF5ZXJzXCJcbiAgICBsYWJlbD1cInt7ICdUZW5hbnRzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ2M4eS1sYXllcnMnXCJcbiAgICBbbGFiZWxdPVwiJ1N1YnRlbmFudHMnIHwgdHJhbnNsYXRlXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbjwvYzh5LWJyZWFkY3J1bWI+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtXG4gICpuZ0lmPVwiISEoYXBwU3RhdGUuc3RhdGUkIHwgYXN5bmMpLm5ld3NsZXR0ZXJcIlxuICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIHRpdGxlPVwie3tcbiAgICAgICdEb3dubG9hZHMgdGhlIGxpc3Qgb2YgZW1haWxzIG9mIHVzZXJzIHN1YnNjcmliZWQgZm9yIG5ld3NsZXR0ZXIgb24gdGhlIGN1cnJlbnQgdGVuYW50IGFuZCBpdHMgc3VidGVuYW50cy4nXG4gICAgICAgIHwgdHJhbnNsYXRlXG4gICAgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJkb3dubG9hZE5ld3NsZXR0ZXJFbWFpbHMoKVwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwiZG93bmxvYWRcIj48L2k+XG4gICAge3sgJ0VtYWlsIGFkZHJlc3NlcycgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIHRpdGxlPVwie3sgJ0NyZWF0ZSB0ZW5hbnQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwiY3JlYXRlVGVuYW50KClcIlxuICAgIFtkaXNhYmxlZF09XCIhaXNQZXJtaXR0ZWRUb0NyZWF0ZVRlbmFuYW50XCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJwbHVzLWNpcmNsZVwiPjwvaT5cbiAgICB7eyAnQ3JlYXRlIHRlbmFudCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktaGVscCBzcmM9XCIvZG9jcy9lbnRlcnByaXNlLXRlbmFudC9tYW5hZ2luZy10ZW5hbnRzLyNtYW5hZ2luZy1zdWJ0ZW5hbnRzXCI+PC9jOHktaGVscD5cblxuPGRpdiBjbGFzcz1cImNvbnRlbnQtZnVsbHBhZ2UgYm9yZGVyLXRvcCBib3JkZXItYm90dG9tXCI+XG4gIDxjOHktZGF0YS1ncmlkXG4gICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICBbbG9hZE1vcmVJdGVtc0xhYmVsXT1cImxvYWRNb3JlSXRlbXNMYWJlbFwiXG4gICAgW2xvYWRpbmdJdGVtc0xhYmVsXT1cImxvYWRpbmdJdGVtc0xhYmVsXCJcbiAgICBbZGlzcGxheU9wdGlvbnNdPVwiZGlzcGxheU9wdGlvbnNcIlxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgIFtyb3dzXT1cInRlbmFudHMkIHwgYXN5bmNcIlxuICAgIFtwYWdpbmF0aW9uXT1cInBhZ2luYXRpb25cIlxuICAgIFtzaG93U2VhcmNoXT1cInNob3dTZWFyY2hcIlxuICAgIFthY3Rpb25Db250cm9sc109XCJhY3Rpb25Db250cm9sc1wiXG4gICAgKG9uUmVsb2FkKT1cImxvYWRUZW5hbnRzKClcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEodGVuYW50cyQgfCBhc3luYyk7IGVsc2UgZW1wdHlcIj5cbiAgICAgIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHk+XG4gICAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICAgIFtpY29uXT1cInN0YXRzPy5zaXplID4gMCA/ICdzZWFyY2gnIDogJ2M4eS1sYXllcnMnXCJcbiAgICAgICAgW3RpdGxlXT1cInN0YXRzPy5zaXplID4gMCA/IChub1Jlc3VsdHNNZXNzYWdlIHwgdHJhbnNsYXRlKSA6IChub0RhdGFNZXNzYWdlIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgIFtzdWJ0aXRsZV09XCJcbiAgICAgICAgICBzdGF0cz8uc2l6ZSA+IDAgPyAobm9SZXN1bHRzU3VidGl0bGUgfCB0cmFuc2xhdGUpIDogKG5vRGF0YVN1YnRpdGxlIHwgdHJhbnNsYXRlKVxuICAgICAgICBcIlxuICAgICAgICAqZW1wdHlTdGF0ZUNvbnRleHQ9XCJsZXQgc3RhdHNcIlxuICAgICAgICBbaG9yaXpvbnRhbF09XCJzdGF0cz8uc2l6ZSA+IDBcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RhdHM/LnNpemUgPT09IDBcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0NyZWF0ZSB0ZW5hbnQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNyZWF0ZVRlbmFudCgpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1Blcm1pdHRlZFRvQ3JlYXRlVGVuYW5hbnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnQ3JlYXRlIHRlbmFudCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxwIGM4eS1ndWlkZS1kb2NzPlxuICAgICAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICBuZ05vbkJpbmRhYmxlXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEZpbmQgb3V0IG1vcmUgaW4gdGhlXG4gICAgICAgICAgICAgIDxhIGM4eS1ndWlkZS1ocmVmPVwiL2RvY3MvZW50ZXJwcmlzZS10ZW5hbnQvbWFuYWdpbmctdGVuYW50c1wiPnVzZXIgZG9jdW1lbnRhdGlvbjwvYT5cbiAgICAgICAgICAgICAgLlxuICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9jOHktdWktZW1wdHktc3RhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxjOHktY29sdW1uIG5hbWU9XCJjb21wYW55XCI+XG4gICAgICA8bmctY29udGFpbmVyICpjOHlDZWxsUmVuZGVyZXJEZWY9XCJsZXQgY29udGV4dFwiPlxuICAgICAgICA8c3BhbiB0aXRsZT1cInt7IGNvbnRleHQudmFsdWUgfX1cIj5cbiAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy90ZW5hbnRzJywgY29udGV4dC5pdGVtLmlkXVwiPnt7IGNvbnRleHQudmFsdWUgfX08L2E+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvYzh5LWNvbHVtbj5cblxuICAgIDxjOHktY29sdW1uIG5hbWU9XCJwYXJlbnRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKmM4eUNlbGxSZW5kZXJlckRlZj1cImxldCBjb250ZXh0XCI+XG4gICAgICAgIDxzcGFuIHRpdGxlPVwie3sgY29udGV4dC52YWx1ZSB8fCBjdXJyZW50VGVuYW50Lm5hbWUgfX1cIj5cbiAgICAgICAgICB7eyBjb250ZXh0LnZhbHVlIHx8IGN1cnJlbnRUZW5hbnQubmFtZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2M4eS1jb2x1bW4+XG5cbiAgICA8Yzh5LWNvbHVtbiBuYW1lPVwiY3JlYXRpb25UaW1lXCI+XG4gICAgICA8bmctY29udGFpbmVyICpjOHlDZWxsUmVuZGVyZXJEZWY9XCJsZXQgY29udGV4dFwiPlxuICAgICAgICA8c3BhbiB0aXRsZT1cInt7IGNvbnRleHQudmFsdWUgfCBjOHlEYXRlIH19XCI+XG4gICAgICAgICAge3sgY29udGV4dC52YWx1ZSB8IGM4eURhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9jOHktY29sdW1uPlxuXG4gICAgPGM4eS1jb2x1bW4gbmFtZT1cInN0YXR1c1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqYzh5Q2VsbFJlbmRlcmVyRGVmPVwibGV0IGNvbnRleHRcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICB0aXRsZT1cInt7ICdBY3RpdmVgdGVuYW50YCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICpuZ0lmPVwiY29udGV4dC5pdGVtLnN0YXR1cyA9PT0gVGVuYW50U3RhdHVzLkFDVElWRVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIlxuICAgICAgICAgICAgYzh5SWNvbj1cImNoZWNrLWNpcmNsZVwiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIHRpdGxlPVwie3sgJ1N1c3BlbmRlZGB0ZW5hbnRgJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgKm5nSWY9XCJjb250ZXh0Lml0ZW0uc3RhdHVzID09PSBUZW5hbnRTdGF0dXMuU1VTUEVOREVEXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgIGM4eUljb249XCJiYW5cIlxuICAgICAgICAgID48L2k+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvYzh5LWNvbHVtbj5cbiAgPC9jOHktZGF0YS1ncmlkPlxuPC9kaXY+XG4iXX0=
|
|
@@ -84,7 +84,7 @@ export class AlarmWidgetService {
|
|
|
84
84
|
order: order,
|
|
85
85
|
isRealtime: oldConfig.realtime,
|
|
86
86
|
device: oldConfig.device,
|
|
87
|
-
showAlarmsForChildren:
|
|
87
|
+
showAlarmsForChildren: true,
|
|
88
88
|
severities: oldConfig.options.severity,
|
|
89
89
|
status: this.allValuesFalse(oldConfig.options.status)
|
|
90
90
|
? {
|
|
@@ -341,4 +341,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
341
341
|
type: Injectable,
|
|
342
342
|
args: [{ providedIn: 'root' }]
|
|
343
343
|
}], ctorParameters: () => [{ type: i1.AlarmsViewService }] });
|
|
344
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0td2lkZ2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi93aWRnZXRzL2ltcGxlbWVudGF0aW9ucy9hbGFybXMvYWxhcm0td2lkZ2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBR0wsV0FBVyxFQUVYLFFBQVEsRUFFUixlQUFlLEVBQ2hCLE1BQU0sYUFBYSxDQUFDO0FBR3JCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFDTCxrQkFBa0IsRUFJbEIsdUJBQXVCLEVBQ3hCLE1BQU0sMkJBQTJCLENBQUM7OztBQUVuQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFHcEMsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUFHLENBQUM7SUFFNUQ7Ozs7Ozs7O09BUUc7SUFDSCx5QkFBeUIsQ0FDdkIsSUFBbUQ7UUFFbkQsT0FBTyxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCwwQkFBMEIsQ0FBQyxpQkFBMEIsRUFBRSxRQUFpQjtRQUN0RSxPQUFPO1lBQ0wsS0FBSyxFQUFFLGtCQUFrQixDQUFDLFNBQVM7WUFDbkMsVUFBVSxFQUNSLFFBQVEsS0FBSyx1QkFBdUI7Z0JBQ2xDLENBQUMsQ0FBRTtvQkFDQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJO29CQUN6QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJO29CQUN0QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxJ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QUFhLEVBQUUsTUFBZ0IsRUFBRSxNQUE2QjtRQUM3RSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxlQUFlLENBQUMsTUFBNkIsRUFBRSxLQUFhO1FBQzFELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUN2RixDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNLLG9CQUFvQixDQUFDLFdBQXFCO1FBQ2hELE9BQU8sWUFBWSxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDN0MsQ0FBQzs4R0F0V1Usa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FETCxNQUFNOzsyRkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFsYXJtUXVlcnlGaWx0ZXIsXG4gIEFsYXJtU3RhdHVzU2V0dGluZ3MsXG4gIEFsYXJtU3RhdHVzLFxuICBJQWxhcm0sXG4gIFNldmVyaXR5LFxuICBTZXZlcml0eUZpbHRlcixcbiAgU0VWRVJJVFlfTEFCRUxTXG59IGZyb20gJ0BjOHkvY2xpZW50JztcblxuaW1wb3J0IHsgU2V2ZXJpdHlTZXR0aW5ncywgU2V2ZXJpdHlUeXBlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxhcm1zVmlld1NlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FsYXJtcyc7XG5pbXBvcnQge1xuICBBTEFSTV9PUkRFUl9WQUxVRVMsXG4gIEFsYXJtTGlzdFdpZGdldENvbmZpZyxcbiAgQWxhcm1PcmRlclR5cGUsXG4gIExlZ2FjeUFsYXJtTGlzdENvbmZpZyxcbiAgUkVDRU5UX0FMQVJNU19XSURHRVRfSURcbn0gZnJvbSAnLi9hbGFybS1saXN0LXdpZGdldC5tb2RlbCc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BBR0VfU0laRSA9IDIwO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFsYXJtV2lkZ2V0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWxhcm1zVmlld1NlcnZpY2U6IEFsYXJtc1ZpZXdTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIHByb3ZpZGVkIGRhdGEgZm9sbG93cyB0aGUgTGVnYWN5QWxhcm1Db25maWcgc3RydWN0dXJlLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGRldGVybWluZXMgaWYgYSBnaXZlbiBkYXRhIG9iamVjdCBpcyBhbiBpbnN0YW5jZSBvZiBMZWdhY3lBbGFybUNvbmZpZ1xuICAgKiBieSBjaGVja2luZyBmb3IgdGhlIHByZXNlbmNlIG9mIHRoZSAnb3B0aW9ucycgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gICAqIEByZXR1cm5zIC0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGRhdGEgb2JqZWN0IGlzIGEgTGVnYWN5QWxhcm1Db25maWcsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgKi9cbiAgaXNPbGRBbGFybUNvbmZpZ1N0cnVjdHVyZShcbiAgICBkYXRhOiBMZWdhY3lBbGFybUxpc3RDb25maWcgfCBBbGFybUxpc3RXaWRnZXRDb25maWdcbiAgKTogZGF0YSBpcyBMZWdhY3lBbGFybUxpc3RDb25maWcge1xuICAgIHJldHVybiBkYXRhICE9PSBudWxsICYmIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiAnb3B0aW9ucycgaW4gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHByZWRlZmluZWQgd2lkZ2V0IGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGEgbmV3IGNvbmZpZ3VyYXRpb24gb2JqZWN0IGJhc2VkIG9uXG4gICAqIGEgd2lkZ2V0cyBJRCAodGhhdCBkZXRlcm1pbmVzIGlmIGlzIGEgbGVnYWN5IFJlY2VudCBvciBDcml0aWNhbCBhbGFybXMgd2lkZ2V0KS5cbiAgICpcbiAgICogQHBhcmFtIGlzSW50ZXJ2YWxSZWZyZXNoIC0gZGV0ZXJtaW5lcyBhIHR5cGUgb2YgYSByZWZyZXNoLlxuICAgKiBAcGFyYW0gd2lkZ2V0SWQgLSBkZXRlcm1pbmVzIGlmIGEgY29uZmlnIHNob3VsZCBiZSBkb25lIGZvciBSZWNlbnQgb3IgQ3JpdGljYWwgYWxhcm1zIHdpZGdldC5cbiAgICogQHJldHVybnMgVGhlIG5ldywgcHJlZGVmaW5lZCBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICovXG4gIGdldFByZWRlZmluZWRDb25maWd1cmF0aW9uKGlzSW50ZXJ2YWxSZWZyZXNoOiBib29sZWFuLCB3aWRnZXRJZD86IHN0cmluZyk6IEFsYXJtTGlzdFdpZGdldENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9yZGVyOiBBTEFSTV9PUkRFUl9WQUxVRVMuQllfQUNUSVZFLFxuICAgICAgc2V2ZXJpdGllczpcbiAgICAgICAgd2lkZ2V0SWQgPT09IFJFQ0VOVF9BTEFSTVNfV0lER0VUX0lEXG4gICAgICAgICAgPyAoe1xuICAgICAgICAgICAgICBbU2V2ZXJpdHkuQ1JJVElDQUxdOiB0cnVlLFxuICAgICAgICAgICAgICBbU2V2ZXJpdHkuTUFKT1JdOiB0cnVlLFxuICAgICAgICAgICAgICBbU2V2ZXJpdHkuTUlOT1JdOiB0cnVlLFxuICAgICAgICAgICAgICBbU2V2ZXJpdHkuV0FSTklOR106IHRydWVcbiAgICAgICAgICAgIH0gYXMgU2V2ZXJpdHlTZXR0aW5ncylcbiAgICAgICAgICA6ICh7XG4gICAgICAgICAgICAgIFtTZXZlcml0eS5DUklUSUNBTF06IHRydWUsXG4gICAgICAgICAgICAgIFtTZXZlcml0eS5NQUpPUl06IGZhbHNlLFxuICAgICAgICAgICAgICBbU2V2ZXJpdHkuTUlOT1JdOiBmYWxzZSxcbiAgICAgICAgICAgICAgW1NldmVyaXR5LldBUk5JTkddOiBmYWxzZVxuICAgICAgICAgICAgfSBhcyBTZXZlcml0eVNldHRpbmdzKSxcbiAgICAgIHN0YXR1czpcbiAgICAgICAgd2lkZ2V0SWQgPT09IFJFQ0VOVF9BTEFSTVNfV0lER0VUX0lEXG4gICAgICAgICAgPyAoe1xuICAgICAgICAgICAgICBbQWxhcm1TdGF0dXMuQUNLTk9XTEVER0VEXTogdHJ1ZSxcbiAgICAgICAgICAgICAgW0FsYXJtU3RhdHVzLkFDVElWRV06IHRydWUsXG4gICAgICAgICAgICAgIFtBbGFybVN0YXR1cy5DTEVBUkVEXTogdHJ1ZVxuICAgICAgICAgICAgfSBhcyBBbGFybVN0YXR1c1NldHRpbmdzKVxuICAgICAgICAgIDogKHtcbiAgICAgICAgICAgICAgW0FsYXJtU3RhdHVzLkFDS05PV0xFREdFRF06IGZhbHNlLFxuICAgICAgICAgICAgICBbQWxhcm1TdGF0dXMuQUNUSVZFXTogdHJ1ZSxcbiAgICAgICAgICAgICAgW0FsYXJtU3RhdHVzLkNMRUFSRURdOiBmYWxzZVxuICAgICAgICAgICAgfSBhcyBBbGFybVN0YXR1c1NldHRpbmdzKSxcbiAgICAgIHR5cGVzOiBbJyddLFxuICAgICAgaXNSZWFsdGltZTogIWlzSW50ZXJ2YWxSZWZyZXNoLFxuICAgICAgaXNBdXRvUmVmcmVzaEVuYWJsZWQ6IHRydWUsXG4gICAgICByZWZyZXNoSW50ZXJ2YWw6IGlzSW50ZXJ2YWxSZWZyZXNoID8gdGhpcy5hbGFybXNWaWV3U2VydmljZS5ERUZBVUxUX0lOVEVSVkFMX1ZBTFVFIDogdW5kZWZpbmVkXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1zIGEgTGVnYWN5QWxhcm1Db25maWcgb2JqZWN0IGludG8gYW4gQWxhcm1MaXN0V2lkZ2V0Q29uZmlnIG9iamVjdC5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBtYXBzIHRoZSBwcm9wZXJ0aWVzIGZyb20gYW4gb2xkIGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIChMZWdhY3lBbGFybUNvbmZpZylcbiAgICogdG8gYSBuZXcgY29uZmlndXJhdGlvbiBzdHJ1Y3R1cmUgKEFsYXJtTGlzdFdpZGdldENvbmZpZykuXG4gICAqXG4gICAqIEBwYXJhbSBvbGRDb25maWcgLSBUaGUgb2xkIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIGJlIHRyYW5zZm9ybWVkLlxuICAgKiBAcmV0dXJucyAtIFRoZSBuZXcgY29uZmlndXJhdGlvbiBvYmplY3QgbWFwcGVkIGZyb20gdGhlIG9sZCBvbmUuXG4gICAqL1xuICBtYXBUb05ld0NvbmZpZ1N0cnVjdHVyZShcbiAgICBvbGRDb25maWc6IExlZ2FjeUFsYXJtTGlzdENvbmZpZyxcbiAgICBpc0ludGVydmFsUmVmcmVzaDogYm9vbGVhblxuICApOiBBbGFybUxpc3RXaWRnZXRDb25maWcge1xuICAgIGNvbnN0IG9yZGVyOiBBbGFybU9yZGVyVHlwZSA9XG4gICAgICBvbGRDb25maWcub3B0aW9ucy5vcmRlck1vZGUgPT09ICdBQ1RJVkVfRklSU1QnXG4gICAgICAgID8gQUxBUk1fT1JERVJfVkFMVUVTLkJZX0FDVElWRVxuICAgICAgICA6IEFMQVJNX09SREVSX1ZBTFVFUy5CWV9TRVZFUklUWTtcblxuICAgIGlmICghdGhpcy5pc0NvbnRhaW5pbmdBbGxTZXZlcml0eVR5cGVzKG9sZENvbmZpZy5vcHRpb25zLnNldmVyaXR5KSkge1xuICAgICAgb2xkQ29uZmlnLm9wdGlvbnMuc2V2ZXJpdHkgPSB0aGlzLmFkZEFsbE1pc3NpbmdTZXZlcml0eVR5cGVzKG9sZENvbmZpZy5vcHRpb25zLnNldmVyaXR5KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3JkZXI6IG9yZGVyLFxuICAgICAgaXNSZWFsdGltZTogb2xkQ29uZmlnLnJlYWx0aW1lLFxuICAgICAgZGV2aWNlOiBvbGRDb25maWcuZGV2aWNlLFxuICAgICAgc2hvd0FsYXJtc0ZvckNoaWxkcmVuOiBmYWxzZSxcbiAgICAgIHNldmVyaXRpZXM6IG9sZENvbmZpZy5vcHRpb25zLnNldmVyaXR5LFxuICAgICAgc3RhdHVzOiB0aGlzLmFsbFZhbHVlc0ZhbHNlKG9sZENvbmZpZy5vcHRpb25zLnN0YXR1cylcbiAgICAgICAgPyAoe1xuICAgICAgICAgICAgW0FsYXJtU3RhdHVzLkFDS05PV0xFREdFRF06IHRydWUsXG4gICAgICAgICAgICBbQWxhcm1TdGF0dXMuQUNUSVZFXTogdHJ1ZSxcbiAgICAgICAgICAgIFtBbGFybVN0YXR1cy5DTEVBUkVEXTogdHJ1ZVxuICAgICAgICAgIH0gYXMgQWxhcm1TdGF0dXNTZXR0aW5ncylcbiAgICAgICAgOiBvbGRDb25maWcub3B0aW9ucy5zdGF0dXMsXG4gICAgICB0eXBlczogb2xkQ29uZmlnLm9wdGlvbnMudHlwZXM/Lmxlbmd0aCA/IG9sZENvbmZpZy5vcHRpb25zLnR5cGVzIDogWycnXSxcbiAgICAgIGlzQXV0b1JlZnJlc2hFbmFibGVkOiB0cnVlLFxuICAgICAgcmVmcmVzaEludGVydmFsOiBpc0ludGVydmFsUmVmcmVzaCA/IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UuREVGQVVMVF9JTlRFUlZBTF9WQUxVRSA6IHVuZGVmaW5lZFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBwcm92aWRlZCBzZXZlcml0eSBvYmplY3QgY29udGFpbnMgYWxsIHRoZSBwcmVkZWZpbmVkIHNldmVyaXR5IHR5cGVzLlxuICAgKlxuICAgKiBAcGFyYW0gc2V2ZXJpdHkgLSBBIHJlY29yZCBvYmplY3Qgd2hlcmUga2V5cyBhcmUgc2V2ZXJpdHkgdHlwZSBzdHJpbmdzIGFuZCB2YWx1ZXMgYXJlIGJvb2xlYW4uXG4gICAqICAgICAgICAgICAgICAgICAtIFRoaXMgb2JqZWN0IGlzIGNoZWNrZWQgYWdhaW5zdCB0aGUgcHJlZGVmaW5lZCBzZXZlcml0eSB0eXBlcy5cbiAgICogQHJldHVybnMgYHRydWVgIGlmIGFsbCBwcmVkZWZpbmVkIHNldmVyaXR5IHR5cGVzIGFyZSBwcmVzZW50IGluIHRoZSBzZXZlcml0eSBvYmplY3Q7IG90aGVyd2lzZSwgYGZhbHNlYC5cbiAgICovXG4gIGlzQ29udGFpbmluZ0FsbFNldmVyaXR5VHlwZXMoc2V2ZXJpdHk6IFNldmVyaXR5RmlsdGVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKFNFVkVSSVRZX0xBQkVMUykuZXZlcnkoc2V2ZXJpdHlUeXBlID0+IHNldmVyaXR5VHlwZSBpbiBzZXZlcml0eSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbnkgbWlzc2luZyBzZXZlcml0eSB0eXBlcyB0byB0aGUgcHJvdmlkZWQgc2V2ZXJpdHkgb2JqZWN0IHdpdGggYSBkZWZhdWx0IHZhbHVlIG9mIGBmYWxzZWAuXG4gICAqXG4gICAqIEBwYXJhbSBzZXZlcml0eSAtIEEgcmVjb3JkIG9iamVjdCB3aGVyZSBrZXlzIGFyZSBzZXZlcml0eSB0eXBlIHN0cmluZ3MgYW5kIHZhbHVlcyBhcmUgYm9vbGVhbi5cbiAgICogICAgICAgICAgICAgICAgIC0gTWlzc2luZyBzZXZlcml0eSB0eXBlcyB3aWxsIGJlIGFkZGVkIHRvIHRoaXMgb2JqZWN0LlxuICAgKiBAcmV0dXJucyBUaGUgbW9kaWZpZWQgc2V2ZXJpdHkgb2JqZWN0LCB3aGljaCBpbmNsdWRlcyBhbGwgcHJlZGVmaW5lZCBzZXZlcml0eSB0eXBlcywgYWRkaW5nIGFueVxuICAgKiAgICAgICAgICB0aGF0IHdlcmUgbWlzc2luZyB3aXRoIGEgdmFsdWUgb2YgYGZhbHNlYC5cbiAgICovXG4gIGFkZEFsbE1pc3NpbmdTZXZlcml0eVR5cGVzKHNldmVyaXR5OiBTZXZlcml0eUZpbHRlcik6IFNldmVyaXR5RmlsdGVyIHtcbiAgICBPYmplY3Qua2V5cyhTRVZFUklUWV9MQUJFTFMpLmZvckVhY2goc2V2ZXJpdHlUeXBlID0+IHtcbiAgICAgIGlmICghKHNldmVyaXR5VHlwZSBpbiBzZXZlcml0eSkpIHtcbiAgICAgICAgc2V2ZXJpdHlbc2V2ZXJpdHlUeXBlXSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBzZXZlcml0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXBzIGFuIEFsYXJtTGlzdFdpZGdldENvbmZpZyBvYmplY3QgdG8gYW4gQWxhcm1RdWVyeUZpbHRlci5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyB0aGUgcHJvdmlkZWQgQWxhcm1MaXN0V2lkZ2V0Q29uZmlnIGludG8gYSBmb3JtYXQgc3VpdGFibGUgZm9yIHF1ZXJ5aW5nIGFsYXJtcy5cbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZyAtIFRoZSBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhlIGFsYXJtIGxpc3Qgd2lkZ2V0LlxuICAgKiBAcGFyYW0gcGFnZVNpemUgLSBPcHRpb25hbCBudW1iZXIgc3BlY2lmeWluZyB0aGUgc2l6ZSBvZiB0aGUgcGFnZXMgdG8gYmUgcmV0dXJuZWQgaW4gdGhlIHF1ZXJ5LlxuICAgKiBAcmV0dXJucyAtIFRoZSBxdWVyeSBmaWx0ZXIgb2JqZWN0IGNvbnN0cnVjdGVkIGZyb20gdGhlIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBtYXBDb25maWdUb1F1ZXJ5RmlsdGVyKGNvbmZpZzogQWxhcm1MaXN0V2lkZ2V0Q29uZmlnLCBwYWdlU2l6ZT86IG51bWJlcik6IEFsYXJtUXVlcnlGaWx0ZXIge1xuICAgIGNvbnN0IGZpbHRlcjogQWxhcm1RdWVyeUZpbHRlciA9IHtcbiAgICAgIHBhZ2VTaXplOiBwYWdlU2l6ZSB8fCBERUZBVUxUX1BBR0VfU0laRSxcbiAgICAgIHF1ZXJ5OiB0aGlzLmdldE9yZGVyUGFyYW1ldGVycyhjb25maWcub3JkZXIpLFxuICAgICAgc2V2ZXJpdHk6IHRoaXMuZXh0cmFjdEZpbHRlclBhcmFtcyhjb25maWcuc2V2ZXJpdGllcyB8fCB7fSksXG4gICAgICBzdGF0dXM6IHRoaXMuZXh0cmFjdEZpbHRlclBhcmFtcyhjb25maWcuc3RhdHVzIHx8IHt9KSxcbiAgICAgIHR5cGU6IChjb25maWcudHlwZXMgfHwgW10pLmpvaW4oJywnKSxcbiAgICAgIHdpdGhUb3RhbFBhZ2VzOiB0cnVlXG4gICAgfTtcbiAgICBpZiAoY29uZmlnLmRhdGVGaWx0ZXIpIHtcbiAgICAgIGZpbHRlci5sYXN0VXBkYXRlZEZyb20gPVxuICAgICAgICB0eXBlb2YgY29uZmlnLmRhdGVGaWx0ZXJbMF0gPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyBjb25maWcuZGF0ZUZpbHRlclswXVxuICAgICAgICAgIDogY29uZmlnLmRhdGVGaWx0ZXJbMF0udG9JU09TdHJpbmcoKTtcbiAgICAgIGZpbHRlci5jcmVhdGVkVG8gPVxuICAgICAgICB0eXBlb2YgY29uZmlnLmRhdGVGaWx0ZXJbMV0gPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyBjb25maWcuZGF0ZUZpbHRlclsxXVxuICAgICAgICAgIDogY29uZmlnLmRhdGVGaWx0ZXJbMV0udG9JU09TdHJpbmcoKTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5kZXZpY2UpIHtcbiAgICAgIGZpbHRlci5zb3VyY2UgPSBjb25maWcuZGV2aWNlLmlkO1xuICAgICAgZmlsdGVyLndpdGhTb3VyY2VBc3NldHMgPSB0cnVlO1xuICAgICAgZmlsdGVyLndpdGhTb3VyY2VEZXZpY2VzID0gdHJ1ZTtcbiAgICAgIGZpbHRlci53aXRoU291cmNlQXNzZXRzID0gY29uZmlnLnNob3dBbGFybXNGb3JDaGlsZHJlbiA/PyB0cnVlO1xuICAgICAgZmlsdGVyLndpdGhTb3VyY2VEZXZpY2VzID0gY29uZmlnLnNob3dBbGFybXNGb3JDaGlsZHJlbiA/PyB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIGFuZCBjb25jYXRlbmF0ZXMgZmlsdGVyIHBhcmFtZXRlcnMgZnJvbSBhIGdpdmVuIG9iamVjdC5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiB0YWtlcyBhbiBvYmplY3QgY29udGFpbmluZyBmaWx0ZXIgc2V0dGluZ3MgKGVpdGhlciBTZXZlcml0eUZpbHRlclxuICAgKiBvciBBbGFybVN0YXR1c1NldHRpbmdzKSBhbmQgcmV0dXJucyBhIHN0cmluZyBvZiBhbGwga2V5cyB3aGVyZSB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcyB0cnVlLlxuICAgKiBJZiB0aGUgb2JqZWN0IGlzIGVtcHR5IG9yIG51bGwsIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZC5cbiAgICpcbiAgICogQHBhcmFtIG9iaiAtIFRoZSBvYmplY3QgY29udGFpbmluZyBmaWx0ZXIgc2V0dGluZ3MuXG4gICAqIEByZXR1cm5zIC0gQSBjb25jYXRlbmF0ZWQgc3RyaW5nIG9mIGtleXMgd2l0aCB0cnVlIHZhbHVlcywgc2VwYXJhdGVkIGJ5IGNvbW1hcy5cbiAgICovXG4gIGV4dHJhY3RGaWx0ZXJQYXJhbXMob2JqOiBTZXZlcml0eUZpbHRlciB8IEFsYXJtU3RhdHVzU2V0dGluZ3MpOiBzdHJpbmcge1xuICAgIGlmICghb2JqKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhvYmopXG4gICAgICAuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHZhbHVlKVxuICAgICAgLm1hcCgoW2tleV0pID0+IGtleSlcbiAgICAgIC5qb2luKCcsJyk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhbiBpbmNvbWluZyByZWFsLXRpbWUgYWxhcm0gaGFzIGEgZGlmZmVyZW50IHN0YXR1cyB0aGFuIGFuIGV4aXN0aW5nIGFsYXJtLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiB0aGUgcHJvdmlkZWQgaW5jb21pbmcgcmVhbC10aW1lIGFsYXJtJ3Mgc3RhdHVzIGRpZmZlcnNcbiAgICogZnJvbSB0aGF0IG9mIGFuIGV4aXN0aW5nIGFsYXJtIHdpdGggdGhlIHNhbWUgSUQgaW4gdGhlIGdpdmVuIGFycmF5IG9mIGFsYXJtcy5cbiAgICpcbiAgICogQHBhcmFtIGV4aXN0aW5nQWxhcm1zIC0gVGhlIGFycmF5IG9mIGV4aXN0aW5nIGFsYXJtcy5cbiAgICogQHBhcmFtIGluY29taW5nUmVhbHRpbWVBbGFybSAtIFRoZSBpbmNvbWluZyByZWFsLXRpbWUgYWxhcm0gdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIC0gVHJ1ZSBpZiB0aGUgZXhpc3RpbmcgYWxhcm0ncyBzdGF0dXMgaGFzIGNoYW5nZWQsIG90aGVyd2lzZSBmYWxzZS5cbiAgICovXG4gIGhhc0V4aXN0aW5nQWxhcm1DaGFuZ2VkU3RhdHVzKGV4aXN0aW5nQWxhcm1zOiBJQWxhcm1bXSwgaW5jb21pbmdSZWFsdGltZUFsYXJtOiBJQWxhcm0pOiBib29sZWFuIHtcbiAgICBjb25zdCBleGlzdGluZ0FsYXJtID0gZXhpc3RpbmdBbGFybXMuZmluZChhbGFybSA9PiBhbGFybS5pZCA9PT0gaW5jb21pbmdSZWFsdGltZUFsYXJtLmlkKTtcbiAgICByZXR1cm4gISFleGlzdGluZ0FsYXJtICYmIGV4aXN0aW5nQWxhcm0uc3RhdHVzICE9PSBpbmNvbWluZ1JlYWx0aW1lQWxhcm0uc3RhdHVzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWxhcm1zIGJhc2VkIG9uIHRoZWlyIHN0YXR1cywgc2V2ZXJpdHksIGFuZCB0eXBlLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBkZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gYWxhcm0sIGlkZW50aWZpZWQgZWl0aGVyIGJ5IGEgbnVtZXJpYyBJRCBvciBhbiBgSUFsYXJtYCBvYmplY3QsXG4gICAqIG1hdGNoZXMgc3BlY2lmaWMgY3JpdGVyaWEgZGVmaW5lZCBpbiBgYWxhcm1zYCBhbmQgb3B0aW9uYWxseSBgY29uZmlnYC5cbiAgICpcbiAgICogQHBhcmFtIGFsYXJtIC0gVGhlIGFsYXJtIHRvIGNoZWNrLCByZXByZXNlbnRlZCBlaXRoZXIgYnkgYSBudW1lcmljIElEIG9yIGFuIGBJQWxhcm1gIG9iamVjdC5cbiAgICogQHBhcmFtIGFsYXJtcyAtIEFuIGFycmF5IG9mIGBJQWxhcm1gIG9iamVjdHMgYWdhaW5zdCB3aGljaCB0aGUgZ2l2ZW4gYWxhcm0gaXMgZXZhbHVhdGVkLlxuICAgKiBAcGFyYW0gY29uZmlnIC0gT3B0aW9uYWwuIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBhbGFybSBsaXN0IHdpZGdldCwgdXNlZCB0byBkZWZpbmUgYWRkaXRpb25hbFxuICAgKiAgICAgICAgICAgICAgICAgZmlsdGVyaW5nIGNyaXRlcmlhLlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFsYXJtIG1hdGNoZXMgdGhlIHNwZWNpZmllZCBjcml0ZXJpYTsgb3RoZXJ3aXNlLCBgZmFsc2VgLlxuICAgKiAgICAgICAgICBJZiBgYWxhcm1gIGlzIGEgbnVtYmVyLCBpdCBhbHdheXMgcmV0dXJucyBgZmFsc2VgLlxuICAgKiAgICAgICAgICBJZiBgY29uZmlnYCBpcyBub3QgcHJvdmlkZWQsIGl0IHVzZXMgYSBsZWdhY3kgZmlsdGVyIGZvciBjcml0aWNhbCBhbGFybXMuXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIC0gV2hlbiBgYWxhcm1gIGlzIGEgbnVtZXJpYyBJRCwgdGhlIGZ1bmN0aW9uIHJldHVybnMgYGZhbHNlYCBhcyBpdCBjYW5ub3QgbWF0Y2ggYWdhaW5zdCB0eXBlIGFuZCBzZXZlcml0eS5cbiAgICogLSBJZiBgY29uZmlnYCBpcyBub3QgcHJvdmlkZWQsIHRoZSBmdW5jdGlvbiBhc3N1bWVzIGEgbGVnYWN5IHNjZW5hcmlvIGZvciBmaWx0ZXJpbmcgYWxsIGNyaXRpY2FsIGFsYXJtcy5cbiAgICovXG4gIGZpbHRlckFsYXJtc0J5U3RhdHVzU2V2ZXJpdHlBbmRUeXBlKFxuICAgIGFsYXJtOiBudW1iZXIgfCBJQWxhcm0sXG4gICAgYWxhcm1zOiBJQWxhcm1bXSxcbiAgICBjb25maWc/OiBBbGFybUxpc3RXaWRnZXRDb25maWdcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiBhbGFybSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5pc0FsYXJtTWF0Y2hlZEJ5Q29uZmlnKGFsYXJtLCBhbGFybXMsIGNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhbGwgdmFsdWVzIGluIHRoZSBnaXZlbiBvYmplY3QgYXJlIGZhbHNlLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBldmVyeSB2YWx1ZSBpbiB0aGUgcHJvdmlkZWQgb2JqZWN0IHRvIHNlZSBpZiB0aGV5IGFyZSBhbGwgZmFsc2UuXG4gICAqXG4gICAqIEBwYXJhbSBvYmogLSBBbiBvYmplY3Qgd2l0aCBib29sZWFuIHZhbHVlcy5cbiAgICogQHJldHVybnMgLSBSZXR1cm5zIGB0cnVlYCBpZiBhbGwgdmFsdWVzIGluIHRoZSBvYmplY3QgYXJlIGZhbHNlLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICovXG4gIGFsbFZhbHVlc0ZhbHNlKG9iajogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhvYmopLmV2ZXJ5KHZhbHVlID0+ICF2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIHN0cmluZyBvZiBvcmRlciBwYXJhbWV0ZXJzIGZvciBhIHF1ZXJ5IGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgYWxhcm0gb3JkZXIuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gdGFrZXMgYW4gYWxhcm0gb3JkZXIgYW5kIG1hcHMgaXQgdG8gYSBjb3JyZXNwb25kaW5nIHNldCBvZiBvcmRlciBwYXJhbWV0ZXJzLlxuICAgKiBJdCBzdXBwb3J0cyBkaWZmZXJlbnQgb3JkZXJpbmcgdHlwZXMsIHN1Y2ggYXMgQllfQUNUSVZFLCBCWV9TRVZFUklUWSwgYW5kIEJZX0RBVEVfQVNDRU5ESU5HLlxuICAgKiBUaGUgb3JkZXIgcGFyYW1ldGVycyBhcmUgdXNlZCB0byBjb25zdHJ1Y3QgYSBxdWVyeSBzdHJpbmcgdGhhdCBkZXRlcm1pbmVzIHRoZSBvcmRlclxuICAgKiBpbiB3aGljaCBhbGFybXMgYXJlIHJldHJpZXZlZCBvciBkaXNwbGF5ZWQuXG4gICAqXG4gICAqIEBwYXJhbSBvcmRlciAtIFRoZSBzcGVjaWZpZWQgb3JkZXIgZm9yIHNvcnRpbmcgYWxhcm1zIChlLmcuLCBCWV9BQ1RJVkUpLlxuICAgKiBAcmV0dXJucyAtIEEgc3RyaW5nIG9mIG9yZGVyIHBhcmFtZXRlcnMgdG8gYmUgdXNlZCBpbiBhIHF1ZXJ5LCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIG9yZGVyIHR5cGUgaXMgdW5yZWNvZ25pemVkLlxuICAgKi9cbiAgZ2V0T3JkZXJQYXJhbWV0ZXJzKG9yZGVyOiBBbGFybU9yZGVyVHlwZSk6IHN0cmluZyB7XG4gICAgbGV0IG9yZGVyUGFyYW1zOiBzdHJpbmdbXTtcblxuICAgIHN3aXRjaCAob3JkZXIpIHtcbiAgICAgIGNhc2UgQUxBUk1fT1JERVJfVkFMVUVTLkJZX0FDVElWRTpcbiAgICAgICAgb3JkZXJQYXJhbXMgPSBbJ3N0YXR1cyBhc2MnLCAnc2V2ZXJpdHkgYXNjJywgJ3RpbWUuZGF0ZSBkZXNjJywgJ3RleHQgYXNjJ107XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkT3JkZXJQYXJhbWV0ZXJzKG9yZGVyUGFyYW1zKTtcbiAgICAgIGNhc2UgQUxBUk1fT1JERVJfVkFMVUVTLkJZX1NFVkVSSVRZOlxuICAgICAgICBvcmRlclBhcmFtcyA9IFsnc2V2ZXJpdHkgYXNjJywgJ3RpbWUuZGF0ZSBkZXNjJywgJ3RleHQgYXNjJ107XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkT3JkZXJQYXJhbWV0ZXJzKG9yZGVyUGFyYW1zKTtcbiAgICAgIGNhc2UgQUxBUk1fT1JERVJfVkFMVUVTLkJZX0RBVEVfQVNDRU5ESU5HOlxuICAgICAgICBvcmRlclBhcmFtcyA9IFsndGltZS5kYXRlIGFzYycsICd0ZXh0IGFzYyddO1xuICAgICAgICByZXR1cm4gdGhpcy5idWlsZE9yZGVyUGFyYW1ldGVycyhvcmRlclBhcmFtcyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBvcmRlclBhcmFtcyA9IFsndGltZS5kYXRlIGRlc2MnLCAndGV4dCBhc2MnXTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRPcmRlclBhcmFtZXRlcnMob3JkZXJQYXJhbXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGFuIGFsYXJtIGlzIG1hdGNoZWQgYnkgdGhlIHNwZWNpZmllZCB3aWRnZXQgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBldmFsdWF0ZXMgd2hldGhlciBhIGdpdmVuIGFsYXJtIHNob3VsZCBiZSBpbmNsdWRlZCBiYXNlZCBvbiB0aGUgc2V2ZXJpdHksXG4gICAqIHN0YXR1cywgYW5kIHR5cGUgZmlsdGVycyBkZWZpbmVkIGluIHRoZSBBbGFybUxpc3RXaWRnZXRDb25maWcuIEl0IGNoZWNrcyBpZiB0aGUgYWxhcm0nc1xuICAgKiBzZXZlcml0eSBhbmQgc3RhdHVzIG1hdGNoIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGFuZCBpZiB0aGUgYWxhcm0ncyB0eXBlIGlzIGluY2x1ZGVkXG4gICAqIGluIHRoZSBjb25maWd1cmF0aW9uJ3MgdHlwZXMgKGlmIHNwZWNpZmllZCkuXG4gICAqXG4gICAqIEBpZ25vcmVcbiAgICogQHBhcmFtIGFsYXJtIC0gVGhlIGFsYXJtIHRvIGV2YWx1YXRlLlxuICAgKiBAcGFyYW0gYWxhcm1zIC0gQW4gYXJyYXkgb2YgZXhpc3RpbmcgYWxhcm1zLCB1c2VkIGZvciBzdGF0dXMgbWF0Y2hpbmcuXG4gICAqIEBwYXJhbSBjb25maWcgLSBUaGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyB0byBtYXRjaCBhZ2FpbnN0LlxuICAgKiBAcmV0dXJucyAtIFJldHVybnMgYHRydWVgIGlmIHRoZSBhbGFybSBtYXRjaGVzIHRoZSBjb25maWd1cmF0aW9uIGNyaXRlcmlhOyBvdGhlcndpc2UsIGBmYWxzZWAuXG4gICAqL1xuICBpc0FsYXJtTWF0Y2hlZEJ5Q29uZmlnKGFsYXJtOiBJQWxhcm0sIGFsYXJtczogSUFsYXJtW10sIGNvbmZpZzogQWxhcm1MaXN0V2lkZ2V0Q29uZmlnKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNTZXZlcml0eU1hdGNoZWQgPSB0aGlzLmlzU2V2ZXJpdHlNYXRjaGluZyhhbGFybS5zZXZlcml0eSwgY29uZmlnKTtcbiAgICBjb25zdCBpc1N0YXR1c01hdGNoZWQgPSB0aGlzLmlzU3RhdHVzTWF0Y2hpbmcoYWxhcm0sIGFsYXJtcywgY29uZmlnKTtcbiAgICBjb25zdCBpc1R5cGVNYXRjaGVkID0gdGhpcy5pc1R5cGVzTWF0Y2hpbmcoY29uZmlnLCBhbGFybSk7XG5cbiAgICByZXR1cm4gaXNTZXZlcml0eU1hdGNoZWQgJiYgaXNTdGF0dXNNYXRjaGVkICYmIGlzVHlwZU1hdGNoZWQ7XG4gIH1cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgc2V2ZXJpdHkgb2YgYW4gYWxhcm0gbWF0Y2hlcyB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5nLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGRldGVybWluZXMgd2hldGhlciB0aGUgc2V2ZXJpdHkgb2YgYW4gYWxhcm0gaXMgaW5jbHVkZWQgaW4gdGhlXG4gICAqIHNldmVyaXR5IHNldHRpbmdzIGRlZmluZWQgaW4gdGhlIEFsYXJtTGlzdFdpZGdldENvbmZpZy5cbiAgICpcbiAgICogQGlnbm9yZVxuICAgKiBAcGFyYW0gc2V2ZXJpdHkgLSBUaGUgc2V2ZXJpdHkgb2YgdGhlIGFsYXJtIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gd2l0aCBzZXZlcml0eSBzZXR0aW5ncy5cbiAgICogQHJldHVybnMgLSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgYWxhcm0ncyBzZXZlcml0eSBtYXRjaGVzIHRoZSBjb25maWd1cmF0aW9uOyBvdGhlcndpc2UsIGBmYWxzZWAuXG4gICAqL1xuICBpc1NldmVyaXR5TWF0Y2hpbmcoc2V2ZXJpdHk6IFNldmVyaXR5VHlwZSwgY29uZmlnOiBBbGFybUxpc3RXaWRnZXRDb25maWcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFjb25maWcuc2V2ZXJpdGllc1tzZXZlcml0eV07XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGVzIGlmIHRoZSBzdGF0dXMgb2YgYW4gYWxhcm0gbWF0Y2hlcyB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5nIG9yIGhhcyBjaGFuZ2VkLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiB0aGUgc3RhdHVzIG9mIGFuIGFsYXJtIGlzIGluY2x1ZGVkIGluIHRoZSBzdGF0dXMgc2V0dGluZ3MgZGVmaW5lZCBpblxuICAgKiB0aGUgQWxhcm1MaXN0V2lkZ2V0Q29uZmlnLCBvciBpZiB0aGUgYWxhcm0ncyBzdGF0dXMgaGFzIGNoYW5nZWQgYmFzZWQgb24gdGhlIGV4aXN0aW5nIGFsYXJtcy5cbiAgICpcbiAgICogQGlnbm9yZVxuICAgKiBAcGFyYW0gYWxhcm0gLSBUaGUgYWxhcm0gd2hvc2Ugc3RhdHVzIGlzIHRvIGJlIGV2YWx1YXRlZC5cbiAgICogQHBhcmFtIGFsYXJtcyAtIEFuIGFycmF5IG9mIGV4aXN0aW5nIGFsYXJtcyB0byBjb21wYXJlIGFnYWluc3QgZm9yIHN0YXR1cyBjaGFuZ2VzLlxuICAgKiBAcGFyYW0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gd2l0aCBzdGF0dXMgc2V0dGluZ3MuXG4gICAqIEByZXR1cm5zIC0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFsYXJtJ3Mgc3RhdHVzIG1hdGNoZXMgb3IgaGFzIGNoYW5nZWQgYXMgcGVyIHRoZSBjb25maWd1cmF0aW9uOyBvdGhlcndpc2UsIGBmYWxzZWAuXG4gICAqL1xuICBpc1N0YXR1c01hdGNoaW5nKGFsYXJtOiBJQWxhcm0sIGFsYXJtczogSUFsYXJtW10sIGNvbmZpZzogQWxhcm1MaXN0V2lkZ2V0Q29uZmlnKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhY29uZmlnLnN0YXR1c1thbGFybS5zdGF0dXNdIHx8IHRoaXMuaGFzRXhpc3RpbmdBbGFybUNoYW5nZWRTdGF0dXMoYWxhcm1zLCBhbGFybSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjb25maWd1cmF0aW9uJ3MgdHlwZXMgYXJyYXkgY29udGFpbnMgb25seSBlbXB0eSBzdHJpbmcgb3IgaW5jbHVkZXMgYSBzcGVjaWZpYyBhbGFybSB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHdpdGggYSBgdHlwZXNgIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gYWxhcm0gLSBUaGUgYWxhcm0gb2JqZWN0IHdpdGggYSBgdHlwZWAgcHJvcGVydHkgdG8gY2hlY2sgYWdhaW5zdCB0aGUgY29uZmlnJ3MgdHlwZXMuXG4gICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgY29uZmlnJ3MgdHlwZXMgYXJyYXkgY29udGFpbnMgb25seSBlbXB0eSBzdHJpbmcgb3IgaW5jbHVkZXMgdGhlIGFsYXJtJ3MgdHlwZSwgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gICAqL1xuICBpc1R5cGVzTWF0Y2hpbmcoY29uZmlnOiBBbGFybUxpc3RXaWRnZXRDb25maWcsIGFsYXJtOiBJQWxhcm0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjb25maWcudHlwZXMpICYmIGNvbmZpZy50eXBlcy5sZW5ndGggPT09IDEgJiYgY29uZmlnLnR5cGVzWzBdID09PSAnJ1xuICAgICAgPyB0cnVlXG4gICAgICA6IGNvbmZpZy50eXBlcz8uaW5jbHVkZXMoYWxhcm0udHlwZSkgPz8gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIHF1ZXJ5IHN0cmluZyBmcm9tIGFuIGFycmF5IG9mIG9yZGVyIHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gdGFrZXMgYW4gYXJyYXkgb2Ygb3JkZXJpbmcgcGFyYW1ldGVycyBhbmQgY29uc3RydWN0cyBhIHF1ZXJ5IHN0cmluZ1xuICAgKiBmb3IgdXNlIGluIGFsYXJtIG9yZGVyaW5nIHF1ZXJpZXMuIFRoZSBwYXJhbWV0ZXJzIGFyZSBjb25jYXRlbmF0ZWQgaW50byBhIHNpbmdsZSBzdHJpbmcsXG4gICAqIHByZWZpeGVkIHdpdGggJyRvcmRlcmJ5PScuXG4gICAqXG4gICAqIEBpZ25vcmVcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIG9yZGVyUGFyYW1zIC0gVGhlIG9yZGVyIHBhcmFtZXRlcnMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHF1ZXJ5LlxuICAgKiBAcmV0dXJucyAtIEEgcXVlcnkgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgb3JkZXIgcGFyYW1ldGVycy5cbiAgICovXG4gIHByaXZhdGUgYnVpbGRPcmRlclBhcmFtZXRlcnMob3JkZXJQYXJhbXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCRvcmRlcmJ5PSR7b3JkZXJQYXJhbXMuam9pbignLCcpfWA7XG4gIH1cbn1cbiJdfQ==
|
|
344
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0td2lkZ2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi93aWRnZXRzL2ltcGxlbWVudGF0aW9ucy9hbGFybXMvYWxhcm0td2lkZ2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBR0wsV0FBVyxFQUVYLFFBQVEsRUFFUixlQUFlLEVBQ2hCLE1BQU0sYUFBYSxDQUFDO0FBR3JCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFDTCxrQkFBa0IsRUFJbEIsdUJBQXVCLEVBQ3hCLE1BQU0sMkJBQTJCLENBQUM7OztBQUVuQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFHcEMsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUFHLENBQUM7SUFFNUQ7Ozs7Ozs7O09BUUc7SUFDSCx5QkFBeUIsQ0FDdkIsSUFBbUQ7UUFFbkQsT0FBTyxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCwwQkFBMEIsQ0FBQyxpQkFBMEIsRUFBRSxRQUFpQjtRQUN0RSxPQUFPO1lBQ0wsS0FBSyxFQUFFLGtCQUFrQixDQUFDLFNBQVM7WUFDbkMsVUFBVSxFQUNSLFFBQVEsS0FBSyx1QkFBdUI7Z0JBQ2xDLENBQUMsQ0FBRTtvQkFDQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJO29CQUN6QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJO29CQUN0QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxJ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QUFhLEVBQUUsTUFBZ0IsRUFBRSxNQUE2QjtRQUM3RSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxlQUFlLENBQUMsTUFBNkIsRUFBRSxLQUFhO1FBQzFELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUN2RixDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNLLG9CQUFvQixDQUFDLFdBQXFCO1FBQ2hELE9BQU8sWUFBWSxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDN0MsQ0FBQzs4R0F0V1Usa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FETCxNQUFNOzsyRkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFsYXJtUXVlcnlGaWx0ZXIsXG4gIEFsYXJtU3RhdHVzU2V0dGluZ3MsXG4gIEFsYXJtU3RhdHVzLFxuICBJQWxhcm0sXG4gIFNldmVyaXR5LFxuICBTZXZlcml0eUZpbHRlcixcbiAgU0VWRVJJVFlfTEFCRUxTXG59IGZyb20gJ0BjOHkvY2xpZW50JztcblxuaW1wb3J0IHsgU2V2ZXJpdHlTZXR0aW5ncywgU2V2ZXJpdHlUeXBlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxhcm1zVmlld1NlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FsYXJtcyc7XG5pbXBvcnQge1xuICBBTEFSTV9PUkRFUl9WQUxVRVMsXG4gIEFsYXJtTGlzdFdpZGdldENvbmZpZyxcbiAgQWxhcm1PcmRlclR5cGUsXG4gIExlZ2FjeUFsYXJtTGlzdENvbmZpZyxcbiAgUkVDRU5UX0FMQVJNU19XSURHRVRfSURcbn0gZnJvbSAnLi9hbGFybS1saXN0LXdpZGdldC5tb2RlbCc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BBR0VfU0laRSA9IDIwO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFsYXJtV2lkZ2V0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWxhcm1zVmlld1NlcnZpY2U6IEFsYXJtc1ZpZXdTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIHByb3ZpZGVkIGRhdGEgZm9sbG93cyB0aGUgTGVnYWN5QWxhcm1Db25maWcgc3RydWN0dXJlLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGRldGVybWluZXMgaWYgYSBnaXZlbiBkYXRhIG9iamVjdCBpcyBhbiBpbnN0YW5jZSBvZiBMZWdhY3lBbGFybUNvbmZpZ1xuICAgKiBieSBjaGVja2luZyBmb3IgdGhlIHByZXNlbmNlIG9mIHRoZSAnb3B0aW9ucycgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gICAqIEByZXR1cm5zIC0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGRhdGEgb2JqZWN0IGlzIGEgTGVnYWN5QWxhcm1Db25maWcsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgKi9cbiAgaXNPbGRBbGFybUNvbmZpZ1N0cnVjdHVyZShcbiAgICBkYXRhOiBMZWdhY3lBbGFybUxpc3RDb25maWcgfCBBbGFybUxpc3RXaWRnZXRDb25maWdcbiAgKTogZGF0YSBpcyBMZWdhY3lBbGFybUxpc3RDb25maWcge1xuICAgIHJldHVybiBkYXRhICE9PSBudWxsICYmIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiAnb3B0aW9ucycgaW4gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHByZWRlZmluZWQgd2lkZ2V0IGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGEgbmV3IGNvbmZpZ3VyYXRpb24gb2JqZWN0IGJhc2VkIG9uXG4gICAqIGEgd2lkZ2V0cyBJRCAodGhhdCBkZXRlcm1pbmVzIGlmIGlzIGEgbGVnYWN5IFJlY2VudCBvciBDcml0aWNhbCBhbGFybXMgd2lkZ2V0KS5cbiAgICpcbiAgICogQHBhcmFtIGlzSW50ZXJ2YWxSZWZyZXNoIC0gZGV0ZXJtaW5lcyBhIHR5cGUgb2YgYSByZWZyZXNoLlxuICAgKiBAcGFyYW0gd2lkZ2V0SWQgLSBkZXRlcm1pbmVzIGlmIGEgY29uZmlnIHNob3VsZCBiZSBkb25lIGZvciBSZWNlbnQgb3IgQ3JpdGljYWwgYWxhcm1zIHdpZGdldC5cbiAgICogQHJldHVybnMgVGhlIG5ldywgcHJlZGVmaW5lZCBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICovXG4gIGdldFByZWRlZmluZWRDb25maWd1cmF0aW9uKGlzSW50ZXJ2YWxSZWZyZXNoOiBib29sZWFuLCB3aWRnZXRJZD86IHN0cmluZyk6IEFsYXJtTGlzdFdpZGdldENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9yZGVyOiBBTEFSTV9PUkRFUl9WQUxVRVMuQllfQUNUSVZFLFxuICAgICAgc2V2ZXJpdGllczpcbiAgICAgICAgd2lkZ2V0SWQgPT09IFJFQ0VOVF9BTEFSTVNfV0lER0VUX0lEXG4gICAgICAgICAgPyAoe1xuICAgICAgICAgICAgICBbU2V2ZXJpdHkuQ1JJVElDQUxdOiB0cnVlLFxuICAgICAgICAgICAgICBbU2V2ZXJpdHkuTUFKT1JdOiB0cnVlLFxuICAgICAgICAgICAgICBbU2V2ZXJpdHkuTUlOT1JdOiB0cnVlLFxuICAgICAgICAgICAgICBbU2V2ZXJpdHkuV0FSTklOR106IHRydWVcbiAgICAgICAgICAgIH0gYXMgU2V2ZXJpdHlTZXR0aW5ncylcbiAgICAgICAgICA6ICh7XG4gICAgICAgICAgICAgIFtTZXZlcml0eS5DUklUSUNBTF06IHRydWUsXG4gICAgICAgICAgICAgIFtTZXZlcml0eS5NQUpPUl06IGZhbHNlLFxuICAgICAgICAgICAgICBbU2V2ZXJpdHkuTUlOT1JdOiBmYWxzZSxcbiAgICAgICAgICAgICAgW1NldmVyaXR5LldBUk5JTkddOiBmYWxzZVxuICAgICAgICAgICAgfSBhcyBTZXZlcml0eVNldHRpbmdzKSxcbiAgICAgIHN0YXR1czpcbiAgICAgICAgd2lkZ2V0SWQgPT09IFJFQ0VOVF9BTEFSTVNfV0lER0VUX0lEXG4gICAgICAgICAgPyAoe1xuICAgICAgICAgICAgICBbQWxhcm1TdGF0dXMuQUNLTk9XTEVER0VEXTogdHJ1ZSxcbiAgICAgICAgICAgICAgW0FsYXJtU3RhdHVzLkFDVElWRV06IHRydWUsXG4gICAgICAgICAgICAgIFtBbGFybVN0YXR1cy5DTEVBUkVEXTogdHJ1ZVxuICAgICAgICAgICAgfSBhcyBBbGFybVN0YXR1c1NldHRpbmdzKVxuICAgICAgICAgIDogKHtcbiAgICAgICAgICAgICAgW0FsYXJtU3RhdHVzLkFDS05PV0xFREdFRF06IGZhbHNlLFxuICAgICAgICAgICAgICBbQWxhcm1TdGF0dXMuQUNUSVZFXTogdHJ1ZSxcbiAgICAgICAgICAgICAgW0FsYXJtU3RhdHVzLkNMRUFSRURdOiBmYWxzZVxuICAgICAgICAgICAgfSBhcyBBbGFybVN0YXR1c1NldHRpbmdzKSxcbiAgICAgIHR5cGVzOiBbJyddLFxuICAgICAgaXNSZWFsdGltZTogIWlzSW50ZXJ2YWxSZWZyZXNoLFxuICAgICAgaXNBdXRvUmVmcmVzaEVuYWJsZWQ6IHRydWUsXG4gICAgICByZWZyZXNoSW50ZXJ2YWw6IGlzSW50ZXJ2YWxSZWZyZXNoID8gdGhpcy5hbGFybXNWaWV3U2VydmljZS5ERUZBVUxUX0lOVEVSVkFMX1ZBTFVFIDogdW5kZWZpbmVkXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1zIGEgTGVnYWN5QWxhcm1Db25maWcgb2JqZWN0IGludG8gYW4gQWxhcm1MaXN0V2lkZ2V0Q29uZmlnIG9iamVjdC5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBtYXBzIHRoZSBwcm9wZXJ0aWVzIGZyb20gYW4gb2xkIGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIChMZWdhY3lBbGFybUNvbmZpZylcbiAgICogdG8gYSBuZXcgY29uZmlndXJhdGlvbiBzdHJ1Y3R1cmUgKEFsYXJtTGlzdFdpZGdldENvbmZpZykuXG4gICAqXG4gICAqIEBwYXJhbSBvbGRDb25maWcgLSBUaGUgb2xkIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIGJlIHRyYW5zZm9ybWVkLlxuICAgKiBAcmV0dXJucyAtIFRoZSBuZXcgY29uZmlndXJhdGlvbiBvYmplY3QgbWFwcGVkIGZyb20gdGhlIG9sZCBvbmUuXG4gICAqL1xuICBtYXBUb05ld0NvbmZpZ1N0cnVjdHVyZShcbiAgICBvbGRDb25maWc6IExlZ2FjeUFsYXJtTGlzdENvbmZpZyxcbiAgICBpc0ludGVydmFsUmVmcmVzaDogYm9vbGVhblxuICApOiBBbGFybUxpc3RXaWRnZXRDb25maWcge1xuICAgIGNvbnN0IG9yZGVyOiBBbGFybU9yZGVyVHlwZSA9XG4gICAgICBvbGRDb25maWcub3B0aW9ucy5vcmRlck1vZGUgPT09ICdBQ1RJVkVfRklSU1QnXG4gICAgICAgID8gQUxBUk1fT1JERVJfVkFMVUVTLkJZX0FDVElWRVxuICAgICAgICA6IEFMQVJNX09SREVSX1ZBTFVFUy5CWV9TRVZFUklUWTtcblxuICAgIGlmICghdGhpcy5pc0NvbnRhaW5pbmdBbGxTZXZlcml0eVR5cGVzKG9sZENvbmZpZy5vcHRpb25zLnNldmVyaXR5KSkge1xuICAgICAgb2xkQ29uZmlnLm9wdGlvbnMuc2V2ZXJpdHkgPSB0aGlzLmFkZEFsbE1pc3NpbmdTZXZlcml0eVR5cGVzKG9sZENvbmZpZy5vcHRpb25zLnNldmVyaXR5KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3JkZXI6IG9yZGVyLFxuICAgICAgaXNSZWFsdGltZTogb2xkQ29uZmlnLnJlYWx0aW1lLFxuICAgICAgZGV2aWNlOiBvbGRDb25maWcuZGV2aWNlLFxuICAgICAgc2hvd0FsYXJtc0ZvckNoaWxkcmVuOiB0cnVlLFxuICAgICAgc2V2ZXJpdGllczogb2xkQ29uZmlnLm9wdGlvbnMuc2V2ZXJpdHksXG4gICAgICBzdGF0dXM6IHRoaXMuYWxsVmFsdWVzRmFsc2Uob2xkQ29uZmlnLm9wdGlvbnMuc3RhdHVzKVxuICAgICAgICA/ICh7XG4gICAgICAgICAgICBbQWxhcm1TdGF0dXMuQUNLTk9XTEVER0VEXTogdHJ1ZSxcbiAgICAgICAgICAgIFtBbGFybVN0YXR1cy5BQ1RJVkVdOiB0cnVlLFxuICAgICAgICAgICAgW0FsYXJtU3RhdHVzLkNMRUFSRURdOiB0cnVlXG4gICAgICAgICAgfSBhcyBBbGFybVN0YXR1c1NldHRpbmdzKVxuICAgICAgICA6IG9sZENvbmZpZy5vcHRpb25zLnN0YXR1cyxcbiAgICAgIHR5cGVzOiBvbGRDb25maWcub3B0aW9ucy50eXBlcz8ubGVuZ3RoID8gb2xkQ29uZmlnLm9wdGlvbnMudHlwZXMgOiBbJyddLFxuICAgICAgaXNBdXRvUmVmcmVzaEVuYWJsZWQ6IHRydWUsXG4gICAgICByZWZyZXNoSW50ZXJ2YWw6IGlzSW50ZXJ2YWxSZWZyZXNoID8gdGhpcy5hbGFybXNWaWV3U2VydmljZS5ERUZBVUxUX0lOVEVSVkFMX1ZBTFVFIDogdW5kZWZpbmVkXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIHByb3ZpZGVkIHNldmVyaXR5IG9iamVjdCBjb250YWlucyBhbGwgdGhlIHByZWRlZmluZWQgc2V2ZXJpdHkgdHlwZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzZXZlcml0eSAtIEEgcmVjb3JkIG9iamVjdCB3aGVyZSBrZXlzIGFyZSBzZXZlcml0eSB0eXBlIHN0cmluZ3MgYW5kIHZhbHVlcyBhcmUgYm9vbGVhbi5cbiAgICogICAgICAgICAgICAgICAgIC0gVGhpcyBvYmplY3QgaXMgY2hlY2tlZCBhZ2FpbnN0IHRoZSBwcmVkZWZpbmVkIHNldmVyaXR5IHR5cGVzLlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgYWxsIHByZWRlZmluZWQgc2V2ZXJpdHkgdHlwZXMgYXJlIHByZXNlbnQgaW4gdGhlIHNldmVyaXR5IG9iamVjdDsgb3RoZXJ3aXNlLCBgZmFsc2VgLlxuICAgKi9cbiAgaXNDb250YWluaW5nQWxsU2V2ZXJpdHlUeXBlcyhzZXZlcml0eTogU2V2ZXJpdHlGaWx0ZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoU0VWRVJJVFlfTEFCRUxTKS5ldmVyeShzZXZlcml0eVR5cGUgPT4gc2V2ZXJpdHlUeXBlIGluIHNldmVyaXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFueSBtaXNzaW5nIHNldmVyaXR5IHR5cGVzIHRvIHRoZSBwcm92aWRlZCBzZXZlcml0eSBvYmplY3Qgd2l0aCBhIGRlZmF1bHQgdmFsdWUgb2YgYGZhbHNlYC5cbiAgICpcbiAgICogQHBhcmFtIHNldmVyaXR5IC0gQSByZWNvcmQgb2JqZWN0IHdoZXJlIGtleXMgYXJlIHNldmVyaXR5IHR5cGUgc3RyaW5ncyBhbmQgdmFsdWVzIGFyZSBib29sZWFuLlxuICAgKiAgICAgICAgICAgICAgICAgLSBNaXNzaW5nIHNldmVyaXR5IHR5cGVzIHdpbGwgYmUgYWRkZWQgdG8gdGhpcyBvYmplY3QuXG4gICAqIEByZXR1cm5zIFRoZSBtb2RpZmllZCBzZXZlcml0eSBvYmplY3QsIHdoaWNoIGluY2x1ZGVzIGFsbCBwcmVkZWZpbmVkIHNldmVyaXR5IHR5cGVzLCBhZGRpbmcgYW55XG4gICAqICAgICAgICAgIHRoYXQgd2VyZSBtaXNzaW5nIHdpdGggYSB2YWx1ZSBvZiBgZmFsc2VgLlxuICAgKi9cbiAgYWRkQWxsTWlzc2luZ1NldmVyaXR5VHlwZXMoc2V2ZXJpdHk6IFNldmVyaXR5RmlsdGVyKTogU2V2ZXJpdHlGaWx0ZXIge1xuICAgIE9iamVjdC5rZXlzKFNFVkVSSVRZX0xBQkVMUykuZm9yRWFjaChzZXZlcml0eVR5cGUgPT4ge1xuICAgICAgaWYgKCEoc2V2ZXJpdHlUeXBlIGluIHNldmVyaXR5KSkge1xuICAgICAgICBzZXZlcml0eVtzZXZlcml0eVR5cGVdID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHNldmVyaXR5O1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcHMgYW4gQWxhcm1MaXN0V2lkZ2V0Q29uZmlnIG9iamVjdCB0byBhbiBBbGFybVF1ZXJ5RmlsdGVyLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIHRoZSBwcm92aWRlZCBBbGFybUxpc3RXaWRnZXRDb25maWcgaW50byBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgcXVlcnlpbmcgYWxhcm1zLlxuICAgKlxuICAgKiBAcGFyYW0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgYWxhcm0gbGlzdCB3aWRnZXQuXG4gICAqIEBwYXJhbSBwYWdlU2l6ZSAtIE9wdGlvbmFsIG51bWJlciBzcGVjaWZ5aW5nIHRoZSBzaXplIG9mIHRoZSBwYWdlcyB0byBiZSByZXR1cm5lZCBpbiB0aGUgcXVlcnkuXG4gICAqIEByZXR1cm5zIC0gVGhlIHF1ZXJ5IGZpbHRlciBvYmplY3QgY29uc3RydWN0ZWQgZnJvbSB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIG1hcENvbmZpZ1RvUXVlcnlGaWx0ZXIoY29uZmlnOiBBbGFybUxpc3RXaWRnZXRDb25maWcsIHBhZ2VTaXplPzogbnVtYmVyKTogQWxhcm1RdWVyeUZpbHRlciB7XG4gICAgY29uc3QgZmlsdGVyOiBBbGFybVF1ZXJ5RmlsdGVyID0ge1xuICAgICAgcGFnZVNpemU6IHBhZ2VTaXplIHx8IERFRkFVTFRfUEFHRV9TSVpFLFxuICAgICAgcXVlcnk6IHRoaXMuZ2V0T3JkZXJQYXJhbWV0ZXJzKGNvbmZpZy5vcmRlciksXG4gICAgICBzZXZlcml0eTogdGhpcy5leHRyYWN0RmlsdGVyUGFyYW1zKGNvbmZpZy5zZXZlcml0aWVzIHx8IHt9KSxcbiAgICAgIHN0YXR1czogdGhpcy5leHRyYWN0RmlsdGVyUGFyYW1zKGNvbmZpZy5zdGF0dXMgfHwge30pLFxuICAgICAgdHlwZTogKGNvbmZpZy50eXBlcyB8fCBbXSkuam9pbignLCcpLFxuICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWVcbiAgICB9O1xuICAgIGlmIChjb25maWcuZGF0ZUZpbHRlcikge1xuICAgICAgZmlsdGVyLmxhc3RVcGRhdGVkRnJvbSA9XG4gICAgICAgIHR5cGVvZiBjb25maWcuZGF0ZUZpbHRlclswXSA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IGNvbmZpZy5kYXRlRmlsdGVyWzBdXG4gICAgICAgICAgOiBjb25maWcuZGF0ZUZpbHRlclswXS50b0lTT1N0cmluZygpO1xuICAgICAgZmlsdGVyLmNyZWF0ZWRUbyA9XG4gICAgICAgIHR5cGVvZiBjb25maWcuZGF0ZUZpbHRlclsxXSA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IGNvbmZpZy5kYXRlRmlsdGVyWzFdXG4gICAgICAgICAgOiBjb25maWcuZGF0ZUZpbHRlclsxXS50b0lTT1N0cmluZygpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmRldmljZSkge1xuICAgICAgZmlsdGVyLnNvdXJjZSA9IGNvbmZpZy5kZXZpY2UuaWQ7XG4gICAgICBmaWx0ZXIud2l0aFNvdXJjZUFzc2V0cyA9IHRydWU7XG4gICAgICBmaWx0ZXIud2l0aFNvdXJjZURldmljZXMgPSB0cnVlO1xuICAgICAgZmlsdGVyLndpdGhTb3VyY2VBc3NldHMgPSBjb25maWcuc2hvd0FsYXJtc0ZvckNoaWxkcmVuID8/IHRydWU7XG4gICAgICBmaWx0ZXIud2l0aFNvdXJjZURldmljZXMgPSBjb25maWcuc2hvd0FsYXJtc0ZvckNoaWxkcmVuID8/IHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmaWx0ZXI7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgYW5kIGNvbmNhdGVuYXRlcyBmaWx0ZXIgcGFyYW1ldGVycyBmcm9tIGEgZ2l2ZW4gb2JqZWN0LlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHRha2VzIGFuIG9iamVjdCBjb250YWluaW5nIGZpbHRlciBzZXR0aW5ncyAoZWl0aGVyIFNldmVyaXR5RmlsdGVyXG4gICAqIG9yIEFsYXJtU3RhdHVzU2V0dGluZ3MpIGFuZCByZXR1cm5zIGEgc3RyaW5nIG9mIGFsbCBrZXlzIHdoZXJlIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGlzIHRydWUuXG4gICAqIElmIHRoZSBvYmplY3QgaXMgZW1wdHkgb3IgbnVsbCwgYW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkLlxuICAgKlxuICAgKiBAcGFyYW0gb2JqIC0gVGhlIG9iamVjdCBjb250YWluaW5nIGZpbHRlciBzZXR0aW5ncy5cbiAgICogQHJldHVybnMgLSBBIGNvbmNhdGVuYXRlZCBzdHJpbmcgb2Yga2V5cyB3aXRoIHRydWUgdmFsdWVzLCBzZXBhcmF0ZWQgYnkgY29tbWFzLlxuICAgKi9cbiAgZXh0cmFjdEZpbHRlclBhcmFtcyhvYmo6IFNldmVyaXR5RmlsdGVyIHwgQWxhcm1TdGF0dXNTZXR0aW5ncyk6IHN0cmluZyB7XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iailcbiAgICAgIC5maWx0ZXIoKFssIHZhbHVlXSkgPT4gdmFsdWUpXG4gICAgICAubWFwKChba2V5XSkgPT4ga2V5KVxuICAgICAgLmpvaW4oJywnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGFuIGluY29taW5nIHJlYWwtdGltZSBhbGFybSBoYXMgYSBkaWZmZXJlbnQgc3RhdHVzIHRoYW4gYW4gZXhpc3RpbmcgYWxhcm0uXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHRoZSBwcm92aWRlZCBpbmNvbWluZyByZWFsLXRpbWUgYWxhcm0ncyBzdGF0dXMgZGlmZmVyc1xuICAgKiBmcm9tIHRoYXQgb2YgYW4gZXhpc3RpbmcgYWxhcm0gd2l0aCB0aGUgc2FtZSBJRCBpbiB0aGUgZ2l2ZW4gYXJyYXkgb2YgYWxhcm1zLlxuICAgKlxuICAgKiBAcGFyYW0gZXhpc3RpbmdBbGFybXMgLSBUaGUgYXJyYXkgb2YgZXhpc3RpbmcgYWxhcm1zLlxuICAgKiBAcGFyYW0gaW5jb21pbmdSZWFsdGltZUFsYXJtIC0gVGhlIGluY29taW5nIHJlYWwtdGltZSBhbGFybSB0byBjaGVjay5cbiAgICogQHJldHVybnMgLSBUcnVlIGlmIHRoZSBleGlzdGluZyBhbGFybSdzIHN0YXR1cyBoYXMgY2hhbmdlZCwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgKi9cbiAgaGFzRXhpc3RpbmdBbGFybUNoYW5nZWRTdGF0dXMoZXhpc3RpbmdBbGFybXM6IElBbGFybVtdLCBpbmNvbWluZ1JlYWx0aW1lQWxhcm06IElBbGFybSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGV4aXN0aW5nQWxhcm0gPSBleGlzdGluZ0FsYXJtcy5maW5kKGFsYXJtID0+IGFsYXJtLmlkID09PSBpbmNvbWluZ1JlYWx0aW1lQWxhcm0uaWQpO1xuICAgIHJldHVybiAhIWV4aXN0aW5nQWxhcm0gJiYgZXhpc3RpbmdBbGFybS5zdGF0dXMgIT09IGluY29taW5nUmVhbHRpbWVBbGFybS5zdGF0dXM7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhbGFybXMgYmFzZWQgb24gdGhlaXIgc3RhdHVzLCBzZXZlcml0eSwgYW5kIHR5cGUuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGRldGVybWluZXMgaWYgYSBnaXZlbiBhbGFybSwgaWRlbnRpZmllZCBlaXRoZXIgYnkgYSBudW1lcmljIElEIG9yIGFuIGBJQWxhcm1gIG9iamVjdCxcbiAgICogbWF0Y2hlcyBzcGVjaWZpYyBjcml0ZXJpYSBkZWZpbmVkIGluIGBhbGFybXNgIGFuZCBvcHRpb25hbGx5IGBjb25maWdgLlxuICAgKlxuICAgKiBAcGFyYW0gYWxhcm0gLSBUaGUgYWxhcm0gdG8gY2hlY2ssIHJlcHJlc2VudGVkIGVpdGhlciBieSBhIG51bWVyaWMgSUQgb3IgYW4gYElBbGFybWAgb2JqZWN0LlxuICAgKiBAcGFyYW0gYWxhcm1zIC0gQW4gYXJyYXkgb2YgYElBbGFybWAgb2JqZWN0cyBhZ2FpbnN0IHdoaWNoIHRoZSBnaXZlbiBhbGFybSBpcyBldmFsdWF0ZWQuXG4gICAqIEBwYXJhbSBjb25maWcgLSBPcHRpb25hbC4gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGFsYXJtIGxpc3Qgd2lkZ2V0LCB1c2VkIHRvIGRlZmluZSBhZGRpdGlvbmFsXG4gICAqICAgICAgICAgICAgICAgICBmaWx0ZXJpbmcgY3JpdGVyaWEuXG4gICAqXG4gICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgYWxhcm0gbWF0Y2hlcyB0aGUgc3BlY2lmaWVkIGNyaXRlcmlhOyBvdGhlcndpc2UsIGBmYWxzZWAuXG4gICAqICAgICAgICAgIElmIGBhbGFybWAgaXMgYSBudW1iZXIsIGl0IGFsd2F5cyByZXR1cm5zIGBmYWxzZWAuXG4gICAqICAgICAgICAgIElmIGBjb25maWdgIGlzIG5vdCBwcm92aWRlZCwgaXQgdXNlcyBhIGxlZ2FjeSBmaWx0ZXIgZm9yIGNyaXRpY2FsIGFsYXJtcy5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogLSBXaGVuIGBhbGFybWAgaXMgYSBudW1lcmljIElELCB0aGUgZnVuY3Rpb24gcmV0dXJucyBgZmFsc2VgIGFzIGl0IGNhbm5vdCBtYXRjaCBhZ2FpbnN0IHR5cGUgYW5kIHNldmVyaXR5LlxuICAgKiAtIElmIGBjb25maWdgIGlzIG5vdCBwcm92aWRlZCwgdGhlIGZ1bmN0aW9uIGFzc3VtZXMgYSBsZWdhY3kgc2NlbmFyaW8gZm9yIGZpbHRlcmluZyBhbGwgY3JpdGljYWwgYWxhcm1zLlxuICAgKi9cbiAgZmlsdGVyQWxhcm1zQnlTdGF0dXNTZXZlcml0eUFuZFR5cGUoXG4gICAgYWxhcm06IG51bWJlciB8IElBbGFybSxcbiAgICBhbGFybXM6IElBbGFybVtdLFxuICAgIGNvbmZpZz86IEFsYXJtTGlzdFdpZGdldENvbmZpZ1xuICApOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIGFsYXJtID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmlzQWxhcm1NYXRjaGVkQnlDb25maWcoYWxhcm0sIGFsYXJtcywgY29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGFsbCB2YWx1ZXMgaW4gdGhlIGdpdmVuIG9iamVjdCBhcmUgZmFsc2UuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGV2ZXJ5IHZhbHVlIGluIHRoZSBwcm92aWRlZCBvYmplY3QgdG8gc2VlIGlmIHRoZXkgYXJlIGFsbCBmYWxzZS5cbiAgICpcbiAgICogQHBhcmFtIG9iaiAtIEFuIG9iamVjdCB3aXRoIGJvb2xlYW4gdmFsdWVzLlxuICAgKiBAcmV0dXJucyAtIFJldHVybnMgYHRydWVgIGlmIGFsbCB2YWx1ZXMgaW4gdGhlIG9iamVjdCBhcmUgZmFsc2UsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgKi9cbiAgYWxsVmFsdWVzRmFsc2Uob2JqOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKG9iaikuZXZlcnkodmFsdWUgPT4gIXZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgc3RyaW5nIG9mIG9yZGVyIHBhcmFtZXRlcnMgZm9yIGEgcXVlcnkgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBhbGFybSBvcmRlci5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiB0YWtlcyBhbiBhbGFybSBvcmRlciBhbmQgbWFwcyBpdCB0byBhIGNvcnJlc3BvbmRpbmcgc2V0IG9mIG9yZGVyIHBhcmFtZXRlcnMuXG4gICAqIEl0IHN1cHBvcnRzIGRpZmZlcmVudCBvcmRlcmluZyB0eXBlcywgc3VjaCBhcyBCWV9BQ1RJVkUsIEJZX1NFVkVSSVRZLCBhbmQgQllfREFURV9BU0NFTkRJTkcuXG4gICAqIFRoZSBvcmRlciBwYXJhbWV0ZXJzIGFyZSB1c2VkIHRvIGNvbnN0cnVjdCBhIHF1ZXJ5IHN0cmluZyB0aGF0IGRldGVybWluZXMgdGhlIG9yZGVyXG4gICAqIGluIHdoaWNoIGFsYXJtcyBhcmUgcmV0cmlldmVkIG9yIGRpc3BsYXllZC5cbiAgICpcbiAgICogQHBhcmFtIG9yZGVyIC0gVGhlIHNwZWNpZmllZCBvcmRlciBmb3Igc29ydGluZyBhbGFybXMgKGUuZy4sIEJZX0FDVElWRSkuXG4gICAqIEByZXR1cm5zIC0gQSBzdHJpbmcgb2Ygb3JkZXIgcGFyYW1ldGVycyB0byBiZSB1c2VkIGluIGEgcXVlcnksIG9yIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgb3JkZXIgdHlwZSBpcyB1bnJlY29nbml6ZWQuXG4gICAqL1xuICBnZXRPcmRlclBhcmFtZXRlcnMob3JkZXI6IEFsYXJtT3JkZXJUeXBlKTogc3RyaW5nIHtcbiAgICBsZXQgb3JkZXJQYXJhbXM6IHN0cmluZ1tdO1xuXG4gICAgc3dpdGNoIChvcmRlcikge1xuICAgICAgY2FzZSBBTEFSTV9PUkRFUl9WQUxVRVMuQllfQUNUSVZFOlxuICAgICAgICBvcmRlclBhcmFtcyA9IFsnc3RhdHVzIGFzYycsICdzZXZlcml0eSBhc2MnLCAndGltZS5kYXRlIGRlc2MnLCAndGV4dCBhc2MnXTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRPcmRlclBhcmFtZXRlcnMob3JkZXJQYXJhbXMpO1xuICAgICAgY2FzZSBBTEFSTV9PUkRFUl9WQUxVRVMuQllfU0VWRVJJVFk6XG4gICAgICAgIG9yZGVyUGFyYW1zID0gWydzZXZlcml0eSBhc2MnLCAndGltZS5kYXRlIGRlc2MnLCAndGV4dCBhc2MnXTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRPcmRlclBhcmFtZXRlcnMob3JkZXJQYXJhbXMpO1xuICAgICAgY2FzZSBBTEFSTV9PUkRFUl9WQUxVRVMuQllfREFURV9BU0NFTkRJTkc6XG4gICAgICAgIG9yZGVyUGFyYW1zID0gWyd0aW1lLmRhdGUgYXNjJywgJ3RleHQgYXNjJ107XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkT3JkZXJQYXJhbWV0ZXJzKG9yZGVyUGFyYW1zKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIG9yZGVyUGFyYW1zID0gWyd0aW1lLmRhdGUgZGVzYycsICd0ZXh0IGFzYyddO1xuICAgICAgICByZXR1cm4gdGhpcy5idWlsZE9yZGVyUGFyYW1ldGVycyhvcmRlclBhcmFtcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYW4gYWxhcm0gaXMgbWF0Y2hlZCBieSB0aGUgc3BlY2lmaWVkIHdpZGdldCBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGV2YWx1YXRlcyB3aGV0aGVyIGEgZ2l2ZW4gYWxhcm0gc2hvdWxkIGJlIGluY2x1ZGVkIGJhc2VkIG9uIHRoZSBzZXZlcml0eSxcbiAgICogc3RhdHVzLCBhbmQgdHlwZSBmaWx0ZXJzIGRlZmluZWQgaW4gdGhlIEFsYXJtTGlzdFdpZGdldENvbmZpZy4gSXQgY2hlY2tzIGlmIHRoZSBhbGFybSdzXG4gICAqIHNldmVyaXR5IGFuZCBzdGF0dXMgbWF0Y2ggdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgYW5kIGlmIHRoZSBhbGFybSdzIHR5cGUgaXMgaW5jbHVkZWRcbiAgICogaW4gdGhlIGNvbmZpZ3VyYXRpb24ncyB0eXBlcyAoaWYgc3BlY2lmaWVkKS5cbiAgICpcbiAgICogQGlnbm9yZVxuICAgKiBAcGFyYW0gYWxhcm0gLSBUaGUgYWxhcm0gdG8gZXZhbHVhdGUuXG4gICAqIEBwYXJhbSBhbGFybXMgLSBBbiBhcnJheSBvZiBleGlzdGluZyBhbGFybXMsIHVzZWQgZm9yIHN0YXR1cyBtYXRjaGluZy5cbiAgICogQHBhcmFtIGNvbmZpZyAtIFRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIHRvIG1hdGNoIGFnYWluc3QuXG4gICAqIEByZXR1cm5zIC0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFsYXJtIG1hdGNoZXMgdGhlIGNvbmZpZ3VyYXRpb24gY3JpdGVyaWE7IG90aGVyd2lzZSwgYGZhbHNlYC5cbiAgICovXG4gIGlzQWxhcm1NYXRjaGVkQnlDb25maWcoYWxhcm06IElBbGFybSwgYWxhcm1zOiBJQWxhcm1bXSwgY29uZmlnOiBBbGFybUxpc3RXaWRnZXRDb25maWcpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc1NldmVyaXR5TWF0Y2hlZCA9IHRoaXMuaXNTZXZlcml0eU1hdGNoaW5nKGFsYXJtLnNldmVyaXR5LCBjb25maWcpO1xuICAgIGNvbnN0IGlzU3RhdHVzTWF0Y2hlZCA9IHRoaXMuaXNTdGF0dXNNYXRjaGluZyhhbGFybSwgYWxhcm1zLCBjb25maWcpO1xuICAgIGNvbnN0IGlzVHlwZU1hdGNoZWQgPSB0aGlzLmlzVHlwZXNNYXRjaGluZyhjb25maWcsIGFsYXJtKTtcblxuICAgIHJldHVybiBpc1NldmVyaXR5TWF0Y2hlZCAmJiBpc1N0YXR1c01hdGNoZWQgJiYgaXNUeXBlTWF0Y2hlZDtcbiAgfVxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBzZXZlcml0eSBvZiBhbiBhbGFybSBtYXRjaGVzIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmcuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzZXZlcml0eSBvZiBhbiBhbGFybSBpcyBpbmNsdWRlZCBpbiB0aGVcbiAgICogc2V2ZXJpdHkgc2V0dGluZ3MgZGVmaW5lZCBpbiB0aGUgQWxhcm1MaXN0V2lkZ2V0Q29uZmlnLlxuICAgKlxuICAgKiBAaWdub3JlXG4gICAqIEBwYXJhbSBzZXZlcml0eSAtIFRoZSBzZXZlcml0eSBvZiB0aGUgYWxhcm0gdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjb25maWcgLSBUaGUgY29uZmlndXJhdGlvbiB3aXRoIHNldmVyaXR5IHNldHRpbmdzLlxuICAgKiBAcmV0dXJucyAtIFJldHVybnMgYHRydWVgIGlmIHRoZSBhbGFybSdzIHNldmVyaXR5IG1hdGNoZXMgdGhlIGNvbmZpZ3VyYXRpb247IG90aGVyd2lzZSwgYGZhbHNlYC5cbiAgICovXG4gIGlzU2V2ZXJpdHlNYXRjaGluZyhzZXZlcml0eTogU2V2ZXJpdHlUeXBlLCBjb25maWc6IEFsYXJtTGlzdFdpZGdldENvbmZpZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIWNvbmZpZy5zZXZlcml0aWVzW3NldmVyaXR5XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmFsdWF0ZXMgaWYgdGhlIHN0YXR1cyBvZiBhbiBhbGFybSBtYXRjaGVzIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmcgb3IgaGFzIGNoYW5nZWQuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHRoZSBzdGF0dXMgb2YgYW4gYWxhcm0gaXMgaW5jbHVkZWQgaW4gdGhlIHN0YXR1cyBzZXR0aW5ncyBkZWZpbmVkIGluXG4gICAqIHRoZSBBbGFybUxpc3RXaWRnZXRDb25maWcsIG9yIGlmIHRoZSBhbGFybSdzIHN0YXR1cyBoYXMgY2hhbmdlZCBiYXNlZCBvbiB0aGUgZXhpc3RpbmcgYWxhcm1zLlxuICAgKlxuICAgKiBAaWdub3JlXG4gICAqIEBwYXJhbSBhbGFybSAtIFRoZSBhbGFybSB3aG9zZSBzdGF0dXMgaXMgdG8gYmUgZXZhbHVhdGVkLlxuICAgKiBAcGFyYW0gYWxhcm1zIC0gQW4gYXJyYXkgb2YgZXhpc3RpbmcgYWxhcm1zIHRvIGNvbXBhcmUgYWdhaW5zdCBmb3Igc3RhdHVzIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBjb25maWcgLSBUaGUgY29uZmlndXJhdGlvbiB3aXRoIHN0YXR1cyBzZXR0aW5ncy5cbiAgICogQHJldHVybnMgLSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgYWxhcm0ncyBzdGF0dXMgbWF0Y2hlcyBvciBoYXMgY2hhbmdlZCBhcyBwZXIgdGhlIGNvbmZpZ3VyYXRpb247IG90aGVyd2lzZSwgYGZhbHNlYC5cbiAgICovXG4gIGlzU3RhdHVzTWF0Y2hpbmcoYWxhcm06IElBbGFybSwgYWxhcm1zOiBJQWxhcm1bXSwgY29uZmlnOiBBbGFybUxpc3RXaWRnZXRDb25maWcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFjb25maWcuc3RhdHVzW2FsYXJtLnN0YXR1c10gfHwgdGhpcy5oYXNFeGlzdGluZ0FsYXJtQ2hhbmdlZFN0YXR1cyhhbGFybXMsIGFsYXJtKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNvbmZpZ3VyYXRpb24ncyB0eXBlcyBhcnJheSBjb250YWlucyBvbmx5IGVtcHR5IHN0cmluZyBvciBpbmNsdWRlcyBhIHNwZWNpZmljIGFsYXJtIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSBjb25maWcgLSBUaGUgY29uZmlndXJhdGlvbiBvYmplY3Qgd2l0aCBhIGB0eXBlc2AgcHJvcGVydHkuXG4gICAqIEBwYXJhbSBhbGFybSAtIFRoZSBhbGFybSBvYmplY3Qgd2l0aCBhIGB0eXBlYCBwcm9wZXJ0eSB0byBjaGVjayBhZ2FpbnN0IHRoZSBjb25maWcncyB0eXBlcy5cbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBjb25maWcncyB0eXBlcyBhcnJheSBjb250YWlucyBvbmx5IGVtcHR5IHN0cmluZyBvciBpbmNsdWRlcyB0aGUgYWxhcm0ncyB0eXBlLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICovXG4gIGlzVHlwZXNNYXRjaGluZyhjb25maWc6IEFsYXJtTGlzdFdpZGdldENvbmZpZywgYWxhcm06IElBbGFybSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGNvbmZpZy50eXBlcykgJiYgY29uZmlnLnR5cGVzLmxlbmd0aCA9PT0gMSAmJiBjb25maWcudHlwZXNbMF0gPT09ICcnXG4gICAgICA/IHRydWVcbiAgICAgIDogY29uZmlnLnR5cGVzPy5pbmNsdWRlcyhhbGFybS50eXBlKSA/PyBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgcXVlcnkgc3RyaW5nIGZyb20gYW4gYXJyYXkgb2Ygb3JkZXIgcGFyYW1ldGVycy5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiB0YWtlcyBhbiBhcnJheSBvZiBvcmRlcmluZyBwYXJhbWV0ZXJzIGFuZCBjb25zdHJ1Y3RzIGEgcXVlcnkgc3RyaW5nXG4gICAqIGZvciB1c2UgaW4gYWxhcm0gb3JkZXJpbmcgcXVlcmllcy4gVGhlIHBhcmFtZXRlcnMgYXJlIGNvbmNhdGVuYXRlZCBpbnRvIGEgc2luZ2xlIHN0cmluZyxcbiAgICogcHJlZml4ZWQgd2l0aCAnJG9yZGVyYnk9Jy5cbiAgICpcbiAgICogQGlnbm9yZVxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0gb3JkZXJQYXJhbXMgLSBUaGUgb3JkZXIgcGFyYW1ldGVycyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcXVlcnkuXG4gICAqIEByZXR1cm5zIC0gQSBxdWVyeSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBvcmRlciBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZE9yZGVyUGFyYW1ldGVycyhvcmRlclBhcmFtczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJG9yZGVyYnk9JHtvcmRlclBhcmFtcy5qb2luKCcsJyl9YDtcbiAgfVxufVxuIl19
|
|
@@ -318,14 +318,20 @@ class TenantListComponent {
|
|
|
318
318
|
type: 'activateTenantAction',
|
|
319
319
|
icon: 'power-off',
|
|
320
320
|
text: gettext('Activate`tenant`'),
|
|
321
|
-
callback: (tenant) =>
|
|
321
|
+
callback: async (tenant) => {
|
|
322
|
+
await this.activateTenant(tenant);
|
|
323
|
+
this.loadTenants();
|
|
324
|
+
},
|
|
322
325
|
showIf: (tenant) => this.isSuspended(tenant)
|
|
323
326
|
},
|
|
324
327
|
{
|
|
325
328
|
type: 'suspendTenantAction',
|
|
326
329
|
icon: 'power-off',
|
|
327
330
|
text: gettext('Suspend`tenant`'),
|
|
328
|
-
callback: (tenant) =>
|
|
331
|
+
callback: async (tenant) => {
|
|
332
|
+
await this.suspendTenant(tenant);
|
|
333
|
+
this.loadTenants();
|
|
334
|
+
},
|
|
329
335
|
showIf: (tenant) => this.isActive(tenant)
|
|
330
336
|
},
|
|
331
337
|
{
|