@c8y/ngx-components 1018.503.52 → 1018.503.56
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/context-dashboard/device-info-dashboard/device-info-dashboard.component.d.ts +1 -1
- package/core/common/ApplicationOptions.d.ts +4 -1
- package/esm2020/context-dashboard/device-info-dashboard/device-info-dashboard.component.mjs +12 -12
- package/esm2020/core/common/ApplicationOptions.mjs +1 -1
- package/esm2020/core/dashboard/wiget-time-context/widget-time-context.component.mjs +4 -3
- package/esm2020/protocol-lwm2m/components/configuration/lwm2m-configuration.component.mjs +2 -1
- package/esm2020/protocol-lwm2m/components/configuration/typed-forms/connectivity-settings.component.mjs +8 -12
- package/esm2020/protocol-lwm2m/components/configuration/typed-forms/single-server-settings.component.mjs +21 -9
- package/esm2020/protocol-lwm2m/model/index.mjs +3 -1
- package/esm2020/protocol-lwm2m/services/lwm2m-configuration.service.mjs +64 -5
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs +10 -10
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +30 -21
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-model.mjs +2 -0
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-model.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-services.mjs +63 -4
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-services.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +3 -2
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs +10 -10
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +27 -19
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-model.mjs +2 -0
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-model.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-services.mjs +63 -4
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-services.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +3 -2
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/protocol-lwm2m/components/configuration/typed-forms/connectivity-settings.component.d.ts +1 -4
- package/protocol-lwm2m/components/configuration/typed-forms/single-server-settings.component.d.ts +16 -22
- package/protocol-lwm2m/model/index.d.ts +11 -1
- package/protocol-lwm2m/services/lwm2m-configuration.service.d.ts +8 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { CoreModule, gettext } from '@c8y/ngx-components';
|
|
3
3
|
import { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';
|
|
4
|
-
import { Endpoint
|
|
4
|
+
import { Endpoint } from '@c8y/ngx-components/protocol-lwm2m/model';
|
|
5
5
|
import { Lwm2mFormWrapperBase } from './form-wrapper-base.component';
|
|
6
6
|
import { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';
|
|
7
|
+
import { delay, map } from 'rxjs/operators';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "@c8y/ngx-components/protocol-lwm2m/services";
|
|
9
10
|
import * as i2 from "@c8y/ngx-components";
|
|
@@ -16,15 +17,16 @@ export class Lwm2mFormConnectivitySettings extends Lwm2mFormWrapperBase {
|
|
|
16
17
|
this.endpoint = Endpoint.connectivity;
|
|
17
18
|
}
|
|
18
19
|
createForm() {
|
|
19
|
-
const DISABLED = 'DISABLED';
|
|
20
20
|
const selects = [
|
|
21
21
|
{
|
|
22
22
|
key: 'bootstrapConnectivity',
|
|
23
|
-
label: gettext('Bootstrap server authentication')
|
|
23
|
+
label: gettext('Bootstrap server authentication'),
|
|
24
|
+
options: this.service.securityModesRaw$.pipe(map(dictObjs => dictObjs.filter(o => o?.useInBootstrapConnectivity)), delay(1))
|
|
24
25
|
},
|
|
25
26
|
{
|
|
26
27
|
key: 'serverConnectivity',
|
|
27
|
-
label: gettext('Server authentication')
|
|
28
|
+
label: gettext('Server authentication'),
|
|
29
|
+
options: this.service.securityModesRaw$.pipe(map(dictObjs => dictObjs.filter(o => o?.useInServerConnectivity)), delay(1))
|
|
28
30
|
}
|
|
29
31
|
];
|
|
30
32
|
return [
|
|
@@ -40,13 +42,7 @@ export class Lwm2mFormConnectivitySettings extends Lwm2mFormWrapperBase {
|
|
|
40
42
|
{
|
|
41
43
|
type: '#securityMode',
|
|
42
44
|
props: {
|
|
43
|
-
options:
|
|
44
|
-
{ label: DISABLED, value: DISABLED },
|
|
45
|
-
...Object.values(Mode).map(value => ({
|
|
46
|
-
label: value.match('X509') ? 'X.509' : value,
|
|
47
|
-
value
|
|
48
|
-
}))
|
|
49
|
-
]
|
|
45
|
+
options: select.options
|
|
50
46
|
}
|
|
51
47
|
},
|
|
52
48
|
{ type: '#pskId' },
|
|
@@ -64,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
64
60
|
type: Component,
|
|
65
61
|
args: [{ imports: [CoreModule, Lwm2mUIThemeModule], standalone: true, template: "<formly-form\n *ngIf=\"fields?.length > 0; else empty\"\n [model]=\"model\"\n [form]=\"form\"\n [fields]=\"fields\"\n [options]=\"options\"\n data-cy=\"lwm2m-device-configuration--formly-form\"\n></formly-form>\n<ng-template #empty>\n <c8y-ui-empty-state\n [icon]=\"'c8y-device-protocols'\"\n title=\"{{ 'No configuration selected' | translate }}\"\n subtitle=\"{{ 'Select a configuration on the left' | translate }}\"\n ></c8y-ui-empty-state>\n</ng-template>\n" }]
|
|
66
62
|
}], ctorParameters: function () { return [{ type: i1.Lwm2mConfigurationService }]; } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGl2aXR5LXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb3RvY29sLWx3bTJtL2NvbXBvbmVudHMvY29uZmlndXJhdGlvbi90eXBlZC1mb3Jtcy9jb25uZWN0aXZpdHktc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG9jb2wtbHdtMm0vY29tcG9uZW50cy9jb25maWd1cmF0aW9uL3R5cGVkLWZvcm1zL2Zvcm0td3JhcHBlci1iYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQXdCLFFBQVEsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQU81QyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsb0JBQTBDO0lBRTNGLFlBQXNCLE9BQXdEO1FBQzVFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURLLFlBQU8sR0FBUCxPQUFPLENBQWlEO1FBRHBFLGFBQVEsR0FBYSxRQUFRLENBQUMsWUFBWSxDQUFDO0lBR3JELENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxPQUFPLEdBQUc7WUFDZDtnQkFDRSxHQUFHLEVBQUUsdUJBQXVCO2dCQUM1QixLQUFLLEVBQUUsT0FBTyxDQUFDLGlDQUFpQyxDQUFDO2dCQUNqRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQzFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxFQUNwRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ1Q7YUFDRjtZQUNEO2dCQUNFLEdBQUcsRUFBRSxvQkFBb0I7Z0JBQ3pCLEtBQUssRUFBRSxPQUFPLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3ZDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FDMUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLEVBQ2pFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDVDthQUNGO1NBQ0YsQ0FBQztRQUVGLE9BQU87WUFDTDtnQkFDRSxVQUFVLEVBQUU7b0JBQ1YsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDeEIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO3dCQUNmLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQzt3QkFDcEIsS0FBSyxFQUFFOzRCQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSzt5QkFDcEI7d0JBQ0QsVUFBVSxFQUFFOzRCQUNWO2dDQUNFLElBQUksRUFBRSxlQUFlO2dDQUNyQixLQUFLLEVBQUU7b0NBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO2lDQUN4Qjs2QkFDRjs0QkFDRCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7NEJBQ2xCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTt5QkFDcEI7cUJBQ0YsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7MEhBakRVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLCtGQ2IxQyxnZUFlQSwyQ0RMWSxVQUFVLDJkQUFFLGtCQUFrQjsyRkFHN0IsNkJBQTZCO2tCQUx6QyxTQUFTOzhCQUVDLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLGNBQzdCLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEx3bTJtVUlUaGVtZU1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vZm9ybWx5JztcbmltcG9ydCB7IENvbm5lY3Rpdml0eVNldHRpbmdzLCBFbmRwb2ludCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vbW9kZWwnO1xuaW1wb3J0IHsgTHdtMm1Gb3JtV3JhcHBlckJhc2UgfSBmcm9tICcuL2Zvcm0td3JhcHBlci1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMd20ybUNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9wcm90b2NvbC1sd20ybS9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBkZWxheSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0td3JhcHBlci1iYXNlLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIEx3bTJtVUlUaGVtZU1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTHdtMm1Gb3JtQ29ubmVjdGl2aXR5U2V0dGluZ3MgZXh0ZW5kcyBMd20ybUZvcm1XcmFwcGVyQmFzZTxDb25uZWN0aXZpdHlTZXR0aW5ncz4ge1xuICBwcm90ZWN0ZWQgZW5kcG9pbnQ6IEVuZHBvaW50ID0gRW5kcG9pbnQuY29ubmVjdGl2aXR5O1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2VydmljZTogTHdtMm1Db25maWd1cmF0aW9uU2VydmljZTxDb25uZWN0aXZpdHlTZXR0aW5ncz4pIHtcbiAgICBzdXBlcihzZXJ2aWNlKTtcbiAgfVxuXG4gIGNyZWF0ZUZvcm0oKSB7XG4gICAgY29uc3Qgc2VsZWN0cyA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnYm9vdHN0cmFwQ29ubmVjdGl2aXR5JyxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ0Jvb3RzdHJhcCBzZXJ2ZXIgYXV0aGVudGljYXRpb24nKSxcbiAgICAgICAgb3B0aW9uczogdGhpcy5zZXJ2aWNlLnNlY3VyaXR5TW9kZXNSYXckLnBpcGUoXG4gICAgICAgICAgbWFwKGRpY3RPYmpzID0+IGRpY3RPYmpzLmZpbHRlcihvID0+IG8/LnVzZUluQm9vdHN0cmFwQ29ubmVjdGl2aXR5KSksXG4gICAgICAgICAgZGVsYXkoMSlcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnc2VydmVyQ29ubmVjdGl2aXR5JyxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ1NlcnZlciBhdXRoZW50aWNhdGlvbicpLFxuICAgICAgICBvcHRpb25zOiB0aGlzLnNlcnZpY2Uuc2VjdXJpdHlNb2Rlc1JhdyQucGlwZShcbiAgICAgICAgICBtYXAoZGljdE9ianMgPT4gZGljdE9ianMuZmlsdGVyKG8gPT4gbz8udXNlSW5TZXJ2ZXJDb25uZWN0aXZpdHkpKSxcbiAgICAgICAgICBkZWxheSgxKVxuICAgICAgICApXG4gICAgICB9XG4gICAgXTtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAuLi5zZWxlY3RzLm1hcChzZWxlY3QgPT4gKHtcbiAgICAgICAgICAgIGtleTogc2VsZWN0LmtleSxcbiAgICAgICAgICAgIHdyYXBwZXJzOiBbJ2xlZ2VuZCddLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6IHNlbGVjdC5sYWJlbFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICcjc2VjdXJpdHlNb2RlJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgb3B0aW9uczogc2VsZWN0Lm9wdGlvbnNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgdHlwZTogJyNwc2tJZCcgfSxcbiAgICAgICAgICAgICAgeyB0eXBlOiAnI3Bza0tleScgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pKVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXTtcbiAgfVxufVxuIiwiPGZvcm1seS1mb3JtXG4gICpuZ0lmPVwiZmllbGRzPy5sZW5ndGggPiAwOyBlbHNlIGVtcHR5XCJcbiAgW21vZGVsXT1cIm1vZGVsXCJcbiAgW2Zvcm1dPVwiZm9ybVwiXG4gIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gIGRhdGEtY3k9XCJsd20ybS1kZXZpY2UtY29uZmlndXJhdGlvbi0tZm9ybWx5LWZvcm1cIlxuPjwvZm9ybWx5LWZvcm0+XG48bmctdGVtcGxhdGUgI2VtcHR5PlxuICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgW2ljb25dPVwiJ2M4eS1kZXZpY2UtcHJvdG9jb2xzJ1wiXG4gICAgdGl0bGU9XCJ7eyAnTm8gY29uZmlndXJhdGlvbiBzZWxlY3RlZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHN1YnRpdGxlPVwie3sgJ1NlbGVjdCBhIGNvbmZpZ3VyYXRpb24gb24gdGhlIGxlZnQnIHwgdHJhbnNsYXRlIH19XCJcbiAgPjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -4,7 +4,7 @@ import { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';
|
|
|
4
4
|
import { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';
|
|
5
5
|
import { BindingMode, CertificateUsage, Endpoint, Mode, ValidationType } from '@c8y/ngx-components/protocol-lwm2m/model';
|
|
6
6
|
import { Lwm2mFormWrapperBase } from './form-wrapper-base.component';
|
|
7
|
-
import { catchError, filter, map, takeUntil } from 'rxjs/operators';
|
|
7
|
+
import { catchError, delay, filter, map, takeUntil } from 'rxjs/operators';
|
|
8
8
|
import { ActivatedRoute, Router, RouterModule } from '@angular/router';
|
|
9
9
|
import { of } from 'rxjs';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
@@ -73,11 +73,23 @@ export class Lwm2mFormSingleServerSettings extends Lwm2mFormWrapperBase {
|
|
|
73
73
|
fieldGroup: [
|
|
74
74
|
{
|
|
75
75
|
type: '#securityMode',
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
hooks: {
|
|
77
|
+
onInit: (field) => {
|
|
78
|
+
field.props.options = this.service.securityModesByScope$.pipe(delay(1));
|
|
79
|
+
this.service.getSecurityModeByScope('useInServerConnectivity');
|
|
80
|
+
return field.options.fieldChanges.pipe(filter(e => e.type === 'valueChanges' && e.field.key === 'bootstrap'), map(e => {
|
|
81
|
+
if (e.value) {
|
|
82
|
+
this.service.getSecurityModeByScope('useInBootstrapConnectivity');
|
|
83
|
+
if (field.model?.mode === Mode.X509_EST) {
|
|
84
|
+
field.formControl.setValue(Mode.NO_SEC);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
this.service.getSecurityModeByScope('useInServerConnectivity');
|
|
89
|
+
}
|
|
90
|
+
return e;
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
81
93
|
}
|
|
82
94
|
},
|
|
83
95
|
{ type: '#pskId' },
|
|
@@ -95,7 +107,7 @@ export class Lwm2mFormSingleServerSettings extends Lwm2mFormWrapperBase {
|
|
|
95
107
|
expressions: {
|
|
96
108
|
'props.disabled': (field) => field?.options?.formState?.disabled,
|
|
97
109
|
hide: (field) => {
|
|
98
|
-
return field.model?.mode !== Mode.X509;
|
|
110
|
+
return field.model?.mode !== Mode.X509 && field.model?.mode !== Mode.X509_EST;
|
|
99
111
|
}
|
|
100
112
|
}
|
|
101
113
|
},
|
|
@@ -112,7 +124,7 @@ export class Lwm2mFormSingleServerSettings extends Lwm2mFormWrapperBase {
|
|
|
112
124
|
expressions: {
|
|
113
125
|
'props.disabled': (field) => field?.options?.formState?.disabled,
|
|
114
126
|
hide: (field) => {
|
|
115
|
-
return field.model?.mode !== Mode.X509;
|
|
127
|
+
return field.model?.mode !== Mode.X509 && field.model?.mode !== Mode.X509_EST;
|
|
116
128
|
}
|
|
117
129
|
}
|
|
118
130
|
},
|
|
@@ -350,4 +362,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
350
362
|
type: Component,
|
|
351
363
|
args: [{ imports: [CoreModule, Lwm2mUIThemeModule, RouterModule], standalone: true, template: "<formly-form\n *ngIf=\"fields?.length > 0; else empty\"\n [model]=\"model\"\n [form]=\"form\"\n [fields]=\"fields\"\n [options]=\"options\"\n data-cy=\"lwm2m-device-configuration--formly-form\"\n></formly-form>\n<ng-template #empty>\n <c8y-ui-empty-state\n [icon]=\"'c8y-device-protocols'\"\n title=\"{{ 'No configuration selected' | translate }}\"\n subtitle=\"{{ 'Select a configuration on the left' | translate }}\"\n ></c8y-ui-empty-state>\n</ng-template>\n" }]
|
|
352
364
|
}], ctorParameters: function () { return [{ type: i1.Lwm2mConfigurationService }]; } });
|
|
353
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlcnZlci1zZXR0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm90b2NvbC1sd20ybS9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24vdHlwZWQtZm9ybXMvc2luZ2xlLXNlcnZlci1zZXR0aW5ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm90b2NvbC1sd20ybS9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24vdHlwZWQtZm9ybXMvZm9ybS13cmFwcGVyLWJhc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQWUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEYsT0FBTyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLElBQUksRUFHSixjQUFjLEVBQ2YsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBTzFCLE1BQU0sT0FBTyw2QkFDWCxTQUFRLG9CQUFvQztJQVc1QyxZQUFzQixPQUFrRDtRQUN0RSxLQUFL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QztJQUMxQixDQUFDOzswSEEzWVUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsK0ZDeEIxQyxnZUFlQSwyQ0RNWSxVQUFVLDJkQUFFLGtCQUFrQiw4QkFBRSxZQUFZOzJGQUczQyw2QkFBNkI7a0JBTHpDLFNBQVM7OEJBRUMsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLGNBQzNDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UsIENvcmVNb2R1bGUsIERyb3BwZWRGaWxlLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBMd20ybVVJVGhlbWVNb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3Byb3RvY29sLWx3bTJtL2Zvcm1seSc7XG5pbXBvcnQgeyBMd20ybUNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9wcm90b2NvbC1sd20ybS9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHtcbiAgQmluZGluZ01vZGUsXG4gIENlcnRpZmljYXRlVXNhZ2UsXG4gIEVuZHBvaW50LFxuICBNb2RlLFxuICBTZWN1cml0eSxcbiAgU2VydmVyU2V0dGluZ3MsXG4gIFZhbGlkYXRpb25UeXBlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vbW9kZWwnO1xuaW1wb3J0IHsgTHdtMm1Gb3JtV3JhcHBlckJhc2UgfSBmcm9tICcuL2Zvcm0td3JhcHBlci1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciwgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS13cmFwcGVyLWJhc2UuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgTHdtMm1VSVRoZW1lTW9kdWxlLCBSb3V0ZXJNb2R1bGVdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEx3bTJtRm9ybVNpbmdsZVNlcnZlclNldHRpbmdzXG4gIGV4dGVuZHMgTHdtMm1Gb3JtV3JhcHBlckJhc2U8U2VydmVyU2V0dGluZ3M+XG4gIGltcGxlbWVudHMgT25Jbml0XG57XG4gIGlkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBlbmRwb2ludDogRW5kcG9pbnQgPSBFbmRwb2ludC5zZXJ2ZXJzO1xuICBwcm90ZWN0ZWQgYWxlcnQ6IEFsZXJ0U2VydmljZTtcbiAgcHJpdmF0ZSByZWFkb25seSBDT0FQID0gJ2NvYXA6Ly8nO1xuICBwcml2YXRlIHJlYWRvbmx5IENPQVBTID0gJ2NvYXBzOi8vJztcbiAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcjtcbiAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGU7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNlcnZpY2U6IEx3bTJtQ29uZmlndXJhdGlvblNlcnZpY2U8U2VydmVyU2V0dGluZ3M+KSB7XG4gICAgc3VwZXIoc2VydmljZSk7XG4gICAgdGhpcy5yb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICB0aGlzLnJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICB0aGlzLmFsZXJ0ID0gaW5qZWN0KEFsZXJ0U2VydmljZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2Uuc2V0dGluZ3MkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoZGF0YSA9PiAodGhpcy5tb2RlbCA9IGRhdGEpKTtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0U2V0dGluZ3NGb3IoeyBlbmRwb2ludDogdGhpcy5lbmRwb2ludCwgaWQ6IHRoaXMuaWQgfSk7XG4gIH1cblxuICBjcmVhdGVGb3JtKCkge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHdyYXBwZXJzOiBbJ2xlZ2VuZCddLFxuICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnYm9vdHN0cmFwJyxcbiAgICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdCb290c3RyYXAgc2VydmVyJyksXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdUaGlzIGNvbmZpZ3VyYXRpb24gaXMgZm9yIGEgYm9vdHN0cmFwIHNlcnZlcicpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICd1cmknLFxuICAgICAgICAgICAgdHlwZTogJ2lucHV0LWFkZG9uJyxcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2ZXIgVVJJJyksXG4gICAgICAgICAgICAgIGFkZG9uTGFiZWw6IHRoaXMuQ09BUCxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnPExXTTJNLXNlcnZlci1kb21haW4+Ojxjb2FwKHMpLXBvcnQ+J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhvb2tzOiB7XG4gICAgICAgICAgICAgIG9uSW5pdDogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLmFkZG9uTGFiZWwgPSB0aGlzLkNPQVA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkLm9wdGlvbnMuZmllbGRDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIGUgPT4gZS50eXBlID09PSAndmFsdWVDaGFuZ2VzJyAmJiAoZS5maWVsZCA9PT0gZmllbGQgfHwgZS5maWVsZC5rZXkgPT09ICdtb2RlJylcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBtYXAoZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLmZpZWxkLmtleSA9PT0gJ3VyaScpXG4gICAgICAgICAgICAgICAgICAgICAgZmllbGQuZm9ybUNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAoKGUudmFsdWUgYXMgc3RyaW5nKSB8fCAnJykucmVwbGFjZSgvXi4qOlxcL1xcLy9pLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBmaWVsZC5wcm9wcy5hZGRvbkxhYmVsID1cbiAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5tb2RlbD8uc2VjdXJpdHk/Lm1vZGUgPT09IE1vZGUuTk9fU0VDID8gdGhpcy5DT0FQIDogdGhpcy5DT0FQUztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ3NlY3VyaXR5JyxcbiAgICAgICAgICAgIHdyYXBwZXJzOiBbJ2xlZ2VuZCddLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdTZWN1cml0eSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnI3NlY3VyaXR5TW9kZScsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IE9iamVjdC52YWx1ZXMoTW9kZSkubWFwKHZhbHVlID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAodmFsdWUgYXMgc3RyaW5nKS5tYXRjaCgnWDUwOScpID8gJ1guNTA5JyA6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IHR5cGU6ICcjcHNrSWQnIH0sXG4gICAgICAgICAgICAgIHsgdHlwZTogJyNwc2tLZXknIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICd4NTA5U2VydmVyQ2VydGlmaWNhdGVOYW1lJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1NlcnZlciBjZXJ0aWZpY2F0ZScpLFxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGdldHRleHQoJ05vdCB3cml0dGVuYHNldHRpbmdgJyksXG4gICAgICAgICAgICAgICAgICBhY2NlcHRVbmRlZmluZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICByZW1vdmVFeGVtcGxpR3JhdGlhOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgb3B0aW9uczogdGhpcy5zZXJ2aWNlLmNlcnRpZmljYXRlcyQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKGNlcnRzID0+IGNlcnRzLm1hcCh2YWx1ZSA9PiAoeyBsYWJlbDogdmFsdWUsIHZhbHVlIH0pKSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XG4gICAgICAgICAgICAgICAgICAncHJvcHMuZGlzYWJsZWQnOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PlxuICAgICAgICAgICAgICAgICAgICBmaWVsZD8ub3B0aW9ucz8uZm9ybVN0YXRlPy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgIGhpZGU6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkLm1vZGVsPy5tb2RlICE9PSBNb2RlLlg1MDk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnY2VydGlmaWNhdGVVc2FnZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdDZXJ0aWZpY2F0ZSB1c2FnZScpLFxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGdldHRleHQoJ05vdCB3cml0dGVuYHNldHRpbmdgJyksXG4gICAgICAgICAgICAgICAgICBhY2NlcHRVbmRlZmluZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICByZW1vdmVFeGVtcGxpR3JhdGlhOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgb3B0aW9uczogT2JqZWN0LnZhbHVlcyhDZXJ0aWZpY2F0ZVVzYWdlKS5tYXAodmFsdWUgPT4gKHsgbGFiZWw6IHZhbHVlLCB2YWx1ZSB9KSlcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XG4gICAgICAgICAgICAgICAgICAncHJvcHMuZGlzYWJsZWQnOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PlxuICAgICAgICAgICAgICAgICAgICBmaWVsZD8ub3B0aW9ucz8uZm9ybVN0YXRlPy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgIGhpZGU6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkLm1vZGVsPy5tb2RlICE9PSBNb2RlLlg1MDk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnY2VydGlmaWNhdGVEcm9wQXJlYScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2ZpbGUnLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBhY2NlcHQ6ICdwZW0nLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0NlcnRpZmljYXRlJyksXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnT25lIC5wZW0gZmlsZSBtYXkgYmUgdXBsb2FkZWQnKSxcbiAgICAgICAgICAgICAgICAgIGZvcmNlSGlkZUxpc3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgICBkcm9wcGVkOiBhc3luYyAoZmlsZXM6IERyb3BwZWRGaWxlW10pID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGF0Y2hDb21tb25OYW1lKFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5jbGVhblVwQmFzZTY0RGF0YShcbiAgICAgICAgICAgICAgICAgICAgICAgIChhd2FpdCBmaWxlcz8ucG9wKCk/LnJlYWRBc0RhdGFVUkwoKSkgYXMgc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uczoge1xuICAgICAgICAgICAgICAgICAgaGlkZTogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm1vZGVsPy5tb2RlICE9PSBNb2RlLlg1MDkgfHwgISFmaWVsZC5tb2RlbD8ueDUwOUNlcnRpZmljYXRlQ29tbW9uTmFtZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ3g1MDlDZXJ0aWZpY2F0ZUNvbW1vbk5hbWUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdmaWxlLXBpY2stcmVwbGFjZScsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdDZXJ0aWZpY2F0ZSBDb21tb24gTmFtZScpLFxuICAgICAgICAgICAgICAgICAgcmVtb3ZlOiAoKSA9PiB0aGlzLnJlbW92ZUNlcnRpZmljYXRlQW5kQ29tbW9uTmFtZSgpLFxuICAgICAgICAgICAgICAgICAgb25QaWNrOiBjZXJ0aWZpY2F0ZSA9PiB0aGlzLnBhdGNoQ29tbW9uTmFtZShjZXJ0aWZpY2F0ZSlcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XG4gICAgICAgICAgICAgICAgICAncHJvcHMuZGlzYWJsZWQnOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PlxuICAgICAgICAgICAgICAgICAgICBmaWVsZD8ub3B0aW9ucz8uZm9ybVN0YXRlPy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgIGhpZGU6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5tb2RlbD8ubW9kZSAhPT0gTW9kZS5YNTA5IHx8ICFmaWVsZC5tb2RlbD8ueDUwOUNlcnRpZmljYXRlQ29tbW9uTmFtZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ3ByaXZhdGVLZXlEcm9wQXJlYScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2ZpbGUnLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBhY2NlcHQ6ICdwZW0nLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1ByaXZhdGUga2V5JyksXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnT25lIC5wZW0gZmlsZSBtYXkgYmUgdXBsb2FkZWQnKSxcbiAgICAgICAgICAgICAgICAgIGZvcmNlSGlkZUxpc3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGRyb3BwZWQ6IGFzeW5jIChmaWxlczogRHJvcHBlZEZpbGVbXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXRjaEZpbmdlcnByaW50KFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5jbGVhblVwQmFzZTY0RGF0YShcbiAgICAgICAgICAgICAgICAgICAgICAgIChhd2FpdCBmaWxlcz8ucG9wKCk/LnJlYWRBc0RhdGFVUkwoKSkgYXMgc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uczoge1xuICAgICAgICAgICAgICAgICAgJ3Byb3BzLmRpc2FibGVkJzogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT5cbiAgICAgICAgICAgICAgICAgICAgZmllbGQ/Lm9wdGlvbnM/LmZvcm1TdGF0ZT8uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICBoaWRlOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgZmllbGQubW9kZWw/Lm1vZGUgIT09IE1vZGUuWDUwOSB8fCAhIWZpZWxkLm1vZGVsPy54NTA5UHJpdmF0ZUtleUZpbmdlclByaW50XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAneDUwOVByaXZhdGVLZXlGaW5nZXJQcmludCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2ZpbGUtcGljay1yZXBsYWNlJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0ZpbmdlcnByaW50IG9mIHRoZSBwcml2YXRlIGtleScpLFxuICAgICAgICAgICAgICAgICAgcmVtb3ZlOiAoKSA9PiB0aGlzLnJlbW92ZVByaXZhdGVLZXlBbmRGaW5nZXJwcmludCgpLFxuICAgICAgICAgICAgICAgICAgb25QaWNrOiBwcml2YXRlS2V5ID0+IHRoaXMucGF0Y2hGaW5nZXJwcmludChwcml2YXRlS2V5KVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbnM6IHtcbiAgICAgICAgICAgICAgICAgICdwcm9wcy5kaXNhYmxlZCc6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkPy5vcHRpb25zPy5mb3JtU3RhdGU/LmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgaGlkZTogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm1vZGVsPy5tb2RlICE9PSBNb2RlLlg1MDkgfHwgIWZpZWxkLm1vZGVsPy54NTA5UHJpdmF0ZUtleUZpbmdlclByaW50XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB3cmFwcGVyczogWydsZWdlbmQnXSxcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2ZXIgb2JqZWN0IGNvbmZpZ3VyYXRpb24nKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ3N0b3JlTm90aWZpY2F0aW9ucycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1N0b3JlIG5vdGlmaWNhdGlvbnMnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KFxuICAgICAgICAgICAgICAgICAgICAnTFdNMk0gQ2xpZW50IHRvIHN0b3JlIG5vdGlmeSBvcGVyYXRpb25zIHdoZW4gY2xpZW50IGlzIG9mZmxpbmUgb3IgTFdNMk0gU2VydmVyIGlzIGRpc2FibGVkLiBBbHNvIHVzZWQgdG8gZm9yd2FyZCB0aGVtIHRvIHRoZSBMV00yTSBTZXJ2ZXIgd2hlbiB0aGUgY2xpZW50IGlzIGFibGUgdG8gY29ubmVjdC4nXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnc2hvcnRTZXJ2ZXJJZCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTaG9ydCBTZXJ2ZXIgSUQnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdpbiBudW1iZXJzJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJzEnLFxuICAgICAgICAgICAgICAgICAgbWluOiAwXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAncmVnaXN0cmF0aW9uTGlmZXRpbWUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnUmVnaXN0cmF0aW9uIGxpZmV0aW1lJyksXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnaW4gc2Vjb25kcycpLFxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICc2MDAnLFxuICAgICAgICAgICAgICAgICAgbWluOiAwXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnZGVmYXVsdE1pblBlcmlvZCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEZWZhdWx0IG1pbmltdW0gcGVyaW9kJyksXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnaW4gc2Vjb25kcycpLFxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcxMCcsXG4gICAgICAgICAgICAgICAgICBtaW46IDBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdkZWZhdWx0TWF4UGVyaW9kJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0RlZmF1bHQgbWF4aW11bSBwZXJpb2QnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdpbiBzZWNvbmRzJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJzYwJyxcbiAgICAgICAgICAgICAgICAgIG1pbjogMFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ2JpbmRpbmdNb2RlJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IEJpbmRpbmdNb2RlLlUsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdCaW5kaW5nIG1vZGUnKSxcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IE9iamVjdC52YWx1ZXMoQmluZGluZ01vZGUpLm1hcCh2YWx1ZSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDpcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gQmluZGluZ01vZGUuVSA/IGdldHRleHQoJ1VEUCcpIDogZ2V0dGV4dCgnVURQIHdpdGggcXVldWUgbW9kZScpLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnZGlzYWJsZVRpbWVvdXQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRGlzYWJsZSB0aW1lb3V0JyksXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnaW4gc2Vjb25kcycpLFxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICc4NjQwMCcsXG4gICAgICAgICAgICAgICAgICBtaW46IDBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLnNlcnZpY2VcbiAgICAgIC51cGRhdGUkKHtcbiAgICAgICAgLi4udGhpcy5tb2RlbCxcbiAgICAgICAgdXJpOiB0aGlzLmdldEZ1bGxVUkkoKSxcbiAgICAgICAgZW5kcG9pbnQ6IEVuZHBvaW50LnNlcnZlcnNcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShlcnIpO1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoX25leHQgPT4gdGhpcy5jYW5jZWwoKSk7XG4gIH1cblxuICBkZWxldGUoKSB7XG4gICAgdGhpcy5zZXJ2aWNlXG4gICAgICAuZGVsZXRlU2VydmVyJCh0aGlzLm1vZGVsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZXJyKTtcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKF9uZXh0ID0+IHRoaXMuY2FuY2VsKCkpO1xuICB9XG5cbiAgY2FuY2VsID0gKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLi9zZXJ2ZXJzJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcblxuICBwcm90ZWN0ZWQgZ2V0RnVsbFVSSSgpIHtcbiAgICBjb25zdCB7XG4gICAgICB1cmksXG4gICAgICBzZWN1cml0eTogeyBtb2RlID0gTW9kZS5OT19TRUMgfVxuICAgIH0gPSB0aGlzLm1vZGVsO1xuICAgIHJldHVybiAobW9kZSA9PT0gTW9kZS5OT19TRUMgPyB0aGlzLkNPQVAgOiB0aGlzLkNPQVBTKS5jb25jYXQodXJpKTtcbiAgfVxuXG4gIHByaXZhdGUgcGF0Y2hGaW5nZXJwcmludChwcml2YXRlS2V5OiBzdHJpbmcpIHtcbiAgICBpZiAocHJpdmF0ZUtleT8ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zZXJ2aWNlXG4gICAgICAgIC52YWxpZGF0ZShwcml2YXRlS2V5LCBWYWxpZGF0aW9uVHlwZS5QUklWQVRFX0tFWSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIGZpbmdlcnByaW50ID0+IHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuc2VjdXJpdHkueDUwOVByaXZhdGVLZXkgPSBwcml2YXRlS2V5O1xuICAgICAgICAgICAgdGhpcy5tb2RlbC5zZWN1cml0eS54NTA5UHJpdmF0ZUtleUZpbmdlclByaW50ID0gZmluZ2VycHJpbnQ7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLm1vZGVsKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgX2Vycm9yID0+IHtcbiAgICAgICAgICAgIC8vIGFscmVhZHkgY2F0Y2hlZFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhdGNoQ29tbW9uTmFtZShjZXJ0aWZpY2F0ZTogc3RyaW5nKSB7XG4gICAgaWYgKGNlcnRpZmljYXRlPy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgLnZhbGlkYXRlKGNlcnRpZmljYXRlLCBWYWxpZGF0aW9uVHlwZS5YNTA5KVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgY29tbW9uTmFtZSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNlY3VyaXR5Lng1MDlDZXJ0aWZpY2F0ZSA9IGNlcnRpZmljYXRlO1xuICAgICAgICAgICAgdGhpcy5tb2RlbC5zZWN1cml0eS54NTA5Q2VydGlmaWNhdGVDb21tb25OYW1lID0gY29tbW9uTmFtZTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwpO1xuICAgICAgICAgICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBfZXJyb3IgPT4ge1xuICAgICAgICAgICAgLy8gYWxyZWFkeSBjYXRjaGVkXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUHJpdmF0ZUtleUFuZEZpbmdlcnByaW50KCkge1xuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIHNlY3VyaXR5OiB7XG4gICAgICAgIHg1MDlQcml2YXRlS2V5OiBudWxsLFxuICAgICAgICB4NTA5UHJpdmF0ZUtleUZpbmdlclByaW50OiBudWxsXG4gICAgICB9IGFzIFBhcnRpYWw8U2VjdXJpdHk+XG4gICAgfSk7XG4gICAgZGVsZXRlIHRoaXMubW9kZWw/LnNlY3VyaXR5Py54NTA5UHJpdmF0ZUtleTtcbiAgICBkZWxldGUgdGhpcy5tb2RlbD8uc2VjdXJpdHk/Lng1MDlQcml2YXRlS2V5RmluZ2VyUHJpbnQ7XG4gICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUNlcnRpZmljYXRlQW5kQ29tbW9uTmFtZSgpIHtcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBzZWN1cml0eToge1xuICAgICAgICB4NTA5Q2VydGlmaWNhdGU6IG51bGwsXG4gICAgICAgIHg1MDlDZXJ0aWZpY2F0ZUNvbW1vbk5hbWU6IG51bGxcbiAgICAgIH0gYXMgUGFydGlhbDxTZWN1cml0eT5cbiAgICB9KTtcbiAgICBkZWxldGUgdGhpcy5tb2RlbD8uc2VjdXJpdHk/Lng1MDlDZXJ0aWZpY2F0ZUNvbW1vbk5hbWU7XG4gICAgZGVsZXRlIHRoaXMubW9kZWw/LnNlY3VyaXR5Py54NTA5Q2VydGlmaWNhdGU7XG4gICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XG4gIH1cbn1cbiIsIjxmb3JtbHktZm9ybVxuICAqbmdJZj1cImZpZWxkcz8ubGVuZ3RoID4gMDsgZWxzZSBlbXB0eVwiXG4gIFttb2RlbF09XCJtb2RlbFwiXG4gIFtmb3JtXT1cImZvcm1cIlxuICBbZmllbGRzXT1cImZpZWxkc1wiXG4gIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICBkYXRhLWN5PVwibHdtMm0tZGV2aWNlLWNvbmZpZ3VyYXRpb24tLWZvcm1seS1mb3JtXCJcbj48L2Zvcm1seS1mb3JtPlxuPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgIFtpY29uXT1cIidjOHktZGV2aWNlLXByb3RvY29scydcIlxuICAgIHRpdGxlPVwie3sgJ05vIGNvbmZpZ3VyYXRpb24gc2VsZWN0ZWQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICBzdWJ0aXRsZT1cInt7ICdTZWxlY3QgYSBjb25maWd1cmF0aW9uIG9uIHRoZSBsZWZ0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gID48L2M4eS11aS1lbXB0eS1zdGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
365
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlcnZlci1zZXR0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm90b2NvbC1sd20ybS9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24vdHlwZWQtZm9ybXMvc2luZ2xlLXNlcnZlci1zZXR0aW5ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm90b2NvbC1sd20ybS9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24vdHlwZWQtZm9ybXMvZm9ybS13cmFwcGVyLWJhc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQWUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEYsT0FBTyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLElBQUksRUFHSixjQUFjLEVBQ2YsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQU8xQixNQUFNLE9BQU8sNkJBQ1gsU0FBUSxvQkFBb0M7SUFXNUMsWUFBc0IsT0FBa0Q7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LENBQUM7WUFDMUIsQ0FBQyxFQUNELE1BQU0sQ0FBQyxFQUFFO2dCQUNQLGtCQUFrQjtZQUNwQixDQUFDLENBQ0YsQ0FBQztTQUNMO0lBQ0gsQ0FBQztJQUVPLDhCQUE4QjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNuQixRQUFRLEVBQUU7Z0JBQ1IsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLHlCQUF5QixFQUFFLElBQUk7YUFDWDtTQUN2QixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixDQUFDO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLDhCQUE4QjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNuQixRQUFRLEVBQUU7Z0JBQ1IsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLHlCQUF5QixFQUFFLElBQUk7YUFDWDtTQUN2QixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDO1FBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7MEhBelpVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLCtGQ3hCMUMsZ2VBZUEsMkNETVksVUFBVSwyZEFBRSxrQkFBa0IsOEJBQUUsWUFBWTsyRkFHM0MsNkJBQTZCO2tCQUx6QyxTQUFTOzhCQUVDLENBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxjQUMzQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBDb3JlTW9kdWxlLCBEcm9wcGVkRmlsZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgTHdtMm1VSVRoZW1lTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9wcm90b2NvbC1sd20ybS9mb3JtbHknO1xuaW1wb3J0IHsgTHdtMm1Db25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vc2VydmljZXMnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7XG4gIEJpbmRpbmdNb2RlLFxuICBDZXJ0aWZpY2F0ZVVzYWdlLFxuICBFbmRwb2ludCxcbiAgTW9kZSxcbiAgU2VjdXJpdHksXG4gIFNlcnZlclNldHRpbmdzLFxuICBWYWxpZGF0aW9uVHlwZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3Byb3RvY29sLWx3bTJtL21vZGVsJztcbmltcG9ydCB7IEx3bTJtRm9ybVdyYXBwZXJCYXNlIH0gZnJvbSAnLi9mb3JtLXdyYXBwZXItYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVsYXksIGZpbHRlciwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLXdyYXBwZXItYmFzZS5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBMd20ybVVJVGhlbWVNb2R1bGUsIFJvdXRlck1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTHdtMm1Gb3JtU2luZ2xlU2VydmVyU2V0dGluZ3NcbiAgZXh0ZW5kcyBMd20ybUZvcm1XcmFwcGVyQmFzZTxTZXJ2ZXJTZXR0aW5ncz5cbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgaWQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIGVuZHBvaW50OiBFbmRwb2ludCA9IEVuZHBvaW50LnNlcnZlcnM7XG4gIHByb3RlY3RlZCBhbGVydDogQWxlcnRTZXJ2aWNlO1xuICBwcml2YXRlIHJlYWRvbmx5IENPQVAgPSAnY29hcDovLyc7XG4gIHByaXZhdGUgcmVhZG9ubHkgQ09BUFMgPSAnY29hcHM6Ly8nO1xuICBwcml2YXRlIHJvdXRlcjogUm91dGVyO1xuICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2VydmljZTogTHdtMm1Db25maWd1cmF0aW9uU2VydmljZTxTZXJ2ZXJTZXR0aW5ncz4pIHtcbiAgICBzdXBlcihzZXJ2aWNlKTtcbiAgICB0aGlzLnJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICAgIHRoaXMucm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICAgIHRoaXMuYWxlcnQgPSBpbmplY3QoQWxlcnRTZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5zZXR0aW5ncyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShkYXRhID0+ICh0aGlzLm1vZGVsID0gZGF0YSkpO1xuICAgIHRoaXMuc2VydmljZS5nZXRTZXR0aW5nc0Zvcih7IGVuZHBvaW50OiB0aGlzLmVuZHBvaW50LCBpZDogdGhpcy5pZCB9KTtcbiAgfVxuXG4gIGNyZWF0ZUZvcm0oKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgd3JhcHBlcnM6IFsnbGVnZW5kJ10sXG4gICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdib290c3RyYXAnLFxuICAgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0Jvb3RzdHJhcCBzZXJ2ZXInKSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoJ1RoaXMgY29uZmlndXJhdGlvbiBpcyBmb3IgYSBib290c3RyYXAgc2VydmVyJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ3VyaScsXG4gICAgICAgICAgICB0eXBlOiAnaW5wdXQtYWRkb24nLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1NlcnZlciBVUkknKSxcbiAgICAgICAgICAgICAgYWRkb25MYWJlbDogdGhpcy5DT0FQLFxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICc8TFdNMk0tc2VydmVyLWRvbWFpbj46PGNvYXAocyktcG9ydD4nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaG9va3M6IHtcbiAgICAgICAgICAgICAgb25Jbml0OiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcHMuYWRkb25MYWJlbCA9IHRoaXMuQ09BUDtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmllbGQub3B0aW9ucy5maWVsZENoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgZSA9PiBlLnR5cGUgPT09ICd2YWx1ZUNoYW5nZXMnICYmIChlLmZpZWxkID09PSBmaWVsZCB8fCBlLmZpZWxkLmtleSA9PT0gJ21vZGUnKVxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIG1hcChlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUuZmllbGQua2V5ID09PSAndXJpJylcbiAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5mb3JtQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICgoZS52YWx1ZSBhcyBzdHJpbmcpIHx8ICcnKS5yZXBsYWNlKC9eLio6XFwvXFwvL2ksICcnKVxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLmFkZG9uTGFiZWwgPVxuICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm1vZGVsPy5zZWN1cml0eT8ubW9kZSA9PT0gTW9kZS5OT19TRUMgPyB0aGlzLkNPQVAgOiB0aGlzLkNPQVBTO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnc2VjdXJpdHknLFxuICAgICAgICAgICAgd3JhcHBlcnM6IFsnbGVnZW5kJ10sXG4gICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICBsYWJlbDogJ1NlY3VyaXR5J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICcjc2VjdXJpdHlNb2RlJyxcbiAgICAgICAgICAgICAgICBob29rczoge1xuICAgICAgICAgICAgICAgICAgb25Jbml0OiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLm9wdGlvbnMgPSB0aGlzLnNlcnZpY2Uuc2VjdXJpdHlNb2Rlc0J5U2NvcGUkLnBpcGUoZGVsYXkoMSkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0U2VjdXJpdHlNb2RlQnlTY29wZSgndXNlSW5TZXJ2ZXJDb25uZWN0aXZpdHknKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkLm9wdGlvbnMuZmllbGRDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGUgPT4gZS50eXBlID09PSAndmFsdWVDaGFuZ2VzJyAmJiBlLmZpZWxkLmtleSA9PT0gJ2Jvb3RzdHJhcCcpLFxuICAgICAgICAgICAgICAgICAgICAgIG1hcChlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZXRTZWN1cml0eU1vZGVCeVNjb3BlKCd1c2VJbkJvb3RzdHJhcENvbm5lY3Rpdml0eScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQubW9kZWw/Lm1vZGUgPT09IE1vZGUuWDUwOV9FU1QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5mb3JtQ29udHJvbC5zZXRWYWx1ZShNb2RlLk5PX1NFQyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZXRTZWN1cml0eU1vZGVCeVNjb3BlKCd1c2VJblNlcnZlckNvbm5lY3Rpdml0eScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgdHlwZTogJyNwc2tJZCcgfSxcbiAgICAgICAgICAgICAgeyB0eXBlOiAnI3Bza0tleScgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ3g1MDlTZXJ2ZXJDZXJ0aWZpY2F0ZU5hbWUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnU2VydmVyIGNlcnRpZmljYXRlJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogZ2V0dGV4dCgnTm90IHdyaXR0ZW5gc2V0dGluZ2AnKSxcbiAgICAgICAgICAgICAgICAgIGFjY2VwdFVuZGVmaW5lZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIHJlbW92ZUV4ZW1wbGlHcmF0aWE6IHRydWUsXG4gICAgICAgICAgICAgICAgICBvcHRpb25zOiB0aGlzLnNlcnZpY2UuY2VydGlmaWNhdGVzJC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoY2VydHMgPT4gY2VydHMubWFwKHZhbHVlID0+ICh7IGxhYmVsOiB2YWx1ZSwgdmFsdWUgfSkpKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbnM6IHtcbiAgICAgICAgICAgICAgICAgICdwcm9wcy5kaXNhYmxlZCc6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkPy5vcHRpb25zPy5mb3JtU3RhdGU/LmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgaGlkZTogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmllbGQubW9kZWw/Lm1vZGUgIT09IE1vZGUuWDUwOSAmJiBmaWVsZC5tb2RlbD8ubW9kZSAhPT0gTW9kZS5YNTA5X0VTVDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdjZXJ0aWZpY2F0ZVVzYWdlJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0NlcnRpZmljYXRlIHVzYWdlJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogZ2V0dGV4dCgnTm90IHdyaXR0ZW5gc2V0dGluZ2AnKSxcbiAgICAgICAgICAgICAgICAgIGFjY2VwdFVuZGVmaW5lZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIHJlbW92ZUV4ZW1wbGlHcmF0aWE6IHRydWUsXG4gICAgICAgICAgICAgICAgICBvcHRpb25zOiBPYmplY3QudmFsdWVzKENlcnRpZmljYXRlVXNhZ2UpLm1hcCh2YWx1ZSA9PiAoeyBsYWJlbDogdmFsdWUsIHZhbHVlIH0pKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbnM6IHtcbiAgICAgICAgICAgICAgICAgICdwcm9wcy5kaXNhYmxlZCc6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkPy5vcHRpb25zPy5mb3JtU3RhdGU/LmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgaGlkZTogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmllbGQubW9kZWw/Lm1vZGUgIT09IE1vZGUuWDUwOSAmJiBmaWVsZC5tb2RlbD8ubW9kZSAhPT0gTW9kZS5YNTA5X0VTVDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdjZXJ0aWZpY2F0ZURyb3BBcmVhJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnZmlsZScsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGFjY2VwdDogJ3BlbScsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQ2VydGlmaWNhdGUnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdPbmUgLnBlbSBmaWxlIG1heSBiZSB1cGxvYWRlZCcpLFxuICAgICAgICAgICAgICAgICAgZm9yY2VIaWRlTGlzdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGRyb3BwZWQ6IGFzeW5jIChmaWxlczogRHJvcHBlZEZpbGVbXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXRjaENvbW1vbk5hbWUoXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmNsZWFuVXBCYXNlNjREYXRhKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGF3YWl0IGZpbGVzPy5wb3AoKT8ucmVhZEFzRGF0YVVSTCgpKSBhcyBzdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XG4gICAgICAgICAgICAgICAgICBoaWRlOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgZmllbGQubW9kZWw/Lm1vZGUgIT09IE1vZGUuWDUwOSB8fCAhIWZpZWxkLm1vZGVsPy54NTA5Q2VydGlmaWNhdGVDb21tb25OYW1lXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAneDUwOUNlcnRpZmljYXRlQ29tbW9uTmFtZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2ZpbGUtcGljay1yZXBsYWNlJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0NlcnRpZmljYXRlIENvbW1vbiBOYW1lJyksXG4gICAgICAgICAgICAgICAgICByZW1vdmU6ICgpID0+IHRoaXMucmVtb3ZlQ2VydGlmaWNhdGVBbmRDb21tb25OYW1lKCksXG4gICAgICAgICAgICAgICAgICBvblBpY2s6IGNlcnRpZmljYXRlID0+IHRoaXMucGF0Y2hDb21tb25OYW1lKGNlcnRpZmljYXRlKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbnM6IHtcbiAgICAgICAgICAgICAgICAgICdwcm9wcy5kaXNhYmxlZCc6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkPy5vcHRpb25zPy5mb3JtU3RhdGU/LmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgaGlkZTogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm1vZGVsPy5tb2RlICE9PSBNb2RlLlg1MDkgfHwgIWZpZWxkLm1vZGVsPy54NTA5Q2VydGlmaWNhdGVDb21tb25OYW1lXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAncHJpdmF0ZUtleURyb3BBcmVhJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnZmlsZScsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGFjY2VwdDogJ3BlbScsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnUHJpdmF0ZSBrZXknKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdPbmUgLnBlbSBmaWxlIG1heSBiZSB1cGxvYWRlZCcpLFxuICAgICAgICAgICAgICAgICAgZm9yY2VIaWRlTGlzdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgZHJvcHBlZDogYXN5bmMgKGZpbGVzOiBEcm9wcGVkRmlsZVtdKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdGNoRmluZ2VycHJpbnQoXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmNsZWFuVXBCYXNlNjREYXRhKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGF3YWl0IGZpbGVzPy5wb3AoKT8ucmVhZEFzRGF0YVVSTCgpKSBhcyBzdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XG4gICAgICAgICAgICAgICAgICAncHJvcHMuZGlzYWJsZWQnOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PlxuICAgICAgICAgICAgICAgICAgICBmaWVsZD8ub3B0aW9ucz8uZm9ybVN0YXRlPy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgIGhpZGU6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5tb2RlbD8ubW9kZSAhPT0gTW9kZS5YNTA5IHx8ICEhZmllbGQubW9kZWw/Lng1MDlQcml2YXRlS2V5RmluZ2VyUHJpbnRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICd4NTA5UHJpdmF0ZUtleUZpbmdlclByaW50JyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnZmlsZS1waWNrLXJlcGxhY2UnLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRmluZ2VycHJpbnQgb2YgdGhlIHByaXZhdGUga2V5JyksXG4gICAgICAgICAgICAgICAgICByZW1vdmU6ICgpID0+IHRoaXMucmVtb3ZlUHJpdmF0ZUtleUFuZEZpbmdlcnByaW50KCksXG4gICAgICAgICAgICAgICAgICBvblBpY2s6IHByaXZhdGVLZXkgPT4gdGhpcy5wYXRjaEZpbmdlcnByaW50KHByaXZhdGVLZXkpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uczoge1xuICAgICAgICAgICAgICAgICAgJ3Byb3BzLmRpc2FibGVkJzogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT5cbiAgICAgICAgICAgICAgICAgICAgZmllbGQ/Lm9wdGlvbnM/LmZvcm1TdGF0ZT8uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICBoaWRlOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgZmllbGQubW9kZWw/Lm1vZGUgIT09IE1vZGUuWDUwOSB8fCAhZmllbGQubW9kZWw/Lng1MDlQcml2YXRlS2V5RmluZ2VyUHJpbnRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHdyYXBwZXJzOiBbJ2xlZ2VuZCddLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1NlcnZlciBvYmplY3QgY29uZmlndXJhdGlvbicpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmllbGRHcm91cDogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnc3RvcmVOb3RpZmljYXRpb25zJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3dpdGNoJyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnU3RvcmUgbm90aWZpY2F0aW9ucycpLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoXG4gICAgICAgICAgICAgICAgICAgICdMV00yTSBDbGllbnQgdG8gc3RvcmUgbm90aWZ5IG9wZXJhdGlvbnMgd2hlbiBjbGllbnQgaXMgb2ZmbGluZSBvciBMV00yTSBTZXJ2ZXIgaXMgZGlzYWJsZWQuIEFsc28gdXNlZCB0byBmb3J3YXJkIHRoZW0gdG8gdGhlIExXTTJNIFNlcnZlciB3aGVuIHRoZSBjbGllbnQgaXMgYWJsZSB0byBjb25uZWN0LidcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdzaG9ydFNlcnZlcklkJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1Nob3J0IFNlcnZlciBJRCcpLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoJ2luIG51bWJlcnMnKSxcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMScsXG4gICAgICAgICAgICAgICAgICBtaW46IDBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdyZWdpc3RyYXRpb25MaWZldGltZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdSZWdpc3RyYXRpb24gbGlmZXRpbWUnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdpbiBzZWNvbmRzJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJzYwMCcsXG4gICAgICAgICAgICAgICAgICBtaW46IDBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdkZWZhdWx0TWluUGVyaW9kJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0RlZmF1bHQgbWluaW11bSBwZXJpb2QnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdpbiBzZWNvbmRzJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJzEwJyxcbiAgICAgICAgICAgICAgICAgIG1pbjogMFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ2RlZmF1bHRNYXhQZXJpb2QnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRGVmYXVsdCBtYXhpbXVtIHBlcmlvZCcpLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoJ2luIHNlY29uZHMnKSxcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnNjAnLFxuICAgICAgICAgICAgICAgICAgbWluOiAwXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnYmluZGluZ01vZGUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogQmluZGluZ01vZGUuVSxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0JpbmRpbmcgbW9kZScpLFxuICAgICAgICAgICAgICAgICAgb3B0aW9uczogT2JqZWN0LnZhbHVlcyhCaW5kaW5nTW9kZSkubWFwKHZhbHVlID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOlxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSBCaW5kaW5nTW9kZS5VID8gZ2V0dGV4dCgnVURQJykgOiBnZXR0ZXh0KCdVRFAgd2l0aCBxdWV1ZSBtb2RlJyksXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdkaXNhYmxlVGltZW91dCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEaXNhYmxlIHRpbWVvdXQnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdpbiBzZWNvbmRzJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJzg2NDAwJyxcbiAgICAgICAgICAgICAgICAgIG1pbjogMFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBzYXZlKCkge1xuICAgIHRoaXMuc2VydmljZVxuICAgICAgLnVwZGF0ZSQoe1xuICAgICAgICAuLi50aGlzLm1vZGVsLFxuICAgICAgICB1cmk6IHRoaXMuZ2V0RnVsbFVSSSgpLFxuICAgICAgICBlbmRwb2ludDogRW5kcG9pbnQuc2VydmVyc1xuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGVycik7XG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShfbmV4dCA9PiB0aGlzLmNhbmNlbCgpKTtcbiAgfVxuXG4gIGRlbGV0ZSgpIHtcbiAgICB0aGlzLnNlcnZpY2VcbiAgICAgIC5kZWxldGVTZXJ2ZXIkKHRoaXMubW9kZWwpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShlcnIpO1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoX25leHQgPT4gdGhpcy5jYW5jZWwoKSk7XG4gIH1cblxuICBjYW5jZWwgPSAoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uL3NlcnZlcnMnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuXG4gIHByb3RlY3RlZCBnZXRGdWxsVVJJKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHVyaSxcbiAgICAgIHNlY3VyaXR5OiB7IG1vZGUgPSBNb2RlLk5PX1NFQyB9XG4gICAgfSA9IHRoaXMubW9kZWw7XG4gICAgcmV0dXJuIChtb2RlID09PSBNb2RlLk5PX1NFQyA/IHRoaXMuQ09BUCA6IHRoaXMuQ09BUFMpLmNvbmNhdCh1cmkpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXRjaEZpbmdlcnByaW50KHByaXZhdGVLZXk6IHN0cmluZykge1xuICAgIGlmIChwcml2YXRlS2V5Py5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgLnZhbGlkYXRlKHByaXZhdGVLZXksIFZhbGlkYXRpb25UeXBlLlBSSVZBVEVfS0VZKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgZmluZ2VycHJpbnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5tb2RlbC5zZWN1cml0eS54NTA5UHJpdmF0ZUtleSA9IHByaXZhdGVLZXk7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNlY3VyaXR5Lng1MDlQcml2YXRlS2V5RmluZ2VyUHJpbnQgPSBmaW5nZXJwcmludDtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwpO1xuICAgICAgICAgICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBfZXJyb3IgPT4ge1xuICAgICAgICAgICAgLy8gYWxyZWFkeSBjYXRjaGVkXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGF0Y2hDb21tb25OYW1lKGNlcnRpZmljYXRlOiBzdHJpbmcpIHtcbiAgICBpZiAoY2VydGlmaWNhdGU/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAudmFsaWRhdGUoY2VydGlmaWNhdGUsIFZhbGlkYXRpb25UeXBlLlg1MDkpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICBjb21tb25OYW1lID0+IHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuc2VjdXJpdHkueDUwOUNlcnRpZmljYXRlID0gY2VydGlmaWNhdGU7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNlY3VyaXR5Lng1MDlDZXJ0aWZpY2F0ZUNvbW1vbk5hbWUgPSBjb21tb25OYW1lO1xuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5tb2RlbCk7XG4gICAgICAgICAgICB0aGlzLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIF9lcnJvciA9PiB7XG4gICAgICAgICAgICAvLyBhbHJlYWR5IGNhdGNoZWRcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVQcml2YXRlS2V5QW5kRmluZ2VycHJpbnQoKSB7XG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgc2VjdXJpdHk6IHtcbiAgICAgICAgeDUwOVByaXZhdGVLZXk6IG51bGwsXG4gICAgICAgIHg1MDlQcml2YXRlS2V5RmluZ2VyUHJpbnQ6IG51bGxcbiAgICAgIH0gYXMgUGFydGlhbDxTZWN1cml0eT5cbiAgICB9KTtcbiAgICBkZWxldGUgdGhpcy5tb2RlbD8uc2VjdXJpdHk/Lng1MDlQcml2YXRlS2V5O1xuICAgIGRlbGV0ZSB0aGlzLm1vZGVsPy5zZWN1cml0eT8ueDUwOVByaXZhdGVLZXlGaW5nZXJQcmludDtcbiAgICB0aGlzLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQ2VydGlmaWNhdGVBbmRDb21tb25OYW1lKCkge1xuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIHNlY3VyaXR5OiB7XG4gICAgICAgIHg1MDlDZXJ0aWZpY2F0ZTogbnVsbCxcbiAgICAgICAgeDUwOUNlcnRpZmljYXRlQ29tbW9uTmFtZTogbnVsbFxuICAgICAgfSBhcyBQYXJ0aWFsPFNlY3VyaXR5PlxuICAgIH0pO1xuICAgIGRlbGV0ZSB0aGlzLm1vZGVsPy5zZWN1cml0eT8ueDUwOUNlcnRpZmljYXRlQ29tbW9uTmFtZTtcbiAgICBkZWxldGUgdGhpcy5tb2RlbD8uc2VjdXJpdHk/Lng1MDlDZXJ0aWZpY2F0ZTtcbiAgICB0aGlzLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgfVxufVxuIiwiPGZvcm1seS1mb3JtXG4gICpuZ0lmPVwiZmllbGRzPy5sZW5ndGggPiAwOyBlbHNlIGVtcHR5XCJcbiAgW21vZGVsXT1cIm1vZGVsXCJcbiAgW2Zvcm1dPVwiZm9ybVwiXG4gIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gIGRhdGEtY3k9XCJsd20ybS1kZXZpY2UtY29uZmlndXJhdGlvbi0tZm9ybWx5LWZvcm1cIlxuPjwvZm9ybWx5LWZvcm0+XG48bmctdGVtcGxhdGUgI2VtcHR5PlxuICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgW2ljb25dPVwiJ2M4eS1kZXZpY2UtcHJvdG9jb2xzJ1wiXG4gICAgdGl0bGU9XCJ7eyAnTm8gY29uZmlndXJhdGlvbiBzZWxlY3RlZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHN1YnRpdGxlPVwie3sgJ1NlbGVjdCBhIGNvbmZpZ3VyYXRpb24gb24gdGhlIGxlZnQnIHwgdHJhbnNsYXRlIH19XCJcbiAgPjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -14,9 +14,11 @@ export var SecurityMode;
|
|
|
14
14
|
})(SecurityMode || (SecurityMode = {}));
|
|
15
15
|
export var Mode;
|
|
16
16
|
(function (Mode) {
|
|
17
|
+
Mode["DISABLED"] = "DISABLED";
|
|
17
18
|
Mode["NO_SEC"] = "NO_SEC";
|
|
18
19
|
Mode["PSK"] = "PSK";
|
|
19
20
|
Mode["X509"] = "X509";
|
|
21
|
+
Mode["X509_EST"] = "X509_USING_EST";
|
|
20
22
|
})(Mode || (Mode = {}));
|
|
21
23
|
export var BindingMode;
|
|
22
24
|
(function (BindingMode) {
|
|
@@ -75,4 +77,4 @@ export const permissionAlert = {
|
|
|
75
77
|
text: gettext('You do not have write permissions. This form is read-only.'),
|
|
76
78
|
type: 'info'
|
|
77
79
|
};
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm90b2NvbC1sd20ybS9tb2RlbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVMsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFjckQsTUFBTSxDQUFOLElBQVksUUFNWDtBQU5ELFdBQVksUUFBUTtJQUNsQixvQ0FBd0IsQ0FBQTtJQUN4Qix5Q0FBNkIsQ0FBQTtJQUM3QixpQ0FBcUIsQ0FBQTtJQUNyQiwrQkFBbUIsQ0FBQTtJQUNuQixtQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBTlcsUUFBUSxLQUFSLFFBQVEsUUFNbkI7QUFzQkQsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0QixpQ0FBaUIsQ0FBQTtJQUNqQiwyQkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCO0FBRUQsTUFBTSxDQUFOLElBQVksSUFNWDtBQU5ELFdBQVksSUFBSTtJQUNkLDZCQUFxQixDQUFBO0lBQ3JCLHlCQUFpQixDQUFBO0lBQ2pCLG1CQUFXLENBQUE7SUFDWCxxQkFBYSxDQUFBO0lBQ2IsbUNBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQU5XLElBQUksS0FBSixJQUFJLFFBTWY7QUFFRCxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLHNCQUFPLENBQUE7SUFDUCx3QkFBUyxDQUFBO0FBQ1gsQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCO0FBRUQsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4QixtQ0FBaUIsQ0FBQTtJQUNqQiw2QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQUhXLGNBQWMsS0FBZCxjQUFjLFFBR3pCO0FBRUQsTUFBTSxDQUFOLElBQVksbUJBUVg7QUFSRCxXQUFZLG1CQUFtQjtJQUM3QixrQ0FBVyxDQUFBO0lBQ1gsb0NBQWEsQ0FBQTtJQUNiLG9DQUFhLENBQUE7SUFDYixvQ0FBYSxDQUFBO0lBQ2Isd0NBQWlCLENBQUE7SUFDakIsZ0RBQXlCLENBQUE7SUFDekIsZ0RBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQVJXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFROUI7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFLWDtBQUxELFdBQVksZ0JBQWdCO0lBQzFCLG1EQUErQixDQUFBO0lBQy9CLG9FQUFnRCxDQUFBO0lBQ2hELDJEQUF1QyxDQUFBO0lBQ3ZDLGdFQUE0QyxDQUFBO0FBQzlDLENBQUMsRUFMVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSzNCO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBSVg7QUFKRCxXQUFZLGtCQUFrQjtJQUM1QixtQ0FBYSxDQUFBO0lBQ2IsbUNBQWEsQ0FBQTtJQUNiLG1DQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUk3QjtBQUVELE1BQU0sQ0FBTixJQUFZLDJCQUtYO0FBTEQsV0FBWSwyQkFBMkI7SUFDckMsNENBQWEsQ0FBQTtJQUNiLDhDQUFlLENBQUE7SUFDZiw0Q0FBYSxDQUFBO0lBQ2IsOENBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTFcsMkJBQTJCLEtBQTNCLDJCQUEyQixRQUt0QztBQUVELE1BQU0sQ0FBTixJQUFZLGtCQUdYO0FBSEQsV0FBWSxrQkFBa0I7SUFDNUIseUNBQW1CLENBQUE7SUFDbkIsaURBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQUhXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFHN0I7QUFFRCxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3hCLDBDQUF3QixDQUFBO0lBQ3hCLHVEQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QjtBQUVELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFlBQVksU0FBUyxFQUFFLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQztBQTRGckMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFVO0lBQ3BDLElBQUksRUFBRSxPQUFPLENBQUMsNERBQTRELENBQUM7SUFDM0UsSUFBSSxFQUFFLE1BQU07Q0FDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBBbGVydCwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEx3bTJtTWFuYWdlZE9iamVjdCBleHRlbmRzIElNYW5hZ2VkT2JqZWN0IHtcbiAgYzh5X0lzTHdtMm1EZXZpY2U6IG9iamVjdDtcbiAgYzh5X0RldmljZVR5cGVzOiBzdHJpbmdbXTtcbiAgdHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExXTTJNUG9zdE9wZXJhdGlvbnNQYXJhbWV0ZXJzIHtcbiAgY29tbWFuZHM6IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBFbmRwb2ludCB7XG4gIGRldmljZVNldHRpbmdzID0gJ2Jhc2ljJyxcbiAgY29ubmVjdGl2aXR5ID0gJ2Nvbm5lY3Rpdml0eScsXG4gIGZpcm13YXJlID0gJ2Zpcm13YXJlJyxcbiAgc2VydmVycyA9ICdzZXJ2ZXJzJyxcbiAgYm9vdHN0cmFwID0gJ2Jvb3RzdHJhcCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMd20ybUJvb3RzdHJhcFBhcmFtZXRlcnMge1xuICBiaW5kaW5nTW9kZT86IEJpbmRpbmdNb2RlO1xuICBib290c3RyYXBJZD86IHN0cmluZztcbiAgYm9vdHN0cmFwS2V5Pzogc3RyaW5nO1xuICBib290c3RyYXBTaG9ydFNlcnZlcklkPzogbnVtYmVyO1xuICBkZWZhdWx0TWF4aW11bVBlcmlvZD86IG51bWJlcjtcbiAgZGVmYXVsdE1pbmltdW1QZXJpb2Q/OiBudW1iZXI7XG4gIHNlY3VyaXR5TW9kZT86IFNlY3VyaXR5TW9kZTtcbiAgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gIGdlbmVyYXRlQm9vdHN0cmFwU2VydmVyQ29uZmlnPzogYm9vbGVhbjtcbiAgbHdtMm1TaG9ydFNlcnZlcklkPzogbnVtYmVyO1xuICBzZXJ2ZXJVcmk/OiBzdHJpbmc7XG4gIHJlZ2lzdHJhdGlvbkxpZmVUaW1lPzogbnVtYmVyO1xuICBzZXJ2ZXJQdWJsaWNLZXk/OiBzdHJpbmc7XG4gIHNlY3VyaXR5SW5zdGFuY2VPZmZzZXQ/OiBudW1iZXI7XG4gIHB1YmxpY0tleU9ySWQ/OiBzdHJpbmc7XG4gIHNlY3JldEtleT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFNlY3VyaXR5TW9kZSB7XG4gIE5PX1NFQyA9ICdOT19TRUMnLFxuICBQU0sgPSAnUFNLJ1xufVxuXG5leHBvcnQgZW51bSBNb2RlIHtcbiAgRElTQUJMRUQgPSAnRElTQUJMRUQnLFxuICBOT19TRUMgPSAnTk9fU0VDJyxcbiAgUFNLID0gJ1BTSycsXG4gIFg1MDkgPSAnWDUwOScsXG4gIFg1MDlfRVNUID0gJ1g1MDlfVVNJTkdfRVNUJ1xufVxuXG5leHBvcnQgZW51bSBCaW5kaW5nTW9kZSB7XG4gIFUgPSAnVScsXG4gIFVRID0gJ1VRJ1xufVxuXG5leHBvcnQgZW51bSBCaW5hcnlFbmNvZGluZyB7XG4gIE9QQVFVRSA9ICdPUEFRVUUnLFxuICBUTFYgPSAnVExWJ1xufVxuXG5leHBvcnQgZW51bSBTZXJpYWxpemF0aW9uRm9ybWF0IHtcbiAgVExWID0gJ1RMVicsXG4gIEpTT04gPSAnSlNPTicsXG4gIENCT1IgPSAnQ0JPUicsXG4gIFRFWFQgPSAnVEVYVCcsXG4gIE9QQVFVRSA9ICdPUEFRVUUnLFxuICBTRU5NTF9KU09OID0gJ1NFTk1MX0pTT04nLFxuICBTRU5NTF9DQk9SID0gJ1NFTk1MX0NCT1InXG59XG5cbmV4cG9ydCBlbnVtIENlcnRpZmljYXRlVXNhZ2Uge1xuICBDQV9DT05TVFJBSU5UID0gJ0NBX0NPTlNUUkFJTlQnLFxuICBTQ19DT05TVFJBSU5UID0gJ1NFUlZJQ0VfQ0VSVElGSUNBVEVfQ09OU1RSQUlOVCcsXG4gIFRBX0FTU0VSVElPTiA9ICdUUlVTVF9BTkNIT1JfQVNTRVJUSU9OJyxcbiAgRElfQ0VSVElGSUNBVEUgPSAnRE9NQUlOX0lTU1VFUl9DRVJUSUZJQ0FURSdcbn1cblxuZXhwb3J0IGVudW0gRldVX0RlbGl2ZXJ5TWV0aG9kIHtcbiAgUFVMTCA9ICdQVUxMJyxcbiAgUFVTSCA9ICdQVVNIJyxcbiAgQk9USCA9ICdCT1RIJ1xufVxuXG5leHBvcnQgZW51bSBGV1VfU3VwcG9ydGVkRGV2aWNlUHJvdG9jb2wge1xuICBDT0FQID0gJ0NPQVAnLFxuICBDT0FQUyA9ICdDT0FQUycsXG4gIEhUVFAgPSAnSFRUUCcsXG4gIEhUVFBTID0gJ0hUVFBTJ1xufVxuXG5leHBvcnQgZW51bSBGV1VfUmVzZXRNZWNoYW5pc20ge1xuICBQQUNLQUdFID0gJ1BBQ0tBR0UnLFxuICBQQUNLQUdFX1VSSSA9ICdQQUNLQUdFX1VSSSdcbn1cblxuZXhwb3J0IGVudW0gVmFsaWRhdGlvblR5cGUge1xuICBYNTA5ID0gJ3g1MDljZXJ0aWZpY2F0ZScsXG4gIFBSSVZBVEVfS0VZID0gJ2NlcnRpZmljYXRlUHJpdmF0ZUtleSdcbn1cblxuZXhwb3J0IGNvbnN0IGFnZW50TmFtZSA9ICdsd20ybS1hZ2VudCc7XG5leHBvcnQgY29uc3QgYWdlbnRCYXNlVXJsID0gYC9zZXJ2aWNlLyR7YWdlbnROYW1lfWA7XG5leHBvcnQgY29uc3QgYzh5X2x3bTJtID0gJ2M4eV9sd20ybSc7XG5cbmV4cG9ydCB0eXBlIFNldHRpbmdzID1cbiAgfCBCb290c3RyYXBTZXR0aW5nc1xuICB8IERldmljZVNldHRpbmdzXG4gIHwgRmlybXdhcmVTZXR0aW5nc1xuICB8IENvbm5lY3Rpdml0eVNldHRpbmdzXG4gIHwgU2VydmVyU2V0dGluZ3NcbiAgfCBvYmplY3Q7XG5cbmV4cG9ydCB0eXBlIEVudGl0eSA9IFNldHRpbmdzICYgVXJsQ29uZmlnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25FcnJvciB7XG4gIGVycm9yOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcmxDb25maWcge1xuICBlbmRwb2ludDogRW5kcG9pbnQ7XG4gIGlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlclNldHRpbmdzIHtcbiAgaWQ6IHN0cmluZztcbiAgdXJpOiBzdHJpbmc7XG4gIHNlcnZlcklkOiBudW1iZXI7XG4gIHJlZ2lzdHJhdGlvbkxpZmV0aW1lOiBudW1iZXI7XG4gIGRlZmF1bHRNaW5QZXJpb2Q6IG51bWJlcjtcbiAgZGVmYXVsdE1heFBlcmlvZDogbnVtYmVyO1xuICBkaXNhYmxlVGltZW91dDogbnVtYmVyO1xuICBib290c3RyYXA6IGJvb2xlYW47XG4gIHN0b3JlTm90aWZpY2F0aW9uczogYm9vbGVhbjtcbiAgYmluZGluZ01vZGU6IEJpbmRpbmdNb2RlO1xuICBzZWN1cml0eTogU2VjdXJpdHk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHkge1xuICBtb2RlOiBNb2RlO1xuICB4NTA5UHJpdmF0ZUtleT86IHN0cmluZztcbiAgeDUwOVByaXZhdGVLZXlGaW5nZXJQcmludD86IHN0cmluZztcbiAgeDUwOUNlcnRpZmljYXRlPzogc3RyaW5nO1xuICB4NTA5Q2VydGlmaWNhdGVDb21tb25OYW1lPzogc3RyaW5nO1xuICB4NTA5U2VydmVyQ2VydGlmaWNhdGVOYW1lPzogc3RyaW5nO1xuICBjZXJ0aWZpY2F0ZVVzYWdlPzogc3RyaW5nO1xuICBwc2tLZXk/OiBzdHJpbmc7XG4gIHBza0lkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERldmljZVNldHRpbmdzIHtcbiAgZW5kcG9pbnRJZDogc3RyaW5nO1xuICBhd2FrZVRpbWU6IG51bWJlcjtcbiAgcmVxdWVzdFRpbWVvdXQ6IG51bWJlcjtcbiAga2VlcE9sZFZhbHVlc09uT3BlcmF0aW9uRmFpbDogYm9vbGVhbjtcbiAgdXNlVGltZXN0YW1wUmVzb3VyY2VzOiBib29sZWFuO1xuICBiaW5hcnlFbmNvZGluZzogQmluYXJ5RW5jb2Rpbmc7XG4gIHNlcmlhbGl6YXRpb25Gb3JtYXQ6IFNlcmlhbGl6YXRpb25Gb3JtYXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGl2aXR5U2V0dGluZ3Mge1xuICBib290c3RyYXBDb25uZWN0aXZpdHk6IENvbm5lY3Rpdml0eTtcbiAgc2VydmVyQ29ubmVjdGl2aXR5OiBDb25uZWN0aXZpdHk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGl2aXR5IHtcbiAgbW9kZTogTW9kZTtcbiAgcHNrS2V5Pzogc3RyaW5nO1xuICBwc2tJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaXJtd2FyZVNldHRpbmdzIHtcbiAgdXJsOiBzdHJpbmc7XG4gIHJlc2V0U3RhdGVNYWNoaW5lT25TdGFydDogYm9vbGVhbjtcbiAgcmVzZXRNZXRob2Q6IEZXVV9SZXNldE1lY2hhbmlzbTtcbiAgc3VwcG9ydGVkRGV2aWNlUHJvdG9jb2w6IEZXVV9TdXBwb3J0ZWREZXZpY2VQcm90b2NvbDtcbiAgZmlybXdhcmVEZWxpdmVyeU1ldGhvZDogRldVX0RlbGl2ZXJ5TWV0aG9kO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvb3RzdHJhcFNldHRpbmdzIHtcbiAgYm9vdHN0cmFwU2VydmVySWQ6IG51bWJlcjtcbiAgc2VjdXJpdHlJbnN0YW5jZU9mZnNldDogbnVtYmVyO1xuICBnZW5lcmF0ZUJvb3RzdHJhcFNlcnZlcjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eU1vZGVEaWN0aW9uYXJ5T2JqIHtcbiAgbmFtZT86IHN0cmluZyB8IE1vZGU7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIHVzZUluQm9vdHN0cmFwQ29ubmVjdGl2aXR5OiBib29sZWFuO1xuICB1c2VJblNlcnZlckNvbm5lY3Rpdml0eTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IHBlcm1pc3Npb25BbGVydDogQWxlcnQgPSB7XG4gIHRleHQ6IGdldHRleHQoJ1lvdSBkbyBub3QgaGF2ZSB3cml0ZSBwZXJtaXNzaW9ucy4gVGhpcyBmb3JtIGlzIHJlYWQtb25seS4nKSxcbiAgdHlwZTogJ2luZm8nXG59O1xuIl19
|
|
@@ -4,7 +4,7 @@ import { BehaviorSubject, Subject, from, of, throwError } from 'rxjs';
|
|
|
4
4
|
import { catchError, map, switchMap, takeUntil, tap } from 'rxjs/operators';
|
|
5
5
|
import { Lwm2mClientService } from './lwm2m-client.service';
|
|
6
6
|
import { AlertService, gettext } from '@c8y/ngx-components';
|
|
7
|
-
import { Endpoint, agentBaseUrl, ValidationType } from '@c8y/ngx-components/protocol-lwm2m/model';
|
|
7
|
+
import { Endpoint, agentBaseUrl, ValidationType, Mode } from '@c8y/ngx-components/protocol-lwm2m/model';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@c8y/client";
|
|
10
10
|
import * as i2 from "@c8y/ngx-components";
|
|
@@ -18,9 +18,13 @@ export class Lwm2mConfigurationService extends Lwm2mClientService {
|
|
|
18
18
|
this._servers$ = new BehaviorSubject([]);
|
|
19
19
|
this._settings$ = new BehaviorSubject({});
|
|
20
20
|
this._certificates$ = new BehaviorSubject([]);
|
|
21
|
+
this._securityModeDictRaw$ = new BehaviorSubject([]);
|
|
22
|
+
this._securityModeByScope$ = new BehaviorSubject([]);
|
|
21
23
|
this.servers$ = this._servers$.asObservable();
|
|
22
24
|
this.settings$ = this._settings$.asObservable();
|
|
23
25
|
this.certificates$ = this._certificates$.asObservable();
|
|
26
|
+
this.securityModesByScope$ = this._securityModeByScope$.asObservable();
|
|
27
|
+
this.securityModesRaw$ = this._securityModeDictRaw$.asObservable();
|
|
24
28
|
this._listServers$
|
|
25
29
|
.pipe(switchMap(() => this.listServers$().pipe(map(resp => this._servers$.next(resp?.data)))), catchError(error => {
|
|
26
30
|
this.alertService.addServerFailure(error);
|
|
@@ -91,13 +95,68 @@ export class Lwm2mConfigurationService extends Lwm2mClientService {
|
|
|
91
95
|
.pipe(catchError(error => {
|
|
92
96
|
this.alertService.addServerFailure(error);
|
|
93
97
|
return of([]);
|
|
94
|
-
}))
|
|
98
|
+
}), takeUntil(this._destroy$))
|
|
95
99
|
.subscribe();
|
|
96
100
|
}
|
|
97
101
|
fetchServerCertificates$() {
|
|
98
|
-
return this.fetch$('dictionary/server-certificates').pipe(switchMap(result =>
|
|
102
|
+
return this.fetch$('dictionary/server-certificates').pipe(switchMap(result => result.json()), tap(result => {
|
|
99
103
|
this._certificates$.next(result);
|
|
100
|
-
})
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
getSecurityModes() {
|
|
107
|
+
this.fetchSecurityModes$()
|
|
108
|
+
.pipe(catchError(error => {
|
|
109
|
+
// Use this as fallback. There is the possibility that
|
|
110
|
+
// the UI version runs against an agent version without the needed endpoint:
|
|
111
|
+
// 'dictionary/security-modes'
|
|
112
|
+
const { data: { status } } = error;
|
|
113
|
+
status !== 404
|
|
114
|
+
? this.alertService.addServerFailure(error)
|
|
115
|
+
: this._securityModeDictRaw$.next([
|
|
116
|
+
{
|
|
117
|
+
label: Mode.DISABLED,
|
|
118
|
+
value: Mode.DISABLED,
|
|
119
|
+
useInBootstrapConnectivity: true,
|
|
120
|
+
useInServerConnectivity: true
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
label: Mode.NO_SEC,
|
|
124
|
+
value: Mode.NO_SEC,
|
|
125
|
+
useInBootstrapConnectivity: true,
|
|
126
|
+
useInServerConnectivity: true
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
label: Mode.PSK,
|
|
130
|
+
value: Mode.PSK,
|
|
131
|
+
useInBootstrapConnectivity: true,
|
|
132
|
+
useInServerConnectivity: true
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
label: 'X.509',
|
|
136
|
+
value: Mode.X509,
|
|
137
|
+
useInBootstrapConnectivity: true,
|
|
138
|
+
useInServerConnectivity: true
|
|
139
|
+
}
|
|
140
|
+
]);
|
|
141
|
+
return of([]);
|
|
142
|
+
}))
|
|
143
|
+
.subscribe();
|
|
144
|
+
}
|
|
145
|
+
fetchSecurityModes$() {
|
|
146
|
+
return this.fetch$('dictionary/security-modes').pipe(switchMap(result => result.json()), map((result) => result.map(({ name, useInBootstrapConnectivity, useInServerConnectivity }) => ({
|
|
147
|
+
label: name.replace('X509', 'X.509'),
|
|
148
|
+
value: name,
|
|
149
|
+
useInBootstrapConnectivity,
|
|
150
|
+
useInServerConnectivity
|
|
151
|
+
}))), tap((result) => {
|
|
152
|
+
this._securityModeDictRaw$.next(result);
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
getSecurityModeByScope(scope) {
|
|
156
|
+
this._securityModeByScope$.next(this._securityModeDictRaw$
|
|
157
|
+
.getValue()
|
|
158
|
+
.filter(({ useInBootstrapConnectivity, useInServerConnectivity }) => (useInBootstrapConnectivity && scope === 'useInBootstrapConnectivity') ||
|
|
159
|
+
(useInServerConnectivity && scope === 'useInServerConnectivity')));
|
|
101
160
|
}
|
|
102
161
|
cleanUpBase64Data(fileReadAsDataURL) {
|
|
103
162
|
const base64RegExp = RegExp(/data:\S+;base64,/gi);
|
|
@@ -139,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
139
198
|
providedIn: 'root'
|
|
140
199
|
}]
|
|
141
200
|
}], ctorParameters: function () { return [{ type: i1.FetchClient }, { type: i2.AlertService }]; } });
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHdtMm0tY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvdG9jb2wtbHdtMm0vc2VydmljZXMvbHdtMm0tY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBb0QsTUFBTSxhQUFhLENBQUM7QUFDNUYsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFDTCxRQUFRLEVBRVIsWUFBWSxFQUdaLGNBQWMsRUFFZixNQUFNLDBDQUEwQyxDQUFDOzs7O0FBS2xELE1BQU0sT0FBTyx5QkFDWCxTQUFRLGtCQUFxQjtJQWdCN0IsWUFBWSxNQUFtQixFQUFVLFlBQTBCO1FBQ2pFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUR5QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVp6RCxZQUFPLEdBQUcsR0FBRyxZQUFZLEtBQUssQ0FBQztRQUV4QixjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDekMsa0JBQWEsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QyxjQUFTLEdBQXNDLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLGVBQVUsR0FBdUIsSUFBSSxlQUFlLENBQUMsRUFBTyxD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LENBQUM7UUFDbEIsT0FBTyxNQUFNLEVBQUUsUUFBUSxDQUFDO1FBQ3hCLE9BQVEsTUFBc0IsRUFBRSxVQUFVLENBQUM7UUFDM0MsT0FBTyxNQUFXLENBQUM7SUFDckIsQ0FBQzs7c0hBcExVLHlCQUF5QjswSEFBekIseUJBQXlCLGNBRnhCLE1BQU07MkZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmV0Y2hDbGllbnQsIElGZXRjaE9wdGlvbnMsIElJZGVudGlmaWVkLCBJUmVzdWx0LCBJUmVzdWx0TGlzdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZnJvbSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEx3bTJtQ2xpZW50U2VydmljZSB9IGZyb20gJy4vbHdtMm0tY2xpZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBFbmRwb2ludCxcbiAgU2VydmVyU2V0dGluZ3MsXG4gIGFnZW50QmFzZVVybCxcbiAgRW50aXR5LFxuICBVcmxDb25maWcsXG4gIFZhbGlkYXRpb25UeXBlLFxuICBWYWxpZGF0aW9uRXJyb3Jcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9wcm90b2NvbC1sd20ybS9tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEx3bTJtQ29uZmlndXJhdGlvblNlcnZpY2U8VCA9IEVudGl0eT5cbiAgZXh0ZW5kcyBMd20ybUNsaWVudFNlcnZpY2U8VD5cbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3lcbntcbiAgZGV2aWNlSWQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIGJhc2VVcmwgPSBgJHthZ2VudEJhc2VVcmx9L3YxYDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xpc3RTZXJ2ZXJzJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlcnZlcnMkOiBCZWhhdmlvclN1YmplY3Q8U2VydmVyU2V0dGluZ3NbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2V0dGluZ3MkOiBCZWhhdmlvclN1YmplY3Q8VD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9IGFzIFQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jZXJ0aWZpY2F0ZXMkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSBhcyBzdHJpbmdbXSk7XG5cbiAgc2VydmVycyQ6IE9ic2VydmFibGU8U2VydmVyU2V0dGluZ3NbXT4gPSB0aGlzLl9zZXJ2ZXJzJC5hc09ic2VydmFibGUoKTtcbiAgc2V0dGluZ3MkOiBPYnNlcnZhYmxlPFQ+ID0gdGhpcy5fc2V0dGluZ3MkLmFzT2JzZXJ2YWJsZSgpO1xuICBjZXJ0aWZpY2F0ZXMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiA9IHRoaXMuX2NlcnRpZmljYXRlcyQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoY2xpZW50OiBGZXRjaENsaWVudCwgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSkge1xuICAgIHN1cGVyKGNsaWVudCk7XG5cbiAgICB0aGlzLl9saXN0U2VydmVycyRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICB0aGlzLmxpc3RTZXJ2ZXJzJCgpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcCA9PiB0aGlzLl9zZXJ2ZXJzJC5uZXh0KHJlc3A/LmRhdGEgYXMgdW5rbm93biBhcyBTZXJ2ZXJTZXR0aW5nc1tdKSlcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGdldFNldHRpbmdzRm9yKHVybENmZzogVXJsQ29uZmlnKSB7XG4gICAgdGhpcy5kZXRhaWwkKHVybENmZylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIG9mKHt9IGFzIFQpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHRoaXMuX3NldHRpbmdzJC5uZXh0KGRhdGEgYXMgVCkpO1xuICB9XG5cbiAgbGlzdFNlcnZlcnMoKSB7XG4gICAgdGhpcy5fbGlzdFNlcnZlcnMkLm5leHQoKTtcbiAgfVxuXG4gIHVwZGF0ZUNvbmZpZyhlbnRpdHk6IFQsIGVuZHBvaW50OiBFbmRwb2ludCkge1xuICAgIHRoaXMudXBkYXRlJCh7IC4uLmVudGl0eSwgZW5kcG9pbnQgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvbkJlZm9yZVVwZGF0ZShlbnRpdHk6IEVudGl0eSkge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZUZpZWxkc0luUmVxdWVzdChlbnRpdHkpO1xuICB9XG5cbiAgb25CZWZvcmVDcmVhdGUoZW50aXR5OiBFbnRpdHkpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVGaWVsZHNJblJlcXVlc3QoZW50aXR5KTtcbiAgfVxuXG4gIGdldERldGFpbFVybChlbnRpdHk6IEVudGl0eSk6IHN0cmluZyB7XG4gICAgY29uc3QgeyBlbmRwb2ludCB9ID0gZW50aXR5O1xuICAgIGNvbnN0IGlkID0gZW50aXR5LmlkID8/ICcnO1xuICAgIGNvbnN0IGRldmljZUNvbmZpZ1VybCA9IGBkZXZpY2UvJHt0aGlzLmRldmljZUlkfS9jb25maWd1cmF0aW9uYDtcblxuICAgIGlmICghZW5kcG9pbnQpIHtcbiAgICAgIHRocm93IHsgZGF0YTogeyBtZXNzYWdlOiBnZXR0ZXh0KCdVbmFibGUgdG8gZmluZCBlbmRwb2ludCcpIH0gfTtcbiAgICB9XG5cbiAgICByZXR1cm4gaWQubGVuZ3RoID4gMCAmJiBlbmRwb2ludCA9PT0gRW5kcG9pbnQuc2VydmVyc1xuICAgICAgPyBgJHtkZXZpY2VDb25maWdVcmx9LyR7ZW5kcG9pbnR9LyR7aWR9YFxuICAgICAgOiBgJHtkZXZpY2VDb25maWdVcmx9LyR7ZW5kcG9pbnR9YDtcbiAgfVxuXG4gIHZhbGlkYXRlKGNlcnRpZmljYXRlOiBzdHJpbmcsIHR5cGU6IFZhbGlkYXRpb25UeXBlKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBpZiAoY2VydGlmaWNhdGU/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIFt0eXBlID09PSBWYWxpZGF0aW9uVHlwZS5QUklWQVRFX0tFWSA/ICdlbmNvZGVkUHJpdmF0ZUtleScgOiAnZW5jb2RlZENlcnRpZmljYXRlJ106XG4gICAgICAgICAgY2VydGlmaWNhdGVcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdGhpcy5mZXRjaCQoYGRldmljZS9jb25maWd1cmF0aW9uLyR7dHlwZX0vdmFsaWRhdGVgLCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBoZWFkZXJzOiB7ICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsIGFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgIGJvZHlcbiAgICAgIH0pLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT5cbiAgICAgICAgICBmcm9tKHJlc3VsdC5qc29uKCkgYXMgUHJvbWlzZTxvYmplY3Q+KS5waXBlKFxuICAgICAgICAgICAgbWFwKGRhdGEgPT4gZGF0YVsnZmluZ2VycHJpbnQnXSB8fCBkYXRhWydjb21tb25OYW1lJ10pXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBjYXRjaEVycm9yKChlOiBJUmVzdWx0PFZhbGlkYXRpb25FcnJvcj4pID0+IHtcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIGVycm9yIH0gPSBlPy5kYXRhO1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoe1xuICAgICAgICAgICAgZGF0YTogeyBtZXNzYWdlLCBleGNlcHRpb25NZXNzYWdlOiBlcnJvciB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGdldFNlcnZlckNlcnRpZmljYXRlcygpIHtcbiAgICB0aGlzLmZldGNoU2VydmVyQ2VydGlmaWNhdGVzJCgpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGZldGNoU2VydmVyQ2VydGlmaWNhdGVzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5mZXRjaCQoJ2RpY3Rpb25hcnkvc2VydmVyLWNlcnRpZmljYXRlcycpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+IGZyb20ocmVzdWx0Lmpzb24oKSkpLFxuICAgICAgdGFwKHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMuX2NlcnRpZmljYXRlcyQubmV4dChyZXN1bHQpO1xuICAgICAgfSksXG4gICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgKSBhcyBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgfVxuXG4gIGNsZWFuVXBCYXNlNjREYXRhKGZpbGVSZWFkQXNEYXRhVVJMOiBzdHJpbmcpIHtcbiAgICBjb25zdCBiYXNlNjRSZWdFeHAgPSBSZWdFeHAoL2RhdGE6XFxTKztiYXNlNjQsL2dpKTtcbiAgICByZXR1cm4gZmlsZVJlYWRBc0RhdGFVUkw/Lmxlbmd0aCA+IDAgJiYgYmFzZTY0UmVnRXhwLnRlc3QoZmlsZVJlYWRBc0RhdGFVUkwpXG4gICAgICA/IGZpbGVSZWFkQXNEYXRhVVJMLnJlcGxhY2UoYmFzZTY0UmVnRXhwLCAnJylcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgbGlzdFNlcnZlcnMkKCkge1xuICAgIHRoaXMubGlzdFVybCA9IHRoaXMuZ2V0RGV0YWlsVXJsKHsgZW5kcG9pbnQ6IEVuZHBvaW50LnNlcnZlcnMgfSk7XG4gICAgcmV0dXJuIGZyb20oc3VwZXIubGlzdCgpIGFzIFByb21pc2U8SVJlc3VsdExpc3Q8U2VydmVyU2V0dGluZ3M+Pik7XG4gIH1cblxuICBjcmVhdGVTZXJ2ZXIkKHNlcnZlcjogU2VydmVyU2V0dGluZ3MpIHtcbiAgICByZXR1cm4gZnJvbShcbiAgICAgIHN1cGVyLmNyZWF0ZSh7IC4uLnNlcnZlciwgZW5kcG9pbnQ6IEVuZHBvaW50LnNlcnZlcnMgfSkgYXMgUHJvbWlzZTxJUmVzdWx0PFNlcnZlclNldHRpbmdzPj5cbiAgICApO1xuICB9XG5cbiAgZGVsZXRlU2VydmVyJChzZXJ2ZXI6IFNlcnZlclNldHRpbmdzKSB7XG4gICAgcmV0dXJuIGZyb20oc3VwZXIuZGVsZXRlKHsgLi4uc2VydmVyLCBlbmRwb2ludDogRW5kcG9pbnQuc2VydmVycyB9KSk7XG4gIH1cblxuICB1cGRhdGUkKGVudGl0eTogRW50aXR5KSB7XG4gICAgcmV0dXJuIGZyb20oc3VwZXIudXBkYXRlKGVudGl0eSBhcyBUKSBhcyBQcm9taXNlPElSZXN1bHQ8VD4+KTtcbiAgfVxuXG4gIGRldGFpbCQodXJsQ2ZnOiBVcmxDb25maWcpIHtcbiAgICByZXR1cm4gZnJvbShzdXBlci5kZXRhaWwodXJsQ2ZnIGFzIFQpIGFzIFByb21pc2U8SVJlc3VsdDxUPj4pO1xuICB9XG5cbiAgZmV0Y2gkKHVybDogc3RyaW5nLCBpbml0PzogSUZldGNoT3B0aW9ucykge1xuICAgIHJldHVybiBmcm9tKHN1cGVyLmZldGNoKHVybCwgaW5pdCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWxldGVGaWVsZHNJblJlcXVlc3QoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBkZWxldGUgZW50aXR5Py5pZDtcbiAgICBkZWxldGUgZW50aXR5Py5lbmRwb2ludDtcbiAgICBkZWxldGUgKGVudGl0eSBhcyBJSWRlbnRpZmllZCk/LmRldmljZUluZm87XG4gICAgcmV0dXJuIGVudGl0eSBhcyBUO1xuICB9XG59XG4iXX0=
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHdtMm0tY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvdG9jb2wtbHdtMm0vc2VydmljZXMvbHdtMm0tY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBb0QsTUFBTSxhQUFhLENBQUM7QUFDNUYsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFDTCxRQUFRLEVBRVIsWUFBWSxFQUdaLGNBQWMsRUFHZCxJQUFJLEVBQ0wsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQUtsRCxNQUFNLE9BQU8seUJBQ1gsU0FBUSxrQkFBcUI7SUF3QjdCLFlBQ0UsTUFBbUIsRUFDWCxZQUEwQjtRQUVsQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFGTixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXRCMUIsWUFBTyxHQUFHLEdBQUcsWUFBWSxLQUFLLENBQUM7UUFFeEIsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLGtCQUFhLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0MsY0FBUyxHQUFzQyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RSxlQUFVLEdBQXVCLElBQUksZUFBZSxD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LENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxNQUFjO1FBQzFDLE9BQU8sTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUNsQixPQUFPLE1BQU0sRUFBRSxRQUFRLENBQUM7UUFDeEIsT0FBUSxNQUFzQixFQUFFLFVBQVUsQ0FBQztRQUMzQyxPQUFPLE1BQVcsQ0FBQztJQUNyQixDQUFDOztzSEF4UVUseUJBQXlCOzBIQUF6Qix5QkFBeUIsY0FGeEIsTUFBTTsyRkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGZXRjaENsaWVudCwgSUZldGNoT3B0aW9ucywgSUlkZW50aWZpZWQsIElSZXN1bHQsIElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBmcm9tLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTHdtMm1DbGllbnRTZXJ2aWNlIH0gZnJvbSAnLi9sd20ybS1jbGllbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEVuZHBvaW50LFxuICBTZXJ2ZXJTZXR0aW5ncyxcbiAgYWdlbnRCYXNlVXJsLFxuICBFbnRpdHksXG4gIFVybENvbmZpZyxcbiAgVmFsaWRhdGlvblR5cGUsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgU2VjdXJpdHlNb2RlRGljdGlvbmFyeU9iaixcbiAgTW9kZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3Byb3RvY29sLWx3bTJtL21vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTHdtMm1Db25maWd1cmF0aW9uU2VydmljZTxUID0gRW50aXR5PlxuICBleHRlbmRzIEx3bTJtQ2xpZW50U2VydmljZTxUPlxuICBpbXBsZW1lbnRzIE9uRGVzdHJveVxue1xuICBkZXZpY2VJZDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgYmFzZVVybCA9IGAke2FnZW50QmFzZVVybH0vdjFgO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbGlzdFNlcnZlcnMkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VydmVycyQ6IEJlaGF2aW9yU3ViamVjdDxTZXJ2ZXJTZXR0aW5nc1tdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zZXR0aW5ncyQ6IEJlaGF2aW9yU3ViamVjdDxUPiA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30gYXMgVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NlcnRpZmljYXRlcyQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdIGFzIHN0cmluZ1tdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VjdXJpdHlNb2RlRGljdFJhdyQ6IEJlaGF2aW9yU3ViamVjdDxTZWN1cml0eU1vZGVEaWN0aW9uYXJ5T2JqW10+ID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdIGFzIFNlY3VyaXR5TW9kZURpY3Rpb25hcnlPYmpbXSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlY3VyaXR5TW9kZUJ5U2NvcGUkOiBCZWhhdmlvclN1YmplY3Q8U2VjdXJpdHlNb2RlRGljdGlvbmFyeU9ialtdPiA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdChbXSBhcyBTZWN1cml0eU1vZGVEaWN0aW9uYXJ5T2JqW10pO1xuXG4gIHNlcnZlcnMkOiBPYnNlcnZhYmxlPFNlcnZlclNldHRpbmdzW10+ID0gdGhpcy5fc2VydmVycyQuYXNPYnNlcnZhYmxlKCk7XG4gIHNldHRpbmdzJDogT2JzZXJ2YWJsZTxUPiA9IHRoaXMuX3NldHRpbmdzJC5hc09ic2VydmFibGUoKTtcbiAgY2VydGlmaWNhdGVzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT4gPSB0aGlzLl9jZXJ0aWZpY2F0ZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICBzZWN1cml0eU1vZGVzQnlTY29wZSQ6IE9ic2VydmFibGU8U2VjdXJpdHlNb2RlRGljdGlvbmFyeU9ialtdPiA9XG4gICAgdGhpcy5fc2VjdXJpdHlNb2RlQnlTY29wZSQuYXNPYnNlcnZhYmxlKCk7XG4gIHNlY3VyaXR5TW9kZXNSYXckOiBPYnNlcnZhYmxlPFNlY3VyaXR5TW9kZURpY3Rpb25hcnlPYmpbXT4gPVxuICAgIHRoaXMuX3NlY3VyaXR5TW9kZURpY3RSYXckLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNsaWVudDogRmV0Y2hDbGllbnQsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxuICApIHtcbiAgICBzdXBlcihjbGllbnQpO1xuXG4gICAgdGhpcy5fbGlzdFNlcnZlcnMkXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgdGhpcy5saXN0U2VydmVycyQoKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3AgPT4gdGhpcy5fc2VydmVycyQubmV4dChyZXNwPy5kYXRhIGFzIHVua25vd24gYXMgU2VydmVyU2V0dGluZ3NbXSkpXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBnZXRTZXR0aW5nc0Zvcih1cmxDZmc6IFVybENvbmZpZykge1xuICAgIHRoaXMuZGV0YWlsJCh1cmxDZmcpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiBvZih7fSBhcyBUKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB0aGlzLl9zZXR0aW5ncyQubmV4dChkYXRhIGFzIFQpKTtcbiAgfVxuXG4gIGxpc3RTZXJ2ZXJzKCkge1xuICAgIHRoaXMuX2xpc3RTZXJ2ZXJzJC5uZXh0KCk7XG4gIH1cblxuICB1cGRhdGVDb25maWcoZW50aXR5OiBULCBlbmRwb2ludDogRW5kcG9pbnQpIHtcbiAgICB0aGlzLnVwZGF0ZSQoeyAuLi5lbnRpdHksIGVuZHBvaW50IH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb25CZWZvcmVVcGRhdGUoZW50aXR5OiBFbnRpdHkpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVGaWVsZHNJblJlcXVlc3QoZW50aXR5KTtcbiAgfVxuXG4gIG9uQmVmb3JlQ3JlYXRlKGVudGl0eTogRW50aXR5KSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlRmllbGRzSW5SZXF1ZXN0KGVudGl0eSk7XG4gIH1cblxuICBnZXREZXRhaWxVcmwoZW50aXR5OiBFbnRpdHkpOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgZW5kcG9pbnQgfSA9IGVudGl0eTtcbiAgICBjb25zdCBpZCA9IGVudGl0eS5pZCA/PyAnJztcbiAgICBjb25zdCBkZXZpY2VDb25maWdVcmwgPSBgZGV2aWNlLyR7dGhpcy5kZXZpY2VJZH0vY29uZmlndXJhdGlvbmA7XG5cbiAgICBpZiAoIWVuZHBvaW50KSB7XG4gICAgICB0aHJvdyB7IGRhdGE6IHsgbWVzc2FnZTogZ2V0dGV4dCgnVW5hYmxlIHRvIGZpbmQgZW5kcG9pbnQnKSB9IH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGlkLmxlbmd0aCA+IDAgJiYgZW5kcG9pbnQgPT09IEVuZHBvaW50LnNlcnZlcnNcbiAgICAgID8gYCR7ZGV2aWNlQ29uZmlnVXJsfS8ke2VuZHBvaW50fS8ke2lkfWBcbiAgICAgIDogYCR7ZGV2aWNlQ29uZmlnVXJsfS8ke2VuZHBvaW50fWA7XG4gIH1cblxuICB2YWxpZGF0ZShjZXJ0aWZpY2F0ZTogc3RyaW5nLCB0eXBlOiBWYWxpZGF0aW9uVHlwZSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgaWYgKGNlcnRpZmljYXRlPy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBbdHlwZSA9PT0gVmFsaWRhdGlvblR5cGUuUFJJVkFURV9LRVkgPyAnZW5jb2RlZFByaXZhdGVLZXknIDogJ2VuY29kZWRDZXJ0aWZpY2F0ZSddOlxuICAgICAgICAgIGNlcnRpZmljYXRlXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHRoaXMuZmV0Y2gkKGBkZXZpY2UvY29uZmlndXJhdGlvbi8ke3R5cGV9L3ZhbGlkYXRlYCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczogeyAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCBhY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgICBib2R5XG4gICAgICB9KS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+XG4gICAgICAgICAgZnJvbShyZXN1bHQuanNvbigpIGFzIFByb21pc2U8b2JqZWN0PikucGlwZShcbiAgICAgICAgICAgIG1hcChkYXRhID0+IGRhdGFbJ2ZpbmdlcnByaW50J10gfHwgZGF0YVsnY29tbW9uTmFtZSddKVxuICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZTogSVJlc3VsdDxWYWxpZGF0aW9uRXJyb3I+KSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCBlcnJvciB9ID0gZT8uZGF0YTtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKHtcbiAgICAgICAgICAgIGRhdGE6IHsgbWVzc2FnZSwgZXhjZXB0aW9uTWVzc2FnZTogZXJyb3IgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGUpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBnZXRTZXJ2ZXJDZXJ0aWZpY2F0ZXMoKSB7XG4gICAgdGhpcy5mZXRjaFNlcnZlckNlcnRpZmljYXRlcyQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBmZXRjaFNlcnZlckNlcnRpZmljYXRlcyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2gkKCdkaWN0aW9uYXJ5L3NlcnZlci1jZXJ0aWZpY2F0ZXMnKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKHJlc3VsdCA9PiByZXN1bHQuanNvbigpKSxcbiAgICAgIHRhcChyZXN1bHQgPT4ge1xuICAgICAgICB0aGlzLl9jZXJ0aWZpY2F0ZXMkLm5leHQocmVzdWx0KTtcbiAgICAgIH0pXG4gICAgKSBhcyBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgfVxuXG4gIGdldFNlY3VyaXR5TW9kZXMoKSB7XG4gICAgdGhpcy5mZXRjaFNlY3VyaXR5TW9kZXMkKClcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICAvLyBVc2UgdGhpcyBhcyBmYWxsYmFjay4gVGhlcmUgaXMgdGhlIHBvc3NpYmlsaXR5IHRoYXRcbiAgICAgICAgICAvLyB0aGUgVUkgdmVyc2lvbiBydW5zIGFnYWluc3QgYW4gYWdlbnQgdmVyc2lvbiB3aXRob3V0IHRoZSBuZWVkZWQgZW5kcG9pbnQ6XG4gICAgICAgICAgLy8gJ2RpY3Rpb25hcnkvc2VjdXJpdHktbW9kZXMnXG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgZGF0YTogeyBzdGF0dXMgfVxuICAgICAgICAgIH0gPSBlcnJvcjtcbiAgICAgICAgICBzdGF0dXMgIT09IDQwNFxuICAgICAgICAgICAgPyB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGVycm9yKVxuICAgICAgICAgICAgOiB0aGlzLl9zZWN1cml0eU1vZGVEaWN0UmF3JC5uZXh0KFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogTW9kZS5ESVNBQkxFRCxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBNb2RlLkRJU0FCTEVELFxuICAgICAgICAgICAgICAgICAgdXNlSW5Cb290c3RyYXBDb25uZWN0aXZpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICB1c2VJblNlcnZlckNvbm5lY3Rpdml0eTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IE1vZGUuTk9fU0VDLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IE1vZGUuTk9fU0VDLFxuICAgICAgICAgICAgICAgICAgdXNlSW5Cb290c3RyYXBDb25uZWN0aXZpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICB1c2VJblNlcnZlckNvbm5lY3Rpdml0eTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IE1vZGUuUFNLLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IE1vZGUuUFNLLFxuICAgICAgICAgICAgICAgICAgdXNlSW5Cb290c3RyYXBDb25uZWN0aXZpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICB1c2VJblNlcnZlckNvbm5lY3Rpdml0eTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdYLjUwOScsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogTW9kZS5YNTA5LFxuICAgICAgICAgICAgICAgICAgdXNlSW5Cb290c3RyYXBDb25uZWN0aXZpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICB1c2VJblNlcnZlckNvbm5lY3Rpdml0eTogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGZldGNoU2VjdXJpdHlNb2RlcyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2gkKCdkaWN0aW9uYXJ5L3NlY3VyaXR5LW1vZGVzJykucGlwZShcbiAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT4gcmVzdWx0Lmpzb24oKSksXG4gICAgICBtYXAoKHJlc3VsdDogU2VjdXJpdHlNb2RlRGljdGlvbmFyeU9ialtdKSA9PlxuICAgICAgICByZXN1bHQubWFwKCh7IG5hbWUsIHVzZUluQm9vdHN0cmFwQ29ubmVjdGl2aXR5LCB1c2VJblNlcnZlckNvbm5lY3Rpdml0eSB9KSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiBuYW1lLnJlcGxhY2UoJ1g1MDknLCAnWC41MDknKSxcbiAgICAgICAgICB2YWx1ZTogbmFtZSxcbiAgICAgICAgICB1c2VJbkJvb3RzdHJhcENvbm5lY3Rpdml0eSxcbiAgICAgICAgICB1c2VJblNlcnZlckNvbm5lY3Rpdml0eVxuICAgICAgICB9KSlcbiAgICAgICksXG4gICAgICB0YXAoKHJlc3VsdDogU2VjdXJpdHlNb2RlRGljdGlvbmFyeU9ialtdKSA9PiB7XG4gICAgICAgIHRoaXMuX3NlY3VyaXR5TW9kZURpY3RSYXckLm5leHQocmVzdWx0KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldFNlY3VyaXR5TW9kZUJ5U2NvcGUoc2NvcGU6ICd1c2VJbkJvb3RzdHJhcENvbm5lY3Rpdml0eScgfCAndXNlSW5TZXJ2ZXJDb25uZWN0aXZpdHknKSB7XG4gICAgdGhpcy5fc2VjdXJpdHlNb2RlQnlTY29wZSQubmV4dChcbiAgICAgIHRoaXMuX3NlY3VyaXR5TW9kZURpY3RSYXckXG4gICAgICAgIC5nZXRWYWx1ZSgpXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKHsgdXNlSW5Cb290c3RyYXBDb25uZWN0aXZpdHksIHVzZUluU2VydmVyQ29ubmVjdGl2aXR5IH0pID0+XG4gICAgICAgICAgICAodXNlSW5Cb290c3RyYXBDb25uZWN0aXZpdHkgJiYgc2NvcGUgPT09ICd1c2VJbkJvb3RzdHJhcENvbm5lY3Rpdml0eScpIHx8XG4gICAgICAgICAgICAodXNlSW5TZXJ2ZXJDb25uZWN0aXZpdHkgJiYgc2NvcGUgPT09ICd1c2VJblNlcnZlckNvbm5lY3Rpdml0eScpXG4gICAgICAgIClcbiAgICApO1xuICB9XG5cbiAgY2xlYW5VcEJhc2U2NERhdGEoZmlsZVJlYWRBc0RhdGFVUkw6IHN0cmluZykge1xuICAgIGNvbnN0IGJhc2U2NFJlZ0V4cCA9IFJlZ0V4cCgvZGF0YTpcXFMrO2Jhc2U2NCwvZ2kpO1xuICAgIHJldHVybiBmaWxlUmVhZEFzRGF0YVVSTD8ubGVuZ3RoID4gMCAmJiBiYXNlNjRSZWdFeHAudGVzdChmaWxlUmVhZEFzRGF0YVVSTClcbiAgICAgID8gZmlsZVJlYWRBc0RhdGFVUkwucmVwbGFjZShiYXNlNjRSZWdFeHAsICcnKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBsaXN0U2VydmVycyQoKSB7XG4gICAgdGhpcy5saXN0VXJsID0gdGhpcy5nZXREZXRhaWxVcmwoeyBlbmRwb2ludDogRW5kcG9pbnQuc2VydmVycyB9KTtcbiAgICByZXR1cm4gZnJvbShzdXBlci5saXN0KCkgYXMgUHJvbWlzZTxJUmVzdWx0TGlzdDxTZXJ2ZXJTZXR0aW5ncz4+KTtcbiAgfVxuXG4gIGNyZWF0ZVNlcnZlciQoc2VydmVyOiBTZXJ2ZXJTZXR0aW5ncykge1xuICAgIHJldHVybiBmcm9tKFxuICAgICAgc3VwZXIuY3JlYXRlKHsgLi4uc2VydmVyLCBlbmRwb2ludDogRW5kcG9pbnQuc2VydmVycyB9KSBhcyBQcm9taXNlPElSZXN1bHQ8U2VydmVyU2V0dGluZ3M+PlxuICAgICk7XG4gIH1cblxuICBkZWxldGVTZXJ2ZXIkKHNlcnZlcjogU2VydmVyU2V0dGluZ3MpIHtcbiAgICByZXR1cm4gZnJvbShzdXBlci5kZWxldGUoeyAuLi5zZXJ2ZXIsIGVuZHBvaW50OiBFbmRwb2ludC5zZXJ2ZXJzIH0pKTtcbiAgfVxuXG4gIHVwZGF0ZSQoZW50aXR5OiBFbnRpdHkpIHtcbiAgICByZXR1cm4gZnJvbShzdXBlci51cGRhdGUoZW50aXR5IGFzIFQpIGFzIFByb21pc2U8SVJlc3VsdDxUPj4pO1xuICB9XG5cbiAgZGV0YWlsJCh1cmxDZmc6IFVybENvbmZpZykge1xuICAgIHJldHVybiBmcm9tKHN1cGVyLmRldGFpbCh1cmxDZmcgYXMgVCkgYXMgUHJvbWlzZTxJUmVzdWx0PFQ+Pik7XG4gIH1cblxuICBmZXRjaCQodXJsOiBzdHJpbmcsIGluaXQ/OiBJRmV0Y2hPcHRpb25zKSB7XG4gICAgcmV0dXJuIGZyb20oc3VwZXIuZmV0Y2godXJsLCBpbml0KSk7XG4gIH1cblxuICBwcml2YXRlIGRlbGV0ZUZpZWxkc0luUmVxdWVzdChlbnRpdHk6IEVudGl0eSkge1xuICAgIGRlbGV0ZSBlbnRpdHk/LmlkO1xuICAgIGRlbGV0ZSBlbnRpdHk/LmVuZHBvaW50O1xuICAgIGRlbGV0ZSAoZW50aXR5IGFzIElJZGVudGlmaWVkKT8uZGV2aWNlSW5mbztcbiAgICByZXR1cm4gZW50aXR5IGFzIFQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2305,15 +2305,15 @@ class DeviceInfoDashboardComponent {
|
|
|
2305
2305
|
_x: 0,
|
|
2306
2306
|
_y: 0,
|
|
2307
2307
|
_height: 5,
|
|
2308
|
-
_width:
|
|
2308
|
+
_width: 8
|
|
2309
2309
|
},
|
|
2310
2310
|
{
|
|
2311
2311
|
name: 'Data points graph',
|
|
2312
2312
|
title: gettext('Device and communication'),
|
|
2313
|
-
_x:
|
|
2313
|
+
_x: 8,
|
|
2314
2314
|
_y: 0,
|
|
2315
2315
|
_height: 5,
|
|
2316
|
-
_width:
|
|
2316
|
+
_width: 16,
|
|
2317
2317
|
config: {
|
|
2318
2318
|
interval: 'hours',
|
|
2319
2319
|
aggregation: 'NONE',
|
|
@@ -2481,15 +2481,15 @@ class DeviceInfoDashboardComponent {
|
|
|
2481
2481
|
_x: 0,
|
|
2482
2482
|
_y: 5,
|
|
2483
2483
|
_height: 8,
|
|
2484
|
-
_width:
|
|
2484
|
+
_width: 8
|
|
2485
2485
|
},
|
|
2486
2486
|
{
|
|
2487
2487
|
name: 'Alarm list',
|
|
2488
2488
|
title: gettext('Active, critical alarms'),
|
|
2489
|
-
_x:
|
|
2489
|
+
_x: 8,
|
|
2490
2490
|
_y: 5,
|
|
2491
2491
|
_height: 4,
|
|
2492
|
-
_width:
|
|
2492
|
+
_width: 8,
|
|
2493
2493
|
config: {
|
|
2494
2494
|
options: {
|
|
2495
2495
|
orderMode: 'ACTIVE_FIRST',
|
|
@@ -2506,18 +2506,18 @@ class DeviceInfoDashboardComponent {
|
|
|
2506
2506
|
{
|
|
2507
2507
|
name: 'deviceGroupAssignmentWidget',
|
|
2508
2508
|
title: gettext('Group assignment'),
|
|
2509
|
-
_x:
|
|
2509
|
+
_x: 16,
|
|
2510
2510
|
_y: 5,
|
|
2511
2511
|
_height: 4,
|
|
2512
|
-
_width:
|
|
2512
|
+
_width: 8
|
|
2513
2513
|
},
|
|
2514
2514
|
{
|
|
2515
2515
|
componentId: 'Map',
|
|
2516
2516
|
title: gettext('Location'),
|
|
2517
|
-
_x:
|
|
2517
|
+
_x: 8,
|
|
2518
2518
|
_y: 9,
|
|
2519
2519
|
_height: 4,
|
|
2520
|
-
_width:
|
|
2520
|
+
_width: 16
|
|
2521
2521
|
}
|
|
2522
2522
|
];
|
|
2523
2523
|
}
|