@eui/core 13.0.0-rc.6 → 13.0.0-rc.63

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 (75) hide show
  1. package/docs/dependencies.html +53 -53
  2. package/docs/injectables/I18nLoader.html +39 -0
  3. package/docs/injectables/LocaleService.html +20 -0
  4. package/docs/injectables/UxAppShellService.html +175 -0
  5. package/docs/interfaces/UIState.html +135 -0
  6. package/docs/js/search/search_index.js +2 -2
  7. package/docs/miscellaneous/variables.html +6 -1
  8. package/esm2020/lib/eui-core.module.mjs +6 -6
  9. package/esm2020/lib/helpers/dom-helpers.mjs +3 -1
  10. package/esm2020/lib/helpers/format-helpers.mjs +3 -1
  11. package/esm2020/lib/interceptors/add-lang-param.interceptor.mjs +4 -5
  12. package/esm2020/lib/interceptors/cache-prevention.interceptor.mjs +4 -4
  13. package/esm2020/lib/interceptors/cors-security.interceptor.mjs +4 -4
  14. package/esm2020/lib/interceptors/csrf-prevention.interceptor.mjs +4 -4
  15. package/esm2020/lib/interceptors/eu-login-session-timeout-handling.interceptor.mjs +4 -5
  16. package/esm2020/lib/interceptors/openid/openid-connect.interceptor.mjs +4 -4
  17. package/esm2020/lib/interceptors/openid/openid-connect.service.mjs +4 -4
  18. package/esm2020/lib/interceptors/ux-request-error-model.interceptor.mjs +4 -4
  19. package/esm2020/lib/services/app/eui-pre-init-app.mjs +3 -1
  20. package/esm2020/lib/services/app/factories/log.mjs +3 -1
  21. package/esm2020/lib/services/errors/global-error-handler.mjs +4 -5
  22. package/esm2020/lib/services/errors/http-error-handler.interceptor.mjs +5 -6
  23. package/esm2020/lib/services/i18n/i18n.loader.mjs +14 -6
  24. package/esm2020/lib/services/i18n/i18n.service.mjs +10 -13
  25. package/esm2020/lib/services/i18n/i18n.service.mock.mjs +4 -4
  26. package/esm2020/lib/services/locale/locale.service.mjs +22 -15
  27. package/esm2020/lib/services/log/log.module.mjs +5 -5
  28. package/esm2020/lib/services/log/log.service.mjs +5 -5
  29. package/esm2020/lib/services/permission/permission.service.mjs +4 -6
  30. package/esm2020/lib/services/queue/api-queue.service.mjs +4 -9
  31. package/esm2020/lib/services/queue/api-queue.service.mock.mjs +1 -5
  32. package/esm2020/lib/services/storage/async-storage.service.mjs +1 -1
  33. package/esm2020/lib/services/storage/async-storage.service.mock.mjs +1 -5
  34. package/esm2020/lib/services/storage/local-forage.service.mjs +6 -5
  35. package/esm2020/lib/services/storage/local-storage.service.mjs +4 -5
  36. package/esm2020/lib/services/storage/session-storage.service.mjs +4 -5
  37. package/esm2020/lib/services/storage/storage.service.mjs +1 -1
  38. package/esm2020/lib/services/store/effects/app.effects.mjs +10 -16
  39. package/esm2020/lib/services/store/reducers/meta.reducers.mjs +9 -1
  40. package/esm2020/lib/services/store/store.service.mjs +5 -7
  41. package/esm2020/lib/services/store/store.service.mock.mjs +4 -4
  42. package/esm2020/lib/services/user/user.service.mjs +4 -5
  43. package/esm2020/lib/services/user/user.service.mock.mjs +4 -4
  44. package/esm2020/lib/services/ux-app-shell.service.mjs +36 -16
  45. package/esm2020/lib/services/ux-dynamic-component/ux-dynamic-component.service.mjs +5 -5
  46. package/esm2020/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.mjs +4 -6
  47. package/esm2020/lib/services/ux-error-feedback/ux-error-feedback.service.mjs +4 -6
  48. package/esm2020/lib/services/ux-timezone.service.mjs +4 -4
  49. package/fesm2015/eui-core.mjs +178 -136
  50. package/fesm2015/eui-core.mjs.map +1 -1
  51. package/fesm2020/eui-core.mjs +224 -178
  52. package/fesm2020/eui-core.mjs.map +1 -1
  53. package/lib/helpers/dom-helpers.d.ts.map +1 -1
  54. package/lib/helpers/format-helpers.d.ts.map +1 -1
  55. package/lib/interceptors/eu-login-session-timeout-handling.interceptor.d.ts.map +1 -1
  56. package/lib/services/app/eui-pre-init-app.d.ts.map +1 -1
  57. package/lib/services/app/factories/log.d.ts.map +1 -1
  58. package/lib/services/i18n/i18n.loader.d.ts +5 -0
  59. package/lib/services/i18n/i18n.loader.d.ts.map +1 -1
  60. package/lib/services/i18n/i18n.service.d.ts.map +1 -1
  61. package/lib/services/locale/locale.service.d.ts +1 -0
  62. package/lib/services/locale/locale.service.d.ts.map +1 -1
  63. package/lib/services/queue/api-queue.service.d.ts.map +1 -1
  64. package/lib/services/queue/api-queue.service.mock.d.ts.map +1 -1
  65. package/lib/services/storage/async-storage.service.d.ts.map +1 -1
  66. package/lib/services/storage/async-storage.service.mock.d.ts.map +1 -1
  67. package/lib/services/storage/local-forage.service.d.ts.map +1 -1
  68. package/lib/services/store/effects/app.effects.d.ts.map +1 -1
  69. package/lib/services/store/reducers/meta.reducers.d.ts.map +1 -1
  70. package/lib/services/ux-app-shell.service.d.ts +7 -1
  71. package/lib/services/ux-app-shell.service.d.ts.map +1 -1
  72. package/package.json +11 -1
  73. package/esm2020/lib/services/ux-root-injector.guard.mjs +0 -11
  74. package/lib/services/ux-root-injector.guard.d.ts +0 -5
  75. package/lib/services/ux-root-injector.guard.d.ts.map +0 -1
@@ -1,12 +1,9 @@
1
1
  import { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core';
2
- import { HttpClient } from '@angular/common/http';
3
2
  import { isPlatformBrowser } from '@angular/common';
4
3
  import { BehaviorSubject, defer } from 'rxjs';
5
4
  import { UxEuLanguages, getActiveLang } from '@eui/base';
6
5
  import { GLOBAL_CONFIG_TOKEN } from './config/tokens';
7
- import { I18nService } from './i18n';
8
- import { Router, NavigationEnd } from '@angular/router';
9
- import { StoreService } from './store/store.service';
6
+ import { NavigationEnd } from '@angular/router';
10
7
  import { distinctUntilChanged, map, filter } from 'rxjs/operators';
11
8
  import isEqual from 'lodash-es/isEqual';
12
9
  import get from 'lodash-es/get';
@@ -27,13 +24,16 @@ const initialState = {
27
24
  isSidebarActive: false,
28
25
  isSidebarInnerActive: false,
29
26
  isSidebarStateCloseWithIcons: false,
27
+ isSidebarExpandOnHover: true,
30
28
  hasSidebar: false,
31
29
  hasHeader: false,
32
30
  hasHeaderLogo: false,
33
31
  hasHeaderEnvironment: false,
32
+ hasToolbar: false,
33
+ hasToolbarMenu: false,
34
34
  environmentValue: '',
35
35
  isSidebarHidden: false,
36
- hasToolbar: false,
36
+ hasTopMessage: false,
37
37
  windowWidth: 0,
38
38
  windowHeight: 0,
39
39
  mainContentHeight: 0,
@@ -59,7 +59,7 @@ const initialState = {
59
59
  hasModalActive: false,
60
60
  isDimmerActive: false,
61
61
  };
62
- // export class UxAppShellService extends UxRootInjectorGuard {
62
+ // TODO: this service needs to be transferred in the respective component
63
63
  export class UxAppShellService {
64
64
  constructor(config, http, platformId, router, storeService, i18nService) {
65
65
  this.config = config;
@@ -76,8 +76,6 @@ export class UxAppShellService {
76
76
  this.activeModals = [];
77
77
  this.openModalId = new BehaviorSubject('');
78
78
  this.cssVars = [];
79
- // super(UxAppShellService);
80
- console.log('UxAppShellService initialized');
81
79
  let stateWithConfig = initialState;
82
80
  const languages = config?.i18n?.i18nService?.languages || initialState.languages;
83
81
  const defaultLanguage = config?.i18n?.i18nService?.defaultLanguage || initialState.activeLanguage;
@@ -135,10 +133,12 @@ export class UxAppShellService {
135
133
  });
136
134
  }
137
135
  set isSidebarHover(isHover) {
138
- this.setState({
139
- ...this.state,
140
- isSidebarHover: isHover,
141
- });
136
+ if (this.state.isSidebarExpandOnHover) {
137
+ this.setState({
138
+ ...this.state,
139
+ isSidebarHover: isHover,
140
+ });
141
+ }
142
142
  }
143
143
  get isSidebarHover() {
144
144
  return this.state.isSidebarHover;
@@ -294,6 +294,13 @@ export class UxAppShellService {
294
294
  });
295
295
  this.activateHeaderCssVars();
296
296
  }
297
+ activateTopMessage(height) {
298
+ this.setState({
299
+ ...this.state,
300
+ hasTopMessage: true,
301
+ });
302
+ this.activateTopMessageCssVars(height);
303
+ }
297
304
  activateToolbar() {
298
305
  this.setState({
299
306
  ...this.state,
@@ -301,11 +308,20 @@ export class UxAppShellService {
301
308
  });
302
309
  this.activateToolbarCssVars();
303
310
  }
311
+ activateToolbarMenu() {
312
+ this.setState({
313
+ ...this.state,
314
+ hasToolbarMenu: true,
315
+ });
316
+ }
304
317
  fetchCssVars() {
305
318
  const cssVarNames = [
306
319
  '--eui-app-header-height-default',
307
320
  '--eui-app-header-height-active',
308
321
  '--eui-app-header-height-shrink',
322
+ '--eui-app-top-message-height-default',
323
+ '--eui-app-top-message-height-active',
324
+ '--eui-app-top-message-height-shrink',
309
325
  '--eui-app-toolbar-height-default',
310
326
  '--eui-app-toolbar-height-active',
311
327
  '--eui-app-sidebar-width-default',
@@ -323,6 +339,7 @@ export class UxAppShellService {
323
339
  }
324
340
  initCssVars() {
325
341
  this.setCssVar('--eui-app-header-height-default', '--eui-app-header-height');
342
+ this.setCssVar('--eui-app-top-message-height-default', '--eui-app-top-message-height');
326
343
  this.setCssVar('--eui-app-toolbar-height-default', '--eui-app-toolbar-height');
327
344
  this.setCssVar('--eui-app-sidebar-width-default', '--eui-app-sidebar-width');
328
345
  this.setCssVar('--eui-app-sidebar-width-close-default', '--eui-app-sidebar-width-close');
@@ -332,6 +349,9 @@ export class UxAppShellService {
332
349
  activateHeaderCssVars() {
333
350
  this.setCssVar('--eui-app-header-height-active', '--eui-app-header-height');
334
351
  }
352
+ activateTopMessageCssVars(height) {
353
+ this._setCssVarValue('--eui-app-top-message-height', `${height}px`);
354
+ }
335
355
  activateToolbarCssVars() {
336
356
  this.setCssVar('--eui-app-toolbar-height-active', '--eui-app-toolbar-height');
337
357
  }
@@ -614,9 +634,9 @@ export class UxAppShellService {
614
634
  });
615
635
  }
616
636
  }
617
- /** @nocollapse */ /** @nocollapse */ UxAppShellService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.0", ngImport: i0, type: UxAppShellService, deps: [{ token: GLOBAL_CONFIG_TOKEN, optional: true }, { token: i1.HttpClient }, { token: PLATFORM_ID }, { token: i2.Router }, { token: i3.StoreService }, { token: i4.I18nService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
618
- /** @nocollapse */ /** @nocollapse */ UxAppShellService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0-rc.0", ngImport: i0, type: UxAppShellService, providedIn: 'root' });
619
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.0", ngImport: i0, type: UxAppShellService, decorators: [{
637
+ /** @nocollapse */ /** @nocollapse */ UxAppShellService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UxAppShellService, deps: [{ token: GLOBAL_CONFIG_TOKEN, optional: true }, { token: i1.HttpClient }, { token: PLATFORM_ID }, { token: i2.Router }, { token: i3.StoreService }, { token: i4.I18nService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
638
+ /** @nocollapse */ /** @nocollapse */ UxAppShellService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UxAppShellService, providedIn: 'root' });
639
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UxAppShellService, decorators: [{
620
640
  type: Injectable,
621
641
  args: [{
622
642
  providedIn: 'root',
@@ -632,4 +652,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.0", ng
632
652
  }] }, { type: i2.Router }, { type: i3.StoreService }, { type: i4.I18nService, decorators: [{
633
653
  type: Optional
634
654
  }] }]; } });
635
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXgtYXBwLXNoZWxsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3V4LWFwcC1zaGVsbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQWlDLGFBQWEsRUFBeUIsTUFBTSxXQUFXLENBQUM7QUFDL0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sR0FBRyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBNERoQyxNQUFNLFlBQVksR0FBWTtJQUMxQixPQUFPLEVBQUUsRUFBRTtJQUNYLFlBQVksRUFBRSxFQUFFO0lBQ2hCLFdBQVcsRUFBRSxFQUFFO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixZQUFZLEVBQUUsSUFBSTtJQUNsQixxQkFBcUIsRUFBRSxJQUFJO0lBQzNCLGFBQWEsRUFBRSxLQUFLO0lB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IFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWZlciwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVXhFdUxhbmd1YWdlcywgR2xvYmFsQ29uZmlnLCBVeExpbmssIFV4TW9kYWwsIGdldEFjdGl2ZUxhbmcsIFV4TWVzc2FnZSwgVXhMYW5ndWFnZSB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBHTE9CQUxfQ09ORklHX1RPS0VOIH0gZnJvbSAnLi9jb25maWcvdG9rZW5zJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi9pMThuJztcbmltcG9ydCB7IFJvdXRlciwgTmF2aWdhdGlvbkVuZCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JlL3N0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoLWVzL2lzRXF1YWwnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gtZXMvZ2V0JztcbmltcG9ydCB7IFV4Um9vdEluamVjdG9yR3VhcmQgfSBmcm9tICcuL3V4LXJvb3QtaW5qZWN0b3IuZ3VhcmQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVJU3RhdGUge1xuICAgIC8vIGFwcCBzdGF0ZVxuICAgIGFwcE5hbWU/OiBzdHJpbmc7XG4gICAgYXBwU2hvcnROYW1lPzogc3RyaW5nO1xuICAgIGFwcFN1YlRpdGxlPzogc3RyaW5nO1xuXG4gICAgLy8gdXNlciBzdGF0ZVxuICAgIHVzZXJJbmZvcz86IHN0cmluZztcbiAgICB1c2VyU3ViSW5mb3M/OiBzdHJpbmc7XG4gICAgaW1wZXJzb25hdGVkVXNlckluZm9zPzogc3RyaW5nO1xuXG4gICAgLy8gU2lkZWJhciBzdGF0ZVxuICAgIGlzU2lkZWJhck9wZW4/OiBib29sZWFuO1xuICAgIGlzU2lkZWJhckhvdmVyPzogYm9vbGVhbjtcbiAgICBpc1NpZGViYXJBY3RpdmU/OiBib29sZWFuO1xuICAgIGlzU2lkZWJhcklubmVyQWN0aXZlPzogYm9vbGVhbjtcbiAgICBpc1NpZGViYXJTdGF0ZUNsb3NlV2l0aEljb25zPzogYm9vbGVhbjtcbiAgICBoYXNTaWRlYmFyPzogYm9vbGVhbjtcbiAgICBoYXNIZWFkZXI/OiBib29sZWFuO1xuICAgIGhhc0hlYWRlckxvZ28/OiBib29sZWFuO1xuICAgIGhhc0hlYWRlckVudmlyb25tZW50PzogYm9vbGVhbjtcbiAgICBlbnZpcm9ubWVudFZhbHVlPzogc3RyaW5nO1xuICAgIGlzU2lkZWJhckhpZGRlbj86IGJvb2xlYW47XG4gICAgaGFzVG9vbGJhcj86IGJvb2xlYW47XG5cbiAgICAvLyB3aW5kb3cgc3RhdGVcbiAgICB3aW5kb3dXaWR0aD86IG51bWJlcjtcbiAgICB3aW5kb3dIZWlnaHQ/OiBudW1iZXI7XG4gICAgbWFpbkNvbnRlbnRIZWlnaHQ/OiBudW1iZXI7XG4gICAgcGFnZUhlYWRlckhlaWdodD86IG51bWJlcjtcbiAgICBicmVha3BvaW50Pzogc3RyaW5nO1xuICAgIHdyYXBwZXJDbGFzc2VzPzogc3RyaW5nO1xuICAgIGJyZWFrcG9pbnRzPzogYW55O1xuXG4gICAgLy8gbmF2aWdhdGlvbiBzdGF0ZVxuICAgIG1lbnVMaW5rcz86IFV4TGlua1tdO1xuICAgIHNpZGViYXJMaW5rcz86IFV4TGlua1tdO1xuICAgIGNvbWJpbmVkTGlua3M/OiBVeExpbmtbXTtcblxuICAgIC8vIG90aGVyIHN0YXRlc1xuICAgIGlzQmxvY2tEb2N1bWVudEFjdGl2ZT86IGJvb2xlYW47XG5cbiAgICAvLyBkZXZpY2UgaW5mb1xuICAgIGRldmljZUluZm86IGFueTtcblxuICAgIC8vIGxhbmd1YWdlIGluZm9zXG4gICAgYWN0aXZlTGFuZ3VhZ2U6IHN0cmluZztcbiAgICBsYW5ndWFnZXM6IChzdHJpbmcgfCBVeExhbmd1YWdlKVtdO1xuXG4gICAgLy8gYXBwIG1ldGFkYXRhXG4gICAgYXBwTWV0YWRhdGE6IGFueTtcblxuICAgIC8vIHZhcmlvdXMgZHluYW1pYyBzdGF0ZVxuICAgIGhhc01vZGFsQWN0aXZlPzogYm9vbGVhbjtcbiAgICBpc0RpbW1lckFjdGl2ZSA/OiBib29sZWFuOyAgICAgLy8gVXNhZ2U6IG1hcCB0byBldWkgYmFzZSBkaXJlY3RpdmUgaW5wdXQgY29lcmNlIGV1aUhpZ2hsaWdodGVkXG59XG5cbmNvbnN0IGluaXRpYWxTdGF0ZTogVUlTdGF0ZSA9IHtcbiAgICBhcHBOYW1lOiAnJyxcbiAgICBhcHBTaG9ydE5hbWU6ICcnLFxuICAgIGFwcFN1YlRpdGxlOiAnJyxcbiAgICB1c2VySW5mb3M6IG51bGwsXG4gICAgdXNlclN1YkluZm9zOiBudWxsLFxuICAgIGltcGVyc29uYXRlZFVzZXJJbmZvczogbnVsbCxcbiAgICBpc1NpZGViYXJPcGVuOiBmYWxzZSxcbiAgICBpc1NpZGViYXJIb3ZlcjogZmFsc2UsXG4gICAgaXNTaWRlYmFyQWN0aXZlOiBmYWxzZSxcbiAgICBpc1NpZGViYXJJbm5lckFjdGl2ZTogZmFsc2UsXG4gICAgaXNTaWRlYmFyU3RhdGVDbG9zZVdpdGhJY29uczogZmFsc2UsXG4gICAgaGFzU2lkZWJhcjogZmFsc2UsXG4gICAgaGFzSGVhZGVyOiBmYWxzZSxcbiAgICBoYXNIZWFkZXJMb2dvOiBmYWxzZSxcbiAgICBoYXNIZWFkZXJFbnZpcm9ubWVudDogZmFsc2UsXG4gICAgZW52aXJvbm1lbnRWYWx1ZTogJycsXG4gICAgaXNTaWRlYmFySGlkZGVuOiBmYWxzZSxcbiAgICBoYXNUb29sYmFyOiBmYWxzZSxcbiAgICB3aW5kb3dXaWR0aDogMCxcbiAgICB3aW5kb3dIZWlnaHQ6IDAsXG4gICAgbWFpbkNvbnRlbnRIZWlnaHQ6IDAsXG4gICAgcGFnZUhlYWRlckhlaWdodDogMCxcbiAgICB3cmFwcGVyQ2xhc3NlczogJycsXG4gICAgYnJlYWtwb2ludDogJycsXG4gICAgYnJlYWtwb2ludHM6IHtcbiAgICAgICAgaXNNb2JpbGU6IGZhbHNlLFxuICAgICAgICBpc1RhYmxldDogZmFsc2UsXG4gICAgICAgIGlzTHREZXNrdG9wOiBmYWxzZSxcbiAgICAgICAgaXNEZXNrdG9wOiBmYWxzZSxcbiAgICAgICAgaXNYTDogZmFsc2UsXG4gICAgICAgIGlzWFhMOiBmYWxzZSxcbiAgICB9LFxuICAgIG1lbnVMaW5rczogW10sXG4gICAgc2lkZWJhckxpbmtzOiBbXSxcbiAgICBjb21iaW5lZExpbmtzOiBbXSxcbiAgICBpc0Jsb2NrRG9jdW1lbnRBY3RpdmU6IGZhbHNlLFxuICAgIGRldmljZUluZm86IG51bGwsXG4gICAgYWN0aXZlTGFuZ3VhZ2U6ICdlbicsXG4gICAgbGFuZ3VhZ2VzOiBVeEV1TGFuZ3VhZ2VzLmdldExhbmd1YWdlcygpLFxuICAgIGFwcE1ldGFkYXRhOiBudWxsLFxuICAgIGhhc01vZGFsQWN0aXZlOiBmYWxzZSxcbiAgICBpc0RpbW1lckFjdGl2ZSA6IGZhbHNlLFxufTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG4vLyBleHBvcnQgY2xhc3MgVXhBcHBTaGVsbFNlcnZpY2UgZXh0ZW5kcyBVeFJvb3RJbmplY3Rvckd1YXJkIHtcbmV4cG9ydCBjbGFzcyBVeEFwcFNoZWxsU2VydmljZSB7XG4gICAgZ3Jvd2xNZXNzYWdlcyA9IFtdO1xuICAgIGlzR3Jvd2xTdGlja3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBncm93bExpZmU6IG51bWJlciA9IDMwMDA7XG4gICAgZ3Jvd2xQb3NpdGlvbjogc3RyaW5nID0gJ2JvdHRvbS1yaWdodCc7XG4gICAgZ3Jvd2xDYWxsYmFjazogYW55ID0gbnVsbDtcbiAgICBhY3RpdmVNb2RhbHM6IFV4TW9kYWxbXSA9IFtdO1xuICAgIG9wZW5Nb2RhbElkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICAgIG5hdmlnYXRpb25TdGFydEN1c3RvbUhhbmRsZXI6ICgpID0+IHZvaWQ7XG4gICAgbmF2aWdhdGlvbkVuZEN1c3RvbUhhbmRsZXI6ICgpID0+IHZvaWQ7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgZ2V0IHN0YXRlJCgpOiBPYnNlcnZhYmxlPFVJU3RhdGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXRlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gZXhwb3NlZCBvYnNlcnZhYmxlc1xuXG4gICAgZ2V0IGJyZWFrcG9pbnQkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9icmVha3BvaW50JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBnZXQgYnJlYWtwb2ludHMkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9icmVha3BvaW50cyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIHN0YXRlIG9wZXJhdGlvbnNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tXG4gICAgZ2V0IHN0YXRlKCk6IFVJU3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RhdGUkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzU2lkZWJhck9wZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLmlzU2lkZWJhck9wZW47XG4gICAgfVxuXG4gICAgLy8gRWRpdCBtb2RlXG4gICAgZ2V0IGlzRGltbWVyQWN0aXZlICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUuaXNEaW1tZXJBY3RpdmUgO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBwdWJsaWMgc2V0dGVycyBhbmQgZnVuY3Rpb25zXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIHNldCBpc1NpZGViYXJPcGVuKGlzT3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIC4uLnRoaXMuc3RhdGUsXG4gICAgICAgICAgICBpc1NpZGViYXJPcGVuOiBpc09wZW4sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldCBpc1NpZGViYXJIb3Zlcihpc0hvdmVyOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgICAgICAgIGlzU2lkZWJhckhvdmVyOiBpc0hvdmVyLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgaXNTaWRlYmFySG92ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLmlzU2lkZWJhckhvdmVyO1xuICAgIH1cblxuICAgIHNldCBpc1NpZGViYXJBY3RpdmUoaXNBY3RpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAuLi50aGlzLnN0YXRlLFxuICAgICAgICAgICAgaXNTaWRlYmFyQWN0aXZlOiBpc0FjdGl2ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0IGlzU2lkZWJhcklubmVyQWN0aXZlKGlzT3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIC4uLnRoaXMuc3RhdGUsXG4gICAgICAgICAgICBpc1NpZGViYXJJbm5lckFjdGl2ZTogaXNPcGVuLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXQgc2lkZWJhckxpbmtzKGxpbmtzOiBVeExpbmtbXSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIC4uLnRoaXMuc3RhdGUsXG4gICAgICAgICAgICBzaWRlYmFyTGlua3M6IGxpbmtzLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXQgbWVudUxpbmtzKGxpbmtzOiBVeExpbmtbXSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIC4uLnRoaXMuc3RhdGUsXG4gICAgICAgICAgICBtZW51TGlua3M6IGxpbmtzLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXQgaXNCbG9ja0RvY3VtZW50QWN0aXZlKGlzQWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgICAgICAgIGlzQmxvY2tEb2N1bWVudEFjdGl2ZTogaXNBY3RpdmUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEVkaXQgbW9kZVxuICAgIHNldCBpc0RpbW1lckFjdGl2ZSAoaXNBY3RpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAuLi50aGlzLnN0YXRlLFxuICAgICAgICAgICAgaXNEaW1tZXJBY3RpdmUgOiBpc0FjdGl2ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjc3NWYXJzID0gW107XG4gICAgcHJpdmF0ZSBfc3RhdGUkOiBCZWhhdmlvclN1YmplY3Q8VUlTdGF0ZT47XG4gICAgcHJpdmF0ZSBfYnJlYWtwb2ludCQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+O1xuICAgIHByaXZhdGUgX2JyZWFrcG9pbnRzJDogQmVoYXZpb3JTdWJqZWN0PGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChHTE9CQUxfQ09ORklHX1RPS0VOKSBwcm90ZWN0ZWQgY29uZmlnOiBHbG9iYWxDb25maWcsXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgc3RvcmVTZXJ2aWNlOiBTdG9yZVNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlLFxuICAgICkge1xuICAgICAgICAvLyBzdXBlcihVeEFwcFNoZWxsU2VydmljZSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdVeEFwcFNoZWxsU2VydmljZSBpbml0aWFsaXplZCcpO1xuXG4gICAgICAgIGxldCBzdGF0ZVdpdGhDb25maWcgPSBpbml0aWFsU3RhdGU7XG4gICAgICAgIGNvbnN0IGxhbmd1YWdlcyA9IGNvbmZpZz8uaTE4bj8uaTE4blNlcnZpY2U/Lmxhbmd1YWdlcyB8fCBpbml0aWFsU3RhdGUubGFuZ3VhZ2VzO1xuICAgICAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2UgPSBjb25maWc/LmkxOG4/LmkxOG5TZXJ2aWNlPy5kZWZhdWx0TGFuZ3VhZ2UgfHwgaW5pdGlhbFN0YXRlLmFjdGl2ZUxhbmd1YWdlO1xuICAgICAgICBzdGF0ZVdpdGhDb25maWcgPSB7XG4gICAgICAgICAgICAuLi5zdGF0ZVdpdGhDb25maWcsIC4uLntcbiAgICAgICAgICAgICAgICBsYW5ndWFnZXM6IGxhbmd1YWdlcyxcbiAgICAgICAgICAgICAgICBhY3RpdmVMYW5ndWFnZTogZGVmYXVsdExhbmd1YWdlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChzdGF0ZVdpdGhDb25maWcpO1xuICAgICAgICB0aGlzLl9icmVha3BvaW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICAgICAgICB0aGlzLl9icmVha3BvaW50cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcbiAgICAgICAgdGhpcy5iaW5kQWN0aXZlTGFuZ3VhZ2VUb0FwcFNoZWxsU3RhdGUoKTtcblxuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgcm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0U3RhdGUobmV4dFN0YXRlOiBVSVN0YXRlLCB1cGRhdGVJMTggPSB0cnVlKSB7XG4gICAgICAgIGxldCBicmVha3BvaW50LCBicmVha3BvaW50cywgd3JhcHBlckNsYXNzZXM7XG4gICAgICAgIGxldCBjb21iaW5lZExpbmtzO1xuXG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZTtcblxuICAgICAgICAvLyBjaGVjayBpZiB3aW5kb3cgd2lkdGggaGFzIGJlZW4gdXBkYXRlZCBmcm9tIHByZXZpb3VzIHN0YXRlXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLndpbmRvd1dpZHRoICE9PSBuZXh0U3RhdGUud2luZG93V2lkdGgpIHtcbiAgICAgICAgICAgIGJyZWFrcG9pbnQgPSB0aGlzLmdldEJyZWFrcG9pbnQobmV4dFN0YXRlLndpbmRvd1dpZHRoKTtcbiAgICAgICAgICAgIGJyZWFrcG9pbnRzID0gdGhpcy5nZXRCcmVha3BvaW50cyhicmVha3BvaW50KTtcblxuICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludCQubmV4dChicmVha3BvaW50KTtcbiAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRzJC5uZXh0KGJyZWFrcG9pbnRzKTtcblxuICAgICAgICAgICAgLy8gaWYgbm90IHByb3BhZ2F0ZSB0aGUgb2xkIG9uZXMgd2l0aG91dCBkb2luZyBhbnkgY2FsY3VsYXRpb25zXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBicmVha3BvaW50ID0gc3RhdGUuYnJlYWtwb2ludDtcbiAgICAgICAgICAgIGJyZWFrcG9pbnRzID0gc3RhdGUuYnJlYWtwb2ludHM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBmaW5hbGx5IGdldCB0aGUgd3JhcHBlciBjbGFzc2VzIHdoZW4gYm90aCB0aGUgc3RhdGUgYW5kIGJyZWFrcG9pbnQgYXJlIGtub3duXG4gICAgICAgIHdyYXBwZXJDbGFzc2VzID0gdGhpcy5nZXRXcmFwcGVyQ2xhc3NlcyhuZXh0U3RhdGUsIGJyZWFrcG9pbnQpO1xuXG4gICAgICAgIC8vIGNoZWNrIGlmIHRoZSBtZW51TGlua3Mgb3Igc2lkZWJhckxpbmtzIGhhdmUgY2hhbmdlZCBmcm9tIHByZXZpb3VzIHN0YXRlXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLm1lbnVMaW5rcyAhPT0gbmV4dFN0YXRlLm1lbnVMaW5rcyB8fCB0aGlzLnN0YXRlLnNpZGViYXJMaW5rcyAhPT0gbmV4dFN0YXRlLnNpZGViYXJMaW5rcykge1xuICAgICAgICAgICAgY29tYmluZWRMaW5rcyA9IFsuLi5uZXh0U3RhdGUubWVudUxpbmtzLCAuLi5uZXh0U3RhdGUuc2lkZWJhckxpbmtzXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbWJpbmVkTGlua3MgPSB0aGlzLnN0YXRlLmNvbWJpbmVkTGlua3M7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGF0ZUJlZm9yZVVwZGF0ZSA9IHsgLi4udGhpcy5zdGF0ZSB9IDtcblxuICAgICAgICAvLyB3ZSBwdXQgaXQgYWxsIHRvZ2V0aGVyIHdpdGggdGhlIGNhbGN1bGF0ZWQgcHJvcGVydGllc1xuICAgICAgICB0aGlzLl9zdGF0ZSQubmV4dCh7XG4gICAgICAgICAgICAuLi5uZXh0U3RhdGUsXG4gICAgICAgICAgICB3cmFwcGVyQ2xhc3NlcyxcbiAgICAgICAgICAgIGJyZWFrcG9pbnQsXG4gICAgICAgICAgICBicmVha3BvaW50cyxcbiAgICAgICAgICAgIGNvbWJpbmVkTGlua3MsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHVwZGF0ZSB0aGUgU3RvcmUgTGFuZ3VhZ2VcbiAgICAgICAgaWYgKHVwZGF0ZUkxOCAmJiBuZXh0U3RhdGUuYWN0aXZlTGFuZ3VhZ2UgIT09IHN0YXRlQmVmb3JlVXBkYXRlLmFjdGl2ZUxhbmd1YWdlKSB7XG4gICAgICAgICAgICB0aGlzLmkxOG5TZXJ2aWNlLnVwZGF0ZVN0YXRlKHsgYWN0aXZlTGFuZzogbmV4dFN0YXRlLmFjdGl2ZUxhbmd1YWdlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYSBzbGljZSBmcm9tIHRoZSBzdGF0ZSB3aGV0aGVyIHRoYXQgY2hhbmdlc1xuICAgICAqIEBwYXJhbSBrZXkgY2FuIGJlICdrZXknIG9yICdrZXkuc3ViLnN1YidcbiAgICAgKi9cbiAgICBnZXRTdGF0ZShrZXk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gZGVmZXIoKCkgPT4ge1xuICAgICAgICAgICAgLy8gY2hlY2sgaWYga2V5IGV4aXN0c1xuICAgICAgICAgICAgcmV0dXJuIGtleSA/IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChzdGF0ZSkgPT4gZ2V0KHN0YXRlLCBrZXkpKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHN0YXRlKSA9PiBzdGF0ZSksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHgsIHkpID0+IGlzRXF1YWwoeCwgeSkpXG4gICAgICAgICAgICApIDogdGhpcy5zdGF0ZSQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaWRlYmFyVG9nZ2xlKCkge1xuICAgICAgICB0aGlzLmlzU2lkZWJhck9wZW4gPSAhdGhpcy5zdGF0ZS5pc1NpZGViYXJPcGVuO1xuICAgIH1cblxuICAgIC8vIEVkaXQgbW9kZVxuICAgIHB1YmxpYyBkaW1tZXJBY3RpdmVUb2dnbGUoKSB7XG4gICAgICAgIGNvbnN0IGlzQWN0aXZlID0gdGhpcy5pc0RpbW1lckFjdGl2ZTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAuLi50aGlzLnN0YXRlLFxuICAgICAgICAgICAgaXNEaW1tZXJBY3RpdmUgOiAhaXNBY3RpdmUsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFjdGl2YXRlRWRpdE1vZGVDc3NWYXJzKCFpc0FjdGl2ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERpbW1lckFjdGl2ZVN0YXRlKGFjdGl2ZVN0YXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgICAgICAgIGlzRGltbWVyQWN0aXZlIDogYWN0aXZlU3RhdGUsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFjdGl2YXRlRWRpdE1vZGVDc3NWYXJzKGFjdGl2ZVN0YXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWN0aXZhdGVFZGl0TW9kZUNzc1ZhcnMoaXNBY3RpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKGlzQWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRDc3NWYXJWYWx1ZSgnLS1ldWktZG9jcGFnZS1uYXZpZ2F0aW9uLXotaW5kZXgnLCAnaW5oZXJpdCcpOyAgICAvLyBSZXNldCBkb2MtcGFnZS1uYXZpZ2F0aW9uLWNvbHVtbiB6LWluZGV4XG4gICAgICAgICAgICB0aGlzLl9zZXRDc3NWYXJWYWx1ZSgnLS1ldWktei1pbmRleC1zaWRlYmFyJywgJ2luaGVyaXQnKTsgICAgICAgICAgICAgICAvLyBSZXNldCBldWktYXBwLXNpZGViYXIgei1pbmRleFxuICAgICAgICAgICAgdGhpcy5fc2V0Q3NzVmFyVmFsdWUoJy0tZXVpLXotaW5kZXgtcm9vdCcsICdpbmhlcml0Jyk7ICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgZXVpLWFwcC1tYWluLWNvbnRlbnQgei1pbmRleFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2V0Q3NzVmFyVmFsdWUoJy0tZXVpLWRvY3BhZ2UtbmF2aWdhdGlvbi16LWluZGV4JywgJzInKTsgICAgICAgICAgLy8gUmVzdG9yZSBkb2MtcGFnZS1uYXZpZ2F0aW9uLWNvbHVtbiB6LWluZGV4XG4gICAgICAgICAgICB0aGlzLl9zZXRDc3NWYXJWYWx1ZSgnLS1ldWktei1pbmRleC1zaWRlYmFyJywgJzEwNDQnKTsgICAgICAgICAgICAgICAgICAvLyBSZXN0b3JlIGV1aS1hcHAtc2lkZWJhciB6LWluZGV4XG4gICAgICAgICAgICB0aGlzLl9zZXRDc3NWYXJWYWx1ZSgnLS1ldWktei1pbmRleC1yb290JywgJzEnKTsgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXN0b3JlIGV1aS1hcHAtbWFpbi1jb250ZW50IHotaW5kZXhcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tXG4gICAgLy8gcHVibGljIG1ldGhvZHNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLVxuICAgIHB1YmxpYyBmZXRjaEFwcE1ldGFkYXRhKG1ldGFkYXRhRmlsZVBhdGggPSAnYXNzZXRzL2FwcC1tZXRhZGF0YS5qc29uJykge1xuICAgICAgICB0aGlzLmdldEpzb24obWV0YWRhdGFGaWxlUGF0aClcbiAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIGFwcE1ldGFkYXRhOiBkYXRhLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFjdGl2YXRlU2lkZWJhcigpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAuLi50aGlzLnN0YXRlLFxuICAgICAgICAgICAgaGFzU2lkZWJhcjogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlLmlzU2lkZWJhckhpZGRlbikge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZVNpZGViYXJDc3NWYXJzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYWN0aXZhdGVTaWRlYmFySGVhZGVyKCkge1xuICAgICAgICB0aGlzLmFjdGl2YXRlU2lkZWJhckhlYWRlckNzc1ZhcnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWN0aXZhdGVTaWRlYmFyRm9vdGVyKCkge1xuICAgICAgICB0aGlzLmFjdGl2YXRlU2lkZWJhckZvb3RlckNzc1ZhcnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWN0aXZhdGVIZWFkZXIoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgICAgICAgIGhhc0hlYWRlcjogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVIZWFkZXJDc3NWYXJzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFjdGl2YXRlVG9vbGJhcigpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAuLi50aGlzLnN0YXRlLFxuICAgICAgICAgICAgaGFzVG9vbGJhcjogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVUb29sYmFyQ3NzVmFycygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmZXRjaENzc1ZhcnMoKSB7XG4gICAgICAgIGNvbnN0IGNzc1Zhck5hbWVzID0gW1xuICAgICAgICAgICAgJy0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LWRlZmF1bHQnLFxuICAgICAgICAgICAgJy0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LWFjdGl2ZScsXG4gICAgICAgICAgICAnLS1ldWktYXBwLWhlYWRlci1oZWlnaHQtc2hyaW5rJyxcbiAgICAgICAgICAgICctLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQtZGVmYXVsdCcsXG4gICAgICAgICAgICAnLS1ldWktYXBwLXRvb2xiYXItaGVpZ2h0LWFjdGl2ZScsXG4gICAgICAgICAgICAnLS1ldWktYXBwLXNpZGViYXItd2lkdGgtZGVmYXVsdCcsXG4gICAgICAgICAgICAnLS1ldWktYXBwLXNpZGViYXItd2lkdGgtYWN0aXZlJyxcbiAgICAgICAgICAgICctLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZS1kZWZhdWx0JyxcbiAgICAgICAgICAgICctLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZS1hY3RpdmUnLFxuICAgICAgICAgICAgJy0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQtZGVmYXVsdCcsXG4gICAgICAgICAgICAnLS1ldWktYXBwLXNpZGViYXItaGVhZGVyLWhlaWdodC1hY3RpdmUnLFxuICAgICAgICAgICAgJy0tZXVpLWFwcC1zaWRlYmFyLWZvb3Rlci1oZWlnaHQtZGVmYXVsdCcsXG4gICAgICAgICAgICAnLS1ldWktYXBwLXNpZGViYXItZm9vdGVyLWhlaWdodC1hY3RpdmUnLFxuICAgICAgICBdO1xuXG4gICAgICAgIHRoaXMuY3NzVmFycyA9IGNzc1Zhck5hbWVzLm1hcCgodikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsga2V5OiB2LCB2YWx1ZTogdGhpcy5nZXRDc3NWYXJWYWx1ZSh2KSB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdENzc1ZhcnMoKSB7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtaGVhZGVyLWhlaWdodC1kZWZhdWx0JywgJy0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0Jyk7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQtZGVmYXVsdCcsICctLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQnKTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWRlZmF1bHQnLCAnLS1ldWktYXBwLXNpZGViYXItd2lkdGgnKTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWNsb3NlLWRlZmF1bHQnLCAnLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2UnKTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQtZGVmYXVsdCcsICctLWV1aS1hcHAtc2lkZWJhci1oZWFkZXItaGVpZ2h0Jyk7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0LWRlZmF1bHQnLCAnLS1ldWktYXBwLXNpZGViYXItZm9vdGVyLWhlaWdodCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhY3RpdmF0ZUhlYWRlckNzc1ZhcnMoKSB7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtaGVhZGVyLWhlaWdodC1hY3RpdmUnLCAnLS1ldWktYXBwLWhlYWRlci1oZWlnaHQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWN0aXZhdGVUb29sYmFyQ3NzVmFycygpIHtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC10b29sYmFyLWhlaWdodC1hY3RpdmUnLCAnLS1ldWktYXBwLXRvb2xiYXItaGVpZ2h0Jyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFjdGl2YXRlRm9vdGVyQ3NzVmFycygpIHtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1mb290ZXItaGVpZ2h0LWFjdGl2ZScsICctLWV1aS1hcHAtZm9vdGVyLWhlaWdodCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRIZWFkZXJTaHJpbmtDc3NWYXIoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChhY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtaGVhZGVyLWhlaWdodC1zaHJpbmsnLCAnLS1ldWktYXBwLWhlYWRlci1oZWlnaHQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtaGVhZGVyLWhlaWdodC1hY3RpdmUnLCAnLS1ldWktYXBwLWhlYWRlci1oZWlnaHQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhY3RpdmF0ZVNpZGViYXJDc3NWYXJzKCkge1xuICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLXNpZGViYXItd2lkdGgtYWN0aXZlJywgJy0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoJyk7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZS1hY3RpdmUnLCAnLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2UnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWN0aXZhdGVTaWRlYmFySGVhZGVyQ3NzVmFycygpIHtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQtYWN0aXZlJywgJy0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWN0aXZhdGVTaWRlYmFyRm9vdGVyQ3NzVmFycygpIHtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLWZvb3Rlci1oZWlnaHQtYWN0aXZlJywgJy0tZXVpLWFwcC1zaWRlYmFyLWZvb3Rlci1oZWlnaHQnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBkaXNwbGF5cyBhIGdyb3dsIFV4TWVzc2FnZSBpdGVtLCBpc1N0aWNreVxuICAgICAqL1xuICAgIGdyb3dsKG1zZzogVXhNZXNzYWdlLCBpc1N0aWNreT86IGJvb2xlYW4sIGlzTXVsdGlwbGU/OiBib29sZWFuLCBsaWZlPzogbnVtYmVyLCBwb3NpdGlvbj86IHN0cmluZywgY2FsbGJhY2s/OiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIGlmIChtc2cuc2V2ZXJpdHkgIT09ICdpbmZvJyAmJiBtc2cuc2V2ZXJpdHkgIT09ICd3YXJuaW5nJyAmJiBtc2cuc2V2ZXJpdHkgIT09ICdzdWNjZXNzJyAmJiBtc2cuc2V2ZXJpdHkgIT09ICdkYW5nZXInKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1V4QXBwU2hlbGxTZXJ2aWNlLmdyb3dsKCkgRVJST1IgOiBtZXNzYWdlIHNldmVyaXR5IG11c3QgYmUgZWl0aGVyIDogc3VjY2Vzcywgd2FybmluZywgaW5mbywgZGFuZ2VyJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoaXNNdWx0aXBsZSA9PT0gdW5kZWZpbmVkIHx8ICFpc011bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncm93bE1lc3NhZ2VzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmdyb3dsTWVzc2FnZXMgPSB0aGlzLmdyb3dsTWVzc2FnZXMuY29uY2F0KG1zZyk7XG4gICAgICAgICAgICBtc2cubGlmZSA9IGxpZmU7XG4gICAgICAgICAgICBtc2cuc3RpY2t5ID0gaXNTdGlja3k7XG5cbiAgICAgICAgICAgIGlmIChsaWZlID09PSB1bmRlZmluZWQgfHwgaXNOYU4obGlmZSkpIHtcbiAgICAgICAgICAgICAgICBpZiAobXNnLnNldmVyaXR5ID09PSAnZGFuZ2VyJykge1xuICAgICAgICAgICAgICAgICAgICBpc1N0aWNreSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm93bExpZmUgPSAzMDAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncm93bExpZmUgPSBsaWZlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXNTdGlja3kpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzR3Jvd2xTdGlja3kgPSBpc1N0aWNreTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0dyb3dsU3RpY2t5ID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3Jvd2xQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3dsQ2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncm93bENhbGxiYWNrID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhckdyb3dsKCkge1xuICAgICAgICB0aGlzLmdyb3dsTWVzc2FnZXMgPSBbXTtcbiAgICB9XG5cbiAgICBncm93bFN1Y2Nlc3MobXNnOiBzdHJpbmcsIHBvc2l0aW9uPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZ3Jvd2woeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnU1VDQ0VTUycsIGRldGFpbDogbXNnIH0sIGZhbHNlLCBmYWxzZSwgdW5kZWZpbmVkLCBwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgZ3Jvd2xFcnJvcihtc2c6IHN0cmluZywgcG9zaXRpb24/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5ncm93bCh7IHNldmVyaXR5OiAnZGFuZ2VyJywgc3VtbWFyeTogJ0VSUk9SJywgZGV0YWlsOiBtc2cgfSwgZmFsc2UsIGZhbHNlLCB1bmRlZmluZWQsIHBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICAvLyBkYXRlIGhlbHBlcnNcblxuICAgIGdyb3dsV2FybmluZyhtc2c6IHN0cmluZywgcG9zaXRpb24/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5ncm93bCh7IHNldmVyaXR5OiAnd2FybmluZycsIHN1bW1hcnk6ICdXQVJOSU5HJywgZGV0YWlsOiBtc2cgfSwgZmFsc2UsIGZhbHNlLCB1bmRlZmluZWQsIHBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBncm93bEluZm8obXNnOiBzdHJpbmcsIHBvc2l0aW9uPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZ3Jvd2woeyBzZXZlcml0eTogJ2luZm8nLCBzdW1tYXJ5OiAnSU5GTycsIGRldGFpbDogbXNnIH0sIGZhbHNlLCBmYWxzZSwgdW5kZWZpbmVkLCBwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgb3Blbk1vZGFsKG1vZGFsSWQ/OiBzdHJpbmcpIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdtb2RhbC1vcGVuJyk7XG4gICAgICAgIGlmICghbW9kYWxJZCkge1xuICAgICAgICAgICAgbW9kYWxJZCA9ICdzaW5nbGVfbW9kYWwnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3RpdmVNb2RhbHMucHVzaCh7XG4gICAgICAgICAgICBpZDogbW9kYWxJZCxcbiAgICAgICAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vZGFsSWQgKyAnLWNsb3NlLWJ1dHRvbicpO1xuICAgICAgICAgICAgaWYgKGVsKSB7XG4gICAgICAgICAgICAgICAgZWwuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwKTtcbiAgICB9XG5cbiAgICBvcGVuTWVzc2FnZUJveChtZXNzYWdlQm94SWQ/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCFtZXNzYWdlQm94SWQpIHtcbiAgICAgICAgICAgIG1lc3NhZ2VCb3hJZCA9ICdtZXNzYWdlYm94X21vZGFsJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wZW5Nb2RhbChtZXNzYWdlQm94SWQpO1xuICAgIH1cblxuICAgIGNsb3NlTWVzc2FnZUJveChtZXNzYWdlQm94SWQ/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCFtZXNzYWdlQm94SWQpIHtcbiAgICAgICAgICAgIG1lc3NhZ2VCb3hJZCA9ICdtZXNzYWdlYm94X21vZGFsJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNsb3NlTW9kYWwobWVzc2FnZUJveElkKTtcbiAgICB9XG5cbiAgICBpc01vZGFsT3Blbihtb2RhbElkPzogc3RyaW5nKSB7XG4gICAgICAgIGlmICghbW9kYWxJZCkge1xuICAgICAgICAgICAgbW9kYWxJZCA9ICdzaW5nbGVfbW9kYWwnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZU1vZGFscy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGxldCBtb2RhbEluZGV4OiBudW1iZXIgPSB0aGlzLmZpbmRNb2RhbEluZGV4KG1vZGFsSWQpO1xuICAgICAgICAgICAgaWYgKG1vZGFsSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlTW9kYWxzW21vZGFsSW5kZXhdLmlzT3BlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gUG9zaXRpb25zIGhlbHBlcnNcblxuICAgIGNsb3NlTW9kYWwobW9kYWxJZD86IHN0cmluZykge1xuICAgICAgICBpZiAoIW1vZGFsSWQpIHtcbiAgICAgICAgICAgIG1vZGFsSWQgPSAnc2luZ2xlX21vZGFsJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBNYWtlIHN1cmUgd2UgZmluZCB0aGUgbW9kYWwgYmVmb3JlIHNwbGljaW5nIHRoZSBhY3RpdmVNb2RhbHMgYXJyYXlcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maW5kTW9kYWxJbmRleChtb2RhbElkKTtcbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTW9kYWxzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hY3RpdmVNb2RhbHMgJiYgdGhpcy5hY3RpdmVNb2RhbHMubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnbW9kYWwtb3BlbicpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgc3RpbGwgYW5vdGhlciAocGFyZW50KSBtb2RhbCBkaWFsb2cgb3BlbiwgZW5zdXJlIGl0IGlzIGZvY3VzZWQgdXBvbiB0byBiZSBhYmxlIHRvIGNsb3NlIGlzIHdpdGggdGhlIEVTQyBrZXk6XG4gICAgICAgICAgICBjb25zdCBsYXN0TW9kYWxJZCA9IHRoaXMuYWN0aXZlTW9kYWxzIFt0aGlzLmFjdGl2ZU1vZGFscy5sZW5ndGggLSAxXS5pZDtcbiAgICAgICAgICAgIGlmIChsYXN0TW9kYWxJZCkge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGxhc3RNb2RhbElkICsgJy1jbG9zZS1idXR0b24nKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbC5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZpbmRNb2RhbEluZGV4KG1vZGFsSWQ6IHN0cmluZykge1xuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IC0xO1xuXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZU1vZGFscy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5hY3RpdmVNb2RhbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVNb2RhbHNbaV0uaWQgPT09IG1vZGFsSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gcHJpdmF0ZSBnZXR0ZXJzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tXG4gICAgcHJpdmF0ZSBnZXRDc3NWYXJWYWx1ZShpbnB1dFByb3BlcnR5KSB7XG4gICAgICAgIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZShpbnB1dFByb3BlcnR5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENzc1ZhcihpbnB1dFByb3BlcnR5LCBvdXRwdXRQcm9wZXJ0eSkge1xuICAgICAgICBjb25zdCBjc3NWYXJWYWx1ZSA9IHRoaXMuY3NzVmFycy5maWx0ZXIodiA9PiB2LmtleSA9PT0gaW5wdXRQcm9wZXJ0eSlbMF0udmFsdWU7XG4gICAgICAgIHRoaXMuX3NldENzc1ZhclZhbHVlKG91dHB1dFByb3BlcnR5LCBjc3NWYXJWYWx1ZSk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGlucHV0UHJvcGVydHksIG91dHB1dFByb3BlcnR5LCBjc3NWYXJWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0Q3NzVmFyVmFsdWUodmFyTmFtZSwgdmFyVmFsdWUpIHtcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHZhck5hbWUsIHZhclZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFdyYXBwZXJDbGFzc2VzKHN0YXRlOiBVSVN0YXRlLCBicmVha3BvaW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBsZXQgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBjbGFzc2VzLnB1c2goYnJlYWtwb2ludCk7XG5cbiAgICAgICAgaWYgKHN0YXRlLmlzU2lkZWJhck9wZW4gJiYgKHN0YXRlLmlzU2lkZWJhckFjdGl2ZSB8fCBzdGF0ZS5pc1NpZGViYXJJbm5lckFjdGl2ZSkpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnc2lkZWJhci1zdGF0ZS1vcGVuJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzdGF0ZS5pc1NpZGViYXJPcGVuICYmIChzdGF0ZS5pc1NpZGViYXJBY3RpdmUgfHwgc3RhdGUuaXNTaWRlYmFySW5uZXJBY3RpdmUpKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NpZGViYXItc3RhdGUtY2xvc2UnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdGUuaXNTaWRlYmFyQWN0aXZlKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NpZGViYXItYWN0aXZlJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXRlLmlzU2lkZWJhcklubmVyQWN0aXZlKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NpZGViYXItaW5uZXItYWN0aXZlJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXRlLmlzU2lkZWJhclN0YXRlQ2xvc2VXaXRoSWNvbnMpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnc2lkZWJhci1zdGF0ZS1jbG9zZS13aXRoLWljb25zJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBORVcgQVBQLVNIRUxMIHByb3BzXG4gICAgICAgIGlmIChzdGF0ZS5pc1NpZGViYXJIaWRkZW4pIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnc2lkZWJhci0taGlkZGVuJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXRlLmlzU2lkZWJhck9wZW4pIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnc2lkZWJhci0tb3BlbicpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdzaWRlYmFyLS1jbG9zZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZS5pc1NpZGViYXJIb3Zlcikge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdzaWRlYmFyLS1ob3ZlcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZS5kZXZpY2VJbmZvICYmIHN0YXRlLmRldmljZUluZm8uaXNGRikge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdmZicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZS5kZXZpY2VJbmZvICYmIHN0YXRlLmRldmljZUluZm8uaXNJRSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdpZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZS5kZXZpY2VJbmZvICYmIHN0YXRlLmRldmljZUluZm8uaXNJRTExKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ2llMTEnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdGUuZGV2aWNlSW5mbyAmJiBzdGF0ZS5kZXZpY2VJbmZvLmlzQ2hyb21lKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ2Nocm9tZScpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJyZWFrcG9pbnQod2luZG93V2lkdGg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGxldCBia3A6IHN0cmluZyA9ICcnO1xuXG4gICAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICBjYXNlICh3aW5kb3dXaWR0aCA+PSAwICYmIHdpbmRvd1dpZHRoIDwgNTc2KTpcbiAgICAgICAgICAgIGJrcCA9ICd4cyc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAod2luZG93V2lkdGggPj0gNTc2ICYmIHdpbmRvd1dpZHRoIDwgNzY4KTpcbiAgICAgICAgICAgIGJrcCA9ICdzbSc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAod2luZG93V2lkdGggPj0gNzY4ICYmIHdpbmRvd1dpZHRoIDwgOTkyKTpcbiAgICAgICAgICAgIGJrcCA9ICdtZCc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAod2luZG93V2lkdGggPj0gOTkyICYmIHdpbmRvd1dpZHRoIDwgMTIwMCk6XG4gICAgICAgICAgICBia3AgPSAnbGcnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgKHdpbmRvd1dpZHRoID49IDEyMDAgJiYgd2luZG93V2lkdGggPCAxNDAwKTpcbiAgICAgICAgICAgIGJrcCA9ICd4bCc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAod2luZG93V2lkdGggPj0gMTQwMCk6XG4gICAgICAgICAgICBia3AgPSAneHhsJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBia3A7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRCcmVha3BvaW50cyhia3A6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpc01vYmlsZTogKGJrcCA9PT0gJ3hzJyB8fCBia3AgPT09ICdzbScpLFxuICAgICAgICAgICAgaXNUYWJsZXQ6IGJrcCA9PT0gJ21kJyxcbiAgICAgICAgICAgIGlzTHREZXNrdG9wOiAoYmtwID09PSAneHMnIHx8IGJrcCA9PT0gJ3NtJyB8fCBia3AgPT09ICdtZCcpLFxuICAgICAgICAgICAgaXNEZXNrdG9wOiBia3AgPT09ICdsZycsXG4gICAgICAgICAgICBpc1hMOiBia3AgPT09ICd4bCcsXG4gICAgICAgICAgICBpc1hYTDogYmtwID09PSAneHhsJyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEpzb24odXJsOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHVybClcbiAgICAgICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgICAgICAgLnRoZW4odGhpcy5leHRyYWN0RGF0YSlcbiAgICAgICAgICAgIC5jYXRjaCh0aGlzLmhhbmRsZUVycm9yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dHJhY3REYXRhKHJlczogUmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgYm9keSA9IHJlcztcbiAgICAgICAgcmV0dXJuIGJvZHkgfHwge307XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignQW4gZXJyb3Igb2NjdXJyZWQnLCBlcnJvcik7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvci5tZXNzYWdlIHx8IGVycm9yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJpbmRBY3RpdmVMYW5ndWFnZVRvQXBwU2hlbGxTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5zdG9yZVNlcnZpY2Uuc2VsZWN0KGdldEFjdGl2ZUxhbmcpLnN1YnNjcmliZSgoYWN0aXZlTGFuZykgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGl2ZUxhbmcgIT09IHRoaXMuc3RhdGUuYWN0aXZlTGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlTGFuZ3VhZ2U6IGFjdGl2ZUxhbmcsXG4gICAgICAgICAgICAgICAgfSwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
655
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXgtYXBwLXNoZWxsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3V4LWFwcC1zaGVsbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBaUMsYUFBYSxFQUF5QixNQUFNLFdBQVcsQ0FBQztBQUMvRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RCxPQUFPLEVBQVUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUN4QyxPQUFPLEdBQUcsTUFBTSxlQUFlLENBQUM7Ozs7OztBQStEaEMsTUFBTSxZQUFZLEdBQVk7SUFDMUIsT0FBTyxFQUFFLEVBQUU7SUFDWCxZQUFZLEVBQUUsRUFBRTtJQUNoQixXQUFXLEVBQUUsRUFBRTtJQUNmLFNBQVMsRUFBRSxJQUFJO0lBQ2YsWUFBWSxFQUFFLElBQUk7SUFDbEIscUJBQXFCLEVBQUUsSUFBSTtJQUMzQixhQUFhLEVBQUUsS0FBSztJQUNwQixjQUFjLEVBQUUsS0FBSztJQUNyQixlQUFlLEVBQUUsS0FBSztJQUN0QixvQkFBb0IsRUFBRSxLQUFLO0lBQzNCLDRCQUE0QixFQUFFLEtBQUs7SUFDbkMsc0JBQXNCLEVBQUUsSUFBSTtJQUM1QixVQUFVLEVBQUUsS0FBSztJQUNqQixT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LENBQUM7b0JBQ1YsR0FBRyxJQUFJLENBQUMsS0FBSztvQkFDYixjQUFjLEVBQUUsVUFBVTtpQkFDN0IsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNiO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztvSkF4cEJRLGlCQUFpQixrQkFvSEYsbUJBQW1CLHVEQUUvQixXQUFXO3dKQXRIZCxpQkFBaUIsY0FGZCxNQUFNOzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQXFIUSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQjt1REFFRSxNQUFNOzBCQUE5QyxNQUFNOzJCQUFDLFdBQVc7OzBCQUdsQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRlZmVyLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVeEV1TGFuZ3VhZ2VzLCBHbG9iYWxDb25maWcsIFV4TGluaywgVXhNb2RhbCwgZ2V0QWN0aXZlTGFuZywgVXhNZXNzYWdlLCBVeExhbmd1YWdlIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IEdMT0JBTF9DT05GSUdfVE9LRU4gfSBmcm9tICcuL2NvbmZpZy90b2tlbnMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuL2kxOG4nO1xuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlU2VydmljZSB9IGZyb20gJy4vc3RvcmUvc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gtZXMvaXNFcXVhbCc7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC1lcy9nZXQnO1xuLy8gaW1wb3J0IHsgVXhSb290SW5qZWN0b3JHdWFyZCB9IGZyb20gJy4vdXgtcm9vdC1pbmplY3Rvci5ndWFyZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVUlTdGF0ZSB7XG4gICAgLy8gYXBwIHN0YXRlXG4gICAgYXBwTmFtZT86IHN0cmluZztcbiAgICBhcHBTaG9ydE5hbWU/OiBzdHJpbmc7XG4gICAgYXBwU3ViVGl0bGU/OiBzdHJpbmc7XG5cbiAgICAvLyB1c2VyIHN0YXRlXG4gICAgdXNlckluZm9zPzogc3RyaW5nO1xuICAgIHVzZXJTdWJJbmZvcz86IHN0cmluZztcbiAgICBpbXBlcnNvbmF0ZWRVc2VySW5mb3M/OiBzdHJpbmc7XG5cbiAgICAvLyBTaWRlYmFyIHN0YXRlXG4gICAgaXNTaWRlYmFyT3Blbj86IGJvb2xlYW47XG4gICAgaXNTaWRlYmFySG92ZXI/OiBib29sZWFuO1xuICAgIGlzU2lkZWJhckFjdGl2ZT86IGJvb2xlYW47XG4gICAgaXNTaWRlYmFySW5uZXJBY3RpdmU/OiBib29sZWFuO1xuICAgIGlzU2lkZWJhclN0YXRlQ2xvc2VXaXRoSWNvbnM/OiBib29sZWFuO1xuICAgIGlzU2lkZWJhckV4cGFuZE9uSG92ZXI/OiBib29sZWFuO1xuICAgIGhhc1NpZGViYXI/OiBib29sZWFuO1xuICAgIGhhc0hlYWRlcj86IGJvb2xlYW47XG4gICAgaGFzSGVhZGVyTG9nbz86IGJvb2xlYW47XG4gICAgaGFzSGVhZGVyRW52aXJvbm1lbnQ/OiBib29sZWFuO1xuICAgIGhhc1Rvb2xiYXI/OiBib29sZWFuO1xuICAgIGhhc1Rvb2xiYXJNZW51PzogYm9vbGVhbjtcbiAgICBlbnZpcm9ubWVudFZhbHVlPzogc3RyaW5nO1xuICAgIGlzU2lkZWJhckhpZGRlbj86IGJvb2xlYW47XG4gICAgaGFzVG9wTWVzc2FnZT86IGJvb2xlYW47XG5cbiAgICAvLyB3aW5kb3cgc3RhdGVcbiAgICB3aW5kb3dXaWR0aD86IG51bWJlcjtcbiAgICB3aW5kb3dIZWlnaHQ/OiBudW1iZXI7XG4gICAgbWFpbkNvbnRlbnRIZWlnaHQ/OiBudW1iZXI7XG4gICAgcGFnZUhlYWRlckhlaWdodD86IG51bWJlcjtcbiAgICBicmVha3BvaW50Pzogc3RyaW5nO1xuICAgIHdyYXBwZXJDbGFzc2VzPzogc3RyaW5nO1xuICAgIGJyZWFrcG9pbnRzPzogYW55O1xuXG4gICAgLy8gbmF2aWdhdGlvbiBzdGF0ZVxuICAgIG1lbnVMaW5rcz86IFV4TGlua1tdO1xuICAgIHNpZGViYXJMaW5rcz86IFV4TGlua1tdO1xuICAgIGNvbWJpbmVkTGlua3M/OiBVeExpbmtbXTtcblxuICAgIC8vIG90aGVyIHN0YXRlc1xuICAgIGlzQmxvY2tEb2N1bWVudEFjdGl2ZT86IGJvb2xlYW47XG5cbiAgICAvLyBkZXZpY2UgaW5mb1xuICAgIGRldmljZUluZm86IGFueTtcblxuICAgIC8vIGxhbmd1YWdlIGluZm9zXG4gICAgYWN0aXZlTGFuZ3VhZ2U6IHN0cmluZztcbiAgICBsYW5ndWFnZXM6IChzdHJpbmcgfCBVeExhbmd1YWdlKVtdO1xuXG4gICAgLy8gYXBwIG1ldGFkYXRhXG4gICAgYXBwTWV0YWRhdGE6IGFueTtcblxuICAgIC8vIHZhcmlvdXMgZHluYW1pYyBzdGF0ZVxuICAgIGhhc01vZGFsQWN0aXZlPzogYm9vbGVhbjtcbiAgICBpc0RpbW1lckFjdGl2ZSA/OiBib29sZWFuOyAgICAgLy8gVXNhZ2U6IG1hcCB0byBldWkgYmFzZSBkaXJlY3RpdmUgaW5wdXQgY29lcmNlIGV1aUhpZ2hsaWdodGVkXG59XG5cbmNvbnN0IGluaXRpYWxTdGF0ZTogVUlTdGF0ZSA9IHtcbiAgICBhcHBOYW1lOiAnJyxcbiAgICBhcHBTaG9ydE5hbWU6ICcnLFxuICAgIGFwcFN1YlRpdGxlOiAnJyxcbiAgICB1c2VySW5mb3M6IG51bGwsXG4gICAgdXNlclN1YkluZm9zOiBudWxsLFxuICAgIGltcGVyc29uYXRlZFVzZXJJbmZvczogbnVsbCxcbiAgICBpc1NpZGViYXJPcGVuOiBmYWxzZSxcbiAgICBpc1NpZGViYXJIb3ZlcjogZmFsc2UsXG4gICAgaXNTaWRlYmFyQWN0aXZlOiBmYWxzZSxcbiAgICBpc1NpZGViYXJJbm5lckFjdGl2ZTogZmFsc2UsXG4gICAgaXNTaWRlYmFyU3RhdGVDbG9zZVdpdGhJY29uczogZmFsc2UsXG4gICAgaXNTaWRlYmFyRXhwYW5kT25Ib3ZlcjogdHJ1ZSxcbiAgICBoYXNTaWRlYmFyOiBmYWxzZSxcbiAgICBoYXNIZWFkZXI6IGZhbHNlLFxuICAgIGhhc0hlYWRlckxvZ286IGZhbHNlLFxuICAgIGhhc0hlYWRlckVudmlyb25tZW50OiBmYWxzZSxcbiAgICBoYXNUb29sYmFyOiBmYWxzZSxcbiAgICBoYXNUb29sYmFyTWVudTogZmFsc2UsXG4gICAgZW52aXJvbm1lbnRWYWx1ZTogJycsXG4gICAgaXNTaWRlYmFySGlkZGVuOiBmYWxzZSxcbiAgICBoYXNUb3BNZXNzYWdlOiBmYWxzZSxcbiAgICB3aW5kb3dXaWR0aDogMCxcbiAgICB3aW5kb3dIZWlnaHQ6IDAsXG4gICAgbWFpbkNvbnRlbnRIZWlnaHQ6IDAsXG4gICAgcGFnZUhlYWRlckhlaWdodDogMCxcbiAgICB3cmFwcGVyQ2xhc3NlczogJycsXG4gICAgYnJlYWtwb2ludDogJycsXG4gICAgYnJlYWtwb2ludHM6IHtcbiAgICAgICAgaXNNb2JpbGU6IGZhbHNlLFxuICAgICAgICBpc1RhYmxldDogZmFsc2UsXG4gICAgICAgIGlzTHREZXNrdG9wOiBmYWxzZSxcbiAgICAgICAgaXNEZXNrdG9wOiBmYWxzZSxcbiAgICAgICAgaXNYTDogZmFsc2UsXG4gICAgICAgIGlzWFhMOiBmYWxzZSxcbiAgICB9LFxuICAgIG1lbnVMaW5rczogW10sXG4gICAgc2lkZWJhckxpbmtzOiBbXSxcbiAgICBjb21iaW5lZExpbmtzOiBbXSxcbiAgICBpc0Jsb2NrRG9jdW1lbnRBY3RpdmU6IGZhbHNlLFxuICAgIGRldmljZUluZm86IG51bGwsXG4gICAgYWN0aXZlTGFuZ3VhZ2U6ICdlbicsXG4gICAgbGFuZ3VhZ2VzOiBVeEV1TGFuZ3VhZ2VzLmdldExhbmd1YWdlcygpLFxuICAgIGFwcE1ldGFkYXRhOiBudWxsLFxuICAgIGhhc01vZGFsQWN0aXZlOiBmYWxzZSxcbiAgICBpc0RpbW1lckFjdGl2ZSA6IGZhbHNlLFxufTtcblxuLy8gVE9ETzogdGhpcyBzZXJ2aWNlIG5lZWRzIHRvIGJlIHRyYW5zZmVycmVkIGluIHRoZSByZXNwZWN0aXZlIGNvbXBvbmVudFxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVXhBcHBTaGVsbFNlcnZpY2Uge1xuICAgIGdyb3dsTWVzc2FnZXMgPSBbXTtcbiAgICBpc0dyb3dsU3RpY2t5OiBib29sZWFuID0gZmFsc2U7XG4gICAgZ3Jvd2xMaWZlOiBudW1iZXIgPSAzMDAwO1xuICAgIGdyb3dsUG9zaXRpb246IHN0cmluZyA9ICdib3R0b20tcmlnaHQnO1xuICAgIGdyb3dsQ2FsbGJhY2s6IGFueSA9IG51bGw7XG4gICAgYWN0aXZlTW9kYWxzOiBVeE1vZGFsW10gPSBbXTtcbiAgICBvcGVuTW9kYWxJZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgICBuYXZpZ2F0aW9uU3RhcnRDdXN0b21IYW5kbGVyOiAoKSA9PiB2b2lkO1xuICAgIG5hdmlnYXRpb25FbmRDdXN0b21IYW5kbGVyOiAoKSA9PiB2b2lkO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGdldCBzdGF0ZSQoKTogT2JzZXJ2YWJsZTxVSVN0YXRlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIGV4cG9zZWQgb2JzZXJ2YWJsZXNcblxuICAgIGdldCBicmVha3BvaW50JCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGJyZWFrcG9pbnRzJCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludHMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBzdGF0ZSBvcGVyYXRpb25zXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLVxuICAgIGdldCBzdGF0ZSgpOiBVSVN0YXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXRlJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIGdldCBpc1NpZGViYXJPcGVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS5pc1NpZGViYXJPcGVuO1xuICAgIH1cblxuICAgIC8vIEVkaXQgbW9kZVxuICAgIGdldCBpc0RpbW1lckFjdGl2ZSAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLmlzRGltbWVyQWN0aXZlIDtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gcHVibGljIHNldHRlcnMgYW5kIGZ1bmN0aW9uc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBzZXQgaXNTaWRlYmFyT3Blbihpc09wZW46IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAuLi50aGlzLnN0YXRlLFxuICAgICAgICAgICAgaXNTaWRlYmFyT3BlbjogaXNPcGVuLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXQgaXNTaWRlYmFySG92ZXIoaXNIb3ZlcjogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS5pc1NpZGViYXJFeHBhbmRPbkhvdmVyKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLnN0YXRlLFxuICAgICAgICAgICAgICAgIGlzU2lkZWJhckhvdmVyOiBpc0hvdmVyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaXNTaWRlYmFySG92ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLmlzU2lkZWJhckhvdmVyO1xuICAgIH1cblxuICAgIHNldCBpc1NpZGViYXJBY3RpdmUoaXNBY3RpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAuLi50aGlzLnN0YXRlLFxuICAgICAgICAgICAgaXNTaWRlYmFyQWN0aXZlOiBpc0FjdGl2ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0IGlzU2lkZWJhcklubmVyQWN0aXZlKGlzT3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIC4uLnRoaXMuc3RhdGUsXG4gICAgICAgICAgICBpc1NpZGViYXJJbm5lckFjdGl2ZTogaXNPcGVuLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXQgc2lkZWJhckxpbmtzKGxpbmtzOiBVeExpbmtbXSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIC4uLnRoaXMuc3RhdGUsXG4gICAgICAgICAgICBzaWRlYmFyTGlua3M6IGxpbmtzLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXQgbWVudUxpbmtzKGxpbmtzOiBVeExpbmtbXSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIC4uLnRoaXMuc3RhdGUsXG4gICAgICAgICAgICBtZW51TGlua3M6IGxpbmtzLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXQgaXNCbG9ja0RvY3VtZW50QWN0aXZlKGlzQWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgICAgICAgIGlzQmxvY2tEb2N1bWVudEFjdGl2ZTogaXNBY3RpdmUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEVkaXQgbW9kZVxuICAgIHNldCBpc0RpbW1lckFjdGl2ZSAoaXNBY3RpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAuLi50aGlzLnN0YXRlLFxuICAgICAgICAgICAgaXNEaW1tZXJBY3RpdmUgOiBpc0FjdGl2ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjc3NWYXJzID0gW107XG4gICAgcHJpdmF0ZSBfc3RhdGUkOiBCZWhhdmlvclN1YmplY3Q8VUlTdGF0ZT47XG4gICAgcHJpdmF0ZSBfYnJlYWtwb2ludCQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+O1xuICAgIHByaXZhdGUgX2JyZWFrcG9pbnRzJDogQmVoYXZpb3JTdWJqZWN0PGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChHTE9CQUxfQ09ORklHX1RPS0VOKSBwcm90ZWN0ZWQgY29uZmlnOiBHbG9iYWxDb25maWcsXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgc3RvcmVTZXJ2aWNlOiBTdG9yZVNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBsZXQgc3RhdGVXaXRoQ29uZmlnID0gaW5pdGlhbFN0YXRlO1xuICAgICAgICBjb25zdCBsYW5ndWFnZXMgPSBjb25maWc/LmkxOG4/LmkxOG5TZXJ2aWNlPy5sYW5ndWFnZXMgfHwgaW5pdGlhbFN0YXRlLmxhbmd1YWdlcztcbiAgICAgICAgY29uc3QgZGVmYXVsdExhbmd1YWdlID0gY29uZmlnPy5pMThuPy5pMThuU2VydmljZT8uZGVmYXVsdExhbmd1YWdlIHx8IGluaXRpYWxTdGF0ZS5hY3RpdmVMYW5ndWFnZTtcbiAgICAgICAgc3RhdGVXaXRoQ29uZmlnID0ge1xuICAgICAgICAgICAgLi4uc3RhdGVXaXRoQ29uZmlnLCAuLi57XG4gICAgICAgICAgICAgICAgbGFuZ3VhZ2VzOiBsYW5ndWFnZXMsXG4gICAgICAgICAgICAgICAgYWN0aXZlTGFuZ3VhZ2U6IGRlZmF1bHRMYW5ndWFnZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX3N0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Qoc3RhdGVXaXRoQ29uZmlnKTtcbiAgICAgICAgdGhpcy5fYnJlYWtwb2ludCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcbiAgICAgICAgdGhpcy5fYnJlYWtwb2ludHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG4gICAgICAgIHRoaXMuYmluZEFjdGl2ZUxhbmd1YWdlVG9BcHBTaGVsbFN0YXRlKCk7XG5cbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHJvdXRlci5ldmVudHNcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFN0YXRlKG5leHRTdGF0ZTogVUlTdGF0ZSwgdXBkYXRlSTE4ID0gdHJ1ZSkge1xuICAgICAgICBsZXQgYnJlYWtwb2ludCwgYnJlYWtwb2ludHMsIHdyYXBwZXJDbGFzc2VzO1xuICAgICAgICBsZXQgY29tYmluZWRMaW5rcztcblxuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGU7XG5cbiAgICAgICAgLy8gY2hlY2sgaWYgd2luZG93IHdpZHRoIGhhcyBiZWVuIHVwZGF0ZWQgZnJvbSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICBpZiAodGhpcy5zdGF0ZS53aW5kb3dXaWR0aCAhPT0gbmV4dFN0YXRlLndpbmRvd1dpZHRoKSB7XG4gICAgICAgICAgICBicmVha3BvaW50ID0gdGhpcy5nZXRCcmVha3BvaW50KG5leHRTdGF0ZS53aW5kb3dXaWR0aCk7XG4gICAgICAgICAgICBicmVha3BvaW50cyA9IHRoaXMuZ2V0QnJlYWtwb2ludHMoYnJlYWtwb2ludCk7XG5cbiAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnQkLm5leHQoYnJlYWtwb2ludCk7XG4gICAgICAgICAgICB0aGlzLl9icmVha3BvaW50cyQubmV4dChicmVha3BvaW50cyk7XG5cbiAgICAgICAgICAgIC8vIGlmIG5vdCBwcm9wYWdhdGUgdGhlIG9sZCBvbmVzIHdpdGhvdXQgZG9pbmcgYW55IGNhbGN1bGF0aW9uc1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYnJlYWtwb2ludCA9IHN0YXRlLmJyZWFrcG9pbnQ7XG4gICAgICAgICAgICBicmVha3BvaW50cyA9IHN0YXRlLmJyZWFrcG9pbnRzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZmluYWxseSBnZXQgdGhlIHdyYXBwZXIgY2xhc3NlcyB3aGVuIGJvdGggdGhlIHN0YXRlIGFuZCBicmVha3BvaW50IGFyZSBrbm93blxuICAgICAgICB3cmFwcGVyQ2xhc3NlcyA9IHRoaXMuZ2V0V3JhcHBlckNsYXNzZXMobmV4dFN0YXRlLCBicmVha3BvaW50KTtcblxuICAgICAgICAvLyBjaGVjayBpZiB0aGUgbWVudUxpbmtzIG9yIHNpZGViYXJMaW5rcyBoYXZlIGNoYW5nZWQgZnJvbSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5tZW51TGlua3MgIT09IG5leHRTdGF0ZS5tZW51TGlua3MgfHwgdGhpcy5zdGF0ZS5zaWRlYmFyTGlua3MgIT09IG5leHRTdGF0ZS5zaWRlYmFyTGlua3MpIHtcbiAgICAgICAgICAgIGNvbWJpbmVkTGlua3MgPSBbLi4ubmV4dFN0YXRlLm1lbnVMaW5rcywgLi4ubmV4dFN0YXRlLnNpZGViYXJMaW5rc107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb21iaW5lZExpbmtzID0gdGhpcy5zdGF0ZS5jb21iaW5lZExpbmtzO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RhdGVCZWZvcmVVcGRhdGUgPSB7IC4uLnRoaXMuc3RhdGUgfSA7XG5cbiAgICAgICAgLy8gd2UgcHV0IGl0IGFsbCB0b2dldGhlciB3aXRoIHRoZSBjYWxjdWxhdGVkIHByb3BlcnRpZXNcbiAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQoe1xuICAgICAgICAgICAgLi4ubmV4dFN0YXRlLFxuICAgICAgICAgICAgd3JhcHBlckNsYXNzZXMsXG4gICAgICAgICAgICBicmVha3BvaW50LFxuICAgICAgICAgICAgYnJlYWtwb2ludHMsXG4gICAgICAgICAgICBjb21iaW5lZExpbmtzLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyB1cGRhdGUgdGhlIFN0b3JlIExhbmd1YWdlXG4gICAgICAgIGlmICh1cGRhdGVJMTggJiYgbmV4dFN0YXRlLmFjdGl2ZUxhbmd1YWdlICE9PSBzdGF0ZUJlZm9yZVVwZGF0ZS5hY3RpdmVMYW5ndWFnZSkge1xuICAgICAgICAgICAgdGhpcy5pMThuU2VydmljZS51cGRhdGVTdGF0ZSh7IGFjdGl2ZUxhbmc6IG5leHRTdGF0ZS5hY3RpdmVMYW5ndWFnZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGEgc2xpY2UgZnJvbSB0aGUgc3RhdGUgd2hldGhlciB0aGF0IGNoYW5nZXNcbiAgICAgKiBAcGFyYW0ga2V5IGNhbiBiZSAna2V5JyBvciAna2V5LnN1Yi5zdWInXG4gICAgICovXG4gICAgZ2V0U3RhdGUoa2V5Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIGRlZmVyKCgpID0+IHtcbiAgICAgICAgICAgIC8vIGNoZWNrIGlmIGtleSBleGlzdHNcbiAgICAgICAgICAgIHJldHVybiBrZXkgPyB0aGlzLnN0YXRlJC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoc3RhdGUpID0+IGdldChzdGF0ZSwga2V5KSksXG4gICAgICAgICAgICAgICAgZmlsdGVyKChzdGF0ZSkgPT4gc3RhdGUpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCh4LCB5KSA9PiBpc0VxdWFsKHgsIHkpKVxuICAgICAgICAgICAgKSA6IHRoaXMuc3RhdGUkO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2lkZWJhclRvZ2dsZSgpIHtcbiAgICAgICAgdGhpcy5pc1NpZGViYXJPcGVuID0gIXRoaXMuc3RhdGUuaXNTaWRlYmFyT3BlbjtcbiAgICB9XG5cbiAgICAvLyBFZGl0IG1vZGVcbiAgICBwdWJsaWMgZGltbWVyQWN0aXZlVG9nZ2xlKCkge1xuICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IHRoaXMuaXNEaW1tZXJBY3RpdmU7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgICAgICAgIGlzRGltbWVyQWN0aXZlIDogIWlzQWN0aXZlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZUVkaXRNb2RlQ3NzVmFycyghaXNBY3RpdmUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREaW1tZXJBY3RpdmVTdGF0ZShhY3RpdmVTdGF0ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIC4uLnRoaXMuc3RhdGUsXG4gICAgICAgICAgICBpc0RpbW1lckFjdGl2ZSA6IGFjdGl2ZVN0YXRlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZUVkaXRNb2RlQ3NzVmFycyhhY3RpdmVTdGF0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFjdGl2YXRlRWRpdE1vZGVDc3NWYXJzKGlzQWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChpc0FjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0Q3NzVmFyVmFsdWUoJy0tZXVpLWRvY3BhZ2UtbmF2aWdhdGlvbi16LWluZGV4JywgJ2luaGVyaXQnKTsgICAgLy8gUmVzZXQgZG9jLXBhZ2UtbmF2aWdhdGlvbi1jb2x1bW4gei1pbmRleFxuICAgICAgICAgICAgdGhpcy5fc2V0Q3NzVmFyVmFsdWUoJy0tZXVpLXotaW5kZXgtc2lkZWJhcicsICdpbmhlcml0Jyk7ICAgICAgICAgICAgICAgLy8gUmVzZXQgZXVpLWFwcC1zaWRlYmFyIHotaW5kZXhcbiAgICAgICAgICAgIHRoaXMuX3NldENzc1ZhclZhbHVlKCctLWV1aS16LWluZGV4LXJvb3QnLCAnaW5oZXJpdCcpOyAgICAgICAgICAgICAgICAgIC8vIFJlc2V0IGV1aS1hcHAtbWFpbi1jb250ZW50IHotaW5kZXhcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NldENzc1ZhclZhbHVlKCctLWV1aS1kb2NwYWdlLW5hdmlnYXRpb24tei1pbmRleCcsICcyJyk7ICAgICAgICAgIC8vIFJlc3RvcmUgZG9jLXBhZ2UtbmF2aWdhdGlvbi1jb2x1bW4gei1pbmRleFxuICAgICAgICAgICAgdGhpcy5fc2V0Q3NzVmFyVmFsdWUoJy0tZXVpLXotaW5kZXgtc2lkZWJhcicsICcxMDQ0Jyk7ICAgICAgICAgICAgICAgICAgLy8gUmVzdG9yZSBldWktYXBwLXNpZGViYXIgei1pbmRleFxuICAgICAgICAgICAgdGhpcy5fc2V0Q3NzVmFyVmFsdWUoJy0tZXVpLXotaW5kZXgtcm9vdCcsICcxJyk7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzdG9yZSBldWktYXBwLW1haW4tY29udGVudCB6LWluZGV4XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLVxuICAgIC8vIHB1YmxpYyBtZXRob2RzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS1cbiAgICBwdWJsaWMgZmV0Y2hBcHBNZXRhZGF0YShtZXRhZGF0YUZpbGVQYXRoID0gJ2Fzc2V0cy9hcHAtbWV0YWRhdGEuanNvbicpIHtcbiAgICAgICAgdGhpcy5nZXRKc29uKG1ldGFkYXRhRmlsZVBhdGgpXG4gICAgICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnN0YXRlLFxuICAgICAgICAgICAgICAgICAgICBhcHBNZXRhZGF0YTogZGF0YSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhY3RpdmF0ZVNpZGViYXIoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgICAgICAgIGhhc1NpZGViYXI6IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS5pc1NpZGViYXJIaWRkZW4pIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVTaWRlYmFyQ3NzVmFycygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFjdGl2YXRlU2lkZWJhckhlYWRlcigpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZVNpZGViYXJIZWFkZXJDc3NWYXJzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFjdGl2YXRlU2lkZWJhckZvb3RlcigpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZVNpZGViYXJGb290ZXJDc3NWYXJzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFjdGl2YXRlSGVhZGVyKCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIC4uLnRoaXMuc3RhdGUsXG4gICAgICAgICAgICBoYXNIZWFkZXI6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFjdGl2YXRlSGVhZGVyQ3NzVmFycygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhY3RpdmF0ZVRvcE1lc3NhZ2UoaGVpZ2h0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAuLi50aGlzLnN0YXRlLFxuICAgICAgICAgICAgaGFzVG9wTWVzc2FnZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVUb3BNZXNzYWdlQ3NzVmFycyhoZWlnaHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhY3RpdmF0ZVRvb2xiYXIoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgICAgICAgIGhhc1Rvb2xiYXI6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFjdGl2YXRlVG9vbGJhckNzc1ZhcnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWN0aXZhdGVUb29sYmFyTWVudSgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAuLi50aGlzLnN0YXRlLFxuICAgICAgICAgICAgaGFzVG9vbGJhck1lbnU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBmZXRjaENzc1ZhcnMoKSB7XG4gICAgICAgIGNvbnN0IGNzc1Zhck5hbWVzID0gW1xuICAgICAgICAgICAgJy0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LWRlZmF1bHQnLFxuICAgICAgICAgICAgJy0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LWFjdGl2ZScsXG4gICAgICAgICAgICAnLS1ldWktYXBwLWhlYWRlci1oZWlnaHQtc2hyaW5rJyxcbiAgICAgICAgICAgICctLWV1aS1hcHAtdG9wLW1lc3NhZ2UtaGVpZ2h0LWRlZmF1bHQnLFxuICAgICAgICAgICAgJy0tZXVpLWFwcC10b3AtbWVzc2FnZS1oZWlnaHQtYWN0aXZlJyxcbiAgICAgICAgICAgICctLWV1aS1hcHAtdG9wLW1lc3NhZ2UtaGVpZ2h0LXNocmluaycsXG4gICAgICAgICAgICAnLS1ldWktYXBwLXRvb2xiYXItaGVpZ2h0LWRlZmF1bHQnLFxuICAgICAgICAgICAgJy0tZXVpLWFwcC10b29sYmFyLWhlaWdodC1hY3RpdmUnLFxuICAgICAgICAgICAgJy0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWRlZmF1bHQnLFxuICAgICAgICAgICAgJy0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWFjdGl2ZScsXG4gICAgICAgICAgICAnLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2UtZGVmYXVsdCcsXG4gICAgICAgICAgICAnLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2UtYWN0aXZlJyxcbiAgICAgICAgICAgICctLWV1aS1hcHAtc2lkZWJhci1oZWFkZXItaGVpZ2h0LWRlZmF1bHQnLFxuICAgICAgICAgICAgJy0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQtYWN0aXZlJyxcbiAgICAgICAgICAgICctLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0LWRlZmF1bHQnLFxuICAgICAgICAgICAgJy0tZXVpLWFwcC1zaWRlYmFyLWZvb3Rlci1oZWlnaHQtYWN0aXZlJyxcbiAgICAgICAgXTtcblxuICAgICAgICB0aGlzLmNzc1ZhcnMgPSBjc3NWYXJOYW1lcy5tYXAoKHYpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IGtleTogdiwgdmFsdWU6IHRoaXMuZ2V0Q3NzVmFyVmFsdWUodikgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRDc3NWYXJzKCkge1xuICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLWhlYWRlci1oZWlnaHQtZGVmYXVsdCcsICctLWV1aS1hcHAtaGVhZGVyLWhlaWdodCcpO1xuICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLXRvcC1tZXNzYWdlLWhlaWdodC1kZWZhdWx0JywgJy0tZXVpLWFwcC10b3AtbWVzc2FnZS1oZWlnaHQnKTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC10b29sYmFyLWhlaWdodC1kZWZhdWx0JywgJy0tZXVpLWFwcC10b29sYmFyLWhlaWdodCcpO1xuICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLXNpZGViYXItd2lkdGgtZGVmYXVsdCcsICctLWV1aS1hcHAtc2lkZWJhci13aWR0aCcpO1xuICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2UtZGVmYXVsdCcsICctLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZScpO1xuICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLXNpZGViYXItaGVhZGVyLWhlaWdodC1kZWZhdWx0JywgJy0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQnKTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLWZvb3Rlci1oZWlnaHQtZGVmYXVsdCcsICctLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0Jyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFjdGl2YXRlSGVhZGVyQ3NzVmFycygpIHtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LWFjdGl2ZScsICctLWV1aS1hcHAtaGVhZGVyLWhlaWdodCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhY3RpdmF0ZVRvcE1lc3NhZ2VDc3NWYXJzKGhlaWdodDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3NldENzc1ZhclZhbHVlKCctLWV1aS1hcHAtdG9wLW1lc3NhZ2UtaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFjdGl2YXRlVG9vbGJhckNzc1ZhcnMoKSB7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQtYWN0aXZlJywgJy0tZXVpLWFwcC10b29sYmFyLWhlaWdodCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhY3RpdmF0ZUZvb3RlckNzc1ZhcnMoKSB7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtZm9vdGVyLWhlaWdodC1hY3RpdmUnLCAnLS1ldWktYXBwLWZvb3Rlci1oZWlnaHQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0SGVhZGVyU2hyaW5rQ3NzVmFyKGFjdGl2ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLWhlYWRlci1oZWlnaHQtc2hyaW5rJywgJy0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0Jyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLWhlYWRlci1oZWlnaHQtYWN0aXZlJywgJy0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYWN0aXZhdGVTaWRlYmFyQ3NzVmFycygpIHtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWFjdGl2ZScsICctLWV1aS1hcHAtc2lkZWJhci13aWR0aCcpO1xuICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2UtYWN0aXZlJywgJy0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWNsb3NlJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFjdGl2YXRlU2lkZWJhckhlYWRlckNzc1ZhcnMoKSB7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtc2lkZWJhci1oZWFkZXItaGVpZ2h0LWFjdGl2ZScsICctLWV1aS1hcHAtc2lkZWJhci1oZWFkZXItaGVpZ2h0Jyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFjdGl2YXRlU2lkZWJhckZvb3RlckNzc1ZhcnMoKSB7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0LWFjdGl2ZScsICctLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0Jyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZGlzcGxheXMgYSBncm93bCBVeE1lc3NhZ2UgaXRlbSwgaXNTdGlja3lcbiAgICAgKi9cbiAgICBncm93bChtc2c6IFV4TWVzc2FnZSwgaXNTdGlja3k/OiBib29sZWFuLCBpc011bHRpcGxlPzogYm9vbGVhbiwgbGlmZT86IG51bWJlciwgcG9zaXRpb24/OiBzdHJpbmcsIGNhbGxiYWNrPzogKCkgPT4gdm9pZCkge1xuICAgICAgICBpZiAobXNnLnNldmVyaXR5ICE9PSAnaW5mbycgJiYgbXNnLnNldmVyaXR5ICE9PSAnd2FybmluZycgJiYgbXNnLnNldmVyaXR5ICE9PSAnc3VjY2VzcycgJiYgbXNnLnNldmVyaXR5ICE9PSAnZGFuZ2VyJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVeEFwcFNoZWxsU2VydmljZS5ncm93bCgpIEVSUk9SIDogbWVzc2FnZSBzZXZlcml0eSBtdXN0IGJlIGVpdGhlciA6IHN1Y2Nlc3MsIHdhcm5pbmcsIGluZm8sIGRhbmdlcicpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGlzTXVsdGlwbGUgPT09IHVuZGVmaW5lZCB8fCAhaXNNdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3Jvd2xNZXNzYWdlcyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5ncm93bE1lc3NhZ2VzID0gdGhpcy5ncm93bE1lc3NhZ2VzLmNvbmNhdChtc2cpO1xuICAgICAgICAgICAgbXNnLmxpZmUgPSBsaWZlO1xuICAgICAgICAgICAgbXNnLnN0aWNreSA9IGlzU3RpY2t5O1xuXG4gICAgICAgICAgICBpZiAobGlmZSA9PT0gdW5kZWZpbmVkIHx8IGlzTmFOKGxpZmUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1zZy5zZXZlcml0eSA9PT0gJ2RhbmdlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNTdGlja3kgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3Jvd2xMaWZlID0gMzAwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3Jvd2xMaWZlID0gbGlmZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzU3RpY2t5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0dyb3dsU3RpY2t5ID0gaXNTdGlja3k7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNHcm93bFN0aWNreSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3dsUG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncm93bENhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3Jvd2xDYWxsYmFjayA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xlYXJHcm93bCgpIHtcbiAgICAgICAgdGhpcy5ncm93bE1lc3NhZ2VzID0gW107XG4gICAgfVxuXG4gICAgZ3Jvd2xTdWNjZXNzKG1zZzogc3RyaW5nLCBwb3NpdGlvbj86IHN0cmluZykge1xuICAgICAgICB0aGlzLmdyb3dsKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ1NVQ0NFU1MnLCBkZXRhaWw6IG1zZyB9LCBmYWxzZSwgZmFsc2UsIHVuZGVmaW5lZCwgcG9zaXRpb24pO1xuICAgIH1cblxuICAgIGdyb3dsRXJyb3IobXNnOiBzdHJpbmcsIHBvc2l0aW9uPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZ3Jvd2woeyBzZXZlcml0eTogJ2RhbmdlcicsIHN1bW1hcnk6ICdFUlJPUicsIGRldGFpbDogbXNnIH0sIGZhbHNlLCBmYWxzZSwgdW5kZWZpbmVkLCBwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgLy8gZGF0ZSBoZWxwZXJzXG5cbiAgICBncm93bFdhcm5pbmcobXNnOiBzdHJpbmcsIHBvc2l0aW9uPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZ3Jvd2woeyBzZXZlcml0eTogJ3dhcm5pbmcnLCBzdW1tYXJ5OiAnV0FSTklORycsIGRldGFpbDogbXNnIH0sIGZhbHNlLCBmYWxzZSwgdW5kZWZpbmVkLCBwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgZ3Jvd2xJbmZvKG1zZzogc3RyaW5nLCBwb3NpdGlvbj86IHN0cmluZykge1xuICAgICAgICB0aGlzLmdyb3dsKHsgc2V2ZXJpdHk6ICdpbmZvJywgc3VtbWFyeTogJ0lORk8nLCBkZXRhaWw6IG1zZyB9LCBmYWxzZSwgZmFsc2UsIHVuZGVmaW5lZCwgcG9zaXRpb24pO1xuICAgIH1cblxuICAgIG9wZW5Nb2RhbChtb2RhbElkPzogc3RyaW5nKSB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnbW9kYWwtb3BlbicpO1xuICAgICAgICBpZiAoIW1vZGFsSWQpIHtcbiAgICAgICAgICAgIG1vZGFsSWQgPSAnc2luZ2xlX21vZGFsJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZlTW9kYWxzLnB1c2goe1xuICAgICAgICAgICAgaWQ6IG1vZGFsSWQsXG4gICAgICAgICAgICBpc09wZW46IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtb2RhbElkICsgJy1jbG9zZS1idXR0b24nKTtcbiAgICAgICAgICAgIGlmIChlbCkge1xuICAgICAgICAgICAgICAgIGVsLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMCk7XG4gICAgfVxuXG4gICAgb3Blbk1lc3NhZ2VCb3gobWVzc2FnZUJveElkPzogc3RyaW5nKSB7XG4gICAgICAgIGlmICghbWVzc2FnZUJveElkKSB7XG4gICAgICAgICAgICBtZXNzYWdlQm94SWQgPSAnbWVzc2FnZWJveF9tb2RhbCc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vcGVuTW9kYWwobWVzc2FnZUJveElkKTtcbiAgICB9XG5cbiAgICBjbG9zZU1lc3NhZ2VCb3gobWVzc2FnZUJveElkPzogc3RyaW5nKSB7XG4gICAgICAgIGlmICghbWVzc2FnZUJveElkKSB7XG4gICAgICAgICAgICBtZXNzYWdlQm94SWQgPSAnbWVzc2FnZWJveF9tb2RhbCc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbG9zZU1vZGFsKG1lc3NhZ2VCb3hJZCk7XG4gICAgfVxuXG4gICAgaXNNb2RhbE9wZW4obW9kYWxJZD86IHN0cmluZykge1xuICAgICAgICBpZiAoIW1vZGFsSWQpIHtcbiAgICAgICAgICAgIG1vZGFsSWQgPSAnc2luZ2xlX21vZGFsJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5hY3RpdmVNb2RhbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgbW9kYWxJbmRleDogbnVtYmVyID0gdGhpcy5maW5kTW9kYWxJbmRleChtb2RhbElkKTtcbiAgICAgICAgICAgIGlmIChtb2RhbEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZU1vZGFsc1ttb2RhbEluZGV4XS5pc09wZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFBvc2l0aW9ucyBoZWxwZXJzXG5cbiAgICBjbG9zZU1vZGFsKG1vZGFsSWQ/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCFtb2RhbElkKSB7XG4gICAgICAgICAgICBtb2RhbElkID0gJ3NpbmdsZV9tb2RhbCc7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogTWFrZSBzdXJlIHdlIGZpbmQgdGhlIG1vZGFsIGJlZm9yZSBzcGxpY2luZyB0aGUgYWN0aXZlTW9kYWxzIGFycmF5XG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZmluZE1vZGFsSW5kZXgobW9kYWxJZCk7XG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFscy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlTW9kYWxzICYmIHRoaXMuYWN0aXZlTW9kYWxzLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ21vZGFsLW9wZW4nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIHN0aWxsIGFub3RoZXIgKHBhcmVudCkgbW9kYWwgZGlhbG9nIG9wZW4sIGVuc3VyZSBpdCBpcyBmb2N1c2VkIHVwb24gdG8gYmUgYWJsZSB0byBjbG9zZSBpcyB3aXRoIHRoZSBFU0Mga2V5OlxuICAgICAgICAgICAgY29uc3QgbGFzdE1vZGFsSWQgPSB0aGlzLmFjdGl2ZU1vZGFscyBbdGhpcy5hY3RpdmVNb2RhbHMubGVuZ3RoIC0gMV0uaWQ7XG4gICAgICAgICAgICBpZiAobGFzdE1vZGFsSWQpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChsYXN0TW9kYWxJZCArICctY2xvc2UtYnV0dG9uJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWwuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaW5kTW9kYWxJbmRleChtb2RhbElkOiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSAtMTtcblxuICAgICAgICBpZiAodGhpcy5hY3RpdmVNb2RhbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYWN0aXZlTW9kYWxzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlTW9kYWxzW2ldLmlkID09PSBtb2RhbElkKSB7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4ID0gaTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIHByaXZhdGUgZ2V0dGVyc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLVxuICAgIHByaXZhdGUgZ2V0Q3NzVmFyVmFsdWUoaW5wdXRQcm9wZXJ0eSkge1xuICAgICAgICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoaW5wdXRQcm9wZXJ0eSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDc3NWYXIoaW5wdXRQcm9wZXJ0eSwgb3V0cHV0UHJvcGVydHkpIHtcbiAgICAgICAgY29uc3QgY3NzVmFyVmFsdWUgPSB0aGlzLmNzc1ZhcnMuZmlsdGVyKHYgPT4gdi5rZXkgPT09IGlucHV0UHJvcGVydHkpWzBdLnZhbHVlO1xuICAgICAgICB0aGlzLl9zZXRDc3NWYXJWYWx1ZShvdXRwdXRQcm9wZXJ0eSwgY3NzVmFyVmFsdWUpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhpbnB1dFByb3BlcnR5LCBvdXRwdXRQcm9wZXJ0eSwgY3NzVmFyVmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldENzc1ZhclZhbHVlKHZhck5hbWUsIHZhclZhbHVlKSB7XG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSh2YXJOYW1lLCB2YXJWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRXcmFwcGVyQ2xhc3NlcyhzdGF0ZTogVUlTdGF0ZSwgYnJlYWtwb2ludDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgICAgY2xhc3Nlcy5wdXNoKGJyZWFrcG9pbnQpO1xuXG4gICAgICAgIGlmIChzdGF0ZS5pc1NpZGViYXJPcGVuICYmIChzdGF0ZS5pc1NpZGViYXJBY3RpdmUgfHwgc3RhdGUuaXNTaWRlYmFySW5uZXJBY3RpdmUpKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NpZGViYXItc3RhdGUtb3BlbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc3RhdGUuaXNTaWRlYmFyT3BlbiAmJiAoc3RhdGUuaXNTaWRlYmFyQWN0aXZlIHx8IHN0YXRlLmlzU2lkZWJhcklubmVyQWN0aXZlKSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdzaWRlYmFyLXN0YXRlLWNsb3NlJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXRlLmlzU2lkZWJhckFjdGl2ZSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdzaWRlYmFyLWFjdGl2ZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZS5pc1NpZGViYXJJbm5lckFjdGl2ZSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdzaWRlYmFyLWlubmVyLWFjdGl2ZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZS5pc1NpZGViYXJTdGF0ZUNsb3NlV2l0aEljb25zKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NpZGViYXItc3RhdGUtY2xvc2Utd2l0aC1pY29ucycpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTkVXIEFQUC1TSEVMTCBwcm9wc1xuICAgICAgICBpZiAoc3RhdGUuaXNTaWRlYmFySGlkZGVuKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NpZGViYXItLWhpZGRlbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZS5pc1NpZGViYXJPcGVuKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NpZGViYXItLW9wZW4nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnc2lkZWJhci0tY2xvc2UnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdGUuaXNTaWRlYmFySG92ZXIpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnc2lkZWJhci0taG92ZXInKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdGUuZGV2aWNlSW5mbyAmJiBzdGF0ZS5kZXZpY2VJbmZvLmlzRkYpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnZmYnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdGUuZGV2aWNlSW5mbyAmJiBzdGF0ZS5kZXZpY2VJbmZvLmlzSUUpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnaWUnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdGUuZGV2aWNlSW5mbyAmJiBzdGF0ZS5kZXZpY2VJbmZvLmlzSUUxMSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdpZTExJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXRlLmRldmljZUluZm8gJiYgc3RhdGUuZGV2aWNlSW5mby5pc0Nocm9tZSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdjaHJvbWUnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRCcmVha3BvaW50KHdpbmRvd1dpZHRoOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBsZXQgYmtwOiBzdHJpbmcgPSAnJztcblxuICAgICAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgY2FzZSAod2luZG93V2lkdGggPj0gMCAmJiB3aW5kb3dXaWR0aCA8IDU3Nik6XG4gICAgICAgICAgICBia3AgPSAneHMnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgKHdpbmRvd1dpZHRoID49IDU3NiAmJiB3aW5kb3dXaWR0aCA8IDc2OCk6XG4gICAgICAgICAgICBia3AgPSAnc20nO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgKHdpbmRvd1dpZHRoID49IDc2OCAmJiB3aW5kb3dXaWR0aCA8IDk5Mik6XG4gICAgICAgICAgICBia3AgPSAnbWQnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgKHdpbmRvd1dpZHRoID49IDk5MiAmJiB3aW5kb3dXaWR0aCA8IDEyMDApOlxuICAgICAgICAgICAgYmtwID0gJ2xnJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICh3aW5kb3dXaWR0aCA+PSAxMjAwICYmIHdpbmRvd1dpZHRoIDwgMTQwMCk6XG4gICAgICAgICAgICBia3AgPSAneGwnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgKHdpbmRvd1dpZHRoID49IDE0MDApOlxuICAgICAgICAgICAgYmtwID0gJ3h4bCc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYmtwO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QnJlYWtwb2ludHMoYmtwOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXNNb2JpbGU6IChia3AgPT09ICd4cycgfHwgYmtwID09PSAnc20nKSxcbiAgICAgICAgICAgIGlzVGFibGV0OiBia3AgPT09ICdtZCcsXG4gICAgICAgICAgICBpc0x0RGVza3RvcDogKGJrcCA9PT0gJ3hzJyB8fCBia3AgPT09ICdzbScgfHwgYmtwID09PSAnbWQnKSxcbiAgICAgICAgICAgIGlzRGVza3RvcDogYmtwID09PSAnbGcnLFxuICAgICAgICAgICAgaXNYTDogYmtwID09PSAneGwnLFxuICAgICAgICAgICAgaXNYWEw6IGJrcCA9PT0gJ3h4bCcsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRKc29uKHVybDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh1cmwpXG4gICAgICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgICAgIC50aGVuKHRoaXMuZXh0cmFjdERhdGEpXG4gICAgICAgICAgICAuY2F0Y2godGhpcy5oYW5kbGVFcnJvcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRyYWN0RGF0YShyZXM6IFJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSByZXM7XG4gICAgICAgIHJldHVybiBib2R5IHx8IHt9O1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0FuIGVycm9yIG9jY3VycmVkJywgZXJyb3IpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IubWVzc2FnZSB8fCBlcnJvcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiaW5kQWN0aXZlTGFuZ3VhZ2VUb0FwcFNoZWxsU3RhdGUoKSB7XG4gICAgICAgIHRoaXMuc3RvcmVTZXJ2aWNlLnNlbGVjdChnZXRBY3RpdmVMYW5nKS5zdWJzY3JpYmUoKGFjdGl2ZUxhbmcpID0+IHtcbiAgICAgICAgICAgIGlmIChhY3RpdmVMYW5nICE9PSB0aGlzLnN0YXRlLmFjdGl2ZUxhbmd1YWdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUxhbmd1YWdlOiBhY3RpdmVMYW5nLFxuICAgICAgICAgICAgICAgIH0sIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -1,4 +1,4 @@
1
- import { ApplicationRef, ComponentFactoryResolver, Injectable, InjectionToken, Injector } from '@angular/core';
1
+ import { Injectable, InjectionToken } from '@angular/core';
2
2
  import { ComponentPortal, DomPortalOutlet, PortalInjector } from '@angular/cdk/portal';
3
3
  import * as i0 from "@angular/core";
4
4
  export const DYNAMIC_COMPONENT_CONFIG = new InjectionToken('DYNAMIC_COMPONENT_CONFIG');
@@ -54,10 +54,10 @@ export class UxDynamicComponentService {
54
54
  return new PortalInjector(this.injector, injectorTokens);
55
55
  }
56
56
  }
57
- /** @nocollapse */ /** @nocollapse */ UxDynamicComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.0", ngImport: i0, type: UxDynamicComponentService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
58
- /** @nocollapse */ /** @nocollapse */ UxDynamicComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0-rc.0", ngImport: i0, type: UxDynamicComponentService, providedIn: 'root' });
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.0", ngImport: i0, type: UxDynamicComponentService, decorators: [{
57
+ /** @nocollapse */ /** @nocollapse */ UxDynamicComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UxDynamicComponentService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
58
+ /** @nocollapse */ /** @nocollapse */ UxDynamicComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UxDynamicComponentService, providedIn: 'root' });
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UxDynamicComponentService, decorators: [{
60
60
  type: Injectable,
61
61
  args: [{ providedIn: 'root' }]
62
62
  }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i0.ApplicationRef }]; } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXgtZHluYW1pYy1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdXgtZHluYW1pYy1jb21wb25lbnQvdXgtZHluYW1pYy1jb21wb25lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsY0FBYyxFQUNkLHdCQUF3QixFQUd4QixVQUFVLEVBQ1YsY0FBYyxFQUNkLFFBQVEsRUFFWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQWlCLE1BQU0scUJBQXFCLENBQUM7O0FBRXRHLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFLLDBCQUEwQixDQUFDLENBQUM7QUFHM0YsTUFBTSxPQUFPLHlCQUF5QjtJQU1sQyxZQUNZLHdCQUFrRCxFQUNsRCxRQUFrQixFQUNsQixNQUFzQjtRQUZ0Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7SUFFbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksR0FBRyxDQUFJLFNBQTJCLEVBQUUsRUFBZSxFQUFFLE1BQVk7UUFFcEUseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQ2pDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFDckMsSUFBSSxDQUFDLHdCQUF3QixFQUM3QixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxRQUFRLENBQ2hCLENBQUM7UUFFRiw4RUFBOEU7UUFDOUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBSSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbkcsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkUsSUFBSSxNQUFNLEVBQUU7WUFDUixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtnQkFDbEIsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUM5QixTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ3RCLDBCQUEwQixFQUFFLElBQUksQ0FBQyx1QkFBdUI7YUFDM0QsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPO1lBQ0gsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQix1QkFBdUIsRUFBRSxJQUFJLENBQUMsdUJBQXVCO1NBQ3hELENBQUM7SUFDTixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGFBQThCO1FBQ3hDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxjQUFjLENBQUMsSUFBUztRQUM1QixNQUFNLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLGNBQWMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkQsT0FBTyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzdELENBQUM7O2lLQXRFUSx5QkFBeUI7cUtBQXpCLHlCQUF5QixjQURaLE1BQU07Z0dBQ25CLHlCQUF5QjtrQkFEckMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFwcGxpY2F0aW9uUmVmLFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3RhYmxlLFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIEluamVjdG9yLFxuICAgIFN0YXRpY1Byb3ZpZGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBEb21Qb3J0YWxPdXRsZXQsIFBvcnRhbEluamVjdG9yLCBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbmV4cG9ydCBjb25zdCBEWU5BTUlDX0NPTVBPTkVOVF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48e30+KCdEWU5BTUlDX0NPTVBPTkVOVF9DT05GSUcnKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBVeER5bmFtaWNDb21wb25lbnRTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgcG9ydGFsSG9zdDogRG9tUG9ydGFsT3V0bGV0O1xuICAgIHByaXZhdGUgcG9ydGFsOiBDb21wb25lbnRQb3J0YWw8YW55PjtcbiAgICBwcml2YXRlIHBvcnRhbENvbXBvbmVudEluc3RhbmNlOiBDb21wb25lbnRSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICkge1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBjb21wb25lbnQgdG8gcG9ydGFsIGhvc3QgZHluYW1pY2FsbHlcbiAgICAgKiBAcGFyYW0gY29tcG9uZW50IFRoZSBjb21wb25lbnQgdG8gYmUgaW5qZWN0ZWRcbiAgICAgKiBAcGFyYW0gZWwgVGhlIGVsZW1lbnQgcmVmZXJlbmNlIGZvciB0aGUgY29tcG9uZW50IHRvIGJlIGluamVjdGVkXG4gICAgICogQHBhcmFtIGNvbmZpZyBUaGUgZGF0YSB0byBiZSBwYXNzZWQgKGNvbmZpZykgZm9yIHRoZSBEWU5BTUlDX0NPTVBPTkVOVF9DT05GSUcgdG9rZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkPFQ+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPiwgZWw/OiBFbGVtZW50UmVmLCBjb25maWc/OiBhbnkpIHtcblxuICAgICAgICAvLyBDcmVhdGUgYSBwb3J0YWxIb3N0IGZyb20gYSBET00gZWxlbWVudFxuICAgICAgICB0aGlzLnBvcnRhbEhvc3QgPSBuZXcgRG9tUG9ydGFsT3V0bGV0KFxuICAgICAgICAgICAgZWwgPyBlbC5uYXRpdmVFbGVtZW50IDogZG9jdW1lbnQuYm9keSxcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICAgICAgdGhpcy5hcHBSZWYsXG4gICAgICAgICAgICB0aGlzLmluamVjdG9yXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gTG9jYXRlIHRoZSBjb21wb25lbnQgZmFjdG9yeSBmb3IgdGhlIENvbXBvbmVudFRvSW5jbHVkZUR5bmFtaWNhbGx5Q29tcG9uZW50XG4gICAgICAgIHRoaXMucG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbDxUPihjb21wb25lbnQsIG51bGwsIGNvbmZpZyA/IHRoaXMuY3JlYXRlSW5qZWN0b3IoY29uZmlnKSA6IG51bGwpO1xuXG4gICAgICAgIC8vIEF0dGFjaCBwb3J0YWwgdG8gaG9zdFxuICAgICAgICB0aGlzLnBvcnRhbENvbXBvbmVudEluc3RhbmNlID0gdGhpcy5wb3J0YWxIb3N0LmF0dGFjaCh0aGlzLnBvcnRhbCk7XG5cbiAgICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihjb25maWcsIHtcbiAgICAgICAgICAgICAgICBwb3J0YWxIb3N0UmVmOiB0aGlzLnBvcnRhbEhvc3QsXG4gICAgICAgICAgICAgICAgcG9ydGFsUmVmOiB0aGlzLnBvcnRhbCxcbiAgICAgICAgICAgICAgICBwb3J0YWxDb21wb25lbnRJbnN0YW5jZVJlZjogdGhpcy5wb3J0YWxDb21wb25lbnRJbnN0YW5jZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBvcnRhbEhvc3Q6IHRoaXMucG9ydGFsSG9zdCxcbiAgICAgICAgICAgIHBvcnRhbDogdGhpcy5wb3J0YWwsXG4gICAgICAgICAgICBwb3J0YWxDb21wb25lbnRJbnN0YW5jZTogdGhpcy5wb3J0YWxDb21wb25lbnRJbnN0YW5jZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGRldGFjaGVzIGEgcG9ydGFsSG9zdFxuICAgICAqIEBwYXJhbSBwb3J0YWxIb3N0UmVmIHJlZmVyZW5jZSBvZiBwb3J0YWwgaG9zdCB0byBiZSBkZXRhY2hlZFxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmUocG9ydGFsSG9zdFJlZjogRG9tUG9ydGFsT3V0bGV0KSB7XG4gICAgICAgIHBvcnRhbEhvc3RSZWYuZGV0YWNoKCk7XG5cbiAgICAgICAgdGhpcy5wb3J0YWxIb3N0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5wb3J0YWwgPSBudWxsO1xuICAgICAgICB0aGlzLnBvcnRhbENvbXBvbmVudEluc3RhbmNlID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGFuICBDdXN0b20gaW5qZWN0b3IgdG8gYmUgdXNlZCB3aGVuIHByb3ZpZGluZyBjdXN0b20gaW5qZWN0aW9uIHRva2VucyB0byBjb21wb25lbnRzIGluc2lkZSBhIHBvcnRhbFxuICAgICAqIEBwYXJhbSBkYXRhIHRvIGJlIHVzZWQgYnkgRFlOQU1JQ19DT01QT05FTlRfQ09ORklHIHRva2VuXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVJbmplY3RvcihkYXRhOiBhbnkpOiBJbmplY3RvciB7XG4gICAgICAgIGNvbnN0IGluamVjdG9yVG9rZW5zID0gbmV3IFdlYWtNYXAoKTtcbiAgICAgICAgaW5qZWN0b3JUb2tlbnMuc2V0KERZTkFNSUNfQ09NUE9ORU5UX0NPTkZJRywgZGF0YSk7XG4gICAgICAgIHJldHVybiBuZXcgUG9ydGFsSW5qZWN0b3IodGhpcy5pbmplY3RvciwgaW5qZWN0b3JUb2tlbnMpO1xuICAgIH1cblxufVxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXgtZHluYW1pYy1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdXgtZHluYW1pYy1jb21wb25lbnQvdXgtZHluYW1pYy1jb21wb25lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBS0gsVUFBVSxFQUNWLGNBQWMsRUFHakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFpQixNQUFNLHFCQUFxQixDQUFDOztBQUV0RyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBSywwQkFBMEIsQ0FBQyxDQUFDO0FBRzNGLE1BQU0sT0FBTyx5QkFBeUI7SUFNbEMsWUFDWSx3QkFBa0QsRUFDbEQsUUFBa0IsRUFDbEIsTUFBc0I7UUFGdEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQWdCO0lBRWxDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEdBQUcsQ0FBSSxTQUEyQixFQUFFLEVBQWUsRUFBRSxNQUFZO1FBRXBFLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksZUFBZSxDQUNqQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQ3JDLElBQUksQ0FBQyx3QkFBd0IsRUFDN0IsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsUUFBUSxDQUNoQixDQUFDO1FBRUYsOEVBQThFO1FBQzlFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUksU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5HLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5FLElBQUksTUFBTSxFQUFFO1lBQ1IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2xCLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDOUIsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUN0QiwwQkFBMEIsRUFBRSxJQUFJLENBQUMsdUJBQXVCO2FBQzNELENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTztZQUNILFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLHVCQUF1QjtTQUN4RCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxhQUE4QjtRQUN4QyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssY0FBYyxDQUFDLElBQVM7UUFDNUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNyQyxjQUFjLENBQUMsR0FBRyxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25ELE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM3RCxDQUFDOzs0SkF0RVEseUJBQXlCO2dLQUF6Qix5QkFBeUIsY0FEWixNQUFNOzJGQUNuQix5QkFBeUI7a0JBRHJDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvblJlZixcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0YWJsZSxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbmplY3RvcixcbiAgICBTdGF0aWNQcm92aWRlclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgRG9tUG9ydGFsT3V0bGV0LCBQb3J0YWxJbmplY3RvciwgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5leHBvcnQgY29uc3QgRFlOQU1JQ19DT01QT05FTlRfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPHt9PignRFlOQU1JQ19DT01QT05FTlRfQ09ORklHJyk7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVXhEeW5hbWljQ29tcG9uZW50U2VydmljZSB7XG5cbiAgICBwcml2YXRlIHBvcnRhbEhvc3Q6IERvbVBvcnRhbE91dGxldDtcbiAgICBwcml2YXRlIHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPGFueT47XG4gICAgcHJpdmF0ZSBwb3J0YWxDb21wb25lbnRJbnN0YW5jZTogQ29tcG9uZW50UmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICApIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgY29tcG9uZW50IHRvIHBvcnRhbCBob3N0IGR5bmFtaWNhbGx5XG4gICAgICogQHBhcmFtIGNvbXBvbmVudCBUaGUgY29tcG9uZW50IHRvIGJlIGluamVjdGVkXG4gICAgICogQHBhcmFtIGVsIFRoZSBlbGVtZW50IHJlZmVyZW5jZSBmb3IgdGhlIGNvbXBvbmVudCB0byBiZSBpbmplY3RlZFxuICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGRhdGEgdG8gYmUgcGFzc2VkIChjb25maWcpIGZvciB0aGUgRFlOQU1JQ19DT01QT05FTlRfQ09ORklHIHRva2VuXG4gICAgICovXG4gICAgcHVibGljIGFkZDxUPihjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD4sIGVsPzogRWxlbWVudFJlZiwgY29uZmlnPzogYW55KSB7XG5cbiAgICAgICAgLy8gQ3JlYXRlIGEgcG9ydGFsSG9zdCBmcm9tIGEgRE9NIGVsZW1lbnRcbiAgICAgICAgdGhpcy5wb3J0YWxIb3N0ID0gbmV3IERvbVBvcnRhbE91dGxldChcbiAgICAgICAgICAgIGVsID8gZWwubmF0aXZlRWxlbWVudCA6IGRvY3VtZW50LmJvZHksXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgICAgIHRoaXMuYXBwUmVmLFxuICAgICAgICAgICAgdGhpcy5pbmplY3RvclxuICAgICAgICApO1xuXG4gICAgICAgIC8vIExvY2F0ZSB0aGUgY29tcG9uZW50IGZhY3RvcnkgZm9yIHRoZSBDb21wb25lbnRUb0luY2x1ZGVEeW5hbWljYWxseUNvbXBvbmVudFxuICAgICAgICB0aGlzLnBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWw8VD4oY29tcG9uZW50LCBudWxsLCBjb25maWcgPyB0aGlzLmNyZWF0ZUluamVjdG9yKGNvbmZpZykgOiBudWxsKTtcblxuICAgICAgICAvLyBBdHRhY2ggcG9ydGFsIHRvIGhvc3RcbiAgICAgICAgdGhpcy5wb3J0YWxDb21wb25lbnRJbnN0YW5jZSA9IHRoaXMucG9ydGFsSG9zdC5hdHRhY2godGhpcy5wb3J0YWwpO1xuXG4gICAgICAgIGlmIChjb25maWcpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oY29uZmlnLCB7XG4gICAgICAgICAgICAgICAgcG9ydGFsSG9zdFJlZjogdGhpcy5wb3J0YWxIb3N0LFxuICAgICAgICAgICAgICAgIHBvcnRhbFJlZjogdGhpcy5wb3J0YWwsXG4gICAgICAgICAgICAgICAgcG9ydGFsQ29tcG9uZW50SW5zdGFuY2VSZWY6IHRoaXMucG9ydGFsQ29tcG9uZW50SW5zdGFuY2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwb3J0YWxIb3N0OiB0aGlzLnBvcnRhbEhvc3QsXG4gICAgICAgICAgICBwb3J0YWw6IHRoaXMucG9ydGFsLFxuICAgICAgICAgICAgcG9ydGFsQ29tcG9uZW50SW5zdGFuY2U6IHRoaXMucG9ydGFsQ29tcG9uZW50SW5zdGFuY2VcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBkZXRhY2hlcyBhIHBvcnRhbEhvc3RcbiAgICAgKiBAcGFyYW0gcG9ydGFsSG9zdFJlZiByZWZlcmVuY2Ugb2YgcG9ydGFsIGhvc3QgdG8gYmUgZGV0YWNoZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlKHBvcnRhbEhvc3RSZWY6IERvbVBvcnRhbE91dGxldCkge1xuICAgICAgICBwb3J0YWxIb3N0UmVmLmRldGFjaCgpO1xuXG4gICAgICAgIHRoaXMucG9ydGFsSG9zdCA9IG51bGw7XG4gICAgICAgIHRoaXMucG9ydGFsID0gbnVsbDtcbiAgICAgICAgdGhpcy5wb3J0YWxDb21wb25lbnRJbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBhbiAgQ3VzdG9tIGluamVjdG9yIHRvIGJlIHVzZWQgd2hlbiBwcm92aWRpbmcgY3VzdG9tIGluamVjdGlvbiB0b2tlbnMgdG8gY29tcG9uZW50cyBpbnNpZGUgYSBwb3J0YWxcbiAgICAgKiBAcGFyYW0gZGF0YSB0byBiZSB1c2VkIGJ5IERZTkFNSUNfQ09NUE9ORU5UX0NPTkZJRyB0b2tlblxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlSW5qZWN0b3IoZGF0YTogYW55KTogSW5qZWN0b3Ige1xuICAgICAgICBjb25zdCBpbmplY3RvclRva2VucyA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICAgIGluamVjdG9yVG9rZW5zLnNldChEWU5BTUlDX0NPTVBPTkVOVF9DT05GSUcsIGRhdGEpO1xuICAgICAgICByZXR1cm4gbmV3IFBvcnRhbEluamVjdG9yKHRoaXMuaW5qZWN0b3IsIGluamVjdG9yVG9rZW5zKTtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -1,7 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { getUserState } from '@eui/base';
3
- import { EuiPermissionService } from '../permission/permission.service';
4
- import { StoreService } from '../store/store.service';
5
3
  import * as i0 from "@angular/core";
6
4
  import * as i1 from "../permission/permission.service";
7
5
  import * as i2 from "../store/store.service";
@@ -57,12 +55,12 @@ export class UxDynamicMenuService {
57
55
  });
58
56
  }
59
57
  }
60
- /** @nocollapse */ /** @nocollapse */ UxDynamicMenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.0", ngImport: i0, type: UxDynamicMenuService, deps: [{ token: i1.EuiPermissionService }, { token: i2.StoreService }], target: i0.ɵɵFactoryTarget.Injectable });
61
- /** @nocollapse */ /** @nocollapse */ UxDynamicMenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0-rc.0", ngImport: i0, type: UxDynamicMenuService, providedIn: 'root' });
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.0", ngImport: i0, type: UxDynamicMenuService, decorators: [{
58
+ /** @nocollapse */ /** @nocollapse */ UxDynamicMenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UxDynamicMenuService, deps: [{ token: i1.EuiPermissionService }, { token: i2.StoreService }], target: i0.ɵɵFactoryTarget.Injectable });
59
+ /** @nocollapse */ /** @nocollapse */ UxDynamicMenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UxDynamicMenuService, providedIn: 'root' });
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UxDynamicMenuService, decorators: [{
63
61
  type: Injectable,
64
62
  args: [{
65
63
  providedIn: 'root',
66
64
  }]
67
65
  }], ctorParameters: function () { return [{ type: i1.EuiPermissionService }, { type: i2.StoreService }]; } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXgtZHluYW1pYy1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3V4LWR5bmFtaWMtbWVudS91eC1keW5hbWljLW1lbnUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBS3RELE1BQU0sT0FBTyxvQkFBb0I7SUFHN0IsOERBQThEO0lBQzlELHNGQUFzRjtJQUN0RixZQUFvQixZQUFrQyxFQUFVLEtBQW1CO1FBQS9ELGlCQUFZLEdBQVosWUFBWSxDQUFzQjtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWM7UUFKbkYsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUt2QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMvQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUNuQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELHVCQUF1QixDQUFDLEtBQW9CO1FBQ3hDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3pCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQy9EO1lBRUQsNENBQTRDO1lBQzVDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDcEIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7b0JBQ2xELE9BQU8sS0FBSyxDQUFDO2lCQUNoQjthQUNKO1lBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNyQixLQUFLLE1BQU0sYUFBYSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQzdDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUU7d0JBQzdDLE9BQU8sS0FBSyxDQUFDO3FCQUNoQjtpQkFDSjthQUNKO1lBRUQsZ0VBQWdFO1lBQ2hFLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDNUQ7WUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3RCLEtBQUssTUFBTSxjQUFjLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtvQkFDL0MsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRTt3QkFDOUMsT0FBTyxJQUFJLENBQUM7cUJBQ2Y7aUJBQ0o7Z0JBQ0QsNERBQTREO2dCQUM1RCxPQUFPLEtBQUssQ0FBQzthQUNoQjtZQUVELDZEQUE2RDtZQUM3RCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OzRKQXREUSxvQkFBb0I7Z0tBQXBCLG9CQUFvQixjQUZqQixNQUFNO2dHQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRVc2VyU3RhdGUsIFV4TGluayB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBFdWlQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3Blcm1pc3Npb24vcGVybWlzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JlU2VydmljZSB9IGZyb20gJy4uL3N0b3JlL3N0b3JlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBVeER5bmFtaWNNZW51U2VydmljZSB7XG4gICAgbWVudUxpbmtzOiBBcnJheTxhbnk+ID0gW107XG5cbiAgICAvLyBUT0RPOiBpdCBzaG91bGQgYmUgbW92ZWQgZXVpc2VydmljZSwgb3IgaXQgc2hvdWxkIGJlIHN0YXRpY1xuICAgIC8vIFRPRE86IGNhbiB3ZSBtb3ZlZCB0aGF0IHNlcnZpY2UgaW5zaWRlIHRoZSBtb2R1bGUgb2YgdGhlIGNvbXBvbmVudCB0aGF0J3MgdXNpbmcgaXQ/XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB1eFBlcm1pc3Npb246IEV1aVBlcm1pc3Npb25TZXJ2aWNlLCBwcml2YXRlIHN0b3JlOiBTdG9yZVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoZ2V0VXNlclN0YXRlKS5zdWJzY3JpYmUoKHVzZXIpID0+IHtcbiAgICAgICAgICAgIGlmICh1c2VyLm1lbnVMaW5rcykge1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUxpbmtzID0gdXNlci5tZW51TGlua3M7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldE1lbnVMaW5rcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWVudUxpbmtzO1xuICAgIH1cblxuICAgIGZpbHRlclV4TGlua3NXaXRoUmlnaHRzKGxpbmtzOiBBcnJheTxVeExpbms+KTogQXJyYXk8VXhMaW5rPiB7XG4gICAgICAgIHJldHVybiBsaW5rcy5maWx0ZXIoKGxpbmspID0+IHtcbiAgICAgICAgICAgIGlmIChsaW5rLmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgbGluay5jaGlsZHJlbiA9IHRoaXMuZmlsdGVyVXhMaW5rc1dpdGhSaWdodHMobGluay5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEZpcnN0IGNoZWNrIGlmIHRoZSB1c2VyIGlzIGRlbmllZCBhY2Nlc3M6XG4gICAgICAgICAgICBpZiAobGluay5kZW5pZWRSaWdodElkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudXhQZXJtaXNzaW9uLmNoZWNrUmlnaHQobGluay5kZW5pZWRSaWdodElkKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmsuZGVuaWVkUmlnaHRJZHMpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGRlbmllZFJpZ2h0SWQgb2YgbGluay5kZW5pZWRSaWdodElkcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy51eFBlcm1pc3Npb24uY2hlY2tSaWdodChkZW5pZWRSaWdodElkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUaGVuIGNoZWNrIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGJlIGFsbG93ZWQgYWNjZXNzIGV4cGxpY2l0bHk6XG4gICAgICAgICAgICBpZiAobGluay5hbGxvd2VkUmlnaHRJZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnV4UGVybWlzc2lvbi5jaGVja1JpZ2h0KGxpbmsuYWxsb3dlZFJpZ2h0SWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmsuYWxsb3dlZFJpZ2h0SWRzKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBhbGxvd2VkUmlnaHRJZCBvZiBsaW5rLmFsbG93ZWRSaWdodElkcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy51eFBlcm1pc3Npb24uY2hlY2tSaWdodChhbGxvd2VkUmlnaHRJZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFVzZXIgZG9lc24ndCBoYXZlIG9uZSBvZiB0aGUgYWxsb3dlZCByaWdodHMuIERlbnkgYWNjZXNzOlxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQWNjZXNzIHRvIHRoZSBtZW51IGl0ZW0gaXMgbm90IGRlbmllZCwgdGhlcmVmb3JlIGFsbG93IGl0OlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXgtZHluYW1pYy1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3V4LWR5bmFtaWMtbWVudS91eC1keW5hbWljLW1lbnUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxXQUFXLENBQUM7Ozs7QUFPakQsTUFBTSxPQUFPLG9CQUFvQjtJQUc3Qiw4REFBOEQ7SUFDOUQsc0ZBQXNGO0lBQ3RGLFlBQW9CLFlBQWtDLEVBQVUsS0FBbUI7UUFBL0QsaUJBQVksR0FBWixZQUFZLENBQXNCO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUpuRixjQUFTLEdBQWUsRUFBRSxDQUFDO1FBS3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQy9DLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ25DO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsdUJBQXVCLENBQUMsS0FBb0I7UUFDeEMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDekIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDL0Q7WUFFRCw0Q0FBNEM7WUFDNUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUNwQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtvQkFDbEQsT0FBTyxLQUFLLENBQUM7aUJBQ2hCO2FBQ0o7WUFDRCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3JCLEtBQUssTUFBTSxhQUFhLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtvQkFDN0MsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRTt3QkFDN0MsT0FBTyxLQUFLLENBQUM7cUJBQ2hCO2lCQUNKO2FBQ0o7WUFFRCxnRUFBZ0U7WUFDaEUsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUM1RDtZQUNELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDdEIsS0FBSyxNQUFNLGNBQWMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO29CQUMvQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFO3dCQUM5QyxPQUFPLElBQUksQ0FBQztxQkFDZjtpQkFDSjtnQkFDRCw0REFBNEQ7Z0JBQzVELE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBRUQsNkRBQTZEO1lBQzdELE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7dUpBdERRLG9CQUFvQjsySkFBcEIsb0JBQW9CLGNBRmpCLE1BQU07MkZBRVQsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldFVzZXJTdGF0ZSwgVXhMaW5rIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IEV1aVBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vcGVybWlzc2lvbi9wZXJtaXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmUvc3RvcmUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFV4RHluYW1pY01lbnVTZXJ2aWNlIHtcbiAgICBtZW51TGlua3M6IEFycmF5PGFueT4gPSBbXTtcblxuICAgIC8vIFRPRE86IGl0IHNob3VsZCBiZSBtb3ZlZCBldWlzZXJ2aWNlLCBvciBpdCBzaG91bGQgYmUgc3RhdGljXG4gICAgLy8gVE9ETzogY2FuIHdlIG1vdmVkIHRoYXQgc2VydmljZSBpbnNpZGUgdGhlIG1vZHVsZSBvZiB0aGUgY29tcG9uZW50IHRoYXQncyB1c2luZyBpdD9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHV4UGVybWlzc2lvbjogRXVpUGVybWlzc2lvblNlcnZpY2UsIHByaXZhdGUgc3RvcmU6IFN0b3JlU2VydmljZSkge1xuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChnZXRVc2VyU3RhdGUpLnN1YnNjcmliZSgodXNlcikgPT4ge1xuICAgICAgICAgICAgaWYgKHVzZXIubWVudUxpbmtzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51TGlua3MgPSB1c2VyLm1lbnVMaW5rcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0TWVudUxpbmtzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tZW51TGlua3M7XG4gICAgfVxuXG4gICAgZmlsdGVyVXhMaW5rc1dpdGhSaWdodHMobGlua3M6IEFycmF5PFV4TGluaz4pOiBBcnJheTxVeExpbms+IHtcbiAgICAgICAgcmV0dXJuIGxpbmtzLmZpbHRlcigobGluaykgPT4ge1xuICAgICAgICAgICAgaWYgKGxpbmsuaGFzQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBsaW5rLmNoaWxkcmVuID0gdGhpcy5maWx0ZXJVeExpbmtzV2l0aFJpZ2h0cyhsaW5rLmNoaWxkcmVuKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRmlyc3QgY2hlY2sgaWYgdGhlIHVzZXIgaXMgZGVuaWVkIGFjY2VzczpcbiAgICAgICAgICAgIGlmIChsaW5rLmRlbmllZFJpZ2h0SWQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy51eFBlcm1pc3Npb24uY2hlY2tSaWdodChsaW5rLmRlbmllZFJpZ2h0SWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGluay5kZW5pZWRSaWdodElkcykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZGVuaWVkUmlnaHRJZCBvZiBsaW5rLmRlbmllZFJpZ2h0SWRzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnV4UGVybWlzc2lvbi5jaGVja1JpZ2h0KGRlbmllZFJpZ2h0SWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFRoZW4gY2hlY2sgaWYgdGhlIHVzZXIgbmVlZHMgdG8gYmUgYWxsb3dlZCBhY2Nlc3MgZXhwbGljaXRseTpcbiAgICAgICAgICAgIGlmIChsaW5rLmFsbG93ZWRSaWdodElkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXhQZXJtaXNzaW9uLmNoZWNrUmlnaHQobGluay5hbGxvd2VkUmlnaHRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGluay5hbGxvd2VkUmlnaHRJZHMpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFsbG93ZWRSaWdodElkIG9mIGxpbmsuYWxsb3dlZFJpZ2h0SWRzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnV4UGVybWlzc2lvbi5jaGVja1JpZ2h0KGFsbG93ZWRSaWdodElkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gVXNlciBkb2Vzbid0IGhhdmUgb25lIG9mIHRoZSBhbGxvd2VkIHJpZ2h0cy4gRGVueSBhY2Nlc3M6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBY2Nlc3MgdG8gdGhlIG1lbnUgaXRlbSBpcyBub3QgZGVuaWVkLCB0aGVyZWZvcmUgYWxsb3cgaXQ6XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -2,8 +2,6 @@ import { UxClearErrorFeedbackEvent, UxPublishErrorFeedbackEvent, } from '@eui/ba
2
2
  import { Subject } from 'rxjs';
3
3
  import { filter, take } from 'rxjs/operators';
4
4
  import { withUxErrorManager } from './ux-error-handler.operator';
5
- import { UxAppShellService } from '../ux-app-shell.service';
6
- import { TranslateService } from '@ngx-translate/core';
7
5
  import { Injectable } from '@angular/core';
8
6
  import * as i0 from "@angular/core";
9
7
  import * as i1 from "../ux-app-shell.service";
@@ -52,9 +50,9 @@ export class UxErrorFeedbackService {
52
50
  return new UxErrorManager(this, true);
53
51
  }
54
52
  }
55
- /** @nocollapse */ /** @nocollapse */ UxErrorFeedbackService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.0", ngImport: i0, type: UxErrorFeedbackService, deps: [{ token: i1.UxAppShellService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
56
- /** @nocollapse */ /** @nocollapse */ UxErrorFeedbackService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0-rc.0", ngImport: i0, type: UxErrorFeedbackService, providedIn: 'root' });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.0", ngImport: i0, type: UxErrorFeedbackService, decorators: [{
53
+ /** @nocollapse */ /** @nocollapse */ UxErrorFeedbackService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UxErrorFeedbackService, deps: [{ token: i1.UxAppShellService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
54
+ /** @nocollapse */ /** @nocollapse */ UxErrorFeedbackService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UxErrorFeedbackService, providedIn: 'root' });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UxErrorFeedbackService, decorators: [{
58
56
  type: Injectable,
59
57
  args: [{
60
58
  providedIn: 'root'
@@ -95,4 +93,4 @@ export class UxErrorManager {
95
93
  }
96
94
  }
97
95
  }
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXgtZXJyb3ItZmVlZGJhY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdXgtZXJyb3ItZmVlZGJhY2svdXgtZXJyb3ItZmVlZGJhY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gseUJBQXlCLEVBSXpCLDJCQUEyQixHQUM5QixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUszQyxNQUFNLE9BQU8sc0JBQXNCO0lBRy9CLFlBQW9CLFNBQTRCLEVBQVUsZ0JBQWtDO1FBQXhFLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUY1RixXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQTRCLENBQUM7SUFHakQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLEdBQXdCLEVBQUUsVUFBbUIsRUFBRSxPQUFnQixFQUFFLFVBQW9CO1FBQzlGLElBQUksVUFBVSxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQzdHO2FBQU07WUFDSCxJQUFJLENBQUMsTUFB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QUM7SUFFRCxVQUFVLENBQUMsR0FBd0I7UUFDL0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBNkIsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNqSDthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUE2QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3RHO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBVeENsZWFyRXJyb3JGZWVkYmFja0V2ZW50LFxuICAgIFV4RXJyb3JGZWVkYmFjayxcbiAgICBVeEVycm9yRmVlZGJhY2tFdmVudFR5cGUsXG4gICAgVXhIdHRwRXJyb3JSZXNwb25zZSxcbiAgICBVeFB1Ymxpc2hFcnJvckZlZWRiYWNrRXZlbnQsXG59IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyB3aXRoVXhFcnJvck1hbmFnZXIgfSBmcm9tICcuL3V4LWVycm9yLWhhbmRsZXIub3BlcmF0b3InO1xuaW1wb3J0IHsgVXhBcHBTaGVsbFNlcnZpY2UgfSBmcm9tICcuLi91eC1hcHAtc2hlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXhFcnJvckZlZWRiYWNrU2VydmljZSB7XG4gICAgZXJyb3JzID0gbmV3IFN1YmplY3Q8VXhFcnJvckZlZWRiYWNrRXZlbnRUeXBlPigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhc1NlcnZpY2U6IFV4QXBwU2hlbGxTZXJ2aWNlLCBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgUHVibGlzaGVzIGVycm9ycyB0byB0YXJnZXRlZCBjb21wb25lbnRzXG4gICAgICovXG4gICAgcHVibGlzaEVycm9yKGVycjogVXhIdHRwRXJyb3JSZXNwb25zZSwgaW5zdGFuY2VJZD86IHN0cmluZywgZ3JvdXBJZD86IHN0cmluZywgYWNjdW11bGF0ZT86IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKGluc3RhbmNlSWQpIHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzLm5leHQobmV3IFV4UHVibGlzaEVycm9yRmVlZGJhY2tFdmVudChlcnIudXhIdHRwRXJyb3JPdXRwdXQsIGluc3RhbmNlSWQsIGdyb3VwSWQsIGFjY3VtdWxhdGUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzLm5leHQobmV3IFV4UHVibGlzaEVycm9yRmVlZGJhY2tFdmVudChlcnIudXhIdHRwRXJyb3JPdXRwdXQsIHVuZGVmaW5lZCwgZ3JvdXBJZCwgYWNjdW11bGF0ZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIEdyb3dsIGVycm9yc1xuICAgICAqL1xuICAgIGdyb3dsRXJyb3IoZXJyOiBVeEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IGZlZWRCYWNrcyA9IGVyci51eEh0dHBFcnJvck91dHB1dC5nZXRGZWVkQmFja3MoKTtcbiAgICAgICAgY29uc3QgaXNHcm93bFN0aWNreSA9IGZhbHNlO1xuICAgICAgICBjb25zdCBpc0dyb3dsTXVsdGlwbGUgPSB0cnVlO1xuICAgICAgICBjb25zdCBncm93bExpZmUgPSAxMDAwMDtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSAnYm90dG9tLXJpZ2h0JztcbiAgICAgICAgZmVlZEJhY2tzLmZvckVhY2goKGZlZWRiYWNrOiBVeEVycm9yRmVlZGJhY2spID0+XG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KGZlZWRiYWNrLm1zZ0lkKS5waXBlKFxuICAgICAgICAgICAgICAgIHRha2UoMSkpLnN1YnNjcmliZSgodHJhbnNsYXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXNTZXJ2aWNlLmdyb3dsKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiBmZWVkYmFjay5zZXZlcml0eSB8fCAnZGFuZ2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6ICdFUlJPUicsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgaXNHcm93bFN0aWNreSxcbiAgICAgICAgICAgICAgICAgICAgaXNHcm93bE11bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICBncm93bExpZmUsXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjbGVhckVycm9yKGlkPzogc3RyaW5nLCBncm91cElkPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZXJyb3JzLm5leHQobmV3IFV4Q2xlYXJFcnJvckZlZWRiYWNrRXZlbnQoaWQsIGdyb3VwSWQpKTtcbiAgICB9XG5cbiAgICBjcmVhdGVMb2NhbEVycm9yTWFuYWdlcigpOiBVeEVycm9yTWFuYWdlciB7XG4gICAgICAgIHJldHVybiBuZXcgVXhFcnJvck1hbmFnZXIodGhpcyk7XG4gICAgfVxuXG4gICAgY3JlYXRlR2xvYmFsRXJyb3JNYW5hZ2VyKCk6IFV4RXJyb3JNYW5hZ2VyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBVeEVycm9yTWFuYWdlcih0aGlzLCB0cnVlKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVeEVycm9yTWFuYWdlciB7XG4gICAgcmVhZG9ubHkgaHR0cEVycm9yT3BlcmF0b3IgPSB3aXRoVXhFcnJvck1hbmFnZXIodGhpcyk7XG4gICAgcHJpdmF0ZSBpZCA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdXhFcnJvckZlZWRiYWNrU2VydmljZTogVXhFcnJvckZlZWRiYWNrU2VydmljZSwgcHJpdmF0ZSBpc0dsb2JhbD86IGJvb2xlYW4pIHtcbiAgICB9XG5cbiAgICBwdWJsaXNoRXJyb3IoZXJyOiBVeEh0dHBFcnJvclJlc3BvbnNlLCBncm91cElkPzogc3RyaW5nLCBhY2N1bXVsYXRlPzogYm9vbGVhbikge1xuICAgICAgICBpZiAoIXRoaXMuaXNHbG9iYWwpIHtcbiAgICAgICAgICAgIHRoaXMudXhFcnJvckZlZWRiYWNrU2VydmljZS5wdWJsaXNoRXJyb3IoZXJyLCB0aGlzLmlkLCBncm91cElkLCBhY2N1bXVsYXRlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXhFcnJvckZlZWRiYWNrU2VydmljZS5wdWJsaXNoRXJyb3IoZXJyLCB1bmRlZmluZWQsIGdyb3VwSWQsIGFjY3VtdWxhdGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xlYXJFcnJvcihncm91cElkPzogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0dsb2JhbCkge1xuICAgICAgICAgICAgdGhpcy51eEVycm9yRmVlZGJhY2tTZXJ2aWNlLmNsZWFyRXJyb3IodGhpcy5pZCwgZ3JvdXBJZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnV4RXJyb3JGZWVkYmFja1NlcnZpY2UuY2xlYXJFcnJvcih1bmRlZmluZWQsIGdyb3VwSWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ3Jvd2xFcnJvcihlcnI6IFV4SHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy51eEVycm9yRmVlZGJhY2tTZXJ2aWNlLmdyb3dsRXJyb3IoZXJyKTtcbiAgICB9XG5cbiAgICBlcnJvcnMoKTogT2JzZXJ2YWJsZTxVeEVycm9yRmVlZGJhY2tFdmVudFR5cGU+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzR2xvYmFsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51eEVycm9yRmVlZGJhY2tTZXJ2aWNlLmVycm9ycy5waXBlKGZpbHRlcigoZXZ0OiBVeEVycm9yRmVlZGJhY2tFdmVudFR5cGUpID0+IGV2dC5pZCA9PT0gdGhpcy5pZCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudXhFcnJvckZlZWRiYWNrU2VydmljZS5lcnJvcnMucGlwZShmaWx0ZXIoKGV2dDogVXhFcnJvckZlZWRiYWNrRXZlbnRUeXBlKSA9PiAhZXZ0LmlkKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXgtZXJyb3ItZmVlZGJhY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdXgtZXJyb3ItZmVlZGJhY2svdXgtZXJyb3ItZmVlZGJhY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gseUJBQXlCLEVBSXpCLDJCQUEyQixHQUM5QixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUszQyxNQUFNLE9BQU8sc0JBQXNCO0lBRy9CLFlBQW9CLFNBQTRCLEVBQVUsZ0JBQWtDO1FBQXhFLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUY1RixXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQTRCLENBQUM7SUFHakQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLEdBQXdCLEVBQUUsVUFBbUIsRUFBRSxPQUFnQixFQUFFLFVBQW9CO1FBQzlGLElBQUksVUFBVSxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQzdHO2FBQU07WUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFD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RUQsTUFBTTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBNkIsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNqSDthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUE2QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3RHO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBVeENsZWFyRXJyb3JGZWVkYmFja0V2ZW50LFxuICAgIFV4RXJyb3JGZWVkYmFjayxcbiAgICBVeEVycm9yRmVlZGJhY2tFdmVudFR5cGUsXG4gICAgVXhIdHRwRXJyb3JSZXNwb25zZSxcbiAgICBVeFB1Ymxpc2hFcnJvckZlZWRiYWNrRXZlbnQsXG59IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyB3aXRoVXhFcnJvck1hbmFnZXIgfSBmcm9tICcuL3V4LWVycm9yLWhhbmRsZXIub3BlcmF0b3InO1xuaW1wb3J0IHsgVXhBcHBTaGVsbFNlcnZpY2UgfSBmcm9tICcuLi91eC1hcHAtc2hlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXhFcnJvckZlZWRiYWNrU2VydmljZSB7XG4gICAgZXJyb3JzID0gbmV3IFN1YmplY3Q8VXhFcnJvckZlZWRiYWNrRXZlbnRUeXBlPigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhc1NlcnZpY2U6IFV4QXBwU2hlbGxTZXJ2aWNlLCBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgUHVibGlzaGVzIGVycm9ycyB0byB0YXJnZXRlZCBjb21wb25lbnRzXG4gICAgICovXG4gICAgcHVibGlzaEVycm9yKGVycjogVXhIdHRwRXJyb3JSZXNwb25zZSwgaW5zdGFuY2VJZD86IHN0cmluZywgZ3JvdXBJZD86IHN0cmluZywgYWNjdW11bGF0ZT86IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKGluc3RhbmNlSWQpIHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzLm5leHQobmV3IFV4UHVibGlzaEVycm9yRmVlZGJhY2tFdmVudChlcnIudXhIdHRwRXJyb3JPdXRwdXQsIGluc3RhbmNlSWQsIGdyb3VwSWQsIGFjY3VtdWxhdGUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzLm5leHQobmV3IFV4UHVibGlzaEVycm9yRmVlZGJhY2tFdmVudChlcnIudXhIdHRwRXJyb3JPdXRwdXQsIHVuZGVmaW5lZCwgZ3JvdXBJZCwgYWNjdW11bGF0ZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIEdyb3dsIGVycm9yc1xuICAgICAqL1xuICAgIGdyb3dsRXJyb3IoZXJyOiBVeEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IGZlZWRCYWNrcyA9IGVyci51eEh0dHBFcnJvck91dHB1dC5nZXRGZWVkQmFja3MoKTtcbiAgICAgICAgY29uc3QgaXNHcm93bFN0aWNreSA9IGZhbHNlO1xuICAgICAgICBjb25zdCBpc0dyb3dsTXVsdGlwbGUgPSB0cnVlO1xuICAgICAgICBjb25zdCBncm93bExpZmUgPSAxMDAwMDtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSAnYm90dG9tLXJpZ2h0JztcbiAgICAgICAgZmVlZEJhY2tzLmZvckVhY2goKGZlZWRiYWNrOiBVeEVycm9yRmVlZGJhY2spID0+XG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KGZlZWRiYWNrLm1zZ0lkKS5waXBlKFxuICAgICAgICAgICAgICAgIHRha2UoMSkpLnN1YnNjcmliZSgodHJhbnNsYXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXNTZXJ2aWNlLmdyb3dsKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiBmZWVkYmFjay5zZXZlcml0eSB8fCAnZGFuZ2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6ICdFUlJPUicsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgaXNHcm93bFN0aWNreSxcbiAgICAgICAgICAgICAgICAgICAgaXNHcm93bE11bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICBncm93bExpZmUsXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjbGVhckVycm9yKGlkPzogc3RyaW5nLCBncm91cElkPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZXJyb3JzLm5leHQobmV3IFV4Q2xlYXJFcnJvckZlZWRiYWNrRXZlbnQoaWQsIGdyb3VwSWQpKTtcbiAgICB9XG5cbiAgICBjcmVhdGVMb2NhbEVycm9yTWFuYWdlcigpOiBVeEVycm9yTWFuYWdlciB7XG4gICAgICAgIHJldHVybiBuZXcgVXhFcnJvck1hbmFnZXIodGhpcyk7XG4gICAgfVxuXG4gICAgY3JlYXRlR2xvYmFsRXJyb3JNYW5hZ2VyKCk6IFV4RXJyb3JNYW5hZ2VyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBVeEVycm9yTWFuYWdlcih0aGlzLCB0cnVlKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVeEVycm9yTWFuYWdlciB7XG4gICAgcmVhZG9ubHkgaHR0cEVycm9yT3BlcmF0b3IgPSB3aXRoVXhFcnJvck1hbmFnZXIodGhpcyk7XG4gICAgcHJpdmF0ZSBpZCA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdXhFcnJvckZlZWRiYWNrU2VydmljZTogVXhFcnJvckZlZWRiYWNrU2VydmljZSwgcHJpdmF0ZSBpc0dsb2JhbD86IGJvb2xlYW4pIHtcbiAgICB9XG5cbiAgICBwdWJsaXNoRXJyb3IoZXJyOiBVeEh0dHBFcnJvclJlc3BvbnNlLCBncm91cElkPzogc3RyaW5nLCBhY2N1bXVsYXRlPzogYm9vbGVhbikge1xuICAgICAgICBpZiAoIXRoaXMuaXNHbG9iYWwpIHtcbiAgICAgICAgICAgIHRoaXMudXhFcnJvckZlZWRiYWNrU2VydmljZS5wdWJsaXNoRXJyb3IoZXJyLCB0aGlzLmlkLCBncm91cElkLCBhY2N1bXVsYXRlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXhFcnJvckZlZWRiYWNrU2VydmljZS5wdWJsaXNoRXJyb3IoZXJyLCB1bmRlZmluZWQsIGdyb3VwSWQsIGFjY3VtdWxhdGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xlYXJFcnJvcihncm91cElkPzogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0dsb2JhbCkge1xuICAgICAgICAgICAgdGhpcy51eEVycm9yRmVlZGJhY2tTZXJ2aWNlLmNsZWFyRXJyb3IodGhpcy5pZCwgZ3JvdXBJZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnV4RXJyb3JGZWVkYmFja1NlcnZpY2UuY2xlYXJFcnJvcih1bmRlZmluZWQsIGdyb3VwSWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ3Jvd2xFcnJvcihlcnI6IFV4SHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy51eEVycm9yRmVlZGJhY2tTZXJ2aWNlLmdyb3dsRXJyb3IoZXJyKTtcbiAgICB9XG5cbiAgICBlcnJvcnMoKTogT2JzZXJ2YWJsZTxVeEVycm9yRmVlZGJhY2tFdmVudFR5cGU+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzR2xvYmFsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51eEVycm9yRmVlZGJhY2tTZXJ2aWNlLmVycm9ycy5waXBlKGZpbHRlcigoZXZ0OiBVeEVycm9yRmVlZGJhY2tFdmVudFR5cGUpID0+IGV2dC5pZCA9PT0gdGhpcy5pZCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudXhFcnJvckZlZWRiYWNrU2VydmljZS5lcnJvcnMucGlwZShmaWx0ZXIoKGV2dDogVXhFcnJvckZlZWRiYWNrRXZlbnRUeXBlKSA9PiAhZXZ0LmlkKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=