@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.
Files changed (93) hide show
  1. package/esm2022/libraries/constants/version-constants.mjs +1 -10
  2. package/esm2022/libraries/enums/http-cancel-blacklist.enum.mjs +10 -8
  3. package/esm2022/libraries/enums/localization.enum.mjs +2 -1
  4. package/esm2022/libraries/guards/sub-module-guard.mjs +3 -3
  5. package/esm2022/libraries/localization/localization.action.mjs +1 -10
  6. package/esm2022/libraries/localization/localization.module.mjs +1 -4
  7. package/esm2022/libraries/localization/localization.state.mjs +5 -21
  8. package/esm2022/libraries/modules/alerts-and-notifications/alerts-and-notifications.actions.mjs +1 -7
  9. package/esm2022/libraries/modules/alerts-and-notifications/alerts-and-notifications.state.mjs +5 -20
  10. package/esm2022/libraries/modules/auth/session.actions.mjs +1 -10
  11. package/esm2022/libraries/modules/auth/session.state.mjs +5 -78
  12. package/esm2022/libraries/modules/login/login.actions.mjs +1 -9
  13. package/esm2022/libraries/modules/login/login.module.mjs +4 -4
  14. package/esm2022/libraries/modules/login/login.state.mjs +5 -24
  15. package/esm2022/libraries/modules/security/security.actions.mjs +1 -8
  16. package/esm2022/libraries/modules/security/security.state.mjs +5 -18
  17. package/esm2022/libraries/modules/smartparks/smartpark.actions.mjs +1 -12
  18. package/esm2022/libraries/modules/smartparks/smartpark.state.mjs +5 -20
  19. package/esm2022/libraries/modules/tenant-logo/tenant-logo.actions.mjs +1 -7
  20. package/esm2022/libraries/modules/tenant-logo/tenant-logo.state.mjs +5 -16
  21. package/esm2022/libraries/modules/user-settings/user-settings.state.mjs +5 -57
  22. package/esm2022/libraries/resolvers/index.mjs +1 -4
  23. package/esm2022/libraries/service-proxy/cloud-service-proxies.mjs +133 -790
  24. package/esm2022/libraries/service-proxy/identity-service-proxies.mjs +1 -560
  25. package/esm2022/libraries/service-proxy/service-proxy.module.mjs +4 -8
  26. package/esm2022/libraries/services/auth-token.service.mjs +68 -9
  27. package/esm2022/libraries/services/refresh-token.service.mjs +18 -16
  28. package/esm2022/libraries/services/smartpark.service.mjs +12 -8
  29. package/esm2022/libraries/services/tenant.service.mjs +7 -27
  30. package/fesm2022/tiba-spark-client-shared-lib.mjs +1853 -3372
  31. package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
  32. package/libraries/constants/version-constants.d.ts +0 -4
  33. package/libraries/constants/version-constants.d.ts.map +1 -1
  34. package/libraries/enums/http-cancel-blacklist.enum.d.ts.map +1 -1
  35. package/libraries/enums/localization.enum.d.ts +2 -1
  36. package/libraries/enums/localization.enum.d.ts.map +1 -1
  37. package/libraries/localization/localization.action.d.ts +0 -4
  38. package/libraries/localization/localization.action.d.ts.map +1 -1
  39. package/libraries/localization/localization.module.d.ts.map +1 -1
  40. package/libraries/localization/localization.state.d.ts +2 -4
  41. package/libraries/localization/localization.state.d.ts.map +1 -1
  42. package/libraries/modules/alerts-and-notifications/alerts-and-notifications.actions.d.ts +0 -5
  43. package/libraries/modules/alerts-and-notifications/alerts-and-notifications.actions.d.ts.map +1 -1
  44. package/libraries/modules/alerts-and-notifications/alerts-and-notifications.state.d.ts +3 -5
  45. package/libraries/modules/alerts-and-notifications/alerts-and-notifications.state.d.ts.map +1 -1
  46. package/libraries/modules/auth/session.actions.d.ts +0 -8
  47. package/libraries/modules/auth/session.actions.d.ts.map +1 -1
  48. package/libraries/modules/auth/session.state.d.ts +3 -9
  49. package/libraries/modules/auth/session.state.d.ts.map +1 -1
  50. package/libraries/modules/login/login.actions.d.ts +0 -7
  51. package/libraries/modules/login/login.actions.d.ts.map +1 -1
  52. package/libraries/modules/login/login.module.d.ts +1 -1
  53. package/libraries/modules/login/login.state.d.ts +3 -5
  54. package/libraries/modules/login/login.state.d.ts.map +1 -1
  55. package/libraries/modules/security/security.actions.d.ts +0 -6
  56. package/libraries/modules/security/security.actions.d.ts.map +1 -1
  57. package/libraries/modules/security/security.state.d.ts +2 -7
  58. package/libraries/modules/security/security.state.d.ts.map +1 -1
  59. package/libraries/modules/smartparks/smartpark.actions.d.ts +0 -6
  60. package/libraries/modules/smartparks/smartpark.actions.d.ts.map +1 -1
  61. package/libraries/modules/smartparks/smartpark.state.d.ts +3 -5
  62. package/libraries/modules/smartparks/smartpark.state.d.ts.map +1 -1
  63. package/libraries/modules/tenant-logo/tenant-logo.actions.d.ts +0 -5
  64. package/libraries/modules/tenant-logo/tenant-logo.actions.d.ts.map +1 -1
  65. package/libraries/modules/tenant-logo/tenant-logo.state.d.ts +3 -5
  66. package/libraries/modules/tenant-logo/tenant-logo.state.d.ts.map +1 -1
  67. package/libraries/modules/user-settings/user-settings.state.d.ts +3 -6
  68. package/libraries/modules/user-settings/user-settings.state.d.ts.map +1 -1
  69. package/libraries/resolvers/index.d.ts +0 -3
  70. package/libraries/resolvers/index.d.ts.map +1 -1
  71. package/libraries/service-proxy/cloud-service-proxies.d.ts +35 -111
  72. package/libraries/service-proxy/cloud-service-proxies.d.ts.map +1 -1
  73. package/libraries/service-proxy/identity-service-proxies.d.ts +0 -53
  74. package/libraries/service-proxy/identity-service-proxies.d.ts.map +1 -1
  75. package/libraries/service-proxy/service-proxy.module.d.ts.map +1 -1
  76. package/libraries/services/auth-token.service.d.ts +4 -0
  77. package/libraries/services/auth-token.service.d.ts.map +1 -1
  78. package/libraries/services/refresh-token.service.d.ts +3 -4
  79. package/libraries/services/refresh-token.service.d.ts.map +1 -1
  80. package/libraries/services/smartpark.service.d.ts +3 -1
  81. package/libraries/services/smartpark.service.d.ts.map +1 -1
  82. package/libraries/services/tenant.service.d.ts +3 -6
  83. package/libraries/services/tenant.service.d.ts.map +1 -1
  84. package/package.json +1 -1
  85. package/esm2022/libraries/resolvers/mobile-command-center-module.resolver.mjs +0 -53
  86. package/esm2022/libraries/resolvers/mobile-config.resolver.mjs +0 -21
  87. package/esm2022/libraries/resolvers/mobile-version.resolver.mjs +0 -24
  88. package/libraries/resolvers/mobile-command-center-module.resolver.d.ts +0 -21
  89. package/libraries/resolvers/mobile-command-center-module.resolver.d.ts.map +0 -1
  90. package/libraries/resolvers/mobile-config.resolver.d.ts +0 -12
  91. package/libraries/resolvers/mobile-config.resolver.d.ts.map +0 -1
  92. package/libraries/resolvers/mobile-version.resolver.d.ts +0 -13
  93. package/libraries/resolvers/mobile-version.resolver.d.ts.map +0 -1
@@ -5,7 +5,6 @@ import { Action, Selector, State } from '@ngxs/store';
5
5
  import { catchError, map, tap, throwError } from 'rxjs';
6
6
  import { MessageBarPosition } from '../../components/message-bar/message-bar-position.enum';
7
7
  import { RESET_PASSWORD_EMAIL } from '../../constants/keys-constants';
8
- import { VERSION_MOBILE_LATEST } from '../../constants/version-constants';
9
8
  import { AppType } from '../../enums/app-type.enum';
10
9
  import { Localization } from '../../enums/localization.enum';
11
10
  import { ActivateUserDto, UserStatus, UserUpdatePasswordDto } from '../../service-proxy/cloud-service-proxies';
@@ -13,7 +12,7 @@ import { AuthenticateBackofficeSsoRequestDto, AuthenticateRequestDto, Authentica
13
12
  import { parseApiErrorData, parseApiErrorMessage } from '../../utils/api-helper.util';
14
13
  import { HealthAction, LoadAppConfigurationAction, LoadBackofficeAppConfigurationAction, SetTenantUserAction, UpdateAuthTokenAction } from '../auth/session.actions';
15
14
  import { SessionState } from '../auth/session.state';
16
- import { AccountSetPasswordAction, AccountSetPasswordErrorAction, AccountSetPasswordInitAction, AuthenticateMultipleTenantsAction, BackofficeAutheticateAction, ForgotPasswordAction, ForgotPasswordTenantlessAction, MobileAuthenticateMultipleTenantsAction, OpenIdAutheticateAction, SetTFASetupAction, ValidateUserTokenAction, Verify2FactorAuthenticationAction } from './login.actions';
15
+ import { AccountSetPasswordAction, AccountSetPasswordErrorAction, AccountSetPasswordInitAction, AuthenticateMultipleTenantsAction, BackofficeAutheticateAction, ForgotPasswordAction, ForgotPasswordTenantlessAction, OpenIdAutheticateAction, SetTFASetupAction, ValidateUserTokenAction, Verify2FactorAuthenticationAction } from './login.actions';
17
16
  import * as i0 from "@angular/core";
18
17
  import * as i1 from "@ngxs/store";
19
18
  import * as i2 from "../../service-proxy/cloud-service-proxies";
@@ -28,7 +27,7 @@ import * as i10 from "../../components/message-bar/message-bar.service";
28
27
  import * as i11 from "../../services/app-config.service";
29
28
  import * as i12 from "../../services/route.service";
30
29
  let LoginState = class LoginState {
31
- constructor(store, usersCloudServiceProxy, backofficeUserIdentityServiceProxy, openIdAuthService, usersIdentityServiceProxy, authService, sessionStorageService, loginService, translateService, msalService, messageBarService, appConfig, routeService, mobileIdentityServiceProxy) {
30
+ constructor(store, usersCloudServiceProxy, backofficeUserIdentityServiceProxy, openIdAuthService, usersIdentityServiceProxy, authService, sessionStorageService, loginService, translateService, msalService, messageBarService, appConfig, routeService) {
32
31
  this.store = store;
33
32
  this.usersCloudServiceProxy = usersCloudServiceProxy;
34
33
  this.backofficeUserIdentityServiceProxy = backofficeUserIdentityServiceProxy;
@@ -42,7 +41,6 @@ let LoginState = class LoginState {
42
41
  this.messageBarService = messageBarService;
43
42
  this.appConfig = appConfig;
44
43
  this.routeService = routeService;
45
- this.mobileIdentityServiceProxy = mobileIdentityServiceProxy;
46
44
  this.messageOptions = { position: MessageBarPosition.Static };
47
45
  this.userStatusIsAwaitingAccess = (authResponse) => authResponse.data.singleSignOnAuthenticationDto?.isAuthenticated === false &&
48
46
  authResponse.data.singleSignOnAuthenticationDto?.userStatus === UserStatus.AwaitingAccess;
@@ -80,20 +78,6 @@ let LoginState = class LoginState {
80
78
  error: e => this.authenticationErrorMessageBar(e)
81
79
  }));
82
80
  }
83
- onMobileAuthenticateMultipleTenantsAction(ctx, { username, password, tenantName }) {
84
- const authenticateRequestDto = new AuthenticateRequestDto();
85
- authenticateRequestDto.username = username;
86
- authenticateRequestDto.password = password;
87
- authenticateRequestDto.tenantName = tenantName;
88
- return this.mobileIdentityServiceProxy.mobileAuthenticate(VERSION_MOBILE_LATEST, authenticateRequestDto).pipe(tap({
89
- next: accounts => {
90
- ctx.patchState({
91
- accountsMap: accounts.data,
92
- });
93
- },
94
- error: e => this.authenticationErrorMessageBar(e)
95
- }));
96
- }
97
81
  onForgotPassword(ctx, { email, tenantId }) {
98
82
  const isMobileAppMode = this.appConfig.getConfig().appType === AppType.Mobile;
99
83
  const path = ['account', 'forgot-password-success'];
@@ -335,15 +319,12 @@ let LoginState = class LoginState {
335
319
  this.sessionStorageService.updateLoggedTenant();
336
320
  this.loginService.loginToSpark();
337
321
  }
338
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginState, deps: [{ token: i1.Store }, { token: i2.UsersCloudServiceProxy }, { token: i3.BackofficeUserIdentityServiceProxy }, { token: i4.OpenIdAuthService }, { token: i3.UsersIdentityServiceProxy }, { token: i5.AuthService }, { token: i6.SessionStorageService }, { token: i7.LoginService }, { token: i8.TranslateService }, { token: i9.MsalService }, { token: i10.MessageBarService }, { token: i11.AppConfigService }, { token: i12.RouteService }, { token: i3.MobileIdentityServiceProxy }], target: i0.ɵɵFactoryTarget.Injectable }); }
322
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginState, deps: [{ token: i1.Store }, { token: i2.UsersCloudServiceProxy }, { token: i3.BackofficeUserIdentityServiceProxy }, { token: i4.OpenIdAuthService }, { token: i3.UsersIdentityServiceProxy }, { token: i5.AuthService }, { token: i6.SessionStorageService }, { token: i7.LoginService }, { token: i8.TranslateService }, { token: i9.MsalService }, { token: i10.MessageBarService }, { token: i11.AppConfigService }, { token: i12.RouteService }], target: i0.ɵɵFactoryTarget.Injectable }); }
339
323
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginState }); }
340
324
  };
341
325
  __decorate([
342
326
  Action(AuthenticateMultipleTenantsAction)
343
327
  ], LoginState.prototype, "onAuthenticateMultipleTenantsAction", null);
344
- __decorate([
345
- Action(MobileAuthenticateMultipleTenantsAction)
346
- ], LoginState.prototype, "onMobileAuthenticateMultipleTenantsAction", null);
347
328
  __decorate([
348
329
  Action(ForgotPasswordAction)
349
330
  ], LoginState.prototype, "onForgotPassword", null);
@@ -408,5 +389,5 @@ LoginState = __decorate([
408
389
  export { LoginState };
409
390
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginState, decorators: [{
410
391
  type: Injectable
411
- }], ctorParameters: () => [{ type: i1.Store }, { type: i2.UsersCloudServiceProxy }, { type: i3.BackofficeUserIdentityServiceProxy }, { type: i4.OpenIdAuthService }, { type: i3.UsersIdentityServiceProxy }, { type: i5.AuthService }, { type: i6.SessionStorageService }, { type: i7.LoginService }, { type: i8.TranslateService }, { type: i9.MsalService }, { type: i10.MessageBarService }, { type: i11.AppConfigService }, { type: i12.RouteService }, { type: i3.MobileIdentityServiceProxy }], propDecorators: { onAuthenticateMultipleTenantsAction: [], onMobileAuthenticateMultipleTenantsAction: [], onForgotPassword: [], onForgotPasswordTenantless: [], onAccountSetPasswordInitAction: [], onAccountSetPasswordErrorAction: [], onAccountSetPasswordAction: [], onValidateUserTokenAction: [], onVerify2FactorAuthenticationAction: [], onSetTFASetupAction: [], onBackofficeAutheticateAction: [], onOpenIdAutheticateAction: [] } });
412
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvbG9naW4vbG9naW4uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBdUIsTUFBTSxhQUFhLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQWMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFDZ0MsZUFBZSxFQUNILFVBQVUsRUFBRSxxQkFBcUIsRUFDbkYsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsbUNBQW1DLEVBQWdDLHNCQUFzQixFQUNoRCw0QkFBNEIsRUFDckUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQ3hDLDJCQUEyQixFQUM1QixNQUFNLDhDQUE4QyxDQUFDO0FBS3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSXRGLE9BQU8sRUFBRSxZQUFZLEVBQUUsMEJBQTBCLEVBQUUsb0NBQW9DLEVBQUUs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USxFQUFFLFNBQVM7WUFDbkIsVUFBVSxFQUFFLEVBQUU7WUFDZCxrQkFBa0IsRUFBRSxTQUFTO1lBQzdCLFFBQVEsRUFBRSxFQUFFO1lBQ1osV0FBVyxFQUFFLEVBQUU7WUFDZixRQUFRLEVBQUUsU0FBUztTQUNwQjtLQUNGLENBQUM7R0FDVyxVQUFVLENBd1d0Qjs7NEZBeFdZLFVBQVU7a0JBWnRCLFVBQVU7Z2dCQXdERixtQ0FBbUMsTUFpQm5DLHlDQUF5QyxNQWdCekMsZ0JBQWdCLE1BWWhCLDBCQUEwQixNQU8xQiw4QkFBOEIsTUFROUIsK0JBQStCLE1BUy9CLDBCQUEwQixNQXdDMUIseUJBQXlCLE1Bd0N6QixtQ0FBbUMsTUEwQm5DLG1CQUFtQixNQXdDbkIsNkJBQTZCLE1BaUM3Qix5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ2xlYXJDYWNoZVJlcXVlc3QgfSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRlIH0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbic7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgT2JzZXJ2YWJsZSwgdGFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyUG9zaXRpb24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLXBvc2l0aW9uLmVudW0nO1xuaW1wb3J0IHsgTWVzc2FnZUJhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUkVTRVRfUEFTU1dPUkRfRU1BSUwgfSBmcm9tICcuLi8uLi9jb25zdGFudHMva2V5cy1jb25zdGFudHMnO1xuaW1wb3J0IHsgVkVSU0lPTl9NT0JJTEVfTEFURVNUIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3ZlcnNpb24tY29uc3RhbnRzJztcbmltcG9ydCB7IEFwcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9hcHAtdHlwZS5lbnVtJztcbmltcG9ydCB7IExvY2FsaXphdGlvbiB9IGZyb20gJy4uLy4uL2VudW1zL2xvY2FsaXphdGlvbi5lbnVtJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLCBBY3RpdmF0ZVVzZXJEdG8sIEFwaUV4Y2VwdGlvbiwgUHJvYmxlbURldGFpbHMsIFRmYVNldHVwRHRvLFxuICBVc2VyRHRvSHR0cFJlc3BvbnNlRGF0YSwgVXNlcnNDbG91ZFNlcnZpY2VQcm94eSwgVXNlclN0YXR1cywgVXNlclVwZGF0ZVBhc3N3b3JkRHRvXG59IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7XG4gIEF1dGhlbnRpY2F0ZUJhY2tvZmZpY2VTc29SZXF1ZXN0RHRvLCBBdXRoZW50aWNhdGVFcnJvclJlc3BvbnNlRHRvLCBBdXRoZW50aWNhdGVSZXF1ZXN0RHRvLCBBdXRoZW50aWNhdGVSZXNwb25zZUR0byxcbiAgQXV0aGVudGljYXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLCBBdXRoZW50aWNhdGVXZWJTc29SZXF1ZXN0RHRvLCBCYWNrb2ZmaWNlVXNlcklkZW50aXR5U2VydmljZVByb3h5LCBNb2JpbGVJZGVudGl0eVNlcnZpY2VQcm94eSxcbiAgUGFzc3dvcmRDaGFuZ2VUeXBlLCBTaW5nbGVTaWduT25Qcm92aWRlciwgVXNlcnNJZGVudGl0eVNlcnZpY2VQcm94eSwgVmFsaWRhdGVBY3RpdmF0aW9uVXNlckR0b0h0dHBSZXNwb25zZURhdGEsXG4gIFZlcmlmeTJGYWN0b3JBdXRoUmVxdWVzdER0bywgVmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXREdG9IdHRwUmVzcG9uc2VEYXRhXG59IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvaWRlbnRpdHktc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3BlbklkQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vcGVuaWQtYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JvdXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgcGFyc2VBcGlFcnJvckRhdGEsIHBhcnNlQXBpRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpLWhlbHBlci51dGlsJztcbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gJy4uLy4uL3V0aWxzL2xhbmcudXRpbCc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJJbmZvIH0gZnJvbSAnLi4vYXV0aC9tb2RlbC91c2VyLWluZm8uaW50ZXJmYWNlJztcbmltcG9ydCB7IEhlYWx0aEFjdGlvbiwgTG9hZEFwcENvbmZpZ3VyYXRpb25BY3Rpb24sIExvYWRCYWNrb2ZmaWNlQXBwQ29uZmlndXJhdGlvbkFjdGlvbiwgU2V0VGVuYW50VXNlckFjdGlvbiwgVXBkYXRlQXV0aFRva2VuQWN0aW9uIH0gZnJvbSAnLi4vYXV0aC9zZXNzaW9uLmFjdGlvbnMnO1xuaW1wb3J0IHsgU2Vzc2lvblN0YXRlIH0gZnJvbSAnLi4vYXV0aC9zZXNzaW9uLnN0YXRlJztcbmltcG9ydCB7XG4gIEFjY291bnRTZXRQYXNzd29yZEFjdGlvbiwgQWNjb3VudFNldFBhc3N3b3JkRXJyb3JBY3Rpb24sIEFjY291bnRTZXRQYXNzd29yZEluaXRBY3Rpb24sIEF1dGhlbnRpY2F0ZU11bHRpcGxlVGVuYW50c0FjdGlvbixcbiAgQmFja29mZmljZUF1dGhldGljYXRlQWN0aW9uLCBGb3Jnb3RQYXNzd29yZEFjdGlvbiwgRm9yZ290UGFzc3dvcmRUZW5hbnRsZXNzQWN0aW9uLCBNb2JpbGVBdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24sXG4gIE9wZW5JZEF1dGhldGljYXRlQWN0aW9uLCBTZXRURkFTZXR1cEFjdGlvbiwgVmFsaWRhdGVVc2VyVG9rZW5BY3Rpb24sIFZlcmlmeTJGYWN0b3JBdXRoZW50aWNhdGlvbkFjdGlvblxufSBmcm9tICcuL2xvZ2luLmFjdGlvbnMnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi9sb2dpbi5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBMb2dpblN0YXRlTW9kZWwge1xuICB1c2VySW5mbzogVXNlckluZm87XG4gIHRlbmFudE5hbWU6IHN0cmluZztcbiAgcGFzc3dvcmRDaGFuZ2VUeXBlOiBQYXNzd29yZENoYW5nZVR5cGU7XG4gIGFjY291bnRzOiBBdXRoZW50aWNhdGVSZXNwb25zZUR0b1tdO1xuICBhY2NvdW50c01hcDogU3RyaW5nTWFwPEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvPjtcbiAgdGZhU2V0dXA6IFRmYVNldHVwRHRvO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5AU3RhdGU8TG9naW5TdGF0ZU1vZGVsPih7XG4gIG5hbWU6ICdsb2dpbicsXG4gIGRlZmF1bHRzOiB7XG4gICAgdXNlckluZm86IHVuZGVmaW5lZCxcbiAgICB0ZW5hbnROYW1lOiAnJyxcbiAgICBwYXNzd29yZENoYW5nZVR5cGU6IHVuZGVmaW5lZCxcbiAgICBhY2NvdW50czogW10sXG4gICAgYWNjb3VudHNNYXA6IHt9LFxuICAgIHRmYVNldHVwOiB1bmRlZmluZWQsXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5TdGF0ZSB7XG5cbiAgcHJpdmF0ZSBtZXNzYWdlT3B0aW9ucyA9IHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHVzZXJzQ2xvdWRTZXJ2aWNlUHJveHk6IFVzZXJzQ2xvdWRTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBiYWNrb2ZmaWNlVXNlcklkZW50aXR5U2VydmljZVByb3h5OiBCYWNrb2ZmaWNlVXNlcklkZW50aXR5U2VydmljZVByb3h5LCBwcml2YXRlIG9wZW5JZEF1dGhTZXJ2aWNlOiBPcGVuSWRBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzSWRlbnRpdHlTZXJ2aWNlUHJveHk6IFVzZXJzSWRlbnRpdHlTZXJ2aWNlUHJveHksIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsIHByaXZhdGUgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIG1zYWxTZXJ2aWNlOiBNc2FsU2VydmljZSwgcHJpdmF0ZSBtZXNzYWdlQmFyU2VydmljZTogTWVzc2FnZUJhclNlcnZpY2UsIHByaXZhdGUgYXBwQ29uZmlnOiBBcHBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVTZXJ2aWNlOiBSb3V0ZVNlcnZpY2UsIHByaXZhdGUgbW9iaWxlSWRlbnRpdHlTZXJ2aWNlUHJveHk6IE1vYmlsZUlkZW50aXR5U2VydmljZVByb3h5KSB7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHR3b0ZhY3RvclNldHVwRm9yVXNlcihzdGF0ZTogTG9naW5TdGF0ZU1vZGVsKTogVGZhU2V0dXBEdG8ge1xuICAgIHJldHVybiBzdGF0ZS50ZmFTZXR1cDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdGVuYW50TmFtZShzdGF0ZTogTG9naW5TdGF0ZU1vZGVsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3RhdGUudGVuYW50TmFtZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdXNlckluZm8oc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IFVzZXJJbmZvIHtcbiAgICByZXR1cm4gc3RhdGUudXNlckluZm87XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHRlbXBsYXRlVHlwZShzdGF0ZTogTG9naW5TdGF0ZU1vZGVsKTogUGFzc3dvcmRDaGFuZ2VUeXBlIHtcbiAgICByZXR1cm4gc3RhdGUucGFzc3dvcmRDaGFuZ2VUeXBlO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBhY2NvdW50cyhzdGF0ZTogTG9naW5TdGF0ZU1vZGVsKTogQXV0aGVudGljYXRlUmVzcG9uc2VEdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLmFjY291bnRzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBhY2NvdW50c01hcChzdGF0ZTogTG9naW5TdGF0ZU1vZGVsKTogU3RyaW5nTWFwPEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvPiB7XG4gICAgcmV0dXJuIHN0YXRlLmFjY291bnRzTWFwO1xuICB9XG5cbiAgQEFjdGlvbihBdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24pXG4gIHB1YmxpYyBvbkF1dGhlbnRpY2F0ZU11bHRpcGxlVGVuYW50c0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IHVzZXJuYW1lLCBwYXNzd29yZCB9OiBBdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24pIHtcbiAgICBjb25zdCBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvID0gbmV3IEF1dGhlbnRpY2F0ZVJlcXVlc3REdG8oKTtcbiAgICBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvLnVzZXJuYW1lID0gdXNlcm5hbWU7XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by5wYXNzd29yZCA9IHBhc3N3b3JkO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8udGVuYW50TmFtZSA9ICcnO1xuICAgIHJldHVybiB0aGlzLnVzZXJzSWRlbnRpdHlTZXJ2aWNlUHJveHkubXVsdGlUZW5hbnRzQXV0aGVudGljYXRlKGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8pLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IGFjY291bnRzSHR0cFJlc3BvbnNlRGF0YSA9PiB7XG4gICAgICAgIGNvbnN0IGFjY291bnRzID0gYWNjb3VudHNIdHRwUmVzcG9uc2VEYXRhLmRhdGE7XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICBhY2NvdW50c1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB0aGlzLmF1dGhlbnRpY2F0aW9uRXJyb3JNZXNzYWdlQmFyKGUpXG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihNb2JpbGVBdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24pXG4gIHB1YmxpYyBvbk1vYmlsZUF1dGhlbnRpY2F0ZU11bHRpcGxlVGVuYW50c0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IHVzZXJuYW1lLCBwYXNzd29yZCwgdGVuYW50TmFtZSB9OiBNb2JpbGVBdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24pIHtcbiAgICBjb25zdCBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvID0gbmV3IEF1dGhlbnRpY2F0ZVJlcXVlc3REdG8oKTtcbiAgICBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvLnVzZXJuYW1lID0gdXNlcm5hbWU7XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by5wYXNzd29yZCA9IHBhc3N3b3JkO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8udGVuYW50TmFtZSA9IHRlbmFudE5hbWU7XG4gICAgcmV0dXJuIHRoaXMubW9iaWxlSWRlbnRpdHlTZXJ2aWNlUHJveHkubW9iaWxlQXV0aGVudGljYXRlKFZFUlNJT05fTU9CSUxFX0xBVEVTVCwgYXV0aGVudGljYXRlUmVxdWVzdER0bykucGlwZSh0YXAoe1xuICAgICAgbmV4dDogYWNjb3VudHMgPT4ge1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgYWNjb3VudHNNYXA6IGFjY291bnRzLmRhdGEsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiBlID0+IHRoaXMuYXV0aGVudGljYXRpb25FcnJvck1lc3NhZ2VCYXIoZSlcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKEZvcmdvdFBhc3N3b3JkQWN0aW9uKVxuICBwdWJsaWMgb25Gb3Jnb3RQYXNzd29yZChjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IGVtYWlsLCB0ZW5hbnRJZCB9OiBGb3Jnb3RQYXNzd29yZEFjdGlvbikge1xuICAgIGNvbnN0IGlzTW9iaWxlQXBwTW9kZSA9IHRoaXMuYXBwQ29uZmlnLmdldENvbmZpZygpLmFwcFR5cGUgPT09IEFwcFR5cGUuTW9iaWxlO1xuICAgIGNvbnN0IHBhdGggPSBbJ2FjY291bnQnLCAnZm9yZ290LXBhc3N3b3JkLXN1Y2Nlc3MnXTtcbiAgICBjb25zdCB1cmwgPSBpc01vYmlsZUFwcE1vZGUgPyBwYXRoIDogdGhpcy5yb3V0ZVNlcnZpY2UuZ2V0TmF2aWdhdGlvblJvdXRlKHBhdGgpO1xuXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShSRVNFVF9QQVNTV09SRF9FTUFJTCwgSlNPTi5zdHJpbmdpZnkoZW1haWwpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZSh1cmwpKTtcbiAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLnN1Y2Nlc3MoTG9jYWxpemF0aW9uLmZvcmdvdF9wYXNzd29yZF9lbWFpbF9zZW50X21zZywgdGhpcy5tZXNzYWdlT3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMudXNlcnNDbG91ZFNlcnZpY2VQcm94eS5mb3Jnb3RQYXNzd29yZChlbWFpbCwgdGVuYW50SWQpO1xuICB9XG5cbiAgQEFjdGlvbihGb3Jnb3RQYXNzd29yZFRlbmFudGxlc3NBY3Rpb24pXG4gIHB1YmxpYyBvbkZvcmdvdFBhc3N3b3JkVGVuYW50bGVzcyhjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IGVtYWlsIH06IEZvcmdvdFBhc3N3b3JkQWN0aW9uKSB7XG4gICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5zdWNjZXNzKExvY2FsaXphdGlvbi5mb3Jnb3RfcGFzc3dvcmRfZW1haWxfc2VudF9tc2csIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLnVzZXJzQ2xvdWRTZXJ2aWNlUHJveHkuZm9yZ290UGFzc3dvcmRUZW5hbnRsZXNzKGVtYWlsKTtcbiAgfVxuXG5cbiAgQEFjdGlvbihBY2NvdW50U2V0UGFzc3dvcmRJbml0QWN0aW9uKVxuICBwdWJsaWMgb25BY2NvdW50U2V0UGFzc3dvcmRJbml0QWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgdXNlckluZm8sIGNvbXBvbmVudFR5cGUgfSkge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHVzZXJJbmZvLFxuICAgICAgcGFzc3dvcmRDaGFuZ2VUeXBlOiBjb21wb25lbnRUeXBlXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKEFjY291bnRTZXRQYXNzd29yZEVycm9yQWN0aW9uKVxuICBwdWJsaWMgb25BY2NvdW50U2V0UGFzc3dvcmRFcnJvckFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IGVycm9yTXNnLCB1c2VybmFtZSB9KSB7XG4gICAgY29uc3QgdXNlckluZm86IFVzZXJJbmZvID0geyAuLi51c2VybmFtZSB9O1xuICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IoZXJyb3JNc2csIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHVzZXJJbmZvXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKEFjY291bnRTZXRQYXNzd29yZEFjdGlvbilcbiAgcHVibGljIG9uQWNjb3VudFNldFBhc3N3b3JkQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgcGFzc3dvcmQgfTogQWNjb3VudFNldFBhc3N3b3JkQWN0aW9uKSB7XG4gICAgY29uc3QgdXNlckluZm8gPSBjdHguZ2V0U3RhdGUoKS51c2VySW5mbztcbiAgICBsZXQgZGF0YTogYW55O1xuICAgIGxldCBzZXRQYXNzd29yZCQ6IE9ic2VydmFibGU8VXNlckR0b0h0dHBSZXNwb25zZURhdGEgfCBBY3RpdmF0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YT47XG5cbiAgICBpZiAodGhpcy5hcHBDb25maWcuZ2V0Q29uZmlnKCkuYXBwVHlwZSA9PT0gQXBwVHlwZS5DbG91ZCkge1xuICAgICAgZGF0YSA9IG5ldyBBY3RpdmF0ZVVzZXJEdG8oe1xuICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgY3VycmVudFBhc3N3b3JkOiBudWxsLFxuICAgICAgICB1c2VyU3RhdHVzOiB1c2VySW5mby5zdGF0dXMgYXMgVXNlclN0YXR1c1xuICAgICAgfSk7XG5cbiAgICAgIHNldFBhc3N3b3JkJCA9IHRoaXMudXNlcnNDbG91ZFNlcnZpY2VQcm94eS5hY3RpdmF0ZShkYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YSA9IG5ldyBVc2VyVXBkYXRlUGFzc3dvcmREdG8oe1xuICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgY3VycmVudFBhc3N3b3JkOiBudWxsXG4gICAgICB9KTtcbiAgICAgIHNldFBhc3N3b3JkJCA9IHRoaXMudXNlcnNDbG91ZFNlcnZpY2VQcm94eS51cGRhdGVVc2VyUGFzc3dvcmQoZGF0YSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNldFBhc3N3b3JkJC5waXBlKFxuICAgICAgbWFwKChhY3RpdmF0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YTogQWN0aXZhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKGFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLmRhdGEuaXNTdWNjZXNzKSB7XG4gICAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgICAgdGZhU2V0dXA6IGFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLmRhdGE/LnRmYVNldHVwLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihhY3RpdmF0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YS5kYXRhLmVycm9yTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogZTtcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihlcnJvck1lc3NhZ2UsIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvck1lc3NhZ2UpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgQEFjdGlvbihWYWxpZGF0ZVVzZXJUb2tlbkFjdGlvbilcbiAgcHVibGljIG9uVmFsaWRhdGVVc2VyVG9rZW5BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB0b2tlbiwgdG9rZW5UeXBlIH06IFZhbGlkYXRlVXNlclRva2VuQWN0aW9uKSB7XG4gICAgY29uc3QgcGN0OiBhbnkgPSBQYXNzd29yZENoYW5nZVR5cGVbdG9rZW5UeXBlXTtcbiAgICByZXR1cm4gdGhpcy51c2Vyc0lkZW50aXR5U2VydmljZVByb3h5LnZhbGlkYXRlQWN0aXZhdGlvbih0b2tlbiwgUGFzc3dvcmRDaGFuZ2VUeXBlW1Bhc3N3b3JkQ2hhbmdlVHlwZVt0b2tlblR5cGVdXSkucGlwZSh0YXAoe1xuICAgICAgbmV4dDogKHVzZXI6IFZhbGlkYXRlQWN0aXZhdGlvblVzZXJEdG9IdHRwUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmICh1c2VyPy5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgdXNlckluZm86IFVzZXJJbmZvID0ge1xuICAgICAgICAgICAgdXNlcklkOiB1c2VyLmRhdGEuaWQsXG4gICAgICAgICAgICB1c2VybmFtZTogdXNlci5kYXRhLnVOYW1lLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6IGAke3VzZXIuZGF0YS5uYW1lfSAke3VzZXIuZGF0YS5sYXN0TmFtZX1gLFxuICAgICAgICAgICAgc3RhdHVzOiB1c2VyLmRhdGEuc3RhdHVzLFxuICAgICAgICAgICAgcG1sOiB1c2VyLmRhdGEucG1sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAodXNlci5kYXRhLnN0YXR1cyAhPT0gVXNlclN0YXR1cy5CbG9ja2VkKSB7XG4gICAgICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgICAgIHVzZXJJbmZvLFxuICAgICAgICAgICAgICBwYXNzd29yZENoYW5nZVR5cGU6IHBjdCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKExvY2FsaXphdGlvbi5ub25fYWN0aXZlX3VzZXIsIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgICAgICB1c2VySW5mbyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiBlID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3JKc29uOiBQcm9ibGVtRGV0YWlscyA9IEpTT04ucGFyc2UoZS5yZXNwb25zZSkgYXMgUHJvYmxlbURldGFpbHM7XG4gICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IocGFyc2VBcGlFcnJvck1lc3NhZ2UoZSksIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgdXNlckluZm86IHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiBlcnJvckpzb24uaW5zdGFuY2UsXG4gICAgICAgICAgICB1c2VySWQ6IG51bGwsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogbnVsbFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oVmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uQWN0aW9uKVxuICBwdWJsaWMgb25WZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb25BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB1c2VyTmFtZSwgY29kZSwgc2V0dXAyRmEgfTogVmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uQWN0aW9uKSB7XG4gICAgY29uc3QgdmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvID0gbmV3IFZlcmlmeTJGYWN0b3JBdXRoUmVxdWVzdER0byh7XG4gICAgICBjb2RlLFxuICAgICAgdXNlck5hbWVcbiAgICB9KTtcblxuICAgIGxldCB2ZXJpZnkyRmFjdG9yQXV0aCQ6IE9ic2VydmFibGU8VmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXREdG9IdHRwUmVzcG9uc2VEYXRhPjtcbiAgICBpZiAoc2V0dXAyRmEpIHtcbiAgICAgIHZlcmlmeTJGYWN0b3JBdXRoJCA9IHRoaXMudXNlcnNJZGVudGl0eVNlcnZpY2VQcm94eS52ZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb24odmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvKTtcbiAgICB9IGVsc2UgeyAvLyBsb2dpbiBmb3IgdXNlciB3aXRoIDJGQSAoYWxyZWFkeSBzZXQgdXApXG4gICAgICB2ZXJpZnkyRmFjdG9yQXV0aCQgPSB0aGlzLnVzZXJzSWRlbnRpdHlTZXJ2aWNlUHJveHkudmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uTG9naW4odmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZ5MkZhY3RvckF1dGgkLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6ICh2ZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldDogVmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXREdG9IdHRwUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmFjY2Vzc1Rva2VuID0gdmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXQuZGF0YS5hY2Nlc3NUb2tlbjtcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVmcmVzaFRva2VuID0gdmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXQuZGF0YS5yZWZyZXNoVG9rZW47XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFVwZGF0ZUF1dGhUb2tlbkFjdGlvbih2ZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldC5kYXRhLmFjY2Vzc1Rva2VuLHZlcmlmeTJGYWN0b3JBdXRoUmVzcG9uc2V0LmRhdGEucmVmcmVzaFRva2VuKSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGUgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHBhcnNlQXBpRXJyb3JNZXNzYWdlKGUpLCB0aGlzLm1lc3NhZ2VPcHRpb25zKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKFNldFRGQVNldHVwQWN0aW9uKVxuICBwdWJsaWMgb25TZXRURkFTZXR1cEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IHRmYVNldHVwRHRvIH0pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICB0ZmFTZXR1cDogdGZhU2V0dXBEdG9cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXV0aGVudGljYXRpb25FcnJvck1lc3NhZ2VCYXIoZXJyb3I6IEFwaUV4Y2VwdGlvbikge1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IHBhcnNlQXBpRXJyb3JNZXNzYWdlKGVycm9yKTtcbiAgICBjb25zdCBkYXRhID0gcGFyc2VBcGlFcnJvckRhdGE8QXV0aGVudGljYXRlRXJyb3JSZXNwb25zZUR0bz4oZXJyb3IpO1xuICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IoZXJyb3JNZXNzYWdlLCB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uU3RhdGljLCBtZXNzYWdlUGFyYW1zOiB7IHRlbXBvcmFyeUxvY2tlZE1pbnV0ZXM6IGRhdGE/LnRlbXBvcmFyeUJsb2NrZWRUaW1lIH0gfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyTXNsTG9naW5DYWNoZSgpIHtcbiAgICBjb25zdCBjbGVhckNhY2hlUmVxdWVzdDogQ2xlYXJDYWNoZVJlcXVlc3QgPSB7XG4gICAgICBhY2NvdW50OiB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmdldEFsbEFjY291bnRzKClbMF0sXG4gICAgfTtcbiAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmNsZWFyQ2FjaGUoY2xlYXJDYWNoZVJlcXVlc3QpO1xuICAgIHRoaXMubXNhbFNlcnZpY2UubG9nb3V0KCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyU2luZ2xlU2luZ09uQ2FjaGUoc2luZ2xlU2lnbk9uUHJvdmlkZXI6IFNpbmdsZVNpZ25PblByb3ZpZGVyKSB7XG4gICAgc3dpdGNoIChzaW5nbGVTaWduT25Qcm92aWRlcikge1xuICAgICAgY2FzZSBTaW5nbGVTaWduT25Qcm92aWRlci5NaWNyb3NvZnQ6XG4gICAgICAgIHRoaXMuY2xlYXJNc2xMb2dpbkNhY2hlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNpbmdsZVNpZ25PblByb3ZpZGVyLlBpbmdGZWRlcmF0ZTpcbiAgICAgICAgdGhpcy5vcGVuSWRBdXRoU2VydmljZS5zaWduT3V0KCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXNlclN0YXR1c0lzQXdhaXRpbmdBY2Nlc3MgPSAoYXV0aFJlc3BvbnNlOiBBdXRoZW50aWNhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEpOiBib29sZWFuID0+XG4gICAgYXV0aFJlc3BvbnNlLmRhdGEuc2luZ2xlU2lnbk9uQXV0aGVudGljYXRpb25EdG8/LmlzQXV0aGVudGljYXRlZCA9PT0gZmFsc2UgJiZcbiAgICBhdXRoUmVzcG9uc2UuZGF0YS5zaW5nbGVTaWduT25BdXRoZW50aWNhdGlvbkR0bz8udXNlclN0YXR1cyA9PT0gVXNlclN0YXR1cy5Bd2FpdGluZ0FjY2VzcztcblxuICBAQWN0aW9uKEJhY2tvZmZpY2VBdXRoZXRpY2F0ZUFjdGlvbilcbiAgcHVibGljIG9uQmFja29mZmljZUF1dGhldGljYXRlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgdG9rZW4sIHRlbmFudEluZm8gfTogQmFja29mZmljZUF1dGhldGljYXRlQWN0aW9uKSB7XG4gICAgY29uc3QgYXV0aGVudGljYXRlUmVxdWVzdER0byA9IG5ldyBBdXRoZW50aWNhdGVCYWNrb2ZmaWNlU3NvUmVxdWVzdER0bygpO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8uY29kZSA9IHRva2VuO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8udGVuYW50TmFtZSA9IHRlbmFudEluZm8/LnRlbmFudE5hbWU7XG5cbiAgICBjb25zdCBhdXRoZW50aWNhdGVPaWRjJCA9IHRoaXMuYmFja29mZmljZVVzZXJJZGVudGl0eVNlcnZpY2VQcm94eS5iYWNrb2ZmaWNlQXV0aGVudGljYXRlKGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8pO1xuICAgIHJldHVybiBhdXRoZW50aWNhdGVPaWRjJC5waXBlKHRhcCh7XG4gICAgICBuZXh0OiBhdXRoUmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoYXV0aFJlc3BvbnNlLmRhdGEubWVzc2FnZSA9PT0gTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5zc29fcGVuZGluZ19hcHByb3ZhbCk7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5pbmZvKG1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3BhcmtTZXNzaW9uID0gdGhpcy5hdXRoU2VydmljZS5wcm9jZXNzQXV0aGVudGljYXRlKGF1dGhSZXNwb25zZS5kYXRhKTtcbiAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBTZXRUZW5hbnRVc2VyQWN0aW9uKHNwYXJrU2Vzc2lvbikpO1xuICAgICAgICBpZiAodGhpcy51c2VyU3RhdHVzSXNBd2FpdGluZ0FjY2VzcyhhdXRoUmVzcG9uc2UpKSB7XG4gICAgICAgICAgdGhpcy5jbGVhclNpbmdsZVNpbmdPbkNhY2hlKFNpbmdsZVNpZ25PblByb3ZpZGVyLk1pY3Jvc29mdCk7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5zc29fcGVuZGluZ19hcHByb3ZhbCk7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS53YXJuKG1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgLy8gQWZ0ZXIgYXV0aGVudGljYXRpb24gZ2V0IGFwcCBjb25maWd1cmF0aW9uXG4gICAgICAgICAgdGhpcy5sb2dpblRvQmFja29mZmljZSgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGUgPT4ge1xuICAgICAgICB0aGlzLnNpbmdsZVNpbmdPbkVycm9ySGFuZGxpbmcoZSk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihPcGVuSWRBdXRoZXRpY2F0ZUFjdGlvbilcbiAgcHVibGljIG9uT3BlbklkQXV0aGV0aWNhdGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgYWN0aW9uOiBPcGVuSWRBdXRoZXRpY2F0ZUFjdGlvbikge1xuICAgIGxldCBhdXRoZW50aWNhdGVPaWRjJDogT2JzZXJ2YWJsZTxBdXRoZW50aWNhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGE+O1xuXG4gICAgY29uc3QgYXV0aGVudGljYXRlUmVxdWVzdER0byA9IG5ldyBBdXRoZW50aWNhdGVXZWJTc29SZXF1ZXN0RHRvKCk7XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by5jb2RlID0gYWN0aW9uLnRva2VuO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8udGVuYW50TmFtZSA9IGFjdGlvbi50ZW5hbnRJbmZvPy50ZW5hbnROYW1lO1xuICAgIGNvbnN0IGNvbmZsaWN0RGV0ZWN0ZWQgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS5pc0NvbmZsaWN0RGV0ZWN0ZWQpXG4gICAgaWYgKGNvbmZsaWN0RGV0ZWN0ZWQgPT0gbnVsbCkge1xuICAgIGF1dGhlbnRpY2F0ZU9pZGMkID0gdGhpcy51c2Vyc0lkZW50aXR5U2VydmljZVByb3h5Lm9wZW5JZEF1dGhlbnRpY2F0ZShhdXRoZW50aWNhdGVSZXF1ZXN0RHRvKTtcblxuICAgIHJldHVybiBhdXRoZW50aWNhdGVPaWRjJC5waXBlKHRhcCh7XG4gICAgICBuZXh0OiBhdXRoUmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoYXV0aFJlc3BvbnNlLmRhdGEubWVzc2FnZSA9PT0gTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5zc29fcGVuZGluZ19hcHByb3ZhbCk7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5pbmZvKG1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgICAgICAgYWN0aW9uLmlzUGVuZGluZ0FwcHJvdmFsID0gdHJ1ZTtcbiAgICAgICAgICAvL3RoaXMuY2xlYXJTaW5nbGVTaW5nT25DYWNoZShzaW5nbGVTaWduT25Qcm92aWRlcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3BhcmtTZXNzaW9uID0gdGhpcy5hdXRoU2VydmljZS5wcm9jZXNzQXV0aGVudGljYXRlKGF1dGhSZXNwb25zZS5kYXRhKTtcbiAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBTZXRUZW5hbnRVc2VyQWN0aW9uKHNwYXJrU2Vzc2lvbikpO1xuICAgICAgICBcbiAgICAgICAgICBpZiAodGhpcy51c2VyU3RhdHVzSXNBd2FpdGluZ0FjY2VzcyhhdXRoUmVzcG9uc2UpKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyU2luZ2xlU2luZ09uQ2FjaGUoYWN0aW9uLnNpbmdsZVNpZ25PblByb3ZpZGVyKTtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS53YXJuKG1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgICAgICAgICBhY3Rpb24uaXNQZW5kaW5nQXBwcm92YWwgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIEFmdGVyIGF1dGhlbnRpY2F0aW9uIGdldCBhcHAgY29uZmlndXJhdGlvblxuICAgICAgICAgICAgdGhpcy5sb2dpblRvU3BhcmsoKTtcbiAgICAgICAgICB9XG4gICAgICB9LFxuICAgICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgICAgdGhpcy5zaW5nbGVTaW5nT25FcnJvckhhbmRsaW5nKGUpO1xuICAgICAgICB9XG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgc2luZ2xlU2luZ09uRXJyb3JIYW5kbGluZyhlOiBhbnkpIHtcbiAgICBpZiAoZS5lcnJvck1lc3NhZ2UgPT0gTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKTtcbiAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuaW5mbyhtZXNzYWdlLCB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uU3RhdGljIH0pO1xuICAgIH1cbiAgICBlbHNlIGlmIChlLmVycm9yTWVzc2FnZSkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGUuZXJyb3JNZXNzYWdlKTtcbiAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IobWVzc2FnZSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHBhcnNlQXBpRXJyb3JNZXNzYWdlKGUpLCB0aGlzLm1lc3NhZ2VPcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBsb2dpblRvU3BhcmsoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTG9hZEFwcENvbmZpZ3VyYXRpb25BY3Rpb24oKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgSGVhbHRoQWN0aW9uKCkpO1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUxvZ2dlZFRlbmFudCgpO1xuICAgIHRoaXMubG9naW5TZXJ2aWNlLmxvZ2luVG9TcGFyaygpO1xuICB9XG5cbiAgbG9naW5Ub0JhY2tvZmZpY2UoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTG9hZEJhY2tvZmZpY2VBcHBDb25maWd1cmF0aW9uQWN0aW9uKCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IEhlYWx0aEFjdGlvbigpKTtcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS51cGRhdGVMb2dnZWRUZW5hbnQoKTtcbiAgICB0aGlzLmxvZ2luU2VydmljZS5sb2dpblRvU3BhcmsoKTtcbiAgfVxufVxuIl19
392
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.UsersCloudServiceProxy }, { type: i3.BackofficeUserIdentityServiceProxy }, { type: i4.OpenIdAuthService }, { type: i3.UsersIdentityServiceProxy }, { type: i5.AuthService }, { type: i6.SessionStorageService }, { type: i7.LoginService }, { type: i8.TranslateService }, { type: i9.MsalService }, { type: i10.MessageBarService }, { type: i11.AppConfigService }, { type: i12.RouteService }], propDecorators: { onAuthenticateMultipleTenantsAction: [], onForgotPassword: [], onForgotPasswordTenantless: [], onAccountSetPasswordInitAction: [], onAccountSetPasswordErrorAction: [], onAccountSetPasswordAction: [], onValidateUserTokenAction: [], onVerify2FactorAuthenticationAction: [], onSetTFASetupAction: [], onBackofficeAutheticateAction: [], onOpenIdAutheticateAction: [] } });
393
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvbG9naW4vbG9naW4uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBdUIsTUFBTSxhQUFhLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQWMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFDZ0MsZUFBZSxFQUNILFVBQVUsRUFBRSxxQkFBcUIsRUFDbkYsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsbUNBQW1DLEVBQWdDLHNCQUFzQixFQUNoRCw0QkFBNEIsRUFDckUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQ3hDLDJCQUEyQixFQUM1QixNQUFNLDhDQUE4QyxDQUFDO0FBS3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSXRGLE9BQU8sRUFBRSxZQUFZLEVBQUUsMEJBQTBCLEVBQUUsb0NBQW9DLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNy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QjtBQTdTYTtJQURiLFFBQVEsRUFBRTs2Q0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO2tDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7Z0NBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTtvQ0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO2dDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7bUNBR1Y7QUF6Q1UsVUFBVTtJQVh0QixLQUFLLENBQWtCO1FBQ3RCLElBQUksRUFBRSxPQUFPO1FBQ2IsUUFBUSxFQUFFO1lBQ1IsUUFBUSxFQUFFLFNBQVM7WUFDbkIsVUFBVSxFQUFFLEVBQUU7WUFDZCxrQkFBa0IsRUFBRSxTQUFTO1lBQzdCLFFBQVEsRUFBRSxFQUFFO1lBQ1osV0FBVyxFQUFFLEVBQUU7WUFDZixRQUFRLEVBQUUsU0FBUztTQUNwQjtLQUNGLENBQUM7R0FDVyxVQUFVLENBd1Z0Qjs7NEZBeFZZLFVBQVU7a0JBWnRCLFVBQVU7dWRBd0RGLG1DQUFtQyxNQWlCbkMsZ0JBQWdCLE1BWWhCLDBCQUEwQixNQU8xQiw4QkFBOEIsTUFROUIsK0JBQStCLE1BUy9CLDBCQUEwQixNQXdDMUIseUJBQXlCLE1Bd0N6QixtQ0FBbUMsTUEwQm5DLG1CQUFtQixNQXdDbkIsNkJBQTZCLE1BaUM3Qix5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ2xlYXJDYWNoZVJlcXVlc3QgfSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRlIH0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbic7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgT2JzZXJ2YWJsZSwgdGFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyUG9zaXRpb24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLXBvc2l0aW9uLmVudW0nO1xuaW1wb3J0IHsgTWVzc2FnZUJhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUkVTRVRfUEFTU1dPUkRfRU1BSUwgfSBmcm9tICcuLi8uLi9jb25zdGFudHMva2V5cy1jb25zdGFudHMnO1xuaW1wb3J0IHsgQXBwVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL2FwcC10eXBlLmVudW0nO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uIH0gZnJvbSAnLi4vLi4vZW51bXMvbG9jYWxpemF0aW9uLmVudW0nO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEsIEFjdGl2YXRlVXNlckR0bywgQXBpRXhjZXB0aW9uLCBQcm9ibGVtRGV0YWlscywgVGZhU2V0dXBEdG8sXG4gIFVzZXJEdG9IdHRwUmVzcG9uc2VEYXRhLCBVc2Vyc0Nsb3VkU2VydmljZVByb3h5LCBVc2VyU3RhdHVzLCBVc2VyVXBkYXRlUGFzc3dvcmREdG9cbn0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHtcbiAgQXV0aGVudGljYXRlQmFja29mZmljZVNzb1JlcXVlc3REdG8sIEF1dGhlbnRpY2F0ZUVycm9yUmVzcG9uc2VEdG8sIEF1dGhlbnRpY2F0ZVJlcXVlc3REdG8sIEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvLFxuICBBdXRoZW50aWNhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEsIEF1dGhlbnRpY2F0ZVdlYlNzb1JlcXVlc3REdG8sIEJhY2tvZmZpY2VVc2VySWRlbnRpdHlTZXJ2aWNlUHJveHksXG4gIFBhc3N3b3JkQ2hhbmdlVHlwZSwgU2luZ2xlU2lnbk9uUHJvdmlkZXIsIFVzZXJzSWRlbnRpdHlTZXJ2aWNlUHJveHksIFZhbGlkYXRlQWN0aXZhdGlvblVzZXJEdG9IdHRwUmVzcG9uc2VEYXRhLFxuICBWZXJpZnkyRmFjdG9yQXV0aFJlcXVlc3REdG8sIFZlcmlmeTJGYWN0b3JBdXRoUmVzcG9uc2V0RHRvSHR0cFJlc3BvbnNlRGF0YVxufSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2lkZW50aXR5LXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9wZW5JZEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3BlbmlkLWF1dGguc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yb3V0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IHBhcnNlQXBpRXJyb3JEYXRhLCBwYXJzZUFwaUVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzL2FwaS1oZWxwZXIudXRpbCc7XG5pbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICcuLi8uLi91dGlscy9sYW5nLnV0aWwnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBVc2VySW5mbyB9IGZyb20gJy4uL2F1dGgvbW9kZWwvdXNlci1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQgeyBIZWFsdGhBY3Rpb24sIExvYWRBcHBDb25maWd1cmF0aW9uQWN0aW9uLCBMb2FkQmFja29mZmljZUFwcENvbmZpZ3VyYXRpb25BY3Rpb24sIFNldFRlbmFudFVzZXJBY3Rpb24sIFVwZGF0ZUF1dGhUb2tlbkFjdGlvbiB9IGZyb20gJy4uL2F1dGgvc2Vzc2lvbi5hY3Rpb25zJztcbmltcG9ydCB7IFNlc3Npb25TdGF0ZSB9IGZyb20gJy4uL2F1dGgvc2Vzc2lvbi5zdGF0ZSc7XG5pbXBvcnQge1xuICBBY2NvdW50U2V0UGFzc3dvcmRBY3Rpb24sIEFjY291bnRTZXRQYXNzd29yZEVycm9yQWN0aW9uLCBBY2NvdW50U2V0UGFzc3dvcmRJbml0QWN0aW9uLCBBdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24sXG4gIEJhY2tvZmZpY2VBdXRoZXRpY2F0ZUFjdGlvbiwgRm9yZ290UGFzc3dvcmRBY3Rpb24sIEZvcmdvdFBhc3N3b3JkVGVuYW50bGVzc0FjdGlvbixcbiAgT3BlbklkQXV0aGV0aWNhdGVBY3Rpb24sIFNldFRGQVNldHVwQWN0aW9uLCBWYWxpZGF0ZVVzZXJUb2tlbkFjdGlvbiwgVmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uQWN0aW9uXG59IGZyb20gJy4vbG9naW4uYWN0aW9ucyc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuL2xvZ2luLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luU3RhdGVNb2RlbCB7XG4gIHVzZXJJbmZvOiBVc2VySW5mbztcbiAgdGVuYW50TmFtZTogc3RyaW5nO1xuICBwYXNzd29yZENoYW5nZVR5cGU6IFBhc3N3b3JkQ2hhbmdlVHlwZTtcbiAgYWNjb3VudHM6IEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvW107XG4gIGFjY291bnRzTWFwOiBTdHJpbmdNYXA8QXV0aGVudGljYXRlUmVzcG9uc2VEdG8+O1xuICB0ZmFTZXR1cDogVGZhU2V0dXBEdG87XG59XG5cbkBJbmplY3RhYmxlKClcbkBTdGF0ZTxMb2dpblN0YXRlTW9kZWw+KHtcbiAgbmFtZTogJ2xvZ2luJyxcbiAgZGVmYXVsdHM6IHtcbiAgICB1c2VySW5mbzogdW5kZWZpbmVkLFxuICAgIHRlbmFudE5hbWU6ICcnLFxuICAgIHBhc3N3b3JkQ2hhbmdlVHlwZTogdW5kZWZpbmVkLFxuICAgIGFjY291bnRzOiBbXSxcbiAgICBhY2NvdW50c01hcDoge30sXG4gICAgdGZhU2V0dXA6IHVuZGVmaW5lZCxcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpblN0YXRlIHtcblxuICBwcml2YXRlIG1lc3NhZ2VPcHRpb25zID0geyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgdXNlcnNDbG91ZFNlcnZpY2VQcm94eTogVXNlcnNDbG91ZFNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGJhY2tvZmZpY2VVc2VySWRlbnRpdHlTZXJ2aWNlUHJveHk6IEJhY2tvZmZpY2VVc2VySWRlbnRpdHlTZXJ2aWNlUHJveHksIHByaXZhdGUgb3BlbklkQXV0aFNlcnZpY2U6IE9wZW5JZEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlcnNJZGVudGl0eVNlcnZpY2VQcm94eTogVXNlcnNJZGVudGl0eVNlcnZpY2VQcm94eSwgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSwgcHJpdmF0ZSBsb2dpblNlcnZpY2U6IExvZ2luU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbXNhbFNlcnZpY2U6IE1zYWxTZXJ2aWNlLCBwcml2YXRlIG1lc3NhZ2VCYXJTZXJ2aWNlOiBNZXNzYWdlQmFyU2VydmljZSwgcHJpdmF0ZSBhcHBDb25maWc6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZVNlcnZpY2U6IFJvdXRlU2VydmljZSkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0d29GYWN0b3JTZXR1cEZvclVzZXIoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IFRmYVNldHVwRHRvIHtcbiAgICByZXR1cm4gc3RhdGUudGZhU2V0dXA7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHRlbmFudE5hbWUoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0YXRlLnRlbmFudE5hbWU7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHVzZXJJbmZvKHN0YXRlOiBMb2dpblN0YXRlTW9kZWwpOiBVc2VySW5mbyB7XG4gICAgcmV0dXJuIHN0YXRlLnVzZXJJbmZvO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0ZW1wbGF0ZVR5cGUoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IFBhc3N3b3JkQ2hhbmdlVHlwZSB7XG4gICAgcmV0dXJuIHN0YXRlLnBhc3N3b3JkQ2hhbmdlVHlwZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgYWNjb3VudHMoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5hY2NvdW50cztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgYWNjb3VudHNNYXAoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IFN0cmluZ01hcDxBdXRoZW50aWNhdGVSZXNwb25zZUR0bz4ge1xuICAgIHJldHVybiBzdGF0ZS5hY2NvdW50c01hcDtcbiAgfVxuXG4gIEBBY3Rpb24oQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzQWN0aW9uKVxuICBwdWJsaWMgb25BdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB1c2VybmFtZSwgcGFzc3dvcmQgfTogQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzQWN0aW9uKSB7XG4gICAgY29uc3QgYXV0aGVudGljYXRlUmVxdWVzdER0byA9IG5ldyBBdXRoZW50aWNhdGVSZXF1ZXN0RHRvKCk7XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by51c2VybmFtZSA9IHVzZXJuYW1lO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8ucGFzc3dvcmQgPSBwYXNzd29yZDtcbiAgICBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvLnRlbmFudE5hbWUgPSAnJztcbiAgICByZXR1cm4gdGhpcy51c2Vyc0lkZW50aXR5U2VydmljZVByb3h5Lm11bHRpVGVuYW50c0F1dGhlbnRpY2F0ZShhdXRoZW50aWNhdGVSZXF1ZXN0RHRvKS5waXBlKHRhcCh7XG4gICAgICBuZXh0OiBhY2NvdW50c0h0dHBSZXNwb25zZURhdGEgPT4ge1xuICAgICAgICBjb25zdCBhY2NvdW50cyA9IGFjY291bnRzSHR0cFJlc3BvbnNlRGF0YS5kYXRhO1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgYWNjb3VudHNcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGUgPT4gdGhpcy5hdXRoZW50aWNhdGlvbkVycm9yTWVzc2FnZUJhcihlKVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oRm9yZ290UGFzc3dvcmRBY3Rpb24pXG4gIHB1YmxpYyBvbkZvcmdvdFBhc3N3b3JkKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgZW1haWwsIHRlbmFudElkIH06IEZvcmdvdFBhc3N3b3JkQWN0aW9uKSB7XG4gICAgY29uc3QgaXNNb2JpbGVBcHBNb2RlID0gdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlnKCkuYXBwVHlwZSA9PT0gQXBwVHlwZS5Nb2JpbGU7XG4gICAgY29uc3QgcGF0aCA9IFsnYWNjb3VudCcsICdmb3Jnb3QtcGFzc3dvcmQtc3VjY2VzcyddO1xuICAgIGNvbnN0IHVybCA9IGlzTW9iaWxlQXBwTW9kZSA/IHBhdGggOiB0aGlzLnJvdXRlU2VydmljZS5nZXROYXZpZ2F0aW9uUm91dGUocGF0aCk7XG5cbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKFJFU0VUX1BBU1NXT1JEX0VNQUlMLCBKU09OLnN0cmluZ2lmeShlbWFpbCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IE5hdmlnYXRlKHVybCkpO1xuICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2Uuc3VjY2VzcyhMb2NhbGl6YXRpb24uZm9yZ290X3Bhc3N3b3JkX2VtYWlsX3NlbnRfbXNnLCB0aGlzLm1lc3NhZ2VPcHRpb25zKTtcbiAgICByZXR1cm4gdGhpcy51c2Vyc0Nsb3VkU2VydmljZVByb3h5LmZvcmdvdFBhc3N3b3JkKGVtYWlsLCB0ZW5hbnRJZCk7XG4gIH1cblxuICBAQWN0aW9uKEZvcmdvdFBhc3N3b3JkVGVuYW50bGVzc0FjdGlvbilcbiAgcHVibGljIG9uRm9yZ290UGFzc3dvcmRUZW5hbnRsZXNzKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgZW1haWwgfTogRm9yZ290UGFzc3dvcmRBY3Rpb24pIHtcbiAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLnN1Y2Nlc3MoTG9jYWxpemF0aW9uLmZvcmdvdF9wYXNzd29yZF9lbWFpbF9zZW50X21zZywgdGhpcy5tZXNzYWdlT3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMudXNlcnNDbG91ZFNlcnZpY2VQcm94eS5mb3Jnb3RQYXNzd29yZFRlbmFudGxlc3MoZW1haWwpO1xuICB9XG5cblxuICBAQWN0aW9uKEFjY291bnRTZXRQYXNzd29yZEluaXRBY3Rpb24pXG4gIHB1YmxpYyBvbkFjY291bnRTZXRQYXNzd29yZEluaXRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB1c2VySW5mbywgY29tcG9uZW50VHlwZSB9KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgdXNlckluZm8sXG4gICAgICBwYXNzd29yZENoYW5nZVR5cGU6IGNvbXBvbmVudFR5cGVcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oQWNjb3VudFNldFBhc3N3b3JkRXJyb3JBY3Rpb24pXG4gIHB1YmxpYyBvbkFjY291bnRTZXRQYXNzd29yZEVycm9yQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgZXJyb3JNc2csIHVzZXJuYW1lIH0pIHtcbiAgICBjb25zdCB1c2VySW5mbzogVXNlckluZm8gPSB7IC4uLnVzZXJuYW1lIH07XG4gICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihlcnJvck1zZywgdGhpcy5tZXNzYWdlT3B0aW9ucyk7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgdXNlckluZm9cbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oQWNjb3VudFNldFBhc3N3b3JkQWN0aW9uKVxuICBwdWJsaWMgb25BY2NvdW50U2V0UGFzc3dvcmRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyBwYXNzd29yZCB9OiBBY2NvdW50U2V0UGFzc3dvcmRBY3Rpb24pIHtcbiAgICBjb25zdCB1c2VySW5mbyA9IGN0eC5nZXRTdGF0ZSgpLnVzZXJJbmZvO1xuICAgIGxldCBkYXRhOiBhbnk7XG4gICAgbGV0IHNldFBhc3N3b3JkJDogT2JzZXJ2YWJsZTxVc2VyRHRvSHR0cFJlc3BvbnNlRGF0YSB8IEFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhPjtcblxuICAgIGlmICh0aGlzLmFwcENvbmZpZy5nZXRDb25maWcoKS5hcHBUeXBlID09PSBBcHBUeXBlLkNsb3VkKSB7XG4gICAgICBkYXRhID0gbmV3IEFjdGl2YXRlVXNlckR0byh7XG4gICAgICAgIHBhc3N3b3JkLFxuICAgICAgICBjdXJyZW50UGFzc3dvcmQ6IG51bGwsXG4gICAgICAgIHVzZXJTdGF0dXM6IHVzZXJJbmZvLnN0YXR1cyBhcyBVc2VyU3RhdHVzXG4gICAgICB9KTtcblxuICAgICAgc2V0UGFzc3dvcmQkID0gdGhpcy51c2Vyc0Nsb3VkU2VydmljZVByb3h5LmFjdGl2YXRlKGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhID0gbmV3IFVzZXJVcGRhdGVQYXNzd29yZER0byh7XG4gICAgICAgIHBhc3N3b3JkLFxuICAgICAgICBjdXJyZW50UGFzc3dvcmQ6IG51bGxcbiAgICAgIH0pO1xuICAgICAgc2V0UGFzc3dvcmQkID0gdGhpcy51c2Vyc0Nsb3VkU2VydmljZVByb3h5LnVwZGF0ZVVzZXJQYXNzd29yZChkYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2V0UGFzc3dvcmQkLnBpcGUoXG4gICAgICBtYXAoKGFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhOiBBY3RpdmF0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAoYWN0aXZhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEuZGF0YS5pc1N1Y2Nlc3MpIHtcbiAgICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgICB0ZmFTZXR1cDogYWN0aXZhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEuZGF0YT8udGZhU2V0dXAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLmRhdGEuZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGUgPT4ge1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBlO1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKGVycm9yTWVzc2FnZSwgdGhpcy5tZXNzYWdlT3B0aW9ucyk7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yTWVzc2FnZSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKFZhbGlkYXRlVXNlclRva2VuQWN0aW9uKVxuICBwdWJsaWMgb25WYWxpZGF0ZVVzZXJUb2tlbkFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IHRva2VuLCB0b2tlblR5cGUgfTogVmFsaWRhdGVVc2VyVG9rZW5BY3Rpb24pIHtcbiAgICBjb25zdCBwY3Q6IGFueSA9IFBhc3N3b3JkQ2hhbmdlVHlwZVt0b2tlblR5cGVdO1xuICAgIHJldHVybiB0aGlzLnVzZXJzSWRlbnRpdHlTZXJ2aWNlUHJveHkudmFsaWRhdGVBY3RpdmF0aW9uKHRva2VuLCBQYXNzd29yZENoYW5nZVR5cGVbUGFzc3dvcmRDaGFuZ2VUeXBlW3Rva2VuVHlwZV1dKS5waXBlKHRhcCh7XG4gICAgICBuZXh0OiAodXNlcjogVmFsaWRhdGVBY3RpdmF0aW9uVXNlckR0b0h0dHBSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHVzZXI/LmRhdGEpIHtcbiAgICAgICAgICBjb25zdCB1c2VySW5mbzogVXNlckluZm8gPSB7XG4gICAgICAgICAgICB1c2VySWQ6IHVzZXIuZGF0YS5pZCxcbiAgICAgICAgICAgIHVzZXJuYW1lOiB1c2VyLmRhdGEudU5hbWUsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogYCR7dXNlci5kYXRhLm5hbWV9ICR7dXNlci5kYXRhLmxhc3ROYW1lfWAsXG4gICAgICAgICAgICBzdGF0dXM6IHVzZXIuZGF0YS5zdGF0dXMsXG4gICAgICAgICAgICBwbWw6IHVzZXIuZGF0YS5wbWxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmICh1c2VyLmRhdGEuc3RhdHVzICE9PSBVc2VyU3RhdHVzLkJsb2NrZWQpIHtcbiAgICAgICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICAgICAgdXNlckluZm8sXG4gICAgICAgICAgICAgIHBhc3N3b3JkQ2hhbmdlVHlwZTogcGN0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IoTG9jYWxpemF0aW9uLm5vbl9hY3RpdmVfdXNlciwgdGhpcy5tZXNzYWdlT3B0aW9ucyk7XG4gICAgICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgICAgIHVzZXJJbmZvLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGUgPT4ge1xuICAgICAgICBjb25zdCBlcnJvckpzb246IFByb2JsZW1EZXRhaWxzID0gSlNPTi5wYXJzZShlLnJlc3BvbnNlKSBhcyBQcm9ibGVtRGV0YWlscztcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihwYXJzZUFwaUVycm9yTWVzc2FnZShlKSwgdGhpcy5tZXNzYWdlT3B0aW9ucyk7XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICB1c2VySW5mbzoge1xuICAgICAgICAgICAgdXNlcm5hbWU6IGVycm9ySnNvbi5pbnN0YW5jZSxcbiAgICAgICAgICAgIHVzZXJJZDogbnVsbCxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBudWxsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihWZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb25BY3Rpb24pXG4gIHB1YmxpYyBvblZlcmlmeTJGYWN0b3JBdXRoZW50aWNhdGlvbkFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IHVzZXJOYW1lLCBjb2RlLCBzZXR1cDJGYSB9OiBWZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb25BY3Rpb24pIHtcbiAgICBjb25zdCB2ZXJpZnkyRmFjdG9yQXV0aFJlcXVlc3REdG8gPSBuZXcgVmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvKHtcbiAgICAgIGNvZGUsXG4gICAgICB1c2VyTmFtZVxuICAgIH0pO1xuXG4gICAgbGV0IHZlcmlmeTJGYWN0b3JBdXRoJDogT2JzZXJ2YWJsZTxWZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldER0b0h0dHBSZXNwb25zZURhdGE+O1xuICAgIGlmIChzZXR1cDJGYSkge1xuICAgICAgdmVyaWZ5MkZhY3RvckF1dGgkID0gdGhpcy51c2Vyc0lkZW50aXR5U2VydmljZVByb3h5LnZlcmlmeTJGYWN0b3JBdXRoZW50aWNhdGlvbih2ZXJpZnkyRmFjdG9yQXV0aFJlcXVlc3REdG8pO1xuICAgIH0gZWxzZSB7IC8vIGxvZ2luIGZvciB1c2VyIHdpdGggMkZBIChhbHJlYWR5IHNldCB1cClcbiAgICAgIHZlcmlmeTJGYWN0b3JBdXRoJCA9IHRoaXMudXNlcnNJZGVudGl0eVNlcnZpY2VQcm94eS52ZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb25Mb2dpbih2ZXJpZnkyRmFjdG9yQXV0aFJlcXVlc3REdG8pO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZnkyRmFjdG9yQXV0aCQucGlwZSh0YXAoe1xuICAgICAgbmV4dDogKHZlcmlmeTJGYWN0b3JBdXRoUmVzcG9uc2V0OiBWZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldER0b0h0dHBSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuYWNjZXNzVG9rZW4gPSB2ZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldC5kYXRhLmFjY2Vzc1Rva2VuO1xuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZWZyZXNoVG9rZW4gPSB2ZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldC5kYXRhLnJlZnJlc2hUb2tlbjtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlQXV0aFRva2VuQWN0aW9uKHZlcmlmeTJGYWN0b3JBdXRoUmVzcG9uc2V0LmRhdGEuYWNjZXNzVG9rZW4sdmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXQuZGF0YS5yZWZyZXNoVG9rZW4pKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IocGFyc2VBcGlFcnJvck1lc3NhZ2UoZSksIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0VEZBU2V0dXBBY3Rpb24pXG4gIHB1YmxpYyBvblNldFRGQVNldHVwQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgdGZhU2V0dXBEdG8gfSkge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHRmYVNldHVwOiB0ZmFTZXR1cER0b1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvbkVycm9yTWVzc2FnZUJhcihlcnJvcjogQXBpRXhjZXB0aW9uKSB7XG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID0gcGFyc2VBcGlFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICAgIGNvbnN0IGRhdGEgPSBwYXJzZUFwaUVycm9yRGF0YTxBdXRoZW50aWNhdGVFcnJvclJlc3BvbnNlRHRvPihlcnJvcik7XG4gICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihlcnJvck1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMsIG1lc3NhZ2VQYXJhbXM6IHsgdGVtcG9yYXJ5TG9ja2VkTWludXRlczogZGF0YT8udGVtcG9yYXJ5QmxvY2tlZFRpbWUgfSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJNc2xMb2dpbkNhY2hlKCkge1xuICAgIGNvbnN0IGNsZWFyQ2FjaGVSZXF1ZXN0OiBDbGVhckNhY2hlUmVxdWVzdCA9IHtcbiAgICAgIGFjY291bnQ6IHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZ2V0QWxsQWNjb3VudHMoKVswXSxcbiAgICB9O1xuICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuY2xlYXJDYWNoZShjbGVhckNhY2hlUmVxdWVzdCk7XG4gICAgdGhpcy5tc2FsU2VydmljZS5sb2dvdXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJTaW5nbGVTaW5nT25DYWNoZShzaW5nbGVTaWduT25Qcm92aWRlcjogU2luZ2xlU2lnbk9uUHJvdmlkZXIpIHtcbiAgICBzd2l0Y2ggKHNpbmdsZVNpZ25PblByb3ZpZGVyKSB7XG4gICAgICBjYXNlIFNpbmdsZVNpZ25PblByb3ZpZGVyLk1pY3Jvc29mdDpcbiAgICAgICAgdGhpcy5jbGVhck1zbExvZ2luQ2FjaGUoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2luZ2xlU2lnbk9uUHJvdmlkZXIuUGluZ0ZlZGVyYXRlOlxuICAgICAgICB0aGlzLm9wZW5JZEF1dGhTZXJ2aWNlLnNpZ25PdXQoKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSB1c2VyU3RhdHVzSXNBd2FpdGluZ0FjY2VzcyA9IChhdXRoUmVzcG9uc2U6IEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YSk6IGJvb2xlYW4gPT5cbiAgICBhdXRoUmVzcG9uc2UuZGF0YS5zaW5nbGVTaWduT25BdXRoZW50aWNhdGlvbkR0bz8uaXNBdXRoZW50aWNhdGVkID09PSBmYWxzZSAmJlxuICAgIGF1dGhSZXNwb25zZS5kYXRhLnNpbmdsZVNpZ25PbkF1dGhlbnRpY2F0aW9uRHRvPy51c2VyU3RhdHVzID09PSBVc2VyU3RhdHVzLkF3YWl0aW5nQWNjZXNzO1xuXG4gIEBBY3Rpb24oQmFja29mZmljZUF1dGhldGljYXRlQWN0aW9uKVxuICBwdWJsaWMgb25CYWNrb2ZmaWNlQXV0aGV0aWNhdGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB0b2tlbiwgdGVuYW50SW5mbyB9OiBCYWNrb2ZmaWNlQXV0aGV0aWNhdGVBY3Rpb24pIHtcbiAgICBjb25zdCBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvID0gbmV3IEF1dGhlbnRpY2F0ZUJhY2tvZmZpY2VTc29SZXF1ZXN0RHRvKCk7XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by5jb2RlID0gdG9rZW47XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by50ZW5hbnROYW1lID0gdGVuYW50SW5mbz8udGVuYW50TmFtZTtcblxuICAgIGNvbnN0IGF1dGhlbnRpY2F0ZU9pZGMkID0gdGhpcy5iYWNrb2ZmaWNlVXNlcklkZW50aXR5U2VydmljZVByb3h5LmJhY2tvZmZpY2VBdXRoZW50aWNhdGUoYXV0aGVudGljYXRlUmVxdWVzdER0byk7XG4gICAgcmV0dXJuIGF1dGhlbnRpY2F0ZU9pZGMkLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IGF1dGhSZXNwb25zZSA9PiB7XG4gICAgICAgIGlmIChhdXRoUmVzcG9uc2UuZGF0YS5tZXNzYWdlID09PSBMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpIHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKTtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmluZm8obWVzc2FnZSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzcGFya1Nlc3Npb24gPSB0aGlzLmF1dGhTZXJ2aWNlLnByb2Nlc3NBdXRoZW50aWNhdGUoYXV0aFJlc3BvbnNlLmRhdGEpO1xuICAgICAgICBjdHguZGlzcGF0Y2gobmV3IFNldFRlbmFudFVzZXJBY3Rpb24oc3BhcmtTZXNzaW9uKSk7XG4gICAgICAgIGlmICh0aGlzLnVzZXJTdGF0dXNJc0F3YWl0aW5nQWNjZXNzKGF1dGhSZXNwb25zZSkpIHtcbiAgICAgICAgICB0aGlzLmNsZWFyU2luZ2xlU2luZ09uQ2FjaGUoU2luZ2xlU2lnbk9uUHJvdmlkZXIuTWljcm9zb2Z0KTtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKTtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLndhcm4obWVzc2FnZSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAvLyBBZnRlciBhdXRoZW50aWNhdGlvbiBnZXQgYXBwIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgICB0aGlzLmxvZ2luVG9CYWNrb2ZmaWNlKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgIHRoaXMuc2luZ2xlU2luZ09uRXJyb3JIYW5kbGluZyhlKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKE9wZW5JZEF1dGhldGljYXRlQWN0aW9uKVxuICBwdWJsaWMgb25PcGVuSWRBdXRoZXRpY2F0ZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCBhY3Rpb246IE9wZW5JZEF1dGhldGljYXRlQWN0aW9uKSB7XG4gICAgbGV0IGF1dGhlbnRpY2F0ZU9pZGMkOiBPYnNlcnZhYmxlPEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YT47XG5cbiAgICBjb25zdCBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvID0gbmV3IEF1dGhlbnRpY2F0ZVdlYlNzb1JlcXVlc3REdG8oKTtcbiAgICBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvLmNvZGUgPSBhY3Rpb24udG9rZW47XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by50ZW5hbnROYW1lID0gYWN0aW9uLnRlbmFudEluZm8/LnRlbmFudE5hbWU7XG4gICAgY29uc3QgY29uZmxpY3REZXRlY3RlZCA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2Vzc2lvblN0YXRlLmlzQ29uZmxpY3REZXRlY3RlZClcbiAgICBpZiAoY29uZmxpY3REZXRlY3RlZCA9PSBudWxsKSB7XG4gICAgYXV0aGVudGljYXRlT2lkYyQgPSB0aGlzLnVzZXJzSWRlbnRpdHlTZXJ2aWNlUHJveHkub3BlbklkQXV0aGVudGljYXRlKGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8pO1xuXG4gICAgcmV0dXJuIGF1dGhlbnRpY2F0ZU9pZGMkLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IGF1dGhSZXNwb25zZSA9PiB7XG4gICAgICAgIGlmIChhdXRoUmVzcG9uc2UuZGF0YS5tZXNzYWdlID09PSBMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpIHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKTtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmluZm8obWVzc2FnZSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICAgICAgICBhY3Rpb24uaXNQZW5kaW5nQXBwcm92YWwgPSB0cnVlO1xuICAgICAgICAgIC8vdGhpcy5jbGVhclNpbmdsZVNpbmdPbkNhY2hlKHNpbmdsZVNpZ25PblByb3ZpZGVyKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzcGFya1Nlc3Npb24gPSB0aGlzLmF1dGhTZXJ2aWNlLnByb2Nlc3NBdXRoZW50aWNhdGUoYXV0aFJlc3BvbnNlLmRhdGEpO1xuICAgICAgICBjdHguZGlzcGF0Y2gobmV3IFNldFRlbmFudFVzZXJBY3Rpb24oc3BhcmtTZXNzaW9uKSk7XG4gICAgICAgIFxuICAgICAgICAgIGlmICh0aGlzLnVzZXJTdGF0dXNJc0F3YWl0aW5nQWNjZXNzKGF1dGhSZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTaW5nbGVTaW5nT25DYWNoZShhY3Rpb24uc2luZ2xlU2lnbk9uUHJvdmlkZXIpO1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5zc29fcGVuZGluZ19hcHByb3ZhbCk7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLndhcm4obWVzc2FnZSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICAgICAgICAgIGFjdGlvbi5pc1BlbmRpbmdBcHByb3ZhbCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gQWZ0ZXIgYXV0aGVudGljYXRpb24gZ2V0IGFwcCBjb25maWd1cmF0aW9uXG4gICAgICAgICAgICB0aGlzLmxvZ2luVG9TcGFyaygpO1xuICAgICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlID0+IHtcbiAgICAgICAgICB0aGlzLnNpbmdsZVNpbmdPbkVycm9ySGFuZGxpbmcoZSk7XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICBzaW5nbGVTaW5nT25FcnJvckhhbmRsaW5nKGU6IGFueSkge1xuICAgIGlmIChlLmVycm9yTWVzc2FnZSA9PSBMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpO1xuICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5pbmZvKG1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGUuZXJyb3JNZXNzYWdlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZS5lcnJvck1lc3NhZ2UpO1xuICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihtZXNzYWdlLCB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uU3RhdGljIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IocGFyc2VBcGlFcnJvck1lc3NhZ2UoZSksIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGxvZ2luVG9TcGFyaygpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBMb2FkQXBwQ29uZmlndXJhdGlvbkFjdGlvbigpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBIZWFsdGhBY3Rpb24oKSk7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudXBkYXRlTG9nZ2VkVGVuYW50KCk7XG4gICAgdGhpcy5sb2dpblNlcnZpY2UubG9naW5Ub1NwYXJrKCk7XG4gIH1cblxuICBsb2dpblRvQmFja29mZmljZSgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBMb2FkQmFja29mZmljZUFwcENvbmZpZ3VyYXRpb25BY3Rpb24oKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgSGVhbHRoQWN0aW9uKCkpO1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUxvZ2dlZFRlbmFudCgpO1xuICAgIHRoaXMubG9naW5TZXJ2aWNlLmxvZ2luVG9TcGFyaygpO1xuICB9XG59XG4iXX0=
@@ -5,11 +5,4 @@ export class ChangePasswordAction {
5
5
  this.newPassword = newPassword;
6
6
  }
7
7
  }
8
- export class ChangePasswordMobileAction {
9
- static { this.type = '[security] ChangePasswordMobile'; }
10
- constructor(currentPassword, newPassword) {
11
- this.currentPassword = currentPassword;
12
- this.newPassword = newPassword;
13
- }
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHkuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvbW9kdWxlcy9zZWN1cml0eS9zZWN1cml0eS5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxvQkFBb0I7YUFDUixTQUFJLEdBQUcsMkJBQTJCLENBQUM7SUFFMUQsWUFBbUIsZUFBdUIsRUFBUyxXQUFtQjtRQUFuRCxvQkFBZSxHQUFmLGVBQWUsQ0FBUTtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFRO0lBQ3RFLENBQUM7O0FBR0gsTUFBTSxPQUFPLDBCQUEwQjthQUNkLFNBQUksR0FBRyxpQ0FBaUMsQ0FBQztJQUVoRSxZQUFtQixlQUF1QixFQUFTLFdBQW1CO1FBQW5ELG9CQUFlLEdBQWYsZUFBZSxDQUFRO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQVE7SUFDdEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDaGFuZ2VQYXNzd29yZEFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc2VjdXJpdHldIENoYW5nZVBhc3N3b3JkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY3VycmVudFBhc3N3b3JkOiBzdHJpbmcsIHB1YmxpYyBuZXdQYXNzd29yZDogc3RyaW5nKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENoYW5nZVBhc3N3b3JkTW9iaWxlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzZWN1cml0eV0gQ2hhbmdlUGFzc3dvcmRNb2JpbGUnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjdXJyZW50UGFzc3dvcmQ6IHN0cmluZywgcHVibGljIG5ld1Bhc3N3b3JkOiBzdHJpbmcpIHtcbiAgfVxufVxuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHkuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvbW9kdWxlcy9zZWN1cml0eS9zZWN1cml0eS5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxvQkFBb0I7YUFDUixTQUFJLEdBQUcsMkJBQTJCLENBQUM7SUFFMUQsWUFBbUIsZUFBdUIsRUFBUyxXQUFtQjtRQUFuRCxvQkFBZSxHQUFmLGVBQWUsQ0FBUTtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFRO0lBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ2hhbmdlUGFzc3dvcmRBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NlY3VyaXR5XSBDaGFuZ2VQYXNzd29yZCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGN1cnJlbnRQYXNzd29yZDogc3RyaW5nLCBwdWJsaWMgbmV3UGFzc3dvcmQ6IHN0cmluZykge1xuICB9XG59XG4iXX0=
@@ -2,19 +2,17 @@ import { __decorate } from "tslib";
2
2
  import { Injectable } from '@angular/core';
3
3
  import { Action, State } from '@ngxs/store';
4
4
  import { tap } from 'rxjs/operators';
5
- import { VERSION_V2 } from '../../constants/version-constants';
6
5
  import { Localization } from '../../enums/localization.enum';
7
6
  import { parseApiErrorMessage } from '../../utils/api-helper.util';
8
7
  import { UserUpdatePasswordDto } from './../../service-proxy/cloud-service-proxies';
9
- import { ChangePasswordAction, ChangePasswordMobileAction } from './security.actions';
8
+ import { ChangePasswordAction } from './security.actions';
10
9
  import * as i0 from "@angular/core";
11
10
  import * as i1 from "./../../service-proxy/cloud-service-proxies";
12
11
  import * as i2 from "../../components/message-bar/message-bar.service";
13
12
  let SecurityState = class SecurityState {
14
- constructor(usersCloudServiceProxy, messageBarService, mobileCloudServiceProxy) {
13
+ constructor(usersCloudServiceProxy, messageBarService) {
15
14
  this.usersCloudServiceProxy = usersCloudServiceProxy;
16
15
  this.messageBarService = messageBarService;
17
- this.mobileCloudServiceProxy = mobileCloudServiceProxy;
18
16
  }
19
17
  onChangePasswordAction(ctx, { currentPassword, newPassword }) {
20
18
  const data = new UserUpdatePasswordDto({ currentPassword, password: newPassword });
@@ -27,23 +25,12 @@ let SecurityState = class SecurityState {
27
25
  }
28
26
  }));
29
27
  }
30
- onChangePasswordMobileAction(ctx, { currentPassword, newPassword }) {
31
- const data = new UserUpdatePasswordDto({ currentPassword, password: newPassword });
32
- return this.mobileCloudServiceProxy.mobileUpdatePasswordV2(VERSION_V2, data).pipe(tap({
33
- error: e => {
34
- this.messageBarService.error(parseApiErrorMessage(e));
35
- }
36
- }));
37
- }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SecurityState, deps: [{ token: i1.UsersCloudServiceProxy }, { token: i2.MessageBarService }, { token: i1.MobileCloudServiceProxy }], target: i0.ɵɵFactoryTarget.Injectable }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SecurityState, deps: [{ token: i1.UsersCloudServiceProxy }, { token: i2.MessageBarService }], target: i0.ɵɵFactoryTarget.Injectable }); }
39
29
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SecurityState }); }
40
30
  };
41
31
  __decorate([
42
32
  Action(ChangePasswordAction)
43
33
  ], SecurityState.prototype, "onChangePasswordAction", null);
44
- __decorate([
45
- Action(ChangePasswordMobileAction)
46
- ], SecurityState.prototype, "onChangePasswordMobileAction", null);
47
34
  SecurityState = __decorate([
48
35
  State({
49
36
  name: 'security',
@@ -52,5 +39,5 @@ SecurityState = __decorate([
52
39
  export { SecurityState };
53
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SecurityState, decorators: [{
54
41
  type: Injectable
55
- }], ctorParameters: () => [{ type: i1.UsersCloudServiceProxy }, { type: i2.MessageBarService }, { type: i1.MobileCloudServiceProxy }], propDecorators: { onChangePasswordAction: [], onChangePasswordMobileAction: [] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHkuc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvc2VjdXJpdHkvc2VjdXJpdHkuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWdCLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBbUQscUJBQXFCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNySSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQVMvRSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFhO0lBRXhCLFlBQW9CLHNCQUE4QyxFQUN4RCxpQkFBb0MsRUFDcEMsdUJBQWdEO1FBRnRDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDeEQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO0lBQzFELENBQUM7SUFHTSxzQkFBc0IsQ0FBQyxHQUFxQyxFQUFFLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRTtRQUNuRyxNQUFNLElBQUksR0FBRyxJQUFJLHFCQUFxQixDQUFDLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDOUQsR0FBRyxDQUFDO1lBQ0YsSUFBSSxFQUFFLEdBQUcsRUFBRTtnQkFDVCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQzNFLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hELENBQUM7U0FDRixDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFHTSw0QkFBNEIsQ0FBQyxHQUFxQyxFQUFFLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRTtRQUN6RyxNQUFNLElBQUksR0FBRyxJQUFJLHFCQUFxQixDQUFDLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQy9FLEdBQUcsQ0FBQztZQUNGLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRTtnQkFDVCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsQ0FBQztTQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQzsrR0E5QlUsYUFBYTttSEFBYixhQUFhOztBQVFqQjtJQUROLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQzsyREFZNUI7QUFHTTtJQUROLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQztpRUFTbEM7QUE5QlUsYUFBYTtJQUh6QixLQUFLLENBQXFCO1FBQ3pCLElBQUksRUFBRSxVQUFVO0tBQ2pCLENBQUM7R0FDVyxhQUFhLENBK0J6Qjs7NEZBL0JZLGFBQWE7a0JBSnpCLFVBQVU7aUtBWUYsc0JBQXNCLE1BY3RCLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbiwgU3RhdGUsIFN0YXRlQ29udGV4dCB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IFZFUlNJT05fVjEsIFZFUlNJT05fVjIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdmVyc2lvbi1jb25zdGFudHMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uIH0gZnJvbSAnLi4vLi4vZW51bXMvbG9jYWxpemF0aW9uLmVudW0nO1xuaW1wb3J0IHsgcGFyc2VBcGlFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlscy9hcGktaGVscGVyLnV0aWwnO1xuaW1wb3J0IHsgTW9iaWxlQ2xvdWRTZXJ2aWNlUHJveHksIFVzZXJzQ2xvdWRTZXJ2aWNlUHJveHksIFVzZXJVcGRhdGVQYXNzd29yZER0byB9IGZyb20gJy4vLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgQ2hhbmdlUGFzc3dvcmRBY3Rpb24sIENoYW5nZVBhc3N3b3JkTW9iaWxlQWN0aW9uIH0gZnJvbSAnLi9zZWN1cml0eS5hY3Rpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eVN0YXRlTW9kZWwge1xufVxuXG5ASW5qZWN0YWJsZSgpXG5AU3RhdGU8U2VjdXJpdHlTdGF0ZU1vZGVsPih7XG4gIG5hbWU6ICdzZWN1cml0eScsXG59KVxuZXhwb3J0IGNsYXNzIFNlY3VyaXR5U3RhdGUge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlcnNDbG91ZFNlcnZpY2VQcm94eTogVXNlcnNDbG91ZFNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIG1lc3NhZ2VCYXJTZXJ2aWNlOiBNZXNzYWdlQmFyU2VydmljZSxcbiAgICBwcml2YXRlIG1vYmlsZUNsb3VkU2VydmljZVByb3h5OiBNb2JpbGVDbG91ZFNlcnZpY2VQcm94eSkge1xuICB9XG5cbiAgQEFjdGlvbihDaGFuZ2VQYXNzd29yZEFjdGlvbilcbiAgcHVibGljIG9uQ2hhbmdlUGFzc3dvcmRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2VjdXJpdHlTdGF0ZU1vZGVsPiwgeyBjdXJyZW50UGFzc3dvcmQsIG5ld1Bhc3N3b3JkIH0pIHtcbiAgICBjb25zdCBkYXRhID0gbmV3IFVzZXJVcGRhdGVQYXNzd29yZER0byh7IGN1cnJlbnRQYXNzd29yZCwgcGFzc3dvcmQ6IG5ld1Bhc3N3b3JkIH0pO1xuICAgIHJldHVybiB0aGlzLnVzZXJzQ2xvdWRTZXJ2aWNlUHJveHkudXBkYXRlVXNlclBhc3N3b3JkKGRhdGEpLnBpcGUoXG4gICAgICB0YXAoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5zdWNjZXNzKExvY2FsaXphdGlvbi5jaGFuZ2VfcGFzc3dvcmRfc3VjY2Vzc19tc2cpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihwYXJzZUFwaUVycm9yTWVzc2FnZShlKSk7XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oQ2hhbmdlUGFzc3dvcmRNb2JpbGVBY3Rpb24pXG4gIHB1YmxpYyBvbkNoYW5nZVBhc3N3b3JkTW9iaWxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlY3VyaXR5U3RhdGVNb2RlbD4sIHsgY3VycmVudFBhc3N3b3JkLCBuZXdQYXNzd29yZCB9KSB7XG4gICAgY29uc3QgZGF0YSA9IG5ldyBVc2VyVXBkYXRlUGFzc3dvcmREdG8oeyBjdXJyZW50UGFzc3dvcmQsIHBhc3N3b3JkOiBuZXdQYXNzd29yZCB9KTtcbiAgICByZXR1cm4gdGhpcy5tb2JpbGVDbG91ZFNlcnZpY2VQcm94eS5tb2JpbGVVcGRhdGVQYXNzd29yZFYyKFZFUlNJT05fVjIsIGRhdGEpLnBpcGUoXG4gICAgICB0YXAoe1xuICAgICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihwYXJzZUFwaUVycm9yTWVzc2FnZShlKSk7XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgfVxufVxuIl19
42
+ }], ctorParameters: () => [{ type: i1.UsersCloudServiceProxy }, { type: i2.MessageBarService }], propDecorators: { onChangePasswordAction: [] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHkuc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvc2VjdXJpdHkvc2VjdXJpdHkuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWdCLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUEwQixxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzVHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBU25ELElBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWE7SUFFeEIsWUFBb0Isc0JBQThDLEVBQVUsaUJBQW9DO1FBQTVGLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQ2hILENBQUM7SUFHTSxzQkFBc0IsQ0FBQyxHQUFxQyxFQUFFLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRTtRQUNuRyxNQUFNLElBQUksR0FBRyxJQUFJLHFCQUFxQixDQUFDLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDOUQsR0FBRyxDQUFDO1lBQ0YsSUFBSSxFQUFFLEdBQUcsRUFBRTtnQkFDVCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQzNFLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hELENBQUM7U0FDRixDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7K0dBakJVLGFBQWE7bUhBQWIsYUFBYTs7QUFNakI7SUFETixNQUFNLENBQUMsb0JBQW9CLENBQUM7MkRBWTVCO0FBakJVLGFBQWE7SUFIekIsS0FBSyxDQUFxQjtRQUN6QixJQUFJLEVBQUUsVUFBVTtLQUNqQixDQUFDO0dBQ1csYUFBYSxDQWtCekI7OzRGQWxCWSxhQUFhO2tCQUp6QixVQUFVOzJIQVVGLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbiwgU3RhdGUsIFN0YXRlQ29udGV4dCB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsaXphdGlvbiB9IGZyb20gJy4uLy4uL2VudW1zL2xvY2FsaXphdGlvbi5lbnVtJztcbmltcG9ydCB7IHBhcnNlQXBpRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpLWhlbHBlci51dGlsJztcbmltcG9ydCB7IFVzZXJzQ2xvdWRTZXJ2aWNlUHJveHksIFVzZXJVcGRhdGVQYXNzd29yZER0byB9IGZyb20gJy4vLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgQ2hhbmdlUGFzc3dvcmRBY3Rpb24gfSBmcm9tICcuL3NlY3VyaXR5LmFjdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5U3RhdGVNb2RlbCB7XG59XG5cbkBJbmplY3RhYmxlKClcbkBTdGF0ZTxTZWN1cml0eVN0YXRlTW9kZWw+KHtcbiAgbmFtZTogJ3NlY3VyaXR5Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2VjdXJpdHlTdGF0ZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1c2Vyc0Nsb3VkU2VydmljZVByb3h5OiBVc2Vyc0Nsb3VkU2VydmljZVByb3h5LCBwcml2YXRlIG1lc3NhZ2VCYXJTZXJ2aWNlOiBNZXNzYWdlQmFyU2VydmljZSkge1xuICB9XG5cbiAgQEFjdGlvbihDaGFuZ2VQYXNzd29yZEFjdGlvbilcbiAgcHVibGljIG9uQ2hhbmdlUGFzc3dvcmRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2VjdXJpdHlTdGF0ZU1vZGVsPiwgeyBjdXJyZW50UGFzc3dvcmQsIG5ld1Bhc3N3b3JkIH0pIHtcbiAgICBjb25zdCBkYXRhID0gbmV3IFVzZXJVcGRhdGVQYXNzd29yZER0byh7IGN1cnJlbnRQYXNzd29yZCwgcGFzc3dvcmQ6IG5ld1Bhc3N3b3JkIH0pO1xuICAgIHJldHVybiB0aGlzLnVzZXJzQ2xvdWRTZXJ2aWNlUHJveHkudXBkYXRlVXNlclBhc3N3b3JkKGRhdGEpLnBpcGUoXG4gICAgICB0YXAoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5zdWNjZXNzKExvY2FsaXphdGlvbi5jaGFuZ2VfcGFzc3dvcmRfc3VjY2Vzc19tc2cpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihwYXJzZUFwaUVycm9yTWVzc2FnZShlKSk7XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgfVxufVxuIl19
@@ -21,17 +21,6 @@ LoadSmartparksBasicAction = __decorate([
21
21
  TrackAction()
22
22
  ], LoadSmartparksBasicAction);
23
23
  export { LoadSmartparksBasicAction };
24
- let LoadMobileSmartparksBasicAction = class LoadMobileSmartparksBasicAction {
25
- static { this.type = '[smart-park] LoadMobileSmartparksBasicAction'; }
26
- constructor(appModule, subModule = null) {
27
- this.appModule = appModule;
28
- this.subModule = subModule;
29
- }
30
- };
31
- LoadMobileSmartparksBasicAction = __decorate([
32
- TrackAction()
33
- ], LoadMobileSmartparksBasicAction);
34
- export { LoadMobileSmartparksBasicAction };
35
24
  export class ClearSmartparksBasicAction {
36
25
  static { this.type = '[smart-park] ClearSmartparksBasicAction'; }
37
26
  constructor() {
@@ -200,4 +189,4 @@ export class UpdateSmartparkVarAction {
200
189
  this.varDto = varDto;
201
190
  }
202
191
  }
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwYXJrLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvc21hcnRwYXJrcy9zbWFydHBhcmsuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBSUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRy9ELElBQU0sb0JBQW9CLEdBQTFCLE1BQU0sb0JBQW9CO2FBQ1IsU0FBSSxHQUFHLG1CQUFtQixBQUF0QixDQUF1QjtJQUVsRCxZQUFtQixNQUFnQjtRQUFoQixXQUFNLEdBQU4sTUFBTSxDQUFVO0lBQ25DLENBQUM7O0FBSlUsb0JBQW9CO0lBRGhDLFdBQVcsRUFBRTtHQUNELG9CQUFvQixDQUtoQzs7QUFHTSxJQUFNLHlCQUF5QixHQUEvQixNQUFNLHlCQUF5QjthQUNiLFNBQUksR0FBRyx3Q0FBd0MsQUFBM0MsQ0FBNEM7SUFFdkUsWUFBbUIsU0FBb0IsRUFBUyxZQUF1QixJQUFJO1FBQXhELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBUyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUMzRSxDQUFDOztBQUpVLHlCQUF5QjtJQURyQyxXQUFXLEVBQUU7R0FDRCx5QkFBeUIsQ0FLckM7O0FBR00sSUFBTSwrQkFBK0IsR0FBckMsTUFBTSwrQkFBK0I7YUFDbkIsU0FBSSxHQUFHLDhDQUE4QyxBQUFqRCxDQUFrRDtJQUU3RSxZQUFtQixTQUFvQixFQUFTLFlBQXVCLElBQUk7UUFBeEQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFTLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQzNFLENBQUM7O0FBSlUsK0JBQStCO0lBRDNDLFdBQVcsRUFBRTtHQUNELCtCQUErQixDQUszQzs7QUFFRCxNQUFNLE9BQU8sMEJBQTBCO2FBQ2QsU0FBSSxHQUFHLHlDQUF5QyxDQUFDO0lBRXhFO0lBQ0Es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QXFDLENBQUM7SUFFcEUsWUFBbUIsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQ25ELENBQUM7O0FBR0gsTUFBTSxPQUFPLHdCQUF3QjthQUNaLFNBQUksR0FBRyxpQ0FBaUMsQ0FBQztJQUVoRSxZQUFtQixTQUF1QixFQUFTLE1BQWM7UUFBOUMsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDakUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcE1vZHVsZSwgRmlsZVR5cGUsIFNtYXJ0cGFya0R0bywgU21hcnRwYXJrRmlsdGVyLCBTdWJNb2R1bGUsIFZhckR0byB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllc1wiO1xuaW1wb3J0IHsgU21hcnRwYXJrQmFzaWNEdG8gfSBmcm9tIFwiLi4vLi4vc2VydmljZS1wcm94eS9pZGVudGl0eS1zZXJ2aWNlLXByb3hpZXNcIjtcbmltcG9ydCB7IERldmljZVN0YXR1c0R0bywgU2VhcmNoUGFyYW1zRHRvIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UtcHJveHkvcnBjLXNlcnZpY2UtcHJveGllc1wiO1xuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2xhbmcudXRpbFwiO1xuaW1wb3J0IHsgVHJhY2tBY3Rpb24gfSBmcm9tIFwiLi4vLi4vdXRpbHMvbmd4cy90cmFjay1hY3Rpb24uZGVjb3JhdG9yXCI7XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZFNtYXJ0cGFya3NBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIExvYWQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWxvYWQ/OiBib29sZWFuKSB7XG4gIH1cbn1cblxuQFRyYWNrQWN0aW9uKClcbmV4cG9ydCBjbGFzcyBMb2FkU21hcnRwYXJrc0Jhc2ljQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkU21hcnRwYXJrc0Jhc2ljQWN0aW9uJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYXBwTW9kdWxlOiBBcHBNb2R1bGUsIHB1YmxpYyBzdWJNb2R1bGU6IFN1Yk1vZHVsZSA9IG51bGwpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWRNb2JpbGVTbWFydHBhcmtzQmFzaWNBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIExvYWRNb2JpbGVTbWFydHBhcmtzQmFzaWNBY3Rpb24nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhcHBNb2R1bGU6IEFwcE1vZHVsZSwgcHVibGljIHN1Yk1vZHVsZTogU3ViTW9kdWxlID0gbnVsbCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbGVhclNtYXJ0cGFya3NCYXNpY0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gQ2xlYXJTbWFydHBhcmtzQmFzaWNBY3Rpb24nO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZEJhY2tvZmZpY2VTbWFydHBhcmtzVGFibGVBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIExvYWRCYWNrb2ZmaWNlU21hcnRwYXJrc1RhYmxlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmlsdGVyOiBTbWFydHBhcmtGaWx0ZXIpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWRTbWFydHBhcmtzVGFibGVBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIExvYWRUYWJsZSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGZpbHRlcjogU21hcnRwYXJrRmlsdGVyKSB7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBTZXRTbWFydFBhcmtUYWJsZUFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gU2V0VGFibGUnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzbWFydHBhcmtzOiBTbWFydHBhcmtEdG9bXSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRTbWFydFBhcmtBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIFNldCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNtYXJ0cGFya3M6IFNtYXJ0cGFya0R0b1tdIHwgU21hcnRwYXJrQmFzaWNEdG9bXSwgcHVibGljIHJlbG9hZD86IGJvb2xlYW4pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0U21hcnRQYXJrQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIFNlbGVjdFNtYXJ0UGFyayc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNtYXJ0UGFya0lkLCBwdWJsaWMgcmVsb2FkPzogYm9vbGVhbikgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBEaXNjb25uZWN0U21hcnRQYXJrQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIERpc2Nvbm5lY3RTbWFydFBhcmsnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzbWFydFBhcmtHdWlkOiBzdHJpbmcsIHB1YmxpYyBzbWFydFBhcmtJZDogbnVtYmVyLCBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZykgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRTbWFydFBhcmtWZXJzaW9uc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBTZXRWZXJzaW9ucyc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHZlcnNpb25zOiBTdHJpbmdNYXA8c3RyaW5nPikgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRCYWNrb2ZmaWNlU21hcnRQYXJrVmVyc2lvbnNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gU2V0QmFja29mZmljZVNtYXJ0UGFya1ZlcnNpb25zQWN0aW9uJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmVyc2lvbnM6IFN0cmluZ01hcDxzdHJpbmc+KSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIExvYWRTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gTG9hZFNwQW5kU3BhcmtWZXJzaW9ucyc7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIExvYWRCYWNrb2ZmaWNlU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIExvYWRCYWNrb2ZmaWNlU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uJztcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gQ2xlYXJTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24nO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2FkVmFyc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkVmFycyc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNlYXJjaFBhcmFtc0R0bzogU2VhcmNoUGFyYW1zRHRvKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIExvYWRCYWNrb2ZmaWNlVmFyc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkQmFja29mZmljZVZhcnMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZWFyY2hQYXJhbXNEdG86IFNlYXJjaFBhcmFtc0R0bykgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2FkQmFja29mZmljZVZhckJ5SWRBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gTG9hZEJhY2tvZmZpY2VWYXJCeUlkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFySWQ6IG51bWJlcikgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBTeW5jVXNlcnNBbmRSb2xlc0J5U21hcnRwYXJrSWRBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIFN5bmNVc2Vyc0FuZFJvbGVzQnlTbWFydHBhcmtJZCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNtYXJ0cGFyazogU21hcnRwYXJrRHRvKSB7XG4gIH1cbn1cblxuQFRyYWNrQWN0aW9uKClcbmV4cG9ydCBjbGFzcyBMb2FkUGFya3NBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIExvYWRQYXJrcyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuQFRyYWNrQWN0aW9uKClcbmV4cG9ydCBjbGFzcyBMb2FkUGFya0RldmljZXNBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIExvYWRQYXJrRGV2aWNlcyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNlbGVjdFBhcmtBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gU2VsZWN0UGFyayc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHBhcmtJZDogbnVtYmVyKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyU2VsZWN0ZWRQYXJrQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBDbGVhclNlbGVjdGVkUGFyayc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyU2VsZWN0ZWRTbWFydHBhcmtBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIENsZWFyU2VsZWN0ZWRTbWFydHBhcmsnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTbWFydFBhcmtEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIERldmljZVN0YXR1c0NoYW5nZWQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZpY2VTdGF0dXM6IERldmljZVN0YXR1c0R0bykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFeHBvcnRTbWFydHBhcmtBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIEV4cG9ydFNtYXJ0cGFyayc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzbWFydHBhcmtGaWx0ZXI6IFNtYXJ0cGFya0ZpbHRlciwgcHVibGljIGZpbGVUeXBlOiBGaWxlVHlwZSwgcHVibGljIGNvbHVtbnNIZWFkZXI6IHN0cmluZ1tdKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEV4cG9ydFBkZlNtYXJ0cGFya3NUYWJsZUFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gRXhwb3J0UGRmJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmlsdGVyOiBTbWFydHBhcmtGaWx0ZXIpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9hZFNtYXJ0cGFya3NEcm9wZG93bkFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gTG9hZFNtYXJ0cGFya3NEcm9wZG93bic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNlYXJjaFBhcmFtc0R0bzogU2VhcmNoUGFyYW1zRHRvKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZVNtYXJ0cGFya1ZhckFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gVXBkYXRlU21hcnRwYXJrVmFyJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc21hcnRwYXJrOiBTbWFydHBhcmtEdG8sIHB1YmxpYyB2YXJEdG86IFZhckR0bykge1xuICB9XG59XG4iXX0=
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwYXJrLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvc21hcnRwYXJrcy9zbWFydHBhcmsuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBSUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRy9ELElBQU0sb0JBQW9CLEdBQTFCLE1BQU0sb0JBQW9CO2FBQ1IsU0FBSSxHQUFHLG1CQUFtQixBQUF0QixDQUF1QjtJQUVsRCxZQUFtQixNQUFnQjtRQUFoQixXQUFNLEdBQU4sTUFBTSxDQUFVO0lBQ25DLENBQUM7O0FBSlUsb0JBQW9CO0lBRGhDLFdBQVcsRUFBRTtHQUNELG9CQUFvQixDQUtoQzs7QUFHTSxJQUFNLHlCQUF5QixHQUEvQixNQUFNLHlCQUF5QjthQUNiLFNBQUksR0FBRyx3Q0FBd0MsQUFBM0MsQ0FBNEM7SUFFdkUsWUFBbUIsU0FBb0IsRUFBUyxZQUF1QixJQUFJO1FBQXhELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBUyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUMzRSxDQUFDOztBQUpVLHlCQUF5QjtJQURyQyxXQUFXLEVBQUU7R0FDRCx5QkFBeUIsQ0FLckM7O0FBRUQsTUFBTSxPQUFPLDBCQUEwQjthQUNkLFNBQUksR0FBRyx5Q0FBeUMsQ0FBQztJQUV4RTtJQUNBLENBQUM7O0FBSUksSUFBTSxtQ0FBbUMsR0FBekMsTUFBTSxtQ0FBbUM7YUFDdkIsU0FBSSxHQUFHLDRDQUE0QyxBQUEvQyxDQUFnRDtJQUUzRSxZQUFtQixNQUF1QjtRQUF2QixXQUFNLEdBQU4sTUFBTSxDQUFpQjtJQUMxQyxDQUFDOztBQUpVLG1DQUFtQztJQUQvQyxXQUFXLEVBQUU7R0FDRCxtQ0FBbUMsQ0FLL0M7O0FBR00sSUFBTSx5QkFBeUIsR0FBL0IsTUFBTSx5QkFBeUI7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Q29udGVudCI6WyJpbXBvcnQgeyBBcHBNb2R1bGUsIEZpbGVUeXBlLCBTbWFydHBhcmtEdG8sIFNtYXJ0cGFya0ZpbHRlciwgU3ViTW9kdWxlLCBWYXJEdG8gfSBmcm9tIFwiLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXNcIjtcbmltcG9ydCB7IFNtYXJ0cGFya0Jhc2ljRHRvLCBTbWFydFBhcmtXcmFwcGVyRHRvIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UtcHJveHkvaWRlbnRpdHktc2VydmljZS1wcm94aWVzXCI7XG5pbXBvcnQgeyBEZXZpY2VTdGF0dXNEdG8sIFNlYXJjaFBhcmFtc0R0byB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlLXByb3h5L3JwYy1zZXJ2aWNlLXByb3hpZXNcIjtcbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gXCIuLi8uLi91dGlscy9sYW5nLnV0aWxcIjtcbmltcG9ydCB7IFRyYWNrQWN0aW9uIH0gZnJvbSBcIi4uLy4uL3V0aWxzL25neHMvdHJhY2stYWN0aW9uLmRlY29yYXRvclwiO1xuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWRTbWFydHBhcmtzQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVsb2FkPzogYm9vbGVhbikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZFNtYXJ0cGFya3NCYXNpY0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gTG9hZFNtYXJ0cGFya3NCYXNpY0FjdGlvbic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGFwcE1vZHVsZTogQXBwTW9kdWxlLCBwdWJsaWMgc3ViTW9kdWxlOiBTdWJNb2R1bGUgPSBudWxsKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBDbGVhclNtYXJ0cGFya3NCYXNpY0FjdGlvbic7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuQFRyYWNrQWN0aW9uKClcbmV4cG9ydCBjbGFzcyBMb2FkQmFja29mZmljZVNtYXJ0cGFya3NUYWJsZUFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gTG9hZEJhY2tvZmZpY2VTbWFydHBhcmtzVGFibGUnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmaWx0ZXI6IFNtYXJ0cGFya0ZpbHRlcikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZFNtYXJ0cGFya3NUYWJsZUFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gTG9hZFRhYmxlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmlsdGVyOiBTbWFydHBhcmtGaWx0ZXIpIHtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIFNldFNtYXJ0UGFya1RhYmxlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBTZXRUYWJsZSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNtYXJ0cGFya3M6IFNtYXJ0cGFya0R0b1tdKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldFNtYXJ0UGFya0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gU2V0JztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc21hcnRwYXJrczogU21hcnRwYXJrRHRvW10gfCBTbWFydHBhcmtCYXNpY0R0b1tdLCBwdWJsaWMgcmVsb2FkPzogYm9vbGVhbikge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RTbWFydFBhcmtBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gU2VsZWN0U21hcnRQYXJrJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc21hcnRQYXJrSWQsIHB1YmxpYyByZWxvYWQ/OiBib29sZWFuKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIERpc2Nvbm5lY3RTbWFydFBhcmtBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gRGlzY29ubmVjdFNtYXJ0UGFyayc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNtYXJ0UGFya0d1aWQ6IHN0cmluZywgcHVibGljIHNtYXJ0UGFya0lkOiBudW1iZXIsIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldFNtYXJ0UGFya1ZlcnNpb25zQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIFNldFZlcnNpb25zJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmVyc2lvbnM6IFN0cmluZ01hcDxzdHJpbmc+KSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldEJhY2tvZmZpY2VTbWFydFBhcmtWZXJzaW9uc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBTZXRCYWNrb2ZmaWNlU21hcnRQYXJrVmVyc2lvbnNBY3Rpb24nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2ZXJzaW9uczogU3RyaW5nTWFwPHN0cmluZz4pIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9hZFNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkU3BBbmRTcGFya1ZlcnNpb25zJztcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9hZEJhY2tvZmZpY2VTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gTG9hZEJhY2tvZmZpY2VTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24nO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbGVhclNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBDbGVhclNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbic7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIExvYWRWYXJzQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIExvYWRWYXJzJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VhcmNoUGFyYW1zRHRvOiBTZWFyY2hQYXJhbXNEdG8pIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9hZEJhY2tvZmZpY2VWYXJzQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIExvYWRCYWNrb2ZmaWNlVmFycyc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNlYXJjaFBhcmFtc0R0bzogU2VhcmNoUGFyYW1zRHRvKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIExvYWRCYWNrb2ZmaWNlVmFyQnlJZEFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkQmFja29mZmljZVZhckJ5SWQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2YXJJZDogbnVtYmVyKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIFN5bmNVc2Vyc0FuZFJvbGVzQnlTbWFydHBhcmtJZEFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gU3luY1VzZXJzQW5kUm9sZXNCeVNtYXJ0cGFya0lkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc21hcnRwYXJrOiBTbWFydHBhcmtEdG8pIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWRQYXJrc0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gTG9hZFBhcmtzJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWRQYXJrRGV2aWNlc0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gTG9hZFBhcmtEZXZpY2VzJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0UGFya0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBTZWxlY3RQYXJrJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIpIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJTZWxlY3RlZFBhcmtBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIENsZWFyU2VsZWN0ZWRQYXJrJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJTZWxlY3RlZFNtYXJ0cGFya0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gQ2xlYXJTZWxlY3RlZFNtYXJ0cGFyayc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNtYXJ0UGFya0RldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gRGV2aWNlU3RhdHVzQ2hhbmdlZCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRldmljZVN0YXR1czogRGV2aWNlU3RhdHVzRHRvKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEV4cG9ydFNtYXJ0cGFya0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gRXhwb3J0U21hcnRwYXJrJztcbiAgY29uc3RydWN0b3IocHVibGljIHNtYXJ0cGFya0ZpbHRlcjogU21hcnRwYXJrRmlsdGVyLCBwdWJsaWMgZmlsZVR5cGU6IEZpbGVUeXBlLCBwdWJsaWMgY29sdW1uc0hlYWRlcjogc3RyaW5nW10pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXhwb3J0UGRmU21hcnRwYXJrc1RhYmxlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBFeHBvcnRQZGYnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmaWx0ZXI6IFNtYXJ0cGFya0ZpbHRlcikge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2FkU21hcnRwYXJrc0Ryb3Bkb3duQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkU21hcnRwYXJrc0Ryb3Bkb3duJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VhcmNoUGFyYW1zRHRvOiBTZWFyY2hQYXJhbXNEdG8pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlU21hcnRwYXJrVmFyQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBVcGRhdGVTbWFydHBhcmtWYXInO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzbWFydHBhcms6IFNtYXJ0cGFya0R0bywgcHVibGljIHZhckR0bzogVmFyRHRvKSB7XG4gIH1cbn1cbiJdfQ==