@tiba-spark/client-shared-lib 25.4.1-35 → 25.4.1-41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libraries/constants/version-constants.mjs +1 -10
- package/esm2022/libraries/enums/http-cancel-blacklist.enum.mjs +10 -8
- package/esm2022/libraries/enums/localization.enum.mjs +2 -1
- package/esm2022/libraries/guards/sub-module-guard.mjs +3 -3
- package/esm2022/libraries/localization/localization.action.mjs +1 -10
- package/esm2022/libraries/localization/localization.module.mjs +1 -4
- package/esm2022/libraries/localization/localization.state.mjs +5 -21
- package/esm2022/libraries/modules/alerts-and-notifications/alerts-and-notifications.actions.mjs +1 -7
- package/esm2022/libraries/modules/alerts-and-notifications/alerts-and-notifications.state.mjs +5 -20
- package/esm2022/libraries/modules/auth/session.actions.mjs +1 -10
- package/esm2022/libraries/modules/auth/session.state.mjs +5 -78
- package/esm2022/libraries/modules/login/login.actions.mjs +1 -9
- package/esm2022/libraries/modules/login/login.module.mjs +4 -4
- package/esm2022/libraries/modules/login/login.state.mjs +5 -24
- package/esm2022/libraries/modules/security/security.actions.mjs +1 -8
- package/esm2022/libraries/modules/security/security.state.mjs +5 -18
- package/esm2022/libraries/modules/smartparks/smartpark.actions.mjs +1 -12
- package/esm2022/libraries/modules/smartparks/smartpark.state.mjs +5 -20
- package/esm2022/libraries/modules/tenant-logo/tenant-logo.actions.mjs +1 -7
- package/esm2022/libraries/modules/tenant-logo/tenant-logo.state.mjs +5 -16
- package/esm2022/libraries/modules/user-settings/user-settings.state.mjs +5 -57
- package/esm2022/libraries/resolvers/index.mjs +1 -4
- package/esm2022/libraries/service-proxy/cloud-service-proxies.mjs +133 -790
- package/esm2022/libraries/service-proxy/identity-service-proxies.mjs +1 -560
- package/esm2022/libraries/service-proxy/service-proxy.module.mjs +4 -8
- package/esm2022/libraries/services/auth-token.service.mjs +68 -9
- package/esm2022/libraries/services/refresh-token.service.mjs +18 -16
- package/esm2022/libraries/services/smartpark.service.mjs +12 -8
- package/esm2022/libraries/services/tenant.service.mjs +7 -27
- package/fesm2022/tiba-spark-client-shared-lib.mjs +1853 -3372
- package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
- package/libraries/constants/version-constants.d.ts +0 -4
- package/libraries/constants/version-constants.d.ts.map +1 -1
- package/libraries/enums/http-cancel-blacklist.enum.d.ts.map +1 -1
- package/libraries/enums/localization.enum.d.ts +2 -1
- package/libraries/enums/localization.enum.d.ts.map +1 -1
- package/libraries/localization/localization.action.d.ts +0 -4
- package/libraries/localization/localization.action.d.ts.map +1 -1
- package/libraries/localization/localization.module.d.ts.map +1 -1
- package/libraries/localization/localization.state.d.ts +2 -4
- package/libraries/localization/localization.state.d.ts.map +1 -1
- package/libraries/modules/alerts-and-notifications/alerts-and-notifications.actions.d.ts +0 -5
- package/libraries/modules/alerts-and-notifications/alerts-and-notifications.actions.d.ts.map +1 -1
- package/libraries/modules/alerts-and-notifications/alerts-and-notifications.state.d.ts +3 -5
- package/libraries/modules/alerts-and-notifications/alerts-and-notifications.state.d.ts.map +1 -1
- package/libraries/modules/auth/session.actions.d.ts +0 -8
- package/libraries/modules/auth/session.actions.d.ts.map +1 -1
- package/libraries/modules/auth/session.state.d.ts +3 -9
- package/libraries/modules/auth/session.state.d.ts.map +1 -1
- package/libraries/modules/login/login.actions.d.ts +0 -7
- package/libraries/modules/login/login.actions.d.ts.map +1 -1
- package/libraries/modules/login/login.module.d.ts +1 -1
- package/libraries/modules/login/login.state.d.ts +3 -5
- package/libraries/modules/login/login.state.d.ts.map +1 -1
- package/libraries/modules/security/security.actions.d.ts +0 -6
- package/libraries/modules/security/security.actions.d.ts.map +1 -1
- package/libraries/modules/security/security.state.d.ts +2 -7
- package/libraries/modules/security/security.state.d.ts.map +1 -1
- package/libraries/modules/smartparks/smartpark.actions.d.ts +0 -6
- package/libraries/modules/smartparks/smartpark.actions.d.ts.map +1 -1
- package/libraries/modules/smartparks/smartpark.state.d.ts +3 -5
- package/libraries/modules/smartparks/smartpark.state.d.ts.map +1 -1
- package/libraries/modules/tenant-logo/tenant-logo.actions.d.ts +0 -5
- package/libraries/modules/tenant-logo/tenant-logo.actions.d.ts.map +1 -1
- package/libraries/modules/tenant-logo/tenant-logo.state.d.ts +3 -5
- package/libraries/modules/tenant-logo/tenant-logo.state.d.ts.map +1 -1
- package/libraries/modules/user-settings/user-settings.state.d.ts +3 -6
- package/libraries/modules/user-settings/user-settings.state.d.ts.map +1 -1
- package/libraries/resolvers/index.d.ts +0 -3
- package/libraries/resolvers/index.d.ts.map +1 -1
- package/libraries/service-proxy/cloud-service-proxies.d.ts +35 -111
- package/libraries/service-proxy/cloud-service-proxies.d.ts.map +1 -1
- package/libraries/service-proxy/identity-service-proxies.d.ts +0 -53
- package/libraries/service-proxy/identity-service-proxies.d.ts.map +1 -1
- package/libraries/service-proxy/service-proxy.module.d.ts.map +1 -1
- package/libraries/services/auth-token.service.d.ts +4 -0
- package/libraries/services/auth-token.service.d.ts.map +1 -1
- package/libraries/services/refresh-token.service.d.ts +3 -4
- package/libraries/services/refresh-token.service.d.ts.map +1 -1
- package/libraries/services/smartpark.service.d.ts +3 -1
- package/libraries/services/smartpark.service.d.ts.map +1 -1
- package/libraries/services/tenant.service.d.ts +3 -6
- package/libraries/services/tenant.service.d.ts.map +1 -1
- package/package.json +1 -1
- package/esm2022/libraries/resolvers/mobile-command-center-module.resolver.mjs +0 -53
- package/esm2022/libraries/resolvers/mobile-config.resolver.mjs +0 -21
- package/esm2022/libraries/resolvers/mobile-version.resolver.mjs +0 -24
- package/libraries/resolvers/mobile-command-center-module.resolver.d.ts +0 -21
- package/libraries/resolvers/mobile-command-center-module.resolver.d.ts.map +0 -1
- package/libraries/resolvers/mobile-config.resolver.d.ts +0 -12
- package/libraries/resolvers/mobile-config.resolver.d.ts.map +0 -1
- package/libraries/resolvers/mobile-version.resolver.d.ts +0 -13
- package/libraries/resolvers/mobile-version.resolver.d.ts.map +0 -1
|
@@ -6,7 +6,6 @@ import { cloneDeep } from 'lodash';
|
|
|
6
6
|
import { combineLatest } from 'rxjs';
|
|
7
7
|
import { filter, switchMap, tap } from 'rxjs/operators';
|
|
8
8
|
import { MessageBarPosition } from '../../components/message-bar/message-bar-position.enum';
|
|
9
|
-
import { VERSION_MOBILE_LATEST } from '../../constants/version-constants';
|
|
10
9
|
import { SmartParkStatusText } from '../../enums';
|
|
11
10
|
import { Localization } from '../../enums/localization.enum';
|
|
12
11
|
import { AppModule, SmartparkDto, SmartParkStatus, SmartParkType, UpdateSmartparkVarDto } from '../../service-proxy/cloud-service-proxies';
|
|
@@ -17,7 +16,7 @@ import { createMessageText } from '../../utils/message-bar.util';
|
|
|
17
16
|
import { lowerCaseFirstLetter } from '../../utils/text.util';
|
|
18
17
|
import { ClearSelectedFacilityAction, SetSmartparkBasicAllAction } from '../facility/facility.actions';
|
|
19
18
|
import { MenuSubModuleLoadAction } from '../sidenav/sidenav.actions';
|
|
20
|
-
import { ClearSelectedParkAction, ClearSelectedSmartparkAction, ClearSmartparksBasicAction, ClearSpAndSparkVersionsAction, DisconnectSmartParkAction, ExportPdfSmartparksTableAction, ExportSmartparkAction, LoadBackofficeSmartparksTableAction, LoadBackofficeSpAndSparkVersionsAction, LoadBackofficeVarByIdAction, LoadBackofficeVarsAction,
|
|
19
|
+
import { ClearSelectedParkAction, ClearSelectedSmartparkAction, ClearSmartparksBasicAction, ClearSpAndSparkVersionsAction, DisconnectSmartParkAction, ExportPdfSmartparksTableAction, ExportSmartparkAction, LoadBackofficeSmartparksTableAction, LoadBackofficeSpAndSparkVersionsAction, LoadBackofficeVarByIdAction, LoadBackofficeVarsAction, LoadParkDevicesAction, LoadParksAction, LoadSmartparksAction, LoadSmartparksBasicAction, LoadSmartparksDropdownAction, LoadSmartparksTableAction, LoadSpAndSparkVersionsAction, LoadVarsAction, SelectParkAction, SelectSmartParkAction, SetSmartParkAction, SetSmartParkTableAction, SetSmartParkVersionsAction, SmartParkDeviceStatusChangedAction, SyncUsersAndRolesBySmartparkIdAction, UpdateSmartparkVarAction } from './smartpark.actions';
|
|
21
20
|
import * as i0 from "@angular/core";
|
|
22
21
|
import * as i1 from "@ngxs/store";
|
|
23
22
|
import * as i2 from "../../services/revenue.service";
|
|
@@ -30,7 +29,7 @@ import * as i8 from "../../services/route.service";
|
|
|
30
29
|
import * as i9 from "@ngx-translate/core";
|
|
31
30
|
import * as i10 from "../../services/export-file.service";
|
|
32
31
|
let SmartparkState = class SmartparkState {
|
|
33
|
-
constructor(store, revenueService, smartparkCloudServiceProxy, facilityRpcServiceProxy, facilityIdentityServiceProxy, deviceRpcServiceProxy, messageBarService, routeService, translateService, exportFileService,
|
|
32
|
+
constructor(store, revenueService, smartparkCloudServiceProxy, facilityRpcServiceProxy, facilityIdentityServiceProxy, deviceRpcServiceProxy, messageBarService, routeService, translateService, exportFileService, backofficeCloudServiceProxy, licenseCloudServiceProxy) {
|
|
34
33
|
this.store = store;
|
|
35
34
|
this.revenueService = revenueService;
|
|
36
35
|
this.smartparkCloudServiceProxy = smartparkCloudServiceProxy;
|
|
@@ -41,7 +40,6 @@ let SmartparkState = class SmartparkState {
|
|
|
41
40
|
this.routeService = routeService;
|
|
42
41
|
this.translateService = translateService;
|
|
43
42
|
this.exportFileService = exportFileService;
|
|
44
|
-
this.mobileIdentityServiceProxy = mobileIdentityServiceProxy;
|
|
45
43
|
this.backofficeCloudServiceProxy = backofficeCloudServiceProxy;
|
|
46
44
|
this.licenseCloudServiceProxy = licenseCloudServiceProxy;
|
|
47
45
|
}
|
|
@@ -117,16 +115,6 @@ let SmartparkState = class SmartparkState {
|
|
|
117
115
|
return this.store.dispatch(new SetSmartparkBasicAllAction(smartparkBasic));
|
|
118
116
|
}));
|
|
119
117
|
}
|
|
120
|
-
onLoadMobileSmartparksBasicAction(ctx, action) {
|
|
121
|
-
ctx.dispatch(new MenuSubModuleLoadAction(action.subModule));
|
|
122
|
-
const smartparks$ = this.mobileIdentityServiceProxy.mobileGetSmartparkBasicAll(action.appModule, VERSION_MOBILE_LATEST);
|
|
123
|
-
return smartparks$.pipe(switchMap(smartparkBasic => {
|
|
124
|
-
ctx.patchState({
|
|
125
|
-
smartParkWrapper: smartparkBasic.data,
|
|
126
|
-
});
|
|
127
|
-
return this.store.dispatch(new SetSmartparkBasicAllAction(smartparkBasic));
|
|
128
|
-
}));
|
|
129
|
-
}
|
|
130
118
|
onClearSmartparksBasicAction(ctx, _) {
|
|
131
119
|
ctx.patchState({
|
|
132
120
|
smartParkWrapper: null,
|
|
@@ -421,7 +409,7 @@ let SmartparkState = class SmartparkState {
|
|
|
421
409
|
};
|
|
422
410
|
return createMessageText(messageBarPayload);
|
|
423
411
|
}
|
|
424
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmartparkState, deps: [{ token: i1.Store }, { token: i2.RevenueService }, { token: i3.SmartparkCloudServiceProxy }, { token: i4.FacilityRpcServiceProxy }, { token: i5.FacilityIdentityServiceProxy }, { token: i6.Rpc.DeviceRpcServiceProxy }, { token: i7.MessageBarService }, { token: i8.RouteService }, { token: i9.TranslateService }, { token: i10.ExportFileService }, { token:
|
|
412
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmartparkState, deps: [{ token: i1.Store }, { token: i2.RevenueService }, { token: i3.SmartparkCloudServiceProxy }, { token: i4.FacilityRpcServiceProxy }, { token: i5.FacilityIdentityServiceProxy }, { token: i6.Rpc.DeviceRpcServiceProxy }, { token: i7.MessageBarService }, { token: i8.RouteService }, { token: i9.TranslateService }, { token: i10.ExportFileService }, { token: i3.BackofficeCloudServiceProxy }, { token: i3.LicenseCloudServiceProxy }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
425
413
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmartparkState }); }
|
|
426
414
|
};
|
|
427
415
|
__decorate([
|
|
@@ -430,9 +418,6 @@ __decorate([
|
|
|
430
418
|
__decorate([
|
|
431
419
|
Action(LoadSmartparksBasicAction, { cancelUncompleted: true })
|
|
432
420
|
], SmartparkState.prototype, "onLoadSmartparksBasicAction", null);
|
|
433
|
-
__decorate([
|
|
434
|
-
Action(LoadMobileSmartparksBasicAction, { cancelUncompleted: true })
|
|
435
|
-
], SmartparkState.prototype, "onLoadMobileSmartparksBasicAction", null);
|
|
436
421
|
__decorate([
|
|
437
422
|
Action(ClearSmartparksBasicAction, { cancelUncompleted: true })
|
|
438
423
|
], SmartparkState.prototype, "onClearSmartparksBasicAction", null);
|
|
@@ -585,5 +570,5 @@ SmartparkState = __decorate([
|
|
|
585
570
|
export { SmartparkState };
|
|
586
571
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmartparkState, decorators: [{
|
|
587
572
|
type: Injectable
|
|
588
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.RevenueService }, { type: i3.SmartparkCloudServiceProxy }, { type: i4.FacilityRpcServiceProxy }, { type: i5.FacilityIdentityServiceProxy }, { type: i6.Rpc.DeviceRpcServiceProxy }, { type: i7.MessageBarService }, { type: i8.RouteService }, { type: i9.TranslateService }, { type: i10.ExportFileService }, { type:
|
|
589
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwYXJrLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL3NtYXJ0cGFya3Mvc21hcnRwYXJrLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXVCLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUc1RixPQUFPLEVBQUUscUJBQXFCLEVBQWMsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzdELE9BQU8sRUFDTCxTQUFTLEVBQ21CLFlBQVksRUFDeEMsZUFBZSxFQUFFLGFBQWEsRUFBeUIscUJBQXFCLEVBQzdFLE1BQU0sMkNBQTJDLENBQUM7QUFNbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlFLE9B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QVU3QixzQ0FBc0MsTUFRdEMsd0JBQXdCLE1BNEJ4QixnQ0FBZ0MsTUFhaEMseUJBQXlCLE1BWXpCLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRlIH0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbic7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWVzc2FnZUJhclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci1wb3NpdGlvbi5lbnVtJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJQYXlsb2FkIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci10ZXh0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbWVzc2FnZS1iYXIvbWVzc2FnZS1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBWRVJTSU9OX01PQklMRV9MQVRFU1QsIFZFUlNJT05fVjEgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdmVyc2lvbi1jb25zdGFudHMnO1xuaW1wb3J0IHsgU21hcnRQYXJrU3RhdHVzVGV4dCB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IExvY2FsaXphdGlvbiB9IGZyb20gJy4uLy4uL2VudW1zL2xvY2FsaXphdGlvbi5lbnVtJztcbmltcG9ydCB7IElQYXJrRGV0YWlscyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcGFyay1kZXRhaWxzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBScGMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5JztcbmltcG9ydCB7XG4gIEFwcE1vZHVsZSwgQmFja29mZmljZUNsb3VkU2VydmljZVByb3h5LCBGYWNpbGl0eUJhc2ljRHRvLCBMaWNlbnNlQ2xvdWRTZXJ2aWNlUHJveHksIE9iamVjdEh0dHBSZXNwb25zZURhdGEsXG4gIFNtYXJ0cGFya0Nsb3VkU2VydmljZVByb3h5LCBTbWFydHBhcmtEdG8sIFNtYXJ0cGFya0ZpbHRlck9wdGlvbkR0bywgU21hcnRwYXJrRmlsdGVyT3B0aW9uRHRvSUVudW1lcmFibGVIdHRwUmVzcG9uc2VEYXRhLFxuICBTbWFydFBhcmtTdGF0dXMsIFNtYXJ0UGFya1R5cGUsIFNwQW5kU3BhcmtWZXJzaW9uc0R0bywgVXBkYXRlU21hcnRwYXJrVmFyRHRvLCBWYXJEdG9cbn0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgRmFjaWxpdHlJZGVudGl0eVNlcnZpY2VQcm94eSwgTW9iaWxlSWRlbnRpdHlTZXJ2aWNlUHJveHksIFNtYXJ0cGFya0Jhc2ljRHRvLCBTbWFydFBhcmtXcmFwcGVyRHRvIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9pZGVudGl0eS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgRmFjaWxpdHlScGNTZXJ2aWNlUHJveHksIElEZXZpY2VEdG8gfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L3JwYy1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgRXhwb3J0RmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHBvcnQtZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJldmVudWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmV2ZW51ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JvdXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgcGFyc2VBcGlFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlscy9hcGktaGVscGVyLnV0aWwnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdERldmljZVN0YXR1cyB9IGZyb20gJy4uLy4uL3V0aWxzL2RldmljZS51dGlsJztcbmltcG9ydCB7IG1hcmtFbnRpdGllc0FzQ2hhbmdlZCwgUm93T3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvaGVscGVyLnV0aWwnO1xuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vLi4vdXRpbHMvbGFuZy51dGlsJztcbmltcG9ydCB7IGNyZWF0ZU1lc3NhZ2VUZXh0IH0gZnJvbSAnLi4vLi4vdXRpbHMvbWVzc2FnZS1iYXIudXRpbCc7XG5pbXBvcnQgeyBsb3dlckNhc2VGaXJzdExldHRlciB9IGZyb20gJy4uLy4uL3V0aWxzL3RleHQudXRpbCc7XG5pbXBvcnQgeyBDbGVhclNlbGVjdGVkRmFjaWxpdHlBY3Rpb24sIFNldFNtYXJ0cGFya0Jhc2ljQWxsQWN0aW9uIH0gZnJvbSAnLi4vZmFjaWxpdHkvZmFjaWxpdHkuYWN0aW9ucyc7XG5pbXBvcnQgeyBNZW51U3ViTW9kdWxlTG9hZEFjdGlvbiB9IGZyb20gJy4uL3NpZGVuYXYvc2lkZW5hdi5hY3Rpb25zJztcbmltcG9ydCB7XG4gIENsZWFyU2VsZWN0ZWRQYXJrQWN0aW9uLCBDbGVhclNlbGVjdGVkU21hcnRwYXJrQWN0aW9uLCBDbGVhclNtYXJ0cGFya3NCYXNpY0FjdGlvbiwgQ2xlYXJTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24sXG4gIERpc2Nvbm5lY3RTbWFydFBhcmtBY3Rpb24sIEV4cG9ydFBkZlNtYXJ0cGFya3NUYWJsZUFjdGlvbiwgRXhwb3J0U21hcnRwYXJrQWN0aW9uLCBMb2FkQmFja29mZmljZVNtYXJ0cGFya3NUYWJsZUFjdGlvbixcbiAgTG9hZEJhY2tvZmZpY2VTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24sIExvYWRCYWNrb2ZmaWNlVmFyQnlJZEFjdGlvbiwgTG9hZEJhY2tvZmZpY2VWYXJzQWN0aW9uLCBMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uLFxuICBMb2FkUGFya0RldmljZXNBY3Rpb24sIExvYWRQYXJrc0FjdGlvbiwgTG9hZFNtYXJ0cGFya3NBY3Rpb24sIExvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24sIExvYWRTbWFydHBhcmtzRHJvcGRvd25BY3Rpb24sIExvYWRTbWFydHBhcmtzVGFibGVBY3Rpb24sXG4gIExvYWRTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24sIExvYWRWYXJzQWN0aW9uLCBTZWxlY3RQYXJrQWN0aW9uLCBTZWxlY3RTbWFydFBhcmtBY3Rpb24sIFNldFNtYXJ0UGFya0FjdGlvbixcbiAgU2V0U21hcnRQYXJrVGFibGVBY3Rpb24sIFNldFNtYXJ0UGFya1ZlcnNpb25zQWN0aW9uLCBTbWFydFBhcmtEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uLCBTeW5jVXNlcnNBbmRSb2xlc0J5U21hcnRwYXJrSWRBY3Rpb24sXG4gIFVwZGF0ZVNtYXJ0cGFya1ZhckFjdGlvblxufSBmcm9tICcuL3NtYXJ0cGFyay5hY3Rpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBTbWFydHBhcmtzU3RhdGVNb2RlbCB7XG4gIHNtYXJ0cGFya3M6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXTtcbiAgbGF0ZXN0U21hcnRwYXJrczogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdO1xuICBTcEFuZFNwYXJrVmVyc2lvbnM6IFNwQW5kU3BhcmtWZXJzaW9uc0R0bztcbiAgY291bnRTbWFydFBhcmtzOiBudW1iZXI7XG4gIGNvdW50UGFya2luZ0xvdHM6IG51bWJlcjtcbiAgc2VsZWN0ZWRTbWFydFBhcmtJZDogbnVtYmVyO1xuICBzZWxlY3RlZFNtYXJ0UGFyazogU21hcnRwYXJrRHRvO1xuICBwYXJrczogRmFjaWxpdHlCYXNpY0R0b1tdO1xuICBzZWxlY3RlZFBhcmtJZDogbnVtYmVyO1xuICBzZWxlY3RlZFBhcmtEZXRhaWxzOiBJUGFya0RldGFpbHM7XG4gIHNtYXJ0cGFya0d1aWQ6IHN0cmluZztcbiAgdmVyc2lvbnM6IFN0cmluZ01hcDxzdHJpbmc+O1xuICBzbWFydFBhcmtXcmFwcGVyOiBTbWFydFBhcmtXcmFwcGVyRHRvO1xuICB2YXJzOiBWYXJEdG9bXTtcbiAgZXhwb3J0UGRmU21hcnRwYXJrczogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdO1xuICBmYWNpbGl0eVRyZWU6IFNtYXJ0cGFya0ZpbHRlck9wdGlvbkR0b1tdO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5AU3RhdGU8U21hcnRwYXJrc1N0YXRlTW9kZWw+KHtcbiAgbmFtZTogJ3NtYXJ0cGFyaycsXG4gIGRlZmF1bHRzOiB7XG4gICAgc21hcnRwYXJrczogbnVsbCxcbiAgICBsYXRlc3RTbWFydHBhcmtzOiBudWxsLFxuICAgIGNvdW50U21hcnRQYXJrczogMCxcbiAgICBjb3VudFBhcmtpbmdMb3RzOiAwLFxuICAgIHNlbGVjdGVkU21hcnRQYXJrSWQ6IG51bGwsXG4gICAgc2VsZWN0ZWRTbWFydFBhcms6IG51bGwsXG4gICAgcGFya3M6IG51bGwsXG4gICAgc2VsZWN0ZWRQYXJrSWQ6IG51bGwsXG4gICAgc2VsZWN0ZWRQYXJrRGV0YWlsczogbnVsbCxcbiAgICBzbWFydHBhcmtHdWlkOiBudWxsLFxuICAgIHZlcnNpb25zOiB7fSxcbiAgICBTcEFuZFNwYXJrVmVyc2lvbnM6IG51bGwsXG4gICAgc21hcnRQYXJrV3JhcHBlcjogbnVsbCxcbiAgICB2YXJzOiBbXSxcbiAgICBleHBvcnRQZGZTbWFydHBhcmtzOiBudWxsLFxuICAgIGZhY2lsaXR5VHJlZTogW10sXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0cGFya1N0YXRlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHJldmVudWVTZXJ2aWNlOiBSZXZlbnVlU2VydmljZSxcbiAgICBwcml2YXRlIHNtYXJ0cGFya0Nsb3VkU2VydmljZVByb3h5OiBTbWFydHBhcmtDbG91ZFNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGZhY2lsaXR5UnBjU2VydmljZVByb3h5OiBGYWNpbGl0eVJwY1NlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGZhY2lsaXR5SWRlbnRpdHlTZXJ2aWNlUHJveHk6IEZhY2lsaXR5SWRlbnRpdHlTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBkZXZpY2VScGNTZXJ2aWNlUHJveHk6IFJwYy5EZXZpY2VScGNTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBtZXNzYWdlQmFyU2VydmljZTogTWVzc2FnZUJhclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZVNlcnZpY2U6IFJvdXRlU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBleHBvcnRGaWxlU2VydmljZTogRXhwb3J0RmlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2JpbGVJZGVudGl0eVNlcnZpY2VQcm94eTogTW9iaWxlSWRlbnRpdHlTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBiYWNrb2ZmaWNlQ2xvdWRTZXJ2aWNlUHJveHk6IEJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGxpY2Vuc2VDbG91ZFNlcnZpY2VQcm94eTogTGljZW5zZUNsb3VkU2VydmljZVByb3h5KSB7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHBhcmtzKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IEZhY2lsaXR5QmFzaWNEdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLnBhcmtzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWxlY3RlZFBhcmtJZChzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZFBhcmtJZDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWRQYXJrRGV0YWlscyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBJUGFya0RldGFpbHMge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZFBhcmtEZXRhaWxzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBwYXJrRGV2aWNlcyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBJRGV2aWNlRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZFBhcmtEZXRhaWxzPy5kZXZpY2VzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBndWlkKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0YXRlLnNtYXJ0cGFya0d1aWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNtYXJ0cGFya3Moc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdIHtcbiAgICByZXR1cm4gc3RhdGUuc21hcnRwYXJrcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgbGF0ZXN0UGFnZShzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiAoU21hcnRwYXJrRHRvIHwgU21hcnRwYXJrQmFzaWNEdG8pW10ge1xuICAgIHJldHVybiBzdGF0ZS5sYXRlc3RTbWFydHBhcmtzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWxlY3RlZFNtYXJ0UGFya0lkKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHN0YXRlLnNlbGVjdGVkU21hcnRQYXJrSWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNlbGVjdGVkU21hcnRQYXJrRGV0YWlscyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBTbWFydHBhcmtEdG8ge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZFNtYXJ0UGFyaztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgY291bnRTbWFydFBhcmtzKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHN0YXRlLmNvdW50U21hcnRQYXJrcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgY291bnRQYXJraW5nTG90cyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5jb3VudFBhcmtpbmdMb3RzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB2ZXJzaW9ucyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBTdHJpbmdNYXA8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHN0YXRlLnZlcnNpb25zO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzbWFydHBhcmtTZWFyY2hPcHRpb25zKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IFNwQW5kU3BhcmtWZXJzaW9uc0R0byB7XG4gICAgcmV0dXJuIHN0YXRlLlNwQW5kU3BhcmtWZXJzaW9ucztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc21hcnRQYXJrV3JhcHBlcihzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBTbWFydFBhcmtXcmFwcGVyRHRvIHtcbiAgICByZXR1cm4gc3RhdGUuc21hcnRQYXJrV3JhcHBlcjtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdmFycyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBWYXJEdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLnZhcnM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGV4cG9ydFBkZlNtYXJ0cGFya3Moc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdIHtcbiAgICByZXR1cm4gc3RhdGUuZXhwb3J0UGRmU21hcnRwYXJrcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZmFjaWxpdHlUcmVlKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IFNtYXJ0cGFya0ZpbHRlck9wdGlvbkR0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUuZmFjaWxpdHlUcmVlO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkU21hcnRwYXJrc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRTbWFydHBhcmtzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkU21hcnRwYXJrc0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNtYXJ0cGFya3M6IFtdLFxuICAgICAgY291bnRTbWFydFBhcmtzOiAwLFxuICAgICAgY291bnRQYXJraW5nTG90czogdGhpcy5jb3VudFNtYXJ0cGFya0ZhY2lsaXRpZXMoW10pXG4gICAgfSk7XG5cbiAgICBjb25zdCBzbWFydHBhcmtzJCA9IHRoaXMuc21hcnRwYXJrQ2xvdWRTZXJ2aWNlUHJveHkuZ2V0QWxsU21hcnRQYXJrcygpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChzbWFydHBhcmtzID0+IHtcbiAgICAgIGN0eC5kaXNwYXRjaChuZXcgU2V0U21hcnRQYXJrQWN0aW9uKHNtYXJ0cGFya3MuZGF0YSwgYWN0aW9uLnJlbG9hZCkpO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZFNtYXJ0cGFya3NCYXNpY0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24pIHtcbiAgICBjdHguZGlzcGF0Y2gobmV3IE1lbnVTdWJNb2R1bGVMb2FkQWN0aW9uKGFjdGlvbi5zdWJNb2R1bGUpKTtcbiAgICBjb25zdCBzbWFydHBhcmtzJCA9IHRoaXMuZmFjaWxpdHlJZGVudGl0eVNlcnZpY2VQcm94eS5mYWNpbGl0eUFsbChhY3Rpb24uYXBwTW9kdWxlKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZShzd2l0Y2hNYXAoc21hcnRwYXJrQmFzaWMgPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBzbWFydFBhcmtXcmFwcGVyOiBzbWFydHBhcmtCYXNpYy5kYXRhLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U21hcnRwYXJrQmFzaWNBbGxBY3Rpb24oc21hcnRwYXJrQmFzaWMpKTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRNb2JpbGVTbWFydHBhcmtzQmFzaWNBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uKSB7XG4gICAgY3R4LmRpc3BhdGNoKG5ldyBNZW51U3ViTW9kdWxlTG9hZEFjdGlvbihhY3Rpb24uc3ViTW9kdWxlKSk7XG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLm1vYmlsZUlkZW50aXR5U2VydmljZVByb3h5Lm1vYmlsZUdldFNtYXJ0cGFya0Jhc2ljQWxsKGFjdGlvbi5hcHBNb2R1bGUsIFZFUlNJT05fTU9CSUxFX0xBVEVTVCk7XG4gICAgcmV0dXJuIHNtYXJ0cGFya3MkLnBpcGUoc3dpdGNoTWFwKHNtYXJ0cGFya0Jhc2ljID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgc21hcnRQYXJrV3JhcHBlcjogc21hcnRwYXJrQmFzaWMuZGF0YSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldFNtYXJ0cGFya0Jhc2ljQWxsQWN0aW9uKHNtYXJ0cGFya0Jhc2ljKSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihDbGVhclNtYXJ0cGFya3NCYXNpY0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkNsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgXzogQ2xlYXJTbWFydHBhcmtzQmFzaWNBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzbWFydFBhcmtXcmFwcGVyOiBudWxsLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkU21hcnRwYXJrc1RhYmxlQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZFNtYXJ0cGFya3NUYWJsZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIHsgZmlsdGVyIH06IExvYWRTbWFydHBhcmtzVGFibGVBY3Rpb24pIHtcbiAgICBjb25zdCBzbWFydHBhcmtzJCA9IHRoaXMuYmFja29mZmljZUNsb3VkU2VydmljZVByb3h5LmdldEJhY2tvZmZpY2VTbWFydHBhcmtzKGZpbHRlcik7XG4gICAgcmV0dXJuIHNtYXJ0cGFya3MkLnBpcGUodGFwKHNtYXJ0cGFya3MgPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBsYXRlc3RTbWFydHBhcmtzOiBzbWFydHBhcmtzLmRhdGEuZW50aXRpZXMsXG4gICAgICAgIGNvdW50U21hcnRQYXJrczogc21hcnRwYXJrcy5kYXRhLmNvdW50ZXIsXG4gICAgICAgIGNvdW50UGFya2luZ0xvdHM6IHNtYXJ0cGFya3MuZGF0YS5zdWJDb3VudGVyXG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRCYWNrb2ZmaWNlU21hcnRwYXJrc1RhYmxlQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZEJhY2tvZmZpY2VTbWFydHBhcmtzVGFibGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCB7IGZpbHRlciB9OiBMb2FkQmFja29mZmljZVNtYXJ0cGFya3NUYWJsZUFjdGlvbikge1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5iYWNrb2ZmaWNlQ2xvdWRTZXJ2aWNlUHJveHkuZ2V0QmFja29mZmljZVNtYXJ0cGFya3MoZmlsdGVyKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZSh0YXAoc21hcnRwYXJrcyA9PiB7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGxhdGVzdFNtYXJ0cGFya3M6IHNtYXJ0cGFya3MuZGF0YS5lbnRpdGllcyxcbiAgICAgICAgY291bnRTbWFydFBhcmtzOiBzbWFydHBhcmtzLmRhdGEuY291bnRlcixcbiAgICAgICAgY291bnRQYXJraW5nTG90czogc21hcnRwYXJrcy5kYXRhLnN1YkNvdW50ZXJcbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG5cbiAgQEFjdGlvbihTZXRTbWFydFBhcmtUYWJsZUFjdGlvbilcbiAgb25TZXRTbWFydFBhcmtUYWJsZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIHsgc21hcnRwYXJrcyB9OiBTZXRTbWFydFBhcmtUYWJsZUFjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNtYXJ0cGFya3NcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0U21hcnRQYXJrQWN0aW9uKVxuICBvblNldFNtYXJ0UGFya3NBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCB7IHNtYXJ0cGFya3MsIHJlbG9hZCB9OiBTZXRTbWFydFBhcmtBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzbWFydHBhcmtzOiBzbWFydHBhcmtzIHx8IFtdLFxuICAgICAgY291bnRTbWFydFBhcmtzOiBzbWFydHBhcmtzPy5sZW5ndGggfHwgMCxcbiAgICAgIGNvdW50UGFya2luZ0xvdHM6IHRoaXMuY291bnRTbWFydHBhcmtGYWNpbGl0aWVzKHNtYXJ0cGFya3MpXG4gICAgfSk7XG5cbiAgICBpZiAoY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWRTbWFydFBhcmtJZCkge1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBTZWxlY3RTbWFydFBhcmtBY3Rpb24oY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWRTbWFydFBhcmtJZCwgcmVsb2FkKSk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihTZWxlY3RTbWFydFBhcmtBY3Rpb24pXG4gIG9uU2VsZWN0U21hcnRQYXJrQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZWxlY3RTbWFydFBhcmtBY3Rpb24pIHtcbiAgICBsZXQgc2VsZWN0ZWRTbWFydFBhcms7XG4gICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5jbGVhck1lc3NhZ2ViYXIoKTtcbiAgICBpZiAoY3R4LmdldFN0YXRlKCkuc21hcnRwYXJrcykge1xuICAgICAgc2VsZWN0ZWRTbWFydFBhcmsgPSBjdHguZ2V0U3RhdGUoKS5zbWFydHBhcmtzLmZpbmQoKHNtYXJ0cGFyaykgPT4gKHNtYXJ0cGFyayBhcyBTbWFydHBhcmtEdG8pLmlkID09PSBhY3Rpb24uc21hcnRQYXJrSWQpO1xuICAgICAgY3R4LnBhdGNoU3RhdGUoeyBzZWxlY3RlZFNtYXJ0UGFya0lkOiBhY3Rpb24uc21hcnRQYXJrSWQsIHNlbGVjdGVkU21hcnRQYXJrIH0pO1xuICAgICAgaWYgKGFjdGlvbi5yZWxvYWQpIHtcbiAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBMb2FkUGFya3NBY3Rpb24oKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihMb2FkUGFya3NBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkUGFya3NBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoeyBzZWxlY3RlZFBhcmtEZXRhaWxzOiBudWxsLCBzZWxlY3RlZFBhcmtJZDogbnVsbCB9KTtcblxuICAgIHJldHVybiB0aGlzLmZhY2lsaXR5SWRlbnRpdHlTZXJ2aWNlUHJveHkuZmFjaWxpdHlBbGwoQXBwTW9kdWxlLk1hbmFnZW1lbnQpLnBpcGUodGFwKHNtYXJ0cGFya01hcCA9PiB7XG4gICAgICBjb25zdCB7IGd1aWQsIHR5cGUgfSA9IGN0eC5nZXRTdGF0ZSgpLnNlbGVjdGVkU21hcnRQYXJrO1xuICAgICAgaWYgKHNtYXJ0cGFya01hcCkge1xuICAgICAgICBsZXQgc2VsZWN0ZWRQYXJrSWQ6IG51bWJlcjtcbiAgICAgICAgY29uc3QgcGFya3MgPSBzbWFydHBhcmtNYXAuZGF0YS5zbWFydFBhcmtzW2d1aWRdLmZhY2lsaXRpZXM7XG4gICAgICAgIGlmICh0eXBlID09PSBTbWFydFBhcmtUeXBlLlN1cGVyUGFyaykge1xuICAgICAgICAgIGNvbnN0IG11bHRpUGFyayA9IHBhcmtzLmZpbmQocGFyayA9PiBwYXJrLmlzTXVsdGlQYXJrKTtcbiAgICAgICAgICBzZWxlY3RlZFBhcmtJZCA9IG11bHRpUGFyayA/IG11bHRpUGFyay5pZCA6IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgcGFya3M6IHBhcmtzIHx8IFtdLFxuICAgICAgICAgIHNlbGVjdGVkUGFya0lkOiBzZWxlY3RlZFBhcmtJZCA/PyAocGFya3M/Lmxlbmd0aCAmJiBwYXJrc1swXS5pZCB8fCBudWxsKSxcbiAgICAgICAgICBzbWFydHBhcmtHdWlkOiBndWlkLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocGFya3M/Lmxlbmd0aCkge1xuICAgICAgICAgIGN0eC5kaXNwYXRjaChMb2FkUGFya0RldmljZXNBY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkUGFya0RldmljZXNBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkUGFya0RldmljZXMoY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+KSB7XG4gICAgY29uc3QgcGFya0RldGFpbCA9IGN0eC5nZXRTdGF0ZSgpLnBhcmtzLmZpbmQoKHBhcmspID0+IHBhcmsuaWQgPT09IGN0eC5nZXRTdGF0ZSgpLnNlbGVjdGVkUGFya0lkKTtcbiAgICBjb25zdCBndWlkID0gY3R4LmdldFN0YXRlKCkuc21hcnRwYXJrR3VpZDtcblxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZmFjaWxpdHlScGNTZXJ2aWNlUHJveHkuZ2V0RmFjaWxpdHkoZ3VpZCwgcGFya0RldGFpbC5pZCksXG4gICAgICB0aGlzLnJldmVudWVTZXJ2aWNlLmdldFJldmVudWUocGFya0RldGFpbC5pZCwgZ3VpZCkucGlwZShmaWx0ZXIocmV2ZW51ZSA9PiAhIXJldmVudWUpKSxcbiAgICAgIHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5LmdldFNtYXJ0cGFya3NEZXZpY2VzKGd1aWQsIHBhcmtEZXRhaWwuaWQsIG51bGwsIG51bGwsIG51bGwsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSxcbiAgICBdKS5waXBlKHRhcCgoW2ZhY2lsaXR5LCByZXZlbnVlcywgZGV2aWNlc10pID0+IHtcbiAgICAgIGNvbnN0IHJldmVudWUgPSBwYXJrRGV0YWlsLmlzTXVsdGlQYXJrID09IDEgPyB0aGlzLnJldmVudWVTZXJ2aWNlLmNhbGN1bGF0ZVJldmVudWVGb3JNdWx0aVBhcmsocmV2ZW51ZXMpIDogcmV2ZW51ZXNbcGFya0RldGFpbC5pZF07XG4gICAgICBkZXZpY2VzPy5kYXRhLmZvckVhY2goZGV2aWNlID0+IGRldmljZS5kZXZpY2VTdGF0dXMgPSBkZXZpY2UuZGV2aWNlU3RhdHVzID8/IGdldERlZmF1bHREZXZpY2VTdGF0dXMoZGV2aWNlKSk7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIHNlbGVjdGVkUGFya0RldGFpbHM6IHtcbiAgICAgICAgICBmYWNpbGl0eTogZmFjaWxpdHkuZGF0YSxcbiAgICAgICAgICBkZXZpY2VzOiBkZXZpY2VzLmRhdGEsXG4gICAgICAgICAgcmV2ZW51ZVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuXG4gIEBBY3Rpb24oU2VsZWN0UGFya0FjdGlvbilcbiAgb25TZWxlY3RQYXJrQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZWxlY3RQYXJrQWN0aW9uKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoeyBzZWxlY3RlZFBhcmtJZDogYWN0aW9uLnBhcmtJZCB9KTtcbiAgICBjdHguZGlzcGF0Y2goTG9hZFBhcmtEZXZpY2VzQWN0aW9uKTtcbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYXJTZWxlY3RlZFBhcmtBY3Rpb24pXG4gIG9uQ2xlYXJTZWxlY3RlZFBhcmtBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc2VsZWN0ZWRQYXJrRGV0YWlsczogbnVsbCxcbiAgICAgIHNlbGVjdGVkUGFya0lkOiBudWxsLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihDbGVhclNlbGVjdGVkU21hcnRwYXJrQWN0aW9uKVxuICBvbkNsZWFyU2VsZWN0ZWRzbWFydHBhcmtBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc2VsZWN0ZWRTbWFydFBhcmtJZDogbnVsbCxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oU21hcnRQYXJrRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbilcbiAgb25TbWFydFBhcmtEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTbWFydFBhcmtEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRQYXJrRGV0YWlscyA9IGN0eC5nZXRTdGF0ZSgpLnNlbGVjdGVkUGFya0RldGFpbHM7XG4gICAgaWYgKHNlbGVjdGVkUGFya0RldGFpbHMpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gc2VsZWN0ZWRQYXJrRGV0YWlscz8uZGV2aWNlcz8uZmluZEluZGV4KGRldmljZSA9PiBkZXZpY2UuaWQgPT09IGFjdGlvbi5kZXZpY2VTdGF0dXMuZGV2aWNlSUQpO1xuICAgICAgY29uc3QgY29tbXVuaWNhdGlvblBlcmNlbnRhZ2UgPSBzZWxlY3RlZFBhcmtEZXRhaWxzLmRldmljZXNbaW5kZXhdLmRldmljZVN0YXR1cy5jb21tdW5pY2F0aW9uUGVyY2VudGFnZTtcbiAgICAgIGNvbnN0IG5ld0NvbW1QZXJjZW50YWdlID0gYWN0aW9uLmRldmljZVN0YXR1cy5jb21tdW5pY2F0aW9uUGVyY2VudGFnZTtcbiAgICAgIGlmIChpbmRleCA+PSAwICYmIGNvbW11bmljYXRpb25QZXJjZW50YWdlICE9PSBuZXdDb21tUGVyY2VudGFnZSkge1xuICAgICAgICBzZWxlY3RlZFBhcmtEZXRhaWxzLmRldmljZXNbaW5kZXhdLmRldmljZVN0YXR1cy5jb21tdW5pY2F0aW9uUGVyY2VudGFnZSA9IG5ld0NvbW1QZXJjZW50YWdlO1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgc2VsZWN0ZWRQYXJrRGV0YWlsczogY2xvbmVEZWVwKHNlbGVjdGVkUGFya0RldGFpbHMpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKERpc2Nvbm5lY3RTbWFydFBhcmtBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25EaXNjb25uZWN0U21hcnRwYXJrQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgeyBzbWFydFBhcmtHdWlkLCBwYXNzd29yZCB9OiBEaXNjb25uZWN0U21hcnRQYXJrQWN0aW9uKSB7XG4gICAgY29uc3Qgc21hcnRwYXJrJCA9IHRoaXMuc21hcnRwYXJrQ2xvdWRTZXJ2aWNlUHJveHkuZGlzY29ubmVjdChwYXNzd29yZCwgc21hcnRQYXJrR3VpZCk7XG4gICAgcmV0dXJuIHNtYXJ0cGFyayQucGlwZSh0YXAoe1xuICAgICAgbmV4dDogKHYpID0+IHtcbiAgICAgICAgY29uc3Qgc21hcnRwYXJrcyA9IChjdHguZ2V0U3RhdGUoKS5zbWFydHBhcmtzIHx8IFtdKS5maWx0ZXIoc3AgPT4gc3AuZ3VpZCAhPT0gc21hcnRQYXJrR3VpZCk7XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICBzZWxlY3RlZFNtYXJ0UGFyazogbnVsbCxcbiAgICAgICAgICBzZWxlY3RlZFBhcmtJZDogbnVsbCxcbiAgICAgICAgICBzbWFydHBhcmtzLFxuICAgICAgICAgIGNvdW50U21hcnRQYXJrczogc21hcnRwYXJrcz8ubGVuZ3RoIHx8IDAsXG4gICAgICAgICAgY291bnRQYXJraW5nTG90czogdGhpcy5jb3VudFNtYXJ0cGFya0ZhY2lsaXRpZXMoc21hcnRwYXJrcylcbiAgICAgICAgfSk7XG4gICAgICAgIGN0eC5kaXNwYXRjaChuZXcgQ2xlYXJTZWxlY3RlZEZhY2lsaXR5QWN0aW9uKCkpO1xuICAgICAgICBjdHguZGlzcGF0Y2gobmV3IE5hdmlnYXRlKHRoaXMucm91dGVTZXJ2aWNlLmdldE5hdmlnYXRpb25Sb3V0ZShbJ21hbmFnZW1lbnQnLCAnc21hcnRwYXJrcyddKSkpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHBhcnNlQXBpRXJyb3JNZXNzYWdlKGUpLCB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uU3RhdGljLCBpZDogJ21vZGFsJyB9KTtcbiAgICAgIH0sXG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihTZXRTbWFydFBhcmtWZXJzaW9uc0FjdGlvbilcbiAgb25TZXRTbWFydFBhcmtWZXJzaW9uc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0U21hcnRQYXJrVmVyc2lvbnNBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICB2ZXJzaW9uczogYWN0aW9uLnZlcnNpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uKVxuICBvbkxvYWRTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+KSB7XG4gICAgaWYgKGN0eC5nZXRTdGF0ZSgpLlNwQW5kU3BhcmtWZXJzaW9ucyA9PSBudWxsKSB7XG4gICAgICBjb25zdCB2ZXJzaW9ucyQgPSB0aGlzLnNtYXJ0cGFya0Nsb3VkU2VydmljZVByb3h5LmdldFNwQW5kU3BhcmtWZXJzaW9ucygpO1xuICAgICAgcmV0dXJuIHZlcnNpb25zJC5waXBlKHRhcCh2ZXJzaW9ucyA9PiB7XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHsgU3BBbmRTcGFya1ZlcnNpb25zOiB2ZXJzaW9ucy5kYXRhIH0pO1xuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIEBBY3Rpb24oTG9hZEJhY2tvZmZpY2VTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24pXG4gIG9uTG9hZEJhY2tvZmZpY2VTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+KSB7XG4gICAgaWYgKGN0eC5nZXRTdGF0ZSgpLlNwQW5kU3BhcmtWZXJzaW9ucyA9PSBudWxsKSB7XG4gICAgICBjb25zdCB2ZXJzaW9ucyQgPSB0aGlzLmJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlU3BBbmRTcGFya1ZlcnNpb25zKCk7XG4gICAgICByZXR1cm4gdmVyc2lvbnMkLnBpcGUodGFwKHZlcnNpb25zID0+IHtcbiAgICAgICAgY3R4LnBhdGNoU3RhdGUoeyBTcEFuZFNwYXJrVmVyc2lvbnM6IHZlcnNpb25zLmRhdGEgfSk7XG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihDbGVhclNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbilcbiAgb25DbGVhclNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBTcEFuZFNwYXJrVmVyc2lvbnM6IG51bGxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZFZhcnNBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkVmFyc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZFZhcnNBY3Rpb24pIHtcbiAgICBjb25zdCB2YXJzJCA9IHRoaXMuc21hcnRwYXJrQ2xvdWRTZXJ2aWNlUHJveHkuZ2V0VmFycyhhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm1heFJlc3VsdHMsIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8uc2VhcmNoVGVybSxcbiAgICAgIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8ub3JkZXJCeS5jb2x1bW4sIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8ub3JkZXJCeS5vcmRlckRpcmVjdGlvbik7XG4gICAgcmV0dXJuIHZhcnMkLnBpcGUodGFwKHZhcnMgPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICB2YXJzOiB2YXJzLmRhdGFcbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZEJhY2tvZmZpY2VWYXJzQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZEJhY2tvZmZpY2VWYXJzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkQmFja29mZmljZVZhcnNBY3Rpb24pIHtcbiAgICBjb25zdCB2YXJzJCA9IHRoaXMuYmFja29mZmljZUNsb3VkU2VydmljZVByb3h5LmdldEJhY2tvZmZpY2VWYXJzKGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8ubWF4UmVzdWx0cywgYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5zZWFyY2hUZXJtLFxuICAgICAgYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5vcmRlckJ5LmNvbHVtbiwgYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5vcmRlckJ5Lm9yZGVyRGlyZWN0aW9uKTtcbiAgICByZXR1cm4gdmFycyQucGlwZSh0YXAodmFycyA9PiB7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIHZhcnM6IHZhcnMuZGF0YVxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkQmFja29mZmljZVZhckJ5SWRBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkQmFja29mZmljZVZhckJ5SWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRCYWNrb2ZmaWNlVmFyQnlJZEFjdGlvbikge1xuICAgIGNvbnN0IHZhciQgPSB0aGlzLmJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlVmFyQnlJZChhY3Rpb24udmFySWQpO1xuICAgIHJldHVybiB2YXIkLnBpcGUodGFwKHZhclJlc3BvbnNlID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgdmFyczogW3ZhclJlc3BvbnNlLmRhdGFdXG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKFN5bmNVc2Vyc0FuZFJvbGVzQnlTbWFydHBhcmtJZEFjdGlvbilcbiAgb25TeW5jVXNlcnNBbmRSb2xlc0J5U21hcnRwYXJrSWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFN5bmNVc2Vyc0FuZFJvbGVzQnlTbWFydHBhcmtJZEFjdGlvbik6IE9ic2VydmFibGU8T2JqZWN0SHR0cFJlc3BvbnNlRGF0YT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eS5zeW5jVXNlcnNCeVNtYXJ0cGFya0lkKGFjdGlvbi5zbWFydHBhcmsudGVuYW50SUQsIGFjdGlvbi5zbWFydHBhcmsuaWQpLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IF8gPT4gdGhpcy5tZXNzYWdlQmFyU2VydmljZS5zdWNjZXNzKExvY2FsaXphdGlvbi5zdWNjZXNzZnVsX3N5bmNfdXNlcnNfYW5kX3JvbGVzX2Zvcl9zbWFydHBhcmssIHsgbWVzc2FnZVBhcmFtczogeyBzbWFydHBhcmtOYW1lOiBhY3Rpb24uc21hcnRwYXJrLm5hbWUgfSB9KSxcbiAgICAgIGVycm9yOiBlID0+IHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IocGFyc2VBcGlFcnJvck1lc3NhZ2UoZSksIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5GbG9hdCB9KSxcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKEV4cG9ydFNtYXJ0cGFya0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkV4cG9ydFNtYXJ0cGFya3NBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IEV4cG9ydFNtYXJ0cGFya0FjdGlvbikge1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5iYWNrb2ZmaWNlQ2xvdWRTZXJ2aWNlUHJveHkuZ2V0QmFja29mZmljZVNtYXJ0cGFya3MoYWN0aW9uLnNtYXJ0cGFya0ZpbHRlcik7XG4gICAgcmV0dXJuIHNtYXJ0cGFya3MkLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IHNtYXJ0cGFya3MgPT4ge1xuICAgICAgICBjb25zdCB0YWJsZVJvd3M6IGFueVtdW10gPSBbXTtcbiAgICAgICAgY29uc3Qgc21hcnRwYXJrc0xpc3Q6IFNtYXJ0cGFya0R0b1tdID0gc21hcnRwYXJrcy5kYXRhLmVudGl0aWVzO1xuICAgICAgICBzbWFydHBhcmtzTGlzdC5mb3JFYWNoKChzbWFydHBhcmspID0+IHtcbiAgICAgICAgICB0YWJsZVJvd3MucHVzaChbXG4gICAgICAgICAgICBzbWFydHBhcmsubmFtZSxcbiAgICAgICAgICAgIFNtYXJ0UGFya1R5cGVbc21hcnRwYXJrLnR5cGVdLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpLnRyaW0oKSxcbiAgICAgICAgICAgIHNtYXJ0cGFyay50ZW5hbnROYW1lLFxuICAgICAgICAgICAgc21hcnRwYXJrLnZlcnNpb24sXG4gICAgICAgICAgICBzbWFydHBhcmsuc3BhcmtWZXJzaW9uLFxuICAgICAgICAgICAgc21hcnRwYXJrLmNyZWF0ZWRBdCxcbiAgICAgICAgICAgIHNtYXJ0cGFyay5ndWlkLFxuICAgICAgICAgICAgc21hcnRwYXJrLnZhck5hbWUgfHwgJy0nLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoU21hcnRQYXJrU3RhdHVzVGV4dFtTbWFydFBhcmtTdGF0dXNbc21hcnRwYXJrLnN0YXR1c11dKVxuICAgICAgICAgIF0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5leHBvcnRGaWxlU2VydmljZS5leHBvcnQoYWN0aW9uLmZpbGVUeXBlLCB0YWJsZVJvd3MsIGFjdGlvbi5jb2x1bW5zSGVhZGVyLCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uc21hcnRwYXJrKSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcih0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uZmFpbGVkX2V4cG9ydF9maWxlKSk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihFeHBvcnRQZGZTbWFydHBhcmtzVGFibGVBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25FeHBvcnRQZGZTbWFydHBhcmtzVGFibGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCB7IGZpbHRlciB9OiBFeHBvcnRQZGZTbWFydHBhcmtzVGFibGVBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBleHBvcnRQZGZTbWFydHBhcmtzOiBudWxsLFxuICAgIH0pO1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5iYWNrb2ZmaWNlQ2xvdWRTZXJ2aWNlUHJveHkuZ2V0QmFja29mZmljZVNtYXJ0cGFya3MoZmlsdGVyKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZSh0YXAoc21hcnRwYXJrcyA9PiB7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGV4cG9ydFBkZlNtYXJ0cGFya3M6IHNtYXJ0cGFya3MuZGF0YS5lbnRpdGllcyxcbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZFNtYXJ0cGFya3NEcm9wZG93bkFjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRBbGxTbWFydHBhcmtzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkU21hcnRwYXJrc0Ryb3Bkb3duQWN0aW9uKTogT2JzZXJ2YWJsZTxTbWFydHBhcmtGaWx0ZXJPcHRpb25EdG9JRW51bWVyYWJsZUh0dHBSZXNwb25zZURhdGE+IHtcbiAgICBjb25zdCBzbWFydHBhcmtzJCA9IHRoaXMubGljZW5zZUNsb3VkU2VydmljZVByb3h5LmJhc2VTbWFydHBhcmtzKGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8ubWF4UmVzdWx0cyxcbiAgICAgIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8uc2VhcmNoVGVybSwgYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5vcmRlckJ5LmNvbHVtbiwgYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5vcmRlckJ5Lm9yZGVyRGlyZWN0aW9uKTtcblxuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChmYWNpbGl0eVRyZWVEdG8gPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBmYWNpbGl0eVRyZWU6IGZhY2lsaXR5VHJlZUR0by5kYXRhLFxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihVcGRhdGVTbWFydHBhcmtWYXJBY3Rpb24pXG4gIG9uVXBkYXRlU21hcnRwYXJrVmFyQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBVcGRhdGVTbWFydHBhcmtWYXJBY3Rpb24pIHtcbiAgICBjb25zdCBtZXNzYWdlQmFyUGF5bG9hZCA9IHRoaXMuZ2V0TWVzc2FnZUluZm8oYWN0aW9uLnNtYXJ0cGFyay5uYW1lLCBMb2NhbGl6YXRpb24uc21hcnRwYXJrLCBMb2NhbGl6YXRpb24udXBkYXRlKTtcbiAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmluZm8oTG9jYWxpemF0aW9uLmVudGl0eV9pbl9wcm9ncmVzcywgbWVzc2FnZUJhclBheWxvYWQpO1xuXG4gICAgY29uc3QgdXBkYXRlU21hcnRwYXJrVmFyOiBVcGRhdGVTbWFydHBhcmtWYXJEdG8gPSBuZXcgVXBkYXRlU21hcnRwYXJrVmFyRHRvKHtcbiAgICAgIHZhcklkOiBhY3Rpb24udmFyRHRvLmlkLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuYmFja29mZmljZUNsb3VkU2VydmljZVByb3h5LnVwZGF0ZVNtYXJ0cGFya1ZhcihhY3Rpb24uc21hcnRwYXJrLmlkLCB1cGRhdGVTbWFydHBhcmtWYXIpLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZUJhclBheWxvYWQgPSB0aGlzLmdldE1lc3NhZ2VJbmZvKGFjdGlvbi5zbWFydHBhcmsubmFtZSwgTG9jYWxpemF0aW9uLnNtYXJ0cGFyaywgTG9jYWxpemF0aW9uLnVwZGF0ZWQpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLnN1Y2Nlc3MoTG9jYWxpemF0aW9uLmVudGl0eV9zdWNjZXNzLCBtZXNzYWdlQmFyUGF5bG9hZCk7XG5cbiAgICAgICAgY29uc3QgZGlzcGxheWVkU21hcnRwYXJrcyA9IGN0eC5nZXRTdGF0ZSgpLnNtYXJ0cGFya3M7XG4gICAgICAgIGNvbnN0IHNtYXJ0cGFya0luZGV4ID0gZGlzcGxheWVkU21hcnRwYXJrcy5maW5kSW5kZXgoZSA9PiBlIGluc3RhbmNlb2YgU21hcnRwYXJrRHRvICYmIGUuaWQgPT09IGFjdGlvbi5zbWFydHBhcmsuaWQpO1xuICAgICAgICBcbiAgICAgICAgaWYgKHNtYXJ0cGFya0luZGV4ICE9PSAtMSkge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRTbWFydHBhcmtzID0gZGlzcGxheWVkU21hcnRwYXJrcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IHNtYXJ0cGFya0luZGV4ICYmIGl0ZW0gaW5zdGFuY2VvZiBTbWFydHBhcmtEdG8pIHtcbiAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZCA9IG5ldyBTbWFydHBhcmtEdG8oe1xuICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgdmFySWQ6IGFjdGlvbi52YXJEdG8uaWQsXG4gICAgICAgICAgICAgICAgdmFyTmFtZTogYWN0aW9uLnZhckR0by5uYW1lLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgbWFya0VudGl0aWVzQXNDaGFuZ2VkKFt1cGRhdGVkXSwgUm93T3BlcmF0aW9uLlVwZGF0ZSk7XG4gICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgICBzbWFydHBhcmtzOiB1cGRhdGVkU21hcnRwYXJrcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKExvY2FsaXphdGlvbi5lbnRpdHlfZmFpbGVkLCBtZXNzYWdlQmFyUGF5bG9hZCk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cblxuXG4gIHByaXZhdGUgY291bnRTbWFydHBhcmtGYWNpbGl0aWVzKHNtYXJ0cGFya3M6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXSk6IG51bWJlciB7XG4gICAgbGV0IGNvdW50UGFya2luZ0xvdHMgPSAwO1xuXG4gICAgc21hcnRwYXJrcy5mb3JFYWNoKHNtYXJ0UGFyayA9PiB7XG4gICAgICBpZiAoc21hcnRQYXJrLmZhY2lsaXRpZXMpIHtcbiAgICAgICAgY291bnRQYXJraW5nTG90cyArPSBzbWFydFBhcmsuZmFjaWxpdGllcy5maWx0ZXIoZiA9PiAhZi5pc011bHRpUGFyaykubGVuZ3RoO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvdW50UGFya2luZ0xvdHM7XG4gIH1cblxuICBwcml2YXRlIGdldE1lc3NhZ2VJbmZvKGVudGl0eU5hbWU6IHN0cmluZywgZW50aXR5VHlwZTogc3RyaW5nLCBhY3Rpb246IHN0cmluZykge1xuICAgIGNvbnN0IG1lc3NhZ2VCYXJQYXlsb2FkOiBNZXNzYWdlQmFyUGF5bG9hZCA9IHtcbiAgICAgIGVudGl0eTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZW50aXR5VHlwZSksXG4gICAgICBlbnRpdHlOYW1lLFxuICAgICAgYWN0aW9uOiBsb3dlckNhc2VGaXJzdExldHRlcih0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChhY3Rpb24pKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNyZWF0ZU1lc3NhZ2VUZXh0KG1lc3NhZ2VCYXJQYXlsb2FkKTtcbiAgfVxufVxuIl19
|
|
573
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.RevenueService }, { type: i3.SmartparkCloudServiceProxy }, { type: i4.FacilityRpcServiceProxy }, { type: i5.FacilityIdentityServiceProxy }, { type: i6.Rpc.DeviceRpcServiceProxy }, { type: i7.MessageBarService }, { type: i8.RouteService }, { type: i9.TranslateService }, { type: i10.ExportFileService }, { type: i3.BackofficeCloudServiceProxy }, { type: i3.LicenseCloudServiceProxy }], propDecorators: { onLoadSmartparksAction: [], onLoadSmartparksBasicAction: [], onClearSmartparksBasicAction: [], onLoadSmartparksTableAction: [], onLoadBackofficeSmartparksTableAction: [], onSetSmartParkTableAction: [], onSetSmartParksAction: [], onSelectSmartParkAction: [], onLoadParksAction: [], onLoadParkDevices: [], onSelectParkAction: [], onClearSelectedParkAction: [], onClearSelectedsmartparkAction: [], onSmartParkDeviceStatusChangedAction: [], onDisconnectSmartparkAction: [], onSetSmartParkVersionsAction: [], onLoadSpAndSparkVersionsAction: [], onLoadBackofficeSpAndSparkVersionsAction: [], onClearSpAndSparkVersionsAction: [], onLoadVarsAction: [], onLoadBackofficeVarsAction: [], onLoadBackofficeVarByIdAction: [], onSyncUsersAndRolesBySmartparkIdAction: [], onExportSmartparksAction: [], onExportPdfSmartparksTableAction: [], onLoadAllSmartparksAction: [], onUpdateSmartparkVarAction: [] } });
|
|
574
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwYXJrLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL3NtYXJ0cGFya3Mvc21hcnRwYXJrLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXVCLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUc1RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzdELE9BQU8sRUFDTCxTQUFTLEVBQ21CLFlBQVksRUFDeEMsZUFBZSxFQUFFLGFBQWEsRUFBeUIscUJBQXFCLEVBQzdFLE1BQU0sMkNBQTJDLENBQUM7QUFNbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9B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MkJBQTJCLE1BWTNCLDRCQUE0QixNQU81QiwyQkFBMkIsTUFZM0IscUNBQXFDLE1BYXJDLHlCQUF5QixNQU96QixxQkFBcUIsTUFhckIsdUJBQXVCLE1BYXZCLGlCQUFpQixNQTJCakIsaUJBQWlCLE1BdUJqQixrQkFBa0IsTUFNbEIseUJBQXlCLE1BUXpCLDhCQUE4QixNQU85QixvQ0FBb0MsTUFnQnBDLDJCQUEyQixNQXNCM0IsNEJBQTRCLE1BTzVCLDhCQUE4QixNQVU5Qix3Q0FBd0MsTUFVeEMsK0JBQStCLE1BTy9CLGdCQUFnQixNQVdoQiwwQkFBMEIsTUFXMUIsNkJBQTZCLE1BVTdCLHNDQUFzQyxNQVF0Qyx3QkFBd0IsTUE0QnhCLGdDQUFnQyxNQWFoQyx5QkFBeUIsTUFZekIsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGUgfSBmcm9tICdAbmd4cy9yb3V0ZXItcGx1Z2luJztcbmltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyUG9zaXRpb24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLXBvc2l0aW9uLmVudW0nO1xuaW1wb3J0IHsgTWVzc2FnZUJhclBheWxvYWQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLXRleHQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IFNtYXJ0UGFya1N0YXR1c1RleHQgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb24gfSBmcm9tICcuLi8uLi9lbnVtcy9sb2NhbGl6YXRpb24uZW51bSc7XG5pbXBvcnQgeyBJUGFya0RldGFpbHMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3BhcmstZGV0YWlscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUnBjIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eSc7XG5pbXBvcnQge1xuICBBcHBNb2R1bGUsIEJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eSwgRmFjaWxpdHlCYXNpY0R0bywgTGljZW5zZUNsb3VkU2VydmljZVByb3h5LCBPYmplY3RIdHRwUmVzcG9uc2VEYXRhLFxuICBTbWFydHBhcmtDbG91ZFNlcnZpY2VQcm94eSwgU21hcnRwYXJrRHRvLCBTbWFydHBhcmtGaWx0ZXJPcHRpb25EdG8sIFNtYXJ0cGFya0ZpbHRlck9wdGlvbkR0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YSxcbiAgU21hcnRQYXJrU3RhdHVzLCBTbWFydFBhcmtUeXBlLCBTcEFuZFNwYXJrVmVyc2lvbnNEdG8sIFVwZGF0ZVNtYXJ0cGFya1ZhckR0bywgVmFyRHRvXG59IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEZhY2lsaXR5SWRlbnRpdHlTZXJ2aWNlUHJveHksIFNtYXJ0cGFya0Jhc2ljRHRvLCBTbWFydFBhcmtXcmFwcGVyRHRvIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9pZGVudGl0eS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgRmFjaWxpdHlScGNTZXJ2aWNlUHJveHksIElEZXZpY2VEdG8gfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L3JwYy1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgRXhwb3J0RmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHBvcnQtZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJldmVudWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmV2ZW51ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JvdXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgcGFyc2VBcGlFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlscy9hcGktaGVscGVyLnV0aWwnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdERldmljZVN0YXR1cyB9IGZyb20gJy4uLy4uL3V0aWxzL2RldmljZS51dGlsJztcbmltcG9ydCB7IG1hcmtFbnRpdGllc0FzQ2hhbmdlZCwgUm93T3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvaGVscGVyLnV0aWwnO1xuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vLi4vdXRpbHMvbGFuZy51dGlsJztcbmltcG9ydCB7IGNyZWF0ZU1lc3NhZ2VUZXh0IH0gZnJvbSAnLi4vLi4vdXRpbHMvbWVzc2FnZS1iYXIudXRpbCc7XG5pbXBvcnQgeyBsb3dlckNhc2VGaXJzdExldHRlciB9IGZyb20gJy4uLy4uL3V0aWxzL3RleHQudXRpbCc7XG5pbXBvcnQgeyBDbGVhclNlbGVjdGVkRmFjaWxpdHlBY3Rpb24sIFNldFNtYXJ0cGFya0Jhc2ljQWxsQWN0aW9uIH0gZnJvbSAnLi4vZmFjaWxpdHkvZmFjaWxpdHkuYWN0aW9ucyc7XG5pbXBvcnQgeyBNZW51U3ViTW9kdWxlTG9hZEFjdGlvbiB9IGZyb20gJy4uL3NpZGVuYXYvc2lkZW5hdi5hY3Rpb25zJztcbmltcG9ydCB7XG4gIENsZWFyU2VsZWN0ZWRQYXJrQWN0aW9uLCBDbGVhclNlbGVjdGVkU21hcnRwYXJrQWN0aW9uLCBDbGVhclNtYXJ0cGFya3NCYXNpY0FjdGlvbiwgQ2xlYXJTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24sXG4gIERpc2Nvbm5lY3RTbWFydFBhcmtBY3Rpb24sIEV4cG9ydFBkZlNtYXJ0cGFya3NUYWJsZUFjdGlvbiwgRXhwb3J0U21hcnRwYXJrQWN0aW9uLCBMb2FkQmFja29mZmljZVNtYXJ0cGFya3NUYWJsZUFjdGlvbixcbiAgTG9hZEJhY2tvZmZpY2VTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24sIExvYWRCYWNrb2ZmaWNlVmFyQnlJZEFjdGlvbiwgTG9hZEJhY2tvZmZpY2VWYXJzQWN0aW9uLFxuICBMb2FkUGFya0RldmljZXNBY3Rpb24sIExvYWRQYXJrc0FjdGlvbiwgTG9hZFNtYXJ0cGFya3NBY3Rpb24sIExvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24sIExvYWRTbWFydHBhcmtzRHJvcGRvd25BY3Rpb24sIExvYWRTbWFydHBhcmtzVGFibGVBY3Rpb24sXG4gIExvYWRTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24sIExvYWRWYXJzQWN0aW9uLCBTZWxlY3RQYXJrQWN0aW9uLCBTZWxlY3RTbWFydFBhcmtBY3Rpb24sIFNldFNtYXJ0UGFya0FjdGlvbixcbiAgU2V0U21hcnRQYXJrVGFibGVBY3Rpb24sIFNldFNtYXJ0UGFya1ZlcnNpb25zQWN0aW9uLFxuICBTbWFydFBhcmtEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uLCBTeW5jVXNlcnNBbmRSb2xlc0J5U21hcnRwYXJrSWRBY3Rpb24sXG4gIFVwZGF0ZVNtYXJ0cGFya1ZhckFjdGlvblxufSBmcm9tICcuL3NtYXJ0cGFyay5hY3Rpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBTbWFydHBhcmtzU3RhdGVNb2RlbCB7XG4gIHNtYXJ0cGFya3M6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXTtcbiAgbGF0ZXN0U21hcnRwYXJrczogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdO1xuICBTcEFuZFNwYXJrVmVyc2lvbnM6IFNwQW5kU3BhcmtWZXJzaW9uc0R0bztcbiAgY291bnRTbWFydFBhcmtzOiBudW1iZXI7XG4gIGNvdW50UGFya2luZ0xvdHM6IG51bWJlcjtcbiAgc2VsZWN0ZWRTbWFydFBhcmtJZDogbnVtYmVyO1xuICBzZWxlY3RlZFNtYXJ0UGFyazogU21hcnRwYXJrRHRvO1xuICBwYXJrczogRmFjaWxpdHlCYXNpY0R0b1tdO1xuICBzZWxlY3RlZFBhcmtJZDogbnVtYmVyO1xuICBzZWxlY3RlZFBhcmtEZXRhaWxzOiBJUGFya0RldGFpbHM7XG4gIHNtYXJ0cGFya0d1aWQ6IHN0cmluZztcbiAgdmVyc2lvbnM6IFN0cmluZ01hcDxzdHJpbmc+O1xuICBzbWFydFBhcmtXcmFwcGVyOiBTbWFydFBhcmtXcmFwcGVyRHRvO1xuICB2YXJzOiBWYXJEdG9bXTtcbiAgZXhwb3J0UGRmU21hcnRwYXJrczogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdO1xuICBmYWNpbGl0eVRyZWU6IFNtYXJ0cGFya0ZpbHRlck9wdGlvbkR0b1tdO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5AU3RhdGU8U21hcnRwYXJrc1N0YXRlTW9kZWw+KHtcbiAgbmFtZTogJ3NtYXJ0cGFyaycsXG4gIGRlZmF1bHRzOiB7XG4gICAgc21hcnRwYXJrczogbnVsbCxcbiAgICBsYXRlc3RTbWFydHBhcmtzOiBudWxsLFxuICAgIGNvdW50U21hcnRQYXJrczogMCxcbiAgICBjb3VudFBhcmtpbmdMb3RzOiAwLFxuICAgIHNlbGVjdGVkU21hcnRQYXJrSWQ6IG51bGwsXG4gICAgc2VsZWN0ZWRTbWFydFBhcms6IG51bGwsXG4gICAgcGFya3M6IG51bGwsXG4gICAgc2VsZWN0ZWRQYXJrSWQ6IG51bGwsXG4gICAgc2VsZWN0ZWRQYXJrRGV0YWlsczogbnVsbCxcbiAgICBzbWFydHBhcmtHdWlkOiBudWxsLFxuICAgIHZlcnNpb25zOiB7fSxcbiAgICBTcEFuZFNwYXJrVmVyc2lvbnM6IG51bGwsXG4gICAgc21hcnRQYXJrV3JhcHBlcjogbnVsbCxcbiAgICB2YXJzOiBbXSxcbiAgICBleHBvcnRQZGZTbWFydHBhcmtzOiBudWxsLFxuICAgIGZhY2lsaXR5VHJlZTogW10sXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0cGFya1N0YXRlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHJldmVudWVTZXJ2aWNlOiBSZXZlbnVlU2VydmljZSxcbiAgICBwcml2YXRlIHNtYXJ0cGFya0Nsb3VkU2VydmljZVByb3h5OiBTbWFydHBhcmtDbG91ZFNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGZhY2lsaXR5UnBjU2VydmljZVByb3h5OiBGYWNpbGl0eVJwY1NlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGZhY2lsaXR5SWRlbnRpdHlTZXJ2aWNlUHJveHk6IEZhY2lsaXR5SWRlbnRpdHlTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBkZXZpY2VScGNTZXJ2aWNlUHJveHk6IFJwYy5EZXZpY2VScGNTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBtZXNzYWdlQmFyU2VydmljZTogTWVzc2FnZUJhclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZVNlcnZpY2U6IFJvdXRlU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBleHBvcnRGaWxlU2VydmljZTogRXhwb3J0RmlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYWNrb2ZmaWNlQ2xvdWRTZXJ2aWNlUHJveHk6IEJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGxpY2Vuc2VDbG91ZFNlcnZpY2VQcm94eTogTGljZW5zZUNsb3VkU2VydmljZVByb3h5KSB7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHBhcmtzKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IEZhY2lsaXR5QmFzaWNEdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLnBhcmtzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWxlY3RlZFBhcmtJZChzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZFBhcmtJZDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWRQYXJrRGV0YWlscyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBJUGFya0RldGFpbHMge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZFBhcmtEZXRhaWxzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBwYXJrRGV2aWNlcyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBJRGV2aWNlRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZFBhcmtEZXRhaWxzPy5kZXZpY2VzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBndWlkKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0YXRlLnNtYXJ0cGFya0d1aWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNtYXJ0cGFya3Moc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdIHtcbiAgICByZXR1cm4gc3RhdGUuc21hcnRwYXJrcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgbGF0ZXN0UGFnZShzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiAoU21hcnRwYXJrRHRvIHwgU21hcnRwYXJrQmFzaWNEdG8pW10ge1xuICAgIHJldHVybiBzdGF0ZS5sYXRlc3RTbWFydHBhcmtzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWxlY3RlZFNtYXJ0UGFya0lkKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHN0YXRlLnNlbGVjdGVkU21hcnRQYXJrSWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNlbGVjdGVkU21hcnRQYXJrRGV0YWlscyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBTbWFydHBhcmtEdG8ge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZFNtYXJ0UGFyaztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgY291bnRTbWFydFBhcmtzKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHN0YXRlLmNvdW50U21hcnRQYXJrcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgY291bnRQYXJraW5nTG90cyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5jb3VudFBhcmtpbmdMb3RzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB2ZXJzaW9ucyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBTdHJpbmdNYXA8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHN0YXRlLnZlcnNpb25zO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzbWFydHBhcmtTZWFyY2hPcHRpb25zKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IFNwQW5kU3BhcmtWZXJzaW9uc0R0byB7XG4gICAgcmV0dXJuIHN0YXRlLlNwQW5kU3BhcmtWZXJzaW9ucztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc21hcnRQYXJrV3JhcHBlcihzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBTbWFydFBhcmtXcmFwcGVyRHRvIHtcbiAgICByZXR1cm4gc3RhdGUuc21hcnRQYXJrV3JhcHBlcjtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdmFycyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBWYXJEdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLnZhcnM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGV4cG9ydFBkZlNtYXJ0cGFya3Moc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdIHtcbiAgICByZXR1cm4gc3RhdGUuZXhwb3J0UGRmU21hcnRwYXJrcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZmFjaWxpdHlUcmVlKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IFNtYXJ0cGFya0ZpbHRlck9wdGlvbkR0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUuZmFjaWxpdHlUcmVlO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkU21hcnRwYXJrc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRTbWFydHBhcmtzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkU21hcnRwYXJrc0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNtYXJ0cGFya3M6IFtdLFxuICAgICAgY291bnRTbWFydFBhcmtzOiAwLFxuICAgICAgY291bnRQYXJraW5nTG90czogdGhpcy5jb3VudFNtYXJ0cGFya0ZhY2lsaXRpZXMoW10pXG4gICAgfSk7XG5cbiAgICBjb25zdCBzbWFydHBhcmtzJCA9IHRoaXMuc21hcnRwYXJrQ2xvdWRTZXJ2aWNlUHJveHkuZ2V0QWxsU21hcnRQYXJrcygpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChzbWFydHBhcmtzID0+IHtcbiAgICAgIGN0eC5kaXNwYXRjaChuZXcgU2V0U21hcnRQYXJrQWN0aW9uKHNtYXJ0cGFya3MuZGF0YSwgYWN0aW9uLnJlbG9hZCkpO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZFNtYXJ0cGFya3NCYXNpY0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24pIHtcbiAgICBjdHguZGlzcGF0Y2gobmV3IE1lbnVTdWJNb2R1bGVMb2FkQWN0aW9uKGFjdGlvbi5zdWJNb2R1bGUpKTtcbiAgICBjb25zdCBzbWFydHBhcmtzJCA9IHRoaXMuZmFjaWxpdHlJZGVudGl0eVNlcnZpY2VQcm94eS5mYWNpbGl0eUFsbChhY3Rpb24uYXBwTW9kdWxlKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZShzd2l0Y2hNYXAoc21hcnRwYXJrQmFzaWMgPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBzbWFydFBhcmtXcmFwcGVyOiBzbWFydHBhcmtCYXNpYy5kYXRhLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U21hcnRwYXJrQmFzaWNBbGxBY3Rpb24oc21hcnRwYXJrQmFzaWMpKTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uQ2xlYXJTbWFydHBhcmtzQmFzaWNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBfOiBDbGVhclNtYXJ0cGFya3NCYXNpY0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNtYXJ0UGFya1dyYXBwZXI6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRTbWFydHBhcmtzVGFibGVBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkU21hcnRwYXJrc1RhYmxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgeyBmaWx0ZXIgfTogTG9hZFNtYXJ0cGFya3NUYWJsZUFjdGlvbikge1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5iYWNrb2ZmaWNlQ2xvdWRTZXJ2aWNlUHJveHkuZ2V0QmFja29mZmljZVNtYXJ0cGFya3MoZmlsdGVyKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZSh0YXAoc21hcnRwYXJrcyA9PiB7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGxhdGVzdFNtYXJ0cGFya3M6IHNtYXJ0cGFya3MuZGF0YS5lbnRpdGllcyxcbiAgICAgICAgY291bnRTbWFydFBhcmtzOiBzbWFydHBhcmtzLmRhdGEuY291bnRlcixcbiAgICAgICAgY291bnRQYXJraW5nTG90czogc21hcnRwYXJrcy5kYXRhLnN1YkNvdW50ZXJcbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZEJhY2tvZmZpY2VTbWFydHBhcmtzVGFibGVBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkQmFja29mZmljZVNtYXJ0cGFya3NUYWJsZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIHsgZmlsdGVyIH06IExvYWRCYWNrb2ZmaWNlU21hcnRwYXJrc1RhYmxlQWN0aW9uKSB7XG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLmJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlU21hcnRwYXJrcyhmaWx0ZXIpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChzbWFydHBhcmtzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgbGF0ZXN0U21hcnRwYXJrczogc21hcnRwYXJrcy5kYXRhLmVudGl0aWVzLFxuICAgICAgICBjb3VudFNtYXJ0UGFya3M6IHNtYXJ0cGFya3MuZGF0YS5jb3VudGVyLFxuICAgICAgICBjb3VudFBhcmtpbmdMb3RzOiBzbWFydHBhcmtzLmRhdGEuc3ViQ291bnRlclxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cblxuICBAQWN0aW9uKFNldFNtYXJ0UGFya1RhYmxlQWN0aW9uKVxuICBvblNldFNtYXJ0UGFya1RhYmxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgeyBzbWFydHBhcmtzIH06IFNldFNtYXJ0UGFya1RhYmxlQWN0aW9uKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc21hcnRwYXJrc1xuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihTZXRTbWFydFBhcmtBY3Rpb24pXG4gIG9uU2V0U21hcnRQYXJrc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIHsgc21hcnRwYXJrcywgcmVsb2FkIH06IFNldFNtYXJ0UGFya0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNtYXJ0cGFya3M6IHNtYXJ0cGFya3MgfHwgW10sXG4gICAgICBjb3VudFNtYXJ0UGFya3M6IHNtYXJ0cGFya3M/Lmxlbmd0aCB8fCAwLFxuICAgICAgY291bnRQYXJraW5nTG90czogdGhpcy5jb3VudFNtYXJ0cGFya0ZhY2lsaXRpZXMoc21hcnRwYXJrcylcbiAgICB9KTtcblxuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZFNtYXJ0UGFya0lkKSB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IFNlbGVjdFNtYXJ0UGFya0FjdGlvbihjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZFNtYXJ0UGFya0lkLCByZWxvYWQpKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKFNlbGVjdFNtYXJ0UGFya0FjdGlvbilcbiAgb25TZWxlY3RTbWFydFBhcmtBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFNlbGVjdFNtYXJ0UGFya0FjdGlvbikge1xuICAgIGxldCBzZWxlY3RlZFNtYXJ0UGFyaztcbiAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmNsZWFyTWVzc2FnZWJhcigpO1xuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5zbWFydHBhcmtzKSB7XG4gICAgICBzZWxlY3RlZFNtYXJ0UGFyayA9IGN0eC5nZXRTdGF0ZSgpLnNtYXJ0cGFya3MuZmluZCgoc21hcnRwYXJrKSA9PiAoc21hcnRwYXJrIGFzIFNtYXJ0cGFya0R0bykuaWQgPT09IGFjdGlvbi5zbWFydFBhcmtJZCk7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlbGVjdGVkU21hcnRQYXJrSWQ6IGFjdGlvbi5zbWFydFBhcmtJZCwgc2VsZWN0ZWRTbWFydFBhcmsgfSk7XG4gICAgICBpZiAoYWN0aW9uLnJlbG9hZCkge1xuICAgICAgICBjdHguZGlzcGF0Y2gobmV3IExvYWRQYXJrc0FjdGlvbigpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKExvYWRQYXJrc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRQYXJrc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlbGVjdGVkUGFya0RldGFpbHM6IG51bGwsIHNlbGVjdGVkUGFya0lkOiBudWxsIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZmFjaWxpdHlJZGVudGl0eVNlcnZpY2VQcm94eS5mYWNpbGl0eUFsbChBcHBNb2R1bGUuTWFuYWdlbWVudCkucGlwZSh0YXAoc21hcnRwYXJrTWFwID0+IHtcbiAgICAgIGNvbnN0IHsgZ3VpZCwgdHlwZSB9ID0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWRTbWFydFBhcms7XG4gICAgICBpZiAoc21hcnRwYXJrTWFwKSB7XG4gICAgICAgIGxldCBzZWxlY3RlZFBhcmtJZDogbnVtYmVyO1xuICAgICAgICBjb25zdCBwYXJrcyA9IHNtYXJ0cGFya01hcC5kYXRhLnNtYXJ0UGFya3NbZ3VpZF0uZmFjaWxpdGllcztcbiAgICAgICAgaWYgKHR5cGUgPT09IFNtYXJ0UGFya1R5cGUuU3VwZXJQYXJrKSB7XG4gICAgICAgICAgY29uc3QgbXVsdGlQYXJrID0gcGFya3MuZmluZChwYXJrID0+IHBhcmsuaXNNdWx0aVBhcmspO1xuICAgICAgICAgIHNlbGVjdGVkUGFya0lkID0gbXVsdGlQYXJrID8gbXVsdGlQYXJrLmlkIDogbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICBwYXJrczogcGFya3MgfHwgW10sXG4gICAgICAgICAgc2VsZWN0ZWRQYXJrSWQ6IHNlbGVjdGVkUGFya0lkID8/IChwYXJrcz8ubGVuZ3RoICYmIHBhcmtzWzBdLmlkIHx8IG51bGwpLFxuICAgICAgICAgIHNtYXJ0cGFya0d1aWQ6IGd1aWQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChwYXJrcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgY3R4LmRpc3BhdGNoKExvYWRQYXJrRGV2aWNlc0FjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRQYXJrRGV2aWNlc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRQYXJrRGV2aWNlcyhjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjb25zdCBwYXJrRGV0YWlsID0gY3R4LmdldFN0YXRlKCkucGFya3MuZmluZCgocGFyaykgPT4gcGFyay5pZCA9PT0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWRQYXJrSWQpO1xuICAgIGNvbnN0IGd1aWQgPSBjdHguZ2V0U3RhdGUoKS5zbWFydHBhcmtHdWlkO1xuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5mYWNpbGl0eVJwY1NlcnZpY2VQcm94eS5nZXRGYWNpbGl0eShndWlkLCBwYXJrRGV0YWlsLmlkKSxcbiAgICAgIHRoaXMucmV2ZW51ZVNlcnZpY2UuZ2V0UmV2ZW51ZShwYXJrRGV0YWlsLmlkLCBndWlkKS5waXBlKGZpbHRlcihyZXZlbnVlID0+ICEhcmV2ZW51ZSkpLFxuICAgICAgdGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkuZ2V0U21hcnRwYXJrc0RldmljZXMoZ3VpZCwgcGFya0RldGFpbC5pZCwgbnVsbCwgbnVsbCwgbnVsbCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpLFxuICAgIF0pLnBpcGUodGFwKChbZmFjaWxpdHksIHJldmVudWVzLCBkZXZpY2VzXSkgPT4ge1xuICAgICAgY29uc3QgcmV2ZW51ZSA9IHBhcmtEZXRhaWwuaXNNdWx0aVBhcmsgPT0gMSA/IHRoaXMucmV2ZW51ZVNlcnZpY2UuY2FsY3VsYXRlUmV2ZW51ZUZvck11bHRpUGFyayhyZXZlbnVlcykgOiByZXZlbnVlc1twYXJrRGV0YWlsLmlkXTtcbiAgICAgIGRldmljZXM/LmRhdGEuZm9yRWFjaChkZXZpY2UgPT4gZGV2aWNlLmRldmljZVN0YXR1cyA9IGRldmljZS5kZXZpY2VTdGF0dXMgPz8gZ2V0RGVmYXVsdERldmljZVN0YXR1cyhkZXZpY2UpKTtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgc2VsZWN0ZWRQYXJrRGV0YWlsczoge1xuICAgICAgICAgIGZhY2lsaXR5OiBmYWNpbGl0eS5kYXRhLFxuICAgICAgICAgIGRldmljZXM6IGRldmljZXMuZGF0YSxcbiAgICAgICAgICByZXZlbnVlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG5cbiAgQEFjdGlvbihTZWxlY3RQYXJrQWN0aW9uKVxuICBvblNlbGVjdFBhcmtBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFNlbGVjdFBhcmtBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlbGVjdGVkUGFya0lkOiBhY3Rpb24ucGFya0lkIH0pO1xuICAgIGN0eC5kaXNwYXRjaChMb2FkUGFya0RldmljZXNBY3Rpb24pO1xuICB9XG5cbiAgQEFjdGlvbihDbGVhclNlbGVjdGVkUGFya0FjdGlvbilcbiAgb25DbGVhclNlbGVjdGVkUGFya0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWxlY3RlZFBhcmtEZXRhaWxzOiBudWxsLFxuICAgICAgc2VsZWN0ZWRQYXJrSWQ6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyU2VsZWN0ZWRTbWFydHBhcmtBY3Rpb24pXG4gIG9uQ2xlYXJTZWxlY3RlZHNtYXJ0cGFya0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWxlY3RlZFNtYXJ0UGFya0lkOiBudWxsLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihTbWFydFBhcmtEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uKVxuICBvblNtYXJ0UGFya0RldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFNtYXJ0UGFya0RldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24pIHtcbiAgICBjb25zdCBzZWxlY3RlZFBhcmtEZXRhaWxzID0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWRQYXJrRGV0YWlscztcbiAgICBpZiAoc2VsZWN0ZWRQYXJrRGV0YWlscykge1xuICAgICAgY29uc3QgaW5kZXggPSBzZWxlY3RlZFBhcmtEZXRhaWxzPy5kZXZpY2VzPy5maW5kSW5kZXgoZGV2aWNlID0+IGRldmljZS5pZCA9PT0gYWN0aW9uLmRldmljZVN0YXR1cy5kZXZpY2VJRCk7XG4gICAgICBjb25zdCBjb21tdW5pY2F0aW9uUGVyY2VudGFnZSA9IHNlbGVjdGVkUGFya0RldGFpbHMuZGV2aWNlc1tpbmRleF0uZGV2aWNlU3RhdHVzLmNvbW11bmljYXRpb25QZXJjZW50YWdlO1xuICAgICAgY29uc3QgbmV3Q29tbVBlcmNlbnRhZ2UgPSBhY3Rpb24uZGV2aWNlU3RhdHVzLmNvbW11bmljYXRpb25QZXJjZW50YWdlO1xuICAgICAgaWYgKGluZGV4ID49IDAgJiYgY29tbXVuaWNhdGlvblBlcmNlbnRhZ2UgIT09IG5ld0NvbW1QZXJjZW50YWdlKSB7XG4gICAgICAgIHNlbGVjdGVkUGFya0RldGFpbHMuZGV2aWNlc1tpbmRleF0uZGV2aWNlU3RhdHVzLmNvbW11bmljYXRpb25QZXJjZW50YWdlID0gbmV3Q29tbVBlcmNlbnRhZ2U7XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICBzZWxlY3RlZFBhcmtEZXRhaWxzOiBjbG9uZURlZXAoc2VsZWN0ZWRQYXJrRGV0YWlscyksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBBY3Rpb24oRGlzY29ubmVjdFNtYXJ0UGFya0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkRpc2Nvbm5lY3RTbWFydHBhcmtBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCB7IHNtYXJ0UGFya0d1aWQsIHBhc3N3b3JkIH06IERpc2Nvbm5lY3RTbWFydFBhcmtBY3Rpb24pIHtcbiAgICBjb25zdCBzbWFydHBhcmskID0gdGhpcy5zbWFydHBhcmtDbG91ZFNlcnZpY2VQcm94eS5kaXNjb25uZWN0KHBhc3N3b3JkLCBzbWFydFBhcmtHdWlkKTtcbiAgICByZXR1cm4gc21hcnRwYXJrJC5waXBlKHRhcCh7XG4gICAgICBuZXh0OiAodikgPT4ge1xuICAgICAgICBjb25zdCBzbWFydHBhcmtzID0gKGN0eC5nZXRTdGF0ZSgpLnNtYXJ0cGFya3MgfHwgW10pLmZpbHRlcihzcCA9PiBzcC5ndWlkICE9PSBzbWFydFBhcmtHdWlkKTtcbiAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgIHNlbGVjdGVkU21hcnRQYXJrOiBudWxsLFxuICAgICAgICAgIHNlbGVjdGVkUGFya0lkOiBudWxsLFxuICAgICAgICAgIHNtYXJ0cGFya3MsXG4gICAgICAgICAgY291bnRTbWFydFBhcmtzOiBzbWFydHBhcmtzPy5sZW5ndGggfHwgMCxcbiAgICAgICAgICBjb3VudFBhcmtpbmdMb3RzOiB0aGlzLmNvdW50U21hcnRwYXJrRmFjaWxpdGllcyhzbWFydHBhcmtzKVxuICAgICAgICB9KTtcbiAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBDbGVhclNlbGVjdGVkRmFjaWxpdHlBY3Rpb24oKSk7XG4gICAgICAgIGN0eC5kaXNwYXRjaChuZXcgTmF2aWdhdGUodGhpcy5yb3V0ZVNlcnZpY2UuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbWFuYWdlbWVudCcsICdzbWFydHBhcmtzJ10pKSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IocGFyc2VBcGlFcnJvck1lc3NhZ2UoZSksIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMsIGlkOiAnbW9kYWwnIH0pO1xuICAgICAgfSxcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKFNldFNtYXJ0UGFya1ZlcnNpb25zQWN0aW9uKVxuICBvblNldFNtYXJ0UGFya1ZlcnNpb25zQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZXRTbWFydFBhcmtWZXJzaW9uc0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHZlcnNpb25zOiBhY3Rpb24udmVyc2lvbnMsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24pXG4gIG9uTG9hZFNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBpZiAoY3R4LmdldFN0YXRlKCkuU3BBbmRTcGFya1ZlcnNpb25zID09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZlcnNpb25zJCA9IHRoaXMuc21hcnRwYXJrQ2xvdWRTZXJ2aWNlUHJveHkuZ2V0U3BBbmRTcGFya1ZlcnNpb25zKCk7XG4gICAgICByZXR1cm4gdmVyc2lvbnMkLnBpcGUodGFwKHZlcnNpb25zID0+IHtcbiAgICAgICAgY3R4LnBhdGNoU3RhdGUoeyBTcEFuZFNwYXJrVmVyc2lvbnM6IHZlcnNpb25zLmRhdGEgfSk7XG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihMb2FkQmFja29mZmljZVNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbilcbiAgb25Mb2FkQmFja29mZmljZVNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBpZiAoY3R4LmdldFN0YXRlKCkuU3BBbmRTcGFya1ZlcnNpb25zID09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZlcnNpb25zJCA9IHRoaXMuYmFja29mZmljZUNsb3VkU2VydmljZVByb3h5LmdldEJhY2tvZmZpY2VTcEFuZFNwYXJrVmVyc2lvbnMoKTtcbiAgICAgIHJldHVybiB2ZXJzaW9ucyQucGlwZSh0YXAodmVyc2lvbnMgPT4ge1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7IFNwQW5kU3BhcmtWZXJzaW9uczogdmVyc2lvbnMuZGF0YSB9KTtcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKENsZWFyU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uKVxuICBvbkNsZWFyU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIFNwQW5kU3BhcmtWZXJzaW9uczogbnVsbFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkVmFyc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRWYXJzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkVmFyc0FjdGlvbikge1xuICAgIGNvbnN0IHZhcnMkID0gdGhpcy5zbWFydHBhcmtDbG91ZFNlcnZpY2VQcm94eS5nZXRWYXJzKGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8ubWF4UmVzdWx0cywgYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5zZWFyY2hUZXJtLFxuICAgICAgYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5vcmRlckJ5LmNvbHVtbiwgYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5vcmRlckJ5Lm9yZGVyRGlyZWN0aW9uKTtcbiAgICByZXR1cm4gdmFycyQucGlwZSh0YXAodmFycyA9PiB7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIHZhcnM6IHZhcnMuZGF0YVxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkQmFja29mZmljZVZhcnNBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkQmFja29mZmljZVZhcnNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRCYWNrb2ZmaWNlVmFyc0FjdGlvbikge1xuICAgIGNvbnN0IHZhcnMkID0gdGhpcy5iYWNrb2ZmaWNlQ2xvdWRTZXJ2aWNlUHJveHkuZ2V0QmFja29mZmljZVZhcnMoYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5tYXhSZXN1bHRzLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLnNlYXJjaFRlcm0sXG4gICAgICBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkuY29sdW1uLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkub3JkZXJEaXJlY3Rpb24pO1xuICAgIHJldHVybiB2YXJzJC5waXBlKHRhcCh2YXJzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgdmFyczogdmFycy5kYXRhXG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRCYWNrb2ZmaWNlVmFyQnlJZEFjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRCYWNrb2ZmaWNlVmFyQnlJZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZEJhY2tvZmZpY2VWYXJCeUlkQWN0aW9uKSB7XG4gICAgY29uc3QgdmFyJCA9IHRoaXMuYmFja29mZmljZUNsb3VkU2VydmljZVByb3h5LmdldEJhY2tvZmZpY2VWYXJCeUlkKGFjdGlvbi52YXJJZCk7XG4gICAgcmV0dXJuIHZhciQucGlwZSh0YXAodmFyUmVzcG9uc2UgPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICB2YXJzOiBbdmFyUmVzcG9uc2UuZGF0YV1cbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oU3luY1VzZXJzQW5kUm9sZXNCeVNtYXJ0cGFya0lkQWN0aW9uKVxuICBvblN5bmNVc2Vyc0FuZFJvbGVzQnlTbWFydHBhcmtJZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogU3luY1VzZXJzQW5kUm9sZXNCeVNtYXJ0cGFya0lkQWN0aW9uKTogT2JzZXJ2YWJsZTxPYmplY3RIdHRwUmVzcG9uc2VEYXRhPiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja29mZmljZUNsb3VkU2VydmljZVByb3h5LnN5bmNVc2Vyc0J5U21hcnRwYXJrSWQoYWN0aW9uLnNtYXJ0cGFyay50ZW5hbnRJRCwgYWN0aW9uLnNtYXJ0cGFyay5pZCkucGlwZSh0YXAoe1xuICAgICAgbmV4dDogXyA9PiB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLnN1Y2Nlc3MoTG9jYWxpemF0aW9uLnN1Y2Nlc3NmdWxfc3luY191c2Vyc19hbmRfcm9sZXNfZm9yX3NtYXJ0cGFyaywgeyBtZXNzYWdlUGFyYW1zOiB7IHNtYXJ0cGFya05hbWU6IGFjdGlvbi5zbWFydHBhcmsubmFtZSB9IH0pLFxuICAgICAgZXJyb3I6IGUgPT4gdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihwYXJzZUFwaUVycm9yTWVzc2FnZShlKSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLkZsb2F0IH0pLFxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oRXhwb3J0U21hcnRwYXJrQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uRXhwb3J0U21hcnRwYXJrc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogRXhwb3J0U21hcnRwYXJrQWN0aW9uKSB7XG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLmJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlU21hcnRwYXJrcyhhY3Rpb24uc21hcnRwYXJrRmlsdGVyKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZSh0YXAoe1xuICAgICAgbmV4dDogc21hcnRwYXJrcyA9PiB7XG4gICAgICAgIGNvbnN0IHRhYmxlUm93czogYW55W11bXSA9IFtdO1xuICAgICAgICBjb25zdCBzbWFydHBhcmtzTGlzdDogU21hcnRwYXJrRHRvW10gPSBzbWFydHBhcmtzLmRhdGEuZW50aXRpZXM7XG4gICAgICAgIHNtYXJ0cGFya3NMaXN0LmZvckVhY2goKHNtYXJ0cGFyaykgPT4ge1xuICAgICAgICAgIHRhYmxlUm93cy5wdXNoKFtcbiAgICAgICAgICAgIHNtYXJ0cGFyay5uYW1lLFxuICAgICAgICAgICAgU21hcnRQYXJrVHlwZVtzbWFydHBhcmsudHlwZV0ucmVwbGFjZSgvKFtBLVpdKS9nLCAnICQxJykudHJpbSgpLFxuICAgICAgICAgICAgc21hcnRwYXJrLnRlbmFudE5hbWUsXG4gICAgICAgICAgICBzbWFydHBhcmsudmVyc2lvbixcbiAgICAgICAgICAgIHNtYXJ0cGFyay5zcGFya1ZlcnNpb24sXG4gICAgICAgICAgICBzbWFydHBhcmsuY3JlYXRlZEF0LFxuICAgICAgICAgICAgc21hcnRwYXJrLmd1aWQsXG4gICAgICAgICAgICBzbWFydHBhcmsudmFyTmFtZSB8fCAnLScsXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChTbWFydFBhcmtTdGF0dXNUZXh0W1NtYXJ0UGFya1N0YXR1c1tzbWFydHBhcmsuc3RhdHVzXV0pXG4gICAgICAgICAgXSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmV4cG9ydEZpbGVTZXJ2aWNlLmV4cG9ydChhY3Rpb24uZmlsZVR5cGUsIHRhYmxlUm93cywgYWN0aW9uLmNvbHVtbnNIZWFkZXIsIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5zbWFydHBhcmspKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5mYWlsZWRfZXhwb3J0X2ZpbGUpKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKEV4cG9ydFBkZlNtYXJ0cGFya3NUYWJsZUFjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkV4cG9ydFBkZlNtYXJ0cGFya3NUYWJsZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIHsgZmlsdGVyIH06IEV4cG9ydFBkZlNtYXJ0cGFya3NUYWJsZUFjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGV4cG9ydFBkZlNtYXJ0cGFya3M6IG51bGwsXG4gICAgfSk7XG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLmJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlU21hcnRwYXJrcyhmaWx0ZXIpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChzbWFydHBhcmtzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgZXhwb3J0UGRmU21hcnRwYXJrczogc21hcnRwYXJrcy5kYXRhLmVudGl0aWVzLFxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkU21hcnRwYXJrc0Ryb3Bkb3duQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZEFsbFNtYXJ0cGFya3NBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRTbWFydHBhcmtzRHJvcGRvd25BY3Rpb24pOiBPYnNlcnZhYmxlPFNtYXJ0cGFya0ZpbHRlck9wdGlvbkR0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YT4ge1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5saWNlbnNlQ2xvdWRTZXJ2aWNlUHJveHkuYmFzZVNtYXJ0cGFya3MoYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5tYXhSZXN1bHRzLFxuICAgICAgYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5zZWFyY2hUZXJtLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkuY29sdW1uLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkub3JkZXJEaXJlY3Rpb24pO1xuXG4gICAgcmV0dXJuIHNtYXJ0cGFya3MkLnBpcGUodGFwKGZhY2lsaXR5VHJlZUR0byA9PiB7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGZhY2lsaXR5VHJlZTogZmFjaWxpdHlUcmVlRHRvLmRhdGEsXG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKFVwZGF0ZVNtYXJ0cGFya1ZhckFjdGlvbilcbiAgb25VcGRhdGVTbWFydHBhcmtWYXJBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFVwZGF0ZVNtYXJ0cGFya1ZhckFjdGlvbikge1xuICAgIGNvbnN0IG1lc3NhZ2VCYXJQYXlsb2FkID0gdGhpcy5nZXRNZXNzYWdlSW5mbyhhY3Rpb24uc21hcnRwYXJrLm5hbWUsIExvY2FsaXphdGlvbi5zbWFydHBhcmssIExvY2FsaXphdGlvbi51cGRhdGUpO1xuICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuaW5mbyhMb2NhbGl6YXRpb24uZW50aXR5X2luX3Byb2dyZXNzLCBtZXNzYWdlQmFyUGF5bG9hZCk7XG5cbiAgICBjb25zdCB1cGRhdGVTbWFydHBhcmtWYXI6IFVwZGF0ZVNtYXJ0cGFya1ZhckR0byA9IG5ldyBVcGRhdGVTbWFydHBhcmtWYXJEdG8oe1xuICAgICAgdmFySWQ6IGFjdGlvbi52YXJEdG8uaWQsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5iYWNrb2ZmaWNlQ2xvdWRTZXJ2aWNlUHJveHkudXBkYXRlU21hcnRwYXJrVmFyKGFjdGlvbi5zbWFydHBhcmsuaWQsIHVwZGF0ZVNtYXJ0cGFya1ZhcikucGlwZSh0YXAoe1xuICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICBjb25zdCBtZXNzYWdlQmFyUGF5bG9hZCA9IHRoaXMuZ2V0TWVzc2FnZUluZm8oYWN0aW9uLnNtYXJ0cGFyay5uYW1lLCBMb2NhbGl6YXRpb24uc21hcnRwYXJrLCBMb2NhbGl6YXRpb24udXBkYXRlZCk7XG4gICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2Uuc3VjY2VzcyhMb2NhbGl6YXRpb24uZW50aXR5X3N1Y2Nlc3MsIG1lc3NhZ2VCYXJQYXlsb2FkKTtcblxuICAgICAgICBjb25zdCBkaXNwbGF5ZWRTbWFydHBhcmtzID0gY3R4LmdldFN0YXRlKCkuc21hcnRwYXJrcztcbiAgICAgICAgY29uc3Qgc21hcnRwYXJrSW5kZXggPSBkaXNwbGF5ZWRTbWFydHBhcmtzLmZpbmRJbmRleChlID0+IGUgaW5zdGFuY2VvZiBTbWFydHBhcmtEdG8gJiYgZS5pZCA9PT0gYWN0aW9uLnNtYXJ0cGFyay5pZCk7XG4gICAgICAgIFxuICAgICAgICBpZiAoc21hcnRwYXJrSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZFNtYXJ0cGFya3MgPSBkaXNwbGF5ZWRTbWFydHBhcmtzLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gc21hcnRwYXJrSW5kZXggJiYgaXRlbSBpbnN0YW5jZW9mIFNtYXJ0cGFya0R0bykge1xuICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkID0gbmV3IFNtYXJ0cGFya0R0byh7XG4gICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICB2YXJJZDogYWN0aW9uLnZhckR0by5pZCxcbiAgICAgICAgICAgICAgICB2YXJOYW1lOiBhY3Rpb24udmFyRHRvLm5hbWUsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBtYXJrRW50aXRpZXNBc0NoYW5nZWQoW3VwZGF0ZWRdLCBSb3dPcGVyYXRpb24uVXBkYXRlKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICAgIHNtYXJ0cGFya3M6IHVwZGF0ZWRTbWFydHBhcmtzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IoTG9jYWxpemF0aW9uLmVudGl0eV9mYWlsZWQsIG1lc3NhZ2VCYXJQYXlsb2FkKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBjb3VudFNtYXJ0cGFya0ZhY2lsaXRpZXMoc21hcnRwYXJrczogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdKTogbnVtYmVyIHtcbiAgICBsZXQgY291bnRQYXJraW5nTG90cyA9IDA7XG5cbiAgICBzbWFydHBhcmtzLmZvckVhY2goc21hcnRQYXJrID0+IHtcbiAgICAgIGlmIChzbWFydFBhcmsuZmFjaWxpdGllcykge1xuICAgICAgICBjb3VudFBhcmtpbmdMb3RzICs9IHNtYXJ0UGFyay5mYWNpbGl0aWVzLmZpbHRlcihmID0+ICFmLmlzTXVsdGlQYXJrKS5sZW5ndGg7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY291bnRQYXJraW5nTG90cztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TWVzc2FnZUluZm8oZW50aXR5TmFtZTogc3RyaW5nLCBlbnRpdHlUeXBlOiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nKSB7XG4gICAgY29uc3QgbWVzc2FnZUJhclBheWxvYWQ6IE1lc3NhZ2VCYXJQYXlsb2FkID0ge1xuICAgICAgZW50aXR5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChlbnRpdHlUeXBlKSxcbiAgICAgIGVudGl0eU5hbWUsXG4gICAgICBhY3Rpb246IGxvd2VyQ2FzZUZpcnN0TGV0dGVyKHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGFjdGlvbikpLFxuICAgIH07XG5cbiAgICByZXR1cm4gY3JlYXRlTWVzc2FnZVRleHQobWVzc2FnZUJhclBheWxvYWQpO1xuICB9XG59XG4iXX0=
|
|
@@ -4,12 +4,6 @@ export class GetLogoAction {
|
|
|
4
4
|
this.logo = logo;
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
|
-
export class GetMobileLogoAction {
|
|
8
|
-
static { this.type = '[logo] Get Mobile Logo'; }
|
|
9
|
-
constructor(logo) {
|
|
10
|
-
this.logo = logo;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
7
|
export class UploadLogoAction {
|
|
14
8
|
static { this.type = '[logo] Upload'; }
|
|
15
9
|
constructor(file) {
|
|
@@ -27,4 +21,4 @@ export class CleanLogoAction {
|
|
|
27
21
|
constructor() {
|
|
28
22
|
}
|
|
29
23
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWxvZ28uYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvbW9kdWxlcy90ZW5hbnQtbG9nby90ZW5hbnQtbG9nby5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxhQUFhO2FBQ0QsU0FBSSxHQUFHLFlBQVksQ0FBQztJQUUzQyxZQUFtQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ25DLENBQUM7O0FBR0gsTUFBTSxPQUFPLGdCQUFnQjthQUNKLFNBQUksR0FBRyxlQUFlLENBQUM7SUFFOUMsWUFBbUIsSUFBbUI7UUFBbkIsU0FBSSxHQUFKLElBQUksQ0FBZTtJQUN0QyxDQUFDOztBQUdILE1BQU0sT0FBTyxnQkFBZ0I7YUFDSixTQUFJLEdBQUcsZUFBZSxDQUFDO0lBRTlDLFlBQW1CLElBQW1CO1FBQW5CLFNBQUksR0FBSixJQUFJLENBQWU7SUFDdEMsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sZUFBZTthQUNILFNBQUksR0FBRyxjQUFjLENBQUM7SUFFN0M7SUFDQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVsZXRlTG9nb0R0bywgR2V0TG9nb0R0bywgVXBsb2FkTG9nb0R0byB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllc1wiO1xuXG5leHBvcnQgY2xhc3MgR2V0TG9nb0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbbG9nb10gR2V0JztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbG9nbzogR2V0TG9nb0R0bykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGxvYWRMb2dvQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tsb2dvXSBVcGxvYWQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmaWxlOiBVcGxvYWRMb2dvRHRvKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlbGV0ZUxvZ29BY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW2xvZ29dIERlbGV0ZSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGxvZ286IERlbGV0ZUxvZ29EdG8pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYW5Mb2dvQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tsb2dvXSBDbGVhbic7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -4,22 +4,20 @@ import { Dispatch } from '@ngxs-labs/dispatch-decorator';
|
|
|
4
4
|
import { Action, Selector, State } from '@ngxs/store';
|
|
5
5
|
import { tap } from 'rxjs/operators';
|
|
6
6
|
import { DATA_IMAGE_BASE64_PREFIX } from '../../constants/global-constants';
|
|
7
|
-
import { VERSION_MOBILE_LATEST } from '../../constants/version-constants';
|
|
8
7
|
import { UploadLogoDto } from '../../service-proxy/cloud-service-proxies';
|
|
9
8
|
import { parseApiErrorMessage } from '../../utils/api-helper.util';
|
|
10
|
-
import { CleanLogoAction, DeleteLogoAction, GetLogoAction,
|
|
9
|
+
import { CleanLogoAction, DeleteLogoAction, GetLogoAction, UploadLogoAction } from './tenant-logo.actions';
|
|
11
10
|
import * as i0 from "@angular/core";
|
|
12
11
|
import * as i1 from "../../service-proxy/cloud-service-proxies";
|
|
13
12
|
import * as i2 from "../../service-proxy/identity-service-proxies";
|
|
14
13
|
import * as i3 from "@angular/platform-browser";
|
|
15
14
|
import * as i4 from "../../components/message-bar/message-bar.service";
|
|
16
15
|
let LogoState = class LogoState {
|
|
17
|
-
constructor(assetCloudServiceProxy, assetIdentityServiceProxy, domSanitizer, messageBarService
|
|
16
|
+
constructor(assetCloudServiceProxy, assetIdentityServiceProxy, domSanitizer, messageBarService) {
|
|
18
17
|
this.assetCloudServiceProxy = assetCloudServiceProxy;
|
|
19
18
|
this.assetIdentityServiceProxy = assetIdentityServiceProxy;
|
|
20
19
|
this.domSanitizer = domSanitizer;
|
|
21
20
|
this.messageBarService = messageBarService;
|
|
22
|
-
this.mobileIdentityServiceProxy = mobileIdentityServiceProxy;
|
|
23
21
|
this.cleanLogo = () => new CleanLogoAction();
|
|
24
22
|
}
|
|
25
23
|
static image(state) {
|
|
@@ -31,12 +29,6 @@ let LogoState = class LogoState {
|
|
|
31
29
|
return this.assetIdentityServiceProxy.getLogo(action.logo.identifier).pipe(tap(logo => this.convertAndPatch(ctx, logo.data, action.logo.identifier)));
|
|
32
30
|
}
|
|
33
31
|
}
|
|
34
|
-
onGetMobileLogoAction(ctx, action) {
|
|
35
|
-
if (ctx.getState().identifier !== action.logo.identifier) {
|
|
36
|
-
this.cleanLogo();
|
|
37
|
-
return this.mobileIdentityServiceProxy.mobileGetLogo(action.logo.identifier, VERSION_MOBILE_LATEST).pipe(tap(logo => this.convertAndPatch(ctx, logo.data, action.logo.identifier)));
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
32
|
onUploadLogoAction(ctx, action) {
|
|
41
33
|
const uploadLogo = new UploadLogoDto();
|
|
42
34
|
uploadLogo.identifier = action.file.identifier;
|
|
@@ -75,15 +67,12 @@ let LogoState = class LogoState {
|
|
|
75
67
|
});
|
|
76
68
|
}
|
|
77
69
|
}
|
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LogoState, deps: [{ token: i1.AssetCloudServiceProxy }, { token: i2.AssetIdentityServiceProxy }, { token: i3.DomSanitizer }, { token: i4.MessageBarService }
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LogoState, deps: [{ token: i1.AssetCloudServiceProxy }, { token: i2.AssetIdentityServiceProxy }, { token: i3.DomSanitizer }, { token: i4.MessageBarService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
79
71
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LogoState }); }
|
|
80
72
|
};
|
|
81
73
|
__decorate([
|
|
82
74
|
Action(GetLogoAction)
|
|
83
75
|
], LogoState.prototype, "onGetLogoAction", null);
|
|
84
|
-
__decorate([
|
|
85
|
-
Action(GetMobileLogoAction)
|
|
86
|
-
], LogoState.prototype, "onGetMobileLogoAction", null);
|
|
87
76
|
__decorate([
|
|
88
77
|
Action(UploadLogoAction, { cancelUncompleted: true })
|
|
89
78
|
], LogoState.prototype, "onUploadLogoAction", null);
|
|
@@ -111,5 +100,5 @@ LogoState = __decorate([
|
|
|
111
100
|
export { LogoState };
|
|
112
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LogoState, decorators: [{
|
|
113
102
|
type: Injectable
|
|
114
|
-
}], ctorParameters: () => [{ type: i1.AssetCloudServiceProxy }, { type: i2.AssetIdentityServiceProxy }, { type: i3.DomSanitizer }, { type: i4.MessageBarService }
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWxvZ28uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvdGVuYW50LWxvZ28vdGVuYW50LWxvZ28uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBbUMsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFM0csT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7O0FBZXpILElBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVwQixZQUFvQixzQkFBOEMsRUFDeEQseUJBQW9ELEVBQ3BELFlBQTBCLEVBQzFCLGlCQUFvQyxFQUNwQywwQkFBc0Q7UUFKNUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN4RCw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsK0JBQTBCLEdBQTFC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QVUsRUFBRSxJQUFJO1NBQ2pCO0tBQ0YsQ0FBQztHQUNXLFNBQVMsQ0E2RXJCOzs0RkE3RVksU0FBUztrQkFSckIsVUFBVTt1T0F1QlQsZUFBZSxNQVFmLHFCQUFxQixNQVFyQixrQkFBa0IsTUFlbEIsa0JBQWtCLE1BY2xCLGlCQUFpQixNQWdCTCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBEaXNwYXRjaCB9IGZyb20gJ0BuZ3hzLWxhYnMvZGlzcGF0Y2gtZGVjb3JhdG9yJztcbmltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbWVzc2FnZS1iYXIvbWVzc2FnZS1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBEQVRBX0lNQUdFX0JBU0U2NF9QUkVGSVggfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZ2xvYmFsLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBWRVJTSU9OX01PQklMRV9MQVRFU1QgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdmVyc2lvbi1jb25zdGFudHMnO1xuaW1wb3J0IHsgQXNzZXRDbG91ZFNlcnZpY2VQcm94eSwgTG9nb0R0bywgVXBsb2FkTG9nb0R0byB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEFzc2V0SWRlbnRpdHlTZXJ2aWNlUHJveHksIE1vYmlsZUlkZW50aXR5U2VydmljZVByb3h5IH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9pZGVudGl0eS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgcGFyc2VBcGlFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlscy9hcGktaGVscGVyLnV0aWwnO1xuaW1wb3J0IHsgQ2xlYW5Mb2dvQWN0aW9uLCBEZWxldGVMb2dvQWN0aW9uLCBHZXRMb2dvQWN0aW9uLCBHZXRNb2JpbGVMb2dvQWN0aW9uLCBVcGxvYWRMb2dvQWN0aW9uIH0gZnJvbSAnLi90ZW5hbnQtbG9nby5hY3Rpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBMb2dvU3RhdGVNb2RlbCB7XG4gIGltYWdlOiBTYWZlVXJsLFxuICBpZGVudGlmaWVyOiBzdHJpbmcsXG59XG5cbkBJbmplY3RhYmxlKClcbkBTdGF0ZTxMb2dvU3RhdGVNb2RlbD4oe1xuICBuYW1lOiAnbG9nbycsXG4gIGRlZmF1bHRzOiB7XG4gICAgaW1hZ2U6IG51bGwsXG4gICAgaWRlbnRpZmllcjogbnVsbFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIExvZ29TdGF0ZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhc3NldENsb3VkU2VydmljZVByb3h5OiBBc3NldENsb3VkU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgYXNzZXRJZGVudGl0eVNlcnZpY2VQcm94eTogQXNzZXRJZGVudGl0eVNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHByaXZhdGUgbWVzc2FnZUJhclNlcnZpY2U6IE1lc3NhZ2VCYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9iaWxlSWRlbnRpdHlTZXJ2aWNlUHJveHk6IE1vYmlsZUlkZW50aXR5U2VydmljZVByb3h5KSB7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGltYWdlKHN0YXRlOiBMb2dvU3RhdGVNb2RlbCk6IFNhZmVVcmwge1xuICAgIHJldHVybiBzdGF0ZS5pbWFnZTtcbiAgfVxuXG4gIEBBY3Rpb24oR2V0TG9nb0FjdGlvbilcbiAgb25HZXRMb2dvQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ29TdGF0ZU1vZGVsPiwgYWN0aW9uOiBHZXRMb2dvQWN0aW9uKSB7XG4gICAgaWYgKGN0eC5nZXRTdGF0ZSgpLmlkZW50aWZpZXIgIT09IGFjdGlvbi5sb2dvLmlkZW50aWZpZXIpIHtcbiAgICAgIHRoaXMuY2xlYW5Mb2dvKCk7XG4gICAgICByZXR1cm4gdGhpcy5hc3NldElkZW50aXR5U2VydmljZVByb3h5LmdldExvZ28oYWN0aW9uLmxvZ28uaWRlbnRpZmllcikucGlwZSh0YXAobG9nbyA9PiB0aGlzLmNvbnZlcnRBbmRQYXRjaChjdHgsIGxvZ28uZGF0YSwgYWN0aW9uLmxvZ28uaWRlbnRpZmllcikpKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKEdldE1vYmlsZUxvZ29BY3Rpb24pXG4gIG9uR2V0TW9iaWxlTG9nb0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dvU3RhdGVNb2RlbD4sIGFjdGlvbjogR2V0TW9iaWxlTG9nb0FjdGlvbikge1xuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5pZGVudGlmaWVyICE9PSBhY3Rpb24ubG9nby5pZGVudGlmaWVyKSB7XG4gICAgICB0aGlzLmNsZWFuTG9nbygpO1xuICAgICAgcmV0dXJuIHRoaXMubW9iaWxlSWRlbnRpdHlTZXJ2aWNlUHJveHkubW9iaWxlR2V0TG9nbyhhY3Rpb24ubG9nby5pZGVudGlmaWVyLCBWRVJTSU9OX01PQklMRV9MQVRFU1QpLnBpcGUodGFwKGxvZ28gPT4gdGhpcy5jb252ZXJ0QW5kUGF0Y2goY3R4LCBsb2dvLmRhdGEsIGFjdGlvbi5sb2dvLmlkZW50aWZpZXIpKSk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihVcGxvYWRMb2dvQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uVXBsb2FkTG9nb0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dvU3RhdGVNb2RlbD4sIGFjdGlvbjogVXBsb2FkTG9nb0FjdGlvbikge1xuICAgIGNvbnN0IHVwbG9hZExvZ28gPSBuZXcgVXBsb2FkTG9nb0R0bygpO1xuICAgIHVwbG9hZExvZ28uaWRlbnRpZmllciA9IGFjdGlvbi5maWxlLmlkZW50aWZpZXI7XG4gICAgdXBsb2FkTG9nby5pbWFnZUI2NCA9IGFjdGlvbi5maWxlLmltYWdlQjY0O1xuICAgIHVwbG9hZExvZ28uZmlsZVR5cGUgPSBhY3Rpb24uZmlsZS5maWxlVHlwZTtcblxuICAgIHJldHVybiB0aGlzLmFzc2V0Q2xvdWRTZXJ2aWNlUHJveHkudXBsb2FkTG9nbyh1cGxvYWRMb2dvKS5waXBlKHRhcCh7XG4gICAgICBuZXh0OiB1cGxvYWRlZExvZ28gPT4gdGhpcy5jb252ZXJ0QW5kUGF0Y2goY3R4LCB1cGxvYWRlZExvZ28uZGF0YSwgYWN0aW9uLmZpbGUuaWRlbnRpZmllciksXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHBhcnNlQXBpRXJyb3JNZXNzYWdlKGVycikpO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oRGVsZXRlTG9nb0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkRlbGV0ZUxvZ29BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9nb1N0YXRlTW9kZWw+LCBhY3Rpb246IERlbGV0ZUxvZ29BY3Rpb24pIHtcbiAgICByZXR1cm4gdGhpcy5hc3NldENsb3VkU2VydmljZVByb3h5LmRlbGV0ZUxvZ28oYWN0aW9uLmxvZ28pLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgIGltYWdlOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHBhcnNlQXBpRXJyb3JNZXNzYWdlKGVycikpO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYW5Mb2dvQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uQ2xlYW5Mb2dvQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ29TdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGltYWdlOiBudWxsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRBbmRQYXRjaChjdHg6IFN0YXRlQ29udGV4dDxMb2dvU3RhdGVNb2RlbD4sIGxvZ286IExvZ29EdG8sIGlkZW50aWZpZXI6IHN0cmluZykge1xuICAgIGlmIChsb2dvPy5pbWFnZSkge1xuICAgICAgY29uc3QgYmFzZTY0SW1hZ2UgPSB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGAke0RBVEFfSU1BR0VfQkFTRTY0X1BSRUZJWH0sJHtsb2dvPy5pbWFnZX1gKTtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgaW1hZ2U6IGJhc2U2NEltYWdlLFxuICAgICAgICBpZGVudGlmaWVyXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBARGlzcGF0Y2goKSBjbGVhbkxvZ28gPSAoKSA9PiBuZXcgQ2xlYW5Mb2dvQWN0aW9uKCk7XG59XG4iXX0=
|
|
103
|
+
}], ctorParameters: () => [{ type: i1.AssetCloudServiceProxy }, { type: i2.AssetIdentityServiceProxy }, { type: i3.DomSanitizer }, { type: i4.MessageBarService }], propDecorators: { onGetLogoAction: [], onUploadLogoAction: [], onDeleteLogoAction: [], onCleanLogoAction: [], cleanLogo: [] } });
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWxvZ28uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvdGVuYW50LWxvZ28vdGVuYW50LWxvZ28uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBbUMsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFM0csT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7O0FBZXBHLElBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVwQixZQUFvQixzQkFBOEMsRUFDeEQseUJBQW9ELEVBQ3BELFlBQTBCLEVBQzFCLGlCQUFvQztRQUgxQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3hELDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFDcEQsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQThEbEMsY0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksZUFBZSxFQUFFLENBQUM7SUE3RHBELENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxLQUFL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QUFDO2dEQU1yQjtBQUdEO0lBREMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7bURBYXJEO0FBR0Q7SUFEQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQzttREFZckQ7QUFHRDtJQURDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQztrREFLcEQ7QUFZVztJQUFYLFFBQVEsRUFBRTs0Q0FBeUM7QUExRHRDO0lBRGIsUUFBUSxFQUFFOzRCQUdWO0FBWFUsU0FBUztJQVByQixLQUFLLENBQWlCO1FBQ3JCLElBQUksRUFBRSxNQUFNO1FBQ1osUUFBUSxFQUFFO1lBQ1IsS0FBSyxFQUFFLElBQUk7WUFDWCxVQUFVLEVBQUUsSUFBSTtTQUNqQjtLQUNGLENBQUM7R0FDVyxTQUFTLENBb0VyQjs7NEZBcEVZLFNBQVM7a0JBUnJCLFVBQVU7OExBc0JULGVBQWUsTUFRZixrQkFBa0IsTUFlbEIsa0JBQWtCLE1BY2xCLGlCQUFpQixNQWdCTCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBEaXNwYXRjaCB9IGZyb20gJ0BuZ3hzLWxhYnMvZGlzcGF0Y2gtZGVjb3JhdG9yJztcbmltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbWVzc2FnZS1iYXIvbWVzc2FnZS1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBEQVRBX0lNQUdFX0JBU0U2NF9QUkVGSVggfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZ2xvYmFsLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBBc3NldENsb3VkU2VydmljZVByb3h5LCBMb2dvRHRvLCBVcGxvYWRMb2dvRHRvIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgQXNzZXRJZGVudGl0eVNlcnZpY2VQcm94eSB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvaWRlbnRpdHktc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IHBhcnNlQXBpRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpLWhlbHBlci51dGlsJztcbmltcG9ydCB7IENsZWFuTG9nb0FjdGlvbiwgRGVsZXRlTG9nb0FjdGlvbiwgR2V0TG9nb0FjdGlvbiwgVXBsb2FkTG9nb0FjdGlvbiB9IGZyb20gJy4vdGVuYW50LWxvZ28uYWN0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nb1N0YXRlTW9kZWwge1xuICBpbWFnZTogU2FmZVVybCxcbiAgaWRlbnRpZmllcjogc3RyaW5nLFxufVxuXG5ASW5qZWN0YWJsZSgpXG5AU3RhdGU8TG9nb1N0YXRlTW9kZWw+KHtcbiAgbmFtZTogJ2xvZ28nLFxuICBkZWZhdWx0czoge1xuICAgIGltYWdlOiBudWxsLFxuICAgIGlkZW50aWZpZXI6IG51bGxcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBMb2dvU3RhdGUge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXNzZXRDbG91ZFNlcnZpY2VQcm94eTogQXNzZXRDbG91ZFNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGFzc2V0SWRlbnRpdHlTZXJ2aWNlUHJveHk6IEFzc2V0SWRlbnRpdHlTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwcml2YXRlIG1lc3NhZ2VCYXJTZXJ2aWNlOiBNZXNzYWdlQmFyU2VydmljZSkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBpbWFnZShzdGF0ZTogTG9nb1N0YXRlTW9kZWwpOiBTYWZlVXJsIHtcbiAgICByZXR1cm4gc3RhdGUuaW1hZ2U7XG4gIH1cblxuICBAQWN0aW9uKEdldExvZ29BY3Rpb24pXG4gIG9uR2V0TG9nb0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dvU3RhdGVNb2RlbD4sIGFjdGlvbjogR2V0TG9nb0FjdGlvbikge1xuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5pZGVudGlmaWVyICE9PSBhY3Rpb24ubG9nby5pZGVudGlmaWVyKSB7XG4gICAgICB0aGlzLmNsZWFuTG9nbygpO1xuICAgICAgcmV0dXJuIHRoaXMuYXNzZXRJZGVudGl0eVNlcnZpY2VQcm94eS5nZXRMb2dvKGFjdGlvbi5sb2dvLmlkZW50aWZpZXIpLnBpcGUodGFwKGxvZ28gPT4gdGhpcy5jb252ZXJ0QW5kUGF0Y2goY3R4LCBsb2dvLmRhdGEsIGFjdGlvbi5sb2dvLmlkZW50aWZpZXIpKSk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihVcGxvYWRMb2dvQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uVXBsb2FkTG9nb0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dvU3RhdGVNb2RlbD4sIGFjdGlvbjogVXBsb2FkTG9nb0FjdGlvbikge1xuICAgIGNvbnN0IHVwbG9hZExvZ28gPSBuZXcgVXBsb2FkTG9nb0R0bygpO1xuICAgIHVwbG9hZExvZ28uaWRlbnRpZmllciA9IGFjdGlvbi5maWxlLmlkZW50aWZpZXI7XG4gICAgdXBsb2FkTG9nby5pbWFnZUI2NCA9IGFjdGlvbi5maWxlLmltYWdlQjY0O1xuICAgIHVwbG9hZExvZ28uZmlsZVR5cGUgPSBhY3Rpb24uZmlsZS5maWxlVHlwZTtcblxuICAgIHJldHVybiB0aGlzLmFzc2V0Q2xvdWRTZXJ2aWNlUHJveHkudXBsb2FkTG9nbyh1cGxvYWRMb2dvKS5waXBlKHRhcCh7XG4gICAgICBuZXh0OiB1cGxvYWRlZExvZ28gPT4gdGhpcy5jb252ZXJ0QW5kUGF0Y2goY3R4LCB1cGxvYWRlZExvZ28uZGF0YSwgYWN0aW9uLmZpbGUuaWRlbnRpZmllciksXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHBhcnNlQXBpRXJyb3JNZXNzYWdlKGVycikpO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oRGVsZXRlTG9nb0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkRlbGV0ZUxvZ29BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9nb1N0YXRlTW9kZWw+LCBhY3Rpb246IERlbGV0ZUxvZ29BY3Rpb24pIHtcbiAgICByZXR1cm4gdGhpcy5hc3NldENsb3VkU2VydmljZVByb3h5LmRlbGV0ZUxvZ28oYWN0aW9uLmxvZ28pLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgIGltYWdlOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHBhcnNlQXBpRXJyb3JNZXNzYWdlKGVycikpO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYW5Mb2dvQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uQ2xlYW5Mb2dvQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ29TdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGltYWdlOiBudWxsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRBbmRQYXRjaChjdHg6IFN0YXRlQ29udGV4dDxMb2dvU3RhdGVNb2RlbD4sIGxvZ286IExvZ29EdG8sIGlkZW50aWZpZXI6IHN0cmluZykge1xuICAgIGlmIChsb2dvPy5pbWFnZSkge1xuICAgICAgY29uc3QgYmFzZTY0SW1hZ2UgPSB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGAke0RBVEFfSU1BR0VfQkFTRTY0X1BSRUZJWH0sJHtsb2dvPy5pbWFnZX1gKTtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgaW1hZ2U6IGJhc2U2NEltYWdlLFxuICAgICAgICBpZGVudGlmaWVyXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBARGlzcGF0Y2goKSBjbGVhbkxvZ28gPSAoKSA9PiBuZXcgQ2xlYW5Mb2dvQWN0aW9uKCk7XG59XG4iXX0=
|