@ethlete/cdk 4.3.1 → 4.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @ethlete/cdk
2
2
 
3
+ ## 4.3.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [`836768bc`](https://github.com/ethlete-io/ethdk/commit/836768bc16098ba80f80af0d62391cc4b0ae7617) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix template of combobox body after new control flow migration
8
+
9
+ ## 4.3.2
10
+
11
+ ### Patch Changes
12
+
13
+ - [`2d37da99`](https://github.com/ethlete-io/ethdk/commit/2d37da99d930b0e8da1bf5aaf2656a9db80fb33f) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix overlay position breaking if the overlay gets closed and opened rapidly
14
+
15
+ - [`57cecd4c`](https://github.com/ethlete-io/ethdk/commit/57cecd4c6e529c97af730c9280aee1bdaebd7e59) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix ignored scrollable children not being ignored
16
+
17
+ - [`523d7665`](https://github.com/ethlete-io/ethdk/commit/523d7665eb14242647d1bf3f6cb1dc82f68f1eba) Thanks [@TomTomB](https://github.com/TomTomB)! - Disable tab index for scrollable navigation
18
+
3
19
  ## 4.3.1
4
20
 
5
21
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- import { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';
1
+ import { AsyncPipe, NgComponentOutlet, NgIf, NgTemplateOutlet } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, ElementRef, InjectionToken, ViewChild, ViewChildren, ViewEncapsulation, inject, } from '@angular/core';
3
3
  import { toSignal } from '@angular/core/rxjs-interop';
4
4
  import { ANIMATED_LIFECYCLE_TOKEN, AnimatedLifecycleDirective, ClickOutsideDirective, LetDirective, TypedQueryList, createDestroy, signalHostAttributes, signalHostClasses, } from '@ethlete/core';
@@ -46,12 +46,12 @@ export class ComboboxBodyComponent {
46
46
  this._themeProvider.syncWithProvider(provider);
47
47
  }
48
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ComboboxBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.3", type: ComboboxBodyComponent, isStandalone: true, selector: "et-combobox-body", host: { attributes: { "tabindex": "-1", "role": "listbox" }, properties: { "attr.id": "id" }, classAttribute: "et-combobox-body et-with-default-animation" }, providers: [
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: ComboboxBodyComponent, isStandalone: true, selector: "et-combobox-body", host: { attributes: { "tabindex": "-1", "role": "listbox" }, properties: { "attr.id": "id" }, classAttribute: "et-combobox-body et-with-default-animation" }, providers: [
50
50
  {
51
51
  provide: COMBOBOX_BODY_TOKEN,
52
52
  useExisting: ComboboxBodyComponent,
53
53
  },
54
- ], viewQueries: [{ propertyName: "_containerElementRef", first: true, predicate: ["containerElement"], descendants: true, read: ElementRef, static: true }, { propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }, { propertyName: "_options", predicate: ComboboxOptionComponent, descendants: true }], hostDirectives: [{ directive: i1.ClickOutsideDirective }, { directive: i2.ProvideThemeDirective }], ngImport: i0, template: "<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n @if (!options?.length && !combobox.error && !combobox.loading) {\n @if (combobox.customBodyEmptyTpl$ | async; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n @if (combobox.customBodyMoreItemsHintComponent$ | async; as comp) {\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyMoreItemsHintComponentInputs$ | async) ?? undefined\"\n />\n } @else {\n @if (combobox.bodyMoreItemsHintText) {\n <p class=\"et-combobox-body--more-items-hint\">\n {{ combobox.bodyMoreItemsHintText }}\n </p>\n }\n }\n <ng-template #default>\n @if (combobox.bodyMoreItemsHintText) {\n <p class=\"et-combobox-body--more-items-hint\">\n {{ combobox.bodyMoreItemsHintText }}\n </p>\n }\n </ng-template>\n }\n <ng-template #componentOrNone>\n @if (combobox.customBodyEmptyComponent$ | async; as comp) {\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyEmptyComponentInputs$ | async) ?? undefined\"\n />\n } @else {\n #default|\n }\n <ng-template #default>\n <p class=\"et-combobox-body--empty\">{{ combobox._tempEmptyText }}</p>\n </ng-template>\n </ng-template>\n }\n\n @if (combobox.error && !combobox.loading) {\n @if (combobox.customBodyErrorTpl$ | async; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl; context: { error: combobox.error }\" />\n } @else {\n #componentOrNone|\n }\n <ng-template #componentOrNone>\n @if (combobox.customBodyErrorComponent$ | async; as comp) {\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (customErrorComponentInputs$ | async) ?? { error: combobox.error }\"\n />\n }\n </ng-template>\n }\n\n @if (combobox.loading$ | async) {\n @if (combobox.customBodyLoadingTpl$ | async; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n #componentOrNone|\n }\n <ng-template #componentOrNone>\n @if (combobox.customBodyLoadingComponent$ | async; as comp) {\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyLoadingComponentInputs$ | async) ?? undefined\"\n />\n }\n </ng-template>\n }\n\n @if (!combobox.error) {\n @for (option of options; track trackByFn($index, option)) {\n <et-combobox-option [option]=\"option\" />\n }\n }\n\n @if (options?.length && combobox.showBodyMoreItemsHint) {\n @if (combobox.customBodyMoreItemsHintTpl$ | async; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n #componentOrNone|\n }\n <ng-template #componentOrNone>\n @if (combobox.customBodyMoreItemsHintComponent$ | async; as comp) {\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyMoreItemsHintComponentInputs$ | async) ?? undefined\"\n />\n } @else {\n #default|\n }\n <ng-template #default>\n @if (combobox.bodyMoreItemsHintText) {\n <p class=\"et-combobox-body--more-items-hint\">\n {{ combobox.bodyMoreItemsHintText }}\n </p>\n }\n </ng-template>\n </ng-template>\n }\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "component", type: ComboboxOptionComponent, selector: "et-combobox-option", inputs: ["option"] }, { kind: "directive", type: LetDirective, selector: "[etLet]", inputs: ["etLet"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: AnimatedLifecycleDirective, selector: "[etAnimatedLifecycle]", exportAs: ["etAnimatedLifecycle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
54
+ ], viewQueries: [{ propertyName: "_containerElementRef", first: true, predicate: ["containerElement"], descendants: true, read: ElementRef, static: true }, { propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }, { propertyName: "_options", predicate: ComboboxOptionComponent, descendants: true }], hostDirectives: [{ directive: i1.ClickOutsideDirective }, { directive: i2.ProvideThemeDirective }], ngImport: i0, template: "<!-- TODO(TRB): Use new control flow -->\n<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <ng-container *ngIf=\"!options?.length && !combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyEmptyTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyEmptyComponent$ | async as comp; else default\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyEmptyComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n <ng-template #default>\n <p class=\"et-combobox-body--empty\">{{ combobox._tempEmptyText }}</p>\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyErrorTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl; context: { error: combobox.error }\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyErrorComponent$ | async as comp\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (customErrorComponentInputs$ | async) ?? { error: combobox.error }\"\n />\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"combobox.loading$ | async\">\n <ng-container *ngIf=\"combobox.customBodyLoadingTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyLoadingComponent$ | async as comp\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyLoadingComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"!combobox.error\">\n <et-combobox-option *ngFor=\"let option of options; trackBy: trackByFn\" [option]=\"option\" />\n </ng-container>\n\n <ng-container *ngIf=\"options?.length && combobox.showBodyMoreItemsHint\">\n <ng-container *ngIf=\"combobox.customBodyMoreItemsHintTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyMoreItemsHintComponent$ | async as comp; else default\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyMoreItemsHintComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n <ng-template #default>\n <p *ngIf=\"combobox.bodyMoreItemsHintText\" class=\"et-combobox-body--more-items-hint\">\n {{ combobox.bodyMoreItemsHintText }}\n </p>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "component", type: ComboboxOptionComponent, selector: "et-combobox-option", inputs: ["option"] }, { kind: "directive", type: LetDirective, selector: "[etLet]", inputs: ["etLet"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: AnimatedLifecycleDirective, selector: "[etAnimatedLifecycle]", exportAs: ["etAnimatedLifecycle"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
55
55
  }
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ComboboxBodyComponent, decorators: [{
57
57
  type: Component,
@@ -67,12 +67,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
67
67
  LetDirective,
68
68
  AsyncPipe,
69
69
  AnimatedLifecycleDirective,
70
+ NgIf,
70
71
  ], hostDirectives: [ClickOutsideDirective, ProvideThemeDirective], providers: [
71
72
  {
72
73
  provide: COMBOBOX_BODY_TOKEN,
73
74
  useExisting: ComboboxBodyComponent,
74
75
  },
75
- ], template: "<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n @if (!options?.length && !combobox.error && !combobox.loading) {\n @if (combobox.customBodyEmptyTpl$ | async; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n @if (combobox.customBodyMoreItemsHintComponent$ | async; as comp) {\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyMoreItemsHintComponentInputs$ | async) ?? undefined\"\n />\n } @else {\n @if (combobox.bodyMoreItemsHintText) {\n <p class=\"et-combobox-body--more-items-hint\">\n {{ combobox.bodyMoreItemsHintText }}\n </p>\n }\n }\n <ng-template #default>\n @if (combobox.bodyMoreItemsHintText) {\n <p class=\"et-combobox-body--more-items-hint\">\n {{ combobox.bodyMoreItemsHintText }}\n </p>\n }\n </ng-template>\n }\n <ng-template #componentOrNone>\n @if (combobox.customBodyEmptyComponent$ | async; as comp) {\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyEmptyComponentInputs$ | async) ?? undefined\"\n />\n } @else {\n #default|\n }\n <ng-template #default>\n <p class=\"et-combobox-body--empty\">{{ combobox._tempEmptyText }}</p>\n </ng-template>\n </ng-template>\n }\n\n @if (combobox.error && !combobox.loading) {\n @if (combobox.customBodyErrorTpl$ | async; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl; context: { error: combobox.error }\" />\n } @else {\n #componentOrNone|\n }\n <ng-template #componentOrNone>\n @if (combobox.customBodyErrorComponent$ | async; as comp) {\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (customErrorComponentInputs$ | async) ?? { error: combobox.error }\"\n />\n }\n </ng-template>\n }\n\n @if (combobox.loading$ | async) {\n @if (combobox.customBodyLoadingTpl$ | async; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n #componentOrNone|\n }\n <ng-template #componentOrNone>\n @if (combobox.customBodyLoadingComponent$ | async; as comp) {\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyLoadingComponentInputs$ | async) ?? undefined\"\n />\n }\n </ng-template>\n }\n\n @if (!combobox.error) {\n @for (option of options; track trackByFn($index, option)) {\n <et-combobox-option [option]=\"option\" />\n }\n }\n\n @if (options?.length && combobox.showBodyMoreItemsHint) {\n @if (combobox.customBodyMoreItemsHintTpl$ | async; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n #componentOrNone|\n }\n <ng-template #componentOrNone>\n @if (combobox.customBodyMoreItemsHintComponent$ | async; as comp) {\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyMoreItemsHintComponentInputs$ | async) ?? undefined\"\n />\n } @else {\n #default|\n }\n <ng-template #default>\n @if (combobox.bodyMoreItemsHintText) {\n <p class=\"et-combobox-body--more-items-hint\">\n {{ combobox.bodyMoreItemsHintText }}\n </p>\n }\n </ng-template>\n </ng-template>\n }\n </ng-container>\n</div>\n" }]
76
+ ], template: "<!-- TODO(TRB): Use new control flow -->\n<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <ng-container *ngIf=\"!options?.length && !combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyEmptyTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyEmptyComponent$ | async as comp; else default\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyEmptyComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n <ng-template #default>\n <p class=\"et-combobox-body--empty\">{{ combobox._tempEmptyText }}</p>\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyErrorTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl; context: { error: combobox.error }\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyErrorComponent$ | async as comp\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (customErrorComponentInputs$ | async) ?? { error: combobox.error }\"\n />\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"combobox.loading$ | async\">\n <ng-container *ngIf=\"combobox.customBodyLoadingTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyLoadingComponent$ | async as comp\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyLoadingComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"!combobox.error\">\n <et-combobox-option *ngFor=\"let option of options; trackBy: trackByFn\" [option]=\"option\" />\n </ng-container>\n\n <ng-container *ngIf=\"options?.length && combobox.showBodyMoreItemsHint\">\n <ng-container *ngIf=\"combobox.customBodyMoreItemsHintTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyMoreItemsHintComponent$ | async as comp; else default\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyMoreItemsHintComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n <ng-template #default>\n <p *ngIf=\"combobox.bodyMoreItemsHintText\" class=\"et-combobox-body--more-items-hint\">\n {{ combobox.bodyMoreItemsHintText }}\n </p>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n</div>\n" }]
76
77
  }], propDecorators: { _containerElementRef: [{
77
78
  type: ViewChild,
78
79
  args: ['containerElement', { static: true, read: ElementRef }]
@@ -83,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
83
84
  type: ViewChildren,
84
85
  args: [ComboboxOptionComponent]
85
86
  }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY29tcG9uZW50cy9zZWxlY3QvY29tcG9uZW50cy9jb21ib2JveC9wYXJ0aWFscy9jb21ib2JveC1ib2R5L2NvbWJvYm94LWJvZHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0L2NvbXBvbmVudHMvY29tYm9ib3gvcGFydGlhbHMvY29tYm9ib3gtYm9keS9jb21ib2JveC1ib2R5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsY0FBYyxFQUlkLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUNMLHdCQUF3QixFQUN4QiwwQkFBMEIsRUFDMUIscUJBQXFCLEVBQ3JCLFlBQVksRUFDWixjQUFjLEVBQ2QsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFF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QkE1QmpDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBRWhCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUsNENBQTRDO3dCQUNuRCxRQUFRLEVBQUUsSUFBSTt3QkFDZCxXQUFXLEVBQUUsSUFBSTt3QkFDakIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCLFdBQ1E7d0JBQ1AsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsWUFBWTt3QkFDWixTQUFTO3dCQUNULDBCQUEwQjtxQkFDM0Isa0JBQ2UsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQyxhQUNuRDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLHVCQUF1Qjt5QkFDbkM7cUJBQ0Y7OEJBV1Esb0JBQW9CO3NCQUQ1QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUl4RCxrQkFBa0I7c0JBRDFCLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlqRCxRQUFRO3NCQURYLFlBQVk7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NvbXBvbmVudE91dGxldCwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIEFOSU1BVEVEX0xJRkVDWUNMRV9UT0tFTixcbiAgQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmUsXG4gIENsaWNrT3V0c2lkZURpcmVjdGl2ZSxcbiAgTGV0RGlyZWN0aXZlLFxuICBUeXBlZFF1ZXJ5TGlzdCxcbiAgY3JlYXRlRGVzdHJveSxcbiAgc2lnbmFsSG9zdEF0dHJpYnV0ZXMsXG4gIHNpZ25hbEhvc3RDbGFzc2VzLFxufSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IFByb3ZpZGVUaGVtZURpcmVjdGl2ZSwgVEhFTUVfUFJPVklERVIgfSBmcm9tICdAZXRobGV0ZS90aGVtaW5nJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21ib2JveEJvZHksIEFic3RyYWN0Q29tYm9ib3hPcHRpb24sIENPTUJPQk9YX1RPS0VOIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBDb21ib2JveE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbWJvYm94LW9wdGlvbic7XG5cbmV4cG9ydCBjb25zdCBDT01CT0JPWF9CT0RZX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPENvbWJvYm94Qm9keUNvbXBvbmVudD4oJ0VUX0NPTUJPQk9YX0JPRFlfVE9LRU4nKTtcblxubGV0IF91bmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LWNvbWJvYm94LWJvZHknLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tYm9ib3gtYm9keS5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1jb21ib2JveC1ib2R5IGV0LXdpdGgtZGVmYXVsdC1hbmltYXRpb24nLFxuICAgIHRhYmluZGV4OiAnLTEnLFxuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgIHJvbGU6ICdsaXN0Ym94JyxcbiAgfSxcbiAgaW1wb3J0czogW1xuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgTmdDb21wb25lbnRPdXRsZXQsXG4gICAgQ29tYm9ib3hPcHRpb25Db21wb25lbnQsXG4gICAgTGV0RGlyZWN0aXZlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBBbmltYXRlZExpZmVjeWNsZURpcmVjdGl2ZSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtDbGlja091dHNpZGVEaXJlY3RpdmUsIFByb3ZpZGVUaGVtZURpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IENPTUJPQk9YX0JPRFlfVE9LRU4sXG4gICAgICB1c2VFeGlzdGluZzogQ29tYm9ib3hCb2R5Q29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvbWJvYm94Qm9keUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWJzdHJhY3RDb21ib2JveEJvZHkge1xuICByZWFkb25seSBpZCA9IGBldC1jb21ib2JveC1ib2R5LSR7X3VuaXF1ZUlkKyt9YDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xpY2tPdXRzaWRlID0gaW5qZWN0KENsaWNrT3V0c2lkZURpcmVjdGl2ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RoZW1lUHJvdmlkZXIgPSBpbmplY3QoVEhFTUVfUFJPVklERVIpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tYm9ib3ggPSBpbmplY3QoQ09NQk9CT1hfVE9LRU4pO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lckVsZW1lbnQnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICByZWFkb25seSBfY29udGFpbmVyRWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZChBTklNQVRFRF9MSUZFQ1lDTEVfVE9LRU4sIHsgc3RhdGljOiB0cnVlIH0pXG4gIHJlYWRvbmx5IF9hbmltYXRlZExpZmVjeWNsZT86IEFuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlO1xuXG4gIEBWaWV3Q2hpbGRyZW4oQ29tYm9ib3hPcHRpb25Db21wb25lbnQpXG4gIHNldCBfb3B0aW9ucyhvcHRpb25zOiBUeXBlZFF1ZXJ5TGlzdDxDb21ib2JveE9wdGlvbkNvbXBvbmVudD4pIHtcbiAgICB0aGlzLl9vcHRpb25zJC5uZXh0KG9wdGlvbnMpO1xuICB9XG4gIHJlYWRvbmx5IF9vcHRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHlwZWRRdWVyeUxpc3Q8QWJzdHJhY3RDb21ib2JveE9wdGlvbj4gfCBudWxsPihudWxsKTtcblxuICByZWFkb25seSBob3N0Q2xhc3NCaW5kaW5ncyA9IHNpZ25hbEhvc3RDbGFzc2VzKHtcbiAgICAnZXQtY29tYm9ib3gtYm9keS0tbG9hZGluZyc6IHRvU2lnbmFsKHRoaXMuY29tYm9ib3gubG9hZGluZyQpLFxuICAgICdldC1jb21ib2JveC1ib2R5LS1tdWx0aXBsZSc6IHRvU2lnbmFsKHRoaXMuY29tYm9ib3gubXVsdGlwbGUkKSxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaG9zdEF0dHJpYnV0ZUJpbmRpbmdzID0gc2lnbmFsSG9zdEF0dHJpYnV0ZXMoe1xuICAgICdhcmlhLW11bHRpc2VsZWN0YWJsZSc6IHRvU2lnbmFsKHRoaXMuY29tYm9ib3gubXVsdGlwbGUkKSxcbiAgICAnYXJpYS1sYWJlbGxlZGJ5JzogdG9TaWduYWwodGhpcy5jb21ib2JveC5faW5wdXQubGFiZWxJZCQpLFxuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VzdG9tRXJyb3JDb21wb25lbnRJbnB1dHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jb21ib2JveC5lcnJvciQsXG4gICAgdGhpcy5jb21ib2JveC5jdXN0b21Cb2R5RXJyb3JDb21wb25lbnRJbnB1dHMkLFxuICBdKS5waXBlKG1hcCgoW2Vycm9yLCBpbnB1dHNdKSA9PiAoeyBlcnJvciwgLi4uaW5wdXRzIH0pKSk7XG5cbiAgX2JvZHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jbGlja091dHNpZGUuZXRDbGlja091dHNpZGVcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5jb21ib2JveC5jbG9zZSgpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjx1bmtub3duPiA9IChpbmRleCwgaXRlbSkgPT4gdGhpcy5jb21ib2JveC5fc2VsZWN0aW9uTW9kZWwuZ2V0S2V5KGl0ZW0pO1xuXG4gIF9zZXRUaGVtZUZyb21Qcm92aWRlcihwcm92aWRlcjogUHJvdmlkZVRoZW1lRGlyZWN0aXZlKSB7XG4gICAgdGhpcy5fdGhlbWVQcm92aWRlci5zeW5jV2l0aFByb3ZpZGVyKHByb3ZpZGVyKTtcbiAgfVxufVxuIiwiPGRpdiAjY29udGFpbmVyRWxlbWVudCBjbGFzcz1cImV0LWNvbWJvYm94LWJvZHktY29udGFpbmVyXCIgZXRBbmltYXRlZExpZmVjeWNsZT5cbiAgPG5nLWNvbnRhaW5lciAqZXRMZXQ9XCJjb21ib2JveC5vcHRpb25zJCB8IGFzeW5jIGFzIG9wdGlvbnNcIj5cbiAgICBAaWYgKCFvcHRpb25zPy5sZW5ndGggJiYgIWNvbWJvYm94LmVycm9yICYmICFjb21ib2JveC5sb2FkaW5nKSB7XG4gICAgICBAaWYgKGNvbWJvYm94LmN1c3RvbUJvZHlFbXB0eVRwbCQgfCBhc3luYzsgYXMgdHBsKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxcIiAvPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAoY29tYm9ib3guY3VzdG9tQm9keU1vcmVJdGVtc0hpbnRDb21wb25lbnQkIHwgYXN5bmM7IGFzIGNvbXApIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdDb21wb25lbnRPdXRsZXQ9XCJjb21wOyBpbnB1dHM6IChjb21ib2JveC5jdXN0b21Cb2R5TW9yZUl0ZW1zSGludENvbXBvbmVudElucHV0cyQgfCBhc3luYykgPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICBAaWYgKGNvbWJvYm94LmJvZHlNb3JlSXRlbXNIaW50VGV4dCkge1xuICAgICAgICAgICAgPHAgY2xhc3M9XCJldC1jb21ib2JveC1ib2R5LS1tb3JlLWl0ZW1zLWhpbnRcIj5cbiAgICAgICAgICAgICAge3sgY29tYm9ib3guYm9keU1vcmVJdGVtc0hpbnRUZXh0IH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cbiAgICAgICAgICBAaWYgKGNvbWJvYm94LmJvZHlNb3JlSXRlbXNIaW50VGV4dCkge1xuICAgICAgICAgICAgPHAgY2xhc3M9XCJldC1jb21ib2JveC1ib2R5LS1tb3JlLWl0ZW1zLWhpbnRcIj5cbiAgICAgICAgICAgICAge3sgY29tYm9ib3guYm9keU1vcmVJdGVtc0hpbnRUZXh0IH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgfVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgfVxuICAgICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRPck5vbmU+XG4gICAgICAgIEBpZiAoY29tYm9ib3guY3VzdG9tQm9keUVtcHR5Q29tcG9uZW50JCB8IGFzeW5jOyBhcyBjb21wKSB7XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiY29tcDsgaW5wdXRzOiAoY29tYm9ib3guY3VzdG9tQm9keUVtcHR5Q29tcG9uZW50SW5wdXRzJCB8IGFzeW5jKSA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICNkZWZhdWx0fFxuICAgICAgICB9XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cbiAgICAgICAgICA8cCBjbGFzcz1cImV0LWNvbWJvYm94LWJvZHktLWVtcHR5XCI+e3sgY29tYm9ib3guX3RlbXBFbXB0eVRleHQgfX08L3A+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIH1cblxuICAgIEBpZiAoY29tYm9ib3guZXJyb3IgJiYgIWNvbWJvYm94LmxvYWRpbmcpIHtcbiAgICAgIEBpZiAoY29tYm9ib3guY3VzdG9tQm9keUVycm9yVHBsJCB8IGFzeW5jOyBhcyB0cGwpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbDsgY29udGV4dDogeyBlcnJvcjogY29tYm9ib3guZXJyb3IgfVwiIC8+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgI2NvbXBvbmVudE9yTm9uZXxcbiAgICAgIH1cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50T3JOb25lPlxuICAgICAgICBAaWYgKGNvbWJvYm94LmN1c3RvbUJvZHlFcnJvckNvbXBvbmVudCQgfCBhc3luYzsgYXMgY29tcCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXA7IGlucHV0czogKGN1c3RvbUVycm9yQ29tcG9uZW50SW5wdXRzJCB8IGFzeW5jKSA/PyB7IGVycm9yOiBjb21ib2JveC5lcnJvciB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIH1cblxuICAgIEBpZiAoY29tYm9ib3gubG9hZGluZyQgfCBhc3luYykge1xuICAgICAgQGlmIChjb21ib2JveC5jdXN0b21Cb2R5TG9hZGluZ1RwbCQgfCBhc3luYzsgYXMgdHBsKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxcIiAvPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICNjb21wb25lbnRPck5vbmV8XG4gICAgICB9XG4gICAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudE9yTm9uZT5cbiAgICAgICAgQGlmIChjb21ib2JveC5jdXN0b21Cb2R5TG9hZGluZ0NvbXBvbmVudCQgfCBhc3luYzsgYXMgY29tcCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXA7IGlucHV0czogKGNvbWJvYm94LmN1c3RvbUJvZHlMb2FkaW5nQ29tcG9uZW50SW5wdXRzJCB8IGFzeW5jKSA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfVxuXG4gICAgQGlmICghY29tYm9ib3guZXJyb3IpIHtcbiAgICAgIEBmb3IgKG9wdGlvbiBvZiBvcHRpb25zOyB0cmFjayB0cmFja0J5Rm4oJGluZGV4LCBvcHRpb24pKSB7XG4gICAgICAgIDxldC1jb21ib2JveC1vcHRpb24gW29wdGlvbl09XCJvcHRpb25cIiAvPlxuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAob3B0aW9ucz8ubGVuZ3RoICYmIGNvbWJvYm94LnNob3dCb2R5TW9yZUl0ZW1zSGludCkge1xuICAgICAgQGlmIChjb21ib2JveC5jdXN0b21Cb2R5TW9yZUl0ZW1zSGludFRwbCQgfCBhc3luYzsgYXMgdHBsKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxcIiAvPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICNjb21wb25lbnRPck5vbmV8XG4gICAgICB9XG4gICAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudE9yTm9uZT5cbiAgICAgICAgQGlmIChjb21ib2JveC5jdXN0b21Cb2R5TW9yZUl0ZW1zSGludENvbXBvbmVudCQgfCBhc3luYzsgYXMgY29tcCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXA7IGlucHV0czogKGNvbWJvYm94LmN1c3RvbUJvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50SW5wdXRzJCB8IGFzeW5jKSA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICNkZWZhdWx0fFxuICAgICAgICB9XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cbiAgICAgICAgICBAaWYgKGNvbWJvYm94LmJvZHlNb3JlSXRlbXNIaW50VGV4dCkge1xuICAgICAgICAgICAgPHAgY2xhc3M9XCJldC1jb21ib2JveC1ib2R5LS1tb3JlLWl0ZW1zLWhpbnRcIj5cbiAgICAgICAgICAgICAge3sgY29tYm9ib3guYm9keU1vcmVJdGVtc0hpbnRUZXh0IH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgfVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY29tcG9uZW50cy9zZWxlY3QvY29tcG9uZW50cy9jb21ib2JveC9wYXJ0aWFscy9jb21ib2JveC1ib2R5L2NvbWJvYm94LWJvZHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0L2NvbXBvbmVudHMvY29tYm9ib3gvcGFydGlhbHMvY29tYm9ib3gtYm9keS9jb21ib2JveC1ib2R5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkYsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLGNBQWMsRUFJZCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osY0FBYyxFQUNkLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFF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LElBQUk7OzJGQVVLLHFCQUFxQjtrQkE3QmpDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBRWhCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUsNENBQTRDO3dCQUNuRCxRQUFRLEVBQUUsSUFBSTt3QkFDZCxXQUFXLEVBQUUsSUFBSTt3QkFDakIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCLFdBQ1E7d0JBQ1AsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsWUFBWTt3QkFDWixTQUFTO3dCQUNULDBCQUEwQjt3QkFDMUIsSUFBSTtxQkFDTCxrQkFDZSxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDLGFBQ25EO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsdUJBQXVCO3lCQUNuQztxQkFDRjs4QkFXUSxvQkFBb0I7c0JBRDVCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSXhELGtCQUFrQjtzQkFEMUIsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSWpELFFBQVE7c0JBRFgsWUFBWTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ29tcG9uZW50T3V0bGV0LCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdGlvblRva2VuLFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgQU5JTUFURURfTElGRUNZQ0xFX1RPS0VOLFxuICBBbmltYXRlZExpZmVjeWNsZURpcmVjdGl2ZSxcbiAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxuICBMZXREaXJlY3RpdmUsXG4gIFR5cGVkUXVlcnlMaXN0LFxuICBjcmVhdGVEZXN0cm95LFxuICBzaWduYWxIb3N0QXR0cmlidXRlcyxcbiAgc2lnbmFsSG9zdENsYXNzZXMsXG59IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgUHJvdmlkZVRoZW1lRGlyZWN0aXZlLCBUSEVNRV9QUk9WSURFUiB9IGZyb20gJ0BldGhsZXRlL3RoZW1pbmcnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbWJvYm94Qm9keSwgQWJzdHJhY3RDb21ib2JveE9wdGlvbiwgQ09NQk9CT1hfVE9LRU4gfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IENvbWJvYm94T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tYm9ib3gtb3B0aW9uJztcblxuZXhwb3J0IGNvbnN0IENPTUJPQk9YX0JPRFlfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29tYm9ib3hCb2R5Q29tcG9uZW50PignRVRfQ09NQk9CT1hfQk9EWV9UT0tFTicpO1xuXG5sZXQgX3VuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtY29tYm9ib3gtYm9keScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21ib2JveC1ib2R5LmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LWNvbWJvYm94LWJvZHkgZXQtd2l0aC1kZWZhdWx0LWFuaW1hdGlvbicsXG4gICAgdGFiaW5kZXg6ICctMScsXG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgcm9sZTogJ2xpc3Rib3gnLFxuICB9LFxuICBpbXBvcnRzOiBbXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBOZ0NvbXBvbmVudE91dGxldCxcbiAgICBDb21ib2JveE9wdGlvbkNvbXBvbmVudCxcbiAgICBMZXREaXJlY3RpdmUsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlLFxuICAgIE5nSWYsXG4gIF0sXG4gIGhvc3REaXJlY3RpdmVzOiBbQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBQcm92aWRlVGhlbWVEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBDT01CT0JPWF9CT0RZX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IENvbWJvYm94Qm9keUNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb21ib2JveEJvZHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFic3RyYWN0Q29tYm9ib3hCb2R5IHtcbiAgcmVhZG9ubHkgaWQgPSBgZXQtY29tYm9ib3gtYm9keS0ke191bmlxdWVJZCsrfWA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NsaWNrT3V0c2lkZSA9IGluamVjdChDbGlja091dHNpZGVEaXJlY3RpdmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF90aGVtZVByb3ZpZGVyID0gaW5qZWN0KFRIRU1FX1BST1ZJREVSKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbWJvYm94ID0gaW5qZWN0KENPTUJPQk9YX1RPS0VOKTtcblxuICBAVmlld0NoaWxkKCdjb250YWluZXJFbGVtZW50JywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcmVhZG9ubHkgX2NvbnRhaW5lckVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoQU5JTUFURURfTElGRUNZQ0xFX1RPS0VOLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICByZWFkb25seSBfYW5pbWF0ZWRMaWZlY3ljbGU/OiBBbmltYXRlZExpZmVjeWNsZURpcmVjdGl2ZTtcblxuICBAVmlld0NoaWxkcmVuKENvbWJvYm94T3B0aW9uQ29tcG9uZW50KVxuICBzZXQgX29wdGlvbnMob3B0aW9uczogVHlwZWRRdWVyeUxpc3Q8Q29tYm9ib3hPcHRpb25Db21wb25lbnQ+KSB7XG4gICAgdGhpcy5fb3B0aW9ucyQubmV4dChvcHRpb25zKTtcbiAgfVxuICByZWFkb25seSBfb3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFR5cGVkUXVlcnlMaXN0PEFic3RyYWN0Q29tYm9ib3hPcHRpb24+IHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgaG9zdENsYXNzQmluZGluZ3MgPSBzaWduYWxIb3N0Q2xhc3Nlcyh7XG4gICAgJ2V0LWNvbWJvYm94LWJvZHktLWxvYWRpbmcnOiB0b1NpZ25hbCh0aGlzLmNvbWJvYm94LmxvYWRpbmckKSxcbiAgICAnZXQtY29tYm9ib3gtYm9keS0tbXVsdGlwbGUnOiB0b1NpZ25hbCh0aGlzLmNvbWJvYm94Lm11bHRpcGxlJCksXG4gIH0pO1xuXG4gIHJlYWRvbmx5IGhvc3RBdHRyaWJ1dGVCaW5kaW5ncyA9IHNpZ25hbEhvc3RBdHRyaWJ1dGVzKHtcbiAgICAnYXJpYS1tdWx0aXNlbGVjdGFibGUnOiB0b1NpZ25hbCh0aGlzLmNvbWJvYm94Lm11bHRpcGxlJCksXG4gICAgJ2FyaWEtbGFiZWxsZWRieSc6IHRvU2lnbmFsKHRoaXMuY29tYm9ib3guX2lucHV0LmxhYmVsSWQkKSxcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1c3RvbUVycm9yQ29tcG9uZW50SW5wdXRzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuY29tYm9ib3guZXJyb3IkLFxuICAgIHRoaXMuY29tYm9ib3guY3VzdG9tQm9keUVycm9yQ29tcG9uZW50SW5wdXRzJCxcbiAgXSkucGlwZShtYXAoKFtlcnJvciwgaW5wdXRzXSkgPT4gKHsgZXJyb3IsIC4uLmlucHV0cyB9KSkpO1xuXG4gIF9ib2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xpY2tPdXRzaWRlLmV0Q2xpY2tPdXRzaWRlXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuY29tYm9ib3guY2xvc2UoKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248dW5rbm93bj4gPSAoaW5kZXgsIGl0ZW0pID0+IHRoaXMuY29tYm9ib3guX3NlbGVjdGlvbk1vZGVsLmdldEtleShpdGVtKTtcblxuICBfc2V0VGhlbWVGcm9tUHJvdmlkZXIocHJvdmlkZXI6IFByb3ZpZGVUaGVtZURpcmVjdGl2ZSkge1xuICAgIHRoaXMuX3RoZW1lUHJvdmlkZXIuc3luY1dpdGhQcm92aWRlcihwcm92aWRlcik7XG4gIH1cbn1cbiIsIjwhLS0gVE9ETyhUUkIpOiBVc2UgbmV3IGNvbnRyb2wgZmxvdyAtLT5cbjxkaXYgI2NvbnRhaW5lckVsZW1lbnQgY2xhc3M9XCJldC1jb21ib2JveC1ib2R5LWNvbnRhaW5lclwiIGV0QW5pbWF0ZWRMaWZlY3ljbGU+XG4gIDxuZy1jb250YWluZXIgKmV0TGV0PVwiY29tYm9ib3gub3B0aW9ucyQgfCBhc3luYyBhcyBvcHRpb25zXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFvcHRpb25zPy5sZW5ndGggJiYgIWNvbWJvYm94LmVycm9yICYmICFjb21ib2JveC5sb2FkaW5nXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3guY3VzdG9tQm9keUVtcHR5VHBsJCB8IGFzeW5jIGFzIHRwbDsgZWxzZSBjb21wb25lbnRPck5vbmVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbFwiIC8+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50T3JOb25lPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3guY3VzdG9tQm9keUVtcHR5Q29tcG9uZW50JCB8IGFzeW5jIGFzIGNvbXA7IGVsc2UgZGVmYXVsdFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXA7IGlucHV0czogKGNvbWJvYm94LmN1c3RvbUJvZHlFbXB0eUNvbXBvbmVudElucHV0cyQgfCBhc3luYykgPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0PlxuICAgICAgICAgIDxwIGNsYXNzPVwiZXQtY29tYm9ib3gtYm9keS0tZW1wdHlcIj57eyBjb21ib2JveC5fdGVtcEVtcHR5VGV4dCB9fTwvcD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3guZXJyb3IgJiYgIWNvbWJvYm94LmxvYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21ib2JveC5jdXN0b21Cb2R5RXJyb3JUcGwkIHwgYXN5bmMgYXMgdHBsOyBlbHNlIGNvbXBvbmVudE9yTm9uZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidHBsOyBjb250ZXh0OiB7IGVycm9yOiBjb21ib2JveC5lcnJvciB9XCIgLz5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRPck5vbmU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21ib2JveC5jdXN0b21Cb2R5RXJyb3JDb21wb25lbnQkIHwgYXN5bmMgYXMgY29tcFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXA7IGlucHV0czogKGN1c3RvbUVycm9yQ29tcG9uZW50SW5wdXRzJCB8IGFzeW5jKSA/PyB7IGVycm9yOiBjb21ib2JveC5lcnJvciB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3gubG9hZGluZyQgfCBhc3luY1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbWJvYm94LmN1c3RvbUJvZHlMb2FkaW5nVHBsJCB8IGFzeW5jIGFzIHRwbDsgZWxzZSBjb21wb25lbnRPck5vbmVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbFwiIC8+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50T3JOb25lPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3guY3VzdG9tQm9keUxvYWRpbmdDb21wb25lbnQkIHwgYXN5bmMgYXMgY29tcFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXA7IGlucHV0czogKGNvbWJvYm94LmN1c3RvbUJvZHlMb2FkaW5nQ29tcG9uZW50SW5wdXRzJCB8IGFzeW5jKSA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29tYm9ib3guZXJyb3JcIj5cbiAgICAgIDxldC1jb21ib2JveC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIiBbb3B0aW9uXT1cIm9wdGlvblwiIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9ucz8ubGVuZ3RoICYmIGNvbWJvYm94LnNob3dCb2R5TW9yZUl0ZW1zSGludFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbWJvYm94LmN1c3RvbUJvZHlNb3JlSXRlbXNIaW50VHBsJCB8IGFzeW5jIGFzIHRwbDsgZWxzZSBjb21wb25lbnRPck5vbmVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbFwiIC8+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50T3JOb25lPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3guY3VzdG9tQm9keU1vcmVJdGVtc0hpbnRDb21wb25lbnQkIHwgYXN5bmMgYXMgY29tcDsgZWxzZSBkZWZhdWx0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiY29tcDsgaW5wdXRzOiAoY29tYm9ib3guY3VzdG9tQm9keU1vcmVJdGVtc0hpbnRDb21wb25lbnRJbnB1dHMkIHwgYXN5bmMpID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cbiAgICAgICAgICA8cCAqbmdJZj1cImNvbWJvYm94LmJvZHlNb3JlSXRlbXNIaW50VGV4dFwiIGNsYXNzPVwiZXQtY29tYm9ib3gtYm9keS0tbW9yZS1pdGVtcy1oaW50XCI+XG4gICAgICAgICAgICB7eyBjb21ib2JveC5ib2R5TW9yZUl0ZW1zSGludFRleHQgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -211,7 +211,7 @@ export class OverlayService {
211
211
  overlayRef.updatePosition(currConfig.position);
212
212
  }
213
213
  if (currConfig.positionStrategy) {
214
- cdkRef.overlayRef.updatePositionStrategy(currConfig.positionStrategy);
214
+ cdkRef.overlayRef.updatePositionStrategy(currConfig.positionStrategy());
215
215
  }
216
216
  else {
217
217
  cdkRef.overlayRef.updatePosition();
@@ -285,4 +285,4 @@ export class OverlayService {
285
285
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OverlayService, decorators: [{
286
286
  type: Injectable
287
287
  }] });
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3NlcnZpY2VzL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRSxZQUFZLElBQUksZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0YsT0FBTyxFQUFnQixVQUFVLEVBQTBCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUcsT0FBTyxFQUNMLDZCQUE2QixFQUM3QiwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsVUFBVSxFQUNWLG1CQUFtQixHQUNwQixNQUFNLFVBQVUsQ0FBQzs7QUFFbEIsSUFBSSxRQUFRLEdBQUcsQ0FB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QUM7Z0JBQUUsT0FBTztZQUV6QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNsQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxVQUFXLENBQUM7UUFFbkIsMkRBQTJEO0lBQzdELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGNBQWMsQ0FBQyxFQUFVO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFzQjtRQUMzQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBRXhCLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDVixRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUMxQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQztJQUNoRixDQUFDOzhHQTlTVSxjQUFjO2tIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VDc3NQaXhlbFZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERpYWxvZyBhcyBDZGtEaWFsb2csIERpYWxvZ0NvbmZpZyBhcyBDZGtEaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUk9PVF9CT1VOREFSWV9UT0tFTiwgUm9vdEJvdW5kYXJ5RGlyZWN0aXZlLCBWaWV3cG9ydFNlcnZpY2UsIGNyZWF0ZURlc3Ryb3ksIGVxdWFsIH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBQcm92aWRlVGhlbWVEaXJlY3RpdmUsIFRIRU1FX1BST1ZJREVSIH0gZnJvbSAnQGV0aGxldGUvdGhlbWluZyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBkZWZlciwgbWFwLCBvZiwgcGFpcndpc2UsIHN0YXJ0V2l0aCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE92ZXJsYXlDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzJztcbmltcG9ydCB7IE9WRVJMQVlfQ09ORklHLCBPVkVSTEFZX0RBVEEsIE9WRVJMQVlfREVGQVVMVF9PUFRJT05TLCBPVkVSTEFZX1NDUk9MTF9TVFJBVEVHWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPdmVybGF5Q29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgRVRfT1ZFUkxBWV9CT1RUT01fU0hFRVRfQ0xBU1MsXG4gIEVUX09WRVJMQVlfTEVGVF9TSEVFVF9DTEFTUyxcbiAgRVRfT1ZFUkxBWV9SSUdIVF9TSEVFVF9DTEFTUyxcbiAgRVRfT1ZFUkxBWV9UT1BfU0hFRVRfQ0xBU1MsXG4gIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gIE92ZXJsYXlSZWYsXG4gIGNyZWF0ZU92ZXJsYXlDb25maWcsXG59IGZyb20gJy4uL3V0aWxzJztcblxubGV0IHVuaXF1ZUlkID0gMDtcbmNvbnN0IElEX1BSRUZJWCA9ICdldC1vdmVybGF5LSc7XG5cbmNvbnN0IHNldFN0eWxlID0gKGVsOiBIVE1MRWxlbWVudCwgc3R5bGU6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpID0+IHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShzdHlsZSk7XG4gIH0gZWxzZSB7XG4gICAgZWwuc3R5bGUuc2V0UHJvcGVydHkoc3R5bGUsIGNvZXJjZUNzc1BpeGVsVmFsdWUodmFsdWUpKTtcbiAgfVxufTtcblxuY29uc3Qgc2V0Q2xhc3MgPSAoZWw6IEhUTUxFbGVtZW50LCBwcmV2Q2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXSwgY3VyckNsYXNzPzogc3RyaW5nIHwgc3RyaW5nW10pID0+IHtcbiAgaWYgKCFlcXVhbChwcmV2Q2xhc3MsIGN1cnJDbGFzcykpIHtcbiAgICBpZiAocHJldkNsYXNzKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShwcmV2Q2xhc3MpKSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoLi4ucHJldkNsYXNzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUocHJldkNsYXNzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3VyckNsYXNzKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyQ2xhc3MpKSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoLi4uY3VyckNsYXNzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoY3VyckNsYXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IGlzSHRtbEVsZW1lbnQgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmtub3duKTogZWxlbWVudCBpcyBIVE1MRWxlbWVudCA9PiB7XG4gIHJldHVybiBlbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ7XG59O1xuXG5jb25zdCBpc1RvdWNoRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KTogZXZlbnQgaXMgVG91Y2hFdmVudCA9PiB7XG4gIHJldHVybiBldmVudC50eXBlWzBdID09PSAndCc7XG59O1xuXG5jb25zdCBpc1BvaW50ZXJFdmVudCA9IChldmVudDogRXZlbnQpOiBldmVudCBpcyBQb2ludGVyRXZlbnQgPT4ge1xuICByZXR1cm4gZXZlbnQudHlwZVswXSA9PT0gJ2MnO1xufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE92ZXJsYXlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRPcHRpb25zID0gaW5qZWN0KE9WRVJMQVlfREVGQVVMVF9PUFRJT05TLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zY3JvbGxTdHJhdGVneSA9IGluamVjdChPVkVSTEFZX1NDUk9MTF9TVFJBVEVHWSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudE92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGlhbG9nID0gaW5qZWN0KENka0RpYWxvZyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdwb3J0U2VydmljZSA9IGluamVjdChWaWV3cG9ydFNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX29wZW5PdmVybGF5c0F0VGhpc0xldmVsOiBPdmVybGF5UmVmW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDxPdmVybGF5UmVmPigpO1xuXG4gIHJlYWRvbmx5IHBvc2l0aW9ucyA9IG5ldyBPdmVybGF5UG9zaXRpb25CdWlsZGVyKCk7XG5cbiAgcmVhZG9ubHkgYWZ0ZXJBbGxDbG9zZWQgPSBkZWZlcigoKSA9PlxuICAgIHRoaXMub3Blbk92ZXJsYXlzLmxlbmd0aCA/IHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkgOiB0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCkpLFxuICApIGFzIE9ic2VydmFibGU8dm9pZD47XG5cbiAgZ2V0IG9wZW5PdmVybGF5cygpOiBPdmVybGF5UmVmW10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZSA/IHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlLm9wZW5PdmVybGF5cyA6IHRoaXMuX29wZW5PdmVybGF5c0F0VGhpc0xldmVsO1xuICB9XG5cbiAgZ2V0IGFmdGVyT3BlbmVkKCk6IFN1YmplY3Q8T3ZlcmxheVJlZj4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZSA/IHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlLmFmdGVyT3BlbmVkIDogdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Nsb3NlT3ZlcmxheXModGhpcy5fb3Blbk92ZXJsYXlzQXRUaGlzTGV2ZWwpO1xuICAgIHRoaXMuX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwuY29tcGxldGUoKTtcbiAgICB0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LCBjb25maWc6IE92ZXJsYXlDb25maWc8RD4pOiBPdmVybGF5UmVmPFQsIFI+O1xuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4odGVtcGxhdGU6IFRlbXBsYXRlUmVmPFQ+LCBjb25maWc6IE92ZXJsYXlDb25maWc8RD4pOiBPdmVybGF5UmVmPFQsIFI+O1xuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgdGVtcGxhdGU6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc6IE92ZXJsYXlDb25maWc8RD4sXG4gICk6IE92ZXJsYXlSZWY8VCwgUj47XG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPihcbiAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgY29uZmlnOiBPdmVybGF5Q29uZmlnPEQ+LFxuICApOiBPdmVybGF5UmVmPFQsIFI+IHtcbiAgICBsZXQgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjxULCBSPjtcblxuICAgIGNvbnN0IGNvbXBvc2VkQ29uZmlnID0gY3JlYXRlT3ZlcmxheUNvbmZpZzxEPih0aGlzLl9kZWZhdWx0T3B0aW9ucyBhcyBPdmVybGF5Q29uZmlnPEQ+LCBjb25maWcpO1xuICAgIGNvbXBvc2VkQ29uZmlnLmlkID0gY29tcG9zZWRDb25maWcuaWQgfHwgYCR7SURfUFJFRklYfSR7dW5pcXVlSWQrK31gO1xuICAgIGNvbXBvc2VkQ29uZmlnLnNjcm9sbFN0cmF0ZWd5ID0gY29tcG9zZWRDb25maWcuc2Nyb2xsU3RyYXRlZ3kgfHwgdGhpcy5fc2Nyb2xsU3RyYXRlZ3koKTtcblxuICAgIGNvbnN0IGNka1JlZiA9IHRoaXMuX2RpYWxvZy5vcGVuPFIsIEQsIFQ+KGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIHtcbiAgICAgIC4uLmNvbXBvc2VkQ29uZmlnLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgY2xvc2VPbkRlc3Ryb3k6IGZhbHNlLFxuICAgICAgcGFuZWxDbGFzczogJ2V0LW92ZXJsYXktcGFuZScsXG4gICAgICBjb250YWluZXI6IHtcbiAgICAgICAgdHlwZTogT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgcHJvdmlkZXJzOiAoKSA9PiBbXG4gICAgICAgICAgeyBwcm92aWRlOiBPVkVSTEFZX0NPTkZJRywgdXNlVmFsdWU6IGNvbXBvc2VkQ29uZmlnIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBDZGtEaWFsb2dDb25maWcsIHVzZVZhbHVlOiBjb21wb3NlZENvbmZpZyB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHRlbXBsYXRlQ29udGV4dDogKCkgPT4gKHsgZGlhbG9nUmVmOiBvdmVybGF5UmVmIH0pLFxuICAgICAgcHJvdmlkZXJzOiAocmVmLCBjZGtDb25maWcsIG92ZXJsYXlDb250YWluZXIpID0+IHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gb3ZlcmxheUNvbnRhaW5lciBhcyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50O1xuICAgICAgICBvdmVybGF5UmVmID0gbmV3IE92ZXJsYXlSZWYocmVmLCBjb21wb3NlZENvbmZpZywgY29udGFpbmVyKTtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHsgcHJvdmlkZTogT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCwgdXNlVmFsdWU6IG92ZXJsYXlDb250YWluZXIgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IFRIRU1FX1BST1ZJREVSLCB1c2VWYWx1ZTogY29udGFpbmVyLl90aGVtZVByb3ZpZGVyIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBQcm92aWRlVGhlbWVEaXJlY3RpdmUsIHVzZVZhbHVlOiBjb250YWluZXIuX3RoZW1lUHJvdmlkZXIgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IFJPT1RfQk9VTkRBUllfVE9LRU4sIHVzZVZhbHVlOiBjb250YWluZXIuX3Jvb3RCb3VuZGFyeSB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogUm9vdEJvdW5kYXJ5RGlyZWN0aXZlLCB1c2VWYWx1ZTogY29udGFpbmVyLl9yb290Qm91bmRhcnkgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IE9WRVJMQVlfREFUQSwgdXNlVmFsdWU6IGNka0NvbmZpZy5kYXRhIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBPdmVybGF5UmVmLCB1c2VWYWx1ZTogb3ZlcmxheVJlZiB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogT3ZlcmxheVJlZiwgdXNlVmFsdWU6IG92ZXJsYXlSZWYgfSxcbiAgICAgICAgICAuLi4oY29tcG9zZWRDb25maWcucHJvdmlkZXJzID8/IFtdKSxcbiAgICAgICAgXTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uKi9cbiAgICAob3ZlcmxheVJlZiEgYXMgeyBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiB9KS5jb21wb25lbnRSZWYgPSBjZGtSZWYuY29tcG9uZW50UmVmITtcbiAgICBvdmVybGF5UmVmIS5jb21wb25lbnRJbnN0YW5jZSA9IGNka1JlZi5jb21wb25lbnRJbnN0YW5jZSE7XG5cbiAgICAoY2RrUmVmLmNvbnRhaW5lckluc3RhbmNlIGFzIE92ZXJsYXlDb250YWluZXJDb21wb25lbnQpLm92ZXJsYXlSZWYgPSBvdmVybGF5UmVmITtcblxuICAgIGNvbnN0IGNvbnRhaW5lckVsID0gb3ZlcmxheVJlZiEuX2NvbnRhaW5lckluc3RhbmNlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBvdmVybGF5UGFuZUVsID0gY2RrUmVmLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQ7XG4gICAgY29uc3QgYmFja2Ryb3BFbCA9IGNka1JlZi5vdmVybGF5UmVmLmJhY2tkcm9wRWxlbWVudDtcbiAgICBjb25zdCBvdmVybGF5V3JhcHBlciA9IGNka1JlZi5vdmVybGF5UmVmLmhvc3RFbGVtZW50O1xuICAgIGNvbnN0IGRlZmF1bHRBbmltYXRpb25CdWZmZXIgPSA1MDsgLy8gNTBweCBzaW5jZSB0aGUgZGVmYXVsdCBhbmltYXRpb24gdXNlcyBzcHJpbmcgcGh5c2ljcyBhbmQgdGh1cyB3aWxsIG92ZXJzaG9vdC5cbiAgICBjb25zdCB1c2VEZWZhdWx0QW5pbWF0aW9uID0gY29tcG9zZWRDb25maWcuY3VzdG9tQW5pbWF0ZWQgIT09IHRydWU7XG4gICAgY29uc3Qgb3JpZ2luID0gY29tcG9zZWRDb25maWcub3JpZ2luO1xuXG4gICAgY29tYmluZUxhdGVzdChcbiAgICAgIGNvbXBvc2VkQ29uZmlnLnBvc2l0aW9ucy5tYXAoKGJyZWFrcG9pbnQpID0+XG4gICAgICAgIChicmVha3BvaW50LmJyZWFrcG9pbnQgPyB0aGlzLl92aWV3cG9ydFNlcnZpY2Uub2JzZXJ2ZSh7IG1pbjogYnJlYWtwb2ludC5icmVha3BvaW50IH0pIDogb2YodHJ1ZSkpLnBpcGUoXG4gICAgICAgICAgbWFwKChpc0FjdGl2ZSkgPT4gKHtcbiAgICAgICAgICAgIGlzQWN0aXZlLFxuICAgICAgICAgICAgY29uZmlnOiBicmVha3BvaW50LmNvbmZpZyxcbiAgICAgICAgICAgIHNpemU6XG4gICAgICAgICAgICAgIHR5cGVvZiBicmVha3BvaW50LmJyZWFrcG9pbnQgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgPyBicmVha3BvaW50LmJyZWFrcG9pbnRcbiAgICAgICAgICAgICAgICA6IGJyZWFrcG9pbnQuYnJlYWtwb2ludCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgIDogdGhpcy5fdmlld3BvcnRTZXJ2aWNlLmdldEJyZWFrcG9pbnRTaXplKGJyZWFrcG9pbnQuYnJlYWtwb2ludCwgJ21pbicpLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbChvdmVybGF5UmVmIS5hZnRlckNsb3NlZCgpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgbWFwKChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWN0aXZlQnJlYWtwb2ludHMgPSBlbnRyaWVzLmZpbHRlcigoZW50cnkpID0+IGVudHJ5LmlzQWN0aXZlKTtcbiAgICAgICAgICBjb25zdCBoaWdoZXN0QnJlYWtwb2ludCA9IGFjdGl2ZUJyZWFrcG9pbnRzLnJlZHVjZSgocHJldiwgY3VycikgPT4gKHByZXYuc2l6ZSA+IGN1cnIuc2l6ZSA/IHByZXYgOiBjdXJyKSk7XG5cbiAgICAgICAgICByZXR1cm4gaGlnaGVzdEJyZWFrcG9pbnQuY29uZmlnO1xuICAgICAgICB9KSxcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICB0YXAoKFtwcmV2Q29uZmlnLCBjdXJyQ29uZmlnXSkgPT4ge1xuICAgICAgICAgIGlmICghY3VyckNvbmZpZykgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgY29udGFpbmVyQ2xhc3MgPSBjdXJyQ29uZmlnLmNvbnRhaW5lckNsYXNzO1xuXG4gICAgICAgICAgY29uc3QgYXBwbHlEZWZhdWx0TWF4V2lkdGhzID0gKCkgPT4ge1xuICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC13aWR0aCcsIGN1cnJDb25maWcubWF4V2lkdGgpO1xuICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC1oZWlnaHQnLCBjdXJyQ29uZmlnLm1heEhlaWdodCk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IGNvbWJpbmVPck1ha2VDYWxjID0gKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBhcHBlbmQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIGFwcGVuZDtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGBjYWxjKCR7dmFsdWV9cHggKyAke2FwcGVuZH0pYDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUuc3RhcnRzV2l0aCgnY2FsYygnKSkge1xuICAgICAgICAgICAgICByZXR1cm4gYCR7dmFsdWUuc2xpY2UoMCwgdmFsdWUubGVuZ3RoIC0gMSl9ICsgJHthcHBlbmR9KWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBgY2FsYygke3ZhbHVlfSArICR7YXBwZW5kfSlgO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBJZiBnZXRCb3VuZGluZ0NsaWVudFJlY3QgaXMgdXNlZCBpdCBzaG91bGQgdXNlIHRoZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQuXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5YID0gaXNIdG1sRWxlbWVudChvcmlnaW4pXG4gICAgICAgICAgICAgID8gb3JpZ2luLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnRcbiAgICAgICAgICAgICAgOiBpc1RvdWNoRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICAgID8gb3JpZ2luLnRhcmdldFRvdWNoZXNbMF0hLmNsaWVudFhcbiAgICAgICAgICAgICAgICA6IGlzUG9pbnRlckV2ZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgICAgID8gb3JpZ2luLmNsaWVudFggIT09IDBcbiAgICAgICAgICAgICAgICAgICAgPyBvcmlnaW4uY2xpZW50WFxuICAgICAgICAgICAgICAgICAgICA6IChvcmlnaW4udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0XG4gICAgICAgICAgICAgICAgICA6IC0xO1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luWSA9IGlzSHRtbEVsZW1lbnQob3JpZ2luKVxuICAgICAgICAgICAgICA/IG9yaWdpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgICAgICAgICAgOiBpc1RvdWNoRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICAgID8gb3JpZ2luLnRhcmdldFRvdWNoZXNbMF0hLmNsaWVudFlcbiAgICAgICAgICAgICAgICA6IGlzUG9pbnRlckV2ZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgICAgID8gb3JpZ2luLmNsaWVudFkgIT09IDBcbiAgICAgICAgICAgICAgICAgICAgPyBvcmlnaW4uY2xpZW50WVxuICAgICAgICAgICAgICAgICAgICA6IChvcmlnaW4udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgICAgICAgICAgICAgIDogLTE7XG5cbiAgICAgICAgICAgIGlmIChvcmlnaW5YICE9PSAtMSAmJiBvcmlnaW5ZICE9PSAtMSAmJiBjdXJyQ29uZmlnLmFwcGx5VHJhbnNmb3JtT3JpZ2luKSB7XG4gICAgICAgICAgICAgIHNldFN0eWxlKGNvbnRhaW5lckVsLCAndHJhbnNmb3JtLW9yaWdpbicsIGAke29yaWdpblh9cHggJHtvcmlnaW5ZfXB4YCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzZXRTdHlsZShjb250YWluZXJFbCwgJ3RyYW5zZm9ybS1vcmlnaW4nLCBudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodXNlRGVmYXVsdEFuaW1hdGlvbiAmJiBjb250YWluZXJDbGFzcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzPy5pbmNsdWRlcyhFVF9PVkVSTEFZX0xFRlRfU0hFRVRfQ0xBU1MpIHx8XG4gICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzPy5pbmNsdWRlcyhFVF9PVkVSTEFZX1JJR0hUX1NIRUVUX0NMQVNTKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHNldFN0eWxlKFxuICAgICAgICAgICAgICAgIG92ZXJsYXlQYW5lRWwsXG4gICAgICAgICAgICAgICAgJ21heC13aWR0aCcsXG4gICAgICAgICAgICAgICAgY29tYmluZU9yTWFrZUNhbGMoY3VyckNvbmZpZy5tYXhXaWR0aCwgYCR7ZGVmYXVsdEFuaW1hdGlvbkJ1ZmZlcn1weGApLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWF4LWhlaWdodCcsIGN1cnJDb25maWcubWF4SGVpZ2h0KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzPy5pbmNsdWRlcyhFVF9PVkVSTEFZX1RPUF9TSEVFVF9DTEFTUykgfHxcbiAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M/LmluY2x1ZGVzKEVUX09WRVJMQVlfQk9UVE9NX1NIRUVUX0NMQVNTKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHNldFN0eWxlKFxuICAgICAgICAgICAgICAgIG92ZXJsYXlQYW5lRWwsXG4gICAgICAgICAgICAgICAgJ21heC1oZWlnaHQnLFxuICAgICAgICAgICAgICAgIGNvbWJpbmVPck1ha2VDYWxjKGN1cnJDb25maWcubWF4SGVpZ2h0LCBgJHtkZWZhdWx0QW5pbWF0aW9uQnVmZmVyfXB4YCksXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC13aWR0aCcsIGN1cnJDb25maWcubWF4V2lkdGgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYXBwbHlEZWZhdWx0TWF4V2lkdGhzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFwcGx5RGVmYXVsdE1heFdpZHRocygpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtaW4td2lkdGgnLCBjdXJyQ29uZmlnLm1pbldpZHRoKTtcbiAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWluLWhlaWdodCcsIGN1cnJDb25maWcubWluSGVpZ2h0KTtcblxuICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICd3aWR0aCcsIGN1cnJDb25maWcud2lkdGgpO1xuICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdoZWlnaHQnLCBjdXJyQ29uZmlnLmhlaWdodCk7XG5cbiAgICAgICAgICBzZXRDbGFzcyhjb250YWluZXJFbCwgcHJldkNvbmZpZz8uY29udGFpbmVyQ2xhc3MsIGN1cnJDb25maWc/LmNvbnRhaW5lckNsYXNzKTtcbiAgICAgICAgICBzZXRDbGFzcyhvdmVybGF5UGFuZUVsLCBwcmV2Q29uZmlnPy5wYW5lQ2xhc3MsIGN1cnJDb25maWc/LnBhbmVDbGFzcyk7XG4gICAgICAgICAgc2V0Q2xhc3Mob3ZlcmxheVdyYXBwZXIsIHByZXZDb25maWc/Lm92ZXJsYXlDbGFzcywgY3VyckNvbmZpZz8ub3ZlcmxheUNsYXNzKTtcblxuICAgICAgICAgIC8vIEZJWE1FOiBUaGVzZSBjbGFzc2VzIHNob3VsZCBvbmx5IGJlIHJlbW92ZWQgaWYgbm8gb3BlbiBvdmVybGF5cyByZXF1aXJlIHRoZW0gaW5zaWRlIHRoZWlyIGNvbmZpZy5cbiAgICAgICAgICBzZXRDbGFzcyhkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHByZXZDb25maWc/LmRvY3VtZW50Q2xhc3MsIGN1cnJDb25maWc/LmRvY3VtZW50Q2xhc3MpO1xuICAgICAgICAgIHNldENsYXNzKGRvY3VtZW50LmJvZHksIHByZXZDb25maWc/LmJvZHlDbGFzcywgY3VyckNvbmZpZz8uYm9keUNsYXNzKTtcblxuICAgICAgICAgIGlmIChiYWNrZHJvcEVsKSB7XG4gICAgICAgICAgICBzZXRDbGFzcyhiYWNrZHJvcEVsLCBwcmV2Q29uZmlnPy5iYWNrZHJvcENsYXNzLCBjdXJyQ29uZmlnPy5iYWNrZHJvcENsYXNzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIWVxdWFsKHByZXZDb25maWc/LnBvc2l0aW9uLCBjdXJyQ29uZmlnPy5wb3NpdGlvbikpIHtcbiAgICAgICAgICAgIG92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oY3VyckNvbmZpZy5wb3NpdGlvbik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGN1cnJDb25maWcucG9zaXRpb25TdHJhdGVneSkge1xuICAgICAgICAgICAgY2RrUmVmLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb25TdHJhdGVneShjdXJyQ29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjZGtSZWYub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjdXJyQ29uZmlnLmRyYWdUb0Rpc21pc3MpIHtcbiAgICAgICAgICAgIG92ZXJsYXlSZWYuX2NvbnRhaW5lckluc3RhbmNlLl9lbmFibGVEcmFnVG9EaXNtaXNzKGN1cnJDb25maWcuZHJhZ1RvRGlzbWlzcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG92ZXJsYXlSZWYuX2NvbnRhaW5lckluc3RhbmNlLl9kaXNhYmxlRHJhZ1RvRGlzbWlzcygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLm9wZW5PdmVybGF5cy5wdXNoKG92ZXJsYXlSZWYhKTtcbiAgICB0aGlzLmFmdGVyT3BlbmVkLm5leHQob3ZlcmxheVJlZiEpO1xuXG4gICAgb3ZlcmxheVJlZiEuYmVmb3JlQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIC8vIEZJWE1FOiBUaGVzZSBjbGFzc2VzIHNob3VsZCBvbmx5IGJlIHJlbW92ZWQgaWYgbm8gb3BlbiBvdmVybGF5cyByZXF1aXJlIHRoZW0gaW5zaWRlIHRoZWlyIGNvbmZpZy5cbiAgICAgIGNvbnN0IGRvY3VtZW50Q2xhc3NlcyA9IGNvbXBvc2VkQ29uZmlnLnBvc2l0aW9ucy5tYXAoKHBvc2l0aW9uKSA9PiBwb3NpdGlvbi5jb25maWcuZG9jdW1lbnRDbGFzcyk7XG5cbiAgICAgIGZvciAoY29uc3Qga2xhc3Mgb2YgZG9jdW1lbnRDbGFzc2VzKSB7XG4gICAgICAgIGlmICgha2xhc3MpIGNvbnRpbnVlO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtsYXNzKSkge1xuICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKC4uLmtsYXNzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShrbGFzcyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgYm9keUNsYXNzZXMgPSBjb21wb3NlZENvbmZpZy5wb3NpdGlvbnMubWFwKChwb3NpdGlvbikgPT4gcG9zaXRpb24uY29uZmlnLmJvZHlDbGFzcyk7XG5cbiAgICAgIGZvciAoY29uc3Qga2xhc3Mgb2YgYm9keUNsYXNzZXMpIHtcbiAgICAgICAgaWYgKCFrbGFzcykgY29udGludWU7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoa2xhc3MpKSB7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKC4uLmtsYXNzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoa2xhc3MpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBvdmVybGF5UmVmIS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMub3Blbk92ZXJsYXlzLmluZGV4T2Yob3ZlcmxheVJlZik7XG5cbiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHJldHVybjtcblxuICAgICAgdGhpcy5vcGVuT3ZlcmxheXMuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgaWYgKCF0aGlzLm9wZW5PdmVybGF5cy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKS5uZXh0KCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb3ZlcmxheVJlZiE7XG5cbiAgICAvKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb24qL1xuICB9XG5cbiAgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xvc2VPdmVybGF5cyh0aGlzLm9wZW5PdmVybGF5cyk7XG4gIH1cblxuICBnZXRPdmVybGF5QnlJZChpZDogc3RyaW5nKTogT3ZlcmxheVJlZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMub3Blbk92ZXJsYXlzLmZpbmQoKG92ZXJsYXkpID0+IG92ZXJsYXkuaWQgPT09IGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlT3ZlcmxheXMob3ZlcmxheXM6IE92ZXJsYXlSZWZbXSkge1xuICAgIGxldCBpID0gb3ZlcmxheXMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgb3ZlcmxheXNbaV0/LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QWZ0ZXJBbGxDbG9zZWQoKTogU3ViamVjdDx2b2lkPiB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5fcGFyZW50T3ZlcmxheVNlcnZpY2U7XG4gICAgcmV0dXJuIHBhcmVudCA/IHBhcmVudC5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKSA6IHRoaXMuX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWw7XG4gIH1cbn1cbiJdfQ==
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3NlcnZpY2VzL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRSxZQUFZLElBQUksZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0YsT0FBTyxFQUFnQixVQUFVLEVBQTBCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUcsT0FBTyxFQUNMLDZCQUE2QixFQUM3QiwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsVUFBVSxFQUNWLG1CQUFtQixHQUNwQixNQUFNLFVBQVUsQ0FBQzs7QUFFbEIsSUFBSSxRQUFRLEdBQUcsQ0FB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QUMsQ0FBQztnQkFBRSxPQUFPO1lBRXpCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUVuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2xDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFVBQVcsQ0FBQztRQUVuQiwyREFBMkQ7SUFDN0QsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsY0FBYyxDQUFDLEVBQVU7UUFDdkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQXNCO1FBQzNDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFFeEIsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUNWLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQzFDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDO0lBQ2hGLENBQUM7OEdBOVNVLGNBQWM7a0hBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUNzc1BpeGVsVmFsdWUgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRGlhbG9nIGFzIENka0RpYWxvZywgRGlhbG9nQ29uZmlnIGFzIENka0RpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFJlZiwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBST09UX0JPVU5EQVJZX1RPS0VOLCBSb290Qm91bmRhcnlEaXJlY3RpdmUsIFZpZXdwb3J0U2VydmljZSwgY3JlYXRlRGVzdHJveSwgZXF1YWwgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IFByb3ZpZGVUaGVtZURpcmVjdGl2ZSwgVEhFTUVfUFJPVklERVIgfSBmcm9tICdAZXRobGV0ZS90aGVtaW5nJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlZmVyLCBtYXAsIG9mLCBwYWlyd2lzZSwgc3RhcnRXaXRoLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgT1ZFUkxBWV9DT05GSUcsIE9WRVJMQVlfREFUQSwgT1ZFUkxBWV9ERUZBVUxUX09QVElPTlMsIE9WRVJMQVlfU0NST0xMX1NUUkFURUdZIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE92ZXJsYXlDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge1xuICBFVF9PVkVSTEFZX0JPVFRPTV9TSEVFVF9DTEFTUyxcbiAgRVRfT1ZFUkxBWV9MRUZUX1NIRUVUX0NMQVNTLFxuICBFVF9PVkVSTEFZX1JJR0hUX1NIRUVUX0NMQVNTLFxuICBFVF9PVkVSTEFZX1RPUF9TSEVFVF9DTEFTUyxcbiAgT3ZlcmxheVBvc2l0aW9uQnVpbGRlcixcbiAgT3ZlcmxheVJlZixcbiAgY3JlYXRlT3ZlcmxheUNvbmZpZyxcbn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuY29uc3QgSURfUFJFRklYID0gJ2V0LW92ZXJsYXktJztcblxuY29uc3Qgc2V0U3R5bGUgPSAoZWw6IEhUTUxFbGVtZW50LCBzdHlsZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4ge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIGVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KHN0eWxlKTtcbiAgfSBlbHNlIHtcbiAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eShzdHlsZSwgY29lcmNlQ3NzUGl4ZWxWYWx1ZSh2YWx1ZSkpO1xuICB9XG59O1xuXG5jb25zdCBzZXRDbGFzcyA9IChlbDogSFRNTEVsZW1lbnQsIHByZXZDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdLCBjdXJyQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4ge1xuICBpZiAoIWVxdWFsKHByZXZDbGFzcywgY3VyckNsYXNzKSkge1xuICAgIGlmIChwcmV2Q2xhc3MpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHByZXZDbGFzcykpIHtcbiAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZSguLi5wcmV2Q2xhc3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShwcmV2Q2xhc3MpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjdXJyQ2xhc3MpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnJDbGFzcykpIHtcbiAgICAgICAgZWwuY2xhc3NMaXN0LmFkZCguLi5jdXJyQ2xhc3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWwuY2xhc3NMaXN0LmFkZChjdXJyQ2xhc3MpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuY29uc3QgaXNIdG1sRWxlbWVudCA9IChlbGVtZW50OiBIVE1MRWxlbWVudCB8IHVua25vd24pOiBlbGVtZW50IGlzIEhUTUxFbGVtZW50ID0+IHtcbiAgcmV0dXJuIGVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcbn07XG5cbmNvbnN0IGlzVG91Y2hFdmVudCA9IChldmVudDogRXZlbnQpOiBldmVudCBpcyBUb3VjaEV2ZW50ID0+IHtcbiAgcmV0dXJuIGV2ZW50LnR5cGVbMF0gPT09ICd0Jztcbn07XG5cbmNvbnN0IGlzUG9pbnRlckV2ZW50ID0gKGV2ZW50OiBFdmVudCk6IGV2ZW50IGlzIFBvaW50ZXJFdmVudCA9PiB7XG4gIHJldHVybiBldmVudC50eXBlWzBdID09PSAnYyc7XG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT3ZlcmxheVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdE9wdGlvbnMgPSBpbmplY3QoT1ZFUkxBWV9ERUZBVUxUX09QVElPTlMsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Njcm9sbFN0cmF0ZWd5ID0gaW5qZWN0KE9WRVJMQVlfU0NST0xMX1NUUkFURUdZKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGFyZW50T3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoT3ZlcmxheVNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kaWFsb2cgPSBpbmplY3QoQ2RrRGlhbG9nKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld3BvcnRTZXJ2aWNlID0gaW5qZWN0KFZpZXdwb3J0U2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfb3Blbk92ZXJsYXlzQXRUaGlzTGV2ZWw6IE92ZXJsYXlSZWZbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbCA9IG5ldyBTdWJqZWN0PE92ZXJsYXlSZWY+KCk7XG5cbiAgcmVhZG9ubHkgcG9zaXRpb25zID0gbmV3IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIoKTtcblxuICByZWFkb25seSBhZnRlckFsbENsb3NlZCA9IGRlZmVyKCgpID0+XG4gICAgdGhpcy5vcGVuT3ZlcmxheXMubGVuZ3RoID8gdGhpcy5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKSA6IHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSksXG4gICkgYXMgT2JzZXJ2YWJsZTx2b2lkPjtcblxuICBnZXQgb3Blbk92ZXJsYXlzKCk6IE92ZXJsYXlSZWZbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlID8gdGhpcy5fcGFyZW50T3ZlcmxheVNlcnZpY2Uub3Blbk92ZXJsYXlzIDogdGhpcy5fb3Blbk92ZXJsYXlzQXRUaGlzTGV2ZWw7XG4gIH1cblxuICBnZXQgYWZ0ZXJPcGVuZWQoKTogU3ViamVjdDxPdmVybGF5UmVmPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlID8gdGhpcy5fcGFyZW50T3ZlcmxheVNlcnZpY2UuYWZ0ZXJPcGVuZWQgOiB0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fY2xvc2VPdmVybGF5cyh0aGlzLl9vcGVuT3ZlcmxheXNBdFRoaXNMZXZlbCk7XG4gICAgdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwuY29tcGxldGUoKTtcbiAgfVxuXG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPihjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD4sIGNvbmZpZzogT3ZlcmxheUNvbmZpZzxEPik6IE92ZXJsYXlSZWY8VCwgUj47XG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPih0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8VD4sIGNvbmZpZzogT3ZlcmxheUNvbmZpZzxEPik6IE92ZXJsYXlSZWY8VCwgUj47XG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPihcbiAgICB0ZW1wbGF0ZTogQ29tcG9uZW50VHlwZTxUPiB8IFRlbXBsYXRlUmVmPFQ+LFxuICAgIGNvbmZpZzogT3ZlcmxheUNvbmZpZzxEPixcbiAgKTogT3ZlcmxheVJlZjxULCBSPjtcbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KFxuICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc6IE92ZXJsYXlDb25maWc8RD4sXG4gICk6IE92ZXJsYXlSZWY8VCwgUj4ge1xuICAgIGxldCBvdmVybGF5UmVmOiBPdmVybGF5UmVmPFQsIFI+O1xuXG4gICAgY29uc3QgY29tcG9zZWRDb25maWcgPSBjcmVhdGVPdmVybGF5Q29uZmlnPEQ+KHRoaXMuX2RlZmF1bHRPcHRpb25zIGFzIE92ZXJsYXlDb25maWc8RD4sIGNvbmZpZyk7XG4gICAgY29tcG9zZWRDb25maWcuaWQgPSBjb21wb3NlZENvbmZpZy5pZCB8fCBgJHtJRF9QUkVGSVh9JHt1bmlxdWVJZCsrfWA7XG4gICAgY29tcG9zZWRDb25maWcuc2Nyb2xsU3RyYXRlZ3kgPSBjb21wb3NlZENvbmZpZy5zY3JvbGxTdHJhdGVneSB8fCB0aGlzLl9zY3JvbGxTdHJhdGVneSgpO1xuXG4gICAgY29uc3QgY2RrUmVmID0gdGhpcy5fZGlhbG9nLm9wZW48UiwgRCwgVD4oY29tcG9uZW50T3JUZW1wbGF0ZVJlZiwge1xuICAgICAgLi4uY29tcG9zZWRDb25maWcsXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXG4gICAgICBjbG9zZU9uRGVzdHJveTogZmFsc2UsXG4gICAgICBwYW5lbENsYXNzOiAnZXQtb3ZlcmxheS1wYW5lJyxcbiAgICAgIGNvbnRhaW5lcjoge1xuICAgICAgICB0eXBlOiBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgICBwcm92aWRlcnM6ICgpID0+IFtcbiAgICAgICAgICB7IHByb3ZpZGU6IE9WRVJMQVlfQ09ORklHLCB1c2VWYWx1ZTogY29tcG9zZWRDb25maWcgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IENka0RpYWxvZ0NvbmZpZywgdXNlVmFsdWU6IGNvbXBvc2VkQ29uZmlnIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgdGVtcGxhdGVDb250ZXh0OiAoKSA9PiAoeyBkaWFsb2dSZWY6IG92ZXJsYXlSZWYgfSksXG4gICAgICBwcm92aWRlcnM6IChyZWYsIGNka0NvbmZpZywgb3ZlcmxheUNvbnRhaW5lcikgPT4ge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSBvdmVybGF5Q29udGFpbmVyIGFzIE92ZXJsYXlDb250YWluZXJDb21wb25lbnQ7XG4gICAgICAgIG92ZXJsYXlSZWYgPSBuZXcgT3ZlcmxheVJlZihyZWYsIGNvbXBvc2VkQ29uZmlnLCBjb250YWluZXIpO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgeyBwcm92aWRlOiBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50LCB1c2VWYWx1ZTogb3ZlcmxheUNvbnRhaW5lciB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogVEhFTUVfUFJPVklERVIsIHVzZVZhbHVlOiBjb250YWluZXIuX3RoZW1lUHJvdmlkZXIgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IFByb3ZpZGVUaGVtZURpcmVjdGl2ZSwgdXNlVmFsdWU6IGNvbnRhaW5lci5fdGhlbWVQcm92aWRlciB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogUk9PVF9CT1VOREFSWV9UT0tFTiwgdXNlVmFsdWU6IGNvbnRhaW5lci5fcm9vdEJvdW5kYXJ5IH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBSb290Qm91bmRhcnlEaXJlY3RpdmUsIHVzZVZhbHVlOiBjb250YWluZXIuX3Jvb3RCb3VuZGFyeSB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogT1ZFUkxBWV9EQVRBLCB1c2VWYWx1ZTogY2RrQ29uZmlnLmRhdGEgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IE92ZXJsYXlSZWYsIHVzZVZhbHVlOiBvdmVybGF5UmVmIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBPdmVybGF5UmVmLCB1c2VWYWx1ZTogb3ZlcmxheVJlZiB9LFxuICAgICAgICAgIC4uLihjb21wb3NlZENvbmZpZy5wcm92aWRlcnMgPz8gW10pLFxuICAgICAgICBdO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb24qL1xuICAgIChvdmVybGF5UmVmISBhcyB7IGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+IH0pLmNvbXBvbmVudFJlZiA9IGNka1JlZi5jb21wb25lbnRSZWYhO1xuICAgIG92ZXJsYXlSZWYhLmNvbXBvbmVudEluc3RhbmNlID0gY2RrUmVmLmNvbXBvbmVudEluc3RhbmNlITtcblxuICAgIChjZGtSZWYuY29udGFpbmVySW5zdGFuY2UgYXMgT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCkub3ZlcmxheVJlZiA9IG92ZXJsYXlSZWYhO1xuXG4gICAgY29uc3QgY29udGFpbmVyRWwgPSBvdmVybGF5UmVmIS5fY29udGFpbmVySW5zdGFuY2UuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IG92ZXJsYXlQYW5lRWwgPSBjZGtSZWYub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudDtcbiAgICBjb25zdCBiYWNrZHJvcEVsID0gY2RrUmVmLm92ZXJsYXlSZWYuYmFja2Ryb3BFbGVtZW50O1xuICAgIGNvbnN0IG92ZXJsYXlXcmFwcGVyID0gY2RrUmVmLm92ZXJsYXlSZWYuaG9zdEVsZW1lbnQ7XG4gICAgY29uc3QgZGVmYXVsdEFuaW1hdGlvbkJ1ZmZlciA9IDUwOyAvLyA1MHB4IHNpbmNlIHRoZSBkZWZhdWx0IGFuaW1hdGlvbiB1c2VzIHNwcmluZyBwaHlzaWNzIGFuZCB0aHVzIHdpbGwgb3ZlcnNob290LlxuICAgIGNvbnN0IHVzZURlZmF1bHRBbmltYXRpb24gPSBjb21wb3NlZENvbmZpZy5jdXN0b21BbmltYXRlZCAhPT0gdHJ1ZTtcbiAgICBjb25zdCBvcmlnaW4gPSBjb21wb3NlZENvbmZpZy5vcmlnaW47XG5cbiAgICBjb21iaW5lTGF0ZXN0KFxuICAgICAgY29tcG9zZWRDb25maWcucG9zaXRpb25zLm1hcCgoYnJlYWtwb2ludCkgPT5cbiAgICAgICAgKGJyZWFrcG9pbnQuYnJlYWtwb2ludCA/IHRoaXMuX3ZpZXdwb3J0U2VydmljZS5vYnNlcnZlKHsgbWluOiBicmVha3BvaW50LmJyZWFrcG9pbnQgfSkgOiBvZih0cnVlKSkucGlwZShcbiAgICAgICAgICBtYXAoKGlzQWN0aXZlKSA9PiAoe1xuICAgICAgICAgICAgaXNBY3RpdmUsXG4gICAgICAgICAgICBjb25maWc6IGJyZWFrcG9pbnQuY29uZmlnLFxuICAgICAgICAgICAgc2l6ZTpcbiAgICAgICAgICAgICAgdHlwZW9mIGJyZWFrcG9pbnQuYnJlYWtwb2ludCA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICA/IGJyZWFrcG9pbnQuYnJlYWtwb2ludFxuICAgICAgICAgICAgICAgIDogYnJlYWtwb2ludC5icmVha3BvaW50ID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgICAgOiB0aGlzLl92aWV3cG9ydFNlcnZpY2UuZ2V0QnJlYWtwb2ludFNpemUoYnJlYWtwb2ludC5icmVha3BvaW50LCAnbWluJyksXG4gICAgICAgICAgfSkpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKG92ZXJsYXlSZWYhLmFmdGVyQ2xvc2VkKCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICBtYXAoKGVudHJpZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBhY3RpdmVCcmVha3BvaW50cyA9IGVudHJpZXMuZmlsdGVyKChlbnRyeSkgPT4gZW50cnkuaXNBY3RpdmUpO1xuICAgICAgICAgIGNvbnN0IGhpZ2hlc3RCcmVha3BvaW50ID0gYWN0aXZlQnJlYWtwb2ludHMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiAocHJldi5zaXplID4gY3Vyci5zaXplID8gcHJldiA6IGN1cnIpKTtcblxuICAgICAgICAgIHJldHVybiBoaWdoZXN0QnJlYWtwb2ludC5jb25maWc7XG4gICAgICAgIH0pLFxuICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgIHBhaXJ3aXNlKCksXG4gICAgICAgIHRhcCgoW3ByZXZDb25maWcsIGN1cnJDb25maWddKSA9PiB7XG4gICAgICAgICAgaWYgKCFjdXJyQ29uZmlnKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBjb250YWluZXJDbGFzcyA9IGN1cnJDb25maWcuY29udGFpbmVyQ2xhc3M7XG5cbiAgICAgICAgICBjb25zdCBhcHBseURlZmF1bHRNYXhXaWR0aHMgPSAoKSA9PiB7XG4gICAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWF4LXdpZHRoJywgY3VyckNvbmZpZy5tYXhXaWR0aCk7XG4gICAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWF4LWhlaWdodCcsIGN1cnJDb25maWcubWF4SGVpZ2h0KTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc3QgY29tYmluZU9yTWFrZUNhbGMgPSAodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIGFwcGVuZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm4gYXBwZW5kO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICByZXR1cm4gYGNhbGMoJHt2YWx1ZX1weCArICR7YXBwZW5kfSlgO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5zdGFydHNXaXRoKCdjYWxjKCcpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBgJHt2YWx1ZS5zbGljZSgwLCB2YWx1ZS5sZW5ndGggLSAxKX0gKyAke2FwcGVuZH0pYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGBjYWxjKCR7dmFsdWV9ICsgJHthcHBlbmR9KWA7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGlmIChvcmlnaW4pIHtcbiAgICAgICAgICAgIC8vIFRPRE86IElmIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBpcyB1c2VkIGl0IHNob3VsZCB1c2UgdGhlIGNlbnRlciBvZiB0aGUgZWxlbWVudC5cbiAgICAgICAgICAgIGNvbnN0IG9yaWdpblggPSBpc0h0bWxFbGVtZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgPyBvcmlnaW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdFxuICAgICAgICAgICAgICA6IGlzVG91Y2hFdmVudChvcmlnaW4pXG4gICAgICAgICAgICAgICAgPyBvcmlnaW4udGFyZ2V0VG91Y2hlc1swXSEuY2xpZW50WFxuICAgICAgICAgICAgICAgIDogaXNQb2ludGVyRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICAgICAgPyBvcmlnaW4uY2xpZW50WCAhPT0gMFxuICAgICAgICAgICAgICAgICAgICA/IG9yaWdpbi5jbGllbnRYXG4gICAgICAgICAgICAgICAgICAgIDogKG9yaWdpbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnRcbiAgICAgICAgICAgICAgICAgIDogLTE7XG4gICAgICAgICAgICBjb25zdCBvcmlnaW5ZID0gaXNIdG1sRWxlbWVudChvcmlnaW4pXG4gICAgICAgICAgICAgID8gb3JpZ2luLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcFxuICAgICAgICAgICAgICA6IGlzVG91Y2hFdmVudChvcmlnaW4pXG4gICAgICAgICAgICAgICAgPyBvcmlnaW4udGFyZ2V0VG91Y2hlc1swXSEuY2xpZW50WVxuICAgICAgICAgICAgICAgIDogaXNQb2ludGVyRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICAgICAgPyBvcmlnaW4uY2xpZW50WSAhPT0gMFxuICAgICAgICAgICAgICAgICAgICA/IG9yaWdpbi5jbGllbnRZXG4gICAgICAgICAgICAgICAgICAgIDogKG9yaWdpbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcFxuICAgICAgICAgICAgICAgICAgOiAtMTtcblxuICAgICAgICAgICAgaWYgKG9yaWdpblggIT09IC0xICYmIG9yaWdpblkgIT09IC0xICYmIGN1cnJDb25maWcuYXBwbHlUcmFuc2Zvcm1PcmlnaW4pIHtcbiAgICAgICAgICAgICAgc2V0U3R5bGUoY29udGFpbmVyRWwsICd0cmFuc2Zvcm0tb3JpZ2luJywgYCR7b3JpZ2luWH1weCAke29yaWdpbll9cHhgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNldFN0eWxlKGNvbnRhaW5lckVsLCAndHJhbnNmb3JtLW9yaWdpbicsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh1c2VEZWZhdWx0QW5pbWF0aW9uICYmIGNvbnRhaW5lckNsYXNzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M/LmluY2x1ZGVzKEVUX09WRVJMQVlfTEVGVF9TSEVFVF9DTEFTUykgfHxcbiAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M/LmluY2x1ZGVzKEVUX09WRVJMQVlfUklHSFRfU0hFRVRfQ0xBU1MpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgb3ZlcmxheVBhbmVFbCxcbiAgICAgICAgICAgICAgICAnbWF4LXdpZHRoJyxcbiAgICAgICAgICAgICAgICBjb21iaW5lT3JNYWtlQ2FsYyhjdXJyQ29uZmlnLm1heFdpZHRoLCBgJHtkZWZhdWx0QW5pbWF0aW9uQnVmZmVyfXB4YCksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtYXgtaGVpZ2h0JywgY3VyckNvbmZpZy5tYXhIZWlnaHQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M/LmluY2x1ZGVzKEVUX09WRVJMQVlfVE9QX1NIRUVUX0NMQVNTKSB8fFxuICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz8uaW5jbHVkZXMoRVRfT1ZFUkxBWV9CT1RUT01fU0hFRVRfQ0xBU1MpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgb3ZlcmxheVBhbmVFbCxcbiAgICAgICAgICAgICAgICAnbWF4LWhlaWdodCcsXG4gICAgICAgICAgICAgICAgY29tYmluZU9yTWFrZUNhbGMoY3VyckNvbmZpZy5tYXhIZWlnaHQsIGAke2RlZmF1bHRBbmltYXRpb25CdWZmZXJ9cHhgKSxcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWF4LXdpZHRoJywgY3VyckNvbmZpZy5tYXhXaWR0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBhcHBseURlZmF1bHRNYXhXaWR0aHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXBwbHlEZWZhdWx0TWF4V2lkdGhzKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21pbi13aWR0aCcsIGN1cnJDb25maWcubWluV2lkdGgpO1xuICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtaW4taGVpZ2h0JywgY3VyckNvbmZpZy5taW5IZWlnaHQpO1xuXG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ3dpZHRoJywgY3VyckNvbmZpZy53aWR0aCk7XG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ2hlaWdodCcsIGN1cnJDb25maWcuaGVpZ2h0KTtcblxuICAgICAgICAgIHNldENsYXNzKGNvbnRhaW5lckVsLCBwcmV2Q29uZmlnPy5jb250YWluZXJDbGFzcywgY3VyckNvbmZpZz8uY29udGFpbmVyQ2xhc3MpO1xuICAgICAgICAgIHNldENsYXNzKG92ZXJsYXlQYW5lRWwsIHByZXZDb25maWc/LnBhbmVDbGFzcywgY3VyckNvbmZpZz8ucGFuZUNsYXNzKTtcbiAgICAgICAgICBzZXRDbGFzcyhvdmVybGF5V3JhcHBlciwgcHJldkNvbmZpZz8ub3ZlcmxheUNsYXNzLCBjdXJyQ29uZmlnPy5vdmVybGF5Q2xhc3MpO1xuXG4gICAgICAgICAgLy8gRklYTUU6IFRoZXNlIGNsYXNzZXMgc2hvdWxkIG9ubHkgYmUgcmVtb3ZlZCBpZiBubyBvcGVuIG92ZXJsYXlzIHJlcXVpcmUgdGhlbSBpbnNpZGUgdGhlaXIgY29uZmlnLlxuICAgICAgICAgIHNldENsYXNzKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgcHJldkNvbmZpZz8uZG9jdW1lbnRDbGFzcywgY3VyckNvbmZpZz8uZG9jdW1lbnRDbGFzcyk7XG4gICAgICAgICAgc2V0Q2xhc3MoZG9jdW1lbnQuYm9keSwgcHJldkNvbmZpZz8uYm9keUNsYXNzLCBjdXJyQ29uZmlnPy5ib2R5Q2xhc3MpO1xuXG4gICAgICAgICAgaWYgKGJhY2tkcm9wRWwpIHtcbiAgICAgICAgICAgIHNldENsYXNzKGJhY2tkcm9wRWwsIHByZXZDb25maWc/LmJhY2tkcm9wQ2xhc3MsIGN1cnJDb25maWc/LmJhY2tkcm9wQ2xhc3MpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghZXF1YWwocHJldkNvbmZpZz8ucG9zaXRpb24sIGN1cnJDb25maWc/LnBvc2l0aW9uKSkge1xuICAgICAgICAgICAgb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbihjdXJyQ29uZmlnLnBvc2l0aW9uKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY3VyckNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5KSB7XG4gICAgICAgICAgICBjZGtSZWYub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KGN1cnJDb25maWcucG9zaXRpb25TdHJhdGVneSgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2RrUmVmLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY3VyckNvbmZpZy5kcmFnVG9EaXNtaXNzKSB7XG4gICAgICAgICAgICBvdmVybGF5UmVmLl9jb250YWluZXJJbnN0YW5jZS5fZW5hYmxlRHJhZ1RvRGlzbWlzcyhjdXJyQ29uZmlnLmRyYWdUb0Rpc21pc3MpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdmVybGF5UmVmLl9jb250YWluZXJJbnN0YW5jZS5fZGlzYWJsZURyYWdUb0Rpc21pc3MoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5vcGVuT3ZlcmxheXMucHVzaChvdmVybGF5UmVmISk7XG4gICAgdGhpcy5hZnRlck9wZW5lZC5uZXh0KG92ZXJsYXlSZWYhKTtcblxuICAgIG92ZXJsYXlSZWYhLmJlZm9yZUNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyBGSVhNRTogVGhlc2UgY2xhc3NlcyBzaG91bGQgb25seSBiZSByZW1vdmVkIGlmIG5vIG9wZW4gb3ZlcmxheXMgcmVxdWlyZSB0aGVtIGluc2lkZSB0aGVpciBjb25maWcuXG4gICAgICBjb25zdCBkb2N1bWVudENsYXNzZXMgPSBjb21wb3NlZENvbmZpZy5wb3NpdGlvbnMubWFwKChwb3NpdGlvbikgPT4gcG9zaXRpb24uY29uZmlnLmRvY3VtZW50Q2xhc3MpO1xuXG4gICAgICBmb3IgKGNvbnN0IGtsYXNzIG9mIGRvY3VtZW50Q2xhc3Nlcykge1xuICAgICAgICBpZiAoIWtsYXNzKSBjb250aW51ZTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShrbGFzcykpIHtcbiAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSguLi5rbGFzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoa2xhc3MpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJvZHlDbGFzc2VzID0gY29tcG9zZWRDb25maWcucG9zaXRpb25zLm1hcCgocG9zaXRpb24pID0+IHBvc2l0aW9uLmNvbmZpZy5ib2R5Q2xhc3MpO1xuXG4gICAgICBmb3IgKGNvbnN0IGtsYXNzIG9mIGJvZHlDbGFzc2VzKSB7XG4gICAgICAgIGlmICgha2xhc3MpIGNvbnRpbnVlO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtsYXNzKSkge1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSguLi5rbGFzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKGtsYXNzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgb3ZlcmxheVJlZiEuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm9wZW5PdmVybGF5cy5pbmRleE9mKG92ZXJsYXlSZWYpO1xuXG4gICAgICBpZiAoaW5kZXggPT09IC0xKSByZXR1cm47XG5cbiAgICAgIHRoaXMub3Blbk92ZXJsYXlzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgIGlmICghdGhpcy5vcGVuT3ZlcmxheXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkubmV4dCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG92ZXJsYXlSZWYhO1xuXG4gICAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uKi9cbiAgfVxuXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb3NlT3ZlcmxheXModGhpcy5vcGVuT3ZlcmxheXMpO1xuICB9XG5cbiAgZ2V0T3ZlcmxheUJ5SWQoaWQ6IHN0cmluZyk6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9wZW5PdmVybGF5cy5maW5kKChvdmVybGF5KSA9PiBvdmVybGF5LmlkID09PSBpZCk7XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZU92ZXJsYXlzKG92ZXJsYXlzOiBPdmVybGF5UmVmW10pIHtcbiAgICBsZXQgaSA9IG92ZXJsYXlzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIG92ZXJsYXlzW2ldPy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldEFmdGVyQWxsQ2xvc2VkKCk6IFN1YmplY3Q8dm9pZD4ge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlO1xuICAgIHJldHVybiBwYXJlbnQgPyBwYXJlbnQuX2dldEFmdGVyQWxsQ2xvc2VkKCkgOiB0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsO1xuICB9XG59XG4iXX0=
@@ -3,4 +3,4 @@ export const OVERLAY_STATE = {
3
3
  CLOSING: 'closing',
4
4
  CLOSED: 'closed',
5
5
  };
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvb3ZlcmxheS90eXBlcy9vdmVybGF5LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBCQSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsSUFBSSxFQUFFLE1BQU07SUFDWixPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsUUFBUTtDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBQb3NpdGlvblN0cmF0ZWd5LCBTY3JvbGxTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEluamVjdG9yLCBTdGF0aWNQcm92aWRlciwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJlYWtwb2ludCB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuXG4vKiogT3B0aW9ucyBmb3Igd2hlcmUgdG8gc2V0IGZvY3VzIHRvIGF1dG9tYXRpY2FsbHkgb24gb3ZlcmxheSBvcGVuICovXG5leHBvcnQgdHlwZSBPdmVybGF5QXV0b0ZvY3VzVGFyZ2V0ID0gJ2RpYWxvZycgfCAnZmlyc3QtdGFiYmFibGUnIHwgJ2ZpcnN0LWhlYWRpbmcnO1xuXG4vKiogVmFsaWQgQVJJQSByb2xlcyBmb3IgYSBvdmVybGF5IGVsZW1lbnQuICovXG5leHBvcnQgdHlwZSBPdmVybGF5Um9sZSA9ICdkaWFsb2cnIHwgJ2FsZXJ0ZGlhbG9nJztcblxuLyoqIFBvc3NpYmxlIG92ZXJyaWRlcyBmb3IgYSBvdmVybGF5J3MgcG9zaXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJsYXlQb3NpdGlvbiB7XG4gIC8qKiBPdmVycmlkZSBmb3IgdGhlIG92ZXJsYXkncyB0b3AgcG9zaXRpb24uICovXG4gIHRvcD86IHN0cmluZztcblxuICAvKiogT3ZlcnJpZGUgZm9yIHRoZSBvdmVybGF5J3MgYm90dG9tIHBvc2l0aW9uLiAqL1xuICBib3R0b20/OiBzdHJpbmc7XG5cbiAgLyoqIE92ZXJyaWRlIGZvciB0aGUgb3ZlcmxheSdzIGxlZnQgcG9zaXRpb24uICovXG4gIGxlZnQ/OiBzdHJpbmc7XG5cbiAgLyoqIE92ZXJyaWRlIGZvciB0aGUgb3ZlcmxheSdzIHJpZ2h0IHBvc2l0aW9uLiAqL1xuICByaWdodD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IE9WRVJMQVlfU1RBVEUgPSB7XG4gIE9QRU46ICdvcGVuJyxcbiAgQ0xPU0lORzogJ2Nsb3NpbmcnLFxuICBDTE9TRUQ6ICdjbG9zZWQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgT3ZlcmxheVN0YXRlID0gKHR5cGVvZiBPVkVSTEFZX1NUQVRFKVtrZXlvZiB0eXBlb2YgT1ZFUkxBWV9TVEFURV07XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcmxheURyYWdUb0Rpc21pc3NDb25maWcge1xuICAvKiogRGlyZWN0aW9uIGluIHdoaWNoIHRoZSBvdmVybGF5IGNhbiBiZSBkcmFnZ2VkLiAqL1xuICBkaXJlY3Rpb246ICd0by10b3AnIHwgJ3RvLWJvdHRvbScgfCAndG8tbGVmdCcgfCAndG8tcmlnaHQnO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBkaXN0YW5jZSBpbiBwaXhlbHMgdGhhdCB0aGUgdXNlciBtdXN0IHN3aXBlIHRvIGRpc21pc3MgdGhlIG92ZXJsYXkuXG4gICAqXG4gICAqIEBkZWZhdWx0IDE1MCAvLyAxNTBweFxuICAgKi9cbiAgbWluRGlzdGFuY2VUb0Rpc21pc3M/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHZlbG9jaXR5IGluIHBpeGVscyBwZXIgc2Vjb25kIHRoYXQgdGhlIHVzZXIgbXVzdCBzd2lwZSB0byBkaXNtaXNzIHRoZSBvdmVybGF5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAxNTAgLy8gMTUwcHgvc1xuICAgKi9cbiAgbWluVmVsb2NpdHlUb0Rpc21pc3M/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcmxheUJyZWFrcG9pbnRDb25maWcge1xuICAvKiogTWluLXdpZHRoIG9mIHRoZSBvdmVybGF5LiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgYXNzdW1lcyBwaXhlbCB1bml0cy4gKi9cbiAgbWluV2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqIE1heC13aWR0aCBvZiB0aGUgb3ZlcmxheS4gSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIGFzc3VtZXMgcGl4ZWwgdW5pdHMuICovXG4gIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKiBNaW4taGVpZ2h0IG9mIHRoZSBvdmVybGF5LiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgYXNzdW1lcyBwaXhlbCB1bml0cy4gKi9cbiAgbWluSGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKiBNYXgtaGVpZ2h0IG9mIHRoZSBvdmVybGF5LiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgYXNzdW1lcyBwaXhlbCB1bml0cy4gKi9cbiAgbWF4SGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKiBXaWR0aCBvZiB0aGUgb3ZlcmxheS4gKi9cbiAgd2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqIEhlaWdodCBvZiB0aGUgb3ZlcmxheS4gKi9cbiAgaGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKiBQb3NpdGlvbiBzdHJhdGVneSB0byBiZSB1c2VkIGZvciB0aGUgb3ZlcmxheS4gKi9cbiAgcG9zaXRpb25TdHJhdGVneT86IFBvc2l0aW9uU3RyYXRlZ3k7XG5cbiAgLyoqIEN1c3RvbSBjbGFzcyBmb3IgdGhlIG92ZXJsYXkgY29udGFpbmVyLiAqL1xuICBjb250YWluZXJDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKiBDdXN0b20gY2xhc3MgZm9yIHRoZSBvdmVybGF5IHBhbmUuICovXG4gIHBhbmVDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKiBFeHRyYSBDU1MgY2xhc3NlcyB0byBiZSBhZGRlZCB0byB0aGUgb3ZlcmxheSBvdmVybGF5IGNvbnRhaW5lci4gKi9cbiAgb3ZlcmxheUNsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgLyoqIEN1c3RvbSBjbGFzcyBmb3IgdGhlIGJhY2tkcm9wLiAqL1xuICBiYWNrZHJvcENsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgLyoqIEN1c3RvbSBjbGFzcyBmb3IgdGhlIGRvY3VtZW50IChgPGh0bWw+YCBlbGVtZW50KS4gKi9cbiAgZG9jdW1lbnRDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKiBDdXN0b20gY2xhc3MgZm9yIHRoZSBgPGJvZHk+YCBlbGVtZW50ICovXG4gIGJvZHlDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKiBQb3NpdGlvbiBvdmVycmlkZXMuICovXG4gIHBvc2l0aW9uPzogT3ZlcmxheVBvc2l0aW9uO1xuXG4gIC8qKiBEZXRlcm1pbmUgaWYgYW5kIGluIHdoYXQgZGlyZWN0aW9uIHRoZSBvdmVybGF5IHNob3VsZCBiZSBhYmxlIHRvIGJlIGRyYWdnZWQgdG8gZGlzbWlzcyBpdC4gKi9cbiAgZHJhZ1RvRGlzbWlzcz86IE92ZXJsYXlEcmFnVG9EaXNtaXNzQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB0cmFuc2Zvcm0gb3JpZ2luIHNob3VsZCBiZSBzZXQgdXNpbmcgdGhlIGNvbmZpZydzIGBvcmlnaW5gIHByb3BlcnR5IHZhbHVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgYXBwbHlUcmFuc2Zvcm1PcmlnaW4/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnkge1xuICAvKipcbiAgICogQnJlYWtwb2ludCB0byBhcHBseSB0aGUgY29uZmlnIGZvci4gSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdXNlZCBhcyBhIHBpeGVsIHZhbHVlLlxuICAgKiBBbHdheXMgdXNlcyB0aGUgbWluLXdpZHRoIG1lZGlhIHF1ZXJ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAneHMnIC8vIDBweFxuICAgKi9cbiAgYnJlYWtwb2ludD86IEJyZWFrcG9pbnQgfCBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE92ZXJsYXkgY29uZmlndXJhdGlvbiB0byBiZSBhcHBsaWVkIHdoZW4gdGhlIGJyZWFrcG9pbnQgaXMgYWN0aXZlLlxuICAgKi9cbiAgY29uZmlnOiBPdmVybGF5QnJlYWtwb2ludENvbmZpZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPdmVybGF5Q29uZmlnPEQgPSB1bmtub3duPiB7XG4gIC8qKlxuICAgKiBDb25kaXRpb25hbGx5IGFwcGxpZWQgb3ZlcmxheSBjb25maWd1cmF0aW9ucyBiYXNlZCBvbiBicmVha3BvaW50cy5cbiAgICovXG4gIHBvc2l0aW9uczogT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeVtdO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgYXR0YWNoZWQgY29tcG9uZW50IHNob3VsZCBsaXZlIGluIEFuZ3VsYXIncyAqbG9naWNhbCogY29tcG9uZW50IHRyZWUuXG4gICAqIFRoaXMgYWZmZWN0cyB3aGF0IGlzIGF2YWlsYWJsZSBmb3IgaW5qZWN0aW9uIGFuZCB0aGUgY2hhbmdlIGRldGVjdGlvbiBvcmRlciBmb3IgdGhlXG4gICAqIGNvbXBvbmVudCBpbnN0YW50aWF0ZWQgaW5zaWRlIG9mIHRoZSBvdmVybGF5LiBUaGlzIGRvZXMgbm90IGFmZmVjdCB3aGVyZSB0aGUgb3ZlcmxheVxuICAgKiBjb250ZW50IHdpbGwgYmUgcmVuZGVyZWQuXG4gICAqL1xuICB2aWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZjtcblxuICAvKipcbiAgICogSW5qZWN0b3IgdXNlZCBmb3IgdGhlIGluc3RhbnRpYXRpb24gb2YgdGhlIGNvbXBvbmVudCB0byBiZSBhdHRhY2hlZC4gSWYgcHJvdmlkZWQsXG4gICAqIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgaW5qZWN0b3IgaW5kaXJlY3RseSBwcm92aWRlZCBieSBgVmlld0NvbnRhaW5lclJlZmAuXG4gICAqL1xuICBpbmplY3Rvcj86IEluamVjdG9yO1xuXG4gIC8qKiBJRCBmb3IgdGhlIG92ZXJsYXkuIElmIG9taXR0ZWQsIGEgdW5pcXVlIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC4gKi9cbiAgaWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUklBIHJvbGUgb2YgdGhlIG92ZXJsYXkgZWxlbWVudC5cbiAgICogQGRlZmF1bHQgJ2RpYWxvZydcbiAgICovXG4gIHJvbGU/OiBPdmVybGF5Um9sZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgb3ZlcmxheSBoYXMgYSBiYWNrZHJvcC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgaGFzQmFja2Ryb3A/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB1c2VyIGNhbiB1c2UgZXNjYXBlIG9yIGNsaWNraW5nIG9uIHRoZSBiYWNrZHJvcCB0byBjbG9zZSB0aGUgbW9kYWwuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBkaXNhYmxlQ2xvc2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEYXRhIGJlaW5nIGluamVjdGVkIGludG8gdGhlIGNoaWxkIGNvbXBvbmVudC5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgZGF0YT86IEQgfCBudWxsO1xuXG4gIC8qKiBMYXlvdXQgZGlyZWN0aW9uIGZvciB0aGUgb3ZlcmxheSdzIGNvbnRlbnQuICovXG4gIGRpcmVjdGlvbj86IERpcmVjdGlvbjtcblxuICAvKipcbiAgICogSUQgb2YgdGhlIGVsZW1lbnQgdGhhdCBkZXNjcmliZXMgdGhlIG92ZXJsYXkuXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIGFyaWFEZXNjcmliZWRCeT86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIElEIG9mIHRoZSBlbGVtZW50IHRoYXQgbGFiZWxzIHRoZSBvdmVybGF5LlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBhcmlhTGFiZWxsZWRCeT86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEFyaWEgbGFiZWwgdG8gYXNzaWduIHRvIHRoZSBvdmVybGF5IGVsZW1lbnQuXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIGFyaWFMYWJlbD86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpcyBhIG1vZGFsIG92ZXJsYXkuIFVzZWQgdG8gc2V0IHRoZSBgYXJpYS1tb2RhbGAgYXR0cmlidXRlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBhcmlhTW9kYWw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBvdmVybGF5IHVzZXMgYSBjdXN0b20gYW5pbWF0aW9uLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgY3VzdG9tQW5pbWF0ZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgb3ZlcmxheSBzaG91bGQgZm9jdXMgb24gb3Blbi5cbiAgICogQ2FuIGJlIG9uZSBvZiBBdXRvRm9jdXNUYXJnZXQsIG9yIGEgY3NzIHNlbGVjdG9yIHN0cmluZy5cbiAgICogQGRlZmF1bHQgJ2ZpcnN0LXRhYmJhYmxlJ1xuICAgKi9cbiAgYXV0b0ZvY3VzPzogT3ZlcmxheUF1dG9Gb2N1c1RhcmdldCB8IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgb3ZlcmxheSBzaG91bGQgcmVzdG9yZSBmb2N1cyB0byB0aGVcbiAgICogcHJldmlvdXNseS1mb2N1c2VkIGVsZW1lbnQsIGFmdGVyIGl0J3MgY2xvc2VkLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZXN0b3JlRm9jdXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHdhaXQgZm9yIHRoZSBvcGVuaW5nIGFuaW1hdGlvbiB0byBmaW5pc2ggYmVmb3JlIHRyYXBwaW5nIGZvY3VzLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBkZWxheUZvY3VzVHJhcD86IGJvb2xlYW47XG5cbiAgLyoqIFNjcm9sbCBzdHJhdGVneSB0byBiZSB1c2VkIGZvciB0aGUgb3ZlcmxheS4gKi9cbiAgc2Nyb2xsU3RyYXRlZ3k/OiBTY3JvbGxTdHJhdGVneTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgb3ZlcmxheSBzaG91bGQgY2xvc2Ugd2hlbiB0aGUgdXNlciBnb2VzIGJhY2t3YXJkcy9mb3J3YXJkcyBpbiBoaXN0b3J5LlxuICAgKiBOb3RlIHRoYXQgdGhpcyB1c3VhbGx5IGRvZXNuJ3QgaW5jbHVkZSBjbGlja2luZyBvbiBsaW5rcyAodW5sZXNzIHRoZSB1c2VyIGlzIHVzaW5nXG4gICAqIHRoZSBgSGFzaExvY2F0aW9uU3RyYXRlZ3lgKS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgY2xvc2VPbk5hdmlnYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFeHRyYSBwcm92aWRlcnMgdG8gYmUgbWFkZSBhdmFpbGFibGUgdG8gdGhlIG92ZXJsYXkuXG4gICAqL1xuICBwcm92aWRlcnM/OiBTdGF0aWNQcm92aWRlcltdO1xuXG4gIC8qKlxuICAgKiBUaGUgb3JpZ2luIGVsZW1lbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIG92ZXJsYXkncyBvcGVuaW5nLlxuICAgKi9cbiAgb3JpZ2luPzogSFRNTEVsZW1lbnQgfCBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCB8IEtleWJvYXJkRXZlbnQgfCBQb2ludGVyRXZlbnQ7XG59XG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvb3ZlcmxheS90eXBlcy9vdmVybGF5LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBCQSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsSUFBSSxFQUFFLE1BQU07SUFDWixPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsUUFBUTtDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBQb3NpdGlvblN0cmF0ZWd5LCBTY3JvbGxTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEluamVjdG9yLCBTdGF0aWNQcm92aWRlciwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJlYWtwb2ludCB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuXG4vKiogT3B0aW9ucyBmb3Igd2hlcmUgdG8gc2V0IGZvY3VzIHRvIGF1dG9tYXRpY2FsbHkgb24gb3ZlcmxheSBvcGVuICovXG5leHBvcnQgdHlwZSBPdmVybGF5QXV0b0ZvY3VzVGFyZ2V0ID0gJ2RpYWxvZycgfCAnZmlyc3QtdGFiYmFibGUnIHwgJ2ZpcnN0LWhlYWRpbmcnO1xuXG4vKiogVmFsaWQgQVJJQSByb2xlcyBmb3IgYSBvdmVybGF5IGVsZW1lbnQuICovXG5leHBvcnQgdHlwZSBPdmVybGF5Um9sZSA9ICdkaWFsb2cnIHwgJ2FsZXJ0ZGlhbG9nJztcblxuLyoqIFBvc3NpYmxlIG92ZXJyaWRlcyBmb3IgYSBvdmVybGF5J3MgcG9zaXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJsYXlQb3NpdGlvbiB7XG4gIC8qKiBPdmVycmlkZSBmb3IgdGhlIG92ZXJsYXkncyB0b3AgcG9zaXRpb24uICovXG4gIHRvcD86IHN0cmluZztcblxuICAvKiogT3ZlcnJpZGUgZm9yIHRoZSBvdmVybGF5J3MgYm90dG9tIHBvc2l0aW9uLiAqL1xuICBib3R0b20/OiBzdHJpbmc7XG5cbiAgLyoqIE92ZXJyaWRlIGZvciB0aGUgb3ZlcmxheSdzIGxlZnQgcG9zaXRpb24uICovXG4gIGxlZnQ/OiBzdHJpbmc7XG5cbiAgLyoqIE92ZXJyaWRlIGZvciB0aGUgb3ZlcmxheSdzIHJpZ2h0IHBvc2l0aW9uLiAqL1xuICByaWdodD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IE9WRVJMQVlfU1RBVEUgPSB7XG4gIE9QRU46ICdvcGVuJyxcbiAgQ0xPU0lORzogJ2Nsb3NpbmcnLFxuICBDTE9TRUQ6ICdjbG9zZWQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgT3ZlcmxheVN0YXRlID0gKHR5cGVvZiBPVkVSTEFZX1NUQVRFKVtrZXlvZiB0eXBlb2YgT1ZFUkxBWV9TVEFURV07XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcmxheURyYWdUb0Rpc21pc3NDb25maWcge1xuICAvKiogRGlyZWN0aW9uIGluIHdoaWNoIHRoZSBvdmVybGF5IGNhbiBiZSBkcmFnZ2VkLiAqL1xuICBkaXJlY3Rpb246ICd0by10b3AnIHwgJ3RvLWJvdHRvbScgfCAndG8tbGVmdCcgfCAndG8tcmlnaHQnO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBkaXN0YW5jZSBpbiBwaXhlbHMgdGhhdCB0aGUgdXNlciBtdXN0IHN3aXBlIHRvIGRpc21pc3MgdGhlIG92ZXJsYXkuXG4gICAqXG4gICAqIEBkZWZhdWx0IDE1MCAvLyAxNTBweFxuICAgKi9cbiAgbWluRGlzdGFuY2VUb0Rpc21pc3M/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHZlbG9jaXR5IGluIHBpeGVscyBwZXIgc2Vjb25kIHRoYXQgdGhlIHVzZXIgbXVzdCBzd2lwZSB0byBkaXNtaXNzIHRoZSBvdmVybGF5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAxNTAgLy8gMTUwcHgvc1xuICAgKi9cbiAgbWluVmVsb2NpdHlUb0Rpc21pc3M/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcmxheUJyZWFrcG9pbnRDb25maWcge1xuICAvKiogTWluLXdpZHRoIG9mIHRoZSBvdmVybGF5LiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgYXNzdW1lcyBwaXhlbCB1bml0cy4gKi9cbiAgbWluV2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqIE1heC13aWR0aCBvZiB0aGUgb3ZlcmxheS4gSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIGFzc3VtZXMgcGl4ZWwgdW5pdHMuICovXG4gIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKiBNaW4taGVpZ2h0IG9mIHRoZSBvdmVybGF5LiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgYXNzdW1lcyBwaXhlbCB1bml0cy4gKi9cbiAgbWluSGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKiBNYXgtaGVpZ2h0IG9mIHRoZSBvdmVybGF5LiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgYXNzdW1lcyBwaXhlbCB1bml0cy4gKi9cbiAgbWF4SGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKiBXaWR0aCBvZiB0aGUgb3ZlcmxheS4gKi9cbiAgd2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqIEhlaWdodCBvZiB0aGUgb3ZlcmxheS4gKi9cbiAgaGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKiBQb3NpdGlvbiBzdHJhdGVneSB0byBiZSB1c2VkIGZvciB0aGUgb3ZlcmxheS4gKi9cbiAgcG9zaXRpb25TdHJhdGVneT86ICgpID0+IFBvc2l0aW9uU3RyYXRlZ3k7XG5cbiAgLyoqIEN1c3RvbSBjbGFzcyBmb3IgdGhlIG92ZXJsYXkgY29udGFpbmVyLiAqL1xuICBjb250YWluZXJDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKiBDdXN0b20gY2xhc3MgZm9yIHRoZSBvdmVybGF5IHBhbmUuICovXG4gIHBhbmVDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKiBFeHRyYSBDU1MgY2xhc3NlcyB0byBiZSBhZGRlZCB0byB0aGUgb3ZlcmxheSBvdmVybGF5IGNvbnRhaW5lci4gKi9cbiAgb3ZlcmxheUNsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgLyoqIEN1c3RvbSBjbGFzcyBmb3IgdGhlIGJhY2tkcm9wLiAqL1xuICBiYWNrZHJvcENsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgLyoqIEN1c3RvbSBjbGFzcyBmb3IgdGhlIGRvY3VtZW50IChgPGh0bWw+YCBlbGVtZW50KS4gKi9cbiAgZG9jdW1lbnRDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKiBDdXN0b20gY2xhc3MgZm9yIHRoZSBgPGJvZHk+YCBlbGVtZW50ICovXG4gIGJvZHlDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKiBQb3NpdGlvbiBvdmVycmlkZXMuICovXG4gIHBvc2l0aW9uPzogT3ZlcmxheVBvc2l0aW9uO1xuXG4gIC8qKiBEZXRlcm1pbmUgaWYgYW5kIGluIHdoYXQgZGlyZWN0aW9uIHRoZSBvdmVybGF5IHNob3VsZCBiZSBhYmxlIHRvIGJlIGRyYWdnZWQgdG8gZGlzbWlzcyBpdC4gKi9cbiAgZHJhZ1RvRGlzbWlzcz86IE92ZXJsYXlEcmFnVG9EaXNtaXNzQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB0cmFuc2Zvcm0gb3JpZ2luIHNob3VsZCBiZSBzZXQgdXNpbmcgdGhlIGNvbmZpZydzIGBvcmlnaW5gIHByb3BlcnR5IHZhbHVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgYXBwbHlUcmFuc2Zvcm1PcmlnaW4/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnkge1xuICAvKipcbiAgICogQnJlYWtwb2ludCB0byBhcHBseSB0aGUgY29uZmlnIGZvci4gSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdXNlZCBhcyBhIHBpeGVsIHZhbHVlLlxuICAgKiBBbHdheXMgdXNlcyB0aGUgbWluLXdpZHRoIG1lZGlhIHF1ZXJ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAneHMnIC8vIDBweFxuICAgKi9cbiAgYnJlYWtwb2ludD86IEJyZWFrcG9pbnQgfCBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE92ZXJsYXkgY29uZmlndXJhdGlvbiB0byBiZSBhcHBsaWVkIHdoZW4gdGhlIGJyZWFrcG9pbnQgaXMgYWN0aXZlLlxuICAgKi9cbiAgY29uZmlnOiBPdmVybGF5QnJlYWtwb2ludENvbmZpZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPdmVybGF5Q29uZmlnPEQgPSB1bmtub3duPiB7XG4gIC8qKlxuICAgKiBDb25kaXRpb25hbGx5IGFwcGxpZWQgb3ZlcmxheSBjb25maWd1cmF0aW9ucyBiYXNlZCBvbiBicmVha3BvaW50cy5cbiAgICovXG4gIHBvc2l0aW9uczogT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeVtdO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgYXR0YWNoZWQgY29tcG9uZW50IHNob3VsZCBsaXZlIGluIEFuZ3VsYXIncyAqbG9naWNhbCogY29tcG9uZW50IHRyZWUuXG4gICAqIFRoaXMgYWZmZWN0cyB3aGF0IGlzIGF2YWlsYWJsZSBmb3IgaW5qZWN0aW9uIGFuZCB0aGUgY2hhbmdlIGRldGVjdGlvbiBvcmRlciBmb3IgdGhlXG4gICAqIGNvbXBvbmVudCBpbnN0YW50aWF0ZWQgaW5zaWRlIG9mIHRoZSBvdmVybGF5LiBUaGlzIGRvZXMgbm90IGFmZmVjdCB3aGVyZSB0aGUgb3ZlcmxheVxuICAgKiBjb250ZW50IHdpbGwgYmUgcmVuZGVyZWQuXG4gICAqL1xuICB2aWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZjtcblxuICAvKipcbiAgICogSW5qZWN0b3IgdXNlZCBmb3IgdGhlIGluc3RhbnRpYXRpb24gb2YgdGhlIGNvbXBvbmVudCB0byBiZSBhdHRhY2hlZC4gSWYgcHJvdmlkZWQsXG4gICAqIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgaW5qZWN0b3IgaW5kaXJlY3RseSBwcm92aWRlZCBieSBgVmlld0NvbnRhaW5lclJlZmAuXG4gICAqL1xuICBpbmplY3Rvcj86IEluamVjdG9yO1xuXG4gIC8qKiBJRCBmb3IgdGhlIG92ZXJsYXkuIElmIG9taXR0ZWQsIGEgdW5pcXVlIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC4gKi9cbiAgaWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUklBIHJvbGUgb2YgdGhlIG92ZXJsYXkgZWxlbWVudC5cbiAgICogQGRlZmF1bHQgJ2RpYWxvZydcbiAgICovXG4gIHJvbGU/OiBPdmVybGF5Um9sZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgb3ZlcmxheSBoYXMgYSBiYWNrZHJvcC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgaGFzQmFja2Ryb3A/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB1c2VyIGNhbiB1c2UgZXNjYXBlIG9yIGNsaWNraW5nIG9uIHRoZSBiYWNrZHJvcCB0byBjbG9zZSB0aGUgbW9kYWwuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBkaXNhYmxlQ2xvc2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEYXRhIGJlaW5nIGluamVjdGVkIGludG8gdGhlIGNoaWxkIGNvbXBvbmVudC5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgZGF0YT86IEQgfCBudWxsO1xuXG4gIC8qKiBMYXlvdXQgZGlyZWN0aW9uIGZvciB0aGUgb3ZlcmxheSdzIGNvbnRlbnQuICovXG4gIGRpcmVjdGlvbj86IERpcmVjdGlvbjtcblxuICAvKipcbiAgICogSUQgb2YgdGhlIGVsZW1lbnQgdGhhdCBkZXNjcmliZXMgdGhlIG92ZXJsYXkuXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIGFyaWFEZXNjcmliZWRCeT86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIElEIG9mIHRoZSBlbGVtZW50IHRoYXQgbGFiZWxzIHRoZSBvdmVybGF5LlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBhcmlhTGFiZWxsZWRCeT86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEFyaWEgbGFiZWwgdG8gYXNzaWduIHRvIHRoZSBvdmVybGF5IGVsZW1lbnQuXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIGFyaWFMYWJlbD86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpcyBhIG1vZGFsIG92ZXJsYXkuIFVzZWQgdG8gc2V0IHRoZSBgYXJpYS1tb2RhbGAgYXR0cmlidXRlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBhcmlhTW9kYWw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBvdmVybGF5IHVzZXMgYSBjdXN0b20gYW5pbWF0aW9uLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgY3VzdG9tQW5pbWF0ZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgb3ZlcmxheSBzaG91bGQgZm9jdXMgb24gb3Blbi5cbiAgICogQ2FuIGJlIG9uZSBvZiBBdXRvRm9jdXNUYXJnZXQsIG9yIGEgY3NzIHNlbGVjdG9yIHN0cmluZy5cbiAgICogQGRlZmF1bHQgJ2ZpcnN0LXRhYmJhYmxlJ1xuICAgKi9cbiAgYXV0b0ZvY3VzPzogT3ZlcmxheUF1dG9Gb2N1c1RhcmdldCB8IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgb3ZlcmxheSBzaG91bGQgcmVzdG9yZSBmb2N1cyB0byB0aGVcbiAgICogcHJldmlvdXNseS1mb2N1c2VkIGVsZW1lbnQsIGFmdGVyIGl0J3MgY2xvc2VkLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZXN0b3JlRm9jdXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHdhaXQgZm9yIHRoZSBvcGVuaW5nIGFuaW1hdGlvbiB0byBmaW5pc2ggYmVmb3JlIHRyYXBwaW5nIGZvY3VzLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBkZWxheUZvY3VzVHJhcD86IGJvb2xlYW47XG5cbiAgLyoqIFNjcm9sbCBzdHJhdGVneSB0byBiZSB1c2VkIGZvciB0aGUgb3ZlcmxheS4gKi9cbiAgc2Nyb2xsU3RyYXRlZ3k/OiBTY3JvbGxTdHJhdGVneTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgb3ZlcmxheSBzaG91bGQgY2xvc2Ugd2hlbiB0aGUgdXNlciBnb2VzIGJhY2t3YXJkcy9mb3J3YXJkcyBpbiBoaXN0b3J5LlxuICAgKiBOb3RlIHRoYXQgdGhpcyB1c3VhbGx5IGRvZXNuJ3QgaW5jbHVkZSBjbGlja2luZyBvbiBsaW5rcyAodW5sZXNzIHRoZSB1c2VyIGlzIHVzaW5nXG4gICAqIHRoZSBgSGFzaExvY2F0aW9uU3RyYXRlZ3lgKS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgY2xvc2VPbk5hdmlnYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFeHRyYSBwcm92aWRlcnMgdG8gYmUgbWFkZSBhdmFpbGFibGUgdG8gdGhlIG92ZXJsYXkuXG4gICAqL1xuICBwcm92aWRlcnM/OiBTdGF0aWNQcm92aWRlcltdO1xuXG4gIC8qKlxuICAgKiBUaGUgb3JpZ2luIGVsZW1lbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIG92ZXJsYXkncyBvcGVuaW5nLlxuICAgKi9cbiAgb3JpZ2luPzogSFRNTEVsZW1lbnQgfCBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCB8IEtleWJvYXJkRXZlbnQgfCBQb2ludGVyRXZlbnQ7XG59XG4iXX0=
@@ -18,7 +18,7 @@ export class OverlayPositionBuilder {
18
18
  minHeight: undefined,
19
19
  minWidth: undefined,
20
20
  containerClass: ET_OVERLAY_DIALOG_CLASS,
21
- positionStrategy: this._overlay.position().global().centerHorizontally().centerVertically(),
21
+ positionStrategy: () => this._overlay.position().global().centerHorizontally().centerVertically(),
22
22
  },
23
23
  fullScreenDialog: {
24
24
  width: '100%',
@@ -28,7 +28,7 @@ export class OverlayPositionBuilder {
28
28
  minHeight: undefined,
29
29
  minWidth: undefined,
30
30
  containerClass: ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS,
31
- positionStrategy: this._overlay.position().global().left('0').top('0').bottom('0').right('0'),
31
+ positionStrategy: () => this._overlay.position().global().left('0').top('0').bottom('0').right('0'),
32
32
  documentClass: 'et-overlay--full-screen-dialog-document',
33
33
  applyTransformOrigin: true,
34
34
  },
@@ -40,7 +40,7 @@ export class OverlayPositionBuilder {
40
40
  minHeight: undefined,
41
41
  minWidth: undefined,
42
42
  containerClass: ET_OVERLAY_BOTTOM_SHEET_CLASS,
43
- positionStrategy: this._overlay.position().global().centerHorizontally().bottom('0'),
43
+ positionStrategy: () => this._overlay.position().global().centerHorizontally().bottom('0'),
44
44
  dragToDismiss: {
45
45
  direction: 'to-bottom',
46
46
  },
@@ -53,7 +53,7 @@ export class OverlayPositionBuilder {
53
53
  minHeight: undefined,
54
54
  minWidth: undefined,
55
55
  containerClass: ET_OVERLAY_TOP_SHEET_CLASS,
56
- positionStrategy: this._overlay.position().global().centerHorizontally().top('0'),
56
+ positionStrategy: () => this._overlay.position().global().centerHorizontally().top('0'),
57
57
  dragToDismiss: {
58
58
  direction: 'to-top',
59
59
  },
@@ -66,7 +66,7 @@ export class OverlayPositionBuilder {
66
66
  minHeight: undefined,
67
67
  minWidth: undefined,
68
68
  containerClass: ET_OVERLAY_LEFT_SHEET_CLASS,
69
- positionStrategy: this._overlay.position().global().left('0').centerVertically(),
69
+ positionStrategy: () => this._overlay.position().global().left('0').centerVertically(),
70
70
  dragToDismiss: {
71
71
  direction: 'to-left',
72
72
  },
@@ -79,7 +79,7 @@ export class OverlayPositionBuilder {
79
79
  minHeight: undefined,
80
80
  minWidth: undefined,
81
81
  containerClass: ET_OVERLAY_RIGHT_SHEET_CLASS,
82
- positionStrategy: this._overlay.position().global().right('0').centerVertically(),
82
+ positionStrategy: () => this._overlay.position().global().right('0').centerVertically(),
83
83
  dragToDismiss: {
84
84
  direction: 'to-right',
85
85
  },
@@ -168,4 +168,4 @@ export class OverlayPositionBuilder {
168
168
  return config;
169
169
  }
170
170
  }
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1wb3NpdGlvbi1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3V0aWxzL292ZXJsYXktcG9zaXRpb24tYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2QyxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyx3QkFBd0IsQ0FBQztBQUNwRSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyx5QkFBeUIsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyx1QkFBdUIsQ0FBQztBQUNsRSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRywwQkFBMEIsQ0FBQztBQUN4RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxvQkFBb0IsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxnQ0FBZ0MsQ0FBQztBQUVwRixNQUFNLE9BQU8sc0JBQXNCO0lBQW5DO1FBQ21CLGFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkMsYUFBUSxHQUFHO1lBQ2xCLE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsU0FBUztnQkFDaEIsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLFNBQVMsRUFBRSxNQUFNO2dCQUNqQixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixjQUFjLEVBQUUsdUJBQXVCO2dCQUN2QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsZ0JBQWdCLEVBQUU7YUFDNUY7WUFDRCxnQkFBZ0IsRUFBRTtnQkFDaEIsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixTQUFTLEVBQUUsU0FBUztnQkFDcEIsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLGNBQWMsRUFBRSxtQ0FBbUM7Z0JBQ25ELGdCQUFnQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDN0YsYUFBYSxFQUFFLHlDQUF5QztnQkFDeEQsb0JBQW9CLEVBQUUsSUFBSTthQUMzQjtZQUNELFdBQVcsRUFBRTtnQkFDWCxLQUFLLEVBQUUsTUFBTTtnQkFDYixNQUFNLEVBQUUsU0FBUztnQkFDakIsU0FBUyxFQUFFLG1CQUFtQjtnQkFDOUIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixRQUFRLEVBQUUsU0FBUztnQkFDbkIsY0FBYyxFQUFFLDZCQUE2QjtnQkFDN0MsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7Z0JBQ3BGLGFBQWEsRUFBRTtvQkFDYixTQUFTLEVBQUUsV0FBVztpQkFDdkI7YUFDRjtZQUNELFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUUsTUFBTTtnQkFDYixNQUFNLEVBQUUsU0FBUztnQkFDakIsU0FBUyxFQUFFLG1CQUFtQjtnQkFDOUIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixRQUFRLEVBQUUsU0FBUztnQkFDbkIsY0FBYyxFQUFFLDBCQUEwQjtnQkFDMUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7Z0JBQ2pGLGFBQWEsRUFBRTtvQkFDYixTQUFTLEVBQUUsUUFBUTtpQkFDcEI7YUFDRjtZQUNELFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUUsTUFBTTtnQkFDYixNQUFNLEVBQUUsTUFBTTtnQkFDZCxTQUFTLEVBQUUsU0FBUztnQkFDcEIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixRQUFRLEVBQUUsU0FBUztnQkFDbkIsY0FBYyxFQUFFLDJCQUEyQjtnQkFDM0MsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ2hGLGFBQWEsRUFBRTtvQkFDYixTQUFTLEVBQUUsU0FBUztpQkFDckI7YUFDRjtZQUNELFVBQVUsRUFBRTtnQkFDVixLQUFLLEVBQUUsTUFBTTtnQkFDYixNQUFNLEVBQUUsTUFBTTtnQkFDZCxTQUFTLEVBQUUsU0FBUztnQkFDcEIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixRQUFRLEVBQUUsU0FBUztnQkFDbkIsY0FBYyxFQUFFLDRCQUE0QjtnQkFDNUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ2pGLGFBQWEsRUFBRTtvQkFDYixTQUFTLEVBQUUsVUFBVTtpQkFDdEI7YUFDRjtTQUNnRCxDQUFDO0lBMEd0RCxDQUFDO0lBeEdDLCtCQUErQixDQUFDLFlBRy9CO1FBQ0MsTUFBTSxJQUFJLEdBQW1DO1lBQzNDO2dCQUNFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO2FBQ3RGO1lBQ0Q7Z0JBQ0UsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDO2FBQzVFO1NBQ0YsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHdDQUF3QyxDQUFDLFlBR3hDO1FBQ0MsTUFBTSxJQUFJLEdBQW1DO1lBQzNDO2dCQUNFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixJQUFJLEVBQUUsQ0FBQzthQUNoRztZQUNEO2dCQUNFLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQzthQUNwRjtTQUNGLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBc0M7UUFDM0MsTUFBTSxJQUFJLEdBQW1DO1lBQzNDO2dCQUNFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7YUFDcEU7U0FDRixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsWUFBc0M7UUFDckQsTUFBTSxJQUFJLEdBQW1DO1lBQzNDO2dCQUNFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxJQUFJLEVBQUUsQ0FBQzthQUM5RTtTQUNGLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXLENBQUMsWUFBc0M7UUFDaEQsTUFBTSxJQUFJLEdBQW1DO1lBQzNDO2dCQUNFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7YUFDekU7U0FDRixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsUUFBUSxDQUFDLFlBQXNDO1FBQzdDLE1BQU0sSUFBSSxHQUFtQztZQUMzQztnQkFDRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxZQUFZLElBQUksRUFBRSxDQUFDO2FBQ3RFO1NBQ0YsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVMsQ0FBQyxZQUFzQztRQUM5QyxNQUFNLElBQUksR0FBbUM7WUFDM0M7Z0JBQ0UsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsWUFBWSxJQUFJLEVBQUUsQ0FBQzthQUN2RTtTQUNGLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVLENBQUMsWUFBc0M7UUFDL0MsTUFBTSxJQUFJLEdBQW1DO1lBQzNDO2dCQUNFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7YUFDeEU7U0FDRixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQUcsT0FBa0M7UUFDaEQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUMxQyxPQUFPO2dCQUNMLEdBQUcsR0FBRztnQkFDTixHQUFHLElBQUk7YUFDUixDQUFDO1FBQ0osQ0FBQyxFQUFFLEVBQTZCLENBQUMsQ0FBQztRQUVsQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5QnJlYWtwb2ludENvbmZpZywgT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IEVUX09WRVJMQVlfTEVGVF9TSEVFVF9DTEFTUyA9ICdldC1vdmVybGF5LS1sZWZ0LXNoZWV0JztcbmV4cG9ydCBjb25zdCBFVF9PVkVSTEFZX1JJR0hUX1NIRUVUX0NMQVNTID0gJ2V0LW92ZXJsYXktLXJpZ2h0LXNoZWV0JztcbmV4cG9ydCBjb25zdCBFVF9PVkVSTEFZX1RPUF9TSEVFVF9DTEFTUyA9ICdldC1vdmVybGF5LS10b3Atc2hlZXQnO1xuZXhwb3J0IGNvbnN0IEVUX09WRVJMQVlfQk9UVE9NX1NIRUVUX0NMQVNTID0gJ2V0LW92ZXJsYXktLWJvdHRvbS1zaGVldCc7XG5leHBvcnQgY29uc3QgRVRfT1ZFUkxBWV9ESUFMT0dfQ0xBU1MgPSAnZXQtb3ZlcmxheS0tZGlhbG9nJztcbmV4cG9ydCBjb25zdCBFVF9PVkVSTEFZX0ZVTExfU0NSRUVOX0RJQUxPR19DTEFTUyA9ICdldC1vdmVybGF5LS1mdWxsLXNjcmVlbi1kaWFsb2cnO1xuXG5leHBvcnQgY2xhc3MgT3ZlcmxheVBvc2l0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG5cbiAgcmVhZG9ubHkgREVGQVVMVFMgPSB7XG4gICAgZGlhbG9nOiB7XG4gICAgICB3aWR0aDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtYXhIZWlnaHQ6ICc4MHZoJyxcbiAgICAgIG1heFdpZHRoOiAnODB2dycsXG4gICAgICBtaW5IZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgIG1pbldpZHRoOiB1bmRlZmluZWQsXG4gICAgICBjb250YWluZXJDbGFzczogRVRfT1ZFUkxBWV9ESUFMT0dfQ0xBU1MsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpLFxuICAgIH0sXG4gICAgZnVsbFNjcmVlbkRpYWxvZzoge1xuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgbWF4SGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtYXhXaWR0aDogdW5kZWZpbmVkLFxuICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgY29udGFpbmVyQ2xhc3M6IEVUX09WRVJMQVlfRlVMTF9TQ1JFRU5fRElBTE9HX0NMQVNTLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmxlZnQoJzAnKS50b3AoJzAnKS5ib3R0b20oJzAnKS5yaWdodCgnMCcpLFxuICAgICAgZG9jdW1lbnRDbGFzczogJ2V0LW92ZXJsYXktLWZ1bGwtc2NyZWVuLWRpYWxvZy1kb2N1bWVudCcsXG4gICAgICBhcHBseVRyYW5zZm9ybU9yaWdpbjogdHJ1ZSxcbiAgICB9LFxuICAgIGJvdHRvbVNoZWV0OiB7XG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgaGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtYXhIZWlnaHQ6ICdjYWxjKDEwMCUgLSA3MnB4KScsXG4gICAgICBtYXhXaWR0aDogJzY0MHB4JyxcbiAgICAgIG1pbkhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgbWluV2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgIGNvbnRhaW5lckNsYXNzOiBFVF9PVkVSTEFZX0JPVFRPTV9TSEVFVF9DTEFTUyxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5jZW50ZXJIb3Jpem9udGFsbHkoKS5ib3R0b20oJzAnKSxcbiAgICAgIGRyYWdUb0Rpc21pc3M6IHtcbiAgICAgICAgZGlyZWN0aW9uOiAndG8tYm90dG9tJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB0b3BTaGVldDoge1xuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgbWF4SGVpZ2h0OiAnY2FsYygxMDAlIC0gNzJweCknLFxuICAgICAgbWF4V2lkdGg6ICc2NDBweCcsXG4gICAgICBtaW5IZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgIG1pbldpZHRoOiB1bmRlZmluZWQsXG4gICAgICBjb250YWluZXJDbGFzczogRVRfT1ZFUkxBWV9UT1BfU0hFRVRfQ0xBU1MsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkudG9wKCcwJyksXG4gICAgICBkcmFnVG9EaXNtaXNzOiB7XG4gICAgICAgIGRpcmVjdGlvbjogJ3RvLXRvcCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgbGVmdFNoZWV0OiB7XG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICBtYXhIZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgIG1heFdpZHRoOiAnNjQwcHgnLFxuICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgY29udGFpbmVyQ2xhc3M6IEVUX09WRVJMQVlfTEVGVF9TSEVFVF9DTEFTUyxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5sZWZ0KCcwJykuY2VudGVyVmVydGljYWxseSgpLFxuICAgICAgZHJhZ1RvRGlzbWlzczoge1xuICAgICAgICBkaXJlY3Rpb246ICd0by1sZWZ0JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByaWdodFNoZWV0OiB7XG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICBtYXhIZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgIG1heFdpZHRoOiAnNjQwcHgnLFxuICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgY29udGFpbmVyQ2xhc3M6IEVUX09WRVJMQVlfUklHSFRfU0hFRVRfQ0xBU1MsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkucmlnaHQoJzAnKS5jZW50ZXJWZXJ0aWNhbGx5KCksXG4gICAgICBkcmFnVG9EaXNtaXNzOiB7XG4gICAgICAgIGRpcmVjdGlvbjogJ3RvLXJpZ2h0JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgT3ZlcmxheUJyZWFrcG9pbnRDb25maWc+O1xuXG4gIHRyYW5zZm9ybWluZ0JvdHRvbVNoZWV0VG9EaWFsb2coY3VzdG9tQ29uZmlnPzoge1xuICAgIGJvdHRvbVNoZWV0PzogT3ZlcmxheUJyZWFrcG9pbnRDb25maWc7XG4gICAgZGlhbG9nPzogT3ZlcmxheUJyZWFrcG9pbnRDb25maWc7XG4gIH0pIHtcbiAgICBjb25zdCBkYXRhOiBPdmVybGF5QnJlYWtwb2ludENvbmZpZ0VudHJ5W10gPSBbXG4gICAgICB7XG4gICAgICAgIGNvbmZpZzogdGhpcy5tZXJnZUNvbmZpZ3ModGhpcy5ERUZBVUxUUy5ib3R0b21TaGVldCwgY3VzdG9tQ29uZmlnPy5ib3R0b21TaGVldCA/PyB7fSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBicmVha3BvaW50OiAnbWQnLFxuICAgICAgICBjb25maWc6IHRoaXMubWVyZ2VDb25maWdzKHRoaXMuREVGQVVMVFMuZGlhbG9nLCBjdXN0b21Db25maWc/LmRpYWxvZyA/PyB7fSksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHRyYW5zZm9ybWluZ0Z1bGxTY3JlZW5EaWFsb2dUb1JpZ2h0U2hlZXQoY3VzdG9tQ29uZmlnPzoge1xuICAgIGZ1bGxTY3JlZW5EaWFsb2c/OiBPdmVybGF5QnJlYWtwb2ludENvbmZpZztcbiAgICByaWdodFNoZWV0PzogT3ZlcmxheUJyZWFrcG9pbnRDb25maWc7XG4gIH0pIHtcbiAgICBjb25zdCBkYXRhOiBPdmVybGF5QnJlYWtwb2ludENvbmZpZ0VudHJ5W10gPSBbXG4gICAgICB7XG4gICAgICAgIGNvbmZpZzogdGhpcy5tZXJnZUNvbmZpZ3ModGhpcy5ERUZBVUxUUy5mdWxsU2NyZWVuRGlhbG9nLCBjdXN0b21Db25maWc/LmZ1bGxTY3JlZW5EaWFsb2cgPz8ge30pLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYnJlYWtwb2ludDogJ21kJyxcbiAgICAgICAgY29uZmlnOiB0aGlzLm1lcmdlQ29uZmlncyh0aGlzLkRFRkFVTFRTLnJpZ2h0U2hlZXQsIGN1c3RvbUNvbmZpZz8ucmlnaHRTaGVldCA/PyB7fSksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGRpYWxvZyhjdXN0b21Db25maWc/OiBPdmVybGF5QnJlYWtwb2ludENvbmZpZykge1xuICAgIGNvbnN0IGRhdGE6IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29uZmlnOiB0aGlzLm1lcmdlQ29uZmlncyh0aGlzLkRFRkFVTFRTLmRpYWxvZywgY3VzdG9tQ29uZmlnID8/IHt9KSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgZnVsbFNjcmVlbkRpYWxvZyhjdXN0b21Db25maWc/OiBPdmVybGF5QnJlYWtwb2ludENvbmZpZykge1xuICAgIGNvbnN0IGRhdGE6IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29uZmlnOiB0aGlzLm1lcmdlQ29uZmlncyh0aGlzLkRFRkFVTFRTLmZ1bGxTY3JlZW5EaWFsb2csIGN1c3RvbUNvbmZpZyA/PyB7fSksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGJvdHRvbVNoZWV0KGN1c3RvbUNvbmZpZz86IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnKSB7XG4gICAgY29uc3QgZGF0YTogT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeVtdID0gW1xuICAgICAge1xuICAgICAgICBjb25maWc6IHRoaXMubWVyZ2VDb25maWdzKHRoaXMuREVGQVVMVFMuYm90dG9tU2hlZXQsIGN1c3RvbUNvbmZpZyA/PyB7fSksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHRvcFNoZWV0KGN1c3RvbUNvbmZpZz86IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnKSB7XG4gICAgY29uc3QgZGF0YTogT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeVtdID0gW1xuICAgICAge1xuICAgICAgICBjb25maWc6IHRoaXMubWVyZ2VDb25maWdzKHRoaXMuREVGQVVMVFMudG9wU2hlZXQsIGN1c3RvbUNvbmZpZyA/PyB7fSksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGxlZnRTaGVldChjdXN0b21Db25maWc/OiBPdmVybGF5QnJlYWtwb2ludENvbmZpZykge1xuICAgIGNvbnN0IGRhdGE6IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29uZmlnOiB0aGlzLm1lcmdlQ29uZmlncyh0aGlzLkRFRkFVTFRTLmxlZnRTaGVldCwgY3VzdG9tQ29uZmlnID8/IHt9KSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcmlnaHRTaGVldChjdXN0b21Db25maWc/OiBPdmVybGF5QnJlYWtwb2ludENvbmZpZykge1xuICAgIGNvbnN0IGRhdGE6IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29uZmlnOiB0aGlzLm1lcmdlQ29uZmlncyh0aGlzLkRFRkFVTFRTLnJpZ2h0U2hlZXQsIGN1c3RvbUNvbmZpZyA/PyB7fSksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIG1lcmdlQ29uZmlncyguLi5jb25maWdzOiBPdmVybGF5QnJlYWtwb2ludENvbmZpZ1tdKSB7XG4gICAgY29uc3QgY29uZmlnID0gY29uZmlncy5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYWNjLFxuICAgICAgICAuLi5jdXJyLFxuICAgICAgfTtcbiAgICB9LCB7fSBhcyBPdmVybGF5QnJlYWtwb2ludENvbmZpZyk7XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG59XG4iXX0=
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1wb3NpdGlvbi1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3V0aWxzL292ZXJsYXktcG9zaXRpb24tYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2QyxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyx3QkFBd0IsQ0FBQztBQUNwRSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyx5QkFBeUIsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyx1QkFBdUIsQ0FBQztBQUNsRSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRywwQkFBMEIsQ0FBQztBQUN4RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxvQkFBb0IsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxnQ0FBZ0MsQ0FBQztBQUVwRixNQUFNLE9BQU8sc0JBQXNCO0lBQW5DO1FBQ21CLGFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkMsYUFBUSxHQUFHO1lBQ2xCLE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsU0FBUztnQkFDaEIsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLFNBQVMsRUFBRSxNQUFNO2dCQUNqQixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixjQUFjLEVBQUUsdUJBQXVCO2dCQUN2QyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFD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a0M7UUFDaEQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUMxQyxPQUFPO2dCQUNMLEdBQUcsR0FBRztnQkFDTixHQUFHLElBQUk7YUFDUixDQUFDO1FBQ0osQ0FBQyxFQUFFLEVBQTZCLENBQUMsQ0FBQztRQUVsQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5QnJlYWtwb2ludENvbmZpZywgT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IEVUX09WRVJMQVlfTEVGVF9TSEVFVF9DTEFTUyA9ICdldC1vdmVybGF5LS1sZWZ0LXNoZWV0JztcbmV4cG9ydCBjb25zdCBFVF9PVkVSTEFZX1JJR0hUX1NIRUVUX0NMQVNTID0gJ2V0LW92ZXJsYXktLXJpZ2h0LXNoZWV0JztcbmV4cG9ydCBjb25zdCBFVF9PVkVSTEFZX1RPUF9TSEVFVF9DTEFTUyA9ICdldC1vdmVybGF5LS10b3Atc2hlZXQnO1xuZXhwb3J0IGNvbnN0IEVUX09WRVJMQVlfQk9UVE9NX1NIRUVUX0NMQVNTID0gJ2V0LW92ZXJsYXktLWJvdHRvbS1zaGVldCc7XG5leHBvcnQgY29uc3QgRVRfT1ZFUkxBWV9ESUFMT0dfQ0xBU1MgPSAnZXQtb3ZlcmxheS0tZGlhbG9nJztcbmV4cG9ydCBjb25zdCBFVF9PVkVSTEFZX0ZVTExfU0NSRUVOX0RJQUxPR19DTEFTUyA9ICdldC1vdmVybGF5LS1mdWxsLXNjcmVlbi1kaWFsb2cnO1xuXG5leHBvcnQgY2xhc3MgT3ZlcmxheVBvc2l0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG5cbiAgcmVhZG9ubHkgREVGQVVMVFMgPSB7XG4gICAgZGlhbG9nOiB7XG4gICAgICB3aWR0aDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtYXhIZWlnaHQ6ICc4MHZoJyxcbiAgICAgIG1heFdpZHRoOiAnODB2dycsXG4gICAgICBtaW5IZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgIG1pbldpZHRoOiB1bmRlZmluZWQsXG4gICAgICBjb250YWluZXJDbGFzczogRVRfT1ZFUkxBWV9ESUFMT0dfQ0xBU1MsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiAoKSA9PiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpLFxuICAgIH0sXG4gICAgZnVsbFNjcmVlbkRpYWxvZzoge1xuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgbWF4SGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtYXhXaWR0aDogdW5kZWZpbmVkLFxuICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgY29udGFpbmVyQ2xhc3M6IEVUX09WRVJMQVlfRlVMTF9TQ1JFRU5fRElBTE9HX0NMQVNTLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogKCkgPT4gdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmxlZnQoJzAnKS50b3AoJzAnKS5ib3R0b20oJzAnKS5yaWdodCgnMCcpLFxuICAgICAgZG9jdW1lbnRDbGFzczogJ2V0LW92ZXJsYXktLWZ1bGwtc2NyZWVuLWRpYWxvZy1kb2N1bWVudCcsXG4gICAgICBhcHBseVRyYW5zZm9ybU9yaWdpbjogdHJ1ZSxcbiAgICB9LFxuICAgIGJvdHRvbVNoZWV0OiB7XG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgaGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtYXhIZWlnaHQ6ICdjYWxjKDEwMCUgLSA3MnB4KScsXG4gICAgICBtYXhXaWR0aDogJzY0MHB4JyxcbiAgICAgIG1pbkhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgbWluV2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgIGNvbnRhaW5lckNsYXNzOiBFVF9PVkVSTEFZX0JPVFRPTV9TSEVFVF9DTEFTUyxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6ICgpID0+IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5jZW50ZXJIb3Jpem9udGFsbHkoKS5ib3R0b20oJzAnKSxcbiAgICAgIGRyYWdUb0Rpc21pc3M6IHtcbiAgICAgICAgZGlyZWN0aW9uOiAndG8tYm90dG9tJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB0b3BTaGVldDoge1xuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgbWF4SGVpZ2h0OiAnY2FsYygxMDAlIC0gNzJweCknLFxuICAgICAgbWF4V2lkdGg6ICc2NDBweCcsXG4gICAgICBtaW5IZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgIG1pbldpZHRoOiB1bmRlZmluZWQsXG4gICAgICBjb250YWluZXJDbGFzczogRVRfT1ZFUkxBWV9UT1BfU0hFRVRfQ0xBU1MsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiAoKSA9PiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkudG9wKCcwJyksXG4gICAgICBkcmFnVG9EaXNtaXNzOiB7XG4gICAgICAgIGRpcmVjdGlvbjogJ3RvLXRvcCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgbGVmdFNoZWV0OiB7XG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICBtYXhIZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgIG1heFdpZHRoOiAnNjQwcHgnLFxuICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgY29udGFpbmVyQ2xhc3M6IEVUX09WRVJMQVlfTEVGVF9TSEVFVF9DTEFTUyxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6ICgpID0+IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5sZWZ0KCcwJykuY2VudGVyVmVydGljYWxseSgpLFxuICAgICAgZHJhZ1RvRGlzbWlzczoge1xuICAgICAgICBkaXJlY3Rpb246ICd0by1sZWZ0JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByaWdodFNoZWV0OiB7XG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICBtYXhIZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgIG1heFdpZHRoOiAnNjQwcHgnLFxuICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgY29udGFpbmVyQ2xhc3M6IEVUX09WRVJMQVlfUklHSFRfU0hFRVRfQ0xBU1MsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiAoKSA9PiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkucmlnaHQoJzAnKS5jZW50ZXJWZXJ0aWNhbGx5KCksXG4gICAgICBkcmFnVG9EaXNtaXNzOiB7XG4gICAgICAgIGRpcmVjdGlvbjogJ3RvLXJpZ2h0JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgT3ZlcmxheUJyZWFrcG9pbnRDb25maWc+O1xuXG4gIHRyYW5zZm9ybWluZ0JvdHRvbVNoZWV0VG9EaWFsb2coY3VzdG9tQ29uZmlnPzoge1xuICAgIGJvdHRvbVNoZWV0PzogT3ZlcmxheUJyZWFrcG9pbnRDb25maWc7XG4gICAgZGlhbG9nPzogT3ZlcmxheUJyZWFrcG9pbnRDb25maWc7XG4gIH0pIHtcbiAgICBjb25zdCBkYXRhOiBPdmVybGF5QnJlYWtwb2ludENvbmZpZ0VudHJ5W10gPSBbXG4gICAgICB7XG4gICAgICAgIGNvbmZpZzogdGhpcy5tZXJnZUNvbmZpZ3ModGhpcy5ERUZBVUxUUy5ib3R0b21TaGVldCwgY3VzdG9tQ29uZmlnPy5ib3R0b21TaGVldCA/PyB7fSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBicmVha3BvaW50OiAnbWQnLFxuICAgICAgICBjb25maWc6IHRoaXMubWVyZ2VDb25maWdzKHRoaXMuREVGQVVMVFMuZGlhbG9nLCBjdXN0b21Db25maWc/LmRpYWxvZyA/PyB7fSksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHRyYW5zZm9ybWluZ0Z1bGxTY3JlZW5EaWFsb2dUb1JpZ2h0U2hlZXQoY3VzdG9tQ29uZmlnPzoge1xuICAgIGZ1bGxTY3JlZW5EaWFsb2c/OiBPdmVybGF5QnJlYWtwb2ludENvbmZpZztcbiAgICByaWdodFNoZWV0PzogT3ZlcmxheUJyZWFrcG9pbnRDb25maWc7XG4gIH0pIHtcbiAgICBjb25zdCBkYXRhOiBPdmVybGF5QnJlYWtwb2ludENvbmZpZ0VudHJ5W10gPSBbXG4gICAgICB7XG4gICAgICAgIGNvbmZpZzogdGhpcy5tZXJnZUNvbmZpZ3ModGhpcy5ERUZBVUxUUy5mdWxsU2NyZWVuRGlhbG9nLCBjdXN0b21Db25maWc/LmZ1bGxTY3JlZW5EaWFsb2cgPz8ge30pLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYnJlYWtwb2ludDogJ21kJyxcbiAgICAgICAgY29uZmlnOiB0aGlzLm1lcmdlQ29uZmlncyh0aGlzLkRFRkFVTFRTLnJpZ2h0U2hlZXQsIGN1c3RvbUNvbmZpZz8ucmlnaHRTaGVldCA/PyB7fSksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGRpYWxvZyhjdXN0b21Db25maWc/OiBPdmVybGF5QnJlYWtwb2ludENvbmZpZykge1xuICAgIGNvbnN0IGRhdGE6IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29uZmlnOiB0aGlzLm1lcmdlQ29uZmlncyh0aGlzLkRFRkFVTFRTLmRpYWxvZywgY3VzdG9tQ29uZmlnID8/IHt9KSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgZnVsbFNjcmVlbkRpYWxvZyhjdXN0b21Db25maWc/OiBPdmVybGF5QnJlYWtwb2ludENvbmZpZykge1xuICAgIGNvbnN0IGRhdGE6IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29uZmlnOiB0aGlzLm1lcmdlQ29uZmlncyh0aGlzLkRFRkFVTFRTLmZ1bGxTY3JlZW5EaWFsb2csIGN1c3RvbUNvbmZpZyA/PyB7fSksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGJvdHRvbVNoZWV0KGN1c3RvbUNvbmZpZz86IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnKSB7XG4gICAgY29uc3QgZGF0YTogT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeVtdID0gW1xuICAgICAge1xuICAgICAgICBjb25maWc6IHRoaXMubWVyZ2VDb25maWdzKHRoaXMuREVGQVVMVFMuYm90dG9tU2hlZXQsIGN1c3RvbUNvbmZpZyA/PyB7fSksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHRvcFNoZWV0KGN1c3RvbUNvbmZpZz86IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnKSB7XG4gICAgY29uc3QgZGF0YTogT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeVtdID0gW1xuICAgICAge1xuICAgICAgICBjb25maWc6IHRoaXMubWVyZ2VDb25maWdzKHRoaXMuREVGQVVMVFMudG9wU2hlZXQsIGN1c3RvbUNvbmZpZyA/PyB7fSksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGxlZnRTaGVldChjdXN0b21Db25maWc/OiBPdmVybGF5QnJlYWtwb2ludENvbmZpZykge1xuICAgIGNvbnN0IGRhdGE6IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29uZmlnOiB0aGlzLm1lcmdlQ29uZmlncyh0aGlzLkRFRkFVTFRTLmxlZnRTaGVldCwgY3VzdG9tQ29uZmlnID8/IHt9KSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcmlnaHRTaGVldChjdXN0b21Db25maWc/OiBPdmVybGF5QnJlYWtwb2ludENvbmZpZykge1xuICAgIGNvbnN0IGRhdGE6IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29uZmlnOiB0aGlzLm1lcmdlQ29uZmlncyh0aGlzLkRFRkFVTFRTLnJpZ2h0U2hlZXQsIGN1c3RvbUNvbmZpZyA/PyB7fSksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIG1lcmdlQ29uZmlncyguLi5jb25maWdzOiBPdmVybGF5QnJlYWtwb2ludENvbmZpZ1tdKSB7XG4gICAgY29uc3QgY29uZmlnID0gY29uZmlncy5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYWNjLFxuICAgICAgICAuLi5jdXJyLFxuICAgICAgfTtcbiAgICB9LCB7fSBhcyBPdmVybGF5QnJlYWtwb2ludENvbmZpZyk7XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG59XG4iXX0=