@eui/core 16.2.1 → 17.0.0-next.2

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 (222) hide show
  1. package/esm2022/lib/eui-core.module.mjs +5 -5
  2. package/esm2022/lib/interceptors/add-lang-param.interceptor.mjs +4 -4
  3. package/esm2022/lib/interceptors/cache-prevention.interceptor.mjs +4 -4
  4. package/esm2022/lib/interceptors/cors-security.interceptor.mjs +4 -4
  5. package/esm2022/lib/interceptors/csrf-prevention.interceptor.mjs +4 -4
  6. package/esm2022/lib/interceptors/eu-login-session-timeout-handling.interceptor.mjs +4 -4
  7. package/esm2022/lib/interceptors/openid/openid-connect.interceptor.mjs +4 -4
  8. package/esm2022/lib/interceptors/openid/openid-connect.service.mjs +4 -4
  9. package/esm2022/lib/interceptors/ux-request-error-model.interceptor.mjs +4 -4
  10. package/esm2022/lib/services/dynamic-menu/dynamic-menu.service.mjs +66 -0
  11. package/esm2022/lib/services/errors/global-error-handler.mjs +4 -4
  12. package/esm2022/lib/services/errors/http-error-handler-callback-functions.mjs +5 -4
  13. package/esm2022/lib/services/errors/http-error-handler.interceptor.mjs +4 -4
  14. package/esm2022/lib/services/eui-timezone.service.mjs +716 -0
  15. package/esm2022/lib/services/i18n/i18n.loader.mjs +4 -4
  16. package/esm2022/lib/services/i18n/i18n.service.mjs +8 -8
  17. package/esm2022/lib/services/i18n/i18n.service.mock.mjs +4 -4
  18. package/esm2022/lib/services/index.mjs +3 -3
  19. package/esm2022/lib/services/locale/locale.service.mjs +4 -4
  20. package/esm2022/lib/services/locale/locale.service.mock.mjs +4 -4
  21. package/esm2022/lib/services/log/log.module.mjs +5 -5
  22. package/esm2022/lib/services/log/log.service.mjs +4 -4
  23. package/esm2022/lib/services/permission/permission.service.mjs +5 -5
  24. package/esm2022/lib/services/queue/api-queue.service.mjs +4 -4
  25. package/esm2022/lib/services/storage/local-forage.service.mjs +4 -4
  26. package/esm2022/lib/services/storage/local-storage.service.mjs +4 -4
  27. package/esm2022/lib/services/storage/session-storage.service.mjs +4 -4
  28. package/esm2022/lib/services/store/actions/user.actions.mjs +1 -1
  29. package/esm2022/lib/services/store/effects/app.effects.mjs +16 -6
  30. package/esm2022/lib/services/store/store.service.mjs +4 -4
  31. package/esm2022/lib/services/store/store.service.mock.mjs +4 -4
  32. package/esm2022/lib/services/user/user.service.mjs +4 -4
  33. package/esm2022/lib/services/user/user.service.mock.mjs +4 -4
  34. package/esm2022/lib/services/ux-app-shell.service.mjs +6 -152
  35. package/esm2022/lib/services/ux-dynamic-component/ux-dynamic-component.service.mjs +4 -4
  36. package/esm2022/lib/services/ux-error-feedback/ux-error-feedback.service.mjs +29 -20
  37. package/fesm2022/eui-core.mjs +158 -284
  38. package/fesm2022/eui-core.mjs.map +1 -1
  39. package/lib/services/dynamic-menu/dynamic-menu.service.d.ts +15 -0
  40. package/lib/services/dynamic-menu/dynamic-menu.service.d.ts.map +1 -0
  41. package/lib/services/errors/http-error-handler-callback-functions.d.ts.map +1 -1
  42. package/lib/services/{ux-timezone.service.d.ts → eui-timezone.service.d.ts} +9 -9
  43. package/lib/services/eui-timezone.service.d.ts.map +1 -0
  44. package/lib/services/index.d.ts +2 -2
  45. package/lib/services/index.d.ts.map +1 -1
  46. package/lib/services/permission/permission.service.d.ts +7 -7
  47. package/lib/services/permission/permission.service.d.ts.map +1 -1
  48. package/lib/services/store/actions/user.actions.d.ts +3 -3
  49. package/lib/services/store/actions/user.actions.d.ts.map +1 -1
  50. package/lib/services/store/effects/app.effects.d.ts.map +1 -1
  51. package/lib/services/ux-app-shell.service.d.ts +8 -31
  52. package/lib/services/ux-app-shell.service.d.ts.map +1 -1
  53. package/lib/services/ux-error-feedback/ux-error-feedback.service.d.ts.map +1 -1
  54. package/package.json +2 -2
  55. package/docs/classes/ActivatedRouteAction.html +0 -282
  56. package/docs/classes/AddApiQueueItemAction.html +0 -282
  57. package/docs/classes/AddAppLoadedConfigModulesAction.html +0 -282
  58. package/docs/classes/ApiQueueServiceMock.html +0 -553
  59. package/docs/classes/AsyncStorageService.html +0 -941
  60. package/docs/classes/AsyncStorageServiceMock.html +0 -427
  61. package/docs/classes/EmptyApiQueueAction.html +0 -282
  62. package/docs/classes/EuiCoreRootGuardClass.html +0 -167
  63. package/docs/classes/EuiError.html +0 -227
  64. package/docs/classes/I18nResourceImpl.html +0 -510
  65. package/docs/classes/InitStoreAction.html +0 -282
  66. package/docs/classes/LogServiceMock.html +0 -223
  67. package/docs/classes/OpenIdConnectServiceMock.html +0 -223
  68. package/docs/classes/RemoveApiQueueItemAction.html +0 -282
  69. package/docs/classes/RouterMock.html +0 -499
  70. package/docs/classes/StorageService.html +0 -640
  71. package/docs/classes/StorageServiceMock.html +0 -325
  72. package/docs/classes/StoreMock.html +0 -406
  73. package/docs/classes/TranslateServiceMock.html +0 -917
  74. package/docs/classes/UpdateAppConnectionAction.html +0 -282
  75. package/docs/classes/UpdateAppStatusAction.html +0 -282
  76. package/docs/classes/UpdateAppVersionAction.html +0 -282
  77. package/docs/classes/UpdateCurrentModuleAction.html +0 -282
  78. package/docs/classes/UpdateI18nStateAction.html +0 -282
  79. package/docs/classes/UpdateLocaleStateAction.html +0 -282
  80. package/docs/classes/UpdateNotificationsListAction.html +0 -282
  81. package/docs/classes/UpdateUserDashboardAction.html +0 -282
  82. package/docs/classes/UpdateUserDetailsAction.html +0 -282
  83. package/docs/classes/UpdateUserPreferencesAction.html +0 -282
  84. package/docs/classes/UpdateUserRightsAction.html +0 -282
  85. package/docs/classes/UpdateUserStateAction.html +0 -282
  86. package/docs/classes/UxErrorManager.html +0 -536
  87. package/docs/classes/UxRootInjectorGuard.html +0 -197
  88. package/docs/dependencies.html +0 -319
  89. package/docs/directives/TranslateMockDirective.html +0 -266
  90. package/docs/fonts/ionicons.eot +0 -0
  91. package/docs/fonts/ionicons.svg +0 -2090
  92. package/docs/fonts/ionicons.ttf +0 -0
  93. package/docs/fonts/ionicons.woff +0 -0
  94. package/docs/fonts/ionicons.woff2 +0 -0
  95. package/docs/fonts/roboto-v15-latin-300.eot +0 -0
  96. package/docs/fonts/roboto-v15-latin-300.svg +0 -314
  97. package/docs/fonts/roboto-v15-latin-300.ttf +0 -0
  98. package/docs/fonts/roboto-v15-latin-300.woff +0 -0
  99. package/docs/fonts/roboto-v15-latin-300.woff2 +0 -0
  100. package/docs/fonts/roboto-v15-latin-700.eot +0 -0
  101. package/docs/fonts/roboto-v15-latin-700.svg +0 -310
  102. package/docs/fonts/roboto-v15-latin-700.ttf +0 -0
  103. package/docs/fonts/roboto-v15-latin-700.woff +0 -0
  104. package/docs/fonts/roboto-v15-latin-700.woff2 +0 -0
  105. package/docs/fonts/roboto-v15-latin-italic.eot +0 -0
  106. package/docs/fonts/roboto-v15-latin-italic.svg +0 -323
  107. package/docs/fonts/roboto-v15-latin-italic.ttf +0 -0
  108. package/docs/fonts/roboto-v15-latin-italic.woff +0 -0
  109. package/docs/fonts/roboto-v15-latin-italic.woff2 +0 -0
  110. package/docs/fonts/roboto-v15-latin-regular.eot +0 -0
  111. package/docs/fonts/roboto-v15-latin-regular.svg +0 -308
  112. package/docs/fonts/roboto-v15-latin-regular.ttf +0 -0
  113. package/docs/fonts/roboto-v15-latin-regular.woff +0 -0
  114. package/docs/fonts/roboto-v15-latin-regular.woff2 +0 -0
  115. package/docs/images/compodoc-vectorise-inverted.png +0 -0
  116. package/docs/images/compodoc-vectorise-inverted.svg +0 -201
  117. package/docs/images/compodoc-vectorise.png +0 -0
  118. package/docs/images/compodoc-vectorise.svg +0 -201
  119. package/docs/images/favicon.ico +0 -0
  120. package/docs/index.html +0 -171
  121. package/docs/injectables/ApiQueueService.html +0 -806
  122. package/docs/injectables/CoreAppEffects.html +0 -390
  123. package/docs/injectables/EuiPermissionService.html +0 -652
  124. package/docs/injectables/GlobalErrorHandler.html +0 -293
  125. package/docs/injectables/I18nLoader.html +0 -597
  126. package/docs/injectables/I18nService.html +0 -945
  127. package/docs/injectables/I18nServiceMock.html +0 -634
  128. package/docs/injectables/LocalForageService.html +0 -773
  129. package/docs/injectables/LocalStorageService.html +0 -554
  130. package/docs/injectables/LocaleService.html +0 -799
  131. package/docs/injectables/LocaleServiceMock.html +0 -493
  132. package/docs/injectables/LogService.html +0 -354
  133. package/docs/injectables/OpenIdConnectService.html +0 -225
  134. package/docs/injectables/SessionStorageService.html +0 -554
  135. package/docs/injectables/StoreService.html +0 -651
  136. package/docs/injectables/StoreServiceMock.html +0 -457
  137. package/docs/injectables/UserService.html +0 -752
  138. package/docs/injectables/UserServiceMock.html +0 -641
  139. package/docs/injectables/UxAppShellService.html +0 -3338
  140. package/docs/injectables/UxDynamicComponentService.html +0 -437
  141. package/docs/injectables/UxDynamicMenuService.html +0 -379
  142. package/docs/injectables/UxErrorFeedbackService.html +0 -591
  143. package/docs/injectables/UxTimezoneService.html +0 -382
  144. package/docs/interceptors/AddLangParamInterceptor.html +0 -305
  145. package/docs/interceptors/CachePreventionInterceptor.html +0 -254
  146. package/docs/interceptors/CorsSecurityInterceptor.html +0 -254
  147. package/docs/interceptors/CsrfPreventionInterceptor.html +0 -254
  148. package/docs/interceptors/EuLoginSessionTimeoutHandlingInterceptor.html +0 -254
  149. package/docs/interceptors/HttpErrorHandlerInterceptor.html +0 -321
  150. package/docs/interceptors/OpenIdConnectInterceptor.html +0 -347
  151. package/docs/interceptors/UxRequestErrorModelInterceptor.html +0 -297
  152. package/docs/interfaces/LoadedResources.html +0 -292
  153. package/docs/interfaces/LoadedResourcesError.html +0 -247
  154. package/docs/interfaces/ModuleLoadEvent.html +0 -292
  155. package/docs/interfaces/OpenIdConnectUserDetails.html +0 -439
  156. package/docs/interfaces/ResourceError.html +0 -298
  157. package/docs/interfaces/TimeZone.html +0 -247
  158. package/docs/interfaces/UIState.html +0 -1900
  159. package/docs/js/compodoc.js +0 -14
  160. package/docs/js/lazy-load-graphs.js +0 -44
  161. package/docs/js/libs/EventDispatcher.js +0 -5
  162. package/docs/js/libs/bootstrap-native.js +0 -1
  163. package/docs/js/libs/clipboard.min.js +0 -7
  164. package/docs/js/libs/custom-elements-es5-adapter.js +0 -15
  165. package/docs/js/libs/custom-elements.min.js +0 -38
  166. package/docs/js/libs/d3.v3.min.js +0 -2
  167. package/docs/js/libs/deep-iterator.js +0 -2
  168. package/docs/js/libs/es6-shim.min.js +0 -11
  169. package/docs/js/libs/htmlparser.js +0 -23
  170. package/docs/js/libs/innersvg.js +0 -9
  171. package/docs/js/libs/lit-html.js +0 -1
  172. package/docs/js/libs/prism.js +0 -46
  173. package/docs/js/libs/promise.min.js +0 -6
  174. package/docs/js/libs/svg-pan-zoom.min.js +0 -3
  175. package/docs/js/libs/tablesort.min.js +0 -6
  176. package/docs/js/libs/tablesort.number.min.js +0 -6
  177. package/docs/js/libs/vis.min.js +0 -47
  178. package/docs/js/libs/zepto.min.js +0 -2
  179. package/docs/js/menu-wc.js +0 -380
  180. package/docs/js/menu.js +0 -325
  181. package/docs/js/routes.js +0 -301
  182. package/docs/js/search/lunr.min.js +0 -6
  183. package/docs/js/search/search-lunr.js +0 -67
  184. package/docs/js/search/search.js +0 -268
  185. package/docs/js/search/search_index.js +0 -4
  186. package/docs/js/sourceCode.js +0 -58
  187. package/docs/js/svg-pan-zoom.controls.js +0 -53
  188. package/docs/js/tabs.js +0 -21
  189. package/docs/js/tree.js +0 -147
  190. package/docs/license.html +0 -379
  191. package/docs/miscellaneous/enumerations.html +0 -418
  192. package/docs/miscellaneous/functions.html +0 -1864
  193. package/docs/miscellaneous/typealiases.html +0 -258
  194. package/docs/miscellaneous/variables.html +0 -3965
  195. package/docs/modules/CoreModule.html +0 -256
  196. package/docs/modules/I18nModule.html +0 -198
  197. package/docs/modules/LogModule.html +0 -305
  198. package/docs/modules/TranslateMockModule.html +0 -176
  199. package/docs/modules.html +0 -168
  200. package/docs/pipes/TranslateMockPipe.html +0 -227
  201. package/docs/properties.html +0 -124
  202. package/docs/styles/bootstrap-card.css +0 -219
  203. package/docs/styles/bootstrap.min.css +0 -6
  204. package/docs/styles/compodoc.css +0 -1121
  205. package/docs/styles/dark.css +0 -121
  206. package/docs/styles/ionicons.min.css +0 -11
  207. package/docs/styles/laravel.css +0 -113
  208. package/docs/styles/material.css +0 -131
  209. package/docs/styles/original.css +0 -51
  210. package/docs/styles/postmark.css +0 -238
  211. package/docs/styles/prism.css +0 -301
  212. package/docs/styles/readthedocs.css +0 -117
  213. package/docs/styles/reset.css +0 -129
  214. package/docs/styles/stripe.css +0 -106
  215. package/docs/styles/style.css +0 -7
  216. package/docs/styles/tablesort.css +0 -33
  217. package/docs/styles/vagrant.css +0 -130
  218. package/esm2022/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.mjs +0 -66
  219. package/esm2022/lib/services/ux-timezone.service.mjs +0 -717
  220. package/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.d.ts +0 -15
  221. package/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.d.ts.map +0 -1
  222. package/lib/services/ux-timezone.service.d.ts.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { UxClearErrorFeedbackEvent, UxPublishErrorFeedbackEvent, } from '@eui/base';
2
2
  import { Subject } from 'rxjs';
3
- import { filter, take } from 'rxjs/operators';
3
+ import { filter } from 'rxjs/operators';
4
4
  import { withUxErrorManager } from './ux-error-handler.operator';
5
5
  import { Injectable } from '@angular/core';
6
6
  import * as i0 from "@angular/core";
@@ -27,21 +27,30 @@ export class UxErrorFeedbackService {
27
27
  * Growl errors
28
28
  */
29
29
  growlError(err) {
30
- const feedBacks = err.uxHttpErrorOutput.getFeedBacks();
31
- const isGrowlSticky = false;
32
- const isGrowlMultiple = true;
33
- const growlLife = 10000;
34
- const position = 'bottom-right';
35
- feedBacks.forEach((feedback) => this.translateService
36
- .get(feedback.msgId)
37
- .pipe(take(1))
38
- .subscribe((translate) => {
39
- this.asService.growl({
40
- severity: feedback.severity || 'danger',
41
- summary: 'ERROR',
42
- detail: translate,
43
- }, isGrowlSticky, isGrowlMultiple, growlLife, position);
44
- }));
30
+ // TODO v17 - should not display growl from here, but where it's called
31
+ // const feedBacks = err.uxHttpErrorOutput.getFeedBacks();
32
+ // const isGrowlSticky = false;
33
+ // const isGrowlMultiple = true;
34
+ // const growlLife = 10000;
35
+ // const position = 'bottom-right';
36
+ // feedBacks.forEach((feedback: UxErrorFeedback) =>
37
+ // this.translateService
38
+ // .get(feedback.msgId)
39
+ // .pipe(take(1))
40
+ // .subscribe((translate) => {
41
+ // this.asService.growl(
42
+ // {
43
+ // severity: feedback.severity || 'danger',
44
+ // summary: 'ERROR',
45
+ // detail: translate,
46
+ // },
47
+ // isGrowlSticky,
48
+ // isGrowlMultiple,
49
+ // growlLife,
50
+ // position
51
+ // );
52
+ // })
53
+ // );
45
54
  }
46
55
  clearError(id, groupId) {
47
56
  this.errors.next(new UxClearErrorFeedbackEvent(id, groupId));
@@ -52,10 +61,10 @@ export class UxErrorFeedbackService {
52
61
  createGlobalErrorManager() {
53
62
  return new UxErrorManager(this, true);
54
63
  }
55
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: UxErrorFeedbackService, deps: [{ token: i1.UxAppShellService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
56
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: UxErrorFeedbackService, providedIn: 'root' }); }
64
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.3", ngImport: i0, type: UxErrorFeedbackService, deps: [{ token: i1.UxAppShellService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
65
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.3", ngImport: i0, type: UxErrorFeedbackService, providedIn: 'root' }); }
57
66
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: UxErrorFeedbackService, decorators: [{
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.3", ngImport: i0, type: UxErrorFeedbackService, decorators: [{
59
68
  type: Injectable,
60
69
  args: [{
61
70
  providedIn: 'root',
@@ -96,4 +105,4 @@ export class UxErrorManager {
96
105
  }
97
106
  }
98
107
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXgtZXJyb3ItZmVlZGJhY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdXgtZXJyb3ItZmVlZGJhY2svdXgtZXJyb3ItZmVlZGJhY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gseUJBQXlCLEVBSXpCLDJCQUEyQixHQUM5QixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUszQyxNQUFNLE9BQU8sc0JBQXNCO0lBRy9CLFlBQW9CLFNBQTRCLEVBQVUsZ0JBQWtDO1FBQXhFLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUY1RixXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQTRCLENBQUM7SUFFOEMsQ0FBQztJQUVoRzs7T0FFRztJQUNILFlBQVksQ0FBQyxHQUF3QixFQUFFLFVBQW1CLEVBQUUsT0FBZ0IsRUFBRSxVQUFvQjtRQUM5RixJQUFJLFVBQVUsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksMkJBQTJCLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUM3RzthQUFNO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FB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O0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBNkIsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNqSDthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUE2QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3RHO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBVeENsZWFyRXJyb3JGZWVkYmFja0V2ZW50LFxuICAgIFV4RXJyb3JGZWVkYmFjayxcbiAgICBVeEVycm9yRmVlZGJhY2tFdmVudFR5cGUsXG4gICAgVXhIdHRwRXJyb3JSZXNwb25zZSxcbiAgICBVeFB1Ymxpc2hFcnJvckZlZWRiYWNrRXZlbnQsXG59IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyB3aXRoVXhFcnJvck1hbmFnZXIgfSBmcm9tICcuL3V4LWVycm9yLWhhbmRsZXIub3BlcmF0b3InO1xuaW1wb3J0IHsgVXhBcHBTaGVsbFNlcnZpY2UgfSBmcm9tICcuLi91eC1hcHAtc2hlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFV4RXJyb3JGZWVkYmFja1NlcnZpY2Uge1xuICAgIGVycm9ycyA9IG5ldyBTdWJqZWN0PFV4RXJyb3JGZWVkYmFja0V2ZW50VHlwZT4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXNTZXJ2aWNlOiBVeEFwcFNoZWxsU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gICAgLyoqXG4gICAgICogIFB1Ymxpc2hlcyBlcnJvcnMgdG8gdGFyZ2V0ZWQgY29tcG9uZW50c1xuICAgICAqL1xuICAgIHB1Ymxpc2hFcnJvcihlcnI6IFV4SHR0cEVycm9yUmVzcG9uc2UsIGluc3RhbmNlSWQ/OiBzdHJpbmcsIGdyb3VwSWQ/OiBzdHJpbmcsIGFjY3VtdWxhdGU/OiBib29sZWFuKSB7XG4gICAgICAgIGlmIChpbnN0YW5jZUlkKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9ycy5uZXh0KG5ldyBVeFB1Ymxpc2hFcnJvckZlZWRiYWNrRXZlbnQoZXJyLnV4SHR0cEVycm9yT3V0cHV0LCBpbnN0YW5jZUlkLCBncm91cElkLCBhY2N1bXVsYXRlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVycm9ycy5uZXh0KG5ldyBVeFB1Ymxpc2hFcnJvckZlZWRiYWNrRXZlbnQoZXJyLnV4SHR0cEVycm9yT3V0cHV0LCB1bmRlZmluZWQsIGdyb3VwSWQsIGFjY3VtdWxhdGUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBHcm93bCBlcnJvcnNcbiAgICAgKi9cbiAgICBncm93bEVycm9yKGVycjogVXhIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICBjb25zdCBmZWVkQmFja3MgPSBlcnIudXhIdHRwRXJyb3JPdXRwdXQuZ2V0RmVlZEJhY2tzKCk7XG4gICAgICAgIGNvbnN0IGlzR3Jvd2xTdGlja3kgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgaXNHcm93bE11bHRpcGxlID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZ3Jvd2xMaWZlID0gMTAwMDA7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gJ2JvdHRvbS1yaWdodCc7XG4gICAgICAgIGZlZWRCYWNrcy5mb3JFYWNoKChmZWVkYmFjazogVXhFcnJvckZlZWRiYWNrKSA9PlxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldChmZWVkYmFjay5tc2dJZClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHRyYW5zbGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFzU2VydmljZS5ncm93bChcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogZmVlZGJhY2suc2V2ZXJpdHkgfHwgJ2RhbmdlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyeTogJ0VSUk9SJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0dyb3dsU3RpY2t5LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNHcm93bE11bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ3Jvd2xMaWZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNsZWFyRXJyb3IoaWQ/OiBzdHJpbmcsIGdyb3VwSWQ/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5lcnJvcnMubmV4dChuZXcgVXhDbGVhckVycm9yRmVlZGJhY2tFdmVudChpZCwgZ3JvdXBJZCkpO1xuICAgIH1cblxuICAgIGNyZWF0ZUxvY2FsRXJyb3JNYW5hZ2VyKCk6IFV4RXJyb3JNYW5hZ2VyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBVeEVycm9yTWFuYWdlcih0aGlzKTtcbiAgICB9XG5cbiAgICBjcmVhdGVHbG9iYWxFcnJvck1hbmFnZXIoKTogVXhFcnJvck1hbmFnZXIge1xuICAgICAgICByZXR1cm4gbmV3IFV4RXJyb3JNYW5hZ2VyKHRoaXMsIHRydWUpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFV4RXJyb3JNYW5hZ2VyIHtcbiAgICByZWFkb25seSBodHRwRXJyb3JPcGVyYXRvciA9IHdpdGhVeEVycm9yTWFuYWdlcih0aGlzKTtcbiAgICBwcml2YXRlIGlkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB1eEVycm9yRmVlZGJhY2tTZXJ2aWNlOiBVeEVycm9yRmVlZGJhY2tTZXJ2aWNlLCBwcml2YXRlIGlzR2xvYmFsPzogYm9vbGVhbikge31cblxuICAgIHB1Ymxpc2hFcnJvcihlcnI6IFV4SHR0cEVycm9yUmVzcG9uc2UsIGdyb3VwSWQ/OiBzdHJpbmcsIGFjY3VtdWxhdGU/OiBib29sZWFuKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0dsb2JhbCkge1xuICAgICAgICAgICAgdGhpcy51eEVycm9yRmVlZGJhY2tTZXJ2aWNlLnB1Ymxpc2hFcnJvcihlcnIsIHRoaXMuaWQsIGdyb3VwSWQsIGFjY3VtdWxhdGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51eEVycm9yRmVlZGJhY2tTZXJ2aWNlLnB1Ymxpc2hFcnJvcihlcnIsIHVuZGVmaW5lZCwgZ3JvdXBJZCwgYWNjdW11bGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhckVycm9yKGdyb3VwSWQ/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzR2xvYmFsKSB7XG4gICAgICAgICAgICB0aGlzLnV4RXJyb3JGZWVkYmFja1NlcnZpY2UuY2xlYXJFcnJvcih0aGlzLmlkLCBncm91cElkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXhFcnJvckZlZWRiYWNrU2VydmljZS5jbGVhckVycm9yKHVuZGVmaW5lZCwgZ3JvdXBJZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBncm93bEVycm9yKGVycjogVXhIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICB0aGlzLnV4RXJyb3JGZWVkYmFja1NlcnZpY2UuZ3Jvd2xFcnJvcihlcnIpO1xuICAgIH1cblxuICAgIGVycm9ycygpOiBPYnNlcnZhYmxlPFV4RXJyb3JGZWVkYmFja0V2ZW50VHlwZT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNHbG9iYWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnV4RXJyb3JGZWVkYmFja1NlcnZpY2UuZXJyb3JzLnBpcGUoZmlsdGVyKChldnQ6IFV4RXJyb3JGZWVkYmFja0V2ZW50VHlwZSkgPT4gZXZ0LmlkID09PSB0aGlzLmlkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51eEVycm9yRmVlZGJhY2tTZXJ2aWNlLmVycm9ycy5waXBlKGZpbHRlcigoZXZ0OiBVeEVycm9yRmVlZGJhY2tFdmVudFR5cGUpID0+ICFldnQuaWQpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXgtZXJyb3ItZmVlZGJhY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdXgtZXJyb3ItZmVlZGJhY2svdXgtZXJyb3ItZmVlZGJhY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gseUJBQXlCLEVBSXpCLDJCQUEyQixHQUM5QixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQVEsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBSzNDLE1BQU0sT0FBTyxzQkFBc0I7SUFHL0IsWUFBb0IsU0FBNEIsRUFBVSxnQkFBa0M7UUFBeEUsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBRjVGLFdBQU0sR0FBRyxJQUFJLE9BQU8sRUFBNEIsQ0FBQztJQUU4QyxDQUFDO0lBRWhHOztPQUVHO0lBQ0gsWUFBWSxDQUFDLEdBQXdCLEVBQUUsVUFBbUIsRUFBRSxPQUFnQixFQUFFLFVBQW9CO1FBQzlGLElBQUksVUFBVSxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQzdHO2FBQU07WUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FD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QUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3RHO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBVeENsZWFyRXJyb3JGZWVkYmFja0V2ZW50LFxuICAgIFV4RXJyb3JGZWVkYmFjayxcbiAgICBVeEVycm9yRmVlZGJhY2tFdmVudFR5cGUsXG4gICAgVXhIdHRwRXJyb3JSZXNwb25zZSxcbiAgICBVeFB1Ymxpc2hFcnJvckZlZWRiYWNrRXZlbnQsXG59IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyB3aXRoVXhFcnJvck1hbmFnZXIgfSBmcm9tICcuL3V4LWVycm9yLWhhbmRsZXIub3BlcmF0b3InO1xuaW1wb3J0IHsgVXhBcHBTaGVsbFNlcnZpY2UgfSBmcm9tICcuLi91eC1hcHAtc2hlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFV4RXJyb3JGZWVkYmFja1NlcnZpY2Uge1xuICAgIGVycm9ycyA9IG5ldyBTdWJqZWN0PFV4RXJyb3JGZWVkYmFja0V2ZW50VHlwZT4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXNTZXJ2aWNlOiBVeEFwcFNoZWxsU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gICAgLyoqXG4gICAgICogIFB1Ymxpc2hlcyBlcnJvcnMgdG8gdGFyZ2V0ZWQgY29tcG9uZW50c1xuICAgICAqL1xuICAgIHB1Ymxpc2hFcnJvcihlcnI6IFV4SHR0cEVycm9yUmVzcG9uc2UsIGluc3RhbmNlSWQ/OiBzdHJpbmcsIGdyb3VwSWQ/OiBzdHJpbmcsIGFjY3VtdWxhdGU/OiBib29sZWFuKSB7XG4gICAgICAgIGlmIChpbnN0YW5jZUlkKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9ycy5uZXh0KG5ldyBVeFB1Ymxpc2hFcnJvckZlZWRiYWNrRXZlbnQoZXJyLnV4SHR0cEVycm9yT3V0cHV0LCBpbnN0YW5jZUlkLCBncm91cElkLCBhY2N1bXVsYXRlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVycm9ycy5uZXh0KG5ldyBVeFB1Ymxpc2hFcnJvckZlZWRiYWNrRXZlbnQoZXJyLnV4SHR0cEVycm9yT3V0cHV0LCB1bmRlZmluZWQsIGdyb3VwSWQsIGFjY3VtdWxhdGUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBHcm93bCBlcnJvcnNcbiAgICAgKi9cbiAgICBncm93bEVycm9yKGVycjogVXhIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAvLyBUT0RPIHYxNyAtIHNob3VsZCBub3QgZGlzcGxheSBncm93bCBmcm9tIGhlcmUsIGJ1dCB3aGVyZSBpdCdzIGNhbGxlZFxuICAgICAgICAvLyBjb25zdCBmZWVkQmFja3MgPSBlcnIudXhIdHRwRXJyb3JPdXRwdXQuZ2V0RmVlZEJhY2tzKCk7XG4gICAgICAgIC8vIGNvbnN0IGlzR3Jvd2xTdGlja3kgPSBmYWxzZTtcbiAgICAgICAgLy8gY29uc3QgaXNHcm93bE11bHRpcGxlID0gdHJ1ZTtcbiAgICAgICAgLy8gY29uc3QgZ3Jvd2xMaWZlID0gMTAwMDA7XG4gICAgICAgIC8vIGNvbnN0IHBvc2l0aW9uID0gJ2JvdHRvbS1yaWdodCc7XG4gICAgICAgIC8vIGZlZWRCYWNrcy5mb3JFYWNoKChmZWVkYmFjazogVXhFcnJvckZlZWRiYWNrKSA9PlxuICAgICAgICAvLyAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXG4gICAgICAgIC8vICAgICAgICAgLmdldChmZWVkYmFjay5tc2dJZClcbiAgICAgICAgLy8gICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAvLyAgICAgICAgIC5zdWJzY3JpYmUoKHRyYW5zbGF0ZSkgPT4ge1xuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLmFzU2VydmljZS5ncm93bChcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgIHtcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogZmVlZGJhY2suc2V2ZXJpdHkgfHwgJ2RhbmdlcicsXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgc3VtbWFyeTogJ0VSUk9SJyxcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHRyYW5zbGF0ZSxcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgIH0sXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICBpc0dyb3dsU3RpY2t5LFxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgaXNHcm93bE11bHRpcGxlLFxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgZ3Jvd2xMaWZlLFxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgcG9zaXRpb25cbiAgICAgICAgLy8gICAgICAgICAgICAgKTtcbiAgICAgICAgLy8gICAgICAgICB9KVxuICAgICAgICAvLyApO1xuICAgIH1cblxuICAgIGNsZWFyRXJyb3IoaWQ/OiBzdHJpbmcsIGdyb3VwSWQ/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5lcnJvcnMubmV4dChuZXcgVXhDbGVhckVycm9yRmVlZGJhY2tFdmVudChpZCwgZ3JvdXBJZCkpO1xuICAgIH1cblxuICAgIGNyZWF0ZUxvY2FsRXJyb3JNYW5hZ2VyKCk6IFV4RXJyb3JNYW5hZ2VyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBVeEVycm9yTWFuYWdlcih0aGlzKTtcbiAgICB9XG5cbiAgICBjcmVhdGVHbG9iYWxFcnJvck1hbmFnZXIoKTogVXhFcnJvck1hbmFnZXIge1xuICAgICAgICByZXR1cm4gbmV3IFV4RXJyb3JNYW5hZ2VyKHRoaXMsIHRydWUpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFV4RXJyb3JNYW5hZ2VyIHtcbiAgICByZWFkb25seSBodHRwRXJyb3JPcGVyYXRvciA9IHdpdGhVeEVycm9yTWFuYWdlcih0aGlzKTtcbiAgICBwcml2YXRlIGlkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB1eEVycm9yRmVlZGJhY2tTZXJ2aWNlOiBVeEVycm9yRmVlZGJhY2tTZXJ2aWNlLCBwcml2YXRlIGlzR2xvYmFsPzogYm9vbGVhbikge31cblxuICAgIHB1Ymxpc2hFcnJvcihlcnI6IFV4SHR0cEVycm9yUmVzcG9uc2UsIGdyb3VwSWQ/OiBzdHJpbmcsIGFjY3VtdWxhdGU/OiBib29sZWFuKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0dsb2JhbCkge1xuICAgICAgICAgICAgdGhpcy51eEVycm9yRmVlZGJhY2tTZXJ2aWNlLnB1Ymxpc2hFcnJvcihlcnIsIHRoaXMuaWQsIGdyb3VwSWQsIGFjY3VtdWxhdGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51eEVycm9yRmVlZGJhY2tTZXJ2aWNlLnB1Ymxpc2hFcnJvcihlcnIsIHVuZGVmaW5lZCwgZ3JvdXBJZCwgYWNjdW11bGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhckVycm9yKGdyb3VwSWQ/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzR2xvYmFsKSB7XG4gICAgICAgICAgICB0aGlzLnV4RXJyb3JGZWVkYmFja1NlcnZpY2UuY2xlYXJFcnJvcih0aGlzLmlkLCBncm91cElkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXhFcnJvckZlZWRiYWNrU2VydmljZS5jbGVhckVycm9yKHVuZGVmaW5lZCwgZ3JvdXBJZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBncm93bEVycm9yKGVycjogVXhIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICB0aGlzLnV4RXJyb3JGZWVkYmFja1NlcnZpY2UuZ3Jvd2xFcnJvcihlcnIpO1xuICAgIH1cblxuICAgIGVycm9ycygpOiBPYnNlcnZhYmxlPFV4RXJyb3JGZWVkYmFja0V2ZW50VHlwZT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNHbG9iYWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnV4RXJyb3JGZWVkYmFja1NlcnZpY2UuZXJyb3JzLnBpcGUoZmlsdGVyKChldnQ6IFV4RXJyb3JGZWVkYmFja0V2ZW50VHlwZSkgPT4gZXZ0LmlkID09PSB0aGlzLmlkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51eEVycm9yRmVlZGJhY2tTZXJ2aWNlLmVycm9ycy5waXBlKGZpbHRlcigoZXZ0OiBVeEVycm9yRmVlZGJhY2tFdmVudFR5cGUpID0+ICFldnQuaWQpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==