@c8y/ngx-components 1021.7.0 → 1021.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/alarms/alarms-date-filter.component.d.ts +34 -0
- package/alarms/alarms-date-filter.component.d.ts.map +1 -0
- package/alarms/alarms-filter.component.d.ts +2 -1
- package/alarms/alarms-filter.component.d.ts.map +1 -1
- package/alarms/alarms-view.service.d.ts +4 -2
- package/alarms/alarms-view.service.d.ts.map +1 -1
- package/alarms/alarms.component.d.ts +3 -1
- package/alarms/alarms.component.d.ts.map +1 -1
- package/alarms/alarms.model.d.ts +17 -1
- package/alarms/alarms.model.d.ts.map +1 -1
- package/alarms/alarms.module.d.ts +15 -13
- package/alarms/alarms.module.d.ts.map +1 -1
- package/branding/shared/data/store-branding.service.d.ts +5 -0
- package/branding/shared/data/store-branding.service.d.ts.map +1 -1
- package/branding/shared/lazy/branding/branding.component.d.ts.map +1 -1
- package/cockpit-config/cockpit-config.model.d.ts +1 -0
- package/cockpit-config/cockpit-config.model.d.ts.map +1 -1
- package/context-dashboard/dashboard-manager/dashboard-manager.module.d.ts.map +1 -1
- package/core/common/options.service.d.ts +1 -1
- package/core/common/options.service.d.ts.map +1 -1
- package/core/dashboard/dashboard.module.d.ts +19 -19
- package/core/dashboard/widget-change-event.model.d.ts +1 -1
- package/core/dashboard/widget-change-event.model.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context-helper.service.d.ts +2 -1
- package/core/dashboard/wiget-time-context/widget-time-context-helper.service.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context-query.service.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts +2 -1
- package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts +1 -14
- package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts.map +1 -1
- package/core/date-time-picker/date-time-picker.component.d.ts.map +1 -1
- package/core/forms/validation-pattern.d.ts +4 -0
- package/core/forms/validation-pattern.d.ts.map +1 -1
- package/core/plugins/plugins.service.d.ts +1 -1
- package/core/plugins/plugins.service.d.ts.map +1 -1
- package/esm2022/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.mjs +4 -4
- package/esm2022/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.mjs +3 -3
- package/esm2022/alarms/alarms-date-filter.component.mjs +139 -0
- package/esm2022/alarms/alarms-filter.component.mjs +11 -5
- package/esm2022/alarms/alarms-type-filter.component.mjs +3 -3
- package/esm2022/alarms/alarms-view.service.mjs +15 -2
- package/esm2022/alarms/alarms.component.mjs +12 -6
- package/esm2022/alarms/alarms.model.mjs +17 -1
- package/esm2022/alarms/alarms.module.mjs +11 -4
- package/esm2022/assets-navigator/asset-selector/asset-selector-node.component.mjs +3 -3
- package/esm2022/branding/shared/data/store-branding.service.mjs +24 -1
- package/esm2022/branding/shared/lazy/branding/branding.component.mjs +3 -1
- package/esm2022/cockpit-config/cockpit-config.model.mjs +3 -2
- package/esm2022/cockpit-config/feature-config.component.mjs +3 -3
- package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.module.mjs +5 -3
- package/esm2022/core/action-bar/action-bar.component.mjs +3 -3
- package/esm2022/core/common/options.service.mjs +3 -3
- package/esm2022/core/dashboard/dashboard.module.mjs +5 -4
- package/esm2022/core/dashboard/widget-change-event.model.mjs +1 -1
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context-helper.service.mjs +3 -2
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context-query.service.mjs +1 -1
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context.component.mjs +6 -5
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context.model.mjs +3 -47
- package/esm2022/core/date-time-picker/date-time-picker.component.mjs +7 -1
- package/esm2022/core/docs/defaults.items.mjs +2 -2
- package/esm2022/core/forms/validation-pattern.mjs +5 -1
- package/esm2022/core/list-display-switch/list-display-switch.component.mjs +3 -3
- package/esm2022/core/plugins/plugins.service.mjs +3 -3
- package/esm2022/core/router/context-route.guard.mjs +2 -2
- package/esm2022/core/search/search-input.component.mjs +3 -3
- package/esm2022/interval-picker/c8y-ngx-components-interval-picker.mjs +5 -0
- package/esm2022/interval-picker/index.mjs +3 -0
- package/esm2022/interval-picker/interval-picker.component.mjs +68 -0
- package/esm2022/interval-picker/interval-picker.model.mjs +47 -0
- package/esm2022/operations/bulk-operation-scheduler/operation-scheduler.component.mjs +7 -5
- package/esm2022/search/search-action.component.mjs +3 -3
- package/esm2022/tenants/custom-properties/custom-properties.component.mjs +90 -0
- package/esm2022/tenants/custom-properties/custom-properties.service.mjs +76 -0
- package/esm2022/tenants/custom-properties/custom-property-field/custom-property-field.component.mjs +29 -0
- package/esm2022/tenants/index.mjs +2 -1
- package/esm2022/tenants/tenant-limits/tenant-limits-definitions.mjs +92 -0
- package/esm2022/tenants/tenant-limits/tenant-limits.component.mjs +124 -0
- package/esm2022/tenants/tenants.module.mjs +42 -4
- package/esm2022/widgets/implementations/help-and-service-widget/help-and-service-view/help-and-service-view.component.mjs +2 -2
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +5 -5
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +184 -16
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs +2 -2
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +23 -0
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +2 -0
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs +4 -3
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +4 -2
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-interval-picker.mjs +120 -0
- package/fesm2022/c8y-ngx-components-interval-picker.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +6 -4
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-search.mjs +2 -2
- package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-tenants.mjs +416 -11
- package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +292 -372
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/interval-picker/c8y-ngx-components-interval-picker.d.ts.map +1 -0
- package/interval-picker/index.d.ts +3 -0
- package/interval-picker/index.d.ts.map +1 -0
- package/{core/dashboard/wiget-time-context/interval-picker → interval-picker}/interval-picker.component.d.ts +10 -2
- package/interval-picker/interval-picker.component.d.ts.map +1 -0
- package/interval-picker/interval-picker.model.d.ts +15 -0
- package/interval-picker/interval-picker.model.d.ts.map +1 -0
- package/locales/de.po +4 -1
- package/locales/en.po +3 -0
- package/locales/en_US.po +3 -0
- package/locales/es.po +3 -0
- package/locales/fr.po +3 -0
- package/locales/ja_JP.po +3 -0
- package/locales/locales.pot +47 -3
- package/locales/nl.po +3 -0
- package/locales/pl.po +3 -0
- package/locales/pt_BR.po +3 -0
- package/operations/bulk-operation-scheduler/operation-scheduler.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/tenants/custom-properties/custom-properties.component.d.ts +26 -0
- package/tenants/custom-properties/custom-properties.component.d.ts.map +1 -0
- package/tenants/custom-properties/custom-properties.service.d.ts +26 -0
- package/tenants/custom-properties/custom-properties.service.d.ts.map +1 -0
- package/tenants/custom-properties/custom-property-field/custom-property-field.component.d.ts +10 -0
- package/tenants/custom-properties/custom-property-field/custom-property-field.component.d.ts.map +1 -0
- package/tenants/index.d.ts +1 -0
- package/tenants/index.d.ts.map +1 -1
- package/tenants/tenant-limits/tenant-limits-definitions.d.ts +117 -0
- package/tenants/tenant-limits/tenant-limits-definitions.d.ts.map +1 -0
- package/tenants/tenant-limits/tenant-limits.component.d.ts +39 -0
- package/tenants/tenant-limits/tenant-limits.component.d.ts.map +1 -0
- package/tenants/tenants.module.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/interval-picker/interval-picker.component.d.ts.map +0 -1
- package/esm2022/core/dashboard/wiget-time-context/interval-picker/interval-picker.component.mjs +0 -55
|
@@ -2,7 +2,7 @@ import { gettext } from '../i18n/gettext';
|
|
|
2
2
|
export const legalNoticesItem = {
|
|
3
3
|
icon: 'gavel',
|
|
4
4
|
label: gettext('Legal notices'),
|
|
5
|
-
url: 'https://
|
|
5
|
+
url: 'https://cumulocity.com/docs/legal-notices/',
|
|
6
6
|
type: 'doc'
|
|
7
7
|
};
|
|
8
8
|
export const documentationItems = [
|
|
@@ -56,4 +56,4 @@ export const documentationItems = [
|
|
|
56
56
|
},
|
|
57
57
|
legalNoticesItem
|
|
58
58
|
];
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdHMuaXRlbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2RvY3MvZGVmYXVsdHMuaXRlbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzFDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFxQjtJQUNoRCxJQUFJLEVBQUUsT0FBTztJQUNiLEtBQUssRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQy9CLEdBQUcsRUFBRSw0Q0FBNEM7SUFDakQsSUFBSSxFQUFFLEtBQUs7Q0FDWixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQXVCO0lBQ3BEO1FBQ0UsSUFBSSxFQUFFLGNBQWMsRUFBRSwwQkFBMEI7UUFDaEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztRQUN6QyxHQUFHLEVBQUUsNkJBQTZCO1FBQ2xDLElBQUksRUFBRSxLQUFLO0tBQ1o7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLEtBQUssRUFBRSxPQUFPLENBQUMsZ0NBQWdDLENBQUM7UUFDaEQsR0FBRyxFQUFFLCtCQUErQjtRQUNwQyxJQUFJLEVBQUUsS0FBSztLQUNaO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLEtBQUssRUFBRSxPQUFPLENBQUMsd0NBQXdDLENBQUM7UUFDeEQsR0FBRyxFQUFFLHVDQUF1QztRQUM1QyxJQUFJLEVBQUUsS0FBSztLQUNaO0lBRUQ7UUFDRSxJQUFJLEVBQUUsdUJBQXVCO1FBQzdCLEtBQUssRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUM7UUFDbkMsR0FBRyxFQUFFLGlDQUFpQztRQUN0QyxJQUFJLEVBQUUsS0FBSztLQUNaO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsYUFBYTtRQUNuQixLQUFLLEVBQUUsT0FBTyxDQUFDLHVDQUF1QyxDQUFDO1FBQ3ZELEdBQUcsRUFBRSw4QkFBOEI7UUFDbkMsSUFBSSxFQUFFLEtBQUs7S0FDWjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQztRQUNwRCxHQUFHLEVBQUUsOEJBQThCO1FBQ25DLElBQUksRUFBRSxLQUFLO0tBQ1o7SUFDRDtRQUNFLElBQUksRUFBRSxtQkFBbUI7UUFDekIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQztRQUNwRCxHQUFHLEVBQUUsOENBQThDO1FBQ25ELElBQUksRUFBRSxLQUFLO0tBQ1o7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLEtBQUssRUFBRSxPQUFPLENBQUMsc0NBQXNDLENBQUM7UUFDdEQsR0FBRyxFQUFFLE1BQU07UUFDWCxJQUFJLEVBQUUsS0FBSztLQUNaO0lBQ0QsZ0JBQWdCO0NBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnLi4vaTE4bi9nZXR0ZXh0JztcbmltcG9ydCB7IERvY0xpbmtXaXRoTGFiZWwgfSBmcm9tICcuL2RvY3MubW9kZWxzJztcblxuZXhwb3J0IGNvbnN0IGxlZ2FsTm90aWNlc0l0ZW06IERvY0xpbmtXaXRoTGFiZWwgPSB7XG4gIGljb246ICdnYXZlbCcsXG4gIGxhYmVsOiBnZXR0ZXh0KCdMZWdhbCBub3RpY2VzJyksXG4gIHVybDogJ2h0dHBzOi8vY3VtdWxvY2l0eS5jb20vZG9jcy9sZWdhbC1ub3RpY2VzLycsXG4gIHR5cGU6ICdkb2MnXG59O1xuXG5leHBvcnQgY29uc3QgZG9jdW1lbnRhdGlvbkl0ZW1zOiBEb2NMaW5rV2l0aExhYmVsW10gPSBbXG4gIHtcbiAgICBpY29uOiAnYzh5LWM4eS1kYXRhJywgLy8gZG91YmxlIGM4eS0gaXMgY29ycmVjdCFcbiAgICBsYWJlbDogZ2V0dGV4dCgnQ29uY2VwdHNgS0VFUF9PUklHSU5BTGAnKSxcbiAgICB1cmw6ICcvZG9jcy9jb25jZXB0cy9pbnRyb2R1Y3Rpb24nLFxuICAgIHR5cGU6ICdkb2MnXG4gIH0sXG4gIHtcbiAgICBpY29uOiAnYzh5LXVzZXInLFxuICAgIGxhYmVsOiBnZXR0ZXh0KCdHZXR0aW5nIHN0YXJ0ZWRgS0VFUF9PUklHSU5BTGAnKSxcbiAgICB1cmw6ICcvZG9jcy9zZWN0aW9uL2dldHRpbmdfc3RhcnRlZCcsXG4gICAgdHlwZTogJ2RvYydcbiAgfSxcbiAge1xuICAgIGljb246ICdjOHktYWRtaW5pc3RyYXRpb24nLFxuICAgIGxhYmVsOiBnZXR0ZXh0KCdQbGF0Zm9ybSBhZG1pbmlzdHJhdGlvbmBLRUVQX09SSUdJTkFMYCcpLFxuICAgIHVybDogJy9kb2NzL3NlY3Rpb24vcGxhdGZvcm1fYWRtaW5pc3RyYXRpb24nLFxuICAgIHR5cGU6ICdkb2MnXG4gIH0sXG5cbiAge1xuICAgIGljb246ICdjOHktZGV2aWNlLW1hbmFnZW1lbnQnLFxuICAgIGxhYmVsOiBnZXR0ZXh0KCdEZXZpY2UgTWFuYWdlbWVudCcpLFxuICAgIHVybDogJy9kb2NzL3NlY3Rpb24vZGV2aWNlX21hbmFnZW1lbnQnLFxuICAgIHR5cGU6ICdkb2MnXG4gIH0sXG4gIHtcbiAgICBpY29uOiAnYzh5LWNvY2twaXQnLFxuICAgIGxhYmVsOiBnZXR0ZXh0KCdBcHBsaWNhdGlvbiBlbmFibGVtZW50YEtFRVBfT1JJR0lOQUxgJyksXG4gICAgdXJsOiAnL2RvY3Mvc2VjdGlvbi9hcHBfZW5hYmxlbWVudCcsXG4gICAgdHlwZTogJ2RvYydcbiAgfSxcbiAge1xuICAgIGljb246ICdjOHktYm9vaycsXG4gICAgbGFiZWw6IGdldHRleHQoJ0N1bXVsb2NpdHkgSW9UIEVkZ2VgS0VFUF9PUklHSU5BTGAnKSxcbiAgICB1cmw6ICcvZG9jcy9lZGdlL2VkZ2UtaW50cm9kdWN0aW9uJyxcbiAgICB0eXBlOiAnZG9jJ1xuICB9LFxuICB7XG4gICAgaWNvbjogJ2M4eS1kYXRhLWV4cGxvcmVyJyxcbiAgICBsYWJlbDogZ2V0dGV4dCgnU3RyZWFtaW5nIGFuYWx5dGljc2BLRUVQX09SSUdJTkFMYCcpLFxuICAgIHVybDogJy9kb2NzL3N0cmVhbWluZy1hbmFseXRpY3Mvb3ZlcnZpZXctYW5hbHl0aWNzJyxcbiAgICB0eXBlOiAnZG9jJ1xuICB9LFxuICB7XG4gICAgaWNvbjogJ3Jlc3QtYXBpJyxcbiAgICBsYWJlbDogZ2V0dGV4dCgnT3BlbkFQSSBzcGVjaWZpY2F0aW9uYEtFRVBfT1JJR0lOQUxgJyksXG4gICAgdXJsOiAnL2FwaScsXG4gICAgdHlwZTogJ2RvYydcbiAgfSxcbiAgbGVnYWxOb3RpY2VzSXRlbVxuXTtcbiJdfQ==
|
|
@@ -44,6 +44,7 @@ export class ValidationPattern {
|
|
|
44
44
|
httpUrl: gettext('Must be a valid HTTP(S) URL.'),
|
|
45
45
|
colonedHexNumber: gettext('Must be a valid hexadecimal number. Must contain only the following characters: 0-9, a-f, A-F, :.'),
|
|
46
46
|
noDots: gettext('Dots not allowed.'),
|
|
47
|
+
integer: gettext('Invalid type, expected integer.'),
|
|
47
48
|
simpleJsonPath: gettext('Must be a valid JSON path'),
|
|
48
49
|
[DatapointLibraryValidationErrors.SHOULD_CONTAIN_NUMBER]: gettext('This field must contain a number.'),
|
|
49
50
|
[DatapointLibraryValidationErrors.SHOULD_BE_DEFINED]: gettext('Value must be defined.'),
|
|
@@ -94,6 +95,9 @@ export class ValidationPattern {
|
|
|
94
95
|
},
|
|
95
96
|
colonedHexNumber: {
|
|
96
97
|
pattern: /^[0-9a-fA-F:]+$/
|
|
98
|
+
},
|
|
99
|
+
integer: {
|
|
100
|
+
pattern: /^-?\d+$/
|
|
97
101
|
}
|
|
98
102
|
}; }
|
|
99
103
|
static get(key) {
|
|
@@ -101,4 +105,4 @@ export class ValidationPattern {
|
|
|
101
105
|
return pattern;
|
|
102
106
|
}
|
|
103
107
|
}
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1wYXR0ZXJuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9mb3Jtcy92YWxpZGF0aW9uLXBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0NBQWtDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVMxQyxNQUFNLENBQU4sSUFBWSxnQ0FXWDtBQVhELFdBQVksZ0NBQWdDO0lBQzFDLDREQUF3QixDQUFBO0lBQ3hCLHVEQUFtQixDQUFBO0lBQ25CLG9FQUFnQyxDQUFBO0lBQ2hDLDJFQUF1QyxDQUFBO0lBQ3ZDLHFGQUFpRCxDQUFBO0lBQ2pELCtFQUEyQyxDQUFBO0lBQzNDLHFGQUFpRCxDQUFBO0lBQ2pELCtFQUEyQyxDQUFBO0lBQzNDLHVFQUFtQyxDQUFBO0lBQ25DLHVFQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFYVyxnQ0FBZ0MsS0FBaEMsZ0NBQWdDLFFBVzNDO0FBRUQsV0FBVztBQUNYLE1BQU0sT0FBTyxpQkFBaUI7YUFDWixhQUFRLEdBQUc7UUFDekIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxxREFBcUQsQ0FBQztRQUN4RSxNQUFNLEVBQUUsT0FBTyxDQUNiLG1GQUFtRjtZQUNqRixvRkFBb0YsQ0FDdkY7UUFDRCxLQUFLLEVBQUUsT0FBTyxDQUFDLHdCQUF3QixDQUFDO1FBQ3hDLE1BQU0sRUFBRSxPQUFPLENBQUMsMEJBQTBCLENBQUM7UUFDM0Msd0JBQXdCLEVBQUUsT0FBTyxDQUMvQiwwSUFBMEksQ0FDM0k7UUFDRCxVQUFVLEVBQUUsT0FBTyxDQUNqQixpRkFBaUYsQ0FDbEY7UUFDRCxZQUFZLEVBQUUsT0FBTyxDQUFDLHFDQUFxQyxDQUFDO1FBQzVELEdBQUcsRUFBRSxPQUFPLENBQUMsc0JBQXNCLENBQUM7UUFDcEMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztRQUNwQyxTQUFTLEVBQUUsT0FBTyxDQUFDLGtEQUFr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QUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTogbWF4LWxpbmUtbGVuZ3RoXG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnLi4vaTE4bi9nZXR0ZXh0JztcblxuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uUnVsZXMge1xuICBwYXR0ZXJuPzogUmVnRXhwO1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIG1pbkxlbmd0aD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gRGF0YXBvaW50TGlicmFyeVZhbGlkYXRpb25FcnJvcnMge1xuICBJU19SRVFVSVJFRCA9ICdyZXF1aXJlZCcsXG4gIFBBVFRFUk4gPSAncGF0dGVybicsXG4gIFNIT1VMRF9DT05UQUlOX05VTUJFUiA9ICdudW1iZXInLFxuICBTSE9VTERfQkVfREVGSU5FRCA9ICdzaG91bGQtYmUtZGVmaW5lZCcsXG4gIEdSRUFURVJfVEhBTl9TQ0FMRV9NQVggPSAnZ3JlYXRlci10aGFuLXNjYWxlLW1heCcsXG4gIExFU1NfVEhBTl9TQ0FMRV9NSU4gPSAnbGVzcy10aGFuLXNjYWxlLW1pbicsXG4gIEdSRUFURVJfVEhBTl9SQU5HRV9NQVggPSAnZ3JlYXRlci10aGFuLXJhbmdlLW1heCcsXG4gIExFU1NfVEhBTl9SQU5HRV9NSU4gPSAnbGVzcy10aGFuLXJhbmdlLW1pbicsXG4gIE1JTl9BQ1RJVkVfQ09VTlQgPSAnbWluQWN0aXZlQ291bnQnLFxuICBNQVhfQUNUSVZFX0NPVU5UID0gJ21heEFjdGl2ZUNvdW50J1xufVxuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25QYXR0ZXJuIHtcbiAgc3RhdGljIHJlYWRvbmx5IG1lc3NhZ2VzID0ge1xuICAgIGRldmljZUlkOiBnZXR0ZXh0KCdEZXZpY2UgSUQgbXVzdCBub3QgY29udGFpbiBzcGFjZXMgb3Igc2xhc2hlcyAoXCIvXCIpLicpLFxuICAgIGRvbWFpbjogZ2V0dGV4dChcbiAgICAgICdPbmx5IGxvd2VyY2FzZSBsZXR0ZXJzLCBkaWdpdHMgYW5kIGh5cGhlbnMgYWxsb3dlZCBpbiB0aGUgZmlyc3QgcGFydCBvZiB0aGUgVVJJLiAnICtcbiAgICAgICAgJ011c3Qgc3RhcnQgd2l0aCBhIGxldHRlcjsgaHlwaGVucyBvbmx5IGFsbG93ZWQgaW4gdGhlIG1pZGRsZS4gTXVzdCBiZSBhIHZhbGlkIFVSSS4nXG4gICAgKSxcbiAgICBlbWFpbDogZ2V0dGV4dCgnSW52YWxpZCBlbWFpbCBhZGRyZXNzLicpLFxuICAgIGVtYWlsczogZ2V0dGV4dCgnSW52YWxpZCBlbWFpbCBhZGRyZXNzZXMuJyksXG4gICAgaW50ZXJuYXRpb25hbFBob25lTnVtYmVyOiBnZXR0ZXh0KFxuICAgICAgJ011c3QgYmUgYSB2YWxpZCBwaG9uZSBudW1iZXIgKG9ubHkgZGlnaXRzLCBzcGFjZXMsIHNsYXNoZXMgKFwiL1wiKSwgZGFzaGVzIChcIi1cIiksIGFuZCBwbHVzIChcIitcIikgYWxsb3dlZCwgZm9yIGV4YW1wbGU6ICs0OSA5IDg3NiA1NDMgMjEwKS4nXG4gICAgKSxcbiAgICBsb2dpbkFsaWFzOiBnZXR0ZXh0KFxuICAgICAgJ0xvZ2luIGFsaWFzIG11c3Qgbm90IGNvbnRhaW4gc2xhc2hlcyAoXCIvXCIsIFwiXFxcXFwiKSBub3IgKFwiK1wiKSwgKFwiOlwiKSwgKFwiJFwiKSBzaWducy4nXG4gICAgKSxcbiAgICBpbnZhbGlkQ29sb3I6IGdldHRleHQoJ0ludmFsaWQgY29sb3IgXCJ7eyBjdXJyZW50VmFsdWUgfX1cIi4nKSxcbiAgICBtYXg6IGdldHRleHQoJ01heCB2YWx1ZToge3sgbWF4IH19JyksXG4gICAgbWluOiBnZXR0ZXh0KCdNaW4gdmFsdWU6IHt7IG1pbiB9fScpLFxuICAgIG1pbkxlbmd0aDogZ2V0dGV4dCgnU2hvdWxkIGhhdmUgYXQgbGVhc3Qge3sgbWluTGVuZ3RoIH19IGNoYXJhY3RlcnMuJyksXG4gICAgbWlubGVuZ3RoOiBnZXR0ZXh0KCdTaG91bGQgaGF2ZSBhdCBsZWFzdCB7eyByZXF1aXJlZExlbmd0aCB9fSBjaGFyYWN0ZXJzLicpLFxuICAgIG1heExlbmd0aDogZ2V0dGV4dCgnU2hvdWxkIGhhdmUgYXQgbW9zdCB7eyBtYXhMZW5ndGggfX0gY2hhcmFjdGVycy4nKSxcbiAgICBtYXhsZW5ndGg6IGdldHRleHQoJ1Nob3VsZCBoYXZlIGF0IG1vc3Qge3sgcmVxdWlyZWRMZW5ndGggfX0gY2hhcmFjdGVycy4nKSxcbiAgICBwYXR0ZXJuOiBnZXR0ZXh0KCdEb2VzIG5vdCBtYXRjaCBwYXR0ZXJuIHt7IHJlcXVpcmVkUGF0dGVybiB9fS4nKSxcbiAgICBvcGN1YUJyb3dzZVBhdGg6IGdldHRleHQoJ0ludmFsaWQgT1BDIFVBIFVSSS4nKSxcbiAgICBwYXNzd29yZDogZ2V0dGV4dChcbiAgICAgICdQYXNzd29yZCBtdXN0IGhhdmUgYXQgbGVhc3QgOCBjaGFyYWN0ZXJzIGFuZCBubyBtb3JlIHRoYW4gMzIgYW5kIGNhbiBvbmx5IGNvbnRhaW4gbGV0dGVycywgbnVtYmVycyBhbmQgZm9sbG93aW5nIHN5bWJvbHM6IGB+IUAjJCVeJiooKV98Ky09Pzs6XFwnXCIsLjw+e31bXVxcXFwvJ1xuICAgICksXG4gICAgcGFzc3dvcmRDb25maXJtOiBnZXR0ZXh0KCdQYXNzd29yZHMgZG8gbm90IG1hdGNoLicpLFxuICAgIHBhc3N3b3JkU3RyZW5ndGg6IGdldHRleHQoJ1Bhc3N3b3JkIGlzIG5vdCBzdHJvbmcgZW5vdWdoLCB1c2UgYSBzdHJvbmdlciBwYXNzd29yZC4nKSxcbiAgICBwYXNzd29yZFN0cmVuZ3RoQ2hlY2tsaXN0OiBnZXR0ZXh0KFxuICAgICAgJ1Bhc3N3b3JkIGlzIG5vdCBzdHJvbmcgZW5vdWdoLCB1c2UgYSBzdHJvbmdlciBwYXNzd29yZC4gQ2hlY2sgdGhlIHJlcXVpcmVtZW50cyBsaXN0ZWQgb24gdGhlIHJpZ2h0LidcbiAgICApLFxuICAgIHJlcXVpcmVkOiBnZXR0ZXh0KCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLicpLFxuICAgIHRlbmFudElkOiBnZXR0ZXh0KFxuICAgICAgJ01heSBjb250YWluIGxvd2VyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIGFuZCBoeXBoZW5zLiAnICtcbiAgICAgICAgJ011c3Qgc3RhcnQgd2l0aCBhIGxldHRlcjsgaHlwaGVucyBvbmx5IGFsbG93ZWQgaW4gdGhlIG1pZGRsZTsgbWluaW11bSAyIGNoYXJhY3RlcnMuJ1xuICAgICksXG4gICAgdXJsU2VnbWVudDogZ2V0dGV4dCgnU2xhc2gsIHNpbmdsZSBvciBkb3VibGUgZG90cyBhbmQgd2hpdGUgc3BhY2Ugbm90IGFsbG93ZWQuJyksXG4gICAgdXNlcjogZ2V0dGV4dChcbiAgICAgICdVc2VybmFtZSBtdXN0IG5vdCBjb250YWluIHNwYWNlcyBub3Igc2xhc2hlcyAoXCIvXCIsIFwiXFxcXFwiKSBub3IgKFwiK1wiKSwgKFwiOlwiKSwgKFwiJFwiKSBzaWducy4nXG4gICAgKSxcbiAgICBodHRwVXJsOiBnZXR0ZXh0KCdNdXN0IGJlIGEgdmFsaWQgSFRUUChTKSBVUkwuJyksXG4gICAgY29sb25lZEhleE51bWJlcjogZ2V0dGV4dChcbiAgICAgICdNdXN0IGJlIGEgdmFsaWQgaGV4YWRlY2ltYWwgbnVtYmVyLiBNdXN0IGNvbnRhaW4gb25seSB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IDAtOSwgYS1mLCBBLUYsIDouJ1xuICAgICksXG4gICAgbm9Eb3RzOiBnZXR0ZXh0KCdEb3RzIG5vdCBhbGxvd2VkLicpLFxuICAgIHNpbXBsZUpzb25QYXRoOiBnZXR0ZXh0KCdNdXN0IGJlIGEgdmFsaWQgSlNPTiBwYXRoJyksXG4gICAgW0RhdGFwb2ludExpYnJhcnlWYWxpZGF0aW9uRXJyb3JzLlNIT1VMRF9DT05UQUlOX05VTUJFUl06IGdldHRleHQoXG4gICAgICAnVGhpcyBmaWVsZCBtdXN0IGNvbnRhaW4gYSBudW1iZXIuJ1xuICAgICksXG4gICAgW0RhdGFwb2ludExpYnJhcnlWYWxpZGF0aW9uRXJyb3JzLlNIT1VMRF9CRV9ERUZJTkVEXTogZ2V0dGV4dCgnVmFsdWUgbXVzdCBiZSBkZWZpbmVkLicpLFxuICAgIFtEYXRhcG9pbnRMaWJyYXJ5VmFsaWRhdGlvbkVycm9ycy5HUkVBVEVSX1RIQU5fU0NBTEVfTUFYXTogZ2V0dGV4dChcbiAgICAgICdWYWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBzY2FsZSBtYXhpbXVtLidcbiAgICApLFxuICAgIFtEYXRhcG9pbnRMaWJyYXJ5VmFsaWRhdGlvbkVycm9ycy5MRVNTX1RIQU5fU0NBTEVfTUlOXTogZ2V0dGV4dChcbiAgICAgICdWYWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzY2FsZSBtaW5pbXVtLidcbiAgICApLFxuICAgIFtEYXRhcG9pbnRMaWJyYXJ5VmFsaWRhdGlvbkVycm9ycy5HUkVBVEVSX1RIQU5fUkFOR0VfTUFYXTogZ2V0dGV4dChcbiAgICAgICdWYWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiByZXNwZWN0aXZlIG1heGltdW0uJ1xuICAgICksXG4gICAgW0RhdGFwb2ludExpYnJhcnlWYWxpZGF0aW9uRXJyb3JzLkxFU1NfVEhBTl9SQU5HRV9NSU5dOiBnZXR0ZXh0KFxuICAgICAgJ1ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIHJlc3BlY3RpdmUgbWluaW11bS4nXG4gICAgKVxuICB9IGFzIGNvbnN0O1xuXG4gIHN0YXRpYyByZWFkb25seSBydWxlcyA9IHtcbiAgICBkZXZpY2VJZDoge1xuICAgICAgcGF0dGVybjogL15bXlxccy9dKiQvXG4gICAgfSxcbiAgICBkb21haW46IHtcbiAgICAgIHBhdHRlcm46IC9eW2Etel0rW2EtejAtOS1dKlthLXowLTldK1xcLnsxfS4rJC9cbiAgICB9LFxuICAgIGdyb3VwTmFtZToge1xuICAgICAgbWF4TGVuZ3RoOiAyNTRcbiAgICB9LFxuICAgIGhvc3RuYW1lOiB7XG4gICAgICBwYXR0ZXJuOlxuICAgICAgICAvXigoW2EtekEtWjAtOV18W2EtekEtWjAtOV1bYS16QS1aMC05LV0qW2EtekEtWjAtOV0pXFwuKSooW0EtWmEtejAtOV18W0EtWmEtejAtOV1bQS1aYS16MC05LV0qW0EtWmEtejAtOV0pJC9cbiAgICB9LFxuICAgIGlwOiB7XG4gICAgICBwYXR0ZXJuOlxuICAgICAgICAvXig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KSQvXG4gICAgfSxcbiAgICBvcGN1YUJyb3dzZVBhdGg6IHtcbiAgICAgIHBhdHRlcm46IC9eKG9wYy50Y3B8aHR0cHxodHRwcyk6XFwvXFwvW14gXCJdKyQvXG4gICAgfSxcbiAgICBwYXNzd29yZDoge1xuICAgICAgcGF0dGVybjogL15bYS16QS1aMC05YH4hQCMkJV4mKigpX3wrXFwtPT87OidcIiwuPD57fVtcXF1cXFxcL117OCwzMn0kL1xuICAgIH0sXG4gICAgdGVuYW50SWQ6IHtcbiAgICAgIHBhdHRlcm46IC9eW2Etel0rW2EtejAtOS1dKlthLXowLTldKyQvXG4gICAgfSxcbiAgICB1c2VyOiB7XG4gICAgICBwYXR0ZXJuOiAvXlteXFxcXC9cXHMkOitdKiQvXG4gICAgfSxcbiAgICB1cmxTZWdtZW50OiB7XG4gICAgICBwYXR0ZXJuOiAvXigoWy5dezEsMn0pfChbL10pK3woKFsvXSopKFsuXXsxLDJ9KShbL10qKSl8KCguKikoWy9dfFsgXSspKC4qKSl8KFxccyspKSQvXG4gICAgfSxcbiAgICBsb2dpbkFsaWFzOiB7XG4gICAgICBwYXR0ZXJuOiAvXlteXFxcXC8kOitdKiQvXG4gICAgfSxcbiAgICBub0RvdHM6IHtcbiAgICAgIHBhdHRlcm46IC9eW14uXSokL1xuICAgIH0sXG4gICAgaHR0cFVybDoge1xuICAgICAgcGF0dGVybjogL14oaHR0cHM/KTpcXC9cXC8uKiQvXG4gICAgfSxcbiAgICBjb2xvbmVkSGV4TnVtYmVyOiB7XG4gICAgICBwYXR0ZXJuOiAvXlswLTlhLWZBLUY6XSskL1xuICAgIH1cbiAgfTtcblxuICBzdGF0aWMgZ2V0KGtleTogc3RyaW5nKSB7XG4gICAgY29uc3QgcGF0dGVybiA9IHRoaXMucnVsZXNba2V5XTtcbiAgICByZXR1cm4gcGF0dGVybiBhcyBWYWxpZGF0aW9uUnVsZXM7XG4gIH1cbn1cbiJdfQ==
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1wYXR0ZXJuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9mb3Jtcy92YWxpZGF0aW9uLXBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0NBQWtDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVMxQyxNQUFNLENBQU4sSUFBWSxnQ0FXWDtBQVhELFdBQVksZ0NBQWdDO0lBQzFDLDREQUF3QixDQUFBO0lBQ3hCLHVEQUFtQixDQUFBO0lBQ25CLG9FQUFnQyxDQUFBO0lBQ2hDLDJFQUF1QyxDQUFBO0lBQ3ZDLHFGQUFpRCxDQUFBO0lBQ2pELCtFQUEyQyxDQUFBO0lBQzNDLHFGQUFpRCxDQUFBO0lBQ2pELCtFQUEyQyxDQUFBO0lBQzNDLHVFQUFtQyxDQUFBO0lBQ25DLHVFQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFYVyxnQ0FBZ0MsS0FBaEMsZ0NBQWdDLFFBVzNDO0FBRUQsV0FBVztBQUNYLE1BQU0sT0FBTyxpQkFBaUI7YUFDWixhQUFRLEdBQUc7UUFDekIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxxREFBcUQsQ0FBQztRQUN4RSxNQUFNLEVBQUUsT0FBTyxDQUNiLG1GQUFtRjtZQUNqRixvRkFBb0YsQ0FDdkY7UUFDRCxLQUFLLEVBQUUsT0FBTyxDQUFDLHdCQUF3QixDQUFDO1FBQ3hDLE1BQU0sRUFBRSxPQUFPLENBQUMsMEJBQTBCLENBQUM7UUFDM0Msd0JBQXdCLEVBQUUsT0FBTyxDQUMvQiwwSUFBMEksQ0FDM0k7UUFDRCxVQUFVLEVBQUUsT0FBTyxDQUNqQixpRkFBaUYsQ0FDbEY7UUFDRCxZQUFZLEVBQUUsT0FBTyxDQUFDLHFDQUFxQyxDQUFDO1FBQzVELEdBQUcsRUFBRSxPQUFPLENBQUMsc0JBQXNCLENBQUM7UUFDcEMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztRQUNwQyxTQUFTLEVBQUUsT0FBTyxDQUFDLGtEQUFr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QUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sT0FBMEIsQ0FBQztJQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6IG1heC1saW5lLWxlbmd0aFxuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uL2kxOG4vZ2V0dGV4dCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvblJ1bGVzIHtcbiAgcGF0dGVybj86IFJlZ0V4cDtcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBlbnVtIERhdGFwb2ludExpYnJhcnlWYWxpZGF0aW9uRXJyb3JzIHtcbiAgSVNfUkVRVUlSRUQgPSAncmVxdWlyZWQnLFxuICBQQVRURVJOID0gJ3BhdHRlcm4nLFxuICBTSE9VTERfQ09OVEFJTl9OVU1CRVIgPSAnbnVtYmVyJyxcbiAgU0hPVUxEX0JFX0RFRklORUQgPSAnc2hvdWxkLWJlLWRlZmluZWQnLFxuICBHUkVBVEVSX1RIQU5fU0NBTEVfTUFYID0gJ2dyZWF0ZXItdGhhbi1zY2FsZS1tYXgnLFxuICBMRVNTX1RIQU5fU0NBTEVfTUlOID0gJ2xlc3MtdGhhbi1zY2FsZS1taW4nLFxuICBHUkVBVEVSX1RIQU5fUkFOR0VfTUFYID0gJ2dyZWF0ZXItdGhhbi1yYW5nZS1tYXgnLFxuICBMRVNTX1RIQU5fUkFOR0VfTUlOID0gJ2xlc3MtdGhhbi1yYW5nZS1taW4nLFxuICBNSU5fQUNUSVZFX0NPVU5UID0gJ21pbkFjdGl2ZUNvdW50JyxcbiAgTUFYX0FDVElWRV9DT1VOVCA9ICdtYXhBY3RpdmVDb3VudCdcbn1cblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uUGF0dGVybiB7XG4gIHN0YXRpYyByZWFkb25seSBtZXNzYWdlcyA9IHtcbiAgICBkZXZpY2VJZDogZ2V0dGV4dCgnRGV2aWNlIElEIG11c3Qgbm90IGNvbnRhaW4gc3BhY2VzIG9yIHNsYXNoZXMgKFwiL1wiKS4nKSxcbiAgICBkb21haW46IGdldHRleHQoXG4gICAgICAnT25seSBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBoeXBoZW5zIGFsbG93ZWQgaW4gdGhlIGZpcnN0IHBhcnQgb2YgdGhlIFVSSS4gJyArXG4gICAgICAgICdNdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXI7IGh5cGhlbnMgb25seSBhbGxvd2VkIGluIHRoZSBtaWRkbGUuIE11c3QgYmUgYSB2YWxpZCBVUkkuJ1xuICAgICksXG4gICAgZW1haWw6IGdldHRleHQoJ0ludmFsaWQgZW1haWwgYWRkcmVzcy4nKSxcbiAgICBlbWFpbHM6IGdldHRleHQoJ0ludmFsaWQgZW1haWwgYWRkcmVzc2VzLicpLFxuICAgIGludGVybmF0aW9uYWxQaG9uZU51bWJlcjogZ2V0dGV4dChcbiAgICAgICdNdXN0IGJlIGEgdmFsaWQgcGhvbmUgbnVtYmVyIChvbmx5IGRpZ2l0cywgc3BhY2VzLCBzbGFzaGVzIChcIi9cIiksIGRhc2hlcyAoXCItXCIpLCBhbmQgcGx1cyAoXCIrXCIpIGFsbG93ZWQsIGZvciBleGFtcGxlOiArNDkgOSA4NzYgNTQzIDIxMCkuJ1xuICAgICksXG4gICAgbG9naW5BbGlhczogZ2V0dGV4dChcbiAgICAgICdMb2dpbiBhbGlhcyBtdXN0IG5vdCBjb250YWluIHNsYXNoZXMgKFwiL1wiLCBcIlxcXFxcIikgbm9yIChcIitcIiksIChcIjpcIiksIChcIiRcIikgc2lnbnMuJ1xuICAgICksXG4gICAgaW52YWxpZENvbG9yOiBnZXR0ZXh0KCdJbnZhbGlkIGNvbG9yIFwie3sgY3VycmVudFZhbHVlIH19XCIuJyksXG4gICAgbWF4OiBnZXR0ZXh0KCdNYXggdmFsdWU6IHt7IG1heCB9fScpLFxuICAgIG1pbjogZ2V0dGV4dCgnTWluIHZhbHVlOiB7eyBtaW4gfX0nKSxcbiAgICBtaW5MZW5ndGg6IGdldHRleHQoJ1Nob3VsZCBoYXZlIGF0IGxlYXN0IHt7IG1pbkxlbmd0aCB9fSBjaGFyYWN0ZXJzLicpLFxuICAgIG1pbmxlbmd0aDogZ2V0dGV4dCgnU2hvdWxkIGhhdmUgYXQgbGVhc3Qge3sgcmVxdWlyZWRMZW5ndGggfX0gY2hhcmFjdGVycy4nKSxcbiAgICBtYXhMZW5ndGg6IGdldHRleHQoJ1Nob3VsZCBoYXZlIGF0IG1vc3Qge3sgbWF4TGVuZ3RoIH19IGNoYXJhY3RlcnMuJyksXG4gICAgbWF4bGVuZ3RoOiBnZXR0ZXh0KCdTaG91bGQgaGF2ZSBhdCBtb3N0IHt7IHJlcXVpcmVkTGVuZ3RoIH19IGNoYXJhY3RlcnMuJyksXG4gICAgcGF0dGVybjogZ2V0dGV4dCgnRG9lcyBub3QgbWF0Y2ggcGF0dGVybiB7eyByZXF1aXJlZFBhdHRlcm4gfX0uJyksXG4gICAgb3BjdWFCcm93c2VQYXRoOiBnZXR0ZXh0KCdJbnZhbGlkIE9QQyBVQSBVUkkuJyksXG4gICAgcGFzc3dvcmQ6IGdldHRleHQoXG4gICAgICAnUGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDggY2hhcmFjdGVycyBhbmQgbm8gbW9yZSB0aGFuIDMyIGFuZCBjYW4gb25seSBjb250YWluIGxldHRlcnMsIG51bWJlcnMgYW5kIGZvbGxvd2luZyBzeW1ib2xzOiBgfiFAIyQlXiYqKClffCstPT87OlxcJ1wiLC48Pnt9W11cXFxcLydcbiAgICApLFxuICAgIHBhc3N3b3JkQ29uZmlybTogZ2V0dGV4dCgnUGFzc3dvcmRzIGRvIG5vdCBtYXRjaC4nKSxcbiAgICBwYXNzd29yZFN0cmVuZ3RoOiBnZXR0ZXh0KCdQYXNzd29yZCBpcyBub3Qgc3Ryb25nIGVub3VnaCwgdXNlIGEgc3Ryb25nZXIgcGFzc3dvcmQuJyksXG4gICAgcGFzc3dvcmRTdHJlbmd0aENoZWNrbGlzdDogZ2V0dGV4dChcbiAgICAgICdQYXNzd29yZCBpcyBub3Qgc3Ryb25nIGVub3VnaCwgdXNlIGEgc3Ryb25nZXIgcGFzc3dvcmQuIENoZWNrIHRoZSByZXF1aXJlbWVudHMgbGlzdGVkIG9uIHRoZSByaWdodC4nXG4gICAgKSxcbiAgICByZXF1aXJlZDogZ2V0dGV4dCgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nKSxcbiAgICB0ZW5hbnRJZDogZ2V0dGV4dChcbiAgICAgICdNYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgaHlwaGVucy4gJyArXG4gICAgICAgICdNdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXI7IGh5cGhlbnMgb25seSBhbGxvd2VkIGluIHRoZSBtaWRkbGU7IG1pbmltdW0gMiBjaGFyYWN0ZXJzLidcbiAgICApLFxuICAgIHVybFNlZ21lbnQ6IGdldHRleHQoJ1NsYXNoLCBzaW5nbGUgb3IgZG91YmxlIGRvdHMgYW5kIHdoaXRlIHNwYWNlIG5vdCBhbGxvd2VkLicpLFxuICAgIHVzZXI6IGdldHRleHQoXG4gICAgICAnVXNlcm5hbWUgbXVzdCBub3QgY29udGFpbiBzcGFjZXMgbm9yIHNsYXNoZXMgKFwiL1wiLCBcIlxcXFxcIikgbm9yIChcIitcIiksIChcIjpcIiksIChcIiRcIikgc2lnbnMuJ1xuICAgICksXG4gICAgaHR0cFVybDogZ2V0dGV4dCgnTXVzdCBiZSBhIHZhbGlkIEhUVFAoUykgVVJMLicpLFxuICAgIGNvbG9uZWRIZXhOdW1iZXI6IGdldHRleHQoXG4gICAgICAnTXVzdCBiZSBhIHZhbGlkIGhleGFkZWNpbWFsIG51bWJlci4gTXVzdCBjb250YWluIG9ubHkgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiAwLTksIGEtZiwgQS1GLCA6LidcbiAgICApLFxuICAgIG5vRG90czogZ2V0dGV4dCgnRG90cyBub3QgYWxsb3dlZC4nKSxcbiAgICBpbnRlZ2VyOiBnZXR0ZXh0KCdJbnZhbGlkIHR5cGUsIGV4cGVjdGVkIGludGVnZXIuJyksXG4gICAgc2ltcGxlSnNvblBhdGg6IGdldHRleHQoJ011c3QgYmUgYSB2YWxpZCBKU09OIHBhdGgnKSxcbiAgICBbRGF0YXBvaW50TGlicmFyeVZhbGlkYXRpb25FcnJvcnMuU0hPVUxEX0NPTlRBSU5fTlVNQkVSXTogZ2V0dGV4dChcbiAgICAgICdUaGlzIGZpZWxkIG11c3QgY29udGFpbiBhIG51bWJlci4nXG4gICAgKSxcbiAgICBbRGF0YXBvaW50TGlicmFyeVZhbGlkYXRpb25FcnJvcnMuU0hPVUxEX0JFX0RFRklORURdOiBnZXR0ZXh0KCdWYWx1ZSBtdXN0IGJlIGRlZmluZWQuJyksXG4gICAgW0RhdGFwb2ludExpYnJhcnlWYWxpZGF0aW9uRXJyb3JzLkdSRUFURVJfVEhBTl9TQ0FMRV9NQVhdOiBnZXR0ZXh0KFxuICAgICAgJ1ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIHNjYWxlIG1heGltdW0uJ1xuICAgICksXG4gICAgW0RhdGFwb2ludExpYnJhcnlWYWxpZGF0aW9uRXJyb3JzLkxFU1NfVEhBTl9TQ0FMRV9NSU5dOiBnZXR0ZXh0KFxuICAgICAgJ1ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIHNjYWxlIG1pbmltdW0uJ1xuICAgICksXG4gICAgW0RhdGFwb2ludExpYnJhcnlWYWxpZGF0aW9uRXJyb3JzLkdSRUFURVJfVEhBTl9SQU5HRV9NQVhdOiBnZXR0ZXh0KFxuICAgICAgJ1ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIHJlc3BlY3RpdmUgbWF4aW11bS4nXG4gICAgKSxcbiAgICBbRGF0YXBvaW50TGlicmFyeVZhbGlkYXRpb25FcnJvcnMuTEVTU19USEFOX1JBTkdFX01JTl06IGdldHRleHQoXG4gICAgICAnVmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gcmVzcGVjdGl2ZSBtaW5pbXVtLidcbiAgICApXG4gIH0gYXMgY29uc3Q7XG5cbiAgc3RhdGljIHJlYWRvbmx5IHJ1bGVzID0ge1xuICAgIGRldmljZUlkOiB7XG4gICAgICBwYXR0ZXJuOiAvXlteXFxzL10qJC9cbiAgICB9LFxuICAgIGRvbWFpbjoge1xuICAgICAgcGF0dGVybjogL15bYS16XStbYS16MC05LV0qW2EtejAtOV0rXFwuezF9LiskL1xuICAgIH0sXG4gICAgZ3JvdXBOYW1lOiB7XG4gICAgICBtYXhMZW5ndGg6IDI1NFxuICAgIH0sXG4gICAgaG9zdG5hbWU6IHtcbiAgICAgIHBhdHRlcm46XG4gICAgICAgIC9eKChbYS16QS1aMC05XXxbYS16QS1aMC05XVthLXpBLVowLTktXSpbYS16QS1aMC05XSlcXC4pKihbQS1aYS16MC05XXxbQS1aYS16MC05XVtBLVphLXowLTktXSpbQS1aYS16MC05XSkkL1xuICAgIH0sXG4gICAgaXA6IHtcbiAgICAgIHBhdHRlcm46XG4gICAgICAgIC9eKD86KD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KVxcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pJC9cbiAgICB9LFxuICAgIG9wY3VhQnJvd3NlUGF0aDoge1xuICAgICAgcGF0dGVybjogL14ob3BjLnRjcHxodHRwfGh0dHBzKTpcXC9cXC9bXiBcIl0rJC9cbiAgICB9LFxuICAgIHBhc3N3b3JkOiB7XG4gICAgICBwYXR0ZXJuOiAvXlthLXpBLVowLTlgfiFAIyQlXiYqKClffCtcXC09Pzs6J1wiLC48Pnt9W1xcXVxcXFwvXXs4LDMyfSQvXG4gICAgfSxcbiAgICB0ZW5hbnRJZDoge1xuICAgICAgcGF0dGVybjogL15bYS16XStbYS16MC05LV0qW2EtejAtOV0rJC9cbiAgICB9LFxuICAgIHVzZXI6IHtcbiAgICAgIHBhdHRlcm46IC9eW15cXFxcL1xccyQ6K10qJC9cbiAgICB9LFxuICAgIHVybFNlZ21lbnQ6IHtcbiAgICAgIHBhdHRlcm46IC9eKChbLl17MSwyfSl8KFsvXSkrfCgoWy9dKikoWy5dezEsMn0pKFsvXSopKXwoKC4qKShbL118WyBdKykoLiopKXwoXFxzKykpJC9cbiAgICB9LFxuICAgIGxvZ2luQWxpYXM6IHtcbiAgICAgIHBhdHRlcm46IC9eW15cXFxcLyQ6K10qJC9cbiAgICB9LFxuICAgIG5vRG90czoge1xuICAgICAgcGF0dGVybjogL15bXi5dKiQvXG4gICAgfSxcbiAgICBodHRwVXJsOiB7XG4gICAgICBwYXR0ZXJuOiAvXihodHRwcz8pOlxcL1xcLy4qJC9cbiAgICB9LFxuICAgIGNvbG9uZWRIZXhOdW1iZXI6IHtcbiAgICAgIHBhdHRlcm46IC9eWzAtOWEtZkEtRjpdKyQvXG4gICAgfSxcbiAgICBpbnRlZ2VyOiB7XG4gICAgICBwYXR0ZXJuOiAvXi0/XFxkKyQvXG4gICAgfVxuICB9O1xuXG4gIHN0YXRpYyBnZXQoa2V5OiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXR0ZXJuID0gdGhpcy5ydWxlc1trZXldO1xuICAgIHJldHVybiBwYXR0ZXJuIGFzIFZhbGlkYXRpb25SdWxlcztcbiAgfVxufVxuIl19
|
|
@@ -74,11 +74,11 @@ export class ListDisplaySwitchComponent {
|
|
|
74
74
|
return this.listKey || this.location.path();
|
|
75
75
|
}
|
|
76
76
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ListDisplaySwitchComponent, deps: [{ token: i1.Location }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ListDisplaySwitchComponent, selector: "c8y-list-display-switch", inputs: { listKey: "listKey", listLength: "listLength", filterPipe: "filterPipe" }, outputs: { onListClassChange: "onListClassChange" }, ngImport: i0, template: "<div class=\"
|
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ListDisplaySwitchComponent, selector: "c8y-list-display-switch", inputs: { listKey: "listKey", listLength: "listLength", filterPipe: "filterPipe" }, outputs: { onListClassChange: "onListClassChange" }, ngImport: i0, template: "<div class=\"d-flex\">\n <label class=\"m-r-8\" id=\"listLabel\">\n {{ 'Display as' | translate }}\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n aria-labelledby=\"listLabel\"\n name=\"listLabel\"\n class=\"form-control\"\n [ngModel]=\"selectedOption\"\n (ngModelChange)=\"onOptionSelect($event)\"\n [attr.aria-label]=\"'Display mode' | translate\"\n >\n <option *ngFor=\"let option of DISPLAY_OPTIONS\" [ngValue]=\"option\">\n {{ option.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] }); }
|
|
78
78
|
}
|
|
79
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ListDisplaySwitchComponent, decorators: [{
|
|
80
80
|
type: Component,
|
|
81
|
-
args: [{ selector: 'c8y-list-display-switch', template: "<div class=\"
|
|
81
|
+
args: [{ selector: 'c8y-list-display-switch', template: "<div class=\"d-flex\">\n <label class=\"m-r-8\" id=\"listLabel\">\n {{ 'Display as' | translate }}\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n aria-labelledby=\"listLabel\"\n name=\"listLabel\"\n class=\"form-control\"\n [ngModel]=\"selectedOption\"\n (ngModelChange)=\"onOptionSelect($event)\"\n [attr.aria-label]=\"'Display mode' | translate\"\n >\n <option *ngFor=\"let option of DISPLAY_OPTIONS\" [ngValue]=\"option\">\n {{ option.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n</div>\n" }]
|
|
82
82
|
}], ctorParameters: () => [{ type: i1.Location }], propDecorators: { listKey: [{
|
|
83
83
|
type: Input
|
|
84
84
|
}], listLength: [{
|
|
@@ -89,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
89
89
|
}], onListClassChange: [{
|
|
90
90
|
type: Output
|
|
91
91
|
}] } });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kaXNwbGF5LXN3aXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2xpc3QtZGlzcGxheS1zd2l0Y2gvbGlzdC1kaXNwbGF5LXN3aXRjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2xpc3QtZGlzcGxheS1zd2l0Y2gvbGlzdC1kaXNwbGF5LXN3aXRjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBTzFDLE1BQU0sT0FBTywwQkFBMEI7SUFFckMsSUFDSSxVQUFVLENBQUMsR0FBVztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN2QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBa0NELFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFqQzdCLGVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN4QixzQkFBaUIsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUd0RSxvQkFBZSxHQUFvQjtZQUMxQztnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsTUFBTTtnQkFDYixLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDdEIsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsWUFBWSxFQUFFLEdBQUcs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ci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcGlwZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uL2kxOG4vZ2V0dGV4dCc7XG5pbXBvcnQgeyBEaXNwbGF5T3B0aW9uIH0gZnJvbSAnLi9saXN0LWRpc3BsYXktc3dpdGNoLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWxpc3QtZGlzcGxheS1zd2l0Y2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC1kaXNwbGF5LXN3aXRjaC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTGlzdERpc3BsYXlTd2l0Y2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBsaXN0S2V5OiBzdHJpbmc7XG4gIEBJbnB1dCgnbGlzdExlbmd0aCcpXG4gIHNldCBsaXN0TGVuZ3RoKHZhbDogbnVtYmVyKSB7XG4gICAgdGhpcy5fbGlzdExlbmd0aCA9IHZhbDtcbiAgICB0aGlzLmxvYWRTZWxlY3RlZE9wdGlvbigpO1xuICB9XG4gIEBJbnB1dCgpIGZpbHRlclBpcGUgPSBwaXBlKHRhcCgpKTtcbiAgQE91dHB1dCgpIG9uTGlzdENsYXNzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBzZWxlY3RlZE9wdGlvbjogRGlzcGxheU9wdGlvbjtcblxuICByZWFkb25seSBESVNQTEFZX09QVElPTlM6IERpc3BsYXlPcHRpb25bXSA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnQVVUTycsXG4gICAgICB2YWx1ZTogJ2F1dG8nLFxuICAgICAgbGFiZWw6IGdldHRleHQoJ0F1dG8nKSxcbiAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICBnZXRMaXN0Q2xhc3M6ICgpID0+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uID1cbiAgICAgICAgICB0aGlzLl9saXN0TGVuZ3RoID4gdGhpcy5BVVRPX0dSSURfSVRFTVNfTElNSVRcbiAgICAgICAgICAgID8gdGhpcy5ESVNQTEFZX09QVElPTlMuZmluZChvcHQgPT4gb3B0Lm5hbWUgPT09ICdMSVNUJylcbiAgICAgICAgICAgIDogdGhpcy5ESVNQTEFZX09QVElPTlMuZmluZChvcHQgPT4gb3B0Lm5hbWUgPT09ICdHUklEJyk7XG4gICAgICAgIHJldHVybiBvcHRpb24uZ2V0TGlzdENsYXNzKCk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnR1JJRCcsXG4gICAgICB2YWx1ZTogJ2dyaWQnLFxuICAgICAgbGFiZWw6IGdldHRleHQoJ0dyaWQnKSxcbiAgICAgIGdldExpc3RDbGFzczogKCkgPT4gJ2ludGVyYWN0LWdyaWQnXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnTElTVCcsXG4gICAgICB2YWx1ZTogJ2xpc3QnLFxuICAgICAgbGFiZWw6IGdldHRleHQoJ0xpc3QnKSxcbiAgICAgIGdldExpc3RDbGFzczogKCkgPT4gJ2ludGVyYWN0LWxpc3QnXG4gICAgfVxuICBdO1xuICBwcml2YXRlIHJlYWRvbmx5IEFVVE9fR1JJRF9JVEVNU19MSU1JVCA9IDEyO1xuICBwcml2YXRlIF9saXN0TGVuZ3RoOiBudW1iZXI7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZFNlbGVjdGVkT3B0aW9uKCk7XG4gIH1cblxuICBvbk9wdGlvblNlbGVjdChvcHRpb246IERpc3BsYXlPcHRpb24pIHtcbiAgICBjb25zdCBsb2NhbFN0b3JhZ2VLZXkgPSB0aGlzLmdldExvY2FsU3RvcmFnZUtleSgpO1xuICAgIGlmIChvcHRpb24uZGVmYXVsdCkge1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0obG9jYWxTdG9yYWdlS2V5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0obG9jYWxTdG9yYWdlS2V5LCBvcHRpb24udmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmxvYWRTZWxlY3RlZE9wdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkU2VsZWN0ZWRPcHRpb24oKSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHRoaXMuZ2V0TG9jYWxTdG9yYWdlT3B0aW9uKCkgfHwgdGhpcy5nZXREZWZhdWx0T3B0aW9uKCk7XG4gICAgdGhpcy5vbkxpc3RDbGFzc0NoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRPcHRpb24uZ2V0TGlzdENsYXNzKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMb2NhbFN0b3JhZ2VPcHRpb24oKTogRGlzcGxheU9wdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuRElTUExBWV9PUFRJT05TLmZpbmQoXG4gICAgICBvcHRpb24gPT4gb3B0aW9uLnZhbHVlID09PSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmdldExvY2FsU3RvcmFnZUtleSgpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRPcHRpb24oKTogRGlzcGxheU9wdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuRElTUExBWV9PUFRJT05TLmZpbmQob3B0aW9uID0+IG9wdGlvbi5kZWZhdWx0KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TG9jYWxTdG9yYWdlS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBsaXN0LWRpc3BsYXktb3B0aW9uWyR7dGhpcy5nZXRMaXN0S2V5KCl9XWA7XG4gIH1cblxuICBwcml2YXRlIGdldExpc3RLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5saXN0S2V5IHx8IHRoaXMubG9jYXRpb24ucGF0aCgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gIDxsYWJlbCBjbGFzcz1cIm0tci04XCIgaWQ9XCJsaXN0TGFiZWxcIj5cbiAgICB7eyAnRGlzcGxheSBhcycgfCB0cmFuc2xhdGUgfX1cbiAgPC9sYWJlbD5cbiAgPGRpdiBjbGFzcz1cImM4eS1zZWxlY3Qtd3JhcHBlclwiPlxuICAgIDxzZWxlY3RcbiAgICAgIGFyaWEtbGFiZWxsZWRieT1cImxpc3RMYWJlbFwiXG4gICAgICBuYW1lPVwibGlzdExhYmVsXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkT3B0aW9uXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uT3B0aW9uU2VsZWN0KCRldmVudClcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInRGlzcGxheSBtb2RlJyB8IHRyYW5zbGF0ZVwiXG4gICAgPlxuICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIERJU1BMQVlfT1BUSU9OU1wiIFtuZ1ZhbHVlXT1cIm9wdGlvblwiPlxuICAgICAgICB7eyBvcHRpb24ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICAgIDxzcGFuPjwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { ApplicationAvailability } from '@c8y/client';
|
|
3
|
-
import { ApplicationService } from '@c8y/
|
|
3
|
+
import { ApplicationService } from '@c8y/client';
|
|
4
4
|
import { cloneDeep, get, uniqBy } from 'lodash-es';
|
|
5
5
|
import { coerce, compare } from 'semver';
|
|
6
6
|
import { AppStateService } from '../common/ui-state.service';
|
|
@@ -9,7 +9,7 @@ import { PackageType } from './plugins.model';
|
|
|
9
9
|
import { PluginsExportScopes } from '../common/ApplicationOptions';
|
|
10
10
|
import { PluginsResolveService } from './plugins-resolve.service';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "@c8y/
|
|
12
|
+
import * as i1 from "@c8y/client";
|
|
13
13
|
import * as i2 from "../common/ui-state.service";
|
|
14
14
|
export class PluginsService {
|
|
15
15
|
static convertInstalledRemotesToIds(remotes) {
|
|
@@ -387,4 +387,4 @@ export class PluginsService {
|
|
|
387
387
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PluginsService, decorators: [{
|
|
388
388
|
type: Injectable
|
|
389
389
|
}], ctorParameters: () => [{ type: i1.ApplicationService }, { type: i2.AppStateService }] });
|
|
390
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9wbHVnaW5zL3BsdWdpbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDTCx1QkFBdUIsRUFLeEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBcUIsV0FBVyxFQUFpQixNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7O0FBR2xFLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxPQUFpQztRQUNuRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbkIsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0Ms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QyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxFQUFVO1FBQzlCLE1BQU0sQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7OEdBbGZVLGNBQWM7a0hBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQXZhaWxhYmlsaXR5LFxuICBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMsXG4gIElBcHBsaWNhdGlvbixcbiAgSUFwcGxpY2F0aW9uVmVyc2lvbixcbiAgSU1hbmlmZXN0XG59IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYXBpJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCB1bmlxQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgY29lcmNlLCBjb21wYXJlIH0gZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi91aS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdyb3VwQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25QbHVnaW4sIFBhY2thZ2VUeXBlLCBQbHVnaW5zQ29uZmlnIH0gZnJvbSAnLi9wbHVnaW5zLm1vZGVsJztcbmltcG9ydCB7IFBsdWdpbnNFeHBvcnRTY29wZXMgfSBmcm9tICcuLi9jb21tb24vQXBwbGljYXRpb25PcHRpb25zJztcbmltcG9ydCB7IFBsdWdpbnNSZXNvbHZlU2VydmljZSB9IGZyb20gJy4vcGx1Z2lucy1yZXNvbHZlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGx1Z2luc1NlcnZpY2Uge1xuICBzdGF0aWMgY29udmVydEluc3RhbGxlZFJlbW90ZXNUb0lkcyhyZW1vdGVzOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMpOiBzdHJpbmdbXSB7XG4gICAgaWYgKCFyZW1vdGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGltcG9ydENvbnRleHRQYXRocyA9IE9iamVjdC5rZXlzKHJlbW90ZXMpO1xuICAgIGNvbnN0IHBsdWdpbnMgPSBbXTtcbiAgICBpbXBvcnRDb250ZXh0UGF0aHMuZm9yRWFjaChjb250ZXh0UGF0aCA9PiB7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lcyA9IHJlbW90ZXNbY29udGV4dFBhdGhdIHx8IFtdO1xuICAgICAgcGx1Z2lucy5wdXNoKFxuICAgICAgICAuLi5tb2R1bGVOYW1lcy5tYXAobW9kdWxlID0+IFBsdWdpbnNTZXJ2aWNlLmNyZWF0ZVBsdWdpbklkKGNvbnRleHRQYXRoLCBtb2R1bGUsICcnLCB0cnVlKSlcbiAgICAgICk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBsdWdpbnM7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlUGx1Z2luSWQoXG4gICAgY29udGV4dFBhdGg6IHN0cmluZyxcbiAgICBwbHVnaW46IEFwcGxpY2F0aW9uUGx1Z2luIHwgc3RyaW5nLFxuICAgIHZlcnNpb246IHN0cmluZyxcbiAgICB1c2VMYXRlc3QgPSBmYWxzZVxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IG1vZHVsZU5hbWUgPSB0eXBlb2YgcGx1Z2luID09PSAnc3RyaW5nJyA/IHBsdWdpbiA6IHBsdWdpbi5tb2R1bGU7XG4gICAgaWYgKHVzZUxhdGVzdCkge1xuICAgICAgcmV0dXJuIGAke2NvbnRleHRQYXRofS8ke21vZHVsZU5hbWV9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2NvbnRleHRQYXRofUAke3ZlcnNpb259LyR7bW9kdWxlTmFtZX1gO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFwcFN0YXRlU2VydmljZTogQXBwU3RhdGVTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgYXZhaWxhYmxlIHBhY2thZ2VzLlxuICAgKiBAcGFyYW0gcGFyYW1zIEFkZGl0aW9uYWwgcXVlcnkgcGFyYW1ldGVycy5cbiAgICogQHJldHVybnMgUmV0dXJucyBhIGxpc3Qgb2YgcGFja2FnZXMuXG4gICAqL1xuICBhc3luYyBsaXN0UGFja2FnZXMocGFyYW1zOiBhbnkgPSB7fSk6IFByb21pc2U8SUFwcGxpY2F0aW9uW10+IHtcbiAgICBjb25zdCBhcHBzID0gYXdhaXQgdGhpcy5saXN0QXBwbGljYXRpb25zQnlDdXJyZW50VGVuYW50KHBhcmFtcyk7XG4gICAgY29uc3Qgd2ViQXBwcyA9IGFwcHMuZmlsdGVyKGFwcCA9PiB0aGlzLmlzUGFja2FnZShhcHApKTtcbiAgICBjb25zdCB1bmlxdWVXZWJBcHBzID0gdGhpcy5yZW1vdmVEdXBsaWNhdGVzKHdlYkFwcHMsICdjb250ZXh0UGF0aCcpO1xuICAgIHJldHVybiB1bmlxdWVXZWJBcHBzLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhbiBhcHBsaWNhdGlvbiBpcyBhIHBhY2thZ2UuXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbiBBcHBsaWNhdGlvbiBtYW5hZ2VkIG9iamVjdC5cbiAgICogQHJldHVybnMgUmV0dXJucyB0cnVlIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBhIHBhY2thZ2UuXG4gICAqL1xuICBpc1BhY2thZ2UoYXBwbGljYXRpb246IElBcHBsaWNhdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhcHBsaWNhdGlvbi5tYW5pZmVzdD8uaXNQYWNrYWdlID09PSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHJlbW90ZXMgZmllbGQgaW4gdGhlIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gYnkgYWRkaW5nIG5ldyBwbHVnaW5zLlxuICAgKiBJbXBvcnRhbnQ6IGlmIHRoZSByZW1vdGVzIG9iamVjdCBpcyBub3Qgc2V0IG9uIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCxcbiAgICogcmVtb3RlcyB3aWxsIG5vdCBiZSBhZGRlZC4gTWFrZSBzdXJlIHRoYXQgdGhpcyBvYmplY3QgZXhpc3RzIGluIHRoZSBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0gYXBwbGljYXRpb24gQXBwbGljYXRpb24gbWFuYWdlZCBvYmplY3QuXG4gICAqIEBwYXJhbSBwbHVnaW5zIExpc3Qgb2YgcmVtb3RlcyB0byBiZSBhZGRlZC5cbiAgICogQHJldHVybnMgUmV0dXJucyB1cGRhdGVkIGFwcGxpY2F0aW9uIHJlbW90ZXMuXG4gICAqL1xuICBhc3luYyBhZGRSZW1vdGVzKFxuICAgIGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb24sXG4gICAgcGx1Z2luczogQXBwbGljYXRpb25QbHVnaW4gfCBBcHBsaWNhdGlvblBsdWdpbltdXG4gICk6IFByb21pc2U8UGx1Z2luc0NvbmZpZz4ge1xuICAgIGNvbnN0IHBsdWdpbnNBcnJheSA9IEFycmF5LmlzQXJyYXkocGx1Z2lucykgPyBwbHVnaW5zIDogW3BsdWdpbnNdO1xuICAgIGNvbnN0IGFwcENvbmZpZzogUGx1Z2luc0NvbmZpZyA9IChhcHBsaWNhdGlvbj8uY29uZmlnIGFzIFBsdWdpbnNDb25maWcpIHx8IHsgcmVtb3Rlczoge30gfTtcbiAgICBjb25zdCBhcHBDb25maWdSZW1vdGVzID0gYXBwQ29uZmlnPy5yZW1vdGVzIHx8IHt9O1xuICAgIGNvbnN0IGFwcENvbmZpZ0V4Y2x1ZGVkUmVtb3RlcyA9IGFwcENvbmZpZz8uZXhjbHVkZWRSZW1vdGVzIHx8IHt9O1xuICAgIC8vIG9ubHkgbm9ybWFsIGFuZCBzZWxmIG9wdGlvbmFsIHNjb3BlZCBwbHVnaW5zIHNob3VsZCBiZSBhZGRlZCB0byByZW1vdGVzXG4gICAgLy8gc2VsZiBzY29wZWQgcGx1Z2lucyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgYWRkZWRcbiAgICBjb25zdCBhbGxQbHVnaW5zRXhjZXB0U2VsZlNjb3BlZCA9IHRoaXMuZ2V0QWxsUGx1Z2luc0V4Y2VwdFNlbGZTY29wZWQoXG4gICAgICBwbHVnaW5zQXJyYXksXG4gICAgICBhcHBsaWNhdGlvbi5jb250ZXh0UGF0aFxuICAgICk7XG4gICAgY29uc3QgbmV3UmVtb3RlcyA9IHRoaXMuYWRkUGx1Z2luVG9SZW1vdGVzQ29uZmlnKGFwcENvbmZpZ1JlbW90ZXMsIGFsbFBsdWdpbnNFeGNlcHRTZWxmU2NvcGVkKTtcbiAgICAvLyBzaG91bGQgYmUgdW5wcm9ibGVtYXRpYyB0byByZW1vdmUgYWxsIGNhdGVnb3JpZXMgb2YgcGx1Z2lucyBmcm9tIGV4Y2x1ZGVkIHJlbW90ZXNcbiAgICBjb25zdCBuZXdFeGNsdWRlZFJlbW90ZXMgPSB0aGlzLnJlbW92ZVBsdWdpbnNGcm9tUmVtb3Rlc0NvbmZpZyhcbiAgICAgIGFwcENvbmZpZ0V4Y2x1ZGVkUmVtb3RlcyxcbiAgICAgIHBsdWdpbnNcbiAgICApO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnVwZGF0ZVJlbW90ZXNJbkFwcENvbmZpZyhhcHBsaWNhdGlvbiwgbmV3UmVtb3RlcywgbmV3RXhjbHVkZWRSZW1vdGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSByZW1vdGVzIGZpZWxkIGluIHRoZSBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uIGJ5IHJlbW92aW5nIHBsdWdpbnMuXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbiBBcHBsaWNhdGlvbiBtYW5hZ2VkIG9iamVjdC5cbiAgICogQHBhcmFtIHBsdWdpbnMgTGlzdCBvZiByZW1vdGVzIHRvIGJlIHJlbW92ZWQuXG4gICAqIEByZXR1cm5zIFJldHVybnMgdXBkYXRlZCBhcHBsaWNhdGlvbiByZW1vdGVzLlxuICAgKi9cbiAgYXN5bmMgcmVtb3ZlUmVtb3RlcyhcbiAgICBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uLFxuICAgIHBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luIHwgQXBwbGljYXRpb25QbHVnaW5bXVxuICApOiBQcm9taXNlPFBsdWdpbnNDb25maWc+IHtcbiAgICBjb25zdCBwbHVnaW5zQXJyYXkgPSBBcnJheS5pc0FycmF5KHBsdWdpbnMpID8gcGx1Z2lucyA6IFtwbHVnaW5zXTtcbiAgICBjb25zdCBhcHBDb25maWc6IFBsdWdpbnNDb25maWcgPSAoYXBwbGljYXRpb24/LmNvbmZpZyBhcyBQbHVnaW5zQ29uZmlnKSB8fCB7IHJlbW90ZXM6IHt9IH07XG4gICAgY29uc3QgYXBwQ29uZmlnUmVtb3RlcyA9IGFwcENvbmZpZz8ucmVtb3RlcyB8fCB7fTtcbiAgICBjb25zdCBhcHBDb25maWdFeGNsdWRlZFJlbW90ZXMgPSBhcHBDb25maWc/LmV4Y2x1ZGVkUmVtb3RlcyB8fCB7fTtcbiAgICAvLyBhcHAgcGx1Z2lucyBuZWVkIHRvIGJlIHJlbW92ZWQgZnJvbSByZW1vdGVzXG4gICAgY29uc3QgbmV3UmVtb3RlcyA9IHRoaXMucmVtb3ZlUGx1Z2luc0Zyb21SZW1vdGVzQ29uZmlnKGFwcENvbmZpZ1JlbW90ZXMsIHBsdWdpbnMpO1xuICAgIC8vIHNlbGYgc2NvcGVkIHBsdWdpbnMgbmVlZCB0byBiZSBhZGRlZCB0byBleGNsdWRlZCByZW1vdGVzXG4gICAgLy8gYXMgdGhleSB3b3VsZCBiZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBhZGRlZCB0byByZW1vdGVzXG4gICAgY29uc3Qgc2VsZlNjb3BlZFBsdWdpbnMgPSB0aGlzLmdldFNlbGZTY29wZWRQbHVnaW5zKHBsdWdpbnNBcnJheSwgYXBwbGljYXRpb24uY29udGV4dFBhdGgpO1xuICAgIGNvbnN0IG5ld0V4Y2x1ZGVkUmVtb3RlcyA9IHRoaXMuYWRkUGx1Z2luVG9SZW1vdGVzQ29uZmlnKFxuICAgICAgYXBwQ29uZmlnRXhjbHVkZWRSZW1vdGVzLFxuICAgICAgc2VsZlNjb3BlZFBsdWdpbnNcbiAgICApO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnVwZGF0ZVJlbW90ZXNJbkFwcENvbmZpZyhhcHBsaWNhdGlvbiwgbmV3UmVtb3RlcywgbmV3RXhjbHVkZWRSZW1vdGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSByZW1vdGVzIGZpZWxkIGluIHRoZSBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0gYXBwbGljYXRpb24gQXBwbGljYXRpb24gbWFuYWdlZCBvYmplY3QuXG4gICAqIEBwYXJhbSBwbHVnaW5zIExpc3Qgb2YgcmVtb3RlcyB0byBiZSBhZGRlZC5cbiAgICogQHJldHVybnMgUmV0dXJucyB1cGRhdGVkIGFwcGxpY2F0aW9uIHJlbW90ZXMuXG4gICAqL1xuICBhc3luYyB1cGRhdGVSZW1vdGVzSW5BcHBDb25maWcoXG4gICAgYXBwbGljYXRpb246IElBcHBsaWNhdGlvbixcbiAgICBwbHVnaW5zOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMsXG4gICAgZXhjbHVkZWRSZW1vdGVzPzogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zXG4gICk6IFByb21pc2U8UGx1Z2luc0NvbmZpZz4ge1xuICAgIGNvbnN0IHVwZGF0ZWRBcHBXaXRoQ29uZmlnID0gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UudXBkYXRlQXBwbGljYXRpb25Db25maWcoXG4gICAgICBhcHBsaWNhdGlvbixcbiAgICAgIHtcbiAgICAgICAgcmVtb3RlczogcGx1Z2lucyxcbiAgICAgICAgZXhjbHVkZWRSZW1vdGVzOiBleGNsdWRlZFJlbW90ZXMgfHwge31cbiAgICAgIH0gYXMgUGx1Z2luc0NvbmZpZ1xuICAgICk7XG4gICAgcmV0dXJuIHVwZGF0ZWRBcHBXaXRoQ29uZmlnPy5jb25maWcgfHwgeyByZW1vdGVzOiB7fSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGFwcGxpY2F0aW9uIG1hbmlmZXN0LlxuICAgKiBAcGFyYW0gYXBwbGljYXRpb24gQXBwbGljYXRpb24gbWFuYWdlZCBvYmplY3QuXG4gICAqIEByZXR1cm5zIFJldHVybnMgdGhlIGFwcGxpY2F0aW9uIG1hbmlmZXN0LlxuICAgKi9cbiAgYXN5bmMgZ2V0Q3VtdWxvY2l0eUpzb25GaWxlKGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb24pIHtcbiAgICBjb25zdCBjOHlKc29uID0gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UuZ2V0QXBwTWFuaWZlc3QoYXBwbGljYXRpb24pO1xuICAgIGlmICghYzh5SnNvbi5yZW1vdGVzKSB7XG4gICAgICBjOHlKc29uLnJlbW90ZXMgPSB7fTtcbiAgICB9XG4gICAgcmV0dXJuIGM4eUpzb247XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgaW5pdGlhbCBzdGF0ZSBvZiByZW1vdGVzIGluIHRoZSBjb25maWd1cmF0aW9uICh3aGVuIGl0J3MgbWlzc2luZyksIGJhc2VkIG9uIHRoZSBsaXN0IG9mIHJlbW90ZXMgYmVpbmcgaW4gdGhlIGFwcGxpY2F0aW9uIG1hbmlmZXN0LlxuICAgKiBAcGFyYW0gYXBwbGljYXRpb24gIEFwcGxpY2F0aW9uIG1hbmFnZWQgb2JqZWN0LlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIGEgbGlzdCBvZiByZW1vdGVzIHRoYXQgaGFzIGJlZW4gYXNzaWduZWQgdG8gdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKi9cbiAgYXN5bmMgc2V0SW5pdGlhbFJlbW90ZXMoYXBwbGljYXRpb246IElBcHBsaWNhdGlvbikge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtYW5pZmVzdDogSU1hbmlmZXN0ID0gYXdhaXQgdGhpcy5nZXRDdW11bG9jaXR5SnNvbkZpbGUoYXBwbGljYXRpb24pO1xuICAgICAgY29uc3QgbWFuaWZlc3RSZW1vdGVzOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMgPSBtYW5pZmVzdC5yZW1vdGVzO1xuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy51cGRhdGVSZW1vdGVzSW5BcHBDb25maWcoYXBwbGljYXRpb24sIG1hbmlmZXN0UmVtb3RlcyB8fCB7fSwge30pO1xuICAgIH0gY2F0Y2ggKGVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTb3J0cyB2ZXJzaW9ucyBsaXN0IG9yIGxpc3Qgb2Ygb2JqZWN0cyBieSB2ZXJzaW9uIHByb3BlcnR5XG4gICAqIEByZXR1cm5zIGxpc3Qgb2YgdmVyc2lvbnMgYXMgYXJyYXkgb2Ygc3RyaW5ncyBvciBhcnJheSBvZiBvYmplY3RzIHNvcnRlZCBieSB2ZXJzaW9uIHByb3BlcnR5XG4gICAqXG4gICAqIEBwYXJhbSB7eyBsaXN0OiBUW107IHBhdGg6IHN0cmluZ1tdIH0gfCBzdHJpbmdbXX0gc291cmNlIGRhdGEgdG8gc29ydFxuICAgKiBAcGFyYW0geydhc2MnIHwgJ2Rlc2MnfSBvcmRlciBhc2NlbmRpbmcgb3IgZGVzY2VuZGluZyBvcmRlciBvZiBzb3J0aW5nXG4gICAqXG4gICAqICoqRXhhbXBsZSoqXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgZGF0YSA9IFsnMS41LjAnLCAnMi4wLjAnXTtcbiAgICogY29uc3Qgc29ydGVkRGF0YSA9IHBsdWdpbnNTZXJ2aWNlLnNvcnRWZXJzaW9ucyh2ZXJzaW9ucywgJ2Rlc2MnKTtcbiAgICogLy8gc29ydGVkRGF0YTpcbiAgICogLy8gWycyLjAuMCcsICcxLjUuMCddXG4gICAqIGBgYFxuICAgKlxuICAgKiAqKkV4YW1wbGUqKlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGRhdGEgPSBbXG4gICAqICB7YXBwOiB7YXBwVmVyc2lvbjogJzEuNS4wJ319LFxuICAgKiAge2FwcDoge2FwcFZlcnNpb246ICcyLjAuMCd9fSxcbiAgICogXTtcbiAgICogY29uc3Qgc29ydGVkRGF0YSA9IHBsdWdpbnNTZXJ2aWNlLnNvcnRWZXJzaW9ucyh7bGlzdDogZGF0YSwgcGF0aDogWydhcHAnLCAnYXBwVmVyc2lvbiddfSwgJ2Rlc2MnKTtcbiAgICogLy8gc29ydGVkRGF0YTpcbiAgICogLy8gW1xuICAgKiAvLyAge2FwcDoge2FwcFZlcnNpb246ICcyLjAuMCd9fSxcbiAgICogLy8gIHthcHA6IHthcHBWZXJzaW9uOiAnMS41LjAnfX1cbiAgICogLy8gXVxuICAgKiBgYGBcbiAgICovXG4gIHNvcnRWZXJzaW9uczxUPihzb3VyY2U6IHsgbGlzdDogVFtdOyBwYXRoOiBzdHJpbmdbXSB9LCBvcmRlcjogJ2FzYycgfCAnZGVzYycpOiBUW107XG4gIHNvcnRWZXJzaW9ucyhzb3VyY2U6IHN0cmluZ1tdLCBvcmRlcjogJ2FzYycgfCAnZGVzYycpOiBzdHJpbmdbXTtcbiAgc29ydFZlcnNpb25zKHNvdXJjZTogYW55LCBvcmRlcjogJ2FzYycgfCAnZGVzYycpOiBhbnkge1xuICAgIGNvbnN0IHNvdXJjZUNvcHkgPSBjbG9uZURlZXAoc291cmNlKTtcbiAgICBpZiAoc291cmNlLmxpc3QgJiYgc291cmNlLnBhdGgpIHtcbiAgICAgIGNvbnN0IHBhdGggPSBzb3VyY2VDb3B5LnBhdGguam9pbignLicpO1xuICAgICAgcmV0dXJuIHNvdXJjZUNvcHkubGlzdC5zb3J0KFxuICAgICAgICAoYSwgYikgPT4gY29tcGFyZShjb2VyY2UoZ2V0KGEsIHBhdGgpKSwgY29lcmNlKGdldChiLCBwYXRoKSkpICogKG9yZGVyID09PSAnYXNjJyA/IDEgOiAtMSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzb3VyY2VDb3B5LnNvcnQoKGEsIGIpID0+IGNvbXBhcmUoY29lcmNlKGEpLCBjb2VyY2UoYikpICogKG9yZGVyID09PSAnYXNjJyA/IDEgOiAtMSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyBhIGxpc3Qgb2YgZXhwb3J0ZWQgcGx1Z2lucyBmcm9tIHRoZSBhcHBsaWNhdGlvbiBvYmplY3QuXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbiBBcHBsaWNhdGlvbiBtYW5hZ2VkIG9iamVjdC5cbiAgICogQHBhcmFtIHVzZUxhdGVzdCBTZXQgdGhpcyB0byB0cnVlLCB0byBub3QgYmluZCB0aGUgcGx1Z2luIHRvIGFueSB2ZXJzaW9uLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIGEgbGlzdCBvZiBleHBvcnRlZCBwbHVnaW5zLlxuICAgKi9cbiAgZ2V0TUZFeHBvcnRzKFxuICAgIGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb24sXG4gICAgZXhjbHVkZWRTY29wZXMgPSBbXG4gICAgICBQbHVnaW5zRXhwb3J0U2NvcGVzLlNFTEYsXG4gICAgICBQbHVnaW5zRXhwb3J0U2NvcGVzLlNFTEZfT1BUSU9OQUwsXG4gICAgICBQbHVnaW5zRXhwb3J0U2NvcGVzLkdMT0JBTFxuICAgIF0sXG4gICAgdXNlTGF0ZXN0ID0gZmFsc2VcbiAgKTogQXBwbGljYXRpb25QbHVnaW5bXSB7XG4gICAgY29uc3QgbWFuaWZlc3Q6IFBhcnRpYWw8SU1hbmlmZXN0PiA9IGFwcGxpY2F0aW9uLm1hbmlmZXN0O1xuICAgIGlmICghbWFuaWZlc3QgfHwgIW1hbmlmZXN0LmV4cG9ydHMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kUGx1Z2luc0RldGFpbHMoXG4gICAgICBhcHBsaWNhdGlvbixcbiAgICAgIHtcbiAgICAgICAgdmVyc2lvbjogbWFuaWZlc3QudmVyc2lvbixcbiAgICAgICAgYmluYXJ5SWQ6IHVuZGVmaW5lZFxuICAgICAgfSxcbiAgICAgIHVzZUxhdGVzdFxuICAgICkuZmlsdGVyKHBsdWdpbiA9PiAhZXhjbHVkZWRTY29wZXMuaW5jbHVkZXMocGx1Z2luLnNjb3BlKSk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgYSBsaXN0IG9mIGV4cG9ydHMgZnJvbSBlYWNoIGF2YWlsYWJsZSBwYWNrYWdlLlxuICAgKiBAcGFyYW0gYWxsVmVyc2lvbnMgSWYgc2V0IHRvIHRydWUsIGFsbCBhbmQgbm90IG9ubHkgbGF0ZXN0IHZlcnNpb25zIGFyZSBpbmNsdWRlZC5cbiAgICogQHBhcmFtIGV4Y2x1ZGVkU2NvcGVzIERlZmluZXMgd2hpY2ggc2NvcGVzIHNob3VsZCBub3QgYmUgbG9hZGVkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgZXhwb3J0ZWQgcGx1Z2lucy5cbiAgICovXG4gIGFzeW5jIGdldEFsbE1GRXhwb3J0cyhcbiAgICBhbGxWZXJzaW9ucyA9IGZhbHNlLFxuICAgIGV4Y2x1ZGVkU2NvcGVzID0gW1xuICAgICAgUGx1Z2luc0V4cG9ydFNjb3Blcy5TRUxGLFxuICAgICAgUGx1Z2luc0V4cG9ydFNjb3Blcy5TRUxGX09QVElPTkFMLFxuICAgICAgUGx1Z2luc0V4cG9ydFNjb3Blcy5HTE9CQUxcbiAgICBdXG4gICk6IFByb21pc2U8QXBwbGljYXRpb25QbHVnaW5bXT4ge1xuICAgIGNvbnN0IHBsdWdpbnMgPSBuZXcgQXJyYXk8QXBwbGljYXRpb25QbHVnaW4+KCk7XG4gICAgY29uc3QgcGFja2FnZXMgPSBhd2FpdCB0aGlzLmxpc3RQYWNrYWdlcygpO1xuICAgIGZvciAoY29uc3QgcGtnIG9mIHBhY2thZ2VzKSB7XG4gICAgICBpZiAoIXBrZz8ubWFuaWZlc3Q/LmV4cG9ydHMpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoYWxsVmVyc2lvbnMgJiYgQXJyYXkuaXNBcnJheShwa2cuYXBwbGljYXRpb25WZXJzaW9ucykpIHtcbiAgICAgICAgcGtnLmFwcGxpY2F0aW9uVmVyc2lvbnMuZm9yRWFjaCh2ZXJzaW9uID0+IHtcbiAgICAgICAgICBwbHVnaW5zLnB1c2goLi4udGhpcy5leHRlbmRQbHVnaW5zRGV0YWlscyhwa2csIHZlcnNpb24pKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwbHVnaW5zLnB1c2goXG4gICAgICAgICAgLi4udGhpcy5leHRlbmRQbHVnaW5zRGV0YWlscyhwa2csIHtcbiAgICAgICAgICAgIHZlcnNpb246IHBrZy5tYW5pZmVzdC52ZXJzaW9uLFxuICAgICAgICAgICAgYmluYXJ5SWQ6IHVuZGVmaW5lZFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwbHVnaW5zLmZpbHRlcihwbHVnaW4gPT4gIWV4Y2x1ZGVkU2NvcGVzLmluY2x1ZGVzKHBsdWdpbi5zY29wZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIGEgbGlzdCBvZiByZW1vdGVzIGZyb20gdGhlIGFwcGxpY2F0aW9uIG9iamVjdC5cbiAgICogQHBhcmFtIGFwcGxpY2F0aW9uIEFwcGxpY2F0aW9uIG1hbmFnZWQgb2JqZWN0LlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIGxpc3Qgb2YgcmVtb3Rlcy5cbiAgICovXG4gIGdldE1GUmVtb3RlcyhhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uKTogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zIHtcbiAgICBjb25zdCBtYW5pZmVzdCA9IGFwcGxpY2F0aW9uLm1hbmlmZXN0IHx8IHt9O1xuICAgIGNvbnN0IGNvbmZpZzogUGx1Z2luc0NvbmZpZyA9IGFwcGxpY2F0aW9uPy5jb25maWcgYXMgUGx1Z2luc0NvbmZpZztcbiAgICBsZXQgcmVtb3RlcyA9IGNvbmZpZz8ucmVtb3RlcyB8fCBtYW5pZmVzdC5yZW1vdGVzIHx8IHt9O1xuICAgIGNvbnN0IG1hbmlmZXN0RXhwb3J0cyA9IG1hbmlmZXN0LmV4cG9ydHMgfHwgbWFuaWZlc3QubWFuaWZlc3Q/LmV4cG9ydHMgfHwgW107XG4gICAgY29uc3Qgc2VsZlJlbW90ZXM6IHN0cmluZ1tdID0gbWFuaWZlc3RFeHBvcnRzXG4gICAgICAuZmlsdGVyKHBsdWdpbiA9PiBwbHVnaW4uc2NvcGUgPT09IFBsdWdpbnNFeHBvcnRTY29wZXMuU0VMRilcbiAgICAgIC5tYXAocGx1Z2luID0+IHBsdWdpbi5tb2R1bGUgfHwgcGx1Z2luLm5hbWUpO1xuXG4gICAgaWYgKHNlbGZSZW1vdGVzLmxlbmd0aCkge1xuICAgICAgcmVtb3RlcyA9IFBsdWdpbnNSZXNvbHZlU2VydmljZS5tZXJnZVJlbW90ZXMoW1xuICAgICAgICB7IFthcHBsaWNhdGlvbi5jb250ZXh0UGF0aF06IHNlbGZSZW1vdGVzIH0sXG4gICAgICAgIHJlbW90ZXNcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIHJlbW90ZXMgPSBQbHVnaW5zUmVzb2x2ZVNlcnZpY2UucmVtb3ZlUmVtb3RlcyhyZW1vdGVzLCBjb25maWc/LmV4Y2x1ZGVkUmVtb3Rlcyk7XG4gICAgcmV0dXJuIHJlbW90ZXM7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBhIHBhY2thZ2UuXG4gICAqIEEgcGFja2FnZSBpcyBPRkZJQ0lBTCBpZiBpdCBjb21lcyBmcm9tIG1hbmFnZW1lbnQgdGVuYW50IGFuZCBoYXMgYSBsYWJlbCBhdHRhY2hlZCBjYWxsZWQgT0ZGSUNJQUwuXG4gICAqIEEgcGFja2FnZSBpcyBDT01NVU5JVFkgaWYgaXQgaGFzIGEgbGFiZWwgY2FsbGVkIENPTU1VTklUWS5cbiAgICogQSBwYWNrYWdlIGlzIENVU1RPTSBpZiBpdCBkb2VzIG5vdCBoYXZlIGFueSBsYWJlbCBhdHRhY2hlZC5cbiAgICogQSBwYWNrYWdlIGlzIFVOS05PV04gaWYgaXQgaGFzIGEgbGFiZWwgYXR0YWNoZWQgYnV0IGl0IGRvZXMgbm90IG1hdGNoIENPTU1VTklUWSBvciBPRkZJQ0lBTC5cbiAgICpcbiAgICogTGFiZWxzIGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBzdGF0dXMgb2YgYSBwYWNrYWdlLiBDb21tdW5pdHkgcGFja2FnZXMgYWx3YXlzIG5lZWRcbiAgICogYSBsaWNlbnNlIHZhbGlkYXRpb24uIFRoZSBsYWJlbCB3aWxsIGJlIHNob3duIG9uIHRoZSBhcHBsaWNhdGlvbiBjYXJkIHRvIHRlbGwgYSB1c2VyXG4gICAqIHdoZXRoZXIgdGhleSBhcmUgbG9va2luZyBpbnRvIGFuIG9mZmljaWFsIG9yIGNvbW11bml0eSBwYWNrYWdlLlxuICAgKlxuICAgKiBAcGFyYW0gcGFja2FnZUFwcGxpY2F0aW9uIFRoZSBwYWNrYWdlIGFwcGxpY2F0aW9uIG9iamVjdCB0byBjaGVjay5cbiAgICogQHJldHVybnMgVGhlIHBhY2thZ2UgdHlwZS5cbiAgICovXG4gIGdldFBhY2thZ2VUeXBlKHBhY2thZ2VBcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uKTogUGFja2FnZVR5cGUge1xuICAgIGNvbnN0IGxhYmVsID0gcGFja2FnZUFwcGxpY2F0aW9uLmxhYmVsIHx8IHBhY2thZ2VBcHBsaWNhdGlvbi5tYW5pZmVzdD8ubGFiZWw7XG4gICAgaWYgKCFsYWJlbCkge1xuICAgICAgcmV0dXJuIFBhY2thZ2VUeXBlLkNVU1RPTTtcbiAgICB9XG4gICAgaWYgKGxhYmVsID09PSBQYWNrYWdlVHlwZS5PRkZJQ0lBTCAmJiB0aGlzLmlzT3duZWRCeU1hbmFnZW1lbnQocGFja2FnZUFwcGxpY2F0aW9uKSkge1xuICAgICAgcmV0dXJuIFBhY2thZ2VUeXBlLk9GRklDSUFMO1xuICAgIH1cbiAgICBpZiAobGFiZWwgPT09IFBhY2thZ2VUeXBlLkNPTU1VTklUWSkge1xuICAgICAgcmV0dXJuIFBhY2thZ2VUeXBlLkNPTU1VTklUWTtcbiAgICB9XG4gICAgcmV0dXJuIFBhY2thZ2VUeXBlLlVOS05PV047XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgaWYgYW4gYXBwbGljYXRpb24gaXMgb3duZWQgYnkgbWFuYWdlbWVudCB0ZW5hbnQuXG4gICAqXG4gICAqIEBwYXJhbSBhcHAgVGhlIGFwcGxpY2F0aW9uIHRvIHZlcmlmeS5cbiAgICogQHJldHVybnMgVHJ1ZSBpZiBvd25lZCBieSBtYW5hZ2VtZW50IHRlbmFudC5cbiAgICovXG4gIGlzT3duZWRCeU1hbmFnZW1lbnQoYXBwOiBJQXBwbGljYXRpb24pOiBib29sZWFuIHtcbiAgICBjb25zdCBhcHBPd25lciA9IGdldChhcHAsICdvd25lci50ZW5hbnQuaWQnKTtcbiAgICByZXR1cm4gYXBwT3duZXIgPT09ICdtYW5hZ2VtZW50JztcbiAgfVxuXG4gIHBsdWdpbnNGcm9tTWFuaWZlc3QobWFuaWZlc3Q6IElNYW5pZmVzdCk6IEFwcGxpY2F0aW9uUGx1Z2luW10ge1xuICAgIGNvbnN0IHBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10gPSBtYW5pZmVzdC5leHBvcnRzO1xuICAgIGNvbnN0IGV4dGVuZGVkUGx1Z2lucyA9IHBsdWdpbnNcbiAgICAgIC5maWx0ZXIocCA9PiBwLnNjb3BlID09PSBQbHVnaW5zRXhwb3J0U2NvcGVzLlNFTEYpXG4gICAgICAubWFwKHAgPT4gKHtcbiAgICAgICAgLi4ucCxcbiAgICAgICAgaWQ6IFBsdWdpbnNTZXJ2aWNlLmNyZWF0ZVBsdWdpbklkKG1hbmlmZXN0LmNvbnRleHRQYXRoLCBwLCBtYW5pZmVzdC52ZXJzaW9uKSxcbiAgICAgICAgY29udGV4dFBhdGg6IG1hbmlmZXN0LmNvbnRleHRQYXRoLFxuICAgICAgICB2ZXJzaW9uOiBtYW5pZmVzdC52ZXJzaW9uLFxuICAgICAgICB2ZXJzaW9uaW5nTWF0cml4OiBtYW5pZmVzdC52ZXJzaW9uaW5nTWF0cml4LFxuICAgICAgICBsaWNlbnNlOiBtYW5pZmVzdC5saWNlbnNlLFxuICAgICAgICB0eXBlOiBQYWNrYWdlVHlwZS5DVVNUT01cbiAgICAgIH0pKTtcbiAgICByZXR1cm4gZXh0ZW5kZWRQbHVnaW5zO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NlbGZTY29wZWRQbHVnaW4ocGx1Z2luOiBBcHBsaWNhdGlvblBsdWdpbiwgY29udGV4dFBhdGg/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgcGx1Z2luLnNjb3BlID09PSBQbHVnaW5zRXhwb3J0U2NvcGVzLlNFTEYgJiZcbiAgICAgICghY29udGV4dFBhdGggfHwgcGx1Z2luLmNvbnRleHRQYXRoID09PSBjb250ZXh0UGF0aClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZWxmU2NvcGVkUGx1Z2lucyhcbiAgICBwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdLFxuICAgIGNvbnRleHRQYXRoPzogc3RyaW5nXG4gICk6IEFwcGxpY2F0aW9uUGx1Z2luW10ge1xuICAgIHJldHVybiBwbHVnaW5zLmZpbHRlcihwbHVnaW4gPT4gdGhpcy5pc1NlbGZTY29wZWRQbHVnaW4ocGx1Z2luLCBjb250ZXh0UGF0aCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBbGxQbHVnaW5zRXhjZXB0U2VsZlNjb3BlZChcbiAgICBwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdLFxuICAgIGNvbnRleHRQYXRoPzogc3RyaW5nXG4gICk6IEFwcGxpY2F0aW9uUGx1Z2luW10ge1xuICAgIHJldHVybiBwbHVnaW5zLmZpbHRlcihwbHVnaW4gPT4gIXRoaXMuaXNTZWxmU2NvcGVkUGx1Z2luKHBsdWdpbiwgY29udGV4dFBhdGgpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRHVwbGljYXRlcyhhcHBzOiBJQXBwbGljYXRpb25bXSwga2V5OiBzdHJpbmcpOiBJQXBwbGljYXRpb25bXSB7XG4gICAgY29uc3QgdW5pcXVlTGlzdDogSUFwcGxpY2F0aW9uW10gPSBbXTtcbiAgICBjb25zdCBncm91cGVkQXBwc0J5S2V5OiBSZWNvcmQ8c3RyaW5nLCBJQXBwbGljYXRpb25bXT4gPSBncm91cEJ5KGFwcHMsIGtleSk7XG4gICAgY29uc3QgZ3JvdXBlZEFwcHM6IElBcHBsaWNhdGlvbltdW10gPSBPYmplY3Qua2V5cyhncm91cGVkQXBwc0J5S2V5KS5tYXAoXG4gICAgICBrZXkgPT4gZ3JvdXBlZEFwcHNCeUtleVtrZXldXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGFwcHNHcm91cCBvZiBncm91cGVkQXBwcykge1xuICAgICAgaWYgKGFwcHNHcm91cC5sZW5ndGggPCAyKSB7XG4gICAgICAgIHVuaXF1ZUxpc3QucHVzaCguLi5hcHBzR3JvdXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgYXBwRnJvbUN1cnJlbnRUZW5hbnQgPSBhcHBzR3JvdXAuZmluZChhcHAgPT4gdGhpcy5pc0Zyb21DdXJyZW50VGVuYW50KGFwcCkpO1xuICAgICAgICBpZiAoYXBwRnJvbUN1cnJlbnRUZW5hbnQpIHtcbiAgICAgICAgICB1bmlxdWVMaXN0LnB1c2goYXBwRnJvbUN1cnJlbnRUZW5hbnQpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFwcE5vdE93bmVkQnlNYW5hZ2VtZW50ID0gYXBwc0dyb3VwLmZpbmQoYXBwID0+ICF0aGlzLmlzT3duZWRCeU1hbmFnZW1lbnQoYXBwKSk7XG4gICAgICAgIHVuaXF1ZUxpc3QucHVzaChhcHBOb3RPd25lZEJ5TWFuYWdlbWVudCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmlxdWVMaXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Zyb21DdXJyZW50VGVuYW50KGFwcDogSUFwcGxpY2F0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGFwcC5vd25lci50ZW5hbnQuaWQgPT09IHRoaXMuYXBwU3RhdGVTZXJ2aWNlLmN1cnJlbnRUZW5hbnQudmFsdWUubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb2RpZmllcyB0aGUgbGlzdCBvZiBwbHVnaW5zIHRvIGhhdmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBzdWNoIGFzIGlkLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGV4dGVuZFBsdWdpbnNEZXRhaWxzKFxuICAgIGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb24sXG4gICAgdmVyc2lvbjogSUFwcGxpY2F0aW9uVmVyc2lvbixcbiAgICB1c2VMYXRlc3QgPSBmYWxzZVxuICApOiBBcHBsaWNhdGlvblBsdWdpbltdIHtcbiAgICBjb25zdCBwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdID0gYXBwbGljYXRpb24ubWFuaWZlc3QuZXhwb3J0cztcbiAgICBjb25zdCBleHRlbmRlZFBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10gPSBwbHVnaW5zLm1hcChwID0+ICh7XG4gICAgICAuLi5wLFxuICAgICAgaWQ6IFBsdWdpbnNTZXJ2aWNlLmNyZWF0ZVBsdWdpbklkKGFwcGxpY2F0aW9uLmNvbnRleHRQYXRoLCBwLCB2ZXJzaW9uLnZlcnNpb24sIHVzZUxhdGVzdCksXG4gICAgICBpZExhdGVzdDogUGx1Z2luc1NlcnZpY2UuY3JlYXRlUGx1Z2luSWQoYXBwbGljYXRpb24uY29udGV4dFBhdGgsIHAsIHZlcnNpb24udmVyc2lvbiwgdHJ1ZSksXG4gICAgICBjb250ZXh0UGF0aDogYXBwbGljYXRpb24uY29udGV4dFBhdGgsXG4gICAgICB2ZXJzaW9uOiB2ZXJzaW9uLnZlcnNpb24sXG4gICAgICB2ZXJzaW9uaW5nTWF0cml4OiBhcHBsaWNhdGlvbi5tYW5pZmVzdC52ZXJzaW9uaW5nTWF0cml4LFxuICAgICAgdGFnczogdXNlTGF0ZXN0ID8gWydsYXRlc3QnXSA6IHZlcnNpb24udGFncyB8fCBbXSxcbiAgICAgIGxpY2Vuc2U6IGFwcGxpY2F0aW9uLm1hbmlmZXN0LmxpY2Vuc2UsXG4gICAgICB0eXBlOiB0aGlzLmdldFBhY2thZ2VUeXBlKGFwcGxpY2F0aW9uKVxuICAgIH0pKTtcbiAgICByZXR1cm4gZXh0ZW5kZWRQbHVnaW5zO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsaXN0QXBwbGljYXRpb25zQnlDdXJyZW50VGVuYW50KHBhcmFtczogYW55ID0ge30pOiBQcm9taXNlPElBcHBsaWNhdGlvbltdPiB7XG4gICAgY29uc3QgZmlsdGVyID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ0hPU1RFRCcsXG4gICAgICAgIHBhZ2VTaXplOiAyMDAwLFxuICAgICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHBhcmFtc1xuICAgICk7XG4gICAgY29uc3Qgc2hhcmVkRmlsdGVyID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHtcbiAgICAgICAgYXZhaWxhYmlsaXR5OiBBcHBsaWNhdGlvbkF2YWlsYWJpbGl0eS5TSEFSRUQsXG4gICAgICAgIHR5cGU6ICdIT1NURUQnLFxuICAgICAgICBwYWdlU2l6ZTogMjAwMCxcbiAgICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWVcbiAgICAgIH0sXG4gICAgICBwYXJhbXNcbiAgICApO1xuXG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHRoaXMuYXBwU3RhdGVTZXJ2aWNlLmN1cnJlbnRUZW5hbnQudmFsdWUubmFtZTtcbiAgICBjb25zdCBbcmVzdWx0QXBwc093bmVkQnlUZW5hbnQsIHJlc3VsdFNoYXJlZEFwcHNdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UubGlzdEJ5VGVuYW50KHRlbmFudE5hbWUsIGZpbHRlciksXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5saXN0KHNoYXJlZEZpbHRlcilcbiAgICBdKTtcbiAgICBjb25zdCB7IGRhdGE6IGFwcHNPd25lZEJ5VGVuYW50IH0gPSByZXN1bHRBcHBzT3duZWRCeVRlbmFudDtcbiAgICBjb25zdCB7IGRhdGE6IHNoYXJlZEFwcHMgfSA9IHJlc3VsdFNoYXJlZEFwcHM7XG4gICAgY29uc3Qgd2ViQXBwcyA9IFsuLi5hcHBzT3duZWRCeVRlbmFudCwgLi4uc2hhcmVkQXBwc107XG4gICAgcmV0dXJuIHVuaXFCeSh3ZWJBcHBzLCAoYXBwOiBJQXBwbGljYXRpb24pID0+IGFwcC5pZCk7XG4gIH1cblxuICBwcml2YXRlIGFkZFBsdWdpblRvUmVtb3Rlc0NvbmZpZyhcbiAgICByZW1vdGVzQ29uZmlnOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMsXG4gICAgcGx1Z2luczogQXBwbGljYXRpb25QbHVnaW4gfCBBcHBsaWNhdGlvblBsdWdpbltdXG4gICk6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyB7XG4gICAgaWYgKCFwbHVnaW5zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlbW90ZXNDb3B5ID0gY2xvbmVEZWVwKHJlbW90ZXNDb25maWcpO1xuICAgIGNvbnN0IHRlbXAgPSBBcnJheS5pc0FycmF5KHBsdWdpbnMpID8gcGx1Z2lucyA6IFtwbHVnaW5zXTtcblxuICAgIHRlbXAuZm9yRWFjaChwbHVnaW4gPT4ge1xuICAgICAgY29uc3QgeyBjb250ZXh0UGF0aCwgbW9kdWxlTmFtZSB9ID0gdGhpcy5wYXJzZVBsdWdpbklkKHBsdWdpbi5pZCk7XG4gICAgICBpZiAoIWNvbnRleHRQYXRoIHx8ICFtb2R1bGVOYW1lKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXT8ubGVuZ3RoID49IDBcbiAgICAgICAgPyByZW1vdGVzQ29weVtjb250ZXh0UGF0aF0ucHVzaChtb2R1bGVOYW1lKVxuICAgICAgICA6IChyZW1vdGVzQ29weVtjb250ZXh0UGF0aF0gPSBbXSkucHVzaChtb2R1bGVOYW1lKTtcbiAgICAgIHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXSA9IFsuLi5uZXcgU2V0KHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXSldO1xuICAgIH0pO1xuICAgIHJldHVybiByZW1vdGVzQ29weTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUGx1Z2luc0Zyb21SZW1vdGVzQ29uZmlnKFxuICAgIHJlbW90ZXNDb25maWc6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyxcbiAgICBwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbiB8IEFwcGxpY2F0aW9uUGx1Z2luW11cbiAgKTogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zIHtcbiAgICBjb25zdCByZW1vdGVzQ29weTogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zID0gY2xvbmVEZWVwKHJlbW90ZXNDb25maWcpO1xuICAgIGNvbnN0IHRlbXAgPSBBcnJheS5pc0FycmF5KHBsdWdpbnMpID8gcGx1Z2lucyA6IFtwbHVnaW5zXTtcblxuICAgIHRlbXAuZm9yRWFjaChwbHVnaW4gPT4ge1xuICAgICAgY29uc3QgeyBjb250ZXh0UGF0aCwgbW9kdWxlTmFtZSB9ID0gdGhpcy5wYXJzZVBsdWdpbklkKHBsdWdpbi5pZCk7XG4gICAgICBpZiAoIWNvbnRleHRQYXRoIHx8ICFtb2R1bGVOYW1lIHx8ICFyZW1vdGVzQ29weVtjb250ZXh0UGF0aF0pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdID0gcmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdLmZpbHRlcihwID0+IHAgIT09IG1vZHVsZU5hbWUpO1xuICAgICAgcmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdID0gWy4uLm5ldyBTZXQocmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdKV07XG4gICAgICBpZiAocmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBkZWxldGUgcmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZW1vdGVzQ29weTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VQbHVnaW5JZChpZDogc3RyaW5nKTogeyBjb250ZXh0UGF0aDogc3RyaW5nOyBtb2R1bGVOYW1lOiBzdHJpbmcgfSB7XG4gICAgY29uc3QgW2NvbnRleHRQYXRoLCBtb2R1bGVOYW1lXSA9IGlkLnNwbGl0KCcvJyk7XG4gICAgcmV0dXJuIHsgY29udGV4dFBhdGgsIG1vZHVsZU5hbWUgfTtcbiAgfVxufVxuIl19
|
|
390
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9wbHVnaW5zL3BsdWdpbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDTCx1QkFBdUIsRUFLeEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQXFCLFdBQVcsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQUdsRSxNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMsNEJBQTRCLENBQUMsT0FBaUM7UUFDbkUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9DLE9B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Q0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxhQUFhLENBQUMsRUFBVTtRQUM5QixNQUFNLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzhHQWxmVSxjQUFjO2tIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbkF2YWlsYWJpbGl0eSxcbiAgQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zLFxuICBJQXBwbGljYXRpb24sXG4gIElBcHBsaWNhdGlvblZlcnNpb24sXG4gIElNYW5pZmVzdFxufSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgdW5pcUJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGNvZXJjZSwgY29tcGFyZSB9IGZyb20gJ3NlbXZlcic7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vdWktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBncm91cEJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUGx1Z2luLCBQYWNrYWdlVHlwZSwgUGx1Z2luc0NvbmZpZyB9IGZyb20gJy4vcGx1Z2lucy5tb2RlbCc7XG5pbXBvcnQgeyBQbHVnaW5zRXhwb3J0U2NvcGVzIH0gZnJvbSAnLi4vY29tbW9uL0FwcGxpY2F0aW9uT3B0aW9ucyc7XG5pbXBvcnQgeyBQbHVnaW5zUmVzb2x2ZVNlcnZpY2UgfSBmcm9tICcuL3BsdWdpbnMtcmVzb2x2ZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBsdWdpbnNTZXJ2aWNlIHtcbiAgc3RhdGljIGNvbnZlcnRJbnN0YWxsZWRSZW1vdGVzVG9JZHMocmVtb3RlczogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zKTogc3RyaW5nW10ge1xuICAgIGlmICghcmVtb3Rlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpbXBvcnRDb250ZXh0UGF0aHMgPSBPYmplY3Qua2V5cyhyZW1vdGVzKTtcbiAgICBjb25zdCBwbHVnaW5zID0gW107XG4gICAgaW1wb3J0Q29udGV4dFBhdGhzLmZvckVhY2goY29udGV4dFBhdGggPT4ge1xuICAgICAgY29uc3QgbW9kdWxlTmFtZXMgPSByZW1vdGVzW2NvbnRleHRQYXRoXSB8fCBbXTtcbiAgICAgIHBsdWdpbnMucHVzaChcbiAgICAgICAgLi4ubW9kdWxlTmFtZXMubWFwKG1vZHVsZSA9PiBQbHVnaW5zU2VydmljZS5jcmVhdGVQbHVnaW5JZChjb250ZXh0UGF0aCwgbW9kdWxlLCAnJywgdHJ1ZSkpXG4gICAgICApO1xuICAgIH0pO1xuICAgIHJldHVybiBwbHVnaW5zO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVBsdWdpbklkKFxuICAgIGNvbnRleHRQYXRoOiBzdHJpbmcsXG4gICAgcGx1Z2luOiBBcHBsaWNhdGlvblBsdWdpbiB8IHN0cmluZyxcbiAgICB2ZXJzaW9uOiBzdHJpbmcsXG4gICAgdXNlTGF0ZXN0ID0gZmFsc2VcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBtb2R1bGVOYW1lID0gdHlwZW9mIHBsdWdpbiA9PT0gJ3N0cmluZycgPyBwbHVnaW4gOiBwbHVnaW4ubW9kdWxlO1xuICAgIGlmICh1c2VMYXRlc3QpIHtcbiAgICAgIHJldHVybiBgJHtjb250ZXh0UGF0aH0vJHttb2R1bGVOYW1lfWA7XG4gICAgfVxuICAgIHJldHVybiBgJHtjb250ZXh0UGF0aH1AJHt2ZXJzaW9ufS8ke21vZHVsZU5hbWV9YDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXBwbGljYXRpb25TZXJ2aWNlOiBBcHBsaWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTdGF0ZVNlcnZpY2U6IEFwcFN0YXRlU2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIGF2YWlsYWJsZSBwYWNrYWdlcy5cbiAgICogQHBhcmFtIHBhcmFtcyBBZGRpdGlvbmFsIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqIEByZXR1cm5zIFJldHVybnMgYSBsaXN0IG9mIHBhY2thZ2VzLlxuICAgKi9cbiAgYXN5bmMgbGlzdFBhY2thZ2VzKHBhcmFtczogYW55ID0ge30pOiBQcm9taXNlPElBcHBsaWNhdGlvbltdPiB7XG4gICAgY29uc3QgYXBwcyA9IGF3YWl0IHRoaXMubGlzdEFwcGxpY2F0aW9uc0J5Q3VycmVudFRlbmFudChwYXJhbXMpO1xuICAgIGNvbnN0IHdlYkFwcHMgPSBhcHBzLmZpbHRlcihhcHAgPT4gdGhpcy5pc1BhY2thZ2UoYXBwKSk7XG4gICAgY29uc3QgdW5pcXVlV2ViQXBwcyA9IHRoaXMucmVtb3ZlRHVwbGljYXRlcyh3ZWJBcHBzLCAnY29udGV4dFBhdGgnKTtcbiAgICByZXR1cm4gdW5pcXVlV2ViQXBwcy5zb3J0KChhLCBiKSA9PiBhLm5hbWUubG9jYWxlQ29tcGFyZShiLm5hbWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYW4gYXBwbGljYXRpb24gaXMgYSBwYWNrYWdlLlxuICAgKiBAcGFyYW0gYXBwbGljYXRpb24gQXBwbGljYXRpb24gbWFuYWdlZCBvYmplY3QuXG4gICAqIEByZXR1cm5zIFJldHVybnMgdHJ1ZSBpZiB0aGUgYXBwbGljYXRpb24gaXMgYSBwYWNrYWdlLlxuICAgKi9cbiAgaXNQYWNrYWdlKGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gYXBwbGljYXRpb24ubWFuaWZlc3Q/LmlzUGFja2FnZSA9PT0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSByZW1vdGVzIGZpZWxkIGluIHRoZSBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uIGJ5IGFkZGluZyBuZXcgcGx1Z2lucy5cbiAgICogSW1wb3J0YW50OiBpZiB0aGUgcmVtb3RlcyBvYmplY3QgaXMgbm90IHNldCBvbiB0aGUgY29uZmlndXJhdGlvbiBvYmplY3QsXG4gICAqIHJlbW90ZXMgd2lsbCBub3QgYmUgYWRkZWQuIE1ha2Ugc3VyZSB0aGF0IHRoaXMgb2JqZWN0IGV4aXN0cyBpbiB0aGUgYXBwbGljYXRpb24gY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIGFwcGxpY2F0aW9uIEFwcGxpY2F0aW9uIG1hbmFnZWQgb2JqZWN0LlxuICAgKiBAcGFyYW0gcGx1Z2lucyBMaXN0IG9mIHJlbW90ZXMgdG8gYmUgYWRkZWQuXG4gICAqIEByZXR1cm5zIFJldHVybnMgdXBkYXRlZCBhcHBsaWNhdGlvbiByZW1vdGVzLlxuICAgKi9cbiAgYXN5bmMgYWRkUmVtb3RlcyhcbiAgICBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uLFxuICAgIHBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luIHwgQXBwbGljYXRpb25QbHVnaW5bXVxuICApOiBQcm9taXNlPFBsdWdpbnNDb25maWc+IHtcbiAgICBjb25zdCBwbHVnaW5zQXJyYXkgPSBBcnJheS5pc0FycmF5KHBsdWdpbnMpID8gcGx1Z2lucyA6IFtwbHVnaW5zXTtcbiAgICBjb25zdCBhcHBDb25maWc6IFBsdWdpbnNDb25maWcgPSAoYXBwbGljYXRpb24/LmNvbmZpZyBhcyBQbHVnaW5zQ29uZmlnKSB8fCB7IHJlbW90ZXM6IHt9IH07XG4gICAgY29uc3QgYXBwQ29uZmlnUmVtb3RlcyA9IGFwcENvbmZpZz8ucmVtb3RlcyB8fCB7fTtcbiAgICBjb25zdCBhcHBDb25maWdFeGNsdWRlZFJlbW90ZXMgPSBhcHBDb25maWc/LmV4Y2x1ZGVkUmVtb3RlcyB8fCB7fTtcbiAgICAvLyBvbmx5IG5vcm1hbCBhbmQgc2VsZiBvcHRpb25hbCBzY29wZWQgcGx1Z2lucyBzaG91bGQgYmUgYWRkZWQgdG8gcmVtb3Rlc1xuICAgIC8vIHNlbGYgc2NvcGVkIHBsdWdpbnMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFkZGVkXG4gICAgY29uc3QgYWxsUGx1Z2luc0V4Y2VwdFNlbGZTY29wZWQgPSB0aGlzLmdldEFsbFBsdWdpbnNFeGNlcHRTZWxmU2NvcGVkKFxuICAgICAgcGx1Z2luc0FycmF5LFxuICAgICAgYXBwbGljYXRpb24uY29udGV4dFBhdGhcbiAgICApO1xuICAgIGNvbnN0IG5ld1JlbW90ZXMgPSB0aGlzLmFkZFBsdWdpblRvUmVtb3Rlc0NvbmZpZyhhcHBDb25maWdSZW1vdGVzLCBhbGxQbHVnaW5zRXhjZXB0U2VsZlNjb3BlZCk7XG4gICAgLy8gc2hvdWxkIGJlIHVucHJvYmxlbWF0aWMgdG8gcmVtb3ZlIGFsbCBjYXRlZ29yaWVzIG9mIHBsdWdpbnMgZnJvbSBleGNsdWRlZCByZW1vdGVzXG4gICAgY29uc3QgbmV3RXhjbHVkZWRSZW1vdGVzID0gdGhpcy5yZW1vdmVQbHVnaW5zRnJvbVJlbW90ZXNDb25maWcoXG4gICAgICBhcHBDb25maWdFeGNsdWRlZFJlbW90ZXMsXG4gICAgICBwbHVnaW5zXG4gICAgKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy51cGRhdGVSZW1vdGVzSW5BcHBDb25maWcoYXBwbGljYXRpb24sIG5ld1JlbW90ZXMsIG5ld0V4Y2x1ZGVkUmVtb3Rlcyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcmVtb3RlcyBmaWVsZCBpbiB0aGUgYXBwbGljYXRpb24gY29uZmlndXJhdGlvbiBieSByZW1vdmluZyBwbHVnaW5zLlxuICAgKiBAcGFyYW0gYXBwbGljYXRpb24gQXBwbGljYXRpb24gbWFuYWdlZCBvYmplY3QuXG4gICAqIEBwYXJhbSBwbHVnaW5zIExpc3Qgb2YgcmVtb3RlcyB0byBiZSByZW1vdmVkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHVwZGF0ZWQgYXBwbGljYXRpb24gcmVtb3Rlcy5cbiAgICovXG4gIGFzeW5jIHJlbW92ZVJlbW90ZXMoXG4gICAgYXBwbGljYXRpb246IElBcHBsaWNhdGlvbixcbiAgICBwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbiB8IEFwcGxpY2F0aW9uUGx1Z2luW11cbiAgKTogUHJvbWlzZTxQbHVnaW5zQ29uZmlnPiB7XG4gICAgY29uc3QgcGx1Z2luc0FycmF5ID0gQXJyYXkuaXNBcnJheShwbHVnaW5zKSA/IHBsdWdpbnMgOiBbcGx1Z2luc107XG4gICAgY29uc3QgYXBwQ29uZmlnOiBQbHVnaW5zQ29uZmlnID0gKGFwcGxpY2F0aW9uPy5jb25maWcgYXMgUGx1Z2luc0NvbmZpZykgfHwgeyByZW1vdGVzOiB7fSB9O1xuICAgIGNvbnN0IGFwcENvbmZpZ1JlbW90ZXMgPSBhcHBDb25maWc/LnJlbW90ZXMgfHwge307XG4gICAgY29uc3QgYXBwQ29uZmlnRXhjbHVkZWRSZW1vdGVzID0gYXBwQ29uZmlnPy5leGNsdWRlZFJlbW90ZXMgfHwge307XG4gICAgLy8gYXBwIHBsdWdpbnMgbmVlZCB0byBiZSByZW1vdmVkIGZyb20gcmVtb3Rlc1xuICAgIGNvbnN0IG5ld1JlbW90ZXMgPSB0aGlzLnJlbW92ZVBsdWdpbnNGcm9tUmVtb3Rlc0NvbmZpZyhhcHBDb25maWdSZW1vdGVzLCBwbHVnaW5zKTtcbiAgICAvLyBzZWxmIHNjb3BlZCBwbHVnaW5zIG5lZWQgdG8gYmUgYWRkZWQgdG8gZXhjbHVkZWQgcmVtb3Rlc1xuICAgIC8vIGFzIHRoZXkgd291bGQgYmUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gcmVtb3Rlc1xuICAgIGNvbnN0IHNlbGZTY29wZWRQbHVnaW5zID0gdGhpcy5nZXRTZWxmU2NvcGVkUGx1Z2lucyhwbHVnaW5zQXJyYXksIGFwcGxpY2F0aW9uLmNvbnRleHRQYXRoKTtcbiAgICBjb25zdCBuZXdFeGNsdWRlZFJlbW90ZXMgPSB0aGlzLmFkZFBsdWdpblRvUmVtb3Rlc0NvbmZpZyhcbiAgICAgIGFwcENvbmZpZ0V4Y2x1ZGVkUmVtb3RlcyxcbiAgICAgIHNlbGZTY29wZWRQbHVnaW5zXG4gICAgKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy51cGRhdGVSZW1vdGVzSW5BcHBDb25maWcoYXBwbGljYXRpb24sIG5ld1JlbW90ZXMsIG5ld0V4Y2x1ZGVkUmVtb3Rlcyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcmVtb3RlcyBmaWVsZCBpbiB0aGUgYXBwbGljYXRpb24gY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIGFwcGxpY2F0aW9uIEFwcGxpY2F0aW9uIG1hbmFnZWQgb2JqZWN0LlxuICAgKiBAcGFyYW0gcGx1Z2lucyBMaXN0IG9mIHJlbW90ZXMgdG8gYmUgYWRkZWQuXG4gICAqIEByZXR1cm5zIFJldHVybnMgdXBkYXRlZCBhcHBsaWNhdGlvbiByZW1vdGVzLlxuICAgKi9cbiAgYXN5bmMgdXBkYXRlUmVtb3Rlc0luQXBwQ29uZmlnKFxuICAgIGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb24sXG4gICAgcGx1Z2luczogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zLFxuICAgIGV4Y2x1ZGVkUmVtb3Rlcz86IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2luc1xuICApOiBQcm9taXNlPFBsdWdpbnNDb25maWc+IHtcbiAgICBjb25zdCB1cGRhdGVkQXBwV2l0aENvbmZpZyA9IGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLnVwZGF0ZUFwcGxpY2F0aW9uQ29uZmlnKFxuICAgICAgYXBwbGljYXRpb24sXG4gICAgICB7XG4gICAgICAgIHJlbW90ZXM6IHBsdWdpbnMsXG4gICAgICAgIGV4Y2x1ZGVkUmVtb3RlczogZXhjbHVkZWRSZW1vdGVzIHx8IHt9XG4gICAgICB9IGFzIFBsdWdpbnNDb25maWdcbiAgICApO1xuICAgIHJldHVybiB1cGRhdGVkQXBwV2l0aENvbmZpZz8uY29uZmlnIHx8IHsgcmVtb3Rlczoge30gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBhcHBsaWNhdGlvbiBtYW5pZmVzdC5cbiAgICogQHBhcmFtIGFwcGxpY2F0aW9uIEFwcGxpY2F0aW9uIG1hbmFnZWQgb2JqZWN0LlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRoZSBhcHBsaWNhdGlvbiBtYW5pZmVzdC5cbiAgICovXG4gIGFzeW5jIGdldEN1bXVsb2NpdHlKc29uRmlsZShhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uKSB7XG4gICAgY29uc3QgYzh5SnNvbiA9IGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLmdldEFwcE1hbmlmZXN0KGFwcGxpY2F0aW9uKTtcbiAgICBpZiAoIWM4eUpzb24ucmVtb3Rlcykge1xuICAgICAgYzh5SnNvbi5yZW1vdGVzID0ge307XG4gICAgfVxuICAgIHJldHVybiBjOHlKc29uO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGluaXRpYWwgc3RhdGUgb2YgcmVtb3RlcyBpbiB0aGUgY29uZmlndXJhdGlvbiAod2hlbiBpdCdzIG1pc3NpbmcpLCBiYXNlZCBvbiB0aGUgbGlzdCBvZiByZW1vdGVzIGJlaW5nIGluIHRoZSBhcHBsaWNhdGlvbiBtYW5pZmVzdC5cbiAgICogQHBhcmFtIGFwcGxpY2F0aW9uICBBcHBsaWNhdGlvbiBtYW5hZ2VkIG9iamVjdC5cbiAgICogQHJldHVybnMgUmV0dXJucyBhIGxpc3Qgb2YgcmVtb3RlcyB0aGF0IGhhcyBiZWVuIGFzc2lnbmVkIHRvIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICovXG4gIGFzeW5jIHNldEluaXRpYWxSZW1vdGVzKGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb24pIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbWFuaWZlc3Q6IElNYW5pZmVzdCA9IGF3YWl0IHRoaXMuZ2V0Q3VtdWxvY2l0eUpzb25GaWxlKGFwcGxpY2F0aW9uKTtcbiAgICAgIGNvbnN0IG1hbmlmZXN0UmVtb3RlczogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zID0gbWFuaWZlc3QucmVtb3RlcztcblxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudXBkYXRlUmVtb3Rlc0luQXBwQ29uZmlnKGFwcGxpY2F0aW9uLCBtYW5pZmVzdFJlbW90ZXMgfHwge30sIHt9KTtcbiAgICB9IGNhdGNoIChlcikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU29ydHMgdmVyc2lvbnMgbGlzdCBvciBsaXN0IG9mIG9iamVjdHMgYnkgdmVyc2lvbiBwcm9wZXJ0eVxuICAgKiBAcmV0dXJucyBsaXN0IG9mIHZlcnNpb25zIGFzIGFycmF5IG9mIHN0cmluZ3Mgb3IgYXJyYXkgb2Ygb2JqZWN0cyBzb3J0ZWQgYnkgdmVyc2lvbiBwcm9wZXJ0eVxuICAgKlxuICAgKiBAcGFyYW0ge3sgbGlzdDogVFtdOyBwYXRoOiBzdHJpbmdbXSB9IHwgc3RyaW5nW119IHNvdXJjZSBkYXRhIHRvIHNvcnRcbiAgICogQHBhcmFtIHsnYXNjJyB8ICdkZXNjJ30gb3JkZXIgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgb3JkZXIgb2Ygc29ydGluZ1xuICAgKlxuICAgKiAqKkV4YW1wbGUqKlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGRhdGEgPSBbJzEuNS4wJywgJzIuMC4wJ107XG4gICAqIGNvbnN0IHNvcnRlZERhdGEgPSBwbHVnaW5zU2VydmljZS5zb3J0VmVyc2lvbnModmVyc2lvbnMsICdkZXNjJyk7XG4gICAqIC8vIHNvcnRlZERhdGE6XG4gICAqIC8vIFsnMi4wLjAnLCAnMS41LjAnXVxuICAgKiBgYGBcbiAgICpcbiAgICogKipFeGFtcGxlKipcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBkYXRhID0gW1xuICAgKiAge2FwcDoge2FwcFZlcnNpb246ICcxLjUuMCd9fSxcbiAgICogIHthcHA6IHthcHBWZXJzaW9uOiAnMi4wLjAnfX0sXG4gICAqIF07XG4gICAqIGNvbnN0IHNvcnRlZERhdGEgPSBwbHVnaW5zU2VydmljZS5zb3J0VmVyc2lvbnMoe2xpc3Q6IGRhdGEsIHBhdGg6IFsnYXBwJywgJ2FwcFZlcnNpb24nXX0sICdkZXNjJyk7XG4gICAqIC8vIHNvcnRlZERhdGE6XG4gICAqIC8vIFtcbiAgICogLy8gIHthcHA6IHthcHBWZXJzaW9uOiAnMi4wLjAnfX0sXG4gICAqIC8vICB7YXBwOiB7YXBwVmVyc2lvbjogJzEuNS4wJ319XG4gICAqIC8vIF1cbiAgICogYGBgXG4gICAqL1xuICBzb3J0VmVyc2lvbnM8VD4oc291cmNlOiB7IGxpc3Q6IFRbXTsgcGF0aDogc3RyaW5nW10gfSwgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnKTogVFtdO1xuICBzb3J0VmVyc2lvbnMoc291cmNlOiBzdHJpbmdbXSwgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnKTogc3RyaW5nW107XG4gIHNvcnRWZXJzaW9ucyhzb3VyY2U6IGFueSwgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnKTogYW55IHtcbiAgICBjb25zdCBzb3VyY2VDb3B5ID0gY2xvbmVEZWVwKHNvdXJjZSk7XG4gICAgaWYgKHNvdXJjZS5saXN0ICYmIHNvdXJjZS5wYXRoKSB7XG4gICAgICBjb25zdCBwYXRoID0gc291cmNlQ29weS5wYXRoLmpvaW4oJy4nKTtcbiAgICAgIHJldHVybiBzb3VyY2VDb3B5Lmxpc3Quc29ydChcbiAgICAgICAgKGEsIGIpID0+IGNvbXBhcmUoY29lcmNlKGdldChhLCBwYXRoKSksIGNvZXJjZShnZXQoYiwgcGF0aCkpKSAqIChvcmRlciA9PT0gJ2FzYycgPyAxIDogLTEpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc291cmNlQ29weS5zb3J0KChhLCBiKSA9PiBjb21wYXJlKGNvZXJjZShhKSwgY29lcmNlKGIpKSAqIChvcmRlciA9PT0gJ2FzYycgPyAxIDogLTEpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgYSBsaXN0IG9mIGV4cG9ydGVkIHBsdWdpbnMgZnJvbSB0aGUgYXBwbGljYXRpb24gb2JqZWN0LlxuICAgKiBAcGFyYW0gYXBwbGljYXRpb24gQXBwbGljYXRpb24gbWFuYWdlZCBvYmplY3QuXG4gICAqIEBwYXJhbSB1c2VMYXRlc3QgU2V0IHRoaXMgdG8gdHJ1ZSwgdG8gbm90IGJpbmQgdGhlIHBsdWdpbiB0byBhbnkgdmVyc2lvbi5cbiAgICogQHJldHVybnMgUmV0dXJucyBhIGxpc3Qgb2YgZXhwb3J0ZWQgcGx1Z2lucy5cbiAgICovXG4gIGdldE1GRXhwb3J0cyhcbiAgICBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uLFxuICAgIGV4Y2x1ZGVkU2NvcGVzID0gW1xuICAgICAgUGx1Z2luc0V4cG9ydFNjb3Blcy5TRUxGLFxuICAgICAgUGx1Z2luc0V4cG9ydFNjb3Blcy5TRUxGX09QVElPTkFMLFxuICAgICAgUGx1Z2luc0V4cG9ydFNjb3Blcy5HTE9CQUxcbiAgICBdLFxuICAgIHVzZUxhdGVzdCA9IGZhbHNlXG4gICk6IEFwcGxpY2F0aW9uUGx1Z2luW10ge1xuICAgIGNvbnN0IG1hbmlmZXN0OiBQYXJ0aWFsPElNYW5pZmVzdD4gPSBhcHBsaWNhdGlvbi5tYW5pZmVzdDtcbiAgICBpZiAoIW1hbmlmZXN0IHx8ICFtYW5pZmVzdC5leHBvcnRzKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmV4dGVuZFBsdWdpbnNEZXRhaWxzKFxuICAgICAgYXBwbGljYXRpb24sXG4gICAgICB7XG4gICAgICAgIHZlcnNpb246IG1hbmlmZXN0LnZlcnNpb24sXG4gICAgICAgIGJpbmFyeUlkOiB1bmRlZmluZWRcbiAgICAgIH0sXG4gICAgICB1c2VMYXRlc3RcbiAgICApLmZpbHRlcihwbHVnaW4gPT4gIWV4Y2x1ZGVkU2NvcGVzLmluY2x1ZGVzKHBsdWdpbi5zY29wZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIGEgbGlzdCBvZiBleHBvcnRzIGZyb20gZWFjaCBhdmFpbGFibGUgcGFja2FnZS5cbiAgICogQHBhcmFtIGFsbFZlcnNpb25zIElmIHNldCB0byB0cnVlLCBhbGwgYW5kIG5vdCBvbmx5IGxhdGVzdCB2ZXJzaW9ucyBhcmUgaW5jbHVkZWQuXG4gICAqIEBwYXJhbSBleGNsdWRlZFNjb3BlcyBEZWZpbmVzIHdoaWNoIHNjb3BlcyBzaG91bGQgbm90IGJlIGxvYWRlZC5cbiAgICogQHJldHVybnMgUmV0dXJucyBhIGxpc3Qgb2YgYWxsIGV4cG9ydGVkIHBsdWdpbnMuXG4gICAqL1xuICBhc3luYyBnZXRBbGxNRkV4cG9ydHMoXG4gICAgYWxsVmVyc2lvbnMgPSBmYWxzZSxcbiAgICBleGNsdWRlZFNjb3BlcyA9IFtcbiAgICAgIFBsdWdpbnNFeHBvcnRTY29wZXMuU0VMRixcbiAgICAgIFBsdWdpbnNFeHBvcnRTY29wZXMuU0VMRl9PUFRJT05BTCxcbiAgICAgIFBsdWdpbnNFeHBvcnRTY29wZXMuR0xPQkFMXG4gICAgXVxuICApOiBQcm9taXNlPEFwcGxpY2F0aW9uUGx1Z2luW10+IHtcbiAgICBjb25zdCBwbHVnaW5zID0gbmV3IEFycmF5PEFwcGxpY2F0aW9uUGx1Z2luPigpO1xuICAgIGNvbnN0IHBhY2thZ2VzID0gYXdhaXQgdGhpcy5saXN0UGFja2FnZXMoKTtcbiAgICBmb3IgKGNvbnN0IHBrZyBvZiBwYWNrYWdlcykge1xuICAgICAgaWYgKCFwa2c/Lm1hbmlmZXN0Py5leHBvcnRzKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKGFsbFZlcnNpb25zICYmIEFycmF5LmlzQXJyYXkocGtnLmFwcGxpY2F0aW9uVmVyc2lvbnMpKSB7XG4gICAgICAgIHBrZy5hcHBsaWNhdGlvblZlcnNpb25zLmZvckVhY2godmVyc2lvbiA9PiB7XG4gICAgICAgICAgcGx1Z2lucy5wdXNoKC4uLnRoaXMuZXh0ZW5kUGx1Z2luc0RldGFpbHMocGtnLCB2ZXJzaW9uKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGx1Z2lucy5wdXNoKFxuICAgICAgICAgIC4uLnRoaXMuZXh0ZW5kUGx1Z2luc0RldGFpbHMocGtnLCB7XG4gICAgICAgICAgICB2ZXJzaW9uOiBwa2cubWFuaWZlc3QudmVyc2lvbixcbiAgICAgICAgICAgIGJpbmFyeUlkOiB1bmRlZmluZWRcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGx1Z2lucy5maWx0ZXIocGx1Z2luID0+ICFleGNsdWRlZFNjb3Blcy5pbmNsdWRlcyhwbHVnaW4uc2NvcGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyBhIGxpc3Qgb2YgcmVtb3RlcyBmcm9tIHRoZSBhcHBsaWNhdGlvbiBvYmplY3QuXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbiBBcHBsaWNhdGlvbiBtYW5hZ2VkIG9iamVjdC5cbiAgICogQHJldHVybnMgUmV0dXJucyBsaXN0IG9mIHJlbW90ZXMuXG4gICAqL1xuICBnZXRNRlJlbW90ZXMoYXBwbGljYXRpb246IElBcHBsaWNhdGlvbik6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyB7XG4gICAgY29uc3QgbWFuaWZlc3QgPSBhcHBsaWNhdGlvbi5tYW5pZmVzdCB8fCB7fTtcbiAgICBjb25zdCBjb25maWc6IFBsdWdpbnNDb25maWcgPSBhcHBsaWNhdGlvbj8uY29uZmlnIGFzIFBsdWdpbnNDb25maWc7XG4gICAgbGV0IHJlbW90ZXMgPSBjb25maWc/LnJlbW90ZXMgfHwgbWFuaWZlc3QucmVtb3RlcyB8fCB7fTtcbiAgICBjb25zdCBtYW5pZmVzdEV4cG9ydHMgPSBtYW5pZmVzdC5leHBvcnRzIHx8IG1hbmlmZXN0Lm1hbmlmZXN0Py5leHBvcnRzIHx8IFtdO1xuICAgIGNvbnN0IHNlbGZSZW1vdGVzOiBzdHJpbmdbXSA9IG1hbmlmZXN0RXhwb3J0c1xuICAgICAgLmZpbHRlcihwbHVnaW4gPT4gcGx1Z2luLnNjb3BlID09PSBQbHVnaW5zRXhwb3J0U2NvcGVzLlNFTEYpXG4gICAgICAubWFwKHBsdWdpbiA9PiBwbHVnaW4ubW9kdWxlIHx8IHBsdWdpbi5uYW1lKTtcblxuICAgIGlmIChzZWxmUmVtb3Rlcy5sZW5ndGgpIHtcbiAgICAgIHJlbW90ZXMgPSBQbHVnaW5zUmVzb2x2ZVNlcnZpY2UubWVyZ2VSZW1vdGVzKFtcbiAgICAgICAgeyBbYXBwbGljYXRpb24uY29udGV4dFBhdGhdOiBzZWxmUmVtb3RlcyB9LFxuICAgICAgICByZW1vdGVzXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICByZW1vdGVzID0gUGx1Z2luc1Jlc29sdmVTZXJ2aWNlLnJlbW92ZVJlbW90ZXMocmVtb3RlcywgY29uZmlnPy5leGNsdWRlZFJlbW90ZXMpO1xuICAgIHJldHVybiByZW1vdGVzO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIHR5cGUgb2YgYSBwYWNrYWdlLlxuICAgKiBBIHBhY2thZ2UgaXMgT0ZGSUNJQUwgaWYgaXQgY29tZXMgZnJvbSBtYW5hZ2VtZW50IHRlbmFudCBhbmQgaGFzIGEgbGFiZWwgYXR0YWNoZWQgY2FsbGVkIE9GRklDSUFMLlxuICAgKiBBIHBhY2thZ2UgaXMgQ09NTVVOSVRZIGlmIGl0IGhhcyBhIGxhYmVsIGNhbGxlZCBDT01NVU5JVFkuXG4gICAqIEEgcGFja2FnZSBpcyBDVVNUT00gaWYgaXQgZG9lcyBub3QgaGF2ZSBhbnkgbGFiZWwgYXR0YWNoZWQuXG4gICAqIEEgcGFja2FnZSBpcyBVTktOT1dOIGlmIGl0IGhhcyBhIGxhYmVsIGF0dGFjaGVkIGJ1dCBpdCBkb2VzIG5vdCBtYXRjaCBDT01NVU5JVFkgb3IgT0ZGSUNJQUwuXG4gICAqXG4gICAqIExhYmVscyBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSB0aGUgc3RhdHVzIG9mIGEgcGFja2FnZS4gQ29tbXVuaXR5IHBhY2thZ2VzIGFsd2F5cyBuZWVkXG4gICAqIGEgbGljZW5zZSB2YWxpZGF0aW9uLiBUaGUgbGFiZWwgd2lsbCBiZSBzaG93biBvbiB0aGUgYXBwbGljYXRpb24gY2FyZCB0byB0ZWxsIGEgdXNlclxuICAgKiB3aGV0aGVyIHRoZXkgYXJlIGxvb2tpbmcgaW50byBhbiBvZmZpY2lhbCBvciBjb21tdW5pdHkgcGFja2FnZS5cbiAgICpcbiAgICogQHBhcmFtIHBhY2thZ2VBcHBsaWNhdGlvbiBUaGUgcGFja2FnZSBhcHBsaWNhdGlvbiBvYmplY3QgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFRoZSBwYWNrYWdlIHR5cGUuXG4gICAqL1xuICBnZXRQYWNrYWdlVHlwZShwYWNrYWdlQXBwbGljYXRpb246IElBcHBsaWNhdGlvbik6IFBhY2thZ2VUeXBlIHtcbiAgICBjb25zdCBsYWJlbCA9IHBhY2thZ2VBcHBsaWNhdGlvbi5sYWJlbCB8fCBwYWNrYWdlQXBwbGljYXRpb24ubWFuaWZlc3Q/LmxhYmVsO1xuICAgIGlmICghbGFiZWwpIHtcbiAgICAgIHJldHVybiBQYWNrYWdlVHlwZS5DVVNUT007XG4gICAgfVxuICAgIGlmIChsYWJlbCA9PT0gUGFja2FnZVR5cGUuT0ZGSUNJQUwgJiYgdGhpcy5pc093bmVkQnlNYW5hZ2VtZW50KHBhY2thZ2VBcHBsaWNhdGlvbikpIHtcbiAgICAgIHJldHVybiBQYWNrYWdlVHlwZS5PRkZJQ0lBTDtcbiAgICB9XG4gICAgaWYgKGxhYmVsID09PSBQYWNrYWdlVHlwZS5DT01NVU5JVFkpIHtcbiAgICAgIHJldHVybiBQYWNrYWdlVHlwZS5DT01NVU5JVFk7XG4gICAgfVxuICAgIHJldHVybiBQYWNrYWdlVHlwZS5VTktOT1dOO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIGlmIGFuIGFwcGxpY2F0aW9uIGlzIG93bmVkIGJ5IG1hbmFnZW1lbnQgdGVuYW50LlxuICAgKlxuICAgKiBAcGFyYW0gYXBwIFRoZSBhcHBsaWNhdGlvbiB0byB2ZXJpZnkuXG4gICAqIEByZXR1cm5zIFRydWUgaWYgb3duZWQgYnkgbWFuYWdlbWVudCB0ZW5hbnQuXG4gICAqL1xuICBpc093bmVkQnlNYW5hZ2VtZW50KGFwcDogSUFwcGxpY2F0aW9uKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYXBwT3duZXIgPSBnZXQoYXBwLCAnb3duZXIudGVuYW50LmlkJyk7XG4gICAgcmV0dXJuIGFwcE93bmVyID09PSAnbWFuYWdlbWVudCc7XG4gIH1cblxuICBwbHVnaW5zRnJvbU1hbmlmZXN0KG1hbmlmZXN0OiBJTWFuaWZlc3QpOiBBcHBsaWNhdGlvblBsdWdpbltdIHtcbiAgICBjb25zdCBwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdID0gbWFuaWZlc3QuZXhwb3J0cztcbiAgICBjb25zdCBleHRlbmRlZFBsdWdpbnMgPSBwbHVnaW5zXG4gICAgICAuZmlsdGVyKHAgPT4gcC5zY29wZSA9PT0gUGx1Z2luc0V4cG9ydFNjb3Blcy5TRUxGKVxuICAgICAgLm1hcChwID0+ICh7XG4gICAgICAgIC4uLnAsXG4gICAgICAgIGlkOiBQbHVnaW5zU2VydmljZS5jcmVhdGVQbHVnaW5JZChtYW5pZmVzdC5jb250ZXh0UGF0aCwgcCwgbWFuaWZlc3QudmVyc2lvbiksXG4gICAgICAgIGNvbnRleHRQYXRoOiBtYW5pZmVzdC5jb250ZXh0UGF0aCxcbiAgICAgICAgdmVyc2lvbjogbWFuaWZlc3QudmVyc2lvbixcbiAgICAgICAgdmVyc2lvbmluZ01hdHJpeDogbWFuaWZlc3QudmVyc2lvbmluZ01hdHJpeCxcbiAgICAgICAgbGljZW5zZTogbWFuaWZlc3QubGljZW5zZSxcbiAgICAgICAgdHlwZTogUGFja2FnZVR5cGUuQ1VTVE9NXG4gICAgICB9KSk7XG4gICAgcmV0dXJuIGV4dGVuZGVkUGx1Z2lucztcbiAgfVxuXG4gIHByaXZhdGUgaXNTZWxmU2NvcGVkUGx1Z2luKHBsdWdpbjogQXBwbGljYXRpb25QbHVnaW4sIGNvbnRleHRQYXRoPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHBsdWdpbi5zY29wZSA9PT0gUGx1Z2luc0V4cG9ydFNjb3Blcy5TRUxGICYmXG4gICAgICAoIWNvbnRleHRQYXRoIHx8IHBsdWdpbi5jb250ZXh0UGF0aCA9PT0gY29udGV4dFBhdGgpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VsZlNjb3BlZFBsdWdpbnMoXG4gICAgcGx1Z2luczogQXBwbGljYXRpb25QbHVnaW5bXSxcbiAgICBjb250ZXh0UGF0aD86IHN0cmluZ1xuICApOiBBcHBsaWNhdGlvblBsdWdpbltdIHtcbiAgICByZXR1cm4gcGx1Z2lucy5maWx0ZXIocGx1Z2luID0+IHRoaXMuaXNTZWxmU2NvcGVkUGx1Z2luKHBsdWdpbiwgY29udGV4dFBhdGgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWxsUGx1Z2luc0V4Y2VwdFNlbGZTY29wZWQoXG4gICAgcGx1Z2luczogQXBwbGljYXRpb25QbHVnaW5bXSxcbiAgICBjb250ZXh0UGF0aD86IHN0cmluZ1xuICApOiBBcHBsaWNhdGlvblBsdWdpbltdIHtcbiAgICByZXR1cm4gcGx1Z2lucy5maWx0ZXIocGx1Z2luID0+ICF0aGlzLmlzU2VsZlNjb3BlZFBsdWdpbihwbHVnaW4sIGNvbnRleHRQYXRoKSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUR1cGxpY2F0ZXMoYXBwczogSUFwcGxpY2F0aW9uW10sIGtleTogc3RyaW5nKTogSUFwcGxpY2F0aW9uW10ge1xuICAgIGNvbnN0IHVuaXF1ZUxpc3Q6IElBcHBsaWNhdGlvbltdID0gW107XG4gICAgY29uc3QgZ3JvdXBlZEFwcHNCeUtleTogUmVjb3JkPHN0cmluZywgSUFwcGxpY2F0aW9uW10+ID0gZ3JvdXBCeShhcHBzLCBrZXkpO1xuICAgIGNvbnN0IGdyb3VwZWRBcHBzOiBJQXBwbGljYXRpb25bXVtdID0gT2JqZWN0LmtleXMoZ3JvdXBlZEFwcHNCeUtleSkubWFwKFxuICAgICAga2V5ID0+IGdyb3VwZWRBcHBzQnlLZXlba2V5XVxuICAgICk7XG4gICAgZm9yIChjb25zdCBhcHBzR3JvdXAgb2YgZ3JvdXBlZEFwcHMpIHtcbiAgICAgIGlmIChhcHBzR3JvdXAubGVuZ3RoIDwgMikge1xuICAgICAgICB1bmlxdWVMaXN0LnB1c2goLi4uYXBwc0dyb3VwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGFwcEZyb21DdXJyZW50VGVuYW50ID0gYXBwc0dyb3VwLmZpbmQoYXBwID0+IHRoaXMuaXNGcm9tQ3VycmVudFRlbmFudChhcHApKTtcbiAgICAgICAgaWYgKGFwcEZyb21DdXJyZW50VGVuYW50KSB7XG4gICAgICAgICAgdW5pcXVlTGlzdC5wdXNoKGFwcEZyb21DdXJyZW50VGVuYW50KTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhcHBOb3RPd25lZEJ5TWFuYWdlbWVudCA9IGFwcHNHcm91cC5maW5kKGFwcCA9PiAhdGhpcy5pc093bmVkQnlNYW5hZ2VtZW50KGFwcCkpO1xuICAgICAgICB1bmlxdWVMaXN0LnB1c2goYXBwTm90T3duZWRCeU1hbmFnZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5pcXVlTGlzdDtcbiAgfVxuXG4gIHByaXZhdGUgaXNGcm9tQ3VycmVudFRlbmFudChhcHA6IElBcHBsaWNhdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhcHAub3duZXIudGVuYW50LmlkID09PSB0aGlzLmFwcFN0YXRlU2VydmljZS5jdXJyZW50VGVuYW50LnZhbHVlLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogTW9kaWZpZXMgdGhlIGxpc3Qgb2YgcGx1Z2lucyB0byBoYXZlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gc3VjaCBhcyBpZC5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBleHRlbmRQbHVnaW5zRGV0YWlscyhcbiAgICBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uLFxuICAgIHZlcnNpb246IElBcHBsaWNhdGlvblZlcnNpb24sXG4gICAgdXNlTGF0ZXN0ID0gZmFsc2VcbiAgKTogQXBwbGljYXRpb25QbHVnaW5bXSB7XG4gICAgY29uc3QgcGx1Z2luczogQXBwbGljYXRpb25QbHVnaW5bXSA9IGFwcGxpY2F0aW9uLm1hbmlmZXN0LmV4cG9ydHM7XG4gICAgY29uc3QgZXh0ZW5kZWRQbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdID0gcGx1Z2lucy5tYXAocCA9PiAoe1xuICAgICAgLi4ucCxcbiAgICAgIGlkOiBQbHVnaW5zU2VydmljZS5jcmVhdGVQbHVnaW5JZChhcHBsaWNhdGlvbi5jb250ZXh0UGF0aCwgcCwgdmVyc2lvbi52ZXJzaW9uLCB1c2VMYXRlc3QpLFxuICAgICAgaWRMYXRlc3Q6IFBsdWdpbnNTZXJ2aWNlLmNyZWF0ZVBsdWdpbklkKGFwcGxpY2F0aW9uLmNvbnRleHRQYXRoLCBwLCB2ZXJzaW9uLnZlcnNpb24sIHRydWUpLFxuICAgICAgY29udGV4dFBhdGg6IGFwcGxpY2F0aW9uLmNvbnRleHRQYXRoLFxuICAgICAgdmVyc2lvbjogdmVyc2lvbi52ZXJzaW9uLFxuICAgICAgdmVyc2lvbmluZ01hdHJpeDogYXBwbGljYXRpb24ubWFuaWZlc3QudmVyc2lvbmluZ01hdHJpeCxcbiAgICAgIHRhZ3M6IHVzZUxhdGVzdCA/IFsnbGF0ZXN0J10gOiB2ZXJzaW9uLnRhZ3MgfHwgW10sXG4gICAgICBsaWNlbnNlOiBhcHBsaWNhdGlvbi5tYW5pZmVzdC5saWNlbnNlLFxuICAgICAgdHlwZTogdGhpcy5nZXRQYWNrYWdlVHlwZShhcHBsaWNhdGlvbilcbiAgICB9KSk7XG4gICAgcmV0dXJuIGV4dGVuZGVkUGx1Z2lucztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbGlzdEFwcGxpY2F0aW9uc0J5Q3VycmVudFRlbmFudChwYXJhbXM6IGFueSA9IHt9KTogUHJvbWlzZTxJQXBwbGljYXRpb25bXT4ge1xuICAgIGNvbnN0IGZpbHRlciA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdIT1NURUQnLFxuICAgICAgICBwYWdlU2l6ZTogMjAwMCxcbiAgICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWVcbiAgICAgIH0sXG4gICAgICBwYXJhbXNcbiAgICApO1xuICAgIGNvbnN0IHNoYXJlZEZpbHRlciA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7XG4gICAgICAgIGF2YWlsYWJpbGl0eTogQXBwbGljYXRpb25BdmFpbGFiaWxpdHkuU0hBUkVELFxuICAgICAgICB0eXBlOiAnSE9TVEVEJyxcbiAgICAgICAgcGFnZVNpemU6IDIwMDAsXG4gICAgICAgIHdpdGhUb3RhbFBhZ2VzOiB0cnVlXG4gICAgICB9LFxuICAgICAgcGFyYW1zXG4gICAgKTtcblxuICAgIGNvbnN0IHRlbmFudE5hbWUgPSB0aGlzLmFwcFN0YXRlU2VydmljZS5jdXJyZW50VGVuYW50LnZhbHVlLm5hbWU7XG4gICAgY29uc3QgW3Jlc3VsdEFwcHNPd25lZEJ5VGVuYW50LCByZXN1bHRTaGFyZWRBcHBzXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLmxpc3RCeVRlbmFudCh0ZW5hbnROYW1lLCBmaWx0ZXIpLFxuICAgICAgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UubGlzdChzaGFyZWRGaWx0ZXIpXG4gICAgXSk7XG4gICAgY29uc3QgeyBkYXRhOiBhcHBzT3duZWRCeVRlbmFudCB9ID0gcmVzdWx0QXBwc093bmVkQnlUZW5hbnQ7XG4gICAgY29uc3QgeyBkYXRhOiBzaGFyZWRBcHBzIH0gPSByZXN1bHRTaGFyZWRBcHBzO1xuICAgIGNvbnN0IHdlYkFwcHMgPSBbLi4uYXBwc093bmVkQnlUZW5hbnQsIC4uLnNoYXJlZEFwcHNdO1xuICAgIHJldHVybiB1bmlxQnkod2ViQXBwcywgKGFwcDogSUFwcGxpY2F0aW9uKSA9PiBhcHAuaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRQbHVnaW5Ub1JlbW90ZXNDb25maWcoXG4gICAgcmVtb3Rlc0NvbmZpZzogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zLFxuICAgIHBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luIHwgQXBwbGljYXRpb25QbHVnaW5bXVxuICApOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMge1xuICAgIGlmICghcGx1Z2lucykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZW1vdGVzQ29weSA9IGNsb25lRGVlcChyZW1vdGVzQ29uZmlnKTtcbiAgICBjb25zdCB0ZW1wID0gQXJyYXkuaXNBcnJheShwbHVnaW5zKSA/IHBsdWdpbnMgOiBbcGx1Z2luc107XG5cbiAgICB0ZW1wLmZvckVhY2gocGx1Z2luID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGV4dFBhdGgsIG1vZHVsZU5hbWUgfSA9IHRoaXMucGFyc2VQbHVnaW5JZChwbHVnaW4uaWQpO1xuICAgICAgaWYgKCFjb250ZXh0UGF0aCB8fCAhbW9kdWxlTmFtZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZW1vdGVzQ29weVtjb250ZXh0UGF0aF0/Lmxlbmd0aCA+PSAwXG4gICAgICAgID8gcmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdLnB1c2gobW9kdWxlTmFtZSlcbiAgICAgICAgOiAocmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdID0gW10pLnB1c2gobW9kdWxlTmFtZSk7XG4gICAgICByZW1vdGVzQ29weVtjb250ZXh0UGF0aF0gPSBbLi4ubmV3IFNldChyZW1vdGVzQ29weVtjb250ZXh0UGF0aF0pXTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVtb3Rlc0NvcHk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVBsdWdpbnNGcm9tUmVtb3Rlc0NvbmZpZyhcbiAgICByZW1vdGVzQ29uZmlnOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMsXG4gICAgcGx1Z2luczogQXBwbGljYXRpb25QbHVnaW4gfCBBcHBsaWNhdGlvblBsdWdpbltdXG4gICk6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyB7XG4gICAgY29uc3QgcmVtb3Rlc0NvcHk6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyA9IGNsb25lRGVlcChyZW1vdGVzQ29uZmlnKTtcbiAgICBjb25zdCB0ZW1wID0gQXJyYXkuaXNBcnJheShwbHVnaW5zKSA/IHBsdWdpbnMgOiBbcGx1Z2luc107XG5cbiAgICB0ZW1wLmZvckVhY2gocGx1Z2luID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGV4dFBhdGgsIG1vZHVsZU5hbWUgfSA9IHRoaXMucGFyc2VQbHVnaW5JZChwbHVnaW4uaWQpO1xuICAgICAgaWYgKCFjb250ZXh0UGF0aCB8fCAhbW9kdWxlTmFtZSB8fCAhcmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXSA9IHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXS5maWx0ZXIocCA9PiBwICE9PSBtb2R1bGVOYW1lKTtcbiAgICAgIHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXSA9IFsuLi5uZXcgU2V0KHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXSldO1xuICAgICAgaWYgKHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZGVsZXRlIHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVtb3Rlc0NvcHk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlUGx1Z2luSWQoaWQ6IHN0cmluZyk6IHsgY29udGV4dFBhdGg6IHN0cmluZzsgbW9kdWxlTmFtZTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IFtjb250ZXh0UGF0aCwgbW9kdWxlTmFtZV0gPSBpZC5zcGxpdCgnLycpO1xuICAgIHJldHVybiB7IGNvbnRleHRQYXRoLCBtb2R1bGVOYW1lIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Injectable, Injector } from '@angular/core';
|
|
2
|
-
import { InventoryService } from '@c8y/
|
|
2
|
+
import { InventoryService } from '@c8y/client';
|
|
3
3
|
import { from, of } from 'rxjs';
|
|
4
4
|
import { catchError, map, shareReplay, tap } from 'rxjs/operators';
|
|
5
5
|
import { ViewContextServices } from './view-context.service';
|
|
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
56
56
|
providedIn: 'root'
|
|
57
57
|
}]
|
|
58
58
|
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1yb3V0ZS5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvcm91dGVyL2NvbnRleHQtcm91dGUuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFLN0QsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRDlCLFdBQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2MsQ0FBQztJQUUxQyxXQUFXLENBQUMsS0FBNkI7UUFDdkMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUN4QyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN2RixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDZixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQTZCO1FBQzNDLE1BQU0sZUFBZSxHQUFHLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakYsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUE2RCxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVPLFlBQVksQ0FDbEIsT0FBaUQsRUFDakQsRUFBbUI7UUFFbkIsSUFBSSxFQUFFLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDakIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sTUFBTSxHQUFHLE9BQU8sWUFBWSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN6RixNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM1QyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDdkIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7WUFDRixLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8saUJBQWlCLENBQ3ZCLE9BQWlELEVBQ2pELEVBQW1CO1FBRW5CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVPLFFBQVEsQ0FBQyxPQUFpRDtRQUNoRSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBMURVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJbnZlbnRvcnlTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc2hhcmVSZXBsYXksIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFZpZXdDb250ZXh0U2VydmljZXMgfSBmcm9tICcuL3ZpZXctY29udGV4dC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dFJvdXRlR3VhcmQge1xuICBwcml2YXRlIGNhY2hlcyA9IG5ldyBNYXAoKTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHt9XG5cbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBpZCA9IHJvdXRlLnBhcmFtTWFwLmdldCgnaWQnKTtcbiAgICBjb25zdCBzZXJ2aWNlID0gdGhpcy5zZXJ2aWNlKHJvdXRlKTtcbiAgICB0aGlzLmNsZWFyRGV0YWlsQ2FjaGVkKHNlcnZpY2UsIGlkKTtcbiAgICByZXR1cm4gdGhpcy5kZXRhaWxDYWNoZWQoc2VydmljZSwgaWQpLnBpcGUoXG4gICAgICB0YXAoY29udGV4dERhdGEgPT4ge1xuICAgICAgICBPYmplY3Qua2V5cyhyb3V0ZS5kYXRhLmNvbnRleHREYXRhKS5mb3JFYWNoKGtleSA9PiBkZWxldGUgcm91dGUuZGF0YS5jb250ZXh0RGF0YVtrZXldKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihyb3V0ZS5kYXRhLmNvbnRleHREYXRhLCBjb250ZXh0RGF0YSk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgoKSA9PiB0cnVlKSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoZmFsc2UpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHNlcnZpY2Uocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcbiAgICBjb25zdCBzZXJ2aWNlSW5zdGFuY2UgPSBWaWV3Q29udGV4dFNlcnZpY2VzLmNvbnRleHRUb1NlcnZpY2Uocm91dGUuZGF0YS5jb250ZXh0KTtcbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoc2VydmljZUluc3RhbmNlIGFzIFR5cGU8SW5zdGFuY2VUeXBlPHR5cGVvZiBzZXJ2aWNlSW5zdGFuY2U+Pik7XG4gIH1cblxuICBwcml2YXRlIGRldGFpbENhY2hlZChcbiAgICBzZXJ2aWNlOiBSZXR1cm5UeXBlPENvbnRleHRSb3V0ZUd1YXJkWydzZXJ2aWNlJ10+LFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgKTogT2JzZXJ2YWJsZTxBd2FpdGVkPFJldHVyblR5cGU8UmV0dXJuVHlwZTxDb250ZXh0Um91dGVHdWFyZFsnc2VydmljZSddPlsnZGV0YWlsJ10+PlsnZGF0YSddPiB7XG4gICAgaWYgKGlkID09PSAnbmV3Jykge1xuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgfVxuICAgIGNvbnN0IGNhY2hlID0gdGhpcy5nZXRDYWNoZShzZXJ2aWNlKTtcbiAgICBsZXQgY2FjaGVkID0gY2FjaGVbaWRdO1xuICAgIGlmICghY2FjaGVkKSB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBzZXJ2aWNlIGluc3RhbmNlb2YgSW52ZW50b3J5U2VydmljZSA/IHsgd2l0aENoaWxkcmVuOiBmYWxzZSB9IDogdW5kZWZpbmVkO1xuICAgICAgY2FjaGVkID0gZnJvbShzZXJ2aWNlLmRldGFpbChpZCwgcGFyYW1zKSkucGlwZShcbiAgICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICApO1xuICAgICAgY2FjaGVbaWRdID0gY2FjaGVkO1xuICAgIH1cbiAgICByZXR1cm4gY2FjaGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckRldGFpbENhY2hlZChcbiAgICBzZXJ2aWNlOiBSZXR1cm5UeXBlPENvbnRleHRSb3V0ZUd1YXJkWydzZXJ2aWNlJ10+LFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgKSB7XG4gICAgY29uc3QgY2FjaGUgPSB0aGlzLmdldENhY2hlKHNlcnZpY2UpO1xuICAgIGRlbGV0ZSBjYWNoZVtpZF07XG4gIH1cblxuICBwcml2YXRlIGdldENhY2hlKHNlcnZpY2U6IFJldHVyblR5cGU8Q29udGV4dFJvdXRlR3VhcmRbJ3NlcnZpY2UnXT4pIHtcbiAgICBsZXQgY2FjaGUgPSB0aGlzLmNhY2hlcy5nZXQoc2VydmljZSk7XG4gICAgaWYgKCFjYWNoZSkge1xuICAgICAgY2FjaGUgPSB7fTtcbiAgICAgIHRoaXMuY2FjaGVzLnNldChzZXJ2aWNlLCBjYWNoZSk7XG4gICAgfVxuICAgIHJldHVybiBjYWNoZTtcbiAgfVxufVxuIl19
|