@c8y/ngx-components 1021.29.1 → 1021.30.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/device-profile/device-profile.component.d.ts.map +1 -1
- package/device-profile/device-profile.model.d.ts +3 -0
- package/device-profile/device-profile.model.d.ts.map +1 -1
- package/device-profile/device-profile.service.d.ts +1 -1
- package/device-profile/device-profile.service.d.ts.map +1 -1
- package/device-profile/device-tab-profile/device-tab-profile.component.d.ts +2 -1
- package/device-profile/device-tab-profile/device-tab-profile.component.d.ts.map +1 -1
- package/esm2022/core/i18n/translation-loader.service.mjs +2 -2
- package/esm2022/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.mjs +3 -3
- package/esm2022/device-profile/device-profile.component.mjs +4 -3
- package/esm2022/device-profile/device-profile.model.mjs +1 -1
- package/esm2022/device-profile/device-profile.service.mjs +17 -16
- package/esm2022/device-profile/device-tab-profile/device-profile-item-list.component.mjs +3 -3
- package/esm2022/device-profile/device-tab-profile/device-tab-profile.component.mjs +20 -4
- package/esm2022/repository/shared/repository.model.mjs +1 -1
- package/esm2022/widgets/implementations/alarms/alarm-widget.service.mjs +2 -2
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +2 -2
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-profile.mjs +38 -20
- package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +1 -1
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/repository/shared/repository.model.d.ts +1 -0
- package/repository/shared/repository.model.d.ts.map +1 -1
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { InventoryService, OperationService, OperationStatus, QueriesUtil } from '@c8y/client';
|
|
3
|
-
import { AlertService } from '@c8y/ngx-components';
|
|
4
|
-
import { sortBy, toArray
|
|
5
|
-
import { gettext } from '@c8y/ngx-components';
|
|
3
|
+
import { AlertService, gettext } from '@c8y/ngx-components';
|
|
4
|
+
import { get, isNil, omitBy, sortBy, toArray } from 'lodash-es';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
import * as i1 from "@c8y/client";
|
|
8
7
|
import * as i2 from "@c8y/ngx-components";
|
|
@@ -86,12 +85,12 @@ export class DeviceProfileService {
|
|
|
86
85
|
if (profileFirmware) {
|
|
87
86
|
profileItems.push(profileFirmware);
|
|
88
87
|
}
|
|
89
|
-
return this.createProfileComparison(deviceItems, profileItems, 'name', 'version', this.getAlert('firmware'));
|
|
88
|
+
return this.createProfileComparison(deviceItems, profileItems, 'name', 'version', null, this.getAlert('firmware'));
|
|
90
89
|
}
|
|
91
90
|
getSoftwareItems(device, selectedProfile) {
|
|
92
91
|
const deviceSoftware = device.c8y_SoftwareList;
|
|
93
92
|
const profileSoftware = get(selectedProfile, 'c8y_DeviceProfile.software');
|
|
94
|
-
return this.createProfileComparison(deviceSoftware, profileSoftware, 'name', 'version', this.getAlert('software'));
|
|
93
|
+
return this.createProfileComparison(deviceSoftware, profileSoftware, 'name', 'version', 'softwareType', this.getAlert('software'));
|
|
95
94
|
}
|
|
96
95
|
getConfigurationItems(device, selectedProfile) {
|
|
97
96
|
const deviceConfiguration = [];
|
|
@@ -101,7 +100,7 @@ export class DeviceProfileService {
|
|
|
101
100
|
}
|
|
102
101
|
});
|
|
103
102
|
const profileConfiguration = get(selectedProfile, 'c8y_DeviceProfile.configuration');
|
|
104
|
-
return this.createProfileComparison(deviceConfiguration, profileConfiguration, 'url', 'type', this.getAlert('configuration'));
|
|
103
|
+
return this.createProfileComparison(deviceConfiguration, profileConfiguration, 'url', null, 'type', this.getAlert('configuration'));
|
|
105
104
|
}
|
|
106
105
|
getAlert(itemType) {
|
|
107
106
|
const notInstalled = (comparisionResult) => {
|
|
@@ -130,31 +129,33 @@ export class DeviceProfileService {
|
|
|
130
129
|
return notInstalled;
|
|
131
130
|
}
|
|
132
131
|
}
|
|
133
|
-
createProfileComparison(deviceItems = [], profileItems = [], mergeByProperty, propertyNameWithDetails, getAlert) {
|
|
134
|
-
const comparisonObj = this.createProfileComparisonFromDeviceItems(deviceItems, mergeByProperty, propertyNameWithDetails);
|
|
135
|
-
const extendedComparisonObj = this.extendProfileComparisonWithProfileItems(comparisonObj, profileItems, mergeByProperty, propertyNameWithDetails, getAlert);
|
|
132
|
+
createProfileComparison(deviceItems = [], profileItems = [], mergeByProperty, propertyNameWithDetails, propertyNameWithType, getAlert) {
|
|
133
|
+
const comparisonObj = this.createProfileComparisonFromDeviceItems(deviceItems, mergeByProperty, propertyNameWithDetails, propertyNameWithType);
|
|
134
|
+
const extendedComparisonObj = this.extendProfileComparisonWithProfileItems(comparisonObj, profileItems, mergeByProperty, propertyNameWithDetails, propertyNameWithType, getAlert);
|
|
136
135
|
return sortBy(toArray(extendedComparisonObj), 'name');
|
|
137
136
|
}
|
|
138
|
-
createProfileComparisonFromDeviceItems(deviceItems, mergeByProperty, propertyNameWithDetails) {
|
|
137
|
+
createProfileComparisonFromDeviceItems(deviceItems, mergeByProperty, propertyNameWithDetails, propertyNameWithType) {
|
|
139
138
|
return deviceItems.reduce((comapritionItem, deviceItem) => Object.assign(comapritionItem, {
|
|
140
139
|
[deviceItem[mergeByProperty]]: {
|
|
141
|
-
device: {
|
|
140
|
+
device: omitBy({
|
|
142
141
|
itemName: deviceItem.name,
|
|
143
142
|
itemDetails: deviceItem[propertyNameWithDetails],
|
|
143
|
+
itemType: deviceItem[propertyNameWithType],
|
|
144
144
|
itemUrl: deviceItem.url
|
|
145
|
-
},
|
|
145
|
+
}, isNil),
|
|
146
146
|
profile: undefined
|
|
147
147
|
}
|
|
148
148
|
}), {});
|
|
149
149
|
}
|
|
150
|
-
extendProfileComparisonWithProfileItems(comparisonObj, profileItems, mergeByProperty, propertyNameWithDetails, getAlert) {
|
|
150
|
+
extendProfileComparisonWithProfileItems(comparisonObj, profileItems, mergeByProperty, propertyNameWithDetails, propertyNameWithType, getAlert) {
|
|
151
151
|
profileItems.forEach(profileItem => {
|
|
152
152
|
const comparisionResult = {
|
|
153
|
-
profile: {
|
|
153
|
+
profile: omitBy({
|
|
154
154
|
itemName: profileItem.name,
|
|
155
155
|
itemDetails: profileItem[propertyNameWithDetails],
|
|
156
|
+
itemType: profileItem[propertyNameWithType],
|
|
156
157
|
itemUrl: profileItem.url
|
|
157
|
-
},
|
|
158
|
+
}, isNil),
|
|
158
159
|
device: comparisonObj[profileItem[mergeByProperty]]
|
|
159
160
|
? comparisonObj[profileItem[mergeByProperty]].device
|
|
160
161
|
: undefined
|
|
@@ -170,4 +171,4 @@ export class DeviceProfileService {
|
|
|
170
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProfileService, decorators: [{
|
|
171
172
|
type: Injectable
|
|
172
173
|
}], ctorParameters: () => [{ type: i1.InventoryService }, { type: i1.OperationService }, { type: i2.AlertService }] });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXByb2ZpbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2RldmljZS1wcm9maWxlL2RldmljZS1wcm9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBRUwsZ0JBQWdCLEVBR2hCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsV0FBVyxFQUNaLE1BQU0sYUFBYSxDQUFDO0FBT3JCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBRzlDLE1BQU0sT0FBTyxvQkFBb0I7SUFXL0IsWUFDVSxnQkFBa0MsRUFDbEMsZ0JBQWtDLEVBQ2xDLFlBQTBCO1FBRjFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWIzQixhQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsV0FBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLHNCQUFzQjtRQUdqRSwwQkFBcUIsR0FBRyxPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUMvRCw4QkFBeUIsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN4RCxxQkFBZ0IsR0FBRyxPQUFPLENBQ2hDLGlHQUFpRyxDQUNsRyxDQUFDO1FBT0EsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFF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QjtnQkFDRCxPQUFPLEVBQUUsU0FBUzthQUNuQjtTQUNGLENBQUMsRUFDSixFQUFFLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyx1Q0FBdUMsQ0FDN0MsYUFBcUIsRUFDckIsWUFBa0UsRUFDbEUsZUFBdUIsRUFDdkIsdUJBQStCLEVBQy9CLFFBQXlEO1FBRXpELFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDakMsTUFBTSxpQkFBaUIsR0FBcUI7Z0JBQzFDLE9BQU8sRUFBRTtvQkFDUCxRQUFRLEVBQUUsV0FBVyxDQUFDLElBQUk7b0JBQzFCLFdBQVcsRUFBRSxXQUFXLENBQUMsdUJBQXVCLENBQUM7b0JBQ2pELE9BQU8sRUFBRSxXQUFXLENBQUMsR0FBRztpQkFDekI7Z0JBQ0QsTUFBTSxFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQ2pELENBQUMsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTTtvQkFDcEQsQ0FBQyxDQUFDLFNBQVM7YUFDZCxDQUFDO1lBQ0YsaUJBQWlCLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2hFLGFBQWEsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7OEdBMU9VLG9CQUFvQjtrSEFBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSU1hbmFnZWRPYmplY3QsXG4gIEludmVudG9yeVNlcnZpY2UsXG4gIElPcGVyYXRpb24sXG4gIElSZXN1bHRMaXN0LFxuICBPcGVyYXRpb25TZXJ2aWNlLFxuICBPcGVyYXRpb25TdGF0dXMsXG4gIFF1ZXJpZXNVdGlsXG59IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIERldmljZVByb2ZpbGUsXG4gIERldmljZVByb2ZpbGVGaXJtd2FyZSxcbiAgRGV2aWNlUHJvZmlsZVNvZnR3YXJlLFxuICBDb21wYXJpc29uUmVzdWx0XG59IGZyb20gJy4vZGV2aWNlLXByb2ZpbGUubW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBzb3J0QnksIHRvQXJyYXksIGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEZXZpY2VQcm9maWxlU2VydmljZSB7XG4gIHJlYWRvbmx5IGRhdGVGcm9tID0gbmV3IERhdGUoMCk7XG4gIHJlYWRvbmx5IGRhdGVUbyA9IG5ldyBEYXRlKERhdGUubm93KCkgKyA4NjQwMDAwMCk7IC8vIDEgZGF5IGluIHRoZSBmdXR1cmVcbiAgcHJpdmF0ZSBxdWVyaWVzVXRpbDogUXVlcmllc1V0aWw7XG5cbiAgcHJpdmF0ZSBOT1RfSU5TVEFMTEVEX1dBUk5JTkcgPSBnZXR0ZXh0KCdOb3QgaW5zdGFsbGVkIG9uIHRoZSBkZXZpY2UnKTtcbiAgcHJpdmF0ZSBWRVJTSU9OX01JU1NNQVRDSF9XQVJOSU5HID0gZ2V0dGV4dCgnVmVyc2lvbiBtaXNtYXRjaCcpO1xuICBwcml2YXRlIFNBTUVfVVJMX1dBUk5JTkcgPSBnZXR0ZXh0KFxuICAgICdJbnN0YWxsZWQgY29uZmlndXJhdGlvbiBoYXMgdGhlIHNhbWUgVVJMIGJ1dCBkaWZmZXJlbnQgbmFtZSBvciB0eXBlIHRoYW4gdGhlIG9uZSBpbiB0aGUgcHJvZmlsZSdcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGludmVudG9yeVNlcnZpY2U6IEludmVudG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvcGVyYXRpb25TZXJ2aWNlOiBPcGVyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5xdWVyaWVzVXRpbCA9IG5ldyBRdWVyaWVzVXRpbCgpO1xuICB9XG5cbiAgY3JlYXRlRGV2aWNlUHJvZmlsZShkZXZpY2VQcm9maWxlOiBQYXJ0aWFsPERldmljZVByb2ZpbGU+KSB7XG4gICAgaWYgKGdldChkZXZpY2VQcm9maWxlLCAnYzh5X0ZpbHRlci50eXBlJykgPT09ICcnKSB7XG4gICAgICBkZWxldGUgZGV2aWNlUHJvZmlsZS5jOHlfRmlsdGVyLnR5cGU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmludmVudG9yeVNlcnZpY2UuY3JlYXRlKGRldmljZVByb2ZpbGUgYXMgSU1hbmFnZWRPYmplY3QpO1xuICB9XG5cbiAgZ2V0RGV2aWNlUHJvZmlsZXNCeURldmljZVR5cGUoZGV2aWNlVHlwZTogc3RyaW5nKTogUHJvbWlzZTxJUmVzdWx0TGlzdDxJTWFuYWdlZE9iamVjdD4+IHtcbiAgICBjb25zdCBkZXZpY2VUeXBlRmlsdGVyID0ge1xuICAgICAgX19vcjogW1xuICAgICAgICB7ICdjOHlfRmlsdGVyLnR5cGUnOiBkZXZpY2VUeXBlIH0sXG4gICAgICAgIHsgJ2M4eV9GaWx0ZXIudHlwZSc6ICcnIH0sXG4gICAgICAgIHsgX19ub3Q6IHsgX19oYXM6ICdjOHlfRmlsdGVyLnR5cGUnIH0gfVxuICAgICAgXVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGV2aWNlUHJvZmlsZXMoZGV2aWNlVHlwZUZpbHRlcik7XG4gIH1cblxuICBnZXREZXZpY2VQcm9maWxlcyhhbmRRdWVyeT86IGFueSk6IFByb21pc2U8SVJlc3VsdExpc3Q8SU1hbmFnZWRPYmplY3Q+PiB7XG4gICAgbGV0IHF1ZXJ5OiBvYmplY3QgPSB7XG4gICAgICB0eXBlOiAnYzh5X1Byb2ZpbGUnXG4gICAgfTtcbiAgICBjb25zdCBmaWx0ZXI6IG9iamVjdCA9IHtcbiAgICAgIHBhZ2VTaXplOiAxMDAsXG4gICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZVxuICAgIH07XG4gICAgcXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmFkZEFuZEZpbHRlcihxdWVyeSwgYW5kUXVlcnkgfHwge30pO1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeVNlcnZpY2UubGlzdFF1ZXJ5KHF1ZXJ5LCBmaWx0ZXIpO1xuICB9XG5cbiAgYXN5bmMgZ2V0UHJvZmlsZU9wZXJhdGlvbihkZXZpY2VJZDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgY29uc3QgZmlsdGVyOiBvYmplY3QgPSB7XG4gICAgICBkZXZpY2VJZCxcbiAgICAgIGZyYWdtZW50VHlwZTogJ2M4eV9EZXZpY2VQcm9maWxlJyxcbiAgICAgIGRhdGVGcm9tOiB0aGlzLmRhdGVGcm9tLnRvSVNPU3RyaW5nKCksXG4gICAgICBkYXRlVG86IHRoaXMuZGF0ZVRvLnRvSVNPU3RyaW5nKCksXG4gICAgICByZXZlcnQ6IHRydWUsXG4gICAgICBwYWdlU2l6ZTogMVxuICAgIH07XG5cbiAgICBjb25zdCBvcGVyYXRpb24gPSAoYXdhaXQgdGhpcy5vcGVyYXRpb25TZXJ2aWNlLmxpc3QoZmlsdGVyKSkuZGF0YVswXTtcbiAgICByZXR1cm4gb3BlcmF0aW9uICYmIG9wZXJhdGlvbi5zdGF0dXMgIT09IE9wZXJhdGlvblN0YXR1cy5TVUNDRVNTRlVMID8gb3BlcmF0aW9uIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUHJvZmlsZU9wZXJhdGlvbihkZXZpY2U6IElNYW5hZ2VkT2JqZWN0LCBkZXZpY2VQcm9maWxlOiBQYXJ0aWFsPERldmljZVByb2ZpbGU+KSB7XG4gICAgbGV0IG9wZXJhdGlvbjtcbiAgICBjb25zdCBvcGVyYXRpb25DZmc6IElPcGVyYXRpb24gPSB7XG4gICAgICBkZXZpY2VJZDogZGV2aWNlLmlkLFxuICAgICAgcHJvZmlsZUlkOiBkZXZpY2VQcm9maWxlLmlkLFxuICAgICAgcHJvZmlsZU5hbWU6IGRldmljZVByb2ZpbGUubmFtZSxcbiAgICAgIGM4eV9EZXZpY2VQcm9maWxlOiBkZXZpY2VQcm9maWxlLmM4eV9EZXZpY2VQcm9maWxlLFxuICAgICAgZGVzY3JpcHRpb246IGBBc3NpZ24gZGV2aWNlIHByb2ZpbGUgJHtkZXZpY2VQcm9maWxlLm5hbWV9IHRvIGRldmljZSAke2RldmljZS5uYW1lfWBcbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMub3BlcmF0aW9uU2VydmljZS5jcmVhdGUob3BlcmF0aW9uQ2ZnKTtcbiAgICAgIG9wZXJhdGlvbiA9IGRhdGE7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgIH1cbiAgICByZXR1cm4gb3BlcmF0aW9uO1xuICB9XG5cbiAgZ2V0RmlybXdhcmVJdGVtcyhcbiAgICBkZXZpY2U6IElNYW5hZ2VkT2JqZWN0LFxuICAgIHNlbGVjdGVkUHJvZmlsZTogUGFydGlhbDxEZXZpY2VQcm9maWxlPlxuICApOiBDb21wYXJpc29uUmVzdWx0W10ge1xuICAgIGNvbnN0IGRldmljZUZpcm13YXJlID0gZGV2aWNlLmM4eV9GaXJtd2FyZTtcbiAgICBjb25zdCBwcm9maWxlRmlybXdhcmUgPSBnZXQoc2VsZWN0ZWRQcm9maWxlLCAnYzh5X0RldmljZVByb2ZpbGUuZmlybXdhcmUnKTtcbiAgICBjb25zdCBkZXZpY2VJdGVtcyA9IFtdO1xuICAgIGNvbnN0IHByb2ZpbGVJdGVtcyA9IFtdO1xuXG4gICAgaWYgKGRldmljZUZpcm13YXJlKSB7XG4gICAgICBkZXZpY2VJdGVtcy5wdXNoKGRldmljZUZpcm13YXJlKTtcbiAgICB9XG4gICAgaWYgKHByb2ZpbGVGaXJtd2FyZSkge1xuICAgICAgcHJvZmlsZUl0ZW1zLnB1c2gocHJvZmlsZUZpcm13YXJlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUHJvZmlsZUNvbXBhcmlzb24oXG4gICAgICBkZXZpY2VJdGVtcyxcbiAgICAgIHByb2ZpbGVJdGVtcyxcbiAgICAgICduYW1lJyxcbiAgICAgICd2ZXJzaW9uJyxcbiAgICAgIHRoaXMuZ2V0QWxlcnQoJ2Zpcm13YXJlJylcbiAgICApO1xuICB9XG5cbiAgZ2V0U29mdHdhcmVJdGVtcyhcbiAgICBkZXZpY2U6IElNYW5hZ2VkT2JqZWN0LFxuICAgIHNlbGVjdGVkUHJvZmlsZTogUGFydGlhbDxEZXZpY2VQcm9maWxlPlxuICApOiBDb21wYXJpc29uUmVzdWx0W10ge1xuICAgIGNvbnN0IGRldmljZVNvZnR3YXJlID0gZGV2aWNlLmM4eV9Tb2Z0d2FyZUxpc3Q7XG4gICAgY29uc3QgcHJvZmlsZVNvZnR3YXJlID0gZ2V0KHNlbGVjdGVkUHJvZmlsZSwgJ2M4eV9EZXZpY2VQcm9maWxlLnNvZnR3YXJlJyk7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUHJvZmlsZUNvbXBhcmlzb24oXG4gICAgICBkZXZpY2VTb2Z0d2FyZSxcbiAgICAgIHByb2ZpbGVTb2Z0d2FyZSxcbiAgICAgICduYW1lJyxcbiAgICAgICd2ZXJzaW9uJyxcbiAgICAgIHRoaXMuZ2V0QWxlcnQoJ3NvZnR3YXJlJylcbiAgICApO1xuICB9XG5cbiAgZ2V0Q29uZmlndXJhdGlvbkl0ZW1zKFxuICAgIGRldmljZTogSU1hbmFnZWRPYmplY3QsXG4gICAgc2VsZWN0ZWRQcm9maWxlOiBQYXJ0aWFsPERldmljZVByb2ZpbGU+XG4gICk6IENvbXBhcmlzb25SZXN1bHRbXSB7XG4gICAgY29uc3QgZGV2aWNlQ29uZmlndXJhdGlvbiA9IFtdO1xuICAgIE9iamVjdC5rZXlzKGRldmljZSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKGtleS5zbGljZSgwLCAxOCkgPT09ICdjOHlfQ29uZmlndXJhdGlvbl8nKSB7XG4gICAgICAgIGRldmljZUNvbmZpZ3VyYXRpb24ucHVzaChkZXZpY2Vba2V5XSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcHJvZmlsZUNvbmZpZ3VyYXRpb24gPSBnZXQoc2VsZWN0ZWRQcm9maWxlLCAnYzh5X0RldmljZVByb2ZpbGUuY29uZmlndXJhdGlvbicpO1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVByb2ZpbGVDb21wYXJpc29uKFxuICAgICAgZGV2aWNlQ29uZmlndXJhdGlvbixcbiAgICAgIHByb2ZpbGVDb25maWd1cmF0aW9uLFxuICAgICAgJ3VybCcsXG4gICAgICAndHlwZScsXG4gICAgICB0aGlzLmdldEFsZXJ0KCdjb25maWd1cmF0aW9uJylcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBbGVydChpdGVtVHlwZTogc3RyaW5nKTogKGNvbXBhcmlzaW9uUmVzdWx0OiBDb21wYXJpc29uUmVzdWx0KSA9PiBzdHJpbmcge1xuICAgIGNvbnN0IG5vdEluc3RhbGxlZCA9IChjb21wYXJpc2lvblJlc3VsdDogQ29tcGFyaXNvblJlc3VsdCkgPT4ge1xuICAgICAgcmV0dXJuICFjb21wYXJpc2lvblJlc3VsdC5kZXZpY2UgPyB0aGlzLk5PVF9JTlNUQUxMRURfV0FSTklORyA6ICcnO1xuICAgIH07XG5cbiAgICBzd2l0Y2ggKGl0ZW1UeXBlKSB7XG4gICAgICBjYXNlICdmaXJtd2FyZSc6XG4gICAgICBjYXNlICdzb2Z0d2FyZSc6XG4gICAgICAgIHJldHVybiAoY29tcGFyaXNpb25SZXN1bHQ6IENvbXBhcmlzb25SZXN1bHQpID0+IHtcbiAgICAgICAgICByZXR1cm4gY29tcGFyaXNpb25SZXN1bHQuZGV2aWNlICYmXG4gICAgICAgICAgICBjb21wYXJpc2lvblJlc3VsdC5wcm9maWxlICYmXG4gICAgICAgICAgICBjb21wYXJpc2lvblJlc3VsdC5kZXZpY2UuaXRlbURldGFpbHMgIT09IGNvbXBhcmlzaW9uUmVzdWx0LnByb2ZpbGUuaXRlbURldGFpbHNcbiAgICAgICAgICAgID8gdGhpcy5WRVJTSU9OX01JU1NNQVRDSF9XQVJOSU5HXG4gICAgICAgICAgICA6IG5vdEluc3RhbGxlZChjb21wYXJpc2lvblJlc3VsdCk7XG4gICAgICAgIH07XG4gICAgICBjYXNlICdjb25maWd1cmF0aW9uJzpcbiAgICAgICAgcmV0dXJuIChjb21wYXJpc2lvblJlc3VsdDogQ29tcGFyaXNvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJldHVybiBjb21wYXJpc2lvblJlc3VsdC5kZXZpY2UgJiZcbiAgICAgICAgICAgIGNvbXBhcmlzaW9uUmVzdWx0LnByb2ZpbGUgJiZcbiAgICAgICAgICAgIChjb21wYXJpc2lvblJlc3VsdC5kZXZpY2UuaXRlbU5hbWUgIT09IGNvbXBhcmlzaW9uUmVzdWx0LnByb2ZpbGUuaXRlbU5hbWUgfHxcbiAgICAgICAgICAgICAgY29tcGFyaXNpb25SZXN1bHQuZGV2aWNlLml0ZW1EZXRhaWxzICE9PSBjb21wYXJpc2lvblJlc3VsdC5wcm9maWxlLml0ZW1EZXRhaWxzKVxuICAgICAgICAgICAgPyB0aGlzLlNBTUVfVVJMX1dBUk5JTkdcbiAgICAgICAgICAgIDogbm90SW5zdGFsbGVkKGNvbXBhcmlzaW9uUmVzdWx0KTtcbiAgICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBub3RJbnN0YWxsZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQcm9maWxlQ29tcGFyaXNvbihcbiAgICBkZXZpY2VJdGVtczogYW55W10gPSBbXSxcbiAgICBwcm9maWxlSXRlbXM6IEFycmF5PERldmljZVByb2ZpbGVTb2Z0d2FyZSB8IERldmljZVByb2ZpbGVGaXJtd2FyZT4gPSBbXSxcbiAgICBtZXJnZUJ5UHJvcGVydHk6IHN0cmluZyxcbiAgICBwcm9wZXJ0eU5hbWVXaXRoRGV0YWlsczogc3RyaW5nLFxuICAgIGdldEFsZXJ0OiAoY29tcGFyaXNpb25SZXN1bHQ6IENvbXBhcmlzb25SZXN1bHQpID0+IHN0cmluZ1xuICApOiBDb21wYXJpc29uUmVzdWx0W10ge1xuICAgIGNvbnN0IGNvbXBhcmlzb25PYmogPSB0aGlzLmNyZWF0ZVByb2ZpbGVDb21wYXJpc29uRnJvbURldmljZUl0ZW1zKFxuICAgICAgZGV2aWNlSXRlbXMsXG4gICAgICBtZXJnZUJ5UHJvcGVydHksXG4gICAgICBwcm9wZXJ0eU5hbWVXaXRoRGV0YWlsc1xuICAgICk7XG4gICAgY29uc3QgZXh0ZW5kZWRDb21wYXJpc29uT2JqID0gdGhpcy5leHRlbmRQcm9maWxlQ29tcGFyaXNvbldpdGhQcm9maWxlSXRlbXMoXG4gICAgICBjb21wYXJpc29uT2JqLFxuICAgICAgcHJvZmlsZUl0ZW1zLFxuICAgICAgbWVyZ2VCeVByb3BlcnR5LFxuICAgICAgcHJvcGVydHlOYW1lV2l0aERldGFpbHMsXG4gICAgICBnZXRBbGVydFxuICAgICk7XG4gICAgcmV0dXJuIHNvcnRCeSh0b0FycmF5KGV4dGVuZGVkQ29tcGFyaXNvbk9iaiksICduYW1lJyk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVByb2ZpbGVDb21wYXJpc29uRnJvbURldmljZUl0ZW1zKFxuICAgIGRldmljZUl0ZW1zOiBhbnlbXSxcbiAgICBtZXJnZUJ5UHJvcGVydHk6IHN0cmluZyxcbiAgICBwcm9wZXJ0eU5hbWVXaXRoRGV0YWlsczogc3RyaW5nXG4gICk6IGFueSB7XG4gICAgcmV0dXJuIGRldmljZUl0ZW1zLnJlZHVjZShcbiAgICAgIChjb21hcHJpdGlvbkl0ZW0sIGRldmljZUl0ZW0pID0+XG4gICAgICAgIE9iamVjdC5hc3NpZ24oY29tYXByaXRpb25JdGVtLCB7XG4gICAgICAgICAgW2RldmljZUl0ZW1bbWVyZ2VCeVByb3BlcnR5XV06IHtcbiAgICAgICAgICAgIGRldmljZToge1xuICAgICAgICAgICAgICBpdGVtTmFtZTogZGV2aWNlSXRlbS5uYW1lLFxuICAgICAgICAgICAgICBpdGVtRGV0YWlsczogZGV2aWNlSXRlbVtwcm9wZXJ0eU5hbWVXaXRoRGV0YWlsc10sXG4gICAgICAgICAgICAgIGl0ZW1Vcmw6IGRldmljZUl0ZW0udXJsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJvZmlsZTogdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgIHt9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0ZW5kUHJvZmlsZUNvbXBhcmlzb25XaXRoUHJvZmlsZUl0ZW1zKFxuICAgIGNvbXBhcmlzb25PYmo6IG9iamVjdCxcbiAgICBwcm9maWxlSXRlbXM6IEFycmF5PERldmljZVByb2ZpbGVTb2Z0d2FyZSB8IERldmljZVByb2ZpbGVGaXJtd2FyZT4sXG4gICAgbWVyZ2VCeVByb3BlcnR5OiBzdHJpbmcsXG4gICAgcHJvcGVydHlOYW1lV2l0aERldGFpbHM6IHN0cmluZyxcbiAgICBnZXRBbGVydDogKGNvbXBhcmlzaW9uUmVzdWx0OiBDb21wYXJpc29uUmVzdWx0KSA9PiBzdHJpbmdcbiAgKSB7XG4gICAgcHJvZmlsZUl0ZW1zLmZvckVhY2gocHJvZmlsZUl0ZW0gPT4ge1xuICAgICAgY29uc3QgY29tcGFyaXNpb25SZXN1bHQ6IENvbXBhcmlzb25SZXN1bHQgPSB7XG4gICAgICAgIHByb2ZpbGU6IHtcbiAgICAgICAgICBpdGVtTmFtZTogcHJvZmlsZUl0ZW0ubmFtZSxcbiAgICAgICAgICBpdGVtRGV0YWlsczogcHJvZmlsZUl0ZW1bcHJvcGVydHlOYW1lV2l0aERldGFpbHNdLFxuICAgICAgICAgIGl0ZW1Vcmw6IHByb2ZpbGVJdGVtLnVybFxuICAgICAgICB9LFxuICAgICAgICBkZXZpY2U6IGNvbXBhcmlzb25PYmpbcHJvZmlsZUl0ZW1bbWVyZ2VCeVByb3BlcnR5XV1cbiAgICAgICAgICA/IGNvbXBhcmlzb25PYmpbcHJvZmlsZUl0ZW1bbWVyZ2VCeVByb3BlcnR5XV0uZGV2aWNlXG4gICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgIH07XG4gICAgICBjb21wYXJpc2lvblJlc3VsdC5jb21wYXJpc29uQWxlcnQgPSBnZXRBbGVydChjb21wYXJpc2lvblJlc3VsdCk7XG4gICAgICBjb21wYXJpc29uT2JqW3Byb2ZpbGVJdGVtW21lcmdlQnlQcm9wZXJ0eV1dID0gY29tcGFyaXNpb25SZXN1bHQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvbXBhcmlzb25PYmo7XG4gIH1cbn1cbiJdfQ==
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXByb2ZpbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2RldmljZS1wcm9maWxlL2RldmljZS1wcm9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBRUwsZ0JBQWdCLEVBR2hCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsV0FBVyxFQUNaLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7QUFTaEUsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQixZQUNVLGdCQUFrQyxFQUNsQyxnQkFBa0MsRUFDbEMsWUFBMEI7UUFGMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBYjNCLGFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixXQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO1FBR2pFLDBCQUFxQixHQUFHLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQy9ELDhCQUF5QixHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3hELHFCQUFnQixHQUFHLE9BQU8sQ0FDaEMsaUdBQWlHLENBQ2xHLENBQUM7UUFPQSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELG1CQUFtQixDQUFD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QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSU1hbmFnZWRPYmplY3QsXG4gIEludmVudG9yeVNlcnZpY2UsXG4gIElPcGVyYXRpb24sXG4gIElSZXN1bHRMaXN0LFxuICBPcGVyYXRpb25TZXJ2aWNlLFxuICBPcGVyYXRpb25TdGF0dXMsXG4gIFF1ZXJpZXNVdGlsXG59IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgZ2V0LCBpc05pbCwgb21pdEJ5LCBzb3J0QnksIHRvQXJyYXkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgQ29tcGFyaXNvblJlc3VsdCxcbiAgRGV2aWNlUHJvZmlsZSxcbiAgRGV2aWNlUHJvZmlsZUZpcm13YXJlLFxuICBEZXZpY2VQcm9maWxlU29mdHdhcmVcbn0gZnJvbSAnLi9kZXZpY2UtcHJvZmlsZS5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEZXZpY2VQcm9maWxlU2VydmljZSB7XG4gIHJlYWRvbmx5IGRhdGVGcm9tID0gbmV3IERhdGUoMCk7XG4gIHJlYWRvbmx5IGRhdGVUbyA9IG5ldyBEYXRlKERhdGUubm93KCkgKyA4NjQwMDAwMCk7IC8vIDEgZGF5IGluIHRoZSBmdXR1cmVcbiAgcHJpdmF0ZSBxdWVyaWVzVXRpbDogUXVlcmllc1V0aWw7XG5cbiAgcHJpdmF0ZSBOT1RfSU5TVEFMTEVEX1dBUk5JTkcgPSBnZXR0ZXh0KCdOb3QgaW5zdGFsbGVkIG9uIHRoZSBkZXZpY2UnKTtcbiAgcHJpdmF0ZSBWRVJTSU9OX01JU1NNQVRDSF9XQVJOSU5HID0gZ2V0dGV4dCgnVmVyc2lvbiBtaXNtYXRjaCcpO1xuICBwcml2YXRlIFNBTUVfVVJMX1dBUk5JTkcgPSBnZXR0ZXh0KFxuICAgICdJbnN0YWxsZWQgY29uZmlndXJhdGlvbiBoYXMgdGhlIHNhbWUgVVJMIGJ1dCBkaWZmZXJlbnQgbmFtZSBvciB0eXBlIHRoYW4gdGhlIG9uZSBpbiB0aGUgcHJvZmlsZSdcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGludmVudG9yeVNlcnZpY2U6IEludmVudG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvcGVyYXRpb25TZXJ2aWNlOiBPcGVyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5xdWVyaWVzVXRpbCA9IG5ldyBRdWVyaWVzVXRpbCgpO1xuICB9XG5cbiAgY3JlYXRlRGV2aWNlUHJvZmlsZShkZXZpY2VQcm9maWxlOiBQYXJ0aWFsPERldmljZVByb2ZpbGU+KSB7XG4gICAgaWYgKGdldChkZXZpY2VQcm9maWxlLCAnYzh5X0ZpbHRlci50eXBlJykgPT09ICcnKSB7XG4gICAgICBkZWxldGUgZGV2aWNlUHJvZmlsZS5jOHlfRmlsdGVyLnR5cGU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmludmVudG9yeVNlcnZpY2UuY3JlYXRlKGRldmljZVByb2ZpbGUgYXMgSU1hbmFnZWRPYmplY3QpO1xuICB9XG5cbiAgZ2V0RGV2aWNlUHJvZmlsZXNCeURldmljZVR5cGUoZGV2aWNlVHlwZTogc3RyaW5nKTogUHJvbWlzZTxJUmVzdWx0TGlzdDxJTWFuYWdlZE9iamVjdD4+IHtcbiAgICBjb25zdCBkZXZpY2VUeXBlRmlsdGVyID0ge1xuICAgICAgX19vcjogW1xuICAgICAgICB7ICdjOHlfRmlsdGVyLnR5cGUnOiBkZXZpY2VUeXBlIH0sXG4gICAgICAgIHsgJ2M4eV9GaWx0ZXIudHlwZSc6ICcnIH0sXG4gICAgICAgIHsgX19ub3Q6IHsgX19oYXM6ICdjOHlfRmlsdGVyLnR5cGUnIH0gfVxuICAgICAgXVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGV2aWNlUHJvZmlsZXMoZGV2aWNlVHlwZUZpbHRlcik7XG4gIH1cblxuICBnZXREZXZpY2VQcm9maWxlcyhhbmRRdWVyeT86IGFueSk6IFByb21pc2U8SVJlc3VsdExpc3Q8SU1hbmFnZWRPYmplY3Q+PiB7XG4gICAgbGV0IHF1ZXJ5OiBvYmplY3QgPSB7XG4gICAgICB0eXBlOiAnYzh5X1Byb2ZpbGUnXG4gICAgfTtcbiAgICBjb25zdCBmaWx0ZXI6IG9iamVjdCA9IHtcbiAgICAgIHBhZ2VTaXplOiAxMDAsXG4gICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZVxuICAgIH07XG4gICAgcXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmFkZEFuZEZpbHRlcihxdWVyeSwgYW5kUXVlcnkgfHwge30pO1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeVNlcnZpY2UubGlzdFF1ZXJ5KHF1ZXJ5LCBmaWx0ZXIpO1xuICB9XG5cbiAgYXN5bmMgZ2V0UHJvZmlsZU9wZXJhdGlvbihkZXZpY2VJZDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgY29uc3QgZmlsdGVyOiBvYmplY3QgPSB7XG4gICAgICBkZXZpY2VJZCxcbiAgICAgIGZyYWdtZW50VHlwZTogJ2M4eV9EZXZpY2VQcm9maWxlJyxcbiAgICAgIGRhdGVGcm9tOiB0aGlzLmRhdGVGcm9tLnRvSVNPU3RyaW5nKCksXG4gICAgICBkYXRlVG86IHRoaXMuZGF0ZVRvLnRvSVNPU3RyaW5nKCksXG4gICAgICByZXZlcnQ6IHRydWUsXG4gICAgICBwYWdlU2l6ZTogMVxuICAgIH07XG5cbiAgICBjb25zdCBvcGVyYXRpb24gPSAoYXdhaXQgdGhpcy5vcGVyYXRpb25TZXJ2aWNlLmxpc3QoZmlsdGVyKSkuZGF0YVswXTtcbiAgICByZXR1cm4gb3BlcmF0aW9uICYmIG9wZXJhdGlvbi5zdGF0dXMgIT09IE9wZXJhdGlvblN0YXR1cy5TVUNDRVNTRlVMID8gb3BlcmF0aW9uIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUHJvZmlsZU9wZXJhdGlvbihkZXZpY2U6IElNYW5hZ2VkT2JqZWN0LCBkZXZpY2VQcm9maWxlOiBQYXJ0aWFsPERldmljZVByb2ZpbGU+KSB7XG4gICAgbGV0IG9wZXJhdGlvbjtcbiAgICBjb25zdCBvcGVyYXRpb25DZmc6IElPcGVyYXRpb24gPSB7XG4gICAgICBkZXZpY2VJZDogZGV2aWNlLmlkLFxuICAgICAgcHJvZmlsZUlkOiBkZXZpY2VQcm9maWxlLmlkLFxuICAgICAgcHJvZmlsZU5hbWU6IGRldmljZVByb2ZpbGUubmFtZSxcbiAgICAgIGM4eV9EZXZpY2VQcm9maWxlOiBkZXZpY2VQcm9maWxlLmM4eV9EZXZpY2VQcm9maWxlLFxuICAgICAgZGVzY3JpcHRpb246IGBBc3NpZ24gZGV2aWNlIHByb2ZpbGUgJHtkZXZpY2VQcm9maWxlLm5hbWV9IHRvIGRldmljZSAke2RldmljZS5uYW1lfWBcbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMub3BlcmF0aW9uU2VydmljZS5jcmVhdGUob3BlcmF0aW9uQ2ZnKTtcbiAgICAgIG9wZXJhdGlvbiA9IGRhdGE7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgIH1cbiAgICByZXR1cm4gb3BlcmF0aW9uO1xuICB9XG5cbiAgZ2V0RmlybXdhcmVJdGVtcyhcbiAgICBkZXZpY2U6IElNYW5hZ2VkT2JqZWN0LFxuICAgIHNlbGVjdGVkUHJvZmlsZTogUGFydGlhbDxEZXZpY2VQcm9maWxlPlxuICApOiBDb21wYXJpc29uUmVzdWx0W10ge1xuICAgIGNvbnN0IGRldmljZUZpcm13YXJlID0gZGV2aWNlLmM4eV9GaXJtd2FyZTtcbiAgICBjb25zdCBwcm9maWxlRmlybXdhcmUgPSBnZXQoc2VsZWN0ZWRQcm9maWxlLCAnYzh5X0RldmljZVByb2ZpbGUuZmlybXdhcmUnKTtcbiAgICBjb25zdCBkZXZpY2VJdGVtcyA9IFtdO1xuICAgIGNvbnN0IHByb2ZpbGVJdGVtcyA9IFtdO1xuXG4gICAgaWYgKGRldmljZUZpcm13YXJlKSB7XG4gICAgICBkZXZpY2VJdGVtcy5wdXNoKGRldmljZUZpcm13YXJlKTtcbiAgICB9XG4gICAgaWYgKHByb2ZpbGVGaXJtd2FyZSkge1xuICAgICAgcHJvZmlsZUl0ZW1zLnB1c2gocHJvZmlsZUZpcm13YXJlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUHJvZmlsZUNvbXBhcmlzb24oXG4gICAgICBkZXZpY2VJdGVtcyxcbiAgICAgIHByb2ZpbGVJdGVtcyxcbiAgICAgICduYW1lJyxcbiAgICAgICd2ZXJzaW9uJyxcbiAgICAgIG51bGwsXG4gICAgICB0aGlzLmdldEFsZXJ0KCdmaXJtd2FyZScpXG4gICAgKTtcbiAgfVxuXG4gIGdldFNvZnR3YXJlSXRlbXMoXG4gICAgZGV2aWNlOiBJTWFuYWdlZE9iamVjdCxcbiAgICBzZWxlY3RlZFByb2ZpbGU6IFBhcnRpYWw8RGV2aWNlUHJvZmlsZT5cbiAgKTogQ29tcGFyaXNvblJlc3VsdFtdIHtcbiAgICBjb25zdCBkZXZpY2VTb2Z0d2FyZSA9IGRldmljZS5jOHlfU29mdHdhcmVMaXN0O1xuICAgIGNvbnN0IHByb2ZpbGVTb2Z0d2FyZSA9IGdldChzZWxlY3RlZFByb2ZpbGUsICdjOHlfRGV2aWNlUHJvZmlsZS5zb2Z0d2FyZScpO1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVByb2ZpbGVDb21wYXJpc29uKFxuICAgICAgZGV2aWNlU29mdHdhcmUsXG4gICAgICBwcm9maWxlU29mdHdhcmUsXG4gICAgICAnbmFtZScsXG4gICAgICAndmVyc2lvbicsXG4gICAgICAnc29mdHdhcmVUeXBlJyxcbiAgICAgIHRoaXMuZ2V0QWxlcnQoJ3NvZnR3YXJlJylcbiAgICApO1xuICB9XG5cbiAgZ2V0Q29uZmlndXJhdGlvbkl0ZW1zKFxuICAgIGRldmljZTogSU1hbmFnZWRPYmplY3QsXG4gICAgc2VsZWN0ZWRQcm9maWxlOiBQYXJ0aWFsPERldmljZVByb2ZpbGU+XG4gICk6IENvbXBhcmlzb25SZXN1bHRbXSB7XG4gICAgY29uc3QgZGV2aWNlQ29uZmlndXJhdGlvbiA9IFtdO1xuICAgIE9iamVjdC5rZXlzKGRldmljZSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKGtleS5zbGljZSgwLCAxOCkgPT09ICdjOHlfQ29uZmlndXJhdGlvbl8nKSB7XG4gICAgICAgIGRldmljZUNvbmZpZ3VyYXRpb24ucHVzaChkZXZpY2Vba2V5XSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcHJvZmlsZUNvbmZpZ3VyYXRpb24gPSBnZXQoc2VsZWN0ZWRQcm9maWxlLCAnYzh5X0RldmljZVByb2ZpbGUuY29uZmlndXJhdGlvbicpO1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVByb2ZpbGVDb21wYXJpc29uKFxuICAgICAgZGV2aWNlQ29uZmlndXJhdGlvbixcbiAgICAgIHByb2ZpbGVDb25maWd1cmF0aW9uLFxuICAgICAgJ3VybCcsXG4gICAgICBudWxsLFxuICAgICAgJ3R5cGUnLFxuICAgICAgdGhpcy5nZXRBbGVydCgnY29uZmlndXJhdGlvbicpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWxlcnQoaXRlbVR5cGU6IHN0cmluZyk6IChjb21wYXJpc2lvblJlc3VsdDogQ29tcGFyaXNvblJlc3VsdCkgPT4gc3RyaW5nIHtcbiAgICBjb25zdCBub3RJbnN0YWxsZWQgPSAoY29tcGFyaXNpb25SZXN1bHQ6IENvbXBhcmlzb25SZXN1bHQpID0+IHtcbiAgICAgIHJldHVybiAhY29tcGFyaXNpb25SZXN1bHQuZGV2aWNlID8gdGhpcy5OT1RfSU5TVEFMTEVEX1dBUk5JTkcgOiAnJztcbiAgICB9O1xuXG4gICAgc3dpdGNoIChpdGVtVHlwZSkge1xuICAgICAgY2FzZSAnZmlybXdhcmUnOlxuICAgICAgY2FzZSAnc29mdHdhcmUnOlxuICAgICAgICByZXR1cm4gKGNvbXBhcmlzaW9uUmVzdWx0OiBDb21wYXJpc29uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNvbXBhcmlzaW9uUmVzdWx0LmRldmljZSAmJlxuICAgICAgICAgICAgY29tcGFyaXNpb25SZXN1bHQucHJvZmlsZSAmJlxuICAgICAgICAgICAgY29tcGFyaXNpb25SZXN1bHQuZGV2aWNlLml0ZW1EZXRhaWxzICE9PSBjb21wYXJpc2lvblJlc3VsdC5wcm9maWxlLml0ZW1EZXRhaWxzXG4gICAgICAgICAgICA/IHRoaXMuVkVSU0lPTl9NSVNTTUFUQ0hfV0FSTklOR1xuICAgICAgICAgICAgOiBub3RJbnN0YWxsZWQoY29tcGFyaXNpb25SZXN1bHQpO1xuICAgICAgICB9O1xuICAgICAgY2FzZSAnY29uZmlndXJhdGlvbic6XG4gICAgICAgIHJldHVybiAoY29tcGFyaXNpb25SZXN1bHQ6IENvbXBhcmlzb25SZXN1bHQpID0+IHtcbiAgICAgICAgICByZXR1cm4gY29tcGFyaXNpb25SZXN1bHQuZGV2aWNlICYmXG4gICAgICAgICAgICBjb21wYXJpc2lvblJlc3VsdC5wcm9maWxlICYmXG4gICAgICAgICAgICAoY29tcGFyaXNpb25SZXN1bHQuZGV2aWNlLml0ZW1OYW1lICE9PSBjb21wYXJpc2lvblJlc3VsdC5wcm9maWxlLml0ZW1OYW1lIHx8XG4gICAgICAgICAgICAgIGNvbXBhcmlzaW9uUmVzdWx0LmRldmljZS5pdGVtRGV0YWlscyAhPT0gY29tcGFyaXNpb25SZXN1bHQucHJvZmlsZS5pdGVtRGV0YWlscylcbiAgICAgICAgICAgID8gdGhpcy5TQU1FX1VSTF9XQVJOSU5HXG4gICAgICAgICAgICA6IG5vdEluc3RhbGxlZChjb21wYXJpc2lvblJlc3VsdCk7XG4gICAgICAgIH07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbm90SW5zdGFsbGVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHJvZmlsZUNvbXBhcmlzb24oXG4gICAgZGV2aWNlSXRlbXM6IGFueVtdID0gW10sXG4gICAgcHJvZmlsZUl0ZW1zOiBBcnJheTxEZXZpY2VQcm9maWxlU29mdHdhcmUgfCBEZXZpY2VQcm9maWxlRmlybXdhcmU+ID0gW10sXG4gICAgbWVyZ2VCeVByb3BlcnR5OiBzdHJpbmcsXG4gICAgcHJvcGVydHlOYW1lV2l0aERldGFpbHM6IHN0cmluZyxcbiAgICBwcm9wZXJ0eU5hbWVXaXRoVHlwZTogc3RyaW5nLFxuICAgIGdldEFsZXJ0OiAoY29tcGFyaXNpb25SZXN1bHQ6IENvbXBhcmlzb25SZXN1bHQpID0+IHN0cmluZ1xuICApOiBDb21wYXJpc29uUmVzdWx0W10ge1xuICAgIGNvbnN0IGNvbXBhcmlzb25PYmogPSB0aGlzLmNyZWF0ZVByb2ZpbGVDb21wYXJpc29uRnJvbURldmljZUl0ZW1zKFxuICAgICAgZGV2aWNlSXRlbXMsXG4gICAgICBtZXJnZUJ5UHJvcGVydHksXG4gICAgICBwcm9wZXJ0eU5hbWVXaXRoRGV0YWlscyxcbiAgICAgIHByb3BlcnR5TmFtZVdpdGhUeXBlXG4gICAgKTtcbiAgICBjb25zdCBleHRlbmRlZENvbXBhcmlzb25PYmogPSB0aGlzLmV4dGVuZFByb2ZpbGVDb21wYXJpc29uV2l0aFByb2ZpbGVJdGVtcyhcbiAgICAgIGNvbXBhcmlzb25PYmosXG4gICAgICBwcm9maWxlSXRlbXMsXG4gICAgICBtZXJnZUJ5UHJvcGVydHksXG4gICAgICBwcm9wZXJ0eU5hbWVXaXRoRGV0YWlscyxcbiAgICAgIHByb3BlcnR5TmFtZVdpdGhUeXBlLFxuICAgICAgZ2V0QWxlcnRcbiAgICApO1xuICAgIHJldHVybiBzb3J0QnkodG9BcnJheShleHRlbmRlZENvbXBhcmlzb25PYmopLCAnbmFtZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQcm9maWxlQ29tcGFyaXNvbkZyb21EZXZpY2VJdGVtcyhcbiAgICBkZXZpY2VJdGVtczogYW55W10sXG4gICAgbWVyZ2VCeVByb3BlcnR5OiBzdHJpbmcsXG4gICAgcHJvcGVydHlOYW1lV2l0aERldGFpbHM6IHN0cmluZyxcbiAgICBwcm9wZXJ0eU5hbWVXaXRoVHlwZTogc3RyaW5nXG4gICk6IGFueSB7XG4gICAgcmV0dXJuIGRldmljZUl0ZW1zLnJlZHVjZShcbiAgICAgIChjb21hcHJpdGlvbkl0ZW0sIGRldmljZUl0ZW0pID0+XG4gICAgICAgIE9iamVjdC5hc3NpZ24oY29tYXByaXRpb25JdGVtLCB7XG4gICAgICAgICAgW2RldmljZUl0ZW1bbWVyZ2VCeVByb3BlcnR5XV06IHtcbiAgICAgICAgICAgIGRldmljZTogb21pdEJ5KFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaXRlbU5hbWU6IGRldmljZUl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICBpdGVtRGV0YWlsczogZGV2aWNlSXRlbVtwcm9wZXJ0eU5hbWVXaXRoRGV0YWlsc10sXG4gICAgICAgICAgICAgICAgaXRlbVR5cGU6IGRldmljZUl0ZW1bcHJvcGVydHlOYW1lV2l0aFR5cGVdLFxuICAgICAgICAgICAgICAgIGl0ZW1Vcmw6IGRldmljZUl0ZW0udXJsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGlzTmlsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgcHJvZmlsZTogdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgIHt9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0ZW5kUHJvZmlsZUNvbXBhcmlzb25XaXRoUHJvZmlsZUl0ZW1zKFxuICAgIGNvbXBhcmlzb25PYmo6IG9iamVjdCxcbiAgICBwcm9maWxlSXRlbXM6IEFycmF5PERldmljZVByb2ZpbGVTb2Z0d2FyZSB8IERldmljZVByb2ZpbGVGaXJtd2FyZT4sXG4gICAgbWVyZ2VCeVByb3BlcnR5OiBzdHJpbmcsXG4gICAgcHJvcGVydHlOYW1lV2l0aERldGFpbHM6IHN0cmluZyxcbiAgICBwcm9wZXJ0eU5hbWVXaXRoVHlwZTogc3RyaW5nLFxuICAgIGdldEFsZXJ0OiAoY29tcGFyaXNpb25SZXN1bHQ6IENvbXBhcmlzb25SZXN1bHQpID0+IHN0cmluZ1xuICApIHtcbiAgICBwcm9maWxlSXRlbXMuZm9yRWFjaChwcm9maWxlSXRlbSA9PiB7XG4gICAgICBjb25zdCBjb21wYXJpc2lvblJlc3VsdDogQ29tcGFyaXNvblJlc3VsdCA9IHtcbiAgICAgICAgcHJvZmlsZTogb21pdEJ5KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGl0ZW1OYW1lOiBwcm9maWxlSXRlbS5uYW1lLFxuICAgICAgICAgICAgaXRlbURldGFpbHM6IHByb2ZpbGVJdGVtW3Byb3BlcnR5TmFtZVdpdGhEZXRhaWxzXSxcbiAgICAgICAgICAgIGl0ZW1UeXBlOiBwcm9maWxlSXRlbVtwcm9wZXJ0eU5hbWVXaXRoVHlwZV0sXG4gICAgICAgICAgICBpdGVtVXJsOiBwcm9maWxlSXRlbS51cmxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlzTmlsXG4gICAgICAgICksXG4gICAgICAgIGRldmljZTogY29tcGFyaXNvbk9ialtwcm9maWxlSXRlbVttZXJnZUJ5UHJvcGVydHldXVxuICAgICAgICAgID8gY29tcGFyaXNvbk9ialtwcm9maWxlSXRlbVttZXJnZUJ5UHJvcGVydHldXS5kZXZpY2VcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgfTtcbiAgICAgIGNvbXBhcmlzaW9uUmVzdWx0LmNvbXBhcmlzb25BbGVydCA9IGdldEFsZXJ0KGNvbXBhcmlzaW9uUmVzdWx0KTtcbiAgICAgIGNvbXBhcmlzb25PYmpbcHJvZmlsZUl0ZW1bbWVyZ2VCeVByb3BlcnR5XV0gPSBjb21wYXJpc2lvblJlc3VsdDtcbiAgICB9KTtcbiAgICByZXR1cm4gY29tcGFyaXNvbk9iajtcbiAgfVxufVxuIl19
|
|
@@ -4,11 +4,11 @@ import * as i1 from "@c8y/ngx-components";
|
|
|
4
4
|
import * as i2 from "@angular/common";
|
|
5
5
|
export class DeviceProfileItemListComponent {
|
|
6
6
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProfileItemListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DeviceProfileItemListComponent, selector: "c8y-device-profile-item-list", inputs: { icon: "icon", comparisonResults: "comparisonResults", showProfileItems: "showProfileItems", showTextLabel: "showTextLabel" }, ngImport: i0, template: "<div
|
|
7
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DeviceProfileItemListComponent, selector: "c8y-device-profile-item-list", inputs: { icon: "icon", comparisonResults: "comparisonResults", showProfileItems: "showProfileItems", showTextLabel: "showTextLabel" }, ngImport: i0, template: "<div\n class=\"d-contents\"\n *ngFor=\"let comparisonResult of comparisonResults\"\n>\n <div\n class=\"p-l-16 p-r-16\"\n *ngIf=\"showProfileItems\"\n >\n <div class=\"c8y-list__item fit-h\">\n <div\n class=\"c8y-list__item__block\"\n *ngIf=\"comparisonResult.profile\"\n >\n <div class=\"c8y-list__item__icon\">\n <i [c8yIcon]=\"icon\"></i>\n </div>\n <div class=\"c8y-list__item__body\">\n <ng-container\n *ngTemplateOutlet=\"comparisonResultInfo; context: comparisonResult.profile\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n <div class=\"p-l-16 p-r-16 bg-level-1\">\n <div\n class=\"c8y-list__item bg-level-1\"\n [ngClass]=\"{\n 'has-warning': !!comparisonResult.comparisonAlert\n }\"\n >\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i [c8yIcon]=\"icon\"></i>\n </div>\n <div class=\"c8y-list__item__body\">\n <ng-container\n *ngTemplateOutlet=\"\n comparisonResultInfo;\n context: comparisonResult.device ? comparisonResult.device : comparisonResult.profile\n \"\n ></ng-container>\n <c8y-messages\n class=\"m-0\"\n style=\"margin-bottom: calc(var(--margin-base, 8px) * -1)\"\n *ngIf=\"comparisonResult.comparisonAlert\"\n >\n <c8y-message>\n {{ comparisonResult.comparisonAlert | translate }}\n </c8y-message>\n </c8y-messages>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"p-l-16 p-r-16 bg-level-0 hidden-xs hidden-sm\"\n *ngIf=\"!showProfileItems\"\n ></div>\n</div>\n\n<ng-template\n #comparisonResultInfo\n let-name=\"itemName\"\n let-details=\"itemDetails\"\n let-type=\"itemType\"\n>\n <div class=\"content-flex-40\">\n <div class=\"col-5\">\n <span class=\"text-truncate\">\n <span class=\"text-label-small m-r-4\">Name</span>\n <span title=\"{{ name }}\">\n {{ name }}\n </span>\n </span>\n </div>\n <div class=\"col-3\">\n <span\n class=\"text-truncate\"\n *ngIf=\"!!type\"\n >\n <span class=\"text-label-small m-r-4\">Type</span>\n <span title=\"{{ type }}\">\n <span class=\"label label-info m-l-4\">\n {{ type }}\n </span>\n </span>\n </span>\n </div>\n <div class=\"col-4\">\n <span\n class=\"text-truncate\"\n *ngIf=\"showTextLabel && details; else showInfoLabel\"\n >\n <span\n class=\"text-label-small m-r-4\"\n translate\n >\n Version\n </span>\n <span title=\"{{ details }}\">{{ details }}</span>\n </span>\n <ng-template #showInfoLabel>\n <span class=\"label label-info\">{{ details }}</span>\n </ng-template>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: i1.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
|
|
8
8
|
}
|
|
9
9
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProfileItemListComponent, decorators: [{
|
|
10
10
|
type: Component,
|
|
11
|
-
args: [{ selector: 'c8y-device-profile-item-list', template: "<div
|
|
11
|
+
args: [{ selector: 'c8y-device-profile-item-list', template: "<div\n class=\"d-contents\"\n *ngFor=\"let comparisonResult of comparisonResults\"\n>\n <div\n class=\"p-l-16 p-r-16\"\n *ngIf=\"showProfileItems\"\n >\n <div class=\"c8y-list__item fit-h\">\n <div\n class=\"c8y-list__item__block\"\n *ngIf=\"comparisonResult.profile\"\n >\n <div class=\"c8y-list__item__icon\">\n <i [c8yIcon]=\"icon\"></i>\n </div>\n <div class=\"c8y-list__item__body\">\n <ng-container\n *ngTemplateOutlet=\"comparisonResultInfo; context: comparisonResult.profile\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n <div class=\"p-l-16 p-r-16 bg-level-1\">\n <div\n class=\"c8y-list__item bg-level-1\"\n [ngClass]=\"{\n 'has-warning': !!comparisonResult.comparisonAlert\n }\"\n >\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i [c8yIcon]=\"icon\"></i>\n </div>\n <div class=\"c8y-list__item__body\">\n <ng-container\n *ngTemplateOutlet=\"\n comparisonResultInfo;\n context: comparisonResult.device ? comparisonResult.device : comparisonResult.profile\n \"\n ></ng-container>\n <c8y-messages\n class=\"m-0\"\n style=\"margin-bottom: calc(var(--margin-base, 8px) * -1)\"\n *ngIf=\"comparisonResult.comparisonAlert\"\n >\n <c8y-message>\n {{ comparisonResult.comparisonAlert | translate }}\n </c8y-message>\n </c8y-messages>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"p-l-16 p-r-16 bg-level-0 hidden-xs hidden-sm\"\n *ngIf=\"!showProfileItems\"\n ></div>\n</div>\n\n<ng-template\n #comparisonResultInfo\n let-name=\"itemName\"\n let-details=\"itemDetails\"\n let-type=\"itemType\"\n>\n <div class=\"content-flex-40\">\n <div class=\"col-5\">\n <span class=\"text-truncate\">\n <span class=\"text-label-small m-r-4\">Name</span>\n <span title=\"{{ name }}\">\n {{ name }}\n </span>\n </span>\n </div>\n <div class=\"col-3\">\n <span\n class=\"text-truncate\"\n *ngIf=\"!!type\"\n >\n <span class=\"text-label-small m-r-4\">Type</span>\n <span title=\"{{ type }}\">\n <span class=\"label label-info m-l-4\">\n {{ type }}\n </span>\n </span>\n </span>\n </div>\n <div class=\"col-4\">\n <span\n class=\"text-truncate\"\n *ngIf=\"showTextLabel && details; else showInfoLabel\"\n >\n <span\n class=\"text-label-small m-r-4\"\n translate\n >\n Version\n </span>\n <span title=\"{{ details }}\">{{ details }}</span>\n </span>\n <ng-template #showInfoLabel>\n <span class=\"label label-info\">{{ details }}</span>\n </ng-template>\n </div>\n </div>\n</ng-template>\n" }]
|
|
12
12
|
}], propDecorators: { icon: [{
|
|
13
13
|
type: Input
|
|
14
14
|
}], comparisonResults: [{
|
|
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
18
18
|
}], showTextLabel: [{
|
|
19
19
|
type: Input
|
|
20
20
|
}] } });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXByb2ZpbGUtaXRlbS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2RldmljZS1wcm9maWxlL2RldmljZS10YWItcHJvZmlsZS9kZXZpY2UtcHJvZmlsZS1pdGVtLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZGV2aWNlLXByb2ZpbGUvZGV2aWNlLXRhYi1wcm9maWxlL2RldmljZS1wcm9maWxlLWl0ZW0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU9qRCxNQUFNLE9BQU8sOEJBQThCOzhHQUE5Qiw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw0TUNQM0MsMDlGQTRHQTs7MkZEckdhLDhCQUE4QjtrQkFKMUMsU0FBUzsrQkFDRSw4QkFBOEI7OEJBSS9CLElBQUk7c0JBQVosS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wYXJpc29uUmVzdWx0IH0gZnJvbSAnLi4vZGV2aWNlLXByb2ZpbGUubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZGV2aWNlLXByb2ZpbGUtaXRlbS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RldmljZS1wcm9maWxlLWl0ZW0tbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGV2aWNlUHJvZmlsZUl0ZW1MaXN0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuICBASW5wdXQoKSBjb21wYXJpc29uUmVzdWx0czogQ29tcGFyaXNvblJlc3VsdFtdO1xuICBASW5wdXQoKSBzaG93UHJvZmlsZUl0ZW1zOiBib29sZWFuO1xuICBASW5wdXQoKSBzaG93VGV4dExhYmVsOiBib29sZWFuO1xufVxuIiwiPGRpdlxuICBjbGFzcz1cImQtY29udGVudHNcIlxuICAqbmdGb3I9XCJsZXQgY29tcGFyaXNvblJlc3VsdCBvZiBjb21wYXJpc29uUmVzdWx0c1wiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInAtbC0xNiBwLXItMTZcIlxuICAgICpuZ0lmPVwic2hvd1Byb2ZpbGVJdGVtc1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW0gZml0LWhcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjOHktbGlzdF9faXRlbV9fYmxvY2tcIlxuICAgICAgICAqbmdJZj1cImNvbXBhcmlzb25SZXN1bHQucHJvZmlsZVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjOHktbGlzdF9faXRlbV9faWNvblwiPlxuICAgICAgICAgIDxpIFtjOHlJY29uXT1cImljb25cIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2JvZHlcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbXBhcmlzb25SZXN1bHRJbmZvOyBjb250ZXh0OiBjb21wYXJpc29uUmVzdWx0LnByb2ZpbGVcIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJwLWwtMTYgcC1yLTE2IGJnLWxldmVsLTFcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImM4eS1saXN0X19pdGVtIGJnLWxldmVsLTFcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnaGFzLXdhcm5pbmcnOiAhIWNvbXBhcmlzb25SZXN1bHQuY29tcGFyaXNvbkFsZXJ0XG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2Jsb2NrXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjOHktbGlzdF9faXRlbV9faWNvblwiPlxuICAgICAgICAgIDxpIFtjOHlJY29uXT1cImljb25cIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2JvZHlcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICBjb21wYXJpc29uUmVzdWx0SW5mbztcbiAgICAgICAgICAgICAgY29udGV4dDogY29tcGFyaXNvblJlc3VsdC5kZXZpY2UgPyBjb21wYXJpc29uUmVzdWx0LmRldmljZSA6IGNvbXBhcmlzb25SZXN1bHQucHJvZmlsZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPGM4eS1tZXNzYWdlc1xuICAgICAgICAgICAgY2xhc3M9XCJtLTBcIlxuICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLW1hcmdpbi1iYXNlLCA4cHgpICogLTEpXCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29tcGFyaXNvblJlc3VsdC5jb21wYXJpc29uQWxlcnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjOHktbWVzc2FnZT5cbiAgICAgICAgICAgICAge3sgY29tcGFyaXNvblJlc3VsdC5jb21wYXJpc29uQWxlcnQgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYzh5LW1lc3NhZ2U+XG4gICAgICAgICAgPC9jOHktbWVzc2FnZXM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJwLWwtMTYgcC1yLTE2IGJnLWxldmVsLTAgaGlkZGVuLXhzIGhpZGRlbi1zbVwiXG4gICAgKm5nSWY9XCIhc2hvd1Byb2ZpbGVJdGVtc1wiXG4gID48L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGVcbiAgI2NvbXBhcmlzb25SZXN1bHRJbmZvXG4gIGxldC1uYW1lPVwiaXRlbU5hbWVcIlxuICBsZXQtZGV0YWlscz1cIml0ZW1EZXRhaWxzXCJcbiAgbGV0LXR5cGU9XCJpdGVtVHlwZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50LWZsZXgtNDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTVcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGFiZWwtc21hbGwgbS1yLTRcIj5OYW1lPC9zcGFuPlxuICAgICAgICA8c3BhbiB0aXRsZT1cInt7IG5hbWUgfX1cIj5cbiAgICAgICAgICB7eyBuYW1lIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiXG4gICAgICAgICpuZ0lmPVwiISF0eXBlXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWxhYmVsLXNtYWxsIG0tci00XCI+VHlwZTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyB0eXBlIH19XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBsYWJlbC1pbmZvIG0tbC00XCI+XG4gICAgICAgICAgICB7eyB0eXBlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC00XCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgICAqbmdJZj1cInNob3dUZXh0TGFiZWwgJiYgZGV0YWlsczsgZWxzZSBzaG93SW5mb0xhYmVsXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInRleHQtbGFiZWwtc21hbGwgbS1yLTRcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+XG4gICAgICAgICAgVmVyc2lvblxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIHRpdGxlPVwie3sgZGV0YWlscyB9fVwiPnt7IGRldGFpbHMgfX08L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8bmctdGVtcGxhdGUgI3Nob3dJbmZvTGFiZWw+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwgbGFiZWwtaW5mb1wiPnt7IGRldGFpbHMgfX08L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Component, forwardRef } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute } from '@angular/router';
|
|
3
3
|
import { AlertService, gettext, ManagedObjectRealtimeService, OperationRealtimeService, PRODUCT_EXPERIENCE_EVENT_SOURCE } from '@c8y/ngx-components';
|
|
4
|
+
import { has, pickBy } from 'lodash-es';
|
|
4
5
|
import { pipe } from 'rxjs';
|
|
5
6
|
import { filter, map } from 'rxjs/operators';
|
|
6
7
|
import { PRODUCT_EXPERIENCE_DEVICE_PROFILE } from '../device-profile.model';
|
|
@@ -51,7 +52,7 @@ export class DeviceTabProfileComponent {
|
|
|
51
52
|
this.reloading = false;
|
|
52
53
|
}
|
|
53
54
|
selectProfile(mo) {
|
|
54
|
-
this.selectedProfile = mo;
|
|
55
|
+
this.selectedProfile = this.toProfileForDevice(mo);
|
|
55
56
|
this.updateProfileItems(this.device, this.selectedProfile);
|
|
56
57
|
}
|
|
57
58
|
async createOperation() {
|
|
@@ -92,6 +93,21 @@ export class DeviceTabProfileComponent {
|
|
|
92
93
|
this.operation = operation;
|
|
93
94
|
});
|
|
94
95
|
}
|
|
96
|
+
toProfileForDevice(profile) {
|
|
97
|
+
if (Array.from(profile?.c8y_DeviceProfile?.software || []).length === 0 ||
|
|
98
|
+
has(this.device, 'c8y_SupportedSoftwareTypes')) {
|
|
99
|
+
return profile;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
return {
|
|
103
|
+
...profile,
|
|
104
|
+
c8y_DeviceProfile: {
|
|
105
|
+
...profile.c8y_DeviceProfile,
|
|
106
|
+
software: profile.c8y_DeviceProfile.software.map(sw => pickBy(sw, (_, key) => key !== 'softwareType'))
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
}
|
|
95
111
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceTabProfileComponent, deps: [{ token: i1.ManagedObjectRealtimeService }, { token: i2.DeviceProfileService }, { token: i3.ActivatedRoute }, { token: i1.OperationRealtimeService }, { token: i1.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
112
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DeviceTabProfileComponent, selector: "c8y-device-tab-profile", providers: [
|
|
97
113
|
ManagedObjectRealtimeService,
|
|
@@ -99,7 +115,7 @@ export class DeviceTabProfileComponent {
|
|
|
99
115
|
provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,
|
|
100
116
|
useExisting: forwardRef(() => DeviceTabProfileComponent)
|
|
101
117
|
}
|
|
102
|
-
], ngImport: i0, template: "<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"getDeviceProfilesAndUpdateProfileItems()\"\n >\n <i
|
|
118
|
+
], ngImport: i0, template: "<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"getDeviceProfilesAndUpdateProfileItems()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': reloading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'right'\">\n <c8y-realtime-btn [service]=\"deviceRealtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n\n<div class=\"card card--grid--fullpage card--grid--fullpage card--grid grid__row--2-10--md\">\n <div class=\"card--grid grid__col--6-6--md\">\n <!-- AVAILABLE PROFILES -->\n <div class=\"bg-level-0\">\n <div class=\"card-header separator\">\n <div\n class=\"card-title\"\n translate\n >\n Device profile\n </div>\n </div>\n <div class=\"p-16\">\n <form #deviceProfileForm=\"ngForm\">\n <div class=\"input-group\">\n <c8y-typeahead\n class=\"flex-grow\"\n placeholder=\"{{ 'Select device profile' | translate }}\"\n name=\"selectProfile\"\n data-cy=\"device-tab-profile--select-device-profile\"\n [(ngModel)]=\"selectedProfile\"\n (onSearch)=\"setPipe($event)\"\n [allowFreeEntries]=\"false\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *c8yFor=\"let profile of deviceProfiles; pipe: filterPipe\"\n (click)=\"selectProfile(profile); setPipe('')\"\n >\n <c8y-highlight\n [text]=\"profile.name || '--'\"\n [pattern]=\"pattern\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Assign device profile' | translate }}\"\n type=\"button\"\n (click)=\"createOperation()\"\n data-cy=\"device-tab-profile--Assign-device-profile-button\"\n [disabled]=\"!selectedProfile?.id\"\n c8yProductExperience\n inherit\n [actionData]=\"{ action: PRODUCT_EXPERIENCE.ACTIONS.ASSIGN_DEVICE_PROFILE }\"\n >\n <span>{{ 'Assign device profile' | translate }}</span>\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n\n <!-- INSTALL PROFILE OPERATION -->\n <div class=\"bg-level-1\">\n <div class=\"card-header separator\">\n <div\n class=\"card-title\"\n translate\n >\n Currently installed\n </div>\n </div>\n <div class=\"card-block\">\n <c8y-operation-details\n [operation]=\"operation\"\n c8yProductExperience\n inherit\n suppressDataOverriding\n ></c8y-operation-details>\n </div>\n </div>\n </div>\n <div class=\"card--grid__inner-scroll d-col no-align-items\">\n <div class=\"d-contents\">\n <!-- FIRMWARE -->\n <c8y-device-tab-profile-detail\n class=\"d-contents\"\n [sectionIcon]=\"'c8y-firmware'\"\n [sectionTitle]=\"'Firmware' | translate\"\n [emptyStateText]=\"'No firmware to display.' | translate\"\n [emptyStateDetails]=\"'No firmware assigned.' | translate\"\n [isProfileSelected]=\"!!selectedProfile\"\n [items]=\"firmwareItems\"\n [isEmpty]=\"!selectedProfile?.c8y_DeviceProfile?.firmware?.name\"\n ></c8y-device-tab-profile-detail>\n </div>\n <div class=\"d-contents\">\n <!-- SOFTWARE -->\n <c8y-device-tab-profile-detail\n class=\"d-contents\"\n [sectionIcon]=\"'c8y-tools'\"\n [sectionTitle]=\"'Software' | translate\"\n [emptyStateText]=\"'No software to display.' | translate\"\n [emptyStateDetails]=\"'No software assigned.' | translate\"\n [isProfileSelected]=\"!!selectedProfile\"\n [items]=\"softwareItems\"\n [isEmpty]=\"\n !selectedProfile?.c8y_DeviceProfile?.software ||\n selectedProfile?.c8y_DeviceProfile?.software?.length === 0\n \"\n ></c8y-device-tab-profile-detail>\n </div>\n <div class=\"d-contents\">\n <!-- CONFIGURATION -->\n <c8y-device-tab-profile-detail\n class=\"d-contents\"\n [sectionIcon]=\"'gears'\"\n [sectionTitle]=\"'Configuration' | translate\"\n [emptyStateText]=\"'No configuration to display' | translate\"\n [emptyStateDetails]=\"'No configuration assigned' | translate\"\n [isProfileSelected]=\"!!selectedProfile\"\n [items]=\"configurationItems\"\n [isEmpty]=\"\n !selectedProfile?.c8y_DeviceProfile?.configuration ||\n selectedProfile?.c8y_DeviceProfile?.configuration?.length === 0\n \"\n ></c8y-device-tab-profile-detail>\n </div>\n <!-- fill in the remanining vertical space when empty -->\n <div class=\"card--grid grid__col--6-6--md flex-grow\">\n <div class=\"bg-level-0\"></div>\n <div class=\"bg-level-1\"></div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i1.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i1.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "directive", type: i1.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "component", type: i1.RealtimeButtonComponent, selector: "c8y-realtime-btn", inputs: ["service", "label", "title", "disabled"], outputs: ["onToggle"] }, { kind: "component", type: i6.OperationDetailsComponent, selector: "c8y-operation-details", inputs: ["operation"] }, { kind: "component", type: i7.DeviceTabProfileDetailComponent, selector: "c8y-device-tab-profile-detail", inputs: ["sectionTitle", "sectionIcon", "emptyStateText", "emptyStateDetails", "isProfileSelected", "isEmpty", "items", "showTextLabel"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
|
|
103
119
|
}
|
|
104
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceTabProfileComponent, decorators: [{
|
|
105
121
|
type: Component,
|
|
@@ -109,6 +125,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
109
125
|
provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,
|
|
110
126
|
useExisting: forwardRef(() => DeviceTabProfileComponent)
|
|
111
127
|
}
|
|
112
|
-
], template: "<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"getDeviceProfilesAndUpdateProfileItems()\"\n >\n <i
|
|
128
|
+
], template: "<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"getDeviceProfilesAndUpdateProfileItems()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': reloading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'right'\">\n <c8y-realtime-btn [service]=\"deviceRealtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n\n<div class=\"card card--grid--fullpage card--grid--fullpage card--grid grid__row--2-10--md\">\n <div class=\"card--grid grid__col--6-6--md\">\n <!-- AVAILABLE PROFILES -->\n <div class=\"bg-level-0\">\n <div class=\"card-header separator\">\n <div\n class=\"card-title\"\n translate\n >\n Device profile\n </div>\n </div>\n <div class=\"p-16\">\n <form #deviceProfileForm=\"ngForm\">\n <div class=\"input-group\">\n <c8y-typeahead\n class=\"flex-grow\"\n placeholder=\"{{ 'Select device profile' | translate }}\"\n name=\"selectProfile\"\n data-cy=\"device-tab-profile--select-device-profile\"\n [(ngModel)]=\"selectedProfile\"\n (onSearch)=\"setPipe($event)\"\n [allowFreeEntries]=\"false\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *c8yFor=\"let profile of deviceProfiles; pipe: filterPipe\"\n (click)=\"selectProfile(profile); setPipe('')\"\n >\n <c8y-highlight\n [text]=\"profile.name || '--'\"\n [pattern]=\"pattern\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Assign device profile' | translate }}\"\n type=\"button\"\n (click)=\"createOperation()\"\n data-cy=\"device-tab-profile--Assign-device-profile-button\"\n [disabled]=\"!selectedProfile?.id\"\n c8yProductExperience\n inherit\n [actionData]=\"{ action: PRODUCT_EXPERIENCE.ACTIONS.ASSIGN_DEVICE_PROFILE }\"\n >\n <span>{{ 'Assign device profile' | translate }}</span>\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n\n <!-- INSTALL PROFILE OPERATION -->\n <div class=\"bg-level-1\">\n <div class=\"card-header separator\">\n <div\n class=\"card-title\"\n translate\n >\n Currently installed\n </div>\n </div>\n <div class=\"card-block\">\n <c8y-operation-details\n [operation]=\"operation\"\n c8yProductExperience\n inherit\n suppressDataOverriding\n ></c8y-operation-details>\n </div>\n </div>\n </div>\n <div class=\"card--grid__inner-scroll d-col no-align-items\">\n <div class=\"d-contents\">\n <!-- FIRMWARE -->\n <c8y-device-tab-profile-detail\n class=\"d-contents\"\n [sectionIcon]=\"'c8y-firmware'\"\n [sectionTitle]=\"'Firmware' | translate\"\n [emptyStateText]=\"'No firmware to display.' | translate\"\n [emptyStateDetails]=\"'No firmware assigned.' | translate\"\n [isProfileSelected]=\"!!selectedProfile\"\n [items]=\"firmwareItems\"\n [isEmpty]=\"!selectedProfile?.c8y_DeviceProfile?.firmware?.name\"\n ></c8y-device-tab-profile-detail>\n </div>\n <div class=\"d-contents\">\n <!-- SOFTWARE -->\n <c8y-device-tab-profile-detail\n class=\"d-contents\"\n [sectionIcon]=\"'c8y-tools'\"\n [sectionTitle]=\"'Software' | translate\"\n [emptyStateText]=\"'No software to display.' | translate\"\n [emptyStateDetails]=\"'No software assigned.' | translate\"\n [isProfileSelected]=\"!!selectedProfile\"\n [items]=\"softwareItems\"\n [isEmpty]=\"\n !selectedProfile?.c8y_DeviceProfile?.software ||\n selectedProfile?.c8y_DeviceProfile?.software?.length === 0\n \"\n ></c8y-device-tab-profile-detail>\n </div>\n <div class=\"d-contents\">\n <!-- CONFIGURATION -->\n <c8y-device-tab-profile-detail\n class=\"d-contents\"\n [sectionIcon]=\"'gears'\"\n [sectionTitle]=\"'Configuration' | translate\"\n [emptyStateText]=\"'No configuration to display' | translate\"\n [emptyStateDetails]=\"'No configuration assigned' | translate\"\n [isProfileSelected]=\"!!selectedProfile\"\n [items]=\"configurationItems\"\n [isEmpty]=\"\n !selectedProfile?.c8y_DeviceProfile?.configuration ||\n selectedProfile?.c8y_DeviceProfile?.configuration?.length === 0\n \"\n ></c8y-device-tab-profile-detail>\n </div>\n <!-- fill in the remanining vertical space when empty -->\n <div class=\"card--grid grid__col--6-6--md flex-grow\">\n <div class=\"bg-level-0\"></div>\n <div class=\"bg-level-1\"></div>\n </div>\n </div>\n</div>\n" }]
|
|
113
129
|
}], ctorParameters: () => [{ type: i1.ManagedObjectRealtimeService }, { type: i2.DeviceProfileService }, { type: i3.ActivatedRoute }, { type: i1.OperationRealtimeService }, { type: i1.AlertService }] });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXRhYi1wcm9maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2RldmljZS1wcm9maWxlL2RldmljZS10YWItcHJvZmlsZS9kZXZpY2UtdGFiLXByb2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZGV2aWNlLXByb2ZpbGUvZGV2aWNlLXRhYi1wcm9maWxlL2RldmljZS10YWItcHJvZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFDTCxZQUFZLEVBQ1osT0FBTyxFQUNQLDRCQUE0QixFQUM1Qix3QkFBd0IsRUFHeEIsK0JBQStCLEVBRWhDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLElBQUksRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBR0wsaUNBQWlDLEVBQ2xDLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7OztBQWFqRSxNQUFNLE9BQU8seUJBQXlCO0lBdUJwQyxZQUNTLGNBQTRDLEVBQzNDLG9CQUEwQyxFQUMxQyxLQUFxQixFQUNyQixpQkFBMkMsRUFDM0MsWUFBMEI7UUFKM0IsbUJBQWMsR0FBZCxjQUFjLENBQThCO1FBQzNDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQUMzQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQTNCcEMsdUJBQWtCLEdB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R0FBRyxJQUFJLENBQUMsaUJBQWlCO2FBQ2pELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQzthQUN0QixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBa0IsQ0FBQyxFQUNyQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FDakQ7YUFDQSxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQWpIVSx5QkFBeUI7a0dBQXpCLHlCQUF5QixpREFSekI7WUFDVCw0QkFBNEI7WUFDNUI7Z0JBQ0UsT0FBTyxFQUFFLCtCQUErQjtnQkFDeEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQzthQUN6RDtTQUNGLDBCQy9CSCx1b0tBc0lBOzsyRkRyR2EseUJBQXlCO2tCQVhyQyxTQUFTOytCQUNFLHdCQUF3QixhQUV2Qjt3QkFDVCw0QkFBNEI7d0JBQzVCOzRCQUNFLE9BQU8sRUFBRSwrQkFBK0I7NEJBQ3hDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDO3lCQUN6RDtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJT3BlcmF0aW9uLCBJUmVzdWx0TGlzdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIEFsZXJ0U2VydmljZSxcbiAgZ2V0dGV4dCxcbiAgTWFuYWdlZE9iamVjdFJlYWx0aW1lU2VydmljZSxcbiAgT3BlcmF0aW9uUmVhbHRpbWVTZXJ2aWNlLFxuICBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50LFxuICBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50U291cmNlLFxuICBQUk9EVUNUX0VYUEVSSUVOQ0VfRVZFTlRfU09VUkNFLFxuICBGb3JPZkZpbHRlclBpcGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBwaXBlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ29tcGFyaXNvblJlc3VsdCxcbiAgRGV2aWNlUHJvZmlsZSxcbiAgUFJPRFVDVF9FWFBFUklFTkNFX0RFVklDRV9QUk9GSUxFXG59IGZyb20gJy4uL2RldmljZS1wcm9maWxlLm1vZGVsJztcbmltcG9ydCB7IERldmljZVByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vZGV2aWNlLXByb2ZpbGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kZXZpY2UtdGFiLXByb2ZpbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGV2aWNlLXRhYi1wcm9maWxlLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgTWFuYWdlZE9iamVjdFJlYWx0aW1lU2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBQUk9EVUNUX0VYUEVSSUVOQ0VfRVZFTlRfU09VUkNFLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGV2aWNlVGFiUHJvZmlsZUNvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGV2aWNlVGFiUHJvZmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50U291cmNlIHtcbiAgUFJPRFVDVF9FWFBFUklFTkNFID0gUFJPRFVDVF9FWFBFUklFTkNFX0RFVklDRV9QUk9GSUxFO1xuICBkZXZpY2U6IElNYW5hZ2VkT2JqZWN0O1xuICBkZXZpY2VQcm9maWxlczogSVJlc3VsdExpc3Q8SU1hbmFnZWRPYmplY3Q+O1xuICBzZWxlY3RlZFByb2ZpbGU6IFBhcnRpYWw8RGV2aWNlUHJvZmlsZT47XG4gIG9wZXJhdGlvbjogSU9wZXJhdGlvbjtcbiAgZmlybXdhcmVJdGVtczogQ29tcGFyaXNvblJlc3VsdFtdID0gW107XG4gIHNvZnR3YXJlSXRlbXM6IENvbXBhcmlzb25SZXN1bHRbXSA9IFtdO1xuICBjb25maWd1cmF0aW9uSXRlbXM6IENvbXBhcmlzb25SZXN1bHRbXSA9IFtdO1xuXG4gIGZpbHRlclBpcGU6IEZvck9mRmlsdGVyUGlwZTtcbiAgcGF0dGVybiA9ICcnO1xuICByZWxvYWRpbmcgPSBmYWxzZTtcbiAgcHJvZHVjdEV4cGVyaWVuY2VFdmVudDogUHJvZHVjdEV4cGVyaWVuY2VFdmVudCA9IHtcbiAgICBldmVudE5hbWU6IFBST0RVQ1RfRVhQRVJJRU5DRV9ERVZJQ0VfUFJPRklMRS5FVkVOVFMuREVWSUNFX1RBQixcbiAgICBkYXRhOiB7XG4gICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9ERVZJQ0VfUFJPRklMRS5DT01QT05FTlRTLkRFVklDRV9UQUJfUFJPRklMRVxuICAgIH1cbiAgfTtcbiAgcHJpdmF0ZSBvcGVyYXRpb25zU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgbW9PbkRlbGV0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG1vT25VcGRhdGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGV2aWNlUmVhbHRpbWU6IE1hbmFnZWRPYmplY3RSZWFsdGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkZXZpY2VQcm9maWxlU2VydmljZTogRGV2aWNlUHJvZmlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBvcGVyYXRpb25SZWFsdGltZTogT3BlcmF0aW9uUmVhbHRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZGV2aWNlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YTtcbiAgICB0aGlzLmdldERldmljZVByb2ZpbGVzQW5kVXBkYXRlUHJvZmlsZUl0ZW1zKCk7XG4gICAgdGhpcy5zdWJzY3JpYmVUb01hbmFnZWRPYmplY3RzKCk7XG4gIH1cblxuICBhc3luYyBnZXREZXZpY2VQcm9maWxlc0FuZFVwZGF0ZVByb2ZpbGVJdGVtcygpIHtcbiAgICB0aGlzLnJlbG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5kZXZpY2VQcm9maWxlcyA9IGF3YWl0IHRoaXMuZGV2aWNlUHJvZmlsZVNlcnZpY2UuZ2V0RGV2aWNlUHJvZmlsZXNCeURldmljZVR5cGUoXG4gICAgICB0aGlzLmRldmljZS50eXBlXG4gICAgKTtcbiAgICBpZiAodGhpcy5kZXZpY2UuYzh5X1Byb2ZpbGUpIHtcbiAgICAgIGNvbnN0IHByb2ZpbGVJZCA9IHRoaXMuZGV2aWNlLmM4eV9Qcm9maWxlLnByb2ZpbGVJZDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm9maWxlID0gdGhpcy5kZXZpY2VQcm9maWxlcy5kYXRhLmZpbmQobW8gPT4gbW8uaWQgPT09IHByb2ZpbGVJZCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlUHJvZmlsZUl0ZW1zKHRoaXMuZGV2aWNlLCB0aGlzLnNlbGVjdGVkUHJvZmlsZSk7XG4gICAgdGhpcy5vcGVyYXRpb24gPSBhd2FpdCB0aGlzLmRldmljZVByb2ZpbGVTZXJ2aWNlLmdldFByb2ZpbGVPcGVyYXRpb24odGhpcy5kZXZpY2UuaWQpO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9PcGVyYXRpb25zKCk7XG4gICAgdGhpcy5yZWxvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHNlbGVjdFByb2ZpbGUobW86IERldmljZVByb2ZpbGUpIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJvZmlsZSA9IG1vO1xuICAgIHRoaXMudXBkYXRlUHJvZmlsZUl0ZW1zKHRoaXMuZGV2aWNlLCB0aGlzLnNlbGVjdGVkUHJvZmlsZSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVPcGVyYXRpb24oKSB7XG4gICAgdGhpcy5vcGVyYXRpb24gPSBhd2FpdCB0aGlzLmRldmljZVByb2ZpbGVTZXJ2aWNlLmNyZWF0ZVByb2ZpbGVPcGVyYXRpb24oXG4gICAgICB0aGlzLmRldmljZSxcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm9maWxlXG4gICAgKTtcbiAgfVxuXG4gIHNldFBpcGUoZmlsdGVyU3RyOiBzdHJpbmcpIHtcbiAgICB0aGlzLnBhdHRlcm4gPSBmaWx0ZXJTdHI7XG4gICAgdGhpcy5maWx0ZXJQaXBlID0gcGlwZShcbiAgICAgIG1hcChkYXRhID0+IHtcbiAgICAgICAgcmV0dXJuIGRhdGEuZmlsdGVyKFxuICAgICAgICAgIG1vID0+IG1vLm5hbWUgJiYgbW8ubmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmlsdGVyU3RyLnRvTG93ZXJDYXNlKCkpID4gLTFcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub3BlcmF0aW9uc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubW9PblVwZGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubW9PbkRlbGV0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgdXBkYXRlUHJvZmlsZUl0ZW1zKGRldmljZSwgcHJvZmlsZSkge1xuICAgIHRoaXMuZmlybXdhcmVJdGVtcyA9IHRoaXMuZGV2aWNlUHJvZmlsZVNlcnZpY2UuZ2V0RmlybXdhcmVJdGVtcyhkZXZpY2UsIHByb2ZpbGUpO1xuICAgIHRoaXMuc29mdHdhcmVJdGVtcyA9IHRoaXMuZGV2aWNlUHJvZmlsZVNlcnZpY2UuZ2V0U29mdHdhcmVJdGVtcyhkZXZpY2UsIHByb2ZpbGUpO1xuICAgIHRoaXMuY29uZmlndXJhdGlvbkl0ZW1zID0gdGhpcy5kZXZpY2VQcm9maWxlU2VydmljZS5nZXRDb25maWd1cmF0aW9uSXRlbXMoZGV2aWNlLCBwcm9maWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9NYW5hZ2VkT2JqZWN0cygpIHtcbiAgICB0aGlzLm1vT25VcGRhdGVTdWJzY3JpcHRpb24gPSB0aGlzLmRldmljZVJlYWx0aW1lXG4gICAgICAub25VcGRhdGUkKHRoaXMuZGV2aWNlLmlkKVxuICAgICAgLnN1YnNjcmliZSgobWFuYWdlZE9iamVjdDogSU1hbmFnZWRPYmplY3QpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVQcm9maWxlSXRlbXMobWFuYWdlZE9iamVjdCwgdGhpcy5zZWxlY3RlZFByb2ZpbGUpO1xuICAgICAgfSk7XG4gICAgdGhpcy5tb09uRGVsZXRlU3Vic2NyaXB0aW9uID0gdGhpcy5kZXZpY2VSZWFsdGltZS5vbkRlbGV0ZSQodGhpcy5kZXZpY2UuaWQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5kYW5nZXIoXG4gICAgICAgIGdldHRleHQoXG4gICAgICAgICAgJ1RoaXMgZGV2aWNlIGhhcyBqdXN0IGJlZW4gZGVsZXRlZC4gWW91IHdpbGwgYmUgcmVkaXJlY3RlZCB0byBcIkFsbCBkZXZpY2VzXCIgcGFnZSBub3cuJ1xuICAgICAgICApXG4gICAgICApO1xuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnIy9kZXZpY2UnO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb09wZXJhdGlvbnMoKSB7XG4gICAgdGhpcy5vcGVyYXRpb25zU3Vic2NyaXB0aW9uID0gdGhpcy5vcGVyYXRpb25SZWFsdGltZVxuICAgICAgLm9uQWxsJCh0aGlzLmRldmljZS5pZClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhIGFzIElPcGVyYXRpb24pLFxuICAgICAgICBmaWx0ZXIob3BlcmF0aW9uID0+IG9wZXJhdGlvbi5jOHlfRGV2aWNlUHJvZmlsZSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUob3BlcmF0aW9uID0+IHtcbiAgICAgICAgdGhpcy5vcGVyYXRpb24gPSBvcGVyYXRpb247XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnUmVsb2FkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cImdldERldmljZVByb2ZpbGVzQW5kVXBkYXRlUHJvZmlsZUl0ZW1zKClcIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cInJlZnJlc2hcIiBbbmdDbGFzc109XCJ7ICdpY29uLXNwaW4nOiByZWxvYWRpbmcgfVwiPjwvaT5cbiAgICB7eyAnUmVsb2FkJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiPlxuICA8Yzh5LXJlYWx0aW1lLWJ0biBbc2VydmljZV09XCJkZXZpY2VSZWFsdGltZVwiPjwvYzh5LXJlYWx0aW1lLWJ0bj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGRpdiBjbGFzcz1cImNhcmQgY2FyZC0tZ3JpZC0tZnVsbHBhZ2UgY2FyZC0tZ3JpZC0tZnVsbHBhZ2UgY2FyZC0tZ3JpZCBncmlkX19yb3ctLTItMTAtLW1kXCI+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLS1ncmlkIGdyaWRfX2NvbC0tNi02LS1tZFwiPlxuICAgIDwhLS0gQVZBSUxBQkxFIFBST0ZJTEVTIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJiZy1sZXZlbC0wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgc2VwYXJhdG9yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlXCIgdHJhbnNsYXRlPkRldmljZSBwcm9maWxlPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLTE2XCI+XG4gICAgICAgIDxmb3JtICNkZXZpY2VQcm9maWxlRm9ybT1cIm5nRm9ybVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgPGM4eS10eXBlYWhlYWRcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3dcIlxuICAgICAgICAgICAgICBuYW1lPVwic2VsZWN0UHJvZmlsZVwiXG4gICAgICAgICAgICAgIGRhdGEtY3k9XCJkZXZpY2UtdGFiLXByb2ZpbGUtLXNlbGVjdC1kZXZpY2UtcHJvZmlsZVwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRQcm9maWxlXCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnU2VsZWN0IGRldmljZSBwcm9maWxlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIChvblNlYXJjaCk9XCJzZXRQaXBlKCRldmVudClcIlxuICAgICAgICAgICAgICBbYWxsb3dGcmVlRW50cmllc109XCJmYWxzZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxjOHktbGlcbiAgICAgICAgICAgICAgICAqYzh5Rm9yPVwibGV0IHByb2ZpbGUgb2YgZGV2aWNlUHJvZmlsZXM7IHBpcGU6IGZpbHRlclBpcGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1sLTggcC1yLTggYzh5LWxpc3RfX2l0ZW0tLWxpbmtcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQcm9maWxlKHByb2ZpbGUpOyBzZXRQaXBlKCcnKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Yzh5LWhpZ2hsaWdodFxuICAgICAgICAgICAgICAgICAgW3RleHRdPVwicHJvZmlsZS5uYW1lIHx8ICcmIzQ1OyYjNDU7J1wiXG4gICAgICAgICAgICAgICAgICBbcGF0dGVybl09XCJwYXR0ZXJuXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktaGlnaGxpZ2h0PlxuICAgICAgICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgICAgIDwvYzh5LXR5cGVhaGVhZD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1idG5cIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3JlYXRlT3BlcmF0aW9uKClcIlxuICAgICAgICAgICAgICAgIGRhdGEtY3k9XCJkZXZpY2UtdGFiLXByb2ZpbGUtLUFzc2lnbi1kZXZpY2UtcHJvZmlsZS1idXR0b25cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0Fzc2lnbiBkZXZpY2UgcHJvZmlsZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWRQcm9maWxlPy5pZFwiXG4gICAgICAgICAgICAgICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICAgICAgICAgICAgICBpbmhlcml0XG4gICAgICAgICAgICAgICAgW2FjdGlvbkRhdGFdPVwieyBhY3Rpb246IFBST0RVQ1RfRVhQRVJJRU5DRS5BQ1RJT05TLkFTU0lHTl9ERVZJQ0VfUFJPRklMRSB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdBc3NpZ24gZGV2aWNlIHByb2ZpbGUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gSU5TVEFMTCBQUk9GSUxFIE9QRVJBVElPTiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYmctbGV2ZWwtMVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHNlcGFyYXRvclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiIHRyYW5zbGF0ZT5DdXJyZW50bHkgaW5zdGFsbGVkPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrXCI+XG4gICAgICAgIDxjOHktb3BlcmF0aW9uLWRldGFpbHNcbiAgICAgICAgICBbb3BlcmF0aW9uXT1cIm9wZXJhdGlvblwiXG4gICAgICAgICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICAgICAgICBpbmhlcml0XG4gICAgICAgICAgc3VwcHJlc3NEYXRhT3ZlcnJpZGluZ1xuICAgICAgICA+PC9jOHktb3BlcmF0aW9uLWRldGFpbHM+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLS1ncmlkX19pbm5lci1zY3JvbGwgZC1jb2wgbm8tYWxpZ24taXRlbXNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1jb250ZW50c1wiPlxuICAgICAgPCEtLSBGSVJNV0FSRSAtLT5cbiAgICAgIDxjOHktZGV2aWNlLXRhYi1wcm9maWxlLWRldGFpbFxuICAgICAgICBbc2VjdGlvblRpdGxlXT1cIidGaXJtd2FyZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbc2VjdGlvbkljb25dPVwiJ2M4eS1maXJtd2FyZSdcIlxuICAgICAgICBbZW1wdHlTdGF0ZVRleHRdPVwiJ05vIGZpcm13YXJlIHRvIGRpc3BsYXkuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtlbXB0eVN0YXRlRGV0YWlsc109XCInTm8gZmlybXdhcmUgYXNzaWduZWQuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtpc1Byb2ZpbGVTZWxlY3RlZF09XCIhIXNlbGVjdGVkUHJvZmlsZVwiXG4gICAgICAgIFtpdGVtc109XCJmaXJtd2FyZUl0ZW1zXCJcbiAgICAgICAgW2lzRW1wdHldPVwiIXNlbGVjdGVkUHJvZmlsZT8uYzh5X0RldmljZVByb2ZpbGU/LmZpcm13YXJlPy5uYW1lXCJcbiAgICAgICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICAgID48L2M4eS1kZXZpY2UtdGFiLXByb2ZpbGUtZGV0YWlsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkLWNvbnRlbnRzXCI+XG4gICAgICA8IS0tIFNPRlRXQVJFIC0tPlxuICAgICAgPGM4eS1kZXZpY2UtdGFiLXByb2ZpbGUtZGV0YWlsXG4gICAgICAgIFtzZWN0aW9uVGl0bGVdPVwiJ1NvZnR3YXJlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtzZWN0aW9uSWNvbl09XCInYzh5LXRvb2xzJ1wiXG4gICAgICAgIFtlbXB0eVN0YXRlVGV4dF09XCInTm8gc29mdHdhcmUgdG8gZGlzcGxheS4nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2VtcHR5U3RhdGVEZXRhaWxzXT1cIidObyBzb2Z0d2FyZSBhc3NpZ25lZC4nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2lzUHJvZmlsZVNlbGVjdGVkXT1cIiEhc2VsZWN0ZWRQcm9maWxlXCJcbiAgICAgICAgW2l0ZW1zXT1cInNvZnR3YXJlSXRlbXNcIlxuICAgICAgICBbaXNFbXB0eV09XCJcbiAgICAgICAgICAhc2VsZWN0ZWRQcm9maWxlPy5jOHlfRGV2aWNlUHJvZmlsZT8uc29mdHdhcmUgfHxcbiAgICAgICAgICBzZWxlY3RlZFByb2ZpbGU/LmM4eV9EZXZpY2VQcm9maWxlPy5zb2Z0d2FyZT8ubGVuZ3RoID09PSAwXG4gICAgICAgIFwiXG4gICAgICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgICA+PC9jOHktZGV2aWNlLXRhYi1wcm9maWxlLWRldGFpbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1jb250ZW50c1wiPlxuICAgICAgPCEtLSBDT05GSUdVUkFUSU9OIC0tPlxuICAgICAgPGM4eS1kZXZpY2UtdGFiLXByb2ZpbGUtZGV0YWlsXG4gICAgICAgIFtzZWN0aW9uVGl0bGVdPVwiJ0NvbmZpZ3VyYXRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3NlY3Rpb25JY29uXT1cIidnZWFycydcIlxuICAgICAgICBbZW1wdHlTdGF0ZVRleHRdPVwiJ05vIGNvbmZpZ3VyYXRpb24gdG8gZGlzcGxheScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbZW1wdHlTdGF0ZURldGFpbHNdPVwiJ05vIGNvbmZpZ3VyYXRpb24gYXNzaWduZWQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2lzUHJvZmlsZVNlbGVjdGVkXT1cIiEhc2VsZWN0ZWRQcm9maWxlXCJcbiAgICAgICAgW2l0ZW1zXT1cImNvbmZpZ3VyYXRpb25JdGVtc1wiXG4gICAgICAgIFtpc0VtcHR5XT1cIlxuICAgICAgICAgICFzZWxlY3RlZFByb2ZpbGU/LmM4eV9EZXZpY2VQcm9maWxlPy5jb25maWd1cmF0aW9uIHx8XG4gICAgICAgICAgc2VsZWN0ZWRQcm9maWxlPy5jOHlfRGV2aWNlUHJvZmlsZT8uY29uZmlndXJhdGlvbj8ubGVuZ3RoID09PSAwXG4gICAgICAgIFwiXG4gICAgICAgIFtzaG93VGV4dExhYmVsXT1cImZhbHNlXCJcbiAgICAgICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICAgID48L2M4eS1kZXZpY2UtdGFiLXByb2ZpbGUtZGV0YWlsPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gZmlsbCBpbiB0aGUgcmVtYW5pbmluZyB2ZXJ0aWNhbCBzcGFjZSB3aGVuIGVtcHR5IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLS1ncmlkIGdyaWRfX2NvbC0tNi02LS1tZCBmbGV4LWdyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJiZy1sZXZlbC0wXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYmctbGV2ZWwtMVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXRhYi1wcm9maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2RldmljZS1wcm9maWxlL2RldmljZS10YWItcHJvZmlsZS9kZXZpY2UtdGFiLXByb2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZGV2aWNlLXByb2ZpbGUvZGV2aWNlLXRhYi1wcm9maWxlL2RldmljZS10YWItcHJvZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFDTCxZQUFZLEVBRVosT0FBTyxFQUNQLDRCQUE0QixFQUM1Qix3QkFBd0IsRUFDeEIsK0JBQStCLEVBR2hDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLElBQUksRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBR0wsaUNBQWlDLEVBQ2xDLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7OztBQWFqRSxNQUFNLE9BQU8seUJBQXlCO0lBdUJwQyxZQUNTLGNBQTRDLEVBQzNDLG9CQUEwQyxFQUMxQyxLQUFxQixFQUNyQixpQkFBMkMsRUFDM0MsWUFBMEI7UUFKM0IsbUJBQWMsR0FBZCxjQUFjLENBQThCO1FBQzNDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFp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WUFDVCw0QkFBNEI7WUFDNUI7Z0JBQ0UsT0FBTyxFQUFFLCtCQUErQjtnQkFDeEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQzthQUN6RDtTQUNGLDBCQ2hDSCxvdUtBa0pBOzsyRkRoSGEseUJBQXlCO2tCQVhyQyxTQUFTOytCQUNFLHdCQUF3QixhQUV2Qjt3QkFDVCw0QkFBNEI7d0JBQzVCOzRCQUNFLE9BQU8sRUFBRSwrQkFBK0I7NEJBQ3hDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDO3lCQUN6RDtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJT3BlcmF0aW9uLCBJUmVzdWx0TGlzdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIEFsZXJ0U2VydmljZSxcbiAgRm9yT2ZGaWx0ZXJQaXBlLFxuICBnZXR0ZXh0LFxuICBNYW5hZ2VkT2JqZWN0UmVhbHRpbWVTZXJ2aWNlLFxuICBPcGVyYXRpb25SZWFsdGltZVNlcnZpY2UsXG4gIFBST0RVQ1RfRVhQRVJJRU5DRV9FVkVOVF9TT1VSQ0UsXG4gIFByb2R1Y3RFeHBlcmllbmNlRXZlbnQsXG4gIFByb2R1Y3RFeHBlcmllbmNlRXZlbnRTb3VyY2Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBoYXMsIHBpY2tCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBwaXBlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ29tcGFyaXNvblJlc3VsdCxcbiAgRGV2aWNlUHJvZmlsZSxcbiAgUFJPRFVDVF9FWFBFUklFTkNFX0RFVklDRV9QUk9GSUxFXG59IGZyb20gJy4uL2RldmljZS1wcm9maWxlLm1vZGVsJztcbmltcG9ydCB7IERldmljZVByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vZGV2aWNlLXByb2ZpbGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kZXZpY2UtdGFiLXByb2ZpbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGV2aWNlLXRhYi1wcm9maWxlLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgTWFuYWdlZE9iamVjdFJlYWx0aW1lU2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBQUk9EVUNUX0VYUEVSSUVOQ0VfRVZFTlRfU09VUkNFLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGV2aWNlVGFiUHJvZmlsZUNvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGV2aWNlVGFiUHJvZmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50U291cmNlIHtcbiAgUFJPRFVDVF9FWFBFUklFTkNFID0gUFJPRFVDVF9FWFBFUklFTkNFX0RFVklDRV9QUk9GSUxFO1xuICBkZXZpY2U6IElNYW5hZ2VkT2JqZWN0O1xuICBkZXZpY2VQcm9maWxlczogSVJlc3VsdExpc3Q8SU1hbmFnZWRPYmplY3Q+O1xuICBzZWxlY3RlZFByb2ZpbGU6IFBhcnRpYWw8RGV2aWNlUHJvZmlsZT47XG4gIG9wZXJhdGlvbjogSU9wZXJhdGlvbjtcbiAgZmlybXdhcmVJdGVtczogQ29tcGFyaXNvblJlc3VsdFtdID0gW107XG4gIHNvZnR3YXJlSXRlbXM6IENvbXBhcmlzb25SZXN1bHRbXSA9IFtdO1xuICBjb25maWd1cmF0aW9uSXRlbXM6IENvbXBhcmlzb25SZXN1bHRbXSA9IFtdO1xuXG4gIGZpbHRlclBpcGU6IEZvck9mRmlsdGVyUGlwZTtcbiAgcGF0dGVybiA9ICcnO1xuICByZWxvYWRpbmcgPSBmYWxzZTtcbiAgcHJvZHVjdEV4cGVyaWVuY2VFdmVudDogUHJvZHVjdEV4cGVyaWVuY2VFdmVudCA9IHtcbiAgICBldmVudE5hbWU6IFBST0RVQ1RfRVhQRVJJRU5DRV9ERVZJQ0VfUFJPRklMRS5FVkVOVFMuREVWSUNFX1RBQixcbiAgICBkYXRhOiB7XG4gICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9ERVZJQ0VfUFJPRklMRS5DT01QT05FTlRTLkRFVklDRV9UQUJfUFJPRklMRVxuICAgIH1cbiAgfTtcbiAgcHJpdmF0ZSBvcGVyYXRpb25zU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgbW9PbkRlbGV0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG1vT25VcGRhdGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGV2aWNlUmVhbHRpbWU6IE1hbmFnZWRPYmplY3RSZWFsdGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkZXZpY2VQcm9maWxlU2VydmljZTogRGV2aWNlUHJvZmlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBvcGVyYXRpb25SZWFsdGltZTogT3BlcmF0aW9uUmVhbHRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZGV2aWNlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YTtcbiAgICB0aGlzLmdldERldmljZVByb2ZpbGVzQW5kVXBkYXRlUHJvZmlsZUl0ZW1zKCk7XG4gICAgdGhpcy5zdWJzY3JpYmVUb01hbmFnZWRPYmplY3RzKCk7XG4gIH1cblxuICBhc3luYyBnZXREZXZpY2VQcm9maWxlc0FuZFVwZGF0ZVByb2ZpbGVJdGVtcygpIHtcbiAgICB0aGlzLnJlbG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5kZXZpY2VQcm9maWxlcyA9IGF3YWl0IHRoaXMuZGV2aWNlUHJvZmlsZVNlcnZpY2UuZ2V0RGV2aWNlUHJvZmlsZXNCeURldmljZVR5cGUoXG4gICAgICB0aGlzLmRldmljZS50eXBlXG4gICAgKTtcbiAgICBpZiAodGhpcy5kZXZpY2UuYzh5X1Byb2ZpbGUpIHtcbiAgICAgIGNvbnN0IHByb2ZpbGVJZCA9IHRoaXMuZGV2aWNlLmM4eV9Qcm9maWxlLnByb2ZpbGVJZDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm9maWxlID0gdGhpcy5kZXZpY2VQcm9maWxlcy5kYXRhLmZpbmQobW8gPT4gbW8uaWQgPT09IHByb2ZpbGVJZCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlUHJvZmlsZUl0ZW1zKHRoaXMuZGV2aWNlLCB0aGlzLnNlbGVjdGVkUHJvZmlsZSk7XG4gICAgdGhpcy5vcGVyYXRpb24gPSBhd2FpdCB0aGlzLmRldmljZVByb2ZpbGVTZXJ2aWNlLmdldFByb2ZpbGVPcGVyYXRpb24odGhpcy5kZXZpY2UuaWQpO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9PcGVyYXRpb25zKCk7XG4gICAgdGhpcy5yZWxvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHNlbGVjdFByb2ZpbGUobW86IERldmljZVByb2ZpbGUpIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJvZmlsZSA9IHRoaXMudG9Qcm9maWxlRm9yRGV2aWNlKG1vKTtcbiAgICB0aGlzLnVwZGF0ZVByb2ZpbGVJdGVtcyh0aGlzLmRldmljZSwgdGhpcy5zZWxlY3RlZFByb2ZpbGUpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlT3BlcmF0aW9uKCkge1xuICAgIHRoaXMub3BlcmF0aW9uID0gYXdhaXQgdGhpcy5kZXZpY2VQcm9maWxlU2VydmljZS5jcmVhdGVQcm9maWxlT3BlcmF0aW9uKFxuICAgICAgdGhpcy5kZXZpY2UsXG4gICAgICB0aGlzLnNlbGVjdGVkUHJvZmlsZVxuICAgICk7XG4gIH1cblxuICBzZXRQaXBlKGZpbHRlclN0cjogc3RyaW5nKSB7XG4gICAgdGhpcy5wYXR0ZXJuID0gZmlsdGVyU3RyO1xuICAgIHRoaXMuZmlsdGVyUGlwZSA9IHBpcGUoXG4gICAgICBtYXAoZGF0YSA9PiB7XG4gICAgICAgIHJldHVybiBkYXRhLmZpbHRlcihcbiAgICAgICAgICBtbyA9PiBtby5uYW1lICYmIG1vLm5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlclN0ci50b0xvd2VyQ2FzZSgpKSA+IC0xXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9wZXJhdGlvbnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm1vT25VcGRhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm1vT25EZWxldGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHVwZGF0ZVByb2ZpbGVJdGVtcyhkZXZpY2UsIHByb2ZpbGUpIHtcbiAgICB0aGlzLmZpcm13YXJlSXRlbXMgPSB0aGlzLmRldmljZVByb2ZpbGVTZXJ2aWNlLmdldEZpcm13YXJlSXRlbXMoZGV2aWNlLCBwcm9maWxlKTtcbiAgICB0aGlzLnNvZnR3YXJlSXRlbXMgPSB0aGlzLmRldmljZVByb2ZpbGVTZXJ2aWNlLmdldFNvZnR3YXJlSXRlbXMoZGV2aWNlLCBwcm9maWxlKTtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25JdGVtcyA9IHRoaXMuZGV2aWNlUHJvZmlsZVNlcnZpY2UuZ2V0Q29uZmlndXJhdGlvbkl0ZW1zKGRldmljZSwgcHJvZmlsZSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvTWFuYWdlZE9iamVjdHMoKSB7XG4gICAgdGhpcy5tb09uVXBkYXRlU3Vic2NyaXB0aW9uID0gdGhpcy5kZXZpY2VSZWFsdGltZVxuICAgICAgLm9uVXBkYXRlJCh0aGlzLmRldmljZS5pZClcbiAgICAgIC5zdWJzY3JpYmUoKG1hbmFnZWRPYmplY3Q6IElNYW5hZ2VkT2JqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlUHJvZmlsZUl0ZW1zKG1hbmFnZWRPYmplY3QsIHRoaXMuc2VsZWN0ZWRQcm9maWxlKTtcbiAgICAgIH0pO1xuICAgIHRoaXMubW9PbkRlbGV0ZVN1YnNjcmlwdGlvbiA9IHRoaXMuZGV2aWNlUmVhbHRpbWUub25EZWxldGUkKHRoaXMuZGV2aWNlLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZGFuZ2VyKFxuICAgICAgICBnZXR0ZXh0KFxuICAgICAgICAgICdUaGlzIGRldmljZSBoYXMganVzdCBiZWVuIGRlbGV0ZWQuIFlvdSB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gXCJBbGwgZGV2aWNlc1wiIHBhZ2Ugbm93LidcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJyMvZGV2aWNlJztcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9PcGVyYXRpb25zKCkge1xuICAgIHRoaXMub3BlcmF0aW9uc1N1YnNjcmlwdGlvbiA9IHRoaXMub3BlcmF0aW9uUmVhbHRpbWVcbiAgICAgIC5vbkFsbCQodGhpcy5kZXZpY2UuaWQpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSBhcyBJT3BlcmF0aW9uKSxcbiAgICAgICAgZmlsdGVyKG9wZXJhdGlvbiA9PiBvcGVyYXRpb24uYzh5X0RldmljZVByb2ZpbGUpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKG9wZXJhdGlvbiA9PiB7XG4gICAgICAgIHRoaXMub3BlcmF0aW9uID0gb3BlcmF0aW9uO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHRvUHJvZmlsZUZvckRldmljZShwcm9maWxlOiBEZXZpY2VQcm9maWxlKTogRGV2aWNlUHJvZmlsZSB7XG4gICAgaWYgKFxuICAgICAgQXJyYXkuZnJvbShwcm9maWxlPy5jOHlfRGV2aWNlUHJvZmlsZT8uc29mdHdhcmUgfHwgW10pLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgaGFzKHRoaXMuZGV2aWNlLCAnYzh5X1N1cHBvcnRlZFNvZnR3YXJlVHlwZXMnKVxuICAgICkge1xuICAgICAgcmV0dXJuIHByb2ZpbGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByb2ZpbGUsXG4gICAgICAgIGM4eV9EZXZpY2VQcm9maWxlOiB7XG4gICAgICAgICAgLi4ucHJvZmlsZS5jOHlfRGV2aWNlUHJvZmlsZSxcbiAgICAgICAgICBzb2Z0d2FyZTogcHJvZmlsZS5jOHlfRGV2aWNlUHJvZmlsZS5zb2Z0d2FyZS5tYXAoc3cgPT5cbiAgICAgICAgICAgIHBpY2tCeShzdywgKF8sIGtleSkgPT4ga2V5ICE9PSAnc29mdHdhcmVUeXBlJylcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG59XG4iLCI8Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidyaWdodCdcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICB0aXRsZT1cInt7ICdSZWxvYWQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwiZ2V0RGV2aWNlUHJvZmlsZXNBbmRVcGRhdGVQcm9maWxlSXRlbXMoKVwiXG4gID5cbiAgICA8aVxuICAgICAgYzh5SWNvbj1cInJlZnJlc2hcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnaWNvbi1zcGluJzogcmVsb2FkaW5nIH1cIlxuICAgID48L2k+XG4gICAge3sgJ1JlbG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG48Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidyaWdodCdcIj5cbiAgPGM4eS1yZWFsdGltZS1idG4gW3NlcnZpY2VdPVwiZGV2aWNlUmVhbHRpbWVcIj48L2M4eS1yZWFsdGltZS1idG4+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtLWdyaWQtLWZ1bGxwYWdlIGNhcmQtLWdyaWQtLWZ1bGxwYWdlIGNhcmQtLWdyaWQgZ3JpZF9fcm93LS0yLTEwLS1tZFwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC0tZ3JpZCBncmlkX19jb2wtLTYtNi0tbWRcIj5cbiAgICA8IS0tIEFWQUlMQUJMRSBQUk9GSUxFUyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYmctbGV2ZWwtMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHNlcGFyYXRvclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjYXJkLXRpdGxlXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPlxuICAgICAgICAgIERldmljZSBwcm9maWxlXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicC0xNlwiPlxuICAgICAgICA8Zm9ybSAjZGV2aWNlUHJvZmlsZUZvcm09XCJuZ0Zvcm1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICAgIDxjOHktdHlwZWFoZWFkXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93XCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnU2VsZWN0IGRldmljZSBwcm9maWxlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIG5hbWU9XCJzZWxlY3RQcm9maWxlXCJcbiAgICAgICAgICAgICAgZGF0YS1jeT1cImRldmljZS10YWItcHJvZmlsZS0tc2VsZWN0LWRldmljZS1wcm9maWxlXCJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFByb2ZpbGVcIlxuICAgICAgICAgICAgICAob25TZWFyY2gpPVwic2V0UGlwZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgW2FsbG93RnJlZUVudHJpZXNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8Yzh5LWxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWwtOCBwLXItOCBjOHktbGlzdF9faXRlbS0tbGlua1wiXG4gICAgICAgICAgICAgICAgKmM4eUZvcj1cImxldCBwcm9maWxlIG9mIGRldmljZVByb2ZpbGVzOyBwaXBlOiBmaWx0ZXJQaXBlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UHJvZmlsZShwcm9maWxlKTsgc2V0UGlwZSgnJylcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGM4eS1oaWdobGlnaHRcbiAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cInByb2ZpbGUubmFtZSB8fCAnJiM0NTsmIzQ1OydcIlxuICAgICAgICAgICAgICAgICAgW3BhdHRlcm5dPVwicGF0dGVyblwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWhpZ2hsaWdodD5cbiAgICAgICAgICAgICAgPC9jOHktbGk+XG4gICAgICAgICAgICA8L2M4eS10eXBlYWhlYWQ+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQXNzaWduIGRldmljZSBwcm9maWxlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNyZWF0ZU9wZXJhdGlvbigpXCJcbiAgICAgICAgICAgICAgICBkYXRhLWN5PVwiZGV2aWNlLXRhYi1wcm9maWxlLS1Bc3NpZ24tZGV2aWNlLXByb2ZpbGUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNlbGVjdGVkUHJvZmlsZT8uaWRcIlxuICAgICAgICAgICAgICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgICAgICAgICAgICAgaW5oZXJpdFxuICAgICAgICAgICAgICAgIFthY3Rpb25EYXRhXT1cInsgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0UuQUNUSU9OUy5BU1NJR05fREVWSUNFX1BST0ZJTEUgfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyAnQXNzaWduIGRldmljZSBwcm9maWxlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIElOU1RBTEwgUFJPRklMRSBPUEVSQVRJT04gLS0+XG4gICAgPGRpdiBjbGFzcz1cImJnLWxldmVsLTFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBzZXBhcmF0b3JcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiY2FyZC10aXRsZVwiXG4gICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5cbiAgICAgICAgICBDdXJyZW50bHkgaW5zdGFsbGVkXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9ja1wiPlxuICAgICAgICA8Yzh5LW9wZXJhdGlvbi1kZXRhaWxzXG4gICAgICAgICAgW29wZXJhdGlvbl09XCJvcGVyYXRpb25cIlxuICAgICAgICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgICAgICAgaW5oZXJpdFxuICAgICAgICAgIHN1cHByZXNzRGF0YU92ZXJyaWRpbmdcbiAgICAgICAgPjwvYzh5LW9wZXJhdGlvbi1kZXRhaWxzPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2FyZC0tZ3JpZF9faW5uZXItc2Nyb2xsIGQtY29sIG5vLWFsaWduLWl0ZW1zXCI+XG4gICAgPGRpdiBjbGFzcz1cImQtY29udGVudHNcIj5cbiAgICAgIDwhLS0gRklSTVdBUkUgLS0+XG4gICAgICA8Yzh5LWRldmljZS10YWItcHJvZmlsZS1kZXRhaWxcbiAgICAgICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICAgICAgW3NlY3Rpb25JY29uXT1cIidjOHktZmlybXdhcmUnXCJcbiAgICAgICAgW3NlY3Rpb25UaXRsZV09XCInRmlybXdhcmUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2VtcHR5U3RhdGVUZXh0XT1cIidObyBmaXJtd2FyZSB0byBkaXNwbGF5LicgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbZW1wdHlTdGF0ZURldGFpbHNdPVwiJ05vIGZpcm13YXJlIGFzc2lnbmVkLicgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbaXNQcm9maWxlU2VsZWN0ZWRdPVwiISFzZWxlY3RlZFByb2ZpbGVcIlxuICAgICAgICBbaXRlbXNdPVwiZmlybXdhcmVJdGVtc1wiXG4gICAgICAgIFtpc0VtcHR5XT1cIiFzZWxlY3RlZFByb2ZpbGU/LmM4eV9EZXZpY2VQcm9maWxlPy5maXJtd2FyZT8ubmFtZVwiXG4gICAgICA+PC9jOHktZGV2aWNlLXRhYi1wcm9maWxlLWRldGFpbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1jb250ZW50c1wiPlxuICAgICAgPCEtLSBTT0ZUV0FSRSAtLT5cbiAgICAgIDxjOHktZGV2aWNlLXRhYi1wcm9maWxlLWRldGFpbFxuICAgICAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgICAgICBbc2VjdGlvbkljb25dPVwiJ2M4eS10b29scydcIlxuICAgICAgICBbc2VjdGlvblRpdGxlXT1cIidTb2Z0d2FyZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbZW1wdHlTdGF0ZVRleHRdPVwiJ05vIHNvZnR3YXJlIHRvIGRpc3BsYXkuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtlbXB0eVN0YXRlRGV0YWlsc109XCInTm8gc29mdHdhcmUgYXNzaWduZWQuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtpc1Byb2ZpbGVTZWxlY3RlZF09XCIhIXNlbGVjdGVkUHJvZmlsZVwiXG4gICAgICAgIFtpdGVtc109XCJzb2Z0d2FyZUl0ZW1zXCJcbiAgICAgICAgW2lzRW1wdHldPVwiXG4gICAgICAgICAgIXNlbGVjdGVkUHJvZmlsZT8uYzh5X0RldmljZVByb2ZpbGU/LnNvZnR3YXJlIHx8XG4gICAgICAgICAgc2VsZWN0ZWRQcm9maWxlPy5jOHlfRGV2aWNlUHJvZmlsZT8uc29mdHdhcmU/Lmxlbmd0aCA9PT0gMFxuICAgICAgICBcIlxuICAgICAgPjwvYzh5LWRldmljZS10YWItcHJvZmlsZS1kZXRhaWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImQtY29udGVudHNcIj5cbiAgICAgIDwhLS0gQ09ORklHVVJBVElPTiAtLT5cbiAgICAgIDxjOHktZGV2aWNlLXRhYi1wcm9maWxlLWRldGFpbFxuICAgICAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgICAgICBbc2VjdGlvbkljb25dPVwiJ2dlYXJzJ1wiXG4gICAgICAgIFtzZWN0aW9uVGl0bGVdPVwiJ0NvbmZpZ3VyYXRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2VtcHR5U3RhdGVUZXh0XT1cIidObyBjb25maWd1cmF0aW9uIHRvIGRpc3BsYXknIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2VtcHR5U3RhdGVEZXRhaWxzXT1cIidObyBjb25maWd1cmF0aW9uIGFzc2lnbmVkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtpc1Byb2ZpbGVTZWxlY3RlZF09XCIhIXNlbGVjdGVkUHJvZmlsZVwiXG4gICAgICAgIFtpdGVtc109XCJjb25maWd1cmF0aW9uSXRlbXNcIlxuICAgICAgICBbaXNFbXB0eV09XCJcbiAgICAgICAgICAhc2VsZWN0ZWRQcm9maWxlPy5jOHlfRGV2aWNlUHJvZmlsZT8uY29uZmlndXJhdGlvbiB8fFxuICAgICAgICAgIHNlbGVjdGVkUHJvZmlsZT8uYzh5X0RldmljZVByb2ZpbGU/LmNvbmZpZ3VyYXRpb24/Lmxlbmd0aCA9PT0gMFxuICAgICAgICBcIlxuICAgICAgPjwvYzh5LWRldmljZS10YWItcHJvZmlsZS1kZXRhaWw+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBmaWxsIGluIHRoZSByZW1hbmluaW5nIHZlcnRpY2FsIHNwYWNlIHdoZW4gZW1wdHkgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtLWdyaWQgZ3JpZF9fY29sLS02LTYtLW1kIGZsZXgtZ3Jvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImJnLWxldmVsLTBcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJiZy1sZXZlbC0xXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -72,4 +72,4 @@ export const PRODUCT_EXPERIENCE_REPOSITORY_SHARED = {
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
};
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc2hhcmVkL3JlcG9zaXRvcnkubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksY0FLWDtBQUxELFdBQVksY0FBYztJQUN4QiwyQ0FBeUIsQ0FBQTtJQUN6QiwyQ0FBeUIsQ0FBQTtJQUN6Qix5REFBdUMsQ0FBQTtJQUN2Qyx5Q0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBTFcsY0FBYyxLQUFkLGNBQWMsUUFLekI7QUFFRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRztJQUNyQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxvQkFBb0I7SUFDL0MsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsb0JBQW9CO0lBQy9DLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLDZCQUE2QjtDQUM5RCxDQUFDO0FBeUdGLE1BQU0sQ0FBTixJQUFZLDRCQUtYO0FBTEQsV0FBWSw0QkFBNEI7SUFDdEMsc0VBQXNDLENBQUE7SUFDdEMsMEVBQTBDLENBQUE7SUFDMUMsNERBQTRCLENBQUE7SUFDNUIscUVBQXFDLENBQUE7QUFDdkMsQ0FBQyxFQUxXLDRCQUE0QixLQUE1Qiw0QkFBNEIsUUFLdkM7QUFNRCxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRztJQUNsRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7WUFDTixVQUFVLEVBQUUsb0JBQW9CO1lBQ2hDLFVBQVUsRUFBRSxnQkFBZ0I7U0FDN0I7UUFDRCxVQUFVLEVBQUU7WUFDVixrQkFBa0IsRUFBRSxvQkFBb0I7WUFDeEMsdUJBQXVCLEVBQUUseUJBQXlCO1lBQ2xELG9CQUFvQixFQUFFLHNCQUFzQjtTQUM3QztRQUNELE9BQU8sRUFBRTtZQUNQLHNCQUFzQixFQUFFLHNCQUFzQjtZQUM5QyxzQkFBc0IsRUFBRSxzQkFBc0I7WUFDOUMscUJBQXFCLEVBQUUsMEJBQTBCO1lBQ2pELG9CQUFvQixFQUFFLHlCQUF5QjtZQUMvQyxlQUFlLEVBQUUsZ0JBQWdCO1NBQ2xDO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsWUFBWSxFQUFFLGFBQWE7WUFDM0Isb0JBQW9CLEVBQUUsb0JBQW9CO1lBQzFDLGFBQWEsRUFBRSxjQUFjO1NBQzlCO0tBQ0Y7SUFDRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7WUFDTixVQUFVLEVBQUUsb0JBQW9CO1lBQ2hDLFVBQVUsRUFBRSxnQkFBZ0I7U0FDN0I7UUFDRCxVQUFVLEVBQUU7WUFDVixrQkFBa0IsRUFBRSxvQkFBb0I7WUFDeEMsdUJBQXVCLEVBQUUsMEJBQTBCO1lBQ25ELG1CQUFtQixFQUFFLHFCQUFxQjtZQUMxQyxvQkFBb0IsRUFBRSxzQkFBc0I7U0FDN0M7UUFDRCxPQUFPLEVBQUU7WUFDUCw0QkFBNEIsRUFBRSwyQkFBMkI7WUFDekQsNEJBQTRCLEVBQUUsMkJBQTJCO1lBQ3pELGtDQUFrQyxFQUFFLGdDQUFnQztTQUNyRTtRQUNELE9BQU8sRUFBRTtZQUNQLFlBQVksRUFBRSxhQUFhO1lBQzNCLG9CQUFvQixFQUFFLG9CQUFvQjtZQUMxQyxrQkFBa0IsRUFBRSxrQkFBa0I7WUFDdEMsYUFBYSxFQUFFLGNBQWM7WUFDN0IsZ0NBQWdDLEVBQUUsK0JBQStCO1NBQ2xFO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTixVQUFVLEVBQUU7WUFDVix1QkFBdUIsRUFBRSx5QkFBeUI7WUFDbEQsMEJBQTBCLEVBQUUsNEJBQTRCO1NBQ3pEO0tBQ0Y7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5cbmV4cG9ydCBlbnVtIFJlcG9zaXRvcnlUeXBlIHtcbiAgRklSTVdBUkUgPSAnYzh5X0Zpcm13YXJlJyxcbiAgU09GVFdBUkUgPSAnYzh5X1NvZnR3YXJlJyxcbiAgQ09ORklHVVJBVElPTiA9ICdjOHlfQ29uZmlndXJhdGlvbkR1bXAnLFxuICBQUk9GSUxFID0gJ2M4eV9Qcm9maWxlJ1xufVxuXG5leHBvcnQgY29uc3QgUkVQT1NJVE9SWV9CSU5BUllfVFlQRVMgPSB7XG4gIFtSZXBvc2l0b3J5VHlwZS5TT0ZUV0FSRV06ICdjOHlfU29mdHdhcmVCaW5hcnknLFxuICBbUmVwb3NpdG9yeVR5cGUuRklSTVdBUkVdOiAnYzh5X0Zpcm13YXJlQmluYXJ5JyxcbiAgW1JlcG9zaXRvcnlUeXBlLkNPTkZJR1VSQVRJT05dOiAnYzh5X0NvbmZpZ3VyYXRpb25EdW1wQmluYXJ5J1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBNb2RhbE1vZGVsIHtcbiAgc2VsZWN0ZWQ/OiB7IGlkPzogc3RyaW5nOyBuYW1lPzogc3RyaW5nOyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgZGVwZW5kZW5jeT86IHsgYzh5X0Zpcm13YXJlOiB7IHZlcnNpb246IHN0cmluZyB9IH07XG4gIHBhdGNoVmVyc2lvbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGRldmljZVR5cGU/OiBzdHJpbmc7XG4gIHNvZnR3YXJlVHlwZT87XG4gIGNvbmZpZ3VyYXRpb25UeXBlPzogc3RyaW5nO1xuICBiaW5hcnk/OiB7XG4gICAgZmlsZT86IEZpbGU7XG4gICAgdXJsPzogc3RyaW5nO1xuICB9O1xuICBjOHlfR2xvYmFsPztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvc2l0b3J5Q2F0ZWdvcnkgZXh0ZW5kcyBQYXJ0aWFsPElNYW5hZ2VkT2JqZWN0PiB7XG4gIHR5cGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGM4eV9GaWx0ZXI/OiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICB9O1xuICBzb2Z0d2FyZVR5cGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlybXdhcmVCaW5hcnkgZXh0ZW5kcyBQYXJ0aWFsPElNYW5hZ2VkT2JqZWN0PiB7XG4gIHR5cGU6ICdjOHlfRmlybXdhcmVCaW5hcnknO1xuICBjOHlfRmlybXdhcmU6IHtcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlybXdhcmVQYXRjaEJpbmFyeSBleHRlbmRzIEZpcm13YXJlQmluYXJ5IHtcbiAgYzh5X1BhdGNoOiB7XG4gICAgZGVwZW5kZW5jeTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvZnR3YXJlQmluYXJ5IGV4dGVuZHMgUGFydGlhbDxJTWFuYWdlZE9iamVjdD4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGM4eV9Tb2Z0d2FyZToge1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgUmVwb3NpdG9yeUJpbmFyeSA9IEZpcm13YXJlQmluYXJ5IHwgU29mdHdhcmVCaW5hcnkgfCBGaXJtd2FyZVBhdGNoQmluYXJ5O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGVkUmVwb3NpdG9yeUJpbmFyeSB7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIGRlcGVuZGVuY3k/OiBzdHJpbmc7XG4gIGM4eV9QYXRjaD86IGJvb2xlYW47XG4gIGlzUGF0Y2g/OiBib29sZWFuO1xuICBwYXRjaERlcGVuZGVuY3k/OiBzdHJpbmc7XG4gIHNvZnR3YXJlVHlwZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VGaXJtd2FyZSB7XG4gIHZlcnNpb246IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VTb2Z0d2FyZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIHNvZnR3YXJlVHlwZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VTb2Z0d2FyZUNoYW5nZSBleHRlbmRzIERldmljZVNvZnR3YXJlIHtcbiAgYWN0aW9uOiAnaW5zdGFsbCcgfCAnZGVsZXRlJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWd1cmF0aW9uU25hcHNob3Qge1xuICBpZD86IHN0cmluZztcbiAgdGltZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGJpbmFyeVVybD86IHN0cmluZztcbiAgYmluYXJ5PzogYW55O1xuICBiaW5hcnlUeXBlPzogYW55O1xuICBkZXZpY2VUeXBlPzogc3RyaW5nO1xuICBjb25maWd1cmF0aW9uVHlwZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VwcG9ydGVkQ29uZmlndXJhdGlvbkl0ZW0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRldmljZVR5cGU/OiBzdHJpbmc7XG4gIGNvbmZpZ3VyYXRpb25UeXBlPzogc3RyaW5nO1xuICBpc0xlZ2FjeT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlQ29uZmlndXJhdGlvbkxpc3RFbXB0eVN0YXRlIHtcbiAgaWNvbj86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHRleHQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIERldmljZUNvbmZpZ3VyYXRpb25PcGVyYXRpb24ge1xuICBVUExPQURfQ09ORklHID0gJ2M4eV9VcGxvYWRDb25maWdGaWxlJyxcbiAgRE9XTkxPQURfQ09ORklHID0gJ2M4eV9Eb3dubG9hZENvbmZpZ0ZpbGUnLFxuICBDT05GSUcgPSAnYzh5X0NvbmZpZ3VyYXRpb24nLFxuICBTRU5EX0NPTkZJRyA9ICdjOHlfU2VuZENvbmZpZ3VyYXRpb24nXG59XG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckNyaXRlcmlhIHtcbiAgbmFtZT86IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgY29uc3QgUFJPRFVDVF9FWFBFUklFTkNFX1JFUE9TSVRPUllfU0hBUkVEID0ge1xuICBTT0ZUV0FSRToge1xuICAgIEVWRU5UUzoge1xuICAgICAgUkVQT1NJVE9SWTogJ3NvZnR3YXJlUmVwb3NpdG9yeScsXG4gICAgICBERVZJQ0VfVEFCOiAnZGV2aWNlU29mdHdhcmUnXG4gICAgfSxcbiAgICBDT01QT05FTlRTOiB7XG4gICAgICBBRERfU09GVFdBUkVfTU9EQUw6ICdhZGQtc29mdHdhcmUtbW9kYWwnLFxuICAgICAgREVWSUNFX1NPRlRXQVJFX0NIQU5HRVM6ICdkZXZpY2Utc29mdHdhcmUtY2hhbmdlcycsXG4gICAgICBERVZJQ0VfU09GVFdBUkVfTElTVDogJ2RldmljZS1zb2Z0d2FyZS1saXN0J1xuICAgIH0sXG4gICAgQUNUSU9OUzoge1xuICAgICAgQVBQTFlfU09GVFdBUkVfQ0hBTkdFUzogJ2FwcGx5U29mdHdhcmVDaGFuZ2VzJyxcbiAgICAgIENMRUFSX1NPRlRXQVJFX0NIQU5HRVM6ICdjbGVhclNvZnR3YXJlQ2hhbmdlcycsXG4gICAgICBPUEVOX0lOU1RBTExfU09GVFdBUkU6ICdvcGVuSW5zdGFsbFNvZnR3YXJlTW9kYWwnLFxuICAgICAgT1BFTl9VUERBVEVfU09GVFdBUkU6ICdvcGVuVXBkYXRlU29mdHdhcmVNb2RhbCcsXG4gICAgICBERUxFVEVfU09GVFdBUkU6ICdkZWxldGVTb2Z0d2FyZSdcbiAgICB9LFxuICAgIFJFU1VMVFM6IHtcbiAgICAgIEFERF9TT0ZUV0FSRTogJ2FkZFNvZnR3YXJlJyxcbiAgICAgIEFERF9TT0ZUV0FSRV9WRVJTSU9OOiAnYWRkU29mdHdhcmVWZXJzaW9uJyxcbiAgICAgIEVESVRfU09GVFdBUkU6ICdlZGl0U29mdHdhcmUnXG4gICAgfVxuICB9LFxuICBGSVJNV0FSRToge1xuICAgIEVWRU5UUzoge1xuICAgICAgUkVQT1NJVE9SWTogJ2Zpcm13YXJlUmVwb3NpdG9yeScsXG4gICAgICBERVZJQ0VfVEFCOiAnZGV2aWNlRmlybXdhcmUnXG4gICAgfSxcbiAgICBDT01QT05FTlRTOiB7XG4gICAgICBBRERfRklSTVdBUkVfTU9EQUw6ICdhZGQtZmlybXdhcmUtbW9kYWwnLFxuICAgICAgQUREX0ZJUk1XQVJfUEFUQ0hfTU9EQUw6ICdhZGQtZmlybXdhcmUtcGF0Y2gtbW9kYWwnLFxuICAgICAgRklSTVdBUkVfREVWSUNFX1RBQjogJ2Zpcm13YXJlLWRldmljZS10YWInLFxuICAgICAgREVWSUNFX0ZJUk1XQVJFX0xJU1Q6ICdkZXZpY2UtZmlybXdhcmUtbGlzdCdcbiAgICB9LFxuICAgIEFDVElPTlM6IHtcbiAgICAgIE9QRU5fSU5TVEFMTF9GSVJNV0FSRV9ESUFMT0c6ICdvcGVuSW5zdGFsbEZpcm13YXJlRGlhbG9nJyxcbiAgICAgIE9QRU5fUkVQTEFDRV9GSVJNV0FSRV9ESUFMT0c6ICdvcGVuUmVwbGFjZUZpcm13YXJlRGlhbG9nJyxcbiAgICAgIE9QRU5fSU5TVEFMTF9GSVJNV0FSRV9QQVRDSF9ESUFMT0c6ICdvcGVuSW5zdGFsbEZpcm13YXJlUGF0Y2hEaWFsb2cnXG4gICAgfSxcbiAgICBSRVNVTFRTOiB7XG4gICAgICBBRERfRklSTVdBUkU6ICdhZGRGaXJtd2FyZScsXG4gICAgICBBRERfRklSTVdBUkVfVkVSU0lPTjogJ2FkZEZpcm13YXJlVmVyc2lvbicsXG4gICAgICBBRERfRklSTVdBUkVfUEFUQ0g6ICdhZGRGaXJtd2FyZVBhdGNoJyxcbiAgICAgIEVESVRfRklSTVdBUkU6ICdlZGl0RmlybXdhcmUnLFxuICAgICAgQ1JFQVRFX0ZJUk1XQVJFX1VQREFURV9PUEVSQVRJT046ICdjcmVhdGVGaXJtd2FyZVVwZGF0ZU9wZXJhdGlvbidcbiAgICB9XG4gIH0sXG4gIFNIQVJFRDoge1xuICAgIENPTVBPTkVOVFM6IHtcbiAgICAgIFJFUE9TSVRPUllfU0VMRUNUX01PREFMOiAncmVwb3NpdG9yeS1zZWxlY3QtbW9kYWwnLFxuICAgICAgU0VMRUNUX0NPTkZJR1VSQVRJT05fTU9EQUw6ICdzZWxlY3QtY29uZmlndXJhdGlvbi1tb2RhbCdcbiAgICB9XG4gIH1cbn0gYXMgY29uc3Q7XG4iXX0=
|