@c8y/ngx-components 1021.21.0 → 1021.22.26
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/alarms/alarm-details.component.d.ts +1 -3
- package/alarms/alarm-details.component.d.ts.map +1 -1
- package/alarms/alarm-info.component.d.ts +9 -14
- package/alarms/alarm-info.component.d.ts.map +1 -1
- package/alarms/alarms-date-filter.component.d.ts +23 -10
- package/alarms/alarms-date-filter.component.d.ts.map +1 -1
- package/alarms/alarms-type-filter.component.d.ts +21 -14
- package/alarms/alarms-type-filter.component.d.ts.map +1 -1
- package/alarms/alarms-view.service.d.ts +7 -0
- package/alarms/alarms-view.service.d.ts.map +1 -1
- package/alarms/alarms.component.d.ts.map +1 -1
- package/alarms/alarms.helper.d.ts +5 -0
- package/alarms/alarms.helper.d.ts.map +1 -0
- package/alarms/alarms.model.d.ts +1 -6
- package/alarms/alarms.model.d.ts.map +1 -1
- package/alarms/alarms.module.d.ts +1 -1
- package/alarms/alarms.module.d.ts.map +1 -1
- package/alarms/cockpit/index.d.ts.map +1 -1
- package/alarms/devicemanagement/index.d.ts.map +1 -1
- package/alarms/index.d.ts +6 -4
- package/alarms/index.d.ts.map +1 -1
- package/branding/shared/data/branding-tracking.service.d.ts +20 -0
- package/branding/shared/data/branding-tracking.service.d.ts.map +1 -0
- package/branding/shared/data/branding-version.service.d.ts.map +1 -1
- package/branding/shared/data/index.d.ts +1 -0
- package/branding/shared/data/index.d.ts.map +1 -1
- package/branding/shared/data/store-branding.service.d.ts +8 -1
- package/branding/shared/data/store-branding.service.d.ts.map +1 -1
- package/branding/shared/lazy/branding/branding.component.d.ts +3 -2
- package/branding/shared/lazy/branding/branding.component.d.ts.map +1 -1
- package/branding/shared/lazy/branding-theme-form/branding-theme-form.component.d.ts.map +1 -1
- package/branding/shared/lazy/edit-branding-router-outlet/edit-branding-router-outlet.component.d.ts.map +1 -1
- package/cockpit-config/cockpit-config.module.d.ts +1 -1
- package/cockpit-config/cockpit-config.module.d.ts.map +1 -1
- package/context-dashboard/context-dashboard.service.d.ts +1 -1
- package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
- package/core/bootstrap/bootstrap.component.d.ts.map +1 -1
- package/core/common/service-registry.model.d.ts +2 -1
- package/core/common/service-registry.model.d.ts.map +1 -1
- package/core/common/ui-state.service.d.ts +0 -1
- package/core/common/ui-state.service.d.ts.map +1 -1
- package/core/i18n/missing-translation-custom.handler.d.ts +1 -0
- package/core/i18n/missing-translation-custom.handler.d.ts.map +1 -1
- package/core/plugins/index.d.ts +1 -0
- package/core/plugins/index.d.ts.map +1 -1
- package/core/plugins/plugin-loaded.pipe.d.ts +12 -0
- package/core/plugins/plugin-loaded.pipe.d.ts.map +1 -0
- package/core/plugins/plugins-resolve.service.d.ts +4 -2
- package/core/plugins/plugins-resolve.service.d.ts.map +1 -1
- package/core/plugins/plugins.model.d.ts +3 -1
- package/core/plugins/plugins.model.d.ts.map +1 -1
- package/core/plugins/plugins.service.d.ts +3 -0
- package/core/plugins/plugins.service.d.ts.map +1 -1
- package/core/router/context-route.component.d.ts +8 -3
- package/core/router/context-route.component.d.ts.map +1 -1
- package/core/router/context-route.service.d.ts +29 -3
- package/core/router/context-route.service.d.ts.map +1 -1
- package/core/router/router-tabs.resolver.d.ts +6 -3
- package/core/router/router-tabs.resolver.d.ts.map +1 -1
- package/core/router/router.model.d.ts +40 -3
- package/core/router/router.model.d.ts.map +1 -1
- package/core/router/router.module.d.ts +2 -1
- package/core/router/router.module.d.ts.map +1 -1
- package/core/router/router.service.d.ts +5 -4
- package/core/router/router.service.d.ts.map +1 -1
- package/core/router/scoped-context-route.service.d.ts +57 -0
- package/core/router/scoped-context-route.service.d.ts.map +1 -0
- package/core/router/view-context.service.d.ts +8 -18
- package/core/router/view-context.service.d.ts.map +1 -1
- package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/application-plugins.guard.d.ts.map +1 -1
- package/ecosystem/application-plugins/orphaned-status-cell-renderer.component.d.ts.map +1 -1
- package/esm2022/alarms/alarm-details.component.mjs +7 -9
- package/esm2022/alarms/alarm-info.component.mjs +23 -33
- package/esm2022/alarms/alarm-severity-to-label.pipe.mjs +2 -2
- package/esm2022/alarms/alarms-date-filter.component.mjs +94 -42
- package/esm2022/alarms/alarms-type-filter.component.mjs +102 -72
- package/esm2022/alarms/alarms-view.service.mjs +17 -3
- package/esm2022/alarms/alarms.component.mjs +12 -5
- package/esm2022/alarms/alarms.helper.mjs +32 -0
- package/esm2022/alarms/alarms.model.mjs +1 -1
- package/esm2022/alarms/alarms.module.mjs +7 -7
- package/esm2022/alarms/cockpit/index.mjs +13 -17
- package/esm2022/alarms/devicemanagement/index.mjs +15 -18
- package/esm2022/alarms/index.mjs +7 -5
- package/esm2022/branding/shared/data/branding-tracking.service.mjs +58 -0
- package/esm2022/branding/shared/data/branding-version.service.mjs +9 -5
- package/esm2022/branding/shared/data/index.mjs +2 -1
- package/esm2022/branding/shared/data/store-branding.service.mjs +15 -4
- package/esm2022/branding/shared/lazy/branding/branding.component.mjs +16 -12
- package/esm2022/branding/shared/lazy/branding-theme-form/branding-theme-form.component.mjs +5 -2
- package/esm2022/branding/shared/lazy/edit-branding-router-outlet/edit-branding-router-outlet.component.mjs +2 -2
- package/esm2022/cockpit-config/cockpit-config.module.mjs +6 -3
- package/esm2022/cockpit-config/feature-config.component.mjs +5 -4
- package/esm2022/context-dashboard/context-dashboard.service.mjs +47 -13
- package/esm2022/core/bootstrap/bootstrap.component.mjs +4 -3
- package/esm2022/core/common/service-registry.model.mjs +1 -1
- package/esm2022/core/common/ui-state.service.mjs +1 -19
- package/esm2022/core/i18n/missing-translation-custom.handler.mjs +5 -1
- package/esm2022/core/i18n/translation-loader.service.mjs +2 -2
- package/esm2022/core/plugins/index.mjs +2 -1
- package/esm2022/core/plugins/plugin-loaded.pipe.mjs +26 -0
- package/esm2022/core/plugins/plugins-resolve.service.mjs +5 -1
- package/esm2022/core/plugins/plugins.model.mjs +2 -1
- package/esm2022/core/plugins/plugins.service.mjs +13 -5
- package/esm2022/core/router/context-route.component.mjs +23 -13
- package/esm2022/core/router/context-route.service.mjs +37 -5
- package/esm2022/core/router/router-tabs.resolver.mjs +66 -21
- package/esm2022/core/router/router.model.mjs +6 -1
- package/esm2022/core/router/router.module.mjs +20 -13
- package/esm2022/core/router/router.service.mjs +24 -10
- package/esm2022/core/router/scoped-context-route.service.mjs +157 -0
- package/esm2022/core/router/view-context.service.mjs +59 -16
- package/esm2022/core/tabs/tabs-outlet.component.mjs +3 -3
- package/esm2022/core/version/websdk-plugin-version.factory.mjs +2 -2
- package/esm2022/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.mjs +3 -3
- package/esm2022/ecosystem/activity-log/activity-log.component.mjs +3 -3
- package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +67 -23
- package/esm2022/ecosystem/application-plugins/application-plugins.guard.mjs +8 -2
- package/esm2022/ecosystem/application-plugins/orphaned-status-cell-renderer.component.mjs +7 -1
- package/esm2022/interval-picker/interval-picker.component.mjs +1 -1
- package/esm2022/interval-picker/interval-picker.model.mjs +1 -1
- package/esm2022/protocol-lwm2m/ng1/plugin-checker.service.mjs +5 -1
- package/esm2022/widgets/definitions/alarms/alarm-list/index.mjs +2 -1
- package/esm2022/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.mjs +73 -4
- package/esm2022/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.mjs +29 -5
- package/esm2022/widgets/implementations/alarms/alarm-list-widget.model.mjs +7 -1
- package/esm2022/widgets/implementations/alarms/alarm-widget.service.mjs +12 -2
- package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +12 -16
- package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs +14 -17
- package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +389 -268
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +76 -9
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +19 -12
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs +7 -5
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +46 -12
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +2 -2
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +79 -23
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs +81 -25
- package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-interval-picker.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-lwm2m.mjs +4 -0
- package/fesm2022/c8y-ngx-components-protocol-lwm2m.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +1 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +124 -15
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +489 -176
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/interval-picker/interval-picker.component.d.ts +2 -2
- package/interval-picker/interval-picker.component.d.ts.map +1 -1
- package/interval-picker/interval-picker.model.d.ts +5 -0
- package/interval-picker/interval-picker.model.d.ts.map +1 -1
- package/locales/de.po +431 -538
- package/locales/en.po +2 -889
- package/locales/en_US.po +2 -880
- package/locales/es.po +462 -540
- package/locales/fr.po +470 -549
- package/locales/ja_JP.po +405 -598
- package/locales/ko.po +649 -502
- package/locales/locales.pot +27 -12
- package/locales/nl.po +463 -541
- package/locales/pl.po +504 -554
- package/locales/pt_BR.po +466 -543
- package/locales/zh_CN.po +650 -498
- package/locales/zh_TW.po +650 -498
- package/package.json +1 -1
- package/protocol-lwm2m/ng1/plugin-checker.service.d.ts +4 -0
- package/protocol-lwm2m/ng1/plugin-checker.service.d.ts.map +1 -1
- package/widgets/definitions/alarms/alarm-list/index.d.ts.map +1 -1
- package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts +12 -1
- package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts.map +1 -1
- package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts +12 -1
- package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts.map +1 -1
- package/widgets/implementations/alarms/alarm-list-widget.model.d.ts +11 -1
- package/widgets/implementations/alarms/alarm-list-widget.model.d.ts.map +1 -1
- package/widgets/implementations/alarms/alarm-widget.service.d.ts.map +1 -1
|
@@ -91,7 +91,7 @@ export class EditBrandingRouterOutletComponent {
|
|
|
91
91
|
}
|
|
92
92
|
async openPreview() {
|
|
93
93
|
const name = this.activatedRoute.snapshot.params.name;
|
|
94
|
-
|
|
94
|
+
this.store.openPreviewForBranding(name);
|
|
95
95
|
}
|
|
96
96
|
async markAsActive() {
|
|
97
97
|
const currentBrandingName = this.activatedRoute.snapshot.params.name;
|
|
@@ -138,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
138
138
|
type: Component,
|
|
139
139
|
args: [{ selector: 'c8y-edit-branding-router-outlet', standalone: true, imports: [RouterOutlet, CoreModule], template: "<c8y-title>{{ brandingName$ | async }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Branding' | translate\"\n [path]=\"'/branding-editor'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'cog'\"\n [label]=\"brandingName$ | async\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card card--fullpage content-fullpage\">\n <div class=\"card-header separator\">\n <div class=\"card-title\">{{ brandingName$ | async }} \u2014 {{ tabName$ | async | translate }}</div>\n </div>\n <router-outlet\n class=\"d-contents\"\n (activate)=\"routeActivated($event)\"\n ></router-outlet>\n\n <div class=\"card-footer separator\">\n <!-- footer content -->\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-cancel\"\n (click)=\"cancel()\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-primary\"\n data-cy=\"branding-save\"\n [disabled]=\"formControl.invalid\"\n (click)=\"saveBranding()\"\n translate\n >\n Save\n </button>\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-save-as\"\n [disabled]=\"formControl.invalid\"\n (click)=\"openPreview()\"\n translate\n >\n Open preview\n </button>\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-set-as-latest\"\n (click)=\"markAsActive()\"\n [disabled]=\"isGlobalBranding$ | async\"\n translate\n >\n Set as global\n </button>\n </div>\n</div>\n" }]
|
|
140
140
|
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.StoreBrandingService }, { type: i1.Router }, { type: i3.AlertService }, { type: i2.ApplyBrandingLocallyService }, { type: i3.AppStateService }] });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1icmFuZGluZy1yb3V0ZXItb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2JyYW5kaW5nL3NoYXJlZC9sYXp5L2VkaXQtYnJhbmRpbmctcm91dGVyLW91dGxldC9lZGl0LWJyYW5kaW5nLXJvdXRlci1vdXRsZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvZWRpdC1icmFuZGluZy1yb3V0ZXItb3V0bGV0L2VkaXQtYnJhbmRpbmctcm91dGVyLW91dGxldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFjLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixvQkFBb0IsRUFDckIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQXdDLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFRaEUsTUFBTSxPQUFPLGlDQUFpQztJQVc1QyxZQUNVLGNBQThCLEVBQzlCLEtBQTJCLEVBQzNCLE1BQWMsRUFDZCxLQUFtQixFQUNuQixvQkFBaUQsRUFDakQsUUFBeUI7UUFMekIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFVBQUssR0FBTCxLQUFLLENBQXNCO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBNkI7UUFDakQsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFmbkMsZ0JBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBUyxTQUFTLENBQUMsQ0FBQztRQUl6QyxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFzQixJQUFJLENBQUMsQ0FBQztRQUM3RCxnQ0FBMkIsR0FBRyxJQUFJLGVBQWUsQ0FFdkQsSUFBSSxDQUFDLENBQUM7UUFVTixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNwRCxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDZixPQUFPLElBQUksRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FDbkQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUNwRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQzFCLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMvQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJO2FBQ3JCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLG9CQUFvQixFQUFFLENBQUM7YUFDbEQsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDaEYsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNmLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3hDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDdEUsSUFBSSxTQUFTLENBQUMseUJBQXlCLEVBQUUsQ0FBQztvQkFDeEMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RixDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBcUQ7UUFDbEUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVk7UUFDaEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDL0MsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLGNBQWMsQ0FDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN0RCxDQUFDO1lBRUYsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ3JFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM3RCxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7WUFDcEYsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDO1lBQ2xELE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixDQUFDLENBQUM7WUFDN0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQ2xCLENBQUMsUUFBUSxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFDOUU7Z0JBQ0UsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUMvQixVQUFVLEVBQUUsSUFBSTthQUNqQixDQUNGLENBQUM7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDaEIsT0FBTyxDQUNMLHlGQUF5RixDQUMxRixDQUNGLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN0RCxNQUFNLENBQUMsSUFBSSxDQUNULFNBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsV0FBVyxJQUFJLFNBQ3pELGtGQUFrRixJQUFJLGVBQWUsRUFDckcsUUFBUSxFQUNSLHFCQUFxQixDQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZO1FBQ2hCLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUNyRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDN0QsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEtBQWE7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxXQUFXLEdBQXdCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0QsTUFBTSxnQkFBZ0IsR0FBd0IsU0FBUyxDQUNyRCxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FDN0MsQ0FBQztZQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDakQsS0FBSyxNQUFNLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDbkMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDO2dCQUVELElBQUksT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxJQUFJLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQ3RGLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUM1RSxDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxrQkFBa0I7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsS0FBMEI7UUFDL0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMvQixJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUM3QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTdKVSxpQ0FBaUM7a0dBQWpDLGlDQUFpQywyRkNwQjlDLCtpREE4REEsNENENUNZLFlBQVksMEpBQUUsVUFBVTs7MkZBRXZCLGlDQUFpQztrQkFON0MsU0FBUzsrQkFDRSxpQ0FBaUMsY0FFL0IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBBcHBTdGF0ZVNlcnZpY2UsIENvcmVNb2R1bGUsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBBcHBseUJyYW5kaW5nTG9jYWxseVNlcnZpY2UsXG4gIEJyYW5kaW5nT3B0aW9uc0pzb24sXG4gIFN0b3JlQnJhbmRpbmdTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYnJhbmRpbmcvc2hhcmVkL2RhdGEnO1xuaW1wb3J0IHsgQXN5bmNWYWxpZGF0b3IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWVkaXQtYnJhbmRpbmctcm91dGVyLW91dGxldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LWJyYW5kaW5nLXJvdXRlci1vdXRsZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUm91dGVyT3V0bGV0LCBDb3JlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBFZGl0QnJhbmRpbmdSb3V0ZXJPdXRsZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBicmFuZGluZ05hbWUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZz4odW5kZWZpbmVkKTtcbiAgZmFsbGJhY2tCcmFuZGluZyQ6IE9ic2VydmFibGU8QnJhbmRpbmdPcHRpb25zSnNvbj47XG4gIHRhYk5hbWUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGlzR2xvYmFsQnJhbmRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwcml2YXRlIG5ld0JyYW5kaW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCcmFuZGluZ09wdGlvbnNKc29uPihudWxsKTtcbiAgcHJpdmF0ZSBjdXJyZW50bHlEaXNwbGF5ZWRDb21wb25lbnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIChDb250cm9sVmFsdWVBY2Nlc3NvciAmIFBhcnRpYWw8QXN5bmNWYWxpZGF0b3I+KSB8IG51bGxcbiAgPihudWxsKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZUJyYW5kaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWxlcnQ6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGFwcGx5QnJhbmRpbmdTZXJ2aWNlOiBBcHBseUJyYW5kaW5nTG9jYWxseVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTdGF0ZTogQXBwU3RhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaXNHbG9iYWxCcmFuZGluZyQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEucGlwZShcbiAgICAgIG1hcCgoeyB0YWdzIH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHRhZ3M/LmluY2x1ZGVzKCdsYXRlc3QnKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnRhYk5hbWUkID0gdGhpcy5jdXJyZW50bHlEaXNwbGF5ZWRDb21wb25lbnQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmFjdGl2YXRlZFJvdXRlLmZpcnN0Q2hpbGQuZGF0YSksXG4gICAgICBtYXAoZGF0YSA9PiBkYXRhLnRhYk5hbWUpXG4gICAgKTtcbiAgICB0aGlzLmJyYW5kaW5nTmFtZSQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmFtcy5waXBlKG1hcChwYXJhbXMgPT4gcGFyYW1zLm5hbWUpKTtcbiAgICB0aGlzLmZvcm1Db250cm9sLmFkZFZhbGlkYXRvcnMoY29udHJvbCA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBKU09OLnBhcnNlKGNvbnRyb2wudmFsdWUpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIHsgaW52YWxpZEpzb246IHRydWUgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmZhbGxiYWNrQnJhbmRpbmckID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhLnBpcGUobWFwKGRhdGEgPT4gZGF0YS5mYWxsYmFja0JyYW5kaW5nKSk7XG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHsgYnJhbmRpbmcgfSkgPT4ge1xuICAgICAgICB0aGlzLmFwcGx5QnJhbmRpbmdTZXJ2aWNlLmFwcGx5QnJhbmRpbmcoYnJhbmRpbmcpO1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKEpTT04uc3RyaW5naWZ5KGJyYW5kaW5nLCBudWxsLCAyKSk7XG4gICAgICB9KTtcbiAgICB0aGlzLmN1cnJlbnRseURpc3BsYXllZENvbXBvbmVudC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoY29tcG9uZW50ID0+IHtcbiAgICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcbiAgICAgIGNvbXBvbmVudC5yZWdpc3Rlck9uQ2hhbmdlKHZhbHVlID0+IHRoaXMub25CcmFuZGluZ1ZhckNoYW5nZXModmFsdWUpKTtcbiAgICAgIGNvbXBvbmVudC53cml0ZVZhbHVlKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpO1xuICAgICAgaWYgKGNvbXBvbmVudC52YWxpZGF0ZSkge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLmFkZEFzeW5jVmFsaWRhdG9ycyhmb3JtID0+IGNvbXBvbmVudC52YWxpZGF0ZShmb3JtKSk7XG4gICAgICAgIGlmIChjb21wb25lbnQucmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZSkge1xuICAgICAgICAgIGNvbXBvbmVudC5yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKCgpID0+IHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHlCcmFuZGluZ1NlcnZpY2UucmVzZXRCcmFuZGluZygpO1xuICB9XG5cbiAgcm91dGVBY3RpdmF0ZWQoZXZlbnQ6IENvbnRyb2xWYWx1ZUFjY2Vzc29yICYgUGFydGlhbDxBc3luY1ZhbGlkYXRvcj4pIHtcbiAgICB0aGlzLmN1cnJlbnRseURpc3BsYXllZENvbXBvbmVudC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVCcmFuZGluZygpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY3VycmVudEJyYW5kaW5nID0gdGhpcy5uZXdCcmFuZGluZy52YWx1ZTtcbiAgICAgIGNvbnN0IHRhZ3NPZkN1cnJlbnRWZXJzaW9uID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YS5waXBlKG1hcChkYXRhID0+IGRhdGEudGFncykpXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjdXJyZW50QnJhbmRpbmdOYW1lID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXMubmFtZTtcbiAgICAgIGNvbnN0IHsgdmFyaWFudHMgfSA9IGF3YWl0IHRoaXMuc3RvcmUubG9hZEJyYW5kaW5nVmFyaWFudHMoKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRCcmFuZGluZ09iaiA9IHZhcmlhbnRzLmZpbmQodiA9PiB2LnRhZ3MuaW5jbHVkZXMoY3VycmVudEJyYW5kaW5nTmFtZSkpO1xuICAgICAgY29uc3QgY3VycmVudFZlcnNpb24gPSBjdXJyZW50QnJhbmRpbmdPYmoudmVyc2lvbjtcbiAgICAgIGF3YWl0IHRoaXMuc3RvcmUuc2F2ZUV4aXN0aW5nQnJhbmRpbmcoY3VycmVudEJyYW5kaW5nLCBjdXJyZW50VmVyc2lvbiwgdGFnc09mQ3VycmVudFZlcnNpb24pO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXG4gICAgICAgIFsnLi4vLi4vJywgY3VycmVudEJyYW5kaW5nTmFtZSwgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5yb3V0ZUNvbmZpZy5wYXRoXSxcbiAgICAgICAge1xuICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgcmVwbGFjZVVybDogdHJ1ZVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKFxuICAgICAgICBnZXR0ZXh0KFxuICAgICAgICAgICdCcmFuZGluZyBzYXZlZC4gVG8gYXBwbHkgdGhpcyBicmFuZGluZywgcmVmcmVzaCBhbnkgb3BlbiB3aW5kb3cgdGhhdCBtaWdodCBiZSBhZmZlY3RlZC4nXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGUsICdkYW5nZXInKTtcbiAgICAgIGNvbnNvbGUud2FybihlKTtcbiAgICB9XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydicmFuZGluZy1lZGl0b3InXSk7XG4gIH1cblxuICBhc3luYyBvcGVuUHJldmlldygpIHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXMubmFtZTtcbiAgICB3aW5kb3cub3BlbihcbiAgICAgIGAvYXBwcy8ke1xuICAgICAgICB0aGlzLmFwcFN0YXRlLmN1cnJlbnRBcHBsaWNhdGlvbi52YWx1ZT8uY29udGV4dFBhdGggfHwgJ2NvY2twaXQnXG4gICAgICB9L2luZGV4Lmh0bWw/YnJhbmRpbmdQcmV2aWV3PXRydWUmZHluYW1pY09wdGlvbnNVcmw9L2FwcHMvcHVibGljL3B1YmxpYy1vcHRpb25zQCR7bmFtZX0vb3B0aW9ucy5qc29uYCxcbiAgICAgICdfYmxhbmsnLFxuICAgICAgJ25vb3BlbmVyLG5vcmVmZXJyZXInXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIG1hcmtBc0FjdGl2ZSgpIHtcbiAgICBjb25zdCBjdXJyZW50QnJhbmRpbmdOYW1lID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXMubmFtZTtcbiAgICBjb25zdCB7IHZhcmlhbnRzIH0gPSBhd2FpdCB0aGlzLnN0b3JlLmxvYWRCcmFuZGluZ1ZhcmlhbnRzKCk7XG4gICAgY29uc3QgY3VycmVudEJyYW5kaW5nT2JqID0gdmFyaWFudHMuZmluZCh2ID0+IHYudGFncy5pbmNsdWRlcyhjdXJyZW50QnJhbmRpbmdOYW1lKSk7XG4gICAgYXdhaXQgdGhpcy5zdG9yZS5tYXJrQXNBY3RpdmUoY3VycmVudEJyYW5kaW5nT2JqKTtcbiAgfVxuXG4gIGFzeW5jIG9uQnJhbmRpbmdWYXJDaGFuZ2VzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXJzZWRWYWx1ZTogQnJhbmRpbmdPcHRpb25zSnNvbiA9IEpTT04ucGFyc2UodmFsdWUpO1xuICAgICAgY29uc3QgZmFsbGJhY2tCcmFuZGluZzogQnJhbmRpbmdPcHRpb25zSnNvbiA9IGNsb25lRGVlcChcbiAgICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5mYWxsYmFja0JyYW5kaW5nJClcbiAgICAgICk7XG4gICAgICB0aGlzLmNsZWFuVXBPYmplY3RzKHBhcnNlZFZhbHVlKTtcbiAgICAgIHRoaXMuY2xlYW5VcE9iamVjdHMocGFyc2VkVmFsdWUuYnJhbmRpbmdDc3NWYXJzKTtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGZhbGxiYWNrQnJhbmRpbmcpIHtcbiAgICAgICAgaWYgKHBhcnNlZFZhbHVlW2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHBhcnNlZFZhbHVlW2tleV0gPSBmYWxsYmFja0JyYW5kaW5nW2tleV07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHBhcnNlZFZhbHVlW2tleV0gPT09ICdvYmplY3QnICYmIHR5cGVvZiBmYWxsYmFja0JyYW5kaW5nW2tleV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgcGFyc2VkVmFsdWVba2V5XSA9IE9iamVjdC5hc3NpZ24oZmFsbGJhY2tCcmFuZGluZ1trZXldLCBwYXJzZWRWYWx1ZVtrZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5hcHBseUJyYW5kaW5nU2VydmljZS5hcHBseUJyYW5kaW5nKHBhcnNlZFZhbHVlKTtcbiAgICAgIHRoaXMubmV3QnJhbmRpbmcubmV4dChwYXJzZWRWYWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gbm90IHZhbGlkIEpTT047XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhblVwT2JqZWN0cyh2YWx1ZTogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgT2JqZWN0LmtleXModmFsdWUpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGlmICh2YWx1ZVtrZXldID09PSBudWxsIHx8IHZhbHVlW2tleV0gPT09ICcnKSB7XG4gICAgICAgIGRlbGV0ZSB2YWx1ZVtrZXldO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8Yzh5LXRpdGxlPnt7IGJyYW5kaW5nTmFtZSQgfCBhc3luYyB9fTwvYzh5LXRpdGxlPlxuXG48Yzh5LWJyZWFkY3J1bWI+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ3BhbGV0dGUnXCJcbiAgICBbbGFiZWxdPVwiJ0JyYW5kaW5nJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3BhdGhdPVwiJy9icmFuZGluZy1lZGl0b3InXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInY29nJ1wiXG4gICAgW2xhYmVsXT1cImJyYW5kaW5nTmFtZSQgfCBhc3luY1wiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG48L2M4eS1icmVhZGNydW1iPlxuXG48ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLS1mdWxscGFnZSBjb250ZW50LWZ1bGxwYWdlXCI+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBzZXBhcmF0b3JcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPnt7IGJyYW5kaW5nTmFtZSQgfCBhc3luYyB9fSDigJQge3sgdGFiTmFtZSQgfCBhc3luYyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICA8L2Rpdj5cbiAgPHJvdXRlci1vdXRsZXRcbiAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgIChhY3RpdmF0ZSk9XCJyb3V0ZUFjdGl2YXRlZCgkZXZlbnQpXCJcbiAgPjwvcm91dGVyLW91dGxldD5cblxuICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgc2VwYXJhdG9yXCI+XG4gICAgPCEtLSBmb290ZXIgY29udGVudCAtLT5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICBkYXRhLWN5PVwiYnJhbmRpbmctY2FuY2VsXCJcbiAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXG4gICAgICB0cmFuc2xhdGVcbiAgICA+XG4gICAgICBDYW5jZWxcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICBkYXRhLWN5PVwiYnJhbmRpbmctc2F2ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZm9ybUNvbnRyb2wuaW52YWxpZFwiXG4gICAgICAoY2xpY2spPVwic2F2ZUJyYW5kaW5nKClcIlxuICAgICAgdHJhbnNsYXRlXG4gICAgPlxuICAgICAgU2F2ZVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1zYXZlLWFzXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtQ29udHJvbC5pbnZhbGlkXCJcbiAgICAgIChjbGljayk9XCJvcGVuUHJldmlldygpXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgID5cbiAgICAgIE9wZW4gcHJldmlld1xuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1zZXQtYXMtbGF0ZXN0XCJcbiAgICAgIChjbGljayk9XCJtYXJrQXNBY3RpdmUoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNHbG9iYWxCcmFuZGluZyQgfCBhc3luY1wiXG4gICAgICB0cmFuc2xhdGVcbiAgICA+XG4gICAgICBTZXQgYXMgZ2xvYmFsXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1icmFuZGluZy1yb3V0ZXItb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2JyYW5kaW5nL3NoYXJlZC9sYXp5L2VkaXQtYnJhbmRpbmctcm91dGVyLW91dGxldC9lZGl0LWJyYW5kaW5nLXJvdXRlci1vdXRsZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvZWRpdC1icmFuZGluZy1yb3V0ZXItb3V0bGV0L2VkaXQtYnJhbmRpbmctcm91dGVyLW91dGxldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFjLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixvQkFBb0IsRUFDckIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQXdDLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFRaEUsTUFBTSxPQUFPLGlDQUFpQztJQVc1QyxZQUNVLGNBQThCLEVBQzlCLEtBQTJCLEVBQzNCLE1BQWMsRUFDZCxLQUFtQixFQUNu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QUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUN0RixXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDNUUsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsa0JBQWtCO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQTBCO1FBQy9DLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDN0MsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F2SlUsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsMkZDcEI5QywraURBOERBLDRDRDVDWSxZQUFZLDBKQUFFLFVBQVU7OzJGQUV2QixpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0UsaUNBQWlDLGNBRS9CLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciwgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgQXBwU3RhdGVTZXJ2aWNlLCBDb3JlTW9kdWxlLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgQXBwbHlCcmFuZGluZ0xvY2FsbHlTZXJ2aWNlLFxuICBCcmFuZGluZ09wdGlvbnNKc29uLFxuICBTdG9yZUJyYW5kaW5nU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2JyYW5kaW5nL3NoYXJlZC9kYXRhJztcbmltcG9ydCB7IEFzeW5jVmFsaWRhdG9yLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1lZGl0LWJyYW5kaW5nLXJvdXRlci1vdXRsZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1icmFuZGluZy1yb3V0ZXItb3V0bGV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1JvdXRlck91dGxldCwgQ29yZU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRWRpdEJyYW5kaW5nUm91dGVyT3V0bGV0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgYnJhbmRpbmdOYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBmb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KHVuZGVmaW5lZCk7XG4gIGZhbGxiYWNrQnJhbmRpbmckOiBPYnNlcnZhYmxlPEJyYW5kaW5nT3B0aW9uc0pzb24+O1xuICB0YWJOYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBpc0dsb2JhbEJyYW5kaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHJpdmF0ZSBuZXdCcmFuZGluZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJhbmRpbmdPcHRpb25zSnNvbj4obnVsbCk7XG4gIHByaXZhdGUgY3VycmVudGx5RGlzcGxheWVkQ29tcG9uZW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICAoQ29udHJvbFZhbHVlQWNjZXNzb3IgJiBQYXJ0aWFsPEFzeW5jVmFsaWRhdG9yPikgfCBudWxsXG4gID4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmVCcmFuZGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFsZXJ0OiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBseUJyYW5kaW5nU2VydmljZTogQXBwbHlCcmFuZGluZ0xvY2FsbHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZVxuICApIHtcbiAgICB0aGlzLmlzR2xvYmFsQnJhbmRpbmckID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhLnBpcGUoXG4gICAgICBtYXAoKHsgdGFncyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB0YWdzPy5pbmNsdWRlcygnbGF0ZXN0Jyk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy50YWJOYW1lJCA9IHRoaXMuY3VycmVudGx5RGlzcGxheWVkQ29tcG9uZW50LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5maXJzdENoaWxkLmRhdGEpLFxuICAgICAgbWFwKGRhdGEgPT4gZGF0YS50YWJOYW1lKVxuICAgICk7XG4gICAgdGhpcy5icmFuZGluZ05hbWUkID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbXMucGlwZShtYXAocGFyYW1zID0+IHBhcmFtcy5uYW1lKSk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5hZGRWYWxpZGF0b3JzKGNvbnRyb2wgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgSlNPTi5wYXJzZShjb250cm9sLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiB7IGludmFsaWRKc29uOiB0cnVlIH07XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5mYWxsYmFja0JyYW5kaW5nJCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YS5waXBlKG1hcChkYXRhID0+IGRhdGEuZmFsbGJhY2tCcmFuZGluZykpO1xuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAuc3Vic2NyaWJlKCh7IGJyYW5kaW5nIH0pID0+IHtcbiAgICAgICAgdGhpcy5hcHBseUJyYW5kaW5nU2VydmljZS5hcHBseUJyYW5kaW5nKGJyYW5kaW5nKTtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShKU09OLnN0cmluZ2lmeShicmFuZGluZywgbnVsbCwgMikpO1xuICAgICAgfSk7XG4gICAgdGhpcy5jdXJyZW50bHlEaXNwbGF5ZWRDb21wb25lbnQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKGNvbXBvbmVudCA9PiB7XG4gICAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyQXN5bmNWYWxpZGF0b3JzKCk7XG4gICAgICBjb21wb25lbnQucmVnaXN0ZXJPbkNoYW5nZSh2YWx1ZSA9PiB0aGlzLm9uQnJhbmRpbmdWYXJDaGFuZ2VzKHZhbHVlKSk7XG4gICAgICBjb21wb25lbnQud3JpdGVWYWx1ZSh0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcbiAgICAgIGlmIChjb21wb25lbnQudmFsaWRhdGUpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5hZGRBc3luY1ZhbGlkYXRvcnMoZm9ybSA9PiBjb21wb25lbnQudmFsaWRhdGUoZm9ybSkpO1xuICAgICAgICBpZiAoY29tcG9uZW50LnJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UpIHtcbiAgICAgICAgICBjb21wb25lbnQucmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZSgoKSA9PiB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmFwcGx5QnJhbmRpbmdTZXJ2aWNlLnJlc2V0QnJhbmRpbmcoKTtcbiAgfVxuXG4gIHJvdXRlQWN0aXZhdGVkKGV2ZW50OiBDb250cm9sVmFsdWVBY2Nlc3NvciAmIFBhcnRpYWw8QXN5bmNWYWxpZGF0b3I+KSB7XG4gICAgdGhpcy5jdXJyZW50bHlEaXNwbGF5ZWRDb21wb25lbnQubmV4dChldmVudCk7XG4gIH1cblxuICBhc3luYyBzYXZlQnJhbmRpbmcoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRCcmFuZGluZyA9IHRoaXMubmV3QnJhbmRpbmcudmFsdWU7XG4gICAgICBjb25zdCB0YWdzT2ZDdXJyZW50VmVyc2lvbiA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEucGlwZShtYXAoZGF0YSA9PiBkYXRhLnRhZ3MpKVxuICAgICAgKTtcblxuICAgICAgY29uc3QgY3VycmVudEJyYW5kaW5nTmFtZSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zLm5hbWU7XG4gICAgICBjb25zdCB7IHZhcmlhbnRzIH0gPSBhd2FpdCB0aGlzLnN0b3JlLmxvYWRCcmFuZGluZ1ZhcmlhbnRzKCk7XG4gICAgICBjb25zdCBjdXJyZW50QnJhbmRpbmdPYmogPSB2YXJpYW50cy5maW5kKHYgPT4gdi50YWdzLmluY2x1ZGVzKGN1cnJlbnRCcmFuZGluZ05hbWUpKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gY3VycmVudEJyYW5kaW5nT2JqLnZlcnNpb247XG4gICAgICBhd2FpdCB0aGlzLnN0b3JlLnNhdmVFeGlzdGluZ0JyYW5kaW5nKGN1cnJlbnRCcmFuZGluZywgY3VycmVudFZlcnNpb24sIHRhZ3NPZkN1cnJlbnRWZXJzaW9uKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFxuICAgICAgICBbJy4uLy4uLycsIGN1cnJlbnRCcmFuZGluZ05hbWUsIHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3Qucm91dGVDb25maWcucGF0aF0sXG4gICAgICAgIHtcbiAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgIHJlcGxhY2VVcmw6IHRydWVcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHRoaXMuYWxlcnQuc3VjY2VzcyhcbiAgICAgICAgZ2V0dGV4dChcbiAgICAgICAgICAnQnJhbmRpbmcgc2F2ZWQuIFRvIGFwcGx5IHRoaXMgYnJhbmRpbmcsIHJlZnJlc2ggYW55IG9wZW4gd2luZG93IHRoYXQgbWlnaHQgYmUgYWZmZWN0ZWQuJ1xuICAgICAgICApXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShlLCAnZGFuZ2VyJyk7XG4gICAgICBjb25zb2xlLndhcm4oZSk7XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnYnJhbmRpbmctZWRpdG9yJ10pO1xuICB9XG5cbiAgYXN5bmMgb3BlblByZXZpZXcoKSB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zLm5hbWU7XG4gICAgdGhpcy5zdG9yZS5vcGVuUHJldmlld0ZvckJyYW5kaW5nKG5hbWUpO1xuICB9XG5cbiAgYXN5bmMgbWFya0FzQWN0aXZlKCkge1xuICAgIGNvbnN0IGN1cnJlbnRCcmFuZGluZ05hbWUgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtcy5uYW1lO1xuICAgIGNvbnN0IHsgdmFyaWFudHMgfSA9IGF3YWl0IHRoaXMuc3RvcmUubG9hZEJyYW5kaW5nVmFyaWFudHMoKTtcbiAgICBjb25zdCBjdXJyZW50QnJhbmRpbmdPYmogPSB2YXJpYW50cy5maW5kKHYgPT4gdi50YWdzLmluY2x1ZGVzKGN1cnJlbnRCcmFuZGluZ05hbWUpKTtcbiAgICBhd2FpdCB0aGlzLnN0b3JlLm1hcmtBc0FjdGl2ZShjdXJyZW50QnJhbmRpbmdPYmopO1xuICB9XG5cbiAgYXN5bmMgb25CcmFuZGluZ1ZhckNoYW5nZXModmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZFZhbHVlOiBCcmFuZGluZ09wdGlvbnNKc29uID0gSlNPTi5wYXJzZSh2YWx1ZSk7XG4gICAgICBjb25zdCBmYWxsYmFja0JyYW5kaW5nOiBCcmFuZGluZ09wdGlvbnNKc29uID0gY2xvbmVEZWVwKFxuICAgICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmZhbGxiYWNrQnJhbmRpbmckKVxuICAgICAgKTtcbiAgICAgIHRoaXMuY2xlYW5VcE9iamVjdHMocGFyc2VkVmFsdWUpO1xuICAgICAgdGhpcy5jbGVhblVwT2JqZWN0cyhwYXJzZWRWYWx1ZS5icmFuZGluZ0Nzc1ZhcnMpO1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZmFsbGJhY2tCcmFuZGluZykge1xuICAgICAgICBpZiAocGFyc2VkVmFsdWVba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcGFyc2VkVmFsdWVba2V5XSA9IGZhbGxiYWNrQnJhbmRpbmdba2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgcGFyc2VkVmFsdWVba2V5XSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIGZhbGxiYWNrQnJhbmRpbmdba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBwYXJzZWRWYWx1ZVtrZXldID0gT2JqZWN0LmFzc2lnbihmYWxsYmFja0JyYW5kaW5nW2tleV0sIHBhcnNlZFZhbHVlW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmFwcGx5QnJhbmRpbmdTZXJ2aWNlLmFwcGx5QnJhbmRpbmcocGFyc2VkVmFsdWUpO1xuICAgICAgdGhpcy5uZXdCcmFuZGluZy5uZXh0KHBhcnNlZFZhbHVlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBub3QgdmFsaWQgSlNPTjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsZWFuVXBPYmplY3RzKHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBPYmplY3Qua2V5cyh2YWx1ZSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKHZhbHVlW2tleV0gPT09IG51bGwgfHwgdmFsdWVba2V5XSA9PT0gJycpIHtcbiAgICAgICAgZGVsZXRlIHZhbHVlW2tleV07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxjOHktdGl0bGU+e3sgYnJhbmRpbmdOYW1lJCB8IGFzeW5jIH19PC9jOHktdGl0bGU+XG5cbjxjOHktYnJlYWRjcnVtYj5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCIncGFsZXR0ZSdcIlxuICAgIFtsYWJlbF09XCInQnJhbmRpbmcnIHwgdHJhbnNsYXRlXCJcbiAgICBbcGF0aF09XCInL2JyYW5kaW5nLWVkaXRvcidcIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidjb2cnXCJcbiAgICBbbGFiZWxdPVwiYnJhbmRpbmdOYW1lJCB8IGFzeW5jXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbjwvYzh5LWJyZWFkY3J1bWI+XG5cbjxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtLWZ1bGxwYWdlIGNvbnRlbnQtZnVsbHBhZ2VcIj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHNlcGFyYXRvclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlXCI+e3sgYnJhbmRpbmdOYW1lJCB8IGFzeW5jIH19IOKAlCB7eyB0YWJOYW1lJCB8IGFzeW5jIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gIDwvZGl2PlxuICA8cm91dGVyLW91dGxldFxuICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgKGFjdGl2YXRlKT1cInJvdXRlQWN0aXZhdGVkKCRldmVudClcIlxuICA+PC9yb3V0ZXItb3V0bGV0PlxuXG4gIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBzZXBhcmF0b3JcIj5cbiAgICA8IS0tIGZvb3RlciBjb250ZW50IC0tPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1jYW5jZWxcIlxuICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgID5cbiAgICAgIENhbmNlbFxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1zYXZlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtQ29udHJvbC5pbnZhbGlkXCJcbiAgICAgIChjbGljayk9XCJzYXZlQnJhbmRpbmcoKVwiXG4gICAgICB0cmFuc2xhdGVcbiAgICA+XG4gICAgICBTYXZlXG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgZGF0YS1jeT1cImJyYW5kaW5nLXNhdmUtYXNcIlxuICAgICAgW2Rpc2FibGVkXT1cImZvcm1Db250cm9sLmludmFsaWRcIlxuICAgICAgKGNsaWNrKT1cIm9wZW5QcmV2aWV3KClcIlxuICAgICAgdHJhbnNsYXRlXG4gICAgPlxuICAgICAgT3BlbiBwcmV2aWV3XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgZGF0YS1jeT1cImJyYW5kaW5nLXNldC1hcy1sYXRlc3RcIlxuICAgICAgKGNsaWNrKT1cIm1hcmtBc0FjdGl2ZSgpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0dsb2JhbEJyYW5kaW5nJCB8IGFzeW5jXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgID5cbiAgICAgIFNldCBhcyBnbG9iYWxcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -18,6 +18,7 @@ import { CockpitSetupStep2Component } from './setup/cockpit-setup-step2.componen
|
|
|
18
18
|
import { CockpitSetupStep3Component } from './setup/cockpit-setup-step3.component';
|
|
19
19
|
import { CockpitSetupStep4Component } from './setup/cockpit-setup-step4.component';
|
|
20
20
|
import { CockpitSetupStepperButtonsComponent } from './setup/cockpit-setup-stepper-buttons.component';
|
|
21
|
+
import { PluginLoadedPipe } from '@c8y/ngx-components';
|
|
21
22
|
import * as i0 from "@angular/core";
|
|
22
23
|
import * as i1 from "./cockpit-config.service";
|
|
23
24
|
export class CockpitConfigModule {
|
|
@@ -40,7 +41,8 @@ export class CockpitConfigModule {
|
|
|
40
41
|
PopoverModule,
|
|
41
42
|
TooltipModule,
|
|
42
43
|
EcosystemModule,
|
|
43
|
-
IconSelectorModule
|
|
44
|
+
IconSelectorModule,
|
|
45
|
+
PluginLoadedPipe] }); }
|
|
44
46
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CockpitConfigModule, providers: [
|
|
45
47
|
CockpitConfigGuard,
|
|
46
48
|
hookRoute({
|
|
@@ -107,7 +109,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
107
109
|
PopoverModule,
|
|
108
110
|
TooltipModule,
|
|
109
111
|
EcosystemModule,
|
|
110
|
-
IconSelectorModule
|
|
112
|
+
IconSelectorModule,
|
|
113
|
+
PluginLoadedPipe
|
|
111
114
|
],
|
|
112
115
|
providers: [
|
|
113
116
|
CockpitConfigGuard,
|
|
@@ -150,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
150
153
|
]
|
|
151
154
|
}]
|
|
152
155
|
}], ctorParameters: () => [{ type: i1.CockpitConfigService }] });
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ja3BpdC1jb25maWcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29ja3BpdC1jb25maWcvY29ja3BpdC1jb25maWcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1AsYUFBYSxFQUNiLFNBQVMsRUFDVCxXQUFXLEVBRVgsUUFBUSxFQUNULE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUNBQXVD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bUJBQW1COzRCQUN6QixTQUFTLEVBQUUsNkJBQTZCOzRCQUN4QyxXQUFXLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzt5QkFDbEMsQ0FBQzt3QkFDRixhQUFhLENBQUMsa0JBQWtCLENBQUM7d0JBQ2pDLFdBQVcsQ0FBQzs0QkFDVjtnQ0FDRSxTQUFTLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0NBQ3pCLFNBQVMsRUFBRSwwQkFBMEI7Z0NBQ3JDLEtBQUssRUFBRSxPQUFPLENBQUMscUNBQXFDLENBQUM7Z0NBQ3JELE9BQU8sRUFBRSxhQUFhO2dDQUN0QixRQUFRLEVBQUUsRUFBRTs2QkFDYjs0QkFDRDtnQ0FDRSxTQUFTLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0NBQ3pCLFNBQVMsRUFBRSwwQkFBMEI7Z0NBQ3JDLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO2dDQUMxQixPQUFPLEVBQUUsaUJBQWlCO2dDQUMxQixRQUFRLEVBQUUsRUFBRTs2QkFDYjs0QkFDRDtnQ0FDRSxTQUFTLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0NBQ3pCLFNBQVMsRUFBRSwwQkFBMEI7Z0NBQ3JDLEtBQUssRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7Z0NBQ2pDLE9BQU8sRUFBRSxzQkFBc0I7Z0NBQy9CLFFBQVEsRUFBRSxFQUFFOzZCQUNiOzRCQUNEO2dDQUNFLFNBQVMsRUFBRSxRQUFRLENBQUMsS0FBSztnQ0FDekIsU0FBUyxFQUFFLDBCQUEwQjtnQ0FDckMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztnQ0FDaEMsT0FBTyxFQUFFLHNCQUFzQjtnQ0FDL0IsUUFBUSxFQUFFLEVBQUU7NkJBQ2I7eUJBQ2EsQ0FBQztxQkFDbEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29yZU1vZHVsZSxcbiAgZ2V0dGV4dCxcbiAgaG9va05hdmlnYXRvcixcbiAgaG9va1JvdXRlLFxuICBob29rU3RlcHBlcixcbiAgU2V0dXBTdGVwLFxuICBTdGVwcGVyc1xufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFzc2V0U2VsZWN0b3JNb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Fzc2V0cy1uYXZpZ2F0b3InO1xuaW1wb3J0IHsgRWNvc3lzdGVtTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9lY29zeXN0ZW0nO1xuaW1wb3J0IHsgSWNvblNlbGVjdG9yTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9pY29uLXNlbGVjdG9yJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3BvcG92ZXInO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvdG9vbHRpcCc7XG5pbXBvcnQgeyBDb2NrcGl0Q29uZmlnR3VhcmQgfSBmcm9tICcuL2NvY2twaXQtY29uZmlnLmd1YXJkJztcbmltcG9ydCB7IENPQ0tQSVRfQ09ORklHX1BBVEggfSBmcm9tICcuL2NvY2twaXQtY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IENvY2twaXRDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jb2NrcGl0LWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IENvY2twaXRDb25maWd1cmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb2NrcGl0LWNvbmZpZ3VyYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZlYXR1cmVDb25maWdDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmUtY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIb21lRGFzaGJvYXJkQ29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi9ob21lLWRhc2hib2FyZC1jb25maWcuY29tcG9uZW50JztcbmltcG9ydCB7IE1pc2NDb25maWdDb21wb25lbnQgfSBmcm9tICcuL21pc2MtY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb290Tm9kZUNvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vcm9vdC1ub2RlLWNvbmZpZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ja3BpdFNldHVwU3RlcDFDb21wb25lbnQgfSBmcm9tICcuL3NldHVwL2NvY2twaXQtc2V0dXAtc3RlcDEuY29tcG9uZW50JztcbmltcG9ydCB7IENvY2twaXRTZXR1cFN0ZXAyQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR1cC9jb2NrcGl0LXNldHVwLXN0ZXAyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2NrcGl0U2V0dXBTdGVwM0NvbXBvbmVudCB9IGZyb20gJy4vc2V0dXAvY29ja3BpdC1zZXR1cC1zdGVwMy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ja3BpdFNldHVwU3RlcDRDb21wb25lbnQgfSBmcm9tICcuL3NldHVwL2NvY2twaXQtc2V0dXAtc3RlcDQuY29tcG9uZW50JztcbmltcG9ydCB7IENvY2twaXRTZXR1cFN0ZXBwZXJCdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR1cC9jb2NrcGl0LXNldHVwLXN0ZXBwZXItYnV0dG9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGx1Z2luTG9hZGVkUGlwZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDb2NrcGl0Q29uZmlndXJhdGlvbkNvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwMUNvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwMkNvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwM0NvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwNENvbXBvbmVudCxcbiAgICBGZWF0dXJlQ29uZmlnQ29tcG9uZW50LFxuICAgIFJvb3ROb2RlQ29uZmlnQ29tcG9uZW50LFxuICAgIEhvbWVEYXNoYm9hcmRDb25maWdDb21wb25lbnQsXG4gICAgTWlzY0NvbmZpZ0NvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwcGVyQnV0dG9uc0NvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29yZU1vZHVsZSxcbiAgICBBc3NldFNlbGVjdG9yTW9kdWxlLFxuICAgIFBvcG92ZXJNb2R1bGUsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBFY29zeXN0ZW1Nb2R1bGUsXG4gICAgSWNvblNlbGVjdG9yTW9kdWxlLFxuICAgIFBsdWdpbkxvYWRlZFBpcGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ29ja3BpdENvbmZpZ0d1YXJkLFxuICAgIGhvb2tSb3V0ZSh7XG4gICAgICBwYXRoOiBDT0NLUElUX0NPTkZJR19QQVRILFxuICAgICAgY29tcG9uZW50OiBDb2NrcGl0Q29uZmlndXJhdGlvbkNvbXBvbmVudCxcbiAgICAgIGNhbkFjdGl2YXRlOiBbQ29ja3BpdENvbmZpZ0d1YXJkXVxuICAgIH0pLFxuICAgIGhvb2tOYXZpZ2F0b3IoQ29ja3BpdENvbmZpZ0d1YXJkKSxcbiAgICBob29rU3RlcHBlcihbXG4gICAgICB7XG4gICAgICAgIHN0ZXBwZXJJZDogU3RlcHBlcnMuU0VUVVAsXG4gICAgICAgIGNvbXBvbmVudDogQ29ja3BpdFNldHVwU3RlcDFDb21wb25lbnQsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdUaXRsZSwgaWNvbiwgYW5kIG5hdmlnYXRvciBjb2xsYXBzZScpLFxuICAgICAgICBzZXR1cElkOiAnY29ja3BpdE1pc2MnLFxuICAgICAgICBwcmlvcml0eTogNDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHN0ZXBwZXJJZDogU3RlcHBlcnMuU0VUVVAsXG4gICAgICAgIGNvbXBvbmVudDogQ29ja3BpdFNldHVwU3RlcDJDb21wb25lbnQsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdGZWF0dXJlcycpLFxuICAgICAgICBzZXR1cElkOiAnY29ja3BpdEZlYXR1cmVzJyxcbiAgICAgICAgcHJpb3JpdHk6IDMwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdGVwcGVySWQ6IFN0ZXBwZXJzLlNFVFVQLFxuICAgICAgICBjb21wb25lbnQ6IENvY2twaXRTZXR1cFN0ZXAzQ29tcG9uZW50LFxuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnVG9wIGxldmVsIG5vZGVzJyksXG4gICAgICAgIHNldHVwSWQ6ICdjb2NrcGl0VG9wTGV2ZWxOb2RlcycsXG4gICAgICAgIHByaW9yaXR5OiAyMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc3RlcHBlcklkOiBTdGVwcGVycy5TRVRVUCxcbiAgICAgICAgY29tcG9uZW50OiBDb2NrcGl0U2V0dXBTdGVwNENvbXBvbmVudCxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ0hvbWUgZGFzaGJvYXJkJyksXG4gICAgICAgIHNldHVwSWQ6ICdjb2NrcGl0SG9tZURhc2hib2FyZCcsXG4gICAgICAgIHByaW9yaXR5OiAxMFxuICAgICAgfVxuICAgIF0gYXMgU2V0dXBTdGVwW10pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ29ja3BpdENvbmZpZ01vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogQ29ja3BpdENvbmZpZ1NlcnZpY2UpIHtcbiAgICAvLyBvbmx5IGZvciBESSwgbm90IHVzZWQgYnV0IG5lZWRlZC5cbiAgfVxufVxuIl19
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@c8y/ngx-components";
|
|
4
|
-
import * as i2 from "@angular/
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/forms";
|
|
5
6
|
export class FeatureConfigComponent {
|
|
6
7
|
constructor() {
|
|
7
8
|
this.onUpdate = new EventEmitter();
|
|
@@ -10,14 +11,14 @@ export class FeatureConfigComponent {
|
|
|
10
11
|
this.onUpdate.emit();
|
|
11
12
|
}
|
|
12
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FeatureConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: FeatureConfigComponent, selector: "c8y-feature-config", inputs: { config: "config" }, outputs: { onUpdate: "onUpdate" }, ngImport: i0, template: "<c8y-list-group>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"search\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global search' | translate }}</p>\n <p>\n <small translate>Display the global search in the main header.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global search' | translate }}\"\n >\n <input\n name=\"search\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.search\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Groups' | translate }}</p>\n <p>\n <small translate>Display top level groups under the Groups navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Groups' | translate }}\"\n >\n <input\n name=\"groups\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.groups\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"bell\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Alarms' | translate }}</p>\n <p>\n <small translate>Display a link to the global alarms list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global Alarms view' | translate }}\"\n >\n <input\n name=\"alarms\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.alarms\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-explorer\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data explorer' | translate }}</p>\n <p>\n <small translate>\n Display the data explorer in the navigator menu and on the group tabs.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data explorer' | translate }}\"\n >\n <input\n name=\"dataExplorer\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataExplorer\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-reports\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Reports' | translate }}</p>\n <p>\n <small translate>Display a link to the Reports list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Reports' | translate }}\"\n >\n <input\n name=\"reports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.reports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"graph-report\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Exports' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Exports list under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Exports' | translate }}\"\n >\n <input\n name=\"exports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.exports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-points\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data point library' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Data point library under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data point library' | translate }}\"\n >\n <input\n name=\"dataPointLibrary\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataPointLibrary\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global smart rules' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Global smart rules under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global smart rules' | translate }}\"\n >\n <input\n name=\"globalSmartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.globalSmartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group-open\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Subassets view' | translate }}</p>\n <p><small translate>Display the \"Subassets\" tab on groups.</small></p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Subassets view' | translate }}\"\n >\n <input\n name=\"subassets\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.subassets\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Smart rules for devices and groups' | translate }}</p>\n <p>\n <small translate>Display the smart rules tab on groups and devices.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Smart rules for devices and groups' | translate }}\"\n >\n <input\n name=\"smartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.smartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"management1\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Dashboard manager' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Dashboard manager under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Dashboard manager' | translate }}\"\n >\n <input\n name=\"dashboardManager\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dashboardManager\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n</c8y-list-group>\n", dependencies: [{ kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i1.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: FeatureConfigComponent, selector: "c8y-feature-config", inputs: { config: "config" }, outputs: { onUpdate: "onUpdate" }, ngImport: i0, template: "<c8y-list-group>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'SearchModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"search\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global search' | translate }}</p>\n <p>\n <small translate>Display the global search in the main header.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global search' | translate }}\"\n >\n <input\n name=\"search\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.search\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Groups' | translate }}</p>\n <p>\n <small translate>Display top level groups under the Groups navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Groups' | translate }}\"\n >\n <input\n name=\"groups\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.groups\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'CockpitAlarmsModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"bell\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Alarms' | translate }}</p>\n <p>\n <small translate>Display a link to the global alarms list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global Alarms view' | translate }}\"\n >\n <input\n name=\"alarms\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.alarms\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-explorer\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data explorer' | translate }}</p>\n <p>\n <small translate>\n Display the data explorer in the navigator menu and on the group tabs.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data explorer' | translate }}\"\n >\n <input\n name=\"dataExplorer\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataExplorer\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'ReportDashboardModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"c8y-reports\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Reports' | translate }}</p>\n <p>\n <small translate>Display a link to the Reports list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Reports' | translate }}\"\n >\n <input\n name=\"reports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.reports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"graph-report\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Exports' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Exports list under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Exports' | translate }}\"\n >\n <input\n name=\"exports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.exports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'DatapointLibraryModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"c8y-data-points\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data point library' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Data point library under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data point library' | translate }}\"\n >\n <input\n name=\"dataPointLibrary\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataPointLibrary\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global smart rules' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Global smart rules under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global smart rules' | translate }}\"\n >\n <input\n name=\"globalSmartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.globalSmartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group-open\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Subassets view' | translate }}</p>\n <p><small translate>Display the \"Subassets\" tab on groups.</small></p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Subassets view' | translate }}\"\n >\n <input\n name=\"subassets\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.subassets\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Smart rules for devices and groups' | translate }}</p>\n <p>\n <small translate>Display the smart rules tab on groups and devices.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Smart rules for devices and groups' | translate }}\"\n >\n <input\n name=\"smartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.smartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"management1\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Dashboard manager' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Dashboard manager under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Dashboard manager' | translate }}\"\n >\n <input\n name=\"dashboardManager\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dashboardManager\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n</c8y-list-group>\n", dependencies: [{ kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i1.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.PluginLoadedPipe, name: "c8yPluginLoaded" }] }); }
|
|
14
15
|
}
|
|
15
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FeatureConfigComponent, decorators: [{
|
|
16
17
|
type: Component,
|
|
17
|
-
args: [{ selector: 'c8y-feature-config', template: "<c8y-list-group>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"search\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global search' | translate }}</p>\n <p>\n <small translate>Display the global search in the main header.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global search' | translate }}\"\n >\n <input\n name=\"search\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.search\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Groups' | translate }}</p>\n <p>\n <small translate>Display top level groups under the Groups navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Groups' | translate }}\"\n >\n <input\n name=\"groups\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.groups\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"bell\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Alarms' | translate }}</p>\n <p>\n <small translate>Display a link to the global alarms list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global Alarms view' | translate }}\"\n >\n <input\n name=\"alarms\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.alarms\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-explorer\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data explorer' | translate }}</p>\n <p>\n <small translate>\n Display the data explorer in the navigator menu and on the group tabs.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data explorer' | translate }}\"\n >\n <input\n name=\"dataExplorer\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataExplorer\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-reports\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Reports' | translate }}</p>\n <p>\n <small translate>Display a link to the Reports list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Reports' | translate }}\"\n >\n <input\n name=\"reports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.reports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"graph-report\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Exports' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Exports list under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Exports' | translate }}\"\n >\n <input\n name=\"exports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.exports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-points\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data point library' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Data point library under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data point library' | translate }}\"\n >\n <input\n name=\"dataPointLibrary\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataPointLibrary\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global smart rules' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Global smart rules under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global smart rules' | translate }}\"\n >\n <input\n name=\"globalSmartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.globalSmartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group-open\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Subassets view' | translate }}</p>\n <p><small translate>Display the \"Subassets\" tab on groups.</small></p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Subassets view' | translate }}\"\n >\n <input\n name=\"subassets\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.subassets\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Smart rules for devices and groups' | translate }}</p>\n <p>\n <small translate>Display the smart rules tab on groups and devices.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Smart rules for devices and groups' | translate }}\"\n >\n <input\n name=\"smartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.smartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"management1\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Dashboard manager' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Dashboard manager under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Dashboard manager' | translate }}\"\n >\n <input\n name=\"dashboardManager\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dashboardManager\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n</c8y-list-group>\n" }]
|
|
18
|
+
args: [{ selector: 'c8y-feature-config', template: "<c8y-list-group>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'SearchModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"search\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global search' | translate }}</p>\n <p>\n <small translate>Display the global search in the main header.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global search' | translate }}\"\n >\n <input\n name=\"search\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.search\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Groups' | translate }}</p>\n <p>\n <small translate>Display top level groups under the Groups navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Groups' | translate }}\"\n >\n <input\n name=\"groups\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.groups\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'CockpitAlarmsModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"bell\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Alarms' | translate }}</p>\n <p>\n <small translate>Display a link to the global alarms list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global Alarms view' | translate }}\"\n >\n <input\n name=\"alarms\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.alarms\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-explorer\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data explorer' | translate }}</p>\n <p>\n <small translate>\n Display the data explorer in the navigator menu and on the group tabs.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data explorer' | translate }}\"\n >\n <input\n name=\"dataExplorer\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataExplorer\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'ReportDashboardModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"c8y-reports\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Reports' | translate }}</p>\n <p>\n <small translate>Display a link to the Reports list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Reports' | translate }}\"\n >\n <input\n name=\"reports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.reports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"graph-report\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Exports' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Exports list under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Exports' | translate }}\"\n >\n <input\n name=\"exports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.exports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'DatapointLibraryModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"c8y-data-points\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data point library' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Data point library under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data point library' | translate }}\"\n >\n <input\n name=\"dataPointLibrary\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataPointLibrary\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global smart rules' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Global smart rules under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global smart rules' | translate }}\"\n >\n <input\n name=\"globalSmartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.globalSmartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group-open\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Subassets view' | translate }}</p>\n <p><small translate>Display the \"Subassets\" tab on groups.</small></p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Subassets view' | translate }}\"\n >\n <input\n name=\"subassets\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.subassets\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Smart rules for devices and groups' | translate }}</p>\n <p>\n <small translate>Display the smart rules tab on groups and devices.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Smart rules for devices and groups' | translate }}\"\n >\n <input\n name=\"smartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.smartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"management1\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Dashboard manager' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Dashboard manager under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Dashboard manager' | translate }}\"\n >\n <input\n name=\"dashboardManager\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dashboardManager\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n</c8y-list-group>\n" }]
|
|
18
19
|
}], propDecorators: { config: [{
|
|
19
20
|
type: Input
|
|
20
21
|
}], onUpdate: [{
|
|
21
22
|
type: Output
|
|
22
23
|
}] } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29ja3BpdC1jb25maWcvZmVhdHVyZS1jb25maWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vY29ja3BpdC1jb25maWcvZmVhdHVyZS1jb25maWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU92RSxNQUFNLE9BQU8sc0JBQXNCO0lBSm5DO1FBU0UsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FLckM7SUFIQyxjQUFjO1FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzhHQVRVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDJIQ1BuQyx3aVFBdVFBOzsyRkRoUWEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFLOUIsTUFBTTtzQkFETCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2NrcGl0Q29uZmlnIH0gZnJvbSAnLi9jb2NrcGl0LWNvbmZpZy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1mZWF0dXJlLWNvbmZpZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlLWNvbmZpZy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZUNvbmZpZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGNvbmZpZzogQ29ja3BpdENvbmZpZztcblxuICBAT3V0cHV0KClcbiAgb25VcGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgdXBkYXRlRmVhdHVyZXMoKSB7XG4gICAgdGhpcy5vblVwZGF0ZS5lbWl0KCk7XG4gIH1cbn1cbiIsIjxjOHktbGlzdC1ncm91cD5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwic2VhcmNoXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdHbG9iYWwgc2VhcmNoJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZT5EaXNwbGF5IHRoZSBnbG9iYWwgc2VhcmNoIGluIHRoZSBtYWluIGhlYWRlci48L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnR2xvYmFsIHNlYXJjaCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBuYW1lPVwic2VhcmNoXCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLnNlYXJjaFwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVGZWF0dXJlcygpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9jOHktbGk+XG4gIDxjOHktbGkgZGF0YS1jeT1cImZlYXR1cmUtY29uZmlnLS1mZWF0dXJlLWxpc3RcIj5cbiAgICA8Yzh5LWxpLWljb24gaWNvbj1cImM4eS1ncm91cFwiPjwvYzh5LWxpLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cD57eyAnR3JvdXBzJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZT5EaXNwbGF5IHRvcCBsZXZlbCBncm91cHMgdW5kZXIgdGhlIEdyb3VwcyBuYXZpZ2F0b3IgbWVudS48L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnR3JvdXBzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJncm91cHNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuZ3JvdXBzXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYmVsbFwiPjwvYzh5LWxpLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cD57eyAnQWxhcm1zJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZT5EaXNwbGF5IGEgbGluayB0byB0aGUgZ2xvYmFsIGFsYXJtcyBsaXN0IGluIHRoZSBuYXZpZ2F0b3IgbWVudS48L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnR2xvYmFsIEFsYXJtcyB2aWV3JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJhbGFybXNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuYWxhcm1zXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYzh5LWRhdGEtZXhwbG9yZXJcIj48L2M4eS1saS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+e3sgJ0RhdGEgZXhwbG9yZXInIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPlxuICAgICAgICAgICAgRGlzcGxheSB0aGUgZGF0YSBleHBsb3JlciBpbiB0aGUgbmF2aWdhdG9yIG1lbnUgYW5kIG9uIHRoZSBncm91cCB0YWJzLlxuICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdEYXRhIGV4cGxvcmVyJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJkYXRhRXhwbG9yZXJcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuZGF0YUV4cGxvcmVyXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYzh5LXJlcG9ydHNcIj48L2M4eS1saS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+e3sgJ1JlcG9ydHMnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPkRpc3BsYXkgYSBsaW5rIHRvIHRoZSBSZXBvcnRzIGxpc3QgaW4gdGhlIG5hdmlnYXRvciBtZW51Ljwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdSZXBvcnRzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJyZXBvcnRzXCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLnJlcG9ydHNcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpIGRhdGEtY3k9XCJmZWF0dXJlLWNvbmZpZy0tZmVhdHVyZS1saXN0XCI+XG4gICAgPGM4eS1saS1pY29uIGljb249XCJncmFwaC1yZXBvcnRcIj48L2M4eS1saS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+e3sgJ0V4cG9ydHMnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPlxuICAgICAgICAgICAgRGlzcGxheSBhIGxpbmsgdG8gdGhlIEV4cG9ydHMgbGlzdCB1bmRlciB0aGUgQ29uZmlndXJhdGlvbiBuYXZpZ2F0b3IgbWVudS5cbiAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnRXhwb3J0cycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBuYW1lPVwiZXhwb3J0c1wiXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZy5mZWF0dXJlcy5leHBvcnRzXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYzh5LWRhdGEtcG9pbnRzXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdEYXRhIHBvaW50IGxpYnJhcnknIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPlxuICAgICAgICAgICAgRGlzcGxheSBhIGxpbmsgdG8gdGhlIERhdGEgcG9pbnQgbGlicmFyeSB1bmRlciB0aGUgQ29uZmlndXJhdGlvbiBuYXZpZ2F0b3IgbWVudS5cbiAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnRGF0YSBwb2ludCBsaWJyYXJ5JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJkYXRhUG9pbnRMaWJyYXJ5XCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLmRhdGFQb2ludExpYnJhcnlcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpIGRhdGEtY3k9XCJmZWF0dXJlLWNvbmZpZy0tZmVhdHVyZS1saXN0XCI+XG4gICAgPGM4eS1saS1pY29uIGljb249XCJjOHktc21hcnQtcnVsZXNcIj48L2M4eS1saS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+e3sgJ0dsb2JhbCBzbWFydCBydWxlcycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIDxzbWFsbCB0cmFuc2xhdGU+XG4gICAgICAgICAgICBEaXNwbGF5IGEgbGluayB0byB0aGUgR2xvYmFsIHNtYXJ0IHJ1bGVzIHVuZGVyIHRoZSBDb25maWd1cmF0aW9uIG5hdmlnYXRvciBtZW51LlxuICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdHbG9iYWwgc21hcnQgcnVsZXMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbmFtZT1cImdsb2JhbFNtYXJ0UnVsZXNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuZ2xvYmFsU21hcnRSdWxlc1wiXG4gICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVGZWF0dXJlcygpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9jOHktbGk+XG4gIDxjOHktbGkgZGF0YS1jeT1cImZlYXR1cmUtY29uZmlnLS1mZWF0dXJlLWxpc3RcIj5cbiAgICA8Yzh5LWxpLWljb24gaWNvbj1cImM4eS1ncm91cC1vcGVuXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdTdWJhc3NldHMgdmlldycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDxwPjxzbWFsbCB0cmFuc2xhdGU+RGlzcGxheSB0aGUgXCJTdWJhc3NldHNcIiB0YWIgb24gZ3JvdXBzLjwvc21hbGw+PC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJjOHktc3dpdGNoIGM4eS1zd2l0Y2gtLWlubGluZSBtLWwtYXV0b1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ1N1YmFzc2V0cyB2aWV3JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJzdWJhc3NldHNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuc3ViYXNzZXRzXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYzh5LXNtYXJ0LXJ1bGVzXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdTbWFydCBydWxlcyBmb3IgZGV2aWNlcyBhbmQgZ3JvdXBzJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZT5EaXNwbGF5IHRoZSBzbWFydCBydWxlcyB0YWIgb24gZ3JvdXBzIGFuZCBkZXZpY2VzLjwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdTbWFydCBydWxlcyBmb3IgZGV2aWNlcyBhbmQgZ3JvdXBzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJzbWFydFJ1bGVzXCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLnNtYXJ0UnVsZXNcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpIGRhdGEtY3k9XCJmZWF0dXJlLWNvbmZpZy0tZmVhdHVyZS1saXN0XCI+XG4gICAgPGM4eS1saS1pY29uIGljb249XCJtYW5hZ2VtZW50MVwiPjwvYzh5LWxpLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cD57eyAnRGFzaGJvYXJkIG1hbmFnZXInIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPlxuICAgICAgICAgICAgRGlzcGxheSBhIGxpbmsgdG8gdGhlIERhc2hib2FyZCBtYW5hZ2VyIHVuZGVyIHRoZSBDb25maWd1cmF0aW9uIG5hdmlnYXRvciBtZW51LlxuICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdEYXNoYm9hcmQgbWFuYWdlcicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBuYW1lPVwiZGFzaGJvYXJkTWFuYWdlclwiXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZy5mZWF0dXJlcy5kYXNoYm9hcmRNYW5hZ2VyXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbjwvYzh5LWxpc3QtZ3JvdXA+XG4iXX0=
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29ja3BpdC1jb25maWcvZmVhdHVyZS1jb25maWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vY29ja3BpdC1jb25maWcvZmVhdHVyZS1jb25maWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPdkUsTUFBTSxPQUFPLHNCQUFzQjtJQUpuQztRQVNFLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBS3JDO0lBSEMsY0FBYztRQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQzs4R0FUVSxzQkFBc0I7a0dBQXRCLHNCQUFzQiwySENQbkMsOHdRQXVRQTs7MkZEaFFhLHNCQUFzQjtrQkFKbEMsU0FBUzsrQkFDRSxvQkFBb0I7OEJBSzlCLE1BQU07c0JBREwsS0FBSztnQkFJTixRQUFRO3NCQURQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29ja3BpdENvbmZpZyB9IGZyb20gJy4vY29ja3BpdC1jb25maWcubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZmVhdHVyZS1jb25maWcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmVhdHVyZS1jb25maWcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVDb25maWdDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBjb25maWc6IENvY2twaXRDb25maWc7XG5cbiAgQE91dHB1dCgpXG4gIG9uVXBkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHVwZGF0ZUZlYXR1cmVzKCkge1xuICAgIHRoaXMub25VcGRhdGUuZW1pdCgpO1xuICB9XG59XG4iLCI8Yzh5LWxpc3QtZ3JvdXA+XG4gIDxjOHktbGkgZGF0YS1jeT1cImZlYXR1cmUtY29uZmlnLS1mZWF0dXJlLWxpc3RcIiAqbmdJZj1cIidTZWFyY2hNb2R1bGUnIHwgYzh5UGx1Z2luTG9hZGVkIHwgYXN5bmNcIj5cbiAgICA8Yzh5LWxpLWljb24gaWNvbj1cInNlYXJjaFwiPjwvYzh5LWxpLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cD57eyAnR2xvYmFsIHNlYXJjaCcgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIDxzbWFsbCB0cmFuc2xhdGU+RGlzcGxheSB0aGUgZ2xvYmFsIHNlYXJjaCBpbiB0aGUgbWFpbiBoZWFkZXIuPC9zbWFsbD5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJjOHktc3dpdGNoIGM4eS1zd2l0Y2gtLWlubGluZSBtLWwtYXV0b1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ0dsb2JhbCBzZWFyY2gnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbmFtZT1cInNlYXJjaFwiXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZy5mZWF0dXJlcy5zZWFyY2hcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpIGRhdGEtY3k9XCJmZWF0dXJlLWNvbmZpZy0tZmVhdHVyZS1saXN0XCI+XG4gICAgPGM4eS1saS1pY29uIGljb249XCJjOHktZ3JvdXBcIj48L2M4eS1saS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+e3sgJ0dyb3VwcycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIDxzbWFsbCB0cmFuc2xhdGU+RGlzcGxheSB0b3AgbGV2ZWwgZ3JvdXBzIHVuZGVyIHRoZSBHcm91cHMgbmF2aWdhdG9yIG1lbnUuPC9zbWFsbD5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJjOHktc3dpdGNoIGM4eS1zd2l0Y2gtLWlubGluZSBtLWwtYXV0b1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ0dyb3VwcycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBuYW1lPVwiZ3JvdXBzXCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLmdyb3Vwc1wiXG4gICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVGZWF0dXJlcygpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9jOHktbGk+XG4gIDxjOHktbGkgZGF0YS1jeT1cImZlYXR1cmUtY29uZmlnLS1mZWF0dXJlLWxpc3RcIiAqbmdJZj1cIidDb2NrcGl0QWxhcm1zTW9kdWxlJyB8IGM4eVBsdWdpbkxvYWRlZCB8IGFzeW5jXCI+XG4gICAgPGM4eS1saS1pY29uIGljb249XCJiZWxsXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdBbGFybXMnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPkRpc3BsYXkgYSBsaW5rIHRvIHRoZSBnbG9iYWwgYWxhcm1zIGxpc3QgaW4gdGhlIG5hdmlnYXRvciBtZW51Ljwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdHbG9iYWwgQWxhcm1zIHZpZXcnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbmFtZT1cImFsYXJtc1wiXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZy5mZWF0dXJlcy5hbGFybXNcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpIGRhdGEtY3k9XCJmZWF0dXJlLWNvbmZpZy0tZmVhdHVyZS1saXN0XCI+XG4gICAgPGM4eS1saS1pY29uIGljb249XCJjOHktZGF0YS1leHBsb3JlclwiPjwvYzh5LWxpLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cD57eyAnRGF0YSBleHBsb3JlcicgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIDxzbWFsbCB0cmFuc2xhdGU+XG4gICAgICAgICAgICBEaXNwbGF5IHRoZSBkYXRhIGV4cGxvcmVyIGluIHRoZSBuYXZpZ2F0b3IgbWVudSBhbmQgb24gdGhlIGdyb3VwIHRhYnMuXG4gICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJjOHktc3dpdGNoIGM4eS1zd2l0Y2gtLWlubGluZSBtLWwtYXV0b1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ0RhdGEgZXhwbG9yZXInIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbmFtZT1cImRhdGFFeHBsb3JlclwiXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZy5mZWF0dXJlcy5kYXRhRXhwbG9yZXJcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpIGRhdGEtY3k9XCJmZWF0dXJlLWNvbmZpZy0tZmVhdHVyZS1saXN0XCIgKm5nSWY9XCInUmVwb3J0RGFzaGJvYXJkTW9kdWxlJyB8IGM4eVBsdWdpbkxvYWRlZCB8IGFzeW5jXCI+XG4gICAgPGM4eS1saS1pY29uIGljb249XCJjOHktcmVwb3J0c1wiPjwvYzh5LWxpLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cD57eyAnUmVwb3J0cycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIDxzbWFsbCB0cmFuc2xhdGU+RGlzcGxheSBhIGxpbmsgdG8gdGhlIFJlcG9ydHMgbGlzdCBpbiB0aGUgbmF2aWdhdG9yIG1lbnUuPC9zbWFsbD5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJjOHktc3dpdGNoIGM4eS1zd2l0Y2gtLWlubGluZSBtLWwtYXV0b1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ1JlcG9ydHMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbmFtZT1cInJlcG9ydHNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMucmVwb3J0c1wiXG4gICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVGZWF0dXJlcygpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9jOHktbGk+XG4gIDxjOHktbGkgZGF0YS1jeT1cImZlYXR1cmUtY29uZmlnLS1mZWF0dXJlLWxpc3RcIj5cbiAgICA8Yzh5LWxpLWljb24gaWNvbj1cImdyYXBoLXJlcG9ydFwiPjwvYzh5LWxpLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cD57eyAnRXhwb3J0cycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIDxzbWFsbCB0cmFuc2xhdGU+XG4gICAgICAgICAgICBEaXNwbGF5IGEgbGluayB0byB0aGUgRXhwb3J0cyBsaXN0IHVuZGVyIHRoZSBDb25maWd1cmF0aW9uIG5hdmlnYXRvciBtZW51LlxuICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdFeHBvcnRzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJleHBvcnRzXCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLmV4cG9ydHNcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpIGRhdGEtY3k9XCJmZWF0dXJlLWNvbmZpZy0tZmVhdHVyZS1saXN0XCIgKm5nSWY9XCInRGF0YXBvaW50TGlicmFyeU1vZHVsZScgfCBjOHlQbHVnaW5Mb2FkZWQgfCBhc3luY1wiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYzh5LWRhdGEtcG9pbnRzXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdEYXRhIHBvaW50IGxpYnJhcnknIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPlxuICAgICAgICAgICAgRGlzcGxheSBhIGxpbmsgdG8gdGhlIERhdGEgcG9pbnQgbGlicmFyeSB1bmRlciB0aGUgQ29uZmlndXJhdGlvbiBuYXZpZ2F0b3IgbWVudS5cbiAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnRGF0YSBwb2ludCBsaWJyYXJ5JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJkYXRhUG9pbnRMaWJyYXJ5XCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLmRhdGFQb2ludExpYnJhcnlcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpIGRhdGEtY3k9XCJmZWF0dXJlLWNvbmZpZy0tZmVhdHVyZS1saXN0XCI+XG4gICAgPGM4eS1saS1pY29uIGljb249XCJjOHktc21hcnQtcnVsZXNcIj48L2M4eS1saS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+e3sgJ0dsb2JhbCBzbWFydCBydWxlcycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIDxzbWFsbCB0cmFuc2xhdGU+XG4gICAgICAgICAgICBEaXNwbGF5IGEgbGluayB0byB0aGUgR2xvYmFsIHNtYXJ0IHJ1bGVzIHVuZGVyIHRoZSBDb25maWd1cmF0aW9uIG5hdmlnYXRvciBtZW51LlxuICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdHbG9iYWwgc21hcnQgcnVsZXMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbmFtZT1cImdsb2JhbFNtYXJ0UnVsZXNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuZ2xvYmFsU21hcnRSdWxlc1wiXG4gICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVGZWF0dXJlcygpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9jOHktbGk+XG4gIDxjOHktbGkgZGF0YS1jeT1cImZlYXR1cmUtY29uZmlnLS1mZWF0dXJlLWxpc3RcIj5cbiAgICA8Yzh5LWxpLWljb24gaWNvbj1cImM4eS1ncm91cC1vcGVuXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdTdWJhc3NldHMgdmlldycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDxwPjxzbWFsbCB0cmFuc2xhdGU+RGlzcGxheSB0aGUgXCJTdWJhc3NldHNcIiB0YWIgb24gZ3JvdXBzLjwvc21hbGw+PC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJjOHktc3dpdGNoIGM4eS1zd2l0Y2gtLWlubGluZSBtLWwtYXV0b1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ1N1YmFzc2V0cyB2aWV3JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJzdWJhc3NldHNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuc3ViYXNzZXRzXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYzh5LXNtYXJ0LXJ1bGVzXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdTbWFydCBydWxlcyBmb3IgZGV2aWNlcyBhbmQgZ3JvdXBzJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZT5EaXNwbGF5IHRoZSBzbWFydCBydWxlcyB0YWIgb24gZ3JvdXBzIGFuZCBkZXZpY2VzLjwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdTbWFydCBydWxlcyBmb3IgZGV2aWNlcyBhbmQgZ3JvdXBzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJzbWFydFJ1bGVzXCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLnNtYXJ0UnVsZXNcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpIGRhdGEtY3k9XCJmZWF0dXJlLWNvbmZpZy0tZmVhdHVyZS1saXN0XCI+XG4gICAgPGM4eS1saS1pY29uIGljb249XCJtYW5hZ2VtZW50MVwiPjwvYzh5LWxpLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cD57eyAnRGFzaGJvYXJkIG1hbmFnZXInIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPlxuICAgICAgICAgICAgRGlzcGxheSBhIGxpbmsgdG8gdGhlIERhc2hib2FyZCBtYW5hZ2VyIHVuZGVyIHRoZSBDb25maWd1cmF0aW9uIG5hdmlnYXRvciBtZW51LlxuICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdEYXNoYm9hcmQgbWFuYWdlcicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBuYW1lPVwiZGFzaGJvYXJkTWFuYWdlclwiXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZy5mZWF0dXJlcy5kYXNoYm9hcmRNYW5hZ2VyXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbjwvYzh5LWxpc3QtZ3JvdXA+XG4iXX0=
|