@acorex/components 18.16.0-next.5 → 18.16.0-next.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. package/color-palette/lib/color-palette-input.component.d.ts +6 -1
  2. package/color-palette/lib/color-palette-picker.component.d.ts +6 -2
  3. package/data-pager/lib/data-pager.component.d.ts +1 -2
  4. package/esm2022/action-sheet/lib/action-sheet.component.mjs +2 -2
  5. package/esm2022/color-palette/lib/color-palette-input.component.mjs +2 -1
  6. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +66 -40
  7. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +15 -11
  8. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +3 -3
  9. package/esm2022/data-pager/lib/data-pager.component.mjs +6 -7
  10. package/esm2022/data-table/lib/data-table/data-table.component.mjs +1 -1
  11. package/esm2022/image-editor/lib/image-editor-container/image-editor-container.component.mjs +5 -4
  12. package/esm2022/image-editor/lib/image-editor-toolbar/image-editor-toolbar.component.mjs +2 -2
  13. package/esm2022/image-editor/lib/image-editor-tools/image-editor-color-picker/image-editor-color-picker.component.mjs +3 -3
  14. package/esm2022/image-editor/lib/image-editor-view/image-editor-view.component.mjs +59 -16
  15. package/esm2022/image-editor/lib/image-editor.service.mjs +1 -1
  16. package/esm2022/media-viewer/lib/media-viewer-container/media-viewer-container.component.mjs +7 -3
  17. package/esm2022/media-viewer/lib/media-viewer-slider/media-viewer-slider.component.mjs +2 -2
  18. package/esm2022/step-wizard/lib/step-wizard.component.mjs +20 -3
  19. package/esm2022/tabs/lib/tabs.component.mjs +2 -2
  20. package/fesm2022/acorex-components-action-sheet.mjs +2 -2
  21. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  22. package/fesm2022/acorex-components-color-palette.mjs +65 -38
  23. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  24. package/fesm2022/acorex-components-data-pager.mjs +21 -18
  25. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  26. package/fesm2022/acorex-components-data-table.mjs +1 -1
  27. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  28. package/fesm2022/acorex-components-image-editor.mjs +64 -22
  29. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  30. package/fesm2022/acorex-components-media-viewer.mjs +8 -4
  31. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  32. package/fesm2022/acorex-components-step-wizard.mjs +18 -1
  33. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  34. package/fesm2022/acorex-components-tabs.mjs +1 -1
  35. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  36. package/image-editor/lib/image-editor-container/image-editor-container.component.d.ts +2 -0
  37. package/image-editor/lib/image-editor-view/image-editor-view.component.d.ts +16 -3
  38. package/image-editor/lib/image-editor.service.d.ts +2 -2
  39. package/package.json +1 -1
  40. package/step-wizard/lib/step-wizard.component.d.ts +2 -1
@@ -13,7 +13,12 @@ export declare class AXColorPaletteInputComponent extends MXBaseComponent implem
13
13
  _parent: AXColorPaletteParentComponent;
14
14
  private _unsubscriber;
15
15
  isValid: boolean;
16
- _rgba: any;
16
+ _rgba: {
17
+ r: number;
18
+ g: number;
19
+ b: number;
20
+ a: number;
21
+ };
17
22
  _hex: string;
18
23
  /**
19
24
  * @ignore
@@ -16,6 +16,8 @@ export declare class AXColorPalettePickerComponent extends MXBaseComponent {
16
16
  b: number;
17
17
  a: number;
18
18
  };
19
+ private circle;
20
+ private changingColor;
19
21
  /**
20
22
  * @ignore
21
23
  */
@@ -66,11 +68,9 @@ export declare class AXColorPalettePickerComponent extends MXBaseComponent {
66
68
  /**
67
69
  * @ignore
68
70
  */
69
- protected _handleSurfaceClick(e: MouseEvent): void;
70
71
  /**
71
72
  * @ignore
72
73
  */
73
- protected _handleDrag(): void;
74
74
  /**
75
75
  * @ignore
76
76
  */
@@ -86,6 +86,10 @@ export declare class AXColorPalettePickerComponent extends MXBaseComponent {
86
86
  * @ignore
87
87
  */
88
88
  private get __hostClass();
89
+ protected handleMove(event: MouseEvent): void;
90
+ protected handleDown(event: MouseEvent): void;
91
+ protected handleUp(): void;
92
+ private placePointer;
89
93
  static ɵfac: i0.ɵɵFactoryDeclaration<AXColorPalettePickerComponent, never>;
90
94
  static ɵcmp: i0.ɵɵComponentDeclaration<AXColorPalettePickerComponent, "ax-color-palette-picker", never, {}, {}, never, never, false, never>;
91
95
  }
@@ -10,7 +10,6 @@ export type AXDataPagerMode = 'full' | 'compact' | 'custom';
10
10
  */
11
11
  export declare class AXDataPagerComponent extends MXValueComponent<number> {
12
12
  private _parent;
13
- classes: import("@angular/core").InputSignal<string>;
14
13
  /**
15
14
  * @ignore
16
15
  */
@@ -148,5 +147,5 @@ export declare class AXDataPagerComponent extends MXValueComponent<number> {
148
147
  goToPage(page: number): void;
149
148
  get __hostClass(): string;
150
149
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDataPagerComponent, [{ optional: true; }]>;
151
- static ɵcmp: i0.ɵɵComponentDeclaration<AXDataPagerComponent, "ax-data-pager", never, { "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "classes": { "alias": "class"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; }; "size": { "alias": "size"; "required": false; }; "total": { "alias": "total"; "required": false; }; "displayMode": { "alias": "displayMode"; "required": false; }; }, { "valueChange": "valueChange"; "onValueChanged": "onValueChanged"; "disabledChange": "disabledChange"; "readonlyChange": "readonlyChange"; "displayModeChange": "displayModeChange"; "onChanged": "onChanged"; }, never, ["ax-prefix", "ax-suffix"], false, never>;
150
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXDataPagerComponent, "ax-data-pager", never, { "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "size": { "alias": "size"; "required": false; }; "total": { "alias": "total"; "required": false; }; "displayMode": { "alias": "displayMode"; "required": false; }; }, { "valueChange": "valueChange"; "onValueChanged": "onValueChanged"; "disabledChange": "disabledChange"; "readonlyChange": "readonlyChange"; "displayModeChange": "displayModeChange"; "onChanged": "onChanged"; }, never, ["ax-prefix", "ax-suffix"], false, never>;
152
151
  }
@@ -85,7 +85,7 @@ export class AXActionSheetComponent extends MXBaseComponent {
85
85
  provide: AXFocusableComponent,
86
86
  useExisting: AXActionSheetComponent,
87
87
  },
88
- ], usesInheritance: true, ngImport: i0, template: "@if (data.header) {\n <ax-header>\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-sub-title>\n {{ data.subTitle }}\n </ax-sub-title>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-el-interactive ax-el-{{ item.color }}-blank\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet{display:block;width:100vw}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:80vh}ax-action-sheet ax-header{padding:1rem;border-bottom-width:1px;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){ax-action-sheet ax-header{font-size:1.125rem;line-height:1.75rem}}ax-action-sheet ax-header ax-prefix,ax-action-sheet ax-header ax-suffix{display:flex;flex-direction:column;justify-content:flex-start}ax-action-sheet ax-header ax-prefix{align-items:flex-start}ax-action-sheet ax-header ax-prefix ax-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}ax-action-sheet ax-header ax-suffix{align-items:flex-end;max-width:fit-content}ax-action-sheet .ax-action-list{overflow-y:auto;max-height:80vh}ax-action-sheet .ax-action-list ax-title{font-size:.875rem}ax-action-sheet .ax-action-list .ax-action-item{min-height:3.5rem!important;font-size:1rem!important}ax-action-sheet .ax-action-list .ax-action-item .ax-item-icon{margin-inline-end:.75rem!important;font-size:1.5rem!important;line-height:2rem!important}\n"], dependencies: [{ kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
88
+ ], usesInheritance: true, ngImport: i0, template: "@if (data.header) {\n <ax-header>\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-sub-title>\n {{ data.subTitle }}\n </ax-sub-title>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-el-interactive ax-el-{{ item.color }}-blank\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet{display:block;width:100vw}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:100vh}ax-action-sheet ax-header{padding:1rem;border-bottom-width:1px;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){ax-action-sheet ax-header{font-size:1.125rem;line-height:1.75rem}}ax-action-sheet ax-header ax-prefix,ax-action-sheet ax-header ax-suffix{display:flex;flex-direction:column;justify-content:flex-start}ax-action-sheet ax-header ax-prefix{align-items:flex-start}ax-action-sheet ax-header ax-prefix ax-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}ax-action-sheet ax-header ax-suffix{align-items:flex-end;max-width:fit-content}ax-action-sheet .ax-action-list{overflow-y:auto;max-height:100vh}ax-action-sheet .ax-action-list ax-title{font-size:.875rem}ax-action-sheet .ax-action-list .ax-action-item{min-height:3.5rem!important;font-size:1rem!important}ax-action-sheet .ax-action-list .ax-action-item .ax-item-icon{margin-inline-end:.75rem!important;font-size:1.5rem!important;line-height:2rem!important}\n"], dependencies: [{ kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
89
89
  }
90
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXActionSheetComponent, decorators: [{
91
91
  type: Component,
@@ -98,7 +98,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
98
98
  provide: AXFocusableComponent,
99
99
  useExisting: AXActionSheetComponent,
100
100
  },
101
- ], template: "@if (data.header) {\n <ax-header>\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-sub-title>\n {{ data.subTitle }}\n </ax-sub-title>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-el-interactive ax-el-{{ item.color }}-blank\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet{display:block;width:100vw}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:80vh}ax-action-sheet ax-header{padding:1rem;border-bottom-width:1px;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){ax-action-sheet ax-header{font-size:1.125rem;line-height:1.75rem}}ax-action-sheet ax-header ax-prefix,ax-action-sheet ax-header ax-suffix{display:flex;flex-direction:column;justify-content:flex-start}ax-action-sheet ax-header ax-prefix{align-items:flex-start}ax-action-sheet ax-header ax-prefix ax-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}ax-action-sheet ax-header ax-suffix{align-items:flex-end;max-width:fit-content}ax-action-sheet .ax-action-list{overflow-y:auto;max-height:80vh}ax-action-sheet .ax-action-list ax-title{font-size:.875rem}ax-action-sheet .ax-action-list .ax-action-item{min-height:3.5rem!important;font-size:1rem!important}ax-action-sheet .ax-action-list .ax-action-item .ax-item-icon{margin-inline-end:.75rem!important;font-size:1.5rem!important;line-height:2rem!important}\n"] }]
101
+ ], template: "@if (data.header) {\n <ax-header>\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-sub-title>\n {{ data.subTitle }}\n </ax-sub-title>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-el-interactive ax-el-{{ item.color }}-blank\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet{display:block;width:100vw}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:100vh}ax-action-sheet ax-header{padding:1rem;border-bottom-width:1px;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){ax-action-sheet ax-header{font-size:1.125rem;line-height:1.75rem}}ax-action-sheet ax-header ax-prefix,ax-action-sheet ax-header ax-suffix{display:flex;flex-direction:column;justify-content:flex-start}ax-action-sheet ax-header ax-prefix{align-items:flex-start}ax-action-sheet ax-header ax-prefix ax-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}ax-action-sheet ax-header ax-suffix{align-items:flex-end;max-width:fit-content}ax-action-sheet .ax-action-list{overflow-y:auto;max-height:100vh}ax-action-sheet .ax-action-list ax-title{font-size:.875rem}ax-action-sheet .ax-action-list .ax-action-item{min-height:3.5rem!important;font-size:1rem!important}ax-action-sheet .ax-action-list .ax-action-item .ax-item-icon{margin-inline-end:.75rem!important;font-size:1.5rem!important;line-height:2rem!important}\n"] }]
102
102
  }], ctorParameters: () => [{ type: undefined, decorators: [{
103
103
  type: Inject,
104
104
  args: [DIALOG_DATA]
@@ -94,6 +94,7 @@ export class AXColorPaletteInputComponent extends MXBaseComponent {
94
94
  break;
95
95
  default:
96
96
  this._colorMode = 'rgba';
97
+ this.applyParent(true);
97
98
  break;
98
99
  }
99
100
  }
@@ -153,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
153
154
  type: HostBinding,
154
155
  args: ['class']
155
156
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGUvc3JjL2xpYi9jb2xvci1wYWxldHRlLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQUVwRzs7OztHQUlHO0FBbUJILE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxlQUFlO0lBMkIvRDs7T0FFRztJQUNILFlBRVMsT0FBc0MsRUFDckMsYUFBNkI7UUFFckMsS0FBSyxFQUFFLENBQUM7UUFIRCxZQUFPLEdBQVAsT0FBTyxDQUErQjtRQUNyQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFoQ3ZDLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFFZixVQUFLLEdBQVE7WUFDWCxDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztTQUNMLENBQUM7UUFFRixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRVY7O1dBRUc7UUFDTyxlQUFVLEdBQW1CLEtBQUssQ0FBQztRQUU3Qzs7V0FFRztRQUNPLG9CQUFlLEdBQWtCO1lBQ3pDLElBQUksRUFBRSxnQ0FBZ0M7WUFDdEMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDckIsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckYsQ0FBQztTQUNGLENBQUM7UUFXQSxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMxRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDM0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVcsQ0FBQyxJQUFhLEtBQUs7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHO2dCQUNYLENBQUMsRUFBRSxJQUFJO2dCQUNQLENBQUMsRUFBRSxJQUFJO2dCQUNQLENBQUMsRUFBRSxJQUFJO2dCQUNQLENBQUMsRUFBRSxJQUFJO2FBQ1IsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUMzRCxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWU7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCO1FBQ3BCLFFBQVEsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkIsTUFBTTtZQUNSO2dCQUNFLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO2dCQUN6QixNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILHVCQUF1QixDQUFDLENBQThCO1FBQ3BELElBQUksQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUM3QixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNsQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDTyx1QkFBdUIsQ0FBQyxDQUE4QjtRQUM5RCxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDWSxXQUFXO1FBQ3JCLE9BQU8sd0JBQXdCLENBQUM7SUFDbEMsQ0FBQzs4R0FoSVUsNEJBQTRCLGtCQStCN0IsNkJBQTZCO2tHQS9CNUIsNEJBQTRCLHdHQVI1QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSw0QkFBNEI7Z0JBQ3JDLFdBQVcsRUFBRSw0QkFBNEI7YUFDMUM7WUFDRCxjQUFjO1NBQ2YsaURDbENILDRqRkEyRkE7OzJGRHZEYSw0QkFBNEI7a0JBbEJ4QyxTQUFTOytCQUNFLHdCQUF3QixpQkFPbkIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsNEJBQTRCOzRCQUNyQyxXQUFXLDhCQUE4Qjt5QkFDMUM7d0JBQ0QsY0FBYztxQkFDZjs7MEJBaUNFLE1BQU07MkJBQUMsNkJBQTZCO3NFQStGM0IsV0FBVztzQkFEdEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhWYWx1ZUNoYW5nZWRFdmVudCwgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWE1hc2tPcHRpb25zIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcbmltcG9ydCB7IEFYQ29sb3JVdGlsLCBBWFVuc3Vic2NyaWJlciB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWENvbG9yUGFsZXR0ZUNoaWxkQ29tcG9uZW50LCBBWENvbG9yUGFsZXR0ZVBhcmVudENvbXBvbmVudCB9IGZyb20gJy4vY29sb3ItcGFsZXR0ZS5jbGFzcyc7XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBzZWxlY3RpbmcgY29sb3JzIGZyb20gYSBwYWxldHRlLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbG9yLXBhbGV0dGUtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGFsZXR0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogYFxuICAgIC5heC1ib2xkIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYQ29sb3JQYWxldHRlQ2hpbGRDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQVhDb2xvclBhbGV0dGVJbnB1dENvbXBvbmVudCxcbiAgICB9LFxuICAgIEFYVW5zdWJzY3JpYmVyLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbG9yUGFsZXR0ZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIGlzVmFsaWQgPSB0cnVlO1xuXG4gIF9yZ2JhOiBhbnkgPSB7XG4gICAgcjogMCxcbiAgICBnOiAwLFxuICAgIGI6IDAsXG4gICAgYTogMCxcbiAgfTtcblxuICBfaGV4ID0gJyc7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2NvbG9yTW9kZTogJ2hleCcgfCAncmdiYScgPSAnaGV4JztcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGV4TWFza09wdGlvbnM6IEFYTWFza09wdGlvbnMgPSB7XG4gICAgbWFzazogL14jWzAtOWEtZl17MCw2fVswLTlhLWZdezAsMn0kL2ksXG4gICAgcHJlcGFyZTogKHN0ciwgbSwgYSkgPT4ge1xuICAgICAgcmV0dXJuIG0udHlwZWRWYWx1ZT8uc3RhcnRzV2l0aCgnIycpIHx8IHN0ciA9PSAnIycgPyBzdHIudHJpbSgpIDogJyMnICsgc3RyLnRyaW0oKTtcbiAgICB9LFxuICB9O1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChBWENvbG9yUGFsZXR0ZVBhcmVudENvbXBvbmVudClcbiAgICBwdWJsaWMgX3BhcmVudDogQVhDb2xvclBhbGV0dGVQYXJlbnRDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVyOiBBWFVuc3Vic2NyaWJlcixcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICBfcGFyZW50Lm9uVmFsdWVDaGFuZ2VkLnBpcGUoX3Vuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgIHRoaXMuYXBwbHlQYXJlbnQoZS5pc1VzZXJJbnRlcmFjdGlvbik7XG4gICAgfSk7XG4gICAgX3BhcmVudC5vbk9wdGlvbkNoYW5nZWQucGlwZShfdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgYXBwbHlQYXJlbnQodTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9wYXJlbnQudmFsdWU7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5faGV4ID0gJyc7XG4gICAgICB0aGlzLl9yZ2JhID0ge1xuICAgICAgICByOiBudWxsLFxuICAgICAgICBnOiBudWxsLFxuICAgICAgICBiOiBudWxsLFxuICAgICAgICBhOiBudWxsLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX2NvbG9yTW9kZSA9PSAncmdiYScpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9yZ2JhLCBBWENvbG9yVXRpbC50byh2YWx1ZSwgJ3JnYmEnKSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fY29sb3JNb2RlID09ICdoZXgnKSB7XG4gICAgICAgIHRoaXMuX2hleCA9IEFYQ29sb3JVdGlsLnRvU3RyaW5nKHZhbHVlLCAnaGV4Jyk7XG4gICAgICB9XG4gICAgICBpZiAoIXUgJiYgdGhpcy5fcmdiYS5hICE9IDEpIHtcbiAgICAgICAgdGhpcy5fY29sb3JNb2RlID0gJ3JnYmEnO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNoZWNrVmFsaWQoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmFwcGx5UGFyZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIF9oYW5kbGVDaGFuZ2VJbnB1dE1vZGUoKSB7XG4gICAgc3dpdGNoICh0aGlzLl9jb2xvck1vZGUpIHtcbiAgICAgIGNhc2UgJ3JnYmEnOlxuICAgICAgICB0aGlzLl9jb2xvck1vZGUgPSAnaGV4JztcbiAgICAgICAgdGhpcy5hcHBseVBhcmVudCh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLl9jb2xvck1vZGUgPSAncmdiYSc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgX2hhbmRsZVJHQkFWYWx1ZUNoYW5nZWQoZTogQVhWYWx1ZUNoYW5nZWRFdmVudDxudW1iZXI+KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIHRoaXMuX3JnYmFbZS5uYW1lXSA9IGUudmFsdWU7XG4gICAgICBjb25zdCB7IHIsIGcsIGIsIGEgfSA9IHRoaXMuX3JnYmE7XG4gICAgICBjb25zdCBfY29sb3IgPSBgcmdiYSgke3J9LCR7Z30sJHtifSwke2F9KWA7XG4gICAgICB0aGlzLl9wYXJlbnQuY29tbWl0VmFsdWUoQVhDb2xvclV0aWwudG9TdHJpbmcoX2NvbG9yLCAncmdiYScpLCBlLmlzVXNlckludGVyYWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlSEVYQVZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PHN0cmluZz4pIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbiAmJiBlLnZhbHVlPy50cmltKCkgIT0gdGhpcy5faGV4Py50cmltKCkpIHtcbiAgICAgIHRoaXMuX3BhcmVudC5jb21taXRWYWx1ZShlLnZhbHVlLCBlLmlzVXNlckludGVyYWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgY2hlY2tWYWxpZCgpIHtcbiAgICB0aGlzLmlzVmFsaWQgPSBBWENvbG9yVXRpbC5pc1ZhbGlkKHRoaXMuX2hleCk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgYXgtY29sb3ItcGFsZXR0ZS1pbnB1dGA7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYWxldHRlLWlucHV0c1wiPlxuICBAc3dpdGNoIChfY29sb3JNb2RlKSB7XG4gICAgQGNhc2UgKCdoZXgnKSB7XG4gICAgICA8ZGl2PlxuICAgICAgICA8YXgtdGV4dC1ib3hcbiAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJfaGV4XCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX3BhcmVudC5kaXNhYmxlZFwiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cIl9wYXJlbnQucmVhZG9ubHlcIlxuICAgICAgICAgIFtzdGF0ZV09XCJpc1ZhbGlkID8gJ2NsZWFyJyA6ICdlcnJvcidcIlxuICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlSEVYQVZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICBbbWFzay1vcHRpb25zXT1cIl9oZXhNYXNrT3B0aW9uc1wiXG4gICAgICAgID5cbiAgICAgICAgPC9heC10ZXh0LWJveD5cbiAgICAgICAgPGxhYmVsPkhFWDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGNhc2UgKCdyZ2JhJykge1xuICAgICAgPGRpdj5cbiAgICAgICAgPGF4LW51bWJlci1ib3hcbiAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICBuYW1lPVwiclwiXG4gICAgICAgICAgW21pblZhbHVlXT1cIjBcIlxuICAgICAgICAgIFttYXhWYWx1ZV09XCIyNTVcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cIl9yZ2JhLnJcIlxuICAgICAgICAgIFtzaG93U3BpbkJ1dHRvbnNdPVwiZmFsc2VcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkXCJcbiAgICAgICAgICBbcmVhZG9ubHldPVwiX3BhcmVudC5yZWFkb25seVwiXG4gICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVSR0JBVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXgtbnVtYmVyLWJveD5cbiAgICAgICAgPGxhYmVsPlI8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YXgtbnVtYmVyLWJveFxuICAgICAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgICAgIG5hbWU9XCJnXCJcbiAgICAgICAgICBbbWluVmFsdWVdPVwiMFwiXG4gICAgICAgICAgW21heFZhbHVlXT1cIjI1NVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwiX3JnYmEuZ1wiXG4gICAgICAgICAgW3Nob3dTcGluQnV0dG9uc109XCJmYWxzZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJfcGFyZW50LnJlYWRvbmx5XCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVJHQkFWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC9heC1udW1iZXItYm94PlxuICAgICAgICA8bGFiZWw+RzwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxheC1udW1iZXItYm94XG4gICAgICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAgICAgbmFtZT1cImJcIlxuICAgICAgICAgIFttaW5WYWx1ZV09XCIwXCJcbiAgICAgICAgICBbbWF4VmFsdWVdPVwiMjU1XCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJfcmdiYS5iXCJcbiAgICAgICAgICBbc2hvd1NwaW5CdXR0b25zXT1cImZhbHNlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX3BhcmVudC5kaXNhYmxlZFwiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cIl9wYXJlbnQucmVhZG9ubHlcIlxuICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUkdCQVZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2F4LW51bWJlci1ib3g+XG4gICAgICAgIDxsYWJlbD5CPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGF4LW51bWJlci1ib3hcbiAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICBuYW1lPVwiYVwiXG4gICAgICAgICAgW21pblZhbHVlXT1cIjBcIlxuICAgICAgICAgIFttYXhWYWx1ZV09XCIxXCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJfcmdiYS5hXCJcbiAgICAgICAgICBbZGVjaW1hbHNdPVwiMlwiXG4gICAgICAgICAgW3N0ZXBdPVwiMC4xXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX3BhcmVudC5kaXNhYmxlZFwiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cIl9wYXJlbnQucmVhZG9ubHlcIlxuICAgICAgICAgIFtzaG93U3BpbkJ1dHRvbnNdPVwiZmFsc2VcIlxuICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUkdCQVZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2F4LW51bWJlci1ib3g+XG4gICAgICAgIDxsYWJlbD5BPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgfVxuPC9kaXY+XG48YnV0dG9uXG4gIHR5cGU9XCJidXR0b25cIlxuICBjbGFzcz1cImF4LWdlbmVyYWwtYnV0dG9uIGF4LWJ1dHRvbi1yb3VuZGVkIGF4LWJ1dHRvbi1pY29uIGF4LXNtXCJcbiAgKGNsaWNrKT1cIl9oYW5kbGVDaGFuZ2VJbnB1dE1vZGUoKVwiXG4gIFtkaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkXCJcbj5cbiAgPHNwYW4gY2xhc3M9XCJheC1pY29uIGF4LWljb24tdW5mb2xkLW1vcmUgYXgtYm9sZFwiPjwvc3Bhbj5cbjwvYnV0dG9uPlxuIl19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGUvc3JjL2xpYi9jb2xvci1wYWxldHRlLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQUVwRzs7OztHQUlHO0FBbUJILE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxlQUFlO0lBMkIvRDs7T0FFRztJQUNILFlBRVMsT0FBc0MsRUFDckMsYUFBNkI7UUFFckMsS0FBSyxFQUFFLENBQUM7UUFIRCxZQUFPLEdBQVAsT0FBTyxDQUErQjtRQUNyQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFoQ3ZDLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFFZixVQUFLLEdBQW1EO1lBQ3RELENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1NBQ0wsQ0FBQztRQUVGLFNBQUksR0FBRyxFQUFFLENBQUM7UUFFVjs7V0FFRztRQUNPLGVBQVUsR0FBbUIsS0FBSyxDQUFDO1FBRTdDOztXQUVHO1FBQ08sb0JBQWUsR0FBa0I7WUFDekMsSUFBSSxFQUFFLGdDQUFnQztZQUN0QyxPQUFPLEVBQUUsQ0FBQyxHQUFRLEVBQUUsQ0FBTSxFQUFFLENBQU0sRUFBRSxFQUFFO2dCQUNwQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyRixDQUFDO1NBQ0YsQ0FBQztRQVdBLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMzRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssV0FBVyxDQUFDLENBQUMsR0FBRyxLQUFLO1FBQzNCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRztnQkFDWCxDQUFDLEVBQUUsSUFBSTtnQkFDUCxDQUFDLEVBQUUsSUFBSTtnQkFDUCxDQUFDLEVBQUUsSUFBSTtnQkFDUCxDQUFDLEVBQUUsSUFBSTthQUNSLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDM0QsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNqRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILHNCQUFzQjtRQUNwQixRQUFRLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU07WUFDUjtnQkFDRSxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztnQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkIsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCx1QkFBdUIsQ0FBQyxDQUE4QjtRQUNwRCxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDN0IsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDbEMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ08sdUJBQXVCLENBQUMsQ0FBOEI7UUFDOUQsSUFBSSxDQUFDLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDaEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVTtRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNILElBQ1ksV0FBVztRQUNyQixPQUFPLHdCQUF3QixDQUFDO0lBQ2xDLENBQUM7OEdBaklVLDRCQUE0QixrQkErQjdCLDZCQUE2QjtrR0EvQjVCLDRCQUE0Qix3R0FSNUI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsNEJBQTRCO2dCQUNyQyxXQUFXLEVBQUUsNEJBQTRCO2FBQzFDO1lBQ0QsY0FBYztTQUNmLGlEQ2xDSCw0akZBMkZBOzsyRkR2RGEsNEJBQTRCO2tCQWxCeEMsU0FBUzsrQkFDRSx3QkFBd0IsaUJBT25CLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDRCQUE0Qjs0QkFDckMsV0FBVyw4QkFBOEI7eUJBQzFDO3dCQUNELGNBQWM7cUJBQ2Y7OzBCQWlDRSxNQUFNOzJCQUFDLDZCQUE2QjtzRUFnRzNCLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVmFsdWVDaGFuZ2VkRXZlbnQsIE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhNYXNrT3B0aW9ucyB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBBWENvbG9yVXRpbCwgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDb2xvclBhbGV0dGVDaGlsZENvbXBvbmVudCwgQVhDb2xvclBhbGV0dGVQYXJlbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbG9yLXBhbGV0dGUuY2xhc3MnO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3Igc2VsZWN0aW5nIGNvbG9ycyBmcm9tIGEgcGFsZXR0ZS5cbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb2xvci1wYWxldHRlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBhbGV0dGUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IGBcbiAgICAuYXgtYm9sZCB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWENvbG9yUGFsZXR0ZUNoaWxkQ29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYQ29sb3JQYWxldHRlSW5wdXRDb21wb25lbnQsXG4gICAgfSxcbiAgICBBWFVuc3Vic2NyaWJlcixcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb2xvclBhbGV0dGVJbnB1dENvbXBvbmVudCBleHRlbmRzIE1YQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBpc1ZhbGlkID0gdHJ1ZTtcblxuICBfcmdiYTogeyByOiBudW1iZXI7IGc6IG51bWJlcjsgYjogbnVtYmVyOyBhOiBudW1iZXIgfSA9IHtcbiAgICByOiAwLFxuICAgIGc6IDAsXG4gICAgYjogMCxcbiAgICBhOiAwLFxuICB9O1xuXG4gIF9oZXggPSAnJztcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfY29sb3JNb2RlOiAnaGV4JyB8ICdyZ2JhJyA9ICdoZXgnO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oZXhNYXNrT3B0aW9uczogQVhNYXNrT3B0aW9ucyA9IHtcbiAgICBtYXNrOiAvXiNbMC05YS1mXXswLDZ9WzAtOWEtZl17MCwyfSQvaSxcbiAgICBwcmVwYXJlOiAoc3RyOiBhbnksIG06IGFueSwgYTogYW55KSA9PiB7XG4gICAgICByZXR1cm4gbS50eXBlZFZhbHVlPy5zdGFydHNXaXRoKCcjJykgfHwgc3RyID09ICcjJyA/IHN0ci50cmltKCkgOiAnIycgKyBzdHIudHJpbSgpO1xuICAgIH0sXG4gIH07XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEFYQ29sb3JQYWxldHRlUGFyZW50Q29tcG9uZW50KVxuICAgIHB1YmxpYyBfcGFyZW50OiBBWENvbG9yUGFsZXR0ZVBhcmVudENvbXBvbmVudCxcbiAgICBwcml2YXRlIF91bnN1YnNjcmliZXI6IEFYVW5zdWJzY3JpYmVyLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIF9wYXJlbnQub25WYWx1ZUNoYW5nZWQucGlwZShfdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgdGhpcy5hcHBseVBhcmVudChlLmlzVXNlckludGVyYWN0aW9uKTtcbiAgICB9KTtcbiAgICBfcGFyZW50Lm9uT3B0aW9uQ2hhbmdlZC5waXBlKF91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBhcHBseVBhcmVudCh1ID0gZmFsc2UpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX3BhcmVudC52YWx1ZTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLl9oZXggPSAnJztcbiAgICAgIHRoaXMuX3JnYmEgPSB7XG4gICAgICAgIHI6IG51bGwsXG4gICAgICAgIGc6IG51bGwsXG4gICAgICAgIGI6IG51bGwsXG4gICAgICAgIGE6IG51bGwsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5fY29sb3JNb2RlID09ICdyZ2JhJykge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX3JnYmEsIEFYQ29sb3JVdGlsLnRvKHZhbHVlLCAncmdiYScpKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9jb2xvck1vZGUgPT0gJ2hleCcpIHtcbiAgICAgICAgdGhpcy5faGV4ID0gQVhDb2xvclV0aWwudG9TdHJpbmcodmFsdWUsICdoZXgnKTtcbiAgICAgIH1cbiAgICAgIGlmICghdSAmJiB0aGlzLl9yZ2JhLmEgIT0gMSkge1xuICAgICAgICB0aGlzLl9jb2xvck1vZGUgPSAncmdiYSc7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2hlY2tWYWxpZCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuYXBwbHlQYXJlbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgX2hhbmRsZUNoYW5nZUlucHV0TW9kZSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMuX2NvbG9yTW9kZSkge1xuICAgICAgY2FzZSAncmdiYSc6XG4gICAgICAgIHRoaXMuX2NvbG9yTW9kZSA9ICdoZXgnO1xuICAgICAgICB0aGlzLmFwcGx5UGFyZW50KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuX2NvbG9yTW9kZSA9ICdyZ2JhJztcbiAgICAgICAgdGhpcy5hcHBseVBhcmVudCh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBfaGFuZGxlUkdCQVZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PG51bWJlcj4pIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5fcmdiYVtlLm5hbWVdID0gZS52YWx1ZTtcbiAgICAgIGNvbnN0IHsgciwgZywgYiwgYSB9ID0gdGhpcy5fcmdiYTtcbiAgICAgIGNvbnN0IF9jb2xvciA9IGByZ2JhKCR7cn0sJHtnfSwke2J9LCR7YX0pYDtcbiAgICAgIHRoaXMuX3BhcmVudC5jb21taXRWYWx1ZShBWENvbG9yVXRpbC50b1N0cmluZyhfY29sb3IsICdyZ2JhJyksIGUuaXNVc2VySW50ZXJhY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVIRVhBVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8c3RyaW5nPikge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uICYmIGUudmFsdWU/LnRyaW0oKSAhPSB0aGlzLl9oZXg/LnRyaW0oKSkge1xuICAgICAgdGhpcy5fcGFyZW50LmNvbW1pdFZhbHVlKGUudmFsdWUsIGUuaXNVc2VySW50ZXJhY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja1ZhbGlkKCkge1xuICAgIHRoaXMuaXNWYWxpZCA9IEFYQ29sb3JVdGlsLmlzVmFsaWQodGhpcy5faGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBheC1jb2xvci1wYWxldHRlLWlucHV0YDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBhbGV0dGUtaW5wdXRzXCI+XG4gIEBzd2l0Y2ggKF9jb2xvck1vZGUpIHtcbiAgICBAY2FzZSAoJ2hleCcpIHtcbiAgICAgIDxkaXY+XG4gICAgICAgIDxheC10ZXh0LWJveFxuICAgICAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgICAgIFtuZ01vZGVsXT1cIl9oZXhcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkXCJcbiAgICAgICAgICBbcmVhZG9ubHldPVwiX3BhcmVudC5yZWFkb25seVwiXG4gICAgICAgICAgW3N0YXRlXT1cImlzVmFsaWQgPyAnY2xlYXInIDogJ2Vycm9yJ1wiXG4gICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVIRVhBVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIFttYXNrLW9wdGlvbnNdPVwiX2hleE1hc2tPcHRpb25zXCJcbiAgICAgICAgPlxuICAgICAgICA8L2F4LXRleHQtYm94PlxuICAgICAgICA8bGFiZWw+SEVYPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAY2FzZSAoJ3JnYmEnKSB7XG4gICAgICA8ZGl2PlxuICAgICAgICA8YXgtbnVtYmVyLWJveFxuICAgICAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgICAgIG5hbWU9XCJyXCJcbiAgICAgICAgICBbbWluVmFsdWVdPVwiMFwiXG4gICAgICAgICAgW21heFZhbHVlXT1cIjI1NVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwiX3JnYmEuclwiXG4gICAgICAgICAgW3Nob3dTcGluQnV0dG9uc109XCJmYWxzZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJfcGFyZW50LnJlYWRvbmx5XCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVJHQkFWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC9heC1udW1iZXItYm94PlxuICAgICAgICA8bGFiZWw+UjwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxheC1udW1iZXItYm94XG4gICAgICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAgICAgbmFtZT1cImdcIlxuICAgICAgICAgIFttaW5WYWx1ZV09XCIwXCJcbiAgICAgICAgICBbbWF4VmFsdWVdPVwiMjU1XCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJfcmdiYS5nXCJcbiAgICAgICAgICBbc2hvd1NwaW5CdXR0b25zXT1cImZhbHNlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX3BhcmVudC5kaXNhYmxlZFwiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cIl9wYXJlbnQucmVhZG9ubHlcIlxuICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUkdCQVZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2F4LW51bWJlci1ib3g+XG4gICAgICAgIDxsYWJlbD5HPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGF4LW51bWJlci1ib3hcbiAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICBuYW1lPVwiYlwiXG4gICAgICAgICAgW21pblZhbHVlXT1cIjBcIlxuICAgICAgICAgIFttYXhWYWx1ZV09XCIyNTVcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cIl9yZ2JhLmJcIlxuICAgICAgICAgIFtzaG93U3BpbkJ1dHRvbnNdPVwiZmFsc2VcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkXCJcbiAgICAgICAgICBbcmVhZG9ubHldPVwiX3BhcmVudC5yZWFkb25seVwiXG4gICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVSR0JBVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXgtbnVtYmVyLWJveD5cbiAgICAgICAgPGxhYmVsPkI8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YXgtbnVtYmVyLWJveFxuICAgICAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgICAgIG5hbWU9XCJhXCJcbiAgICAgICAgICBbbWluVmFsdWVdPVwiMFwiXG4gICAgICAgICAgW21heFZhbHVlXT1cIjFcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cIl9yZ2JhLmFcIlxuICAgICAgICAgIFtkZWNpbWFsc109XCIyXCJcbiAgICAgICAgICBbc3RlcF09XCIwLjFcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkXCJcbiAgICAgICAgICBbcmVhZG9ubHldPVwiX3BhcmVudC5yZWFkb25seVwiXG4gICAgICAgICAgW3Nob3dTcGluQnV0dG9uc109XCJmYWxzZVwiXG4gICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVSR0JBVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXgtbnVtYmVyLWJveD5cbiAgICAgICAgPGxhYmVsPkE8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICB9XG48L2Rpdj5cbjxidXR0b25cbiAgdHlwZT1cImJ1dHRvblwiXG4gIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLXJvdW5kZWQgYXgtYnV0dG9uLWljb24gYXgtc21cIlxuICAoY2xpY2spPVwiX2hhbmRsZUNoYW5nZUlucHV0TW9kZSgpXCJcbiAgW2Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIlxuPlxuICA8c3BhbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi11bmZvbGQtbW9yZSBheC1ib2xkXCI+PC9zcGFuPlxuPC9idXR0b24+XG4iXX0=
@@ -1,14 +1,13 @@
1
1
  import { MXBaseComponent } from '@acorex/components/common';
2
2
  import { isBrowser } from '@acorex/core/platform';
3
3
  import { AXColorUtil, AXUnsubscriber } from '@acorex/core/utils';
4
- import { ChangeDetectionStrategy, Component, HostBinding, Inject, ViewEncapsulation } from '@angular/core';
4
+ import { ChangeDetectionStrategy, Component, HostBinding, Inject, signal, viewChild, ViewEncapsulation, } from '@angular/core';
5
5
  import { AXColorPaletteChildComponent, AXColorPaletteParentComponent } from './color-palette.class';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@acorex/core/utils";
8
8
  import * as i2 from "@angular/forms";
9
9
  import * as i3 from "@acorex/components/range-slider";
10
- import * as i4 from "@angular/cdk/drag-drop";
11
- import * as i5 from "./color-palette.class";
10
+ import * as i4 from "./color-palette.class";
12
11
  /**
13
12
  * Component for picking colors from a color palette.
14
13
  *
@@ -28,6 +27,8 @@ export class AXColorPalettePickerComponent extends MXBaseComponent {
28
27
  b: 0,
29
28
  a: 0,
30
29
  };
30
+ this.circle = viewChild('circle');
31
+ this.changingColor = signal(false);
31
32
  /**
32
33
  * @ignore
33
34
  */
@@ -123,41 +124,41 @@ export class AXColorPalettePickerComponent extends MXBaseComponent {
123
124
  /**
124
125
  * @ignore
125
126
  */
126
- _handleSurfaceClick(e) {
127
- if (this._parent.disabled || this._parent.readonly) {
128
- e.preventDefault();
129
- e.stopPropagation();
130
- return;
131
- }
132
- const surface = this.getHostElement().querySelector('.ax-color-box-overlay');
133
- const pointer = this.getHostElement().querySelector('.ax-color-box-pointer');
134
- let x = e.offsetX;
135
- let y = e.offsetY;
136
- this.setColorByXY(x, y);
137
- }
127
+ // protected _handleSurfaceClick(e: MouseEvent) {
128
+ // if (this._parent.disabled || this._parent.readonly) {
129
+ // e.preventDefault();
130
+ // e.stopPropagation();
131
+ // return;
132
+ // }
133
+ // const surface = this.getHostElement().querySelector<HTMLDivElement>('.ax-color-box-overlay');
134
+ // const pointer = this.getHostElement().querySelector<HTMLDivElement>('.ax-color-box-pointer');
135
+ // const x = e.offsetX;
136
+ // const y = e.offsetY;
137
+ // this.setColorByXY(x, y);
138
+ // }
138
139
  /**
139
140
  * @ignore
140
141
  */
141
- _handleDrag() {
142
- if (this._parent.disabled || this._parent.readonly) {
143
- return;
144
- }
145
- const surface = this.getHostElement().querySelector('.ax-color-box-overlay');
146
- const sb = surface.getBoundingClientRect();
147
- const pointer = this.getHostElement().querySelector('.ax-color-box-pointer');
148
- const pb = pointer.getBoundingClientRect();
149
- const w = pb.width / 2;
150
- let x = pb.left - sb.left + w;
151
- let y = pb.top - sb.top + w;
152
- //
153
- x = x < 0 ? 0 : x;
154
- x = x > sb.width ? sb.width : x;
155
- //
156
- y = y < 0 ? 0 : y;
157
- y = y > sb.height ? sb.height : y;
158
- //
159
- this.setColorByXY(x, y);
160
- }
142
+ // protected _handleDrag() {
143
+ // if (this._parent.disabled || this._parent.readonly) {
144
+ // return;
145
+ // }
146
+ // const surface = this.getHostElement().querySelector<HTMLDivElement>('.ax-color-box-overlay');
147
+ // const sb = surface.getBoundingClientRect();
148
+ // const pointer = this.getHostElement().querySelector<HTMLDivElement>('.ax-color-box-pointer');
149
+ // const pb = pointer.getBoundingClientRect();
150
+ // const w = pb.width / 2;
151
+ // let x = pb.left - sb.left + w;
152
+ // let y = pb.top - sb.top + w;
153
+ // //
154
+ // x = x < 0 ? 0 : x;
155
+ // x = x > sb.width ? sb.width : x;
156
+ // //
157
+ // y = y < 0 ? 0 : y;
158
+ // y = y > sb.height ? sb.height : y;
159
+ // //
160
+ // this.setColorByXY(x, y);
161
+ // }
161
162
  /**
162
163
  * @ignore
163
164
  */
@@ -223,14 +224,39 @@ export class AXColorPalettePickerComponent extends MXBaseComponent {
223
224
  get __hostClass() {
224
225
  return `ax-color-palette-picker`;
225
226
  }
227
+ handleMove(event) {
228
+ if (!this.changingColor())
229
+ return;
230
+ this.placePointer(event);
231
+ }
232
+ handleDown(event) {
233
+ if (this._parent.disabled || this._parent.readonly)
234
+ return;
235
+ this.placePointer(event);
236
+ this.changingColor.set(true);
237
+ }
238
+ handleUp() {
239
+ this.changingColor.set(false);
240
+ }
241
+ placePointer(event) {
242
+ const circleElement = this.circle().nativeElement;
243
+ const parentStats = circleElement.parentElement.getBoundingClientRect();
244
+ const circleHeight = circleElement.offsetHeight / 2;
245
+ const circleWidth = circleElement.offsetWidth / 2;
246
+ const top = event.clientY - parentStats.top - circleHeight;
247
+ const left = event.clientX - parentStats.left - circleWidth;
248
+ circleElement.style.top = `${Math.max(0 - circleHeight, Math.min(top, parentStats.height - circleHeight))}px`;
249
+ circleElement.style.left = `${Math.max(0 - circleWidth, Math.min(left, parentStats.width - circleWidth))}px`;
250
+ this.setColorByXY(event.clientX - parentStats.left, event.clientY - parentStats.top);
251
+ }
226
252
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXColorPalettePickerComponent, deps: [{ token: AXColorPaletteParentComponent }, { token: i1.AXUnsubscriber }], target: i0.ɵɵFactoryTarget.Component }); }
227
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXColorPalettePickerComponent, selector: "ax-color-palette-picker", host: { properties: { "class": "this.__hostClass" } }, providers: [
253
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: AXColorPalettePickerComponent, selector: "ax-color-palette-picker", host: { properties: { "class": "this.__hostClass" } }, providers: [
228
254
  {
229
255
  provide: AXColorPaletteChildComponent,
230
256
  useExisting: AXColorPalettePickerComponent,
231
257
  },
232
258
  AXUnsubscriber,
233
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-color-box-overlay-trans\">\n <div class=\"ax-color-box-overlay\" [style.background-color]=\"_bgColor\">\n <div class=\"ax-color-box-overlay-g1\"></div>\n <div class=\"ax-color-box-overlay-g2\" (click)=\"_handleSurfaceClick($event)\"></div>\n <div\n class=\"ax-color-box-pointer\"\n cdkDrag\n cdkDragBoundary=\".ax-color-box-overlay\"\n [cdkDragFreeDragPosition]=\"dragPosition\"\n (cdkDragEnded)=\"_handleDrag()\"\n [cdkDragDisabled]=\"_parent.disabled || _parent.readonly\"\n ></div>\n </div>\n</div>\n\n<ax-range-slider\n class=\"ax-color-box-gradient\"\n [min]=\"0\"\n [max]=\"100\"\n [mode]=\"'single'\"\n [ngModel]=\"_gradient\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (ngModelChange)=\"_handleGradientChanged($event)\"\n>\n</ax-range-slider>\n<ax-range-slider\n class=\"ax-color-box-transparent\"\n [min]=\"0\"\n [max]=\"1\"\n [hasStep]=\"false\"\n [ngModel]=\"_rgba.a\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (ngModelChange)=\"_handleAlphaChanged($event)\"\n>\n</ax-range-slider>\n", dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
259
+ ], viewQueries: [{ propertyName: "circle", first: true, predicate: ["circle"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-color-box-overlay-trans\">\n <div\n class=\"ax-color-box-overlay\"\n [style.background-color]=\"_bgColor\"\n (mousemove)=\"handleMove($event)\"\n (mousedown)=\"handleDown($event)\"\n (mouseup)=\"handleUp()\"\n (mouseleave)=\"handleUp()\"\n >\n <div class=\"ax-color-box-overlay-g1\"></div>\n <div class=\"ax-color-box-overlay-g2\"></div>\n <div #circle class=\"ax-color-box-pointer\"></div>\n </div>\n</div>\n\n<ax-range-slider\n class=\"ax-color-box-gradient\"\n [min]=\"0\"\n [max]=\"100\"\n [mode]=\"'single'\"\n [ngModel]=\"_gradient\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (ngModelChange)=\"_handleGradientChanged($event)\"\n>\n</ax-range-slider>\n<ax-range-slider\n class=\"ax-color-box-transparent\"\n [min]=\"0\"\n [max]=\"1\"\n [hasStep]=\"false\"\n [ngModel]=\"_rgba.a\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (ngModelChange)=\"_handleAlphaChanged($event)\"\n>\n</ax-range-slider>\n", dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
234
260
  }
235
261
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXColorPalettePickerComponent, decorators: [{
236
262
  type: Component,
@@ -240,12 +266,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
240
266
  useExisting: AXColorPalettePickerComponent,
241
267
  },
242
268
  AXUnsubscriber,
243
- ], template: "<div class=\"ax-color-box-overlay-trans\">\n <div class=\"ax-color-box-overlay\" [style.background-color]=\"_bgColor\">\n <div class=\"ax-color-box-overlay-g1\"></div>\n <div class=\"ax-color-box-overlay-g2\" (click)=\"_handleSurfaceClick($event)\"></div>\n <div\n class=\"ax-color-box-pointer\"\n cdkDrag\n cdkDragBoundary=\".ax-color-box-overlay\"\n [cdkDragFreeDragPosition]=\"dragPosition\"\n (cdkDragEnded)=\"_handleDrag()\"\n [cdkDragDisabled]=\"_parent.disabled || _parent.readonly\"\n ></div>\n </div>\n</div>\n\n<ax-range-slider\n class=\"ax-color-box-gradient\"\n [min]=\"0\"\n [max]=\"100\"\n [mode]=\"'single'\"\n [ngModel]=\"_gradient\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (ngModelChange)=\"_handleGradientChanged($event)\"\n>\n</ax-range-slider>\n<ax-range-slider\n class=\"ax-color-box-transparent\"\n [min]=\"0\"\n [max]=\"1\"\n [hasStep]=\"false\"\n [ngModel]=\"_rgba.a\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (ngModelChange)=\"_handleAlphaChanged($event)\"\n>\n</ax-range-slider>\n" }]
244
- }], ctorParameters: () => [{ type: i5.AXColorPaletteParentComponent, decorators: [{
269
+ ], template: "<div class=\"ax-color-box-overlay-trans\">\n <div\n class=\"ax-color-box-overlay\"\n [style.background-color]=\"_bgColor\"\n (mousemove)=\"handleMove($event)\"\n (mousedown)=\"handleDown($event)\"\n (mouseup)=\"handleUp()\"\n (mouseleave)=\"handleUp()\"\n >\n <div class=\"ax-color-box-overlay-g1\"></div>\n <div class=\"ax-color-box-overlay-g2\"></div>\n <div #circle class=\"ax-color-box-pointer\"></div>\n </div>\n</div>\n\n<ax-range-slider\n class=\"ax-color-box-gradient\"\n [min]=\"0\"\n [max]=\"100\"\n [mode]=\"'single'\"\n [ngModel]=\"_gradient\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (ngModelChange)=\"_handleGradientChanged($event)\"\n>\n</ax-range-slider>\n<ax-range-slider\n class=\"ax-color-box-transparent\"\n [min]=\"0\"\n [max]=\"1\"\n [hasStep]=\"false\"\n [ngModel]=\"_rgba.a\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (ngModelChange)=\"_handleAlphaChanged($event)\"\n>\n</ax-range-slider>\n" }]
270
+ }], ctorParameters: () => [{ type: i4.AXColorPaletteParentComponent, decorators: [{
245
271
  type: Inject,
246
272
  args: [AXColorPaletteParentComponent]
247
273
  }] }, { type: i1.AXUnsubscriber }], propDecorators: { __hostClass: [{
248
274
  type: HostBinding,
249
275
  args: ['class']
250
276
  }] } });
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGUvc3JjL2xpYi9jb2xvci1wYWxldHRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLDRCQUE0QixFQUFFLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFFcEc7Ozs7R0FJRztBQWNILE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxlQUFlO0lBOENoRTs7T0FFRztJQUNILFlBRVMsT0FBc0MsRUFDckMsYUFBNkI7UUFFckMsS0FBSyxFQUFFLENBQUM7UUFIRCxZQUFPLEdBQVAsT0FBTyxDQUErQjtRQUNyQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFuRHZDLFVBQUssR0FBbUQ7WUFDdEQsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FDTCxDQUFDO1FBRUY7O1dBRUc7UUFDTyxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBRWhDOztXQUVHO1FB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QTZCO3NFQW9MM0IsV0FBVztzQkFEdEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBpc0Jyb3dzZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgQVhDb2xvclV0aWwsIEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWENvbG9yUGFsZXR0ZUNoaWxkQ29tcG9uZW50LCBBWENvbG9yUGFsZXR0ZVBhcmVudENvbXBvbmVudCB9IGZyb20gJy4vY29sb3ItcGFsZXR0ZS5jbGFzcyc7XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBwaWNraW5nIGNvbG9ycyBmcm9tIGEgY29sb3IgcGFsZXR0ZS5cbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb2xvci1wYWxldHRlLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvci1wYWxldHRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWENvbG9yUGFsZXR0ZUNoaWxkQ29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYQ29sb3JQYWxldHRlUGlja2VyQ29tcG9uZW50LFxuICAgIH0sXG4gICAgQVhVbnN1YnNjcmliZXIsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29sb3JQYWxldHRlUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgX3JnYmE6IHsgcjogbnVtYmVyOyBnOiBudW1iZXI7IGI6IG51bWJlcjsgYTogbnVtYmVyIH0gPSB7XG4gICAgcjogMCxcbiAgICBnOiAwLFxuICAgIGI6IDAsXG4gICAgYTogMCxcbiAgfTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfZ3JhZGllbnQ6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2JnQ29sb3I6IHN0cmluZyA9ICcjRjAwJztcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2dyYWRpZW50Q29sb3JzOiBhbnlbXSA9IFtcbiAgICB7IGNvbG9yOiAncmdiKDI1NSwgMCwgMCknLCBwb3M6IDAgfSxcbiAgICB7IGNvbG9yOiAncmdiKDI1NSwgMjU1LCAwKScsIHBvczogMC4xNyB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMCwgMjU1LCAwKScsIHBvczogMC4zMyB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMCwgMjU1LCAyNTUpJywgcG9zOiAwLjUgfSxcbiAgICB7IGNvbG9yOiAncmdiKDAsIDAsIDI1NSknLCBwb3M6IDAuNjcgfSxcbiAgICB7IGNvbG9yOiAncmdiKDI1NSwgMCwgMjU1KScsIHBvczogMC44MyB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMjU1LCAwLCAwKScsIHBvczogMSB9LFxuICBdO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfZ3JhZGllbnRzID0gQVhDb2xvclV0aWwuZ3JhZGllbnQodGhpcy5fZ3JhZGllbnRDb2xvcnMpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfY29sb3JzID0gdGhpcy5fZ3JhZGllbnRzLnJnYigxMDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGRyYWdQb3NpdGlvbiA9IHsgeDogMCwgeTogMCB9O1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChBWENvbG9yUGFsZXR0ZVBhcmVudENvbXBvbmVudClcbiAgICBwdWJsaWMgX3BhcmVudDogQVhDb2xvclBhbGV0dGVQYXJlbnRDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVyOiBBWFVuc3Vic2NyaWJlcixcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICBfcGFyZW50Lm9uVmFsdWVDaGFuZ2VkLnBpcGUoX3Vuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgIHRoaXMuX2hhbmRsZVBhcmVudENvbG9yQ2hhbmdlZCgpO1xuICAgIH0pO1xuICAgIF9wYXJlbnQub25PcHRpb25DaGFuZ2VkLnBpcGUoX3Vuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHNldEhTVigpIHtcbiAgICBjb25zdCBoc3YgPSBBWENvbG9yVXRpbC50byh0aGlzLl9yZ2JhLCAnaHN2YScpIGFzIGFueTtcbiAgICBjb25zdCBzb3J0ZWRIID0gdGhpcy5fY29sb3JzLm1hcCgoYykgPT4gYy50b0hzdigpLmgpO1xuICAgIHRoaXMuX2dyYWRpZW50ID0gc29ydGVkSC5maW5kSW5kZXgoKGMpID0+IHtcbiAgICAgIHJldHVybiBNYXRoLnJvdW5kKGMpID49IE1hdGgucm91bmQoaHN2LmgpO1xuICAgIH0pO1xuICAgIHRoaXMuX2JnQ29sb3IgPSBBWENvbG9yVXRpbC50b1N0cmluZyh7IGg6IGhzdi5oLCBzOiAxLCB2OiAxLCBhOiB0aGlzLl9yZ2JhLmEgfSwgJ3JnYmEnKTtcbiAgICB0aGlzLnNldFBvaW50ZXJCeVBlcmNlbnQoaHN2LnMgKiAxMDAsIGhzdi52ICogMTAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfaGFuZGxlUGFyZW50Q29sb3JDaGFuZ2VkKCkge1xuICAgIGNvbnN0IGNvbG9yID0gdGhpcy5fcGFyZW50LnZhbHVlO1xuICAgIGlmICghY29sb3IpIHtcbiAgICAgIHRoaXMuX3JnYmEgPSB7XG4gICAgICAgIHI6IDAsXG4gICAgICAgIGc6IDAsXG4gICAgICAgIGI6IDAsXG4gICAgICAgIGE6IDAsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIUFYQ29sb3JVdGlsLmVxdWFsKGNvbG9yLCB0aGlzLl9yZ2JhKSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX3JnYmEsIEFYQ29sb3JVdGlsLnRvKGNvbG9yLCAncmdiYScpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZXRIU1YoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlQWxwaGFDaGFuZ2VkKGU6IGFueSkge1xuICAgIGlmIChlICE9IHRoaXMuX3JnYmEuYSkge1xuICAgICAgY29uc3QgeyByLCBnLCBiIH0gPSB0aGlzLl9yZ2JhO1xuICAgICAgY29uc3QgX2NvbG9yID0gYHJnYmEoJHtyfSwke2d9LCR7Yn0sJHtlfSlgO1xuICAgICAgdGhpcy5fcGFyZW50LmNvbW1pdFZhbHVlKEFYQ29sb3JVdGlsLnRvU3RyaW5nKF9jb2xvciwgJ3JnYmEnKSwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZUdyYWRpZW50Q2hhbmdlZChlOiBhbnkpIHtcbiAgICBpZiAoZSAhPSB0aGlzLl9ncmFkaWVudCkge1xuICAgICAgY29uc3QgeyBzLCB2IH0gPSBBWENvbG9yVXRpbC50byh0aGlzLl9yZ2JhLCAnaHN2YScpIGFzIGFueTtcbiAgICAgIGNvbnN0IHsgaCB9ID0gdGhpcy5fY29sb3JzW2UgYXMgbnVtYmVyXS50b0hzdigpO1xuICAgICAgdGhpcy5fcGFyZW50LmNvbW1pdFZhbHVlKEFYQ29sb3JVdGlsLnRvU3RyaW5nKHsgaCwgcywgdiwgYTogdGhpcy5fcmdiYS5hIH0sICdyZ2JhJyksIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVTdXJmYWNlQ2xpY2soZTogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLl9wYXJlbnQuZGlzYWJsZWQgfHwgdGhpcy5fcGFyZW50LnJlYWRvbmx5KSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdXJmYWNlID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtY29sb3ItYm94LW92ZXJsYXknKTtcbiAgICBjb25zdCBwb2ludGVyID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtY29sb3ItYm94LXBvaW50ZXInKTtcbiAgICBsZXQgeCA9IGUub2Zmc2V0WDtcbiAgICBsZXQgeSA9IGUub2Zmc2V0WTtcbiAgICB0aGlzLnNldENvbG9yQnlYWSh4LCB5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVEcmFnKCkge1xuICAgIGlmICh0aGlzLl9wYXJlbnQuZGlzYWJsZWQgfHwgdGhpcy5fcGFyZW50LnJlYWRvbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN1cmZhY2UgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1jb2xvci1ib3gtb3ZlcmxheScpO1xuICAgIGNvbnN0IHNiID0gc3VyZmFjZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBwb2ludGVyID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtY29sb3ItYm94LXBvaW50ZXInKTtcbiAgICBjb25zdCBwYiA9IHBvaW50ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdyA9IHBiLndpZHRoIC8gMjtcbiAgICBsZXQgeCA9IHBiLmxlZnQgLSBzYi5sZWZ0ICsgdztcbiAgICBsZXQgeSA9IHBiLnRvcCAtIHNiLnRvcCArIHc7XG4gICAgLy9cbiAgICB4ID0geCA8IDAgPyAwIDogeDtcbiAgICB4ID0geCA+IHNiLndpZHRoID8gc2Iud2lkdGggOiB4O1xuICAgIC8vXG4gICAgeSA9IHkgPCAwID8gMCA6IHk7XG4gICAgeSA9IHkgPiBzYi5oZWlnaHQgPyBzYi5oZWlnaHQgOiB5O1xuICAgIC8vXG4gICAgdGhpcy5zZXRDb2xvckJ5WFkoeCwgeSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIC8vIHByb3RlY3RlZCBfaGFuZGxlRHJhZ01vdmUoZXZlbnQ6IGFueSkge1xuICAvLyAgIGlmICh0aGlzLl9wYXJlbnQuZGlzYWJsZWQgfHwgdGhpcy5fcGFyZW50LnJlYWRvbmx5KSB7XG4gIC8vICAgICByZXR1cm47XG4gIC8vICAgfVxuXG4gIC8vICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LWNvbG9yLWJveC1vdmVybGF5Jyk7XG4gIC8vICAgY29uc3Qgc2IgPSBzdXJmYWNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIC8vICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgZHJhZyBldmVudCByZWxhdGl2ZSB0byB0aGUgc3VyZmFjZVxuICAvLyAgIGNvbnN0IGRyYWdQb3NpdGlvbiA9IGV2ZW50LnBvaW50ZXJQb3NpdGlvbjtcblxuICAvLyAgIC8vIENhbGN1bGF0ZSB4IGFuZCB5IG9mZnNldHMgcmVsYXRpdmUgdG8gdGhlIHN1cmZhY2VcbiAgLy8gICBsZXQgeCA9IGRyYWdQb3NpdGlvbi54IC0gc2IubGVmdDsgLy8gUG9pbnRlciB4IHBvc2l0aW9uXG4gIC8vICAgbGV0IHkgPSBkcmFnUG9zaXRpb24ueSAtIHNiLnRvcDsgLy8gUG9pbnRlciB5IHBvc2l0aW9uXG5cbiAgLy8gICAvLyBDbGFtcCB2YWx1ZXMgdG8gYmUgd2l0aGluIGJvdW5kc1xuICAvLyAgIC8vIEFkanVzdCB0aGUgY2xhbXBpbmcgbG9naWMgdG8gcHJldmVudCBvdmVyc2hvb3RpbmcgYnkgdGFraW5nIHRoZSBwb2ludGVyIHNpemUgaW50byBhY2NvdW50XG4gIC8vICAgY29uc3QgcG9pbnRlcldpZHRoID0gMjA7IC8vIEFzc3VtaW5nIGEgcG9pbnRlciB3aWR0aCBvZiAyMHB4LCBhZGp1c3QgYXMgbmVjZXNzYXJ5XG4gIC8vICAgY29uc3QgcG9pbnRlckhlaWdodCA9IDIwOyAvLyBBc3N1bWluZyBhIHBvaW50ZXIgaGVpZ2h0IG9mIDIwcHgsIGFkanVzdCBhcyBuZWNlc3NhcnlcblxuICAvLyAgIHggPSBNYXRoLm1heCgwICsgcG9pbnRlcldpZHRoIC8gMiwgTWF0aC5taW4oeCwgc2Iud2lkdGggLSBwb2ludGVyV2lkdGggLyAyKSk7IC8vIENlbnRlciB0aGUgcG9pbnRlclxuICAvLyAgIHkgPSBNYXRoLm1heCgwICsgcG9pbnRlckhlaWdodCAvIDIsIE1hdGgubWluKHksIHNiLmhlaWdodCAtIHBvaW50ZXJIZWlnaHQgLyAyKSk7IC8vIENlbnRlciB0aGUgcG9pbnRlclxuXG4gIC8vICAgLy8gQ2FsbCB0aGUgbWV0aG9kIHRvIHNldCB0aGUgY29sb3IgYmFzZWQgb24gdGhlIG5ldyB4IGFuZCB5XG4gIC8vICAgdGhpcy5zZXRDb2xvckJ5WFkoeCwgeSk7XG4gIC8vIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgc2V0Q29sb3JCeVhZKHg6IG51bWJlciwgeTogbnVtYmVyKSB7XG4gICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LWNvbG9yLWJveC1vdmVybGF5Jyk7XG4gICAgY29uc3Qgc2IgPSBzdXJmYWNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIC8vXG4gICAgY29uc3QgeyBoLCBhIH0gPSBBWENvbG9yVXRpbC50byh0aGlzLl9iZ0NvbG9yLCAnaHN2YScpIGFzIGFueTtcbiAgICBjb25zdCBoc3ZhID0ge1xuICAgICAgaCxcbiAgICAgIHM6IHggLyBzYi53aWR0aCxcbiAgICAgIHY6IChzYi5oZWlnaHQgLSB5KSAvIHNiLmhlaWdodCxcbiAgICAgIGEsXG4gICAgfTtcbiAgICB0aGlzLl9wYXJlbnQuY29tbWl0VmFsdWUoQVhDb2xvclV0aWwudG9TdHJpbmcoaHN2YSwgJ3JnYmEnKSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgc2V0UG9pbnRlckJ5UGVyY2VudCh4OiBudW1iZXIsIHk6IG51bWJlcikge1xuICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LWNvbG9yLWJveC1vdmVybGF5Jyk7XG4gICAgICBpZiAoIXN1cmZhY2UpIHJldHVybjtcbiAgICAgIGNvbnN0IHNiID0gc3VyZmFjZT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBwb2ludGVyID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtY29sb3ItYm94LXBvaW50ZXInKTtcbiAgICAgIGNvbnN0IHBiID0gcG9pbnRlcj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCB3ID0gcGIud2lkdGggLyAyO1xuICAgICAgY29uc3Qgd2lkdGggPSBzYi53aWR0aDsgLy8rIHBiLndpZHRoXG4gICAgICBjb25zdCBoZWlnaHQgPSBzYi5oZWlnaHQ7IC8vICsgcGIud2lkdGhcbiAgICAgIHRoaXMuZHJhZ1Bvc2l0aW9uID0ge1xuICAgICAgICB4OiAoeCAqIHdpZHRoKSAvIDEwMCAtIHcsXG4gICAgICAgIHk6IGhlaWdodCAtICh5ICogaGVpZ2h0KSAvIDEwMCAtIHcsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBheC1jb2xvci1wYWxldHRlLXBpY2tlcmA7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1jb2xvci1ib3gtb3ZlcmxheS10cmFuc1wiPlxuICA8ZGl2IGNsYXNzPVwiYXgtY29sb3ItYm94LW92ZXJsYXlcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJfYmdDb2xvclwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC1jb2xvci1ib3gtb3ZlcmxheS1nMVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1jb2xvci1ib3gtb3ZlcmxheS1nMlwiIChjbGljayk9XCJfaGFuZGxlU3VyZmFjZUNsaWNrKCRldmVudClcIj48L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImF4LWNvbG9yLWJveC1wb2ludGVyXCJcbiAgICAgIGNka0RyYWdcbiAgICAgIGNka0RyYWdCb3VuZGFyeT1cIi5heC1jb2xvci1ib3gtb3ZlcmxheVwiXG4gICAgICBbY2RrRHJhZ0ZyZWVEcmFnUG9zaXRpb25dPVwiZHJhZ1Bvc2l0aW9uXCJcbiAgICAgIChjZGtEcmFnRW5kZWQpPVwiX2hhbmRsZURyYWcoKVwiXG4gICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWQgfHwgX3BhcmVudC5yZWFkb25seVwiXG4gICAgPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48YXgtcmFuZ2Utc2xpZGVyXG4gIGNsYXNzPVwiYXgtY29sb3ItYm94LWdyYWRpZW50XCJcbiAgW21pbl09XCIwXCJcbiAgW21heF09XCIxMDBcIlxuICBbbW9kZV09XCInc2luZ2xlJ1wiXG4gIFtuZ01vZGVsXT1cIl9ncmFkaWVudFwiXG4gIFtkaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkXCJcbiAgW3JlYWRvbmx5XT1cIl9wYXJlbnQucmVhZG9ubHlcIlxuICAobmdNb2RlbENoYW5nZSk9XCJfaGFuZGxlR3JhZGllbnRDaGFuZ2VkKCRldmVudClcIlxuPlxuPC9heC1yYW5nZS1zbGlkZXI+XG48YXgtcmFuZ2Utc2xpZGVyXG4gIGNsYXNzPVwiYXgtY29sb3ItYm94LXRyYW5zcGFyZW50XCJcbiAgW21pbl09XCIwXCJcbiAgW21heF09XCIxXCJcbiAgW2hhc1N0ZXBdPVwiZmFsc2VcIlxuICBbbmdNb2RlbF09XCJfcmdiYS5hXCJcbiAgW2Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIlxuICBbcmVhZG9ubHldPVwiX3BhcmVudC5yZWFkb25seVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cIl9oYW5kbGVBbHBoYUNoYW5nZWQoJGV2ZW50KVwiXG4+XG48L2F4LXJhbmdlLXNsaWRlcj5cbiJdfQ==
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGUvc3JjL2xpYi9jb2xvci1wYWxldHRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUFFcEc7Ozs7R0FJRztBQWNILE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxlQUFlO0lBa0RoRTs7T0FFRztJQUNILFlBRVMsT0FBc0MsRUFDckMsYUFBNkI7UUFFckMsS0FBSyxFQUFFLENBQUM7UUFIRCxZQUFPLEdBQVAsT0FBTyxDQUErQjtRQUNyQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUF2RHZDLFVBQUssR0FBbUQ7WUFDdEQsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FDTCxDQUFDO1FBRU0sV0FBTSxHQUFHLFNBQVMsQ0FBNkIsUUFBUSxDQUFDLENBQUM7UUFFekQsa0JBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEM7O1dBRUc7UUFDTyxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRXhCOztXQUVHO1FBQ08sYUFBUSxHQUFHLE1BQU0sQ0FBQztRQUU1Qjs7V0FFRztRQUNjLG9CQUFlLEdBQVU7WUFDeEMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtZQUNuQyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQ3hDLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7WUFDdEMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtZQUN2QyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQ3RDLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7WUFDeEMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtTQUNwQyxDQUFDO1FBRUY7O1dBRUc7UUFDYyxlQUFVLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFekU7O1dBRUc7UUFDYyxZQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFcEQ7O1dBRUc7UUFDTyxpQkFBWSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFXdEMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDMUUsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMzRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssTUFBTTtRQUNaLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQVEsQ0FBQztRQUN0RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSyx5QkFBeUI7UUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRztnQkFDWCxDQUFDLEVBQUUsQ0FBQztnQkFDSixDQUFDLEVBQUUsQ0FBQztnQkFDSixDQUFDLEVBQUUsQ0FBQztnQkFDSixDQUFDLEVBQUUsQ0FBQzthQUNMLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDM0QsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNPLG1CQUFtQixDQUFDLENBQU07UUFDbEMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN0QixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQy9CLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkUsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNPLHNCQUFzQixDQUFDLENBQU07UUFDckMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBUSxDQUFDO1lBQzNELE1BQU0sRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQVcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaURBQWlEO0lBQ2pELDBEQUEwRDtJQUMxRCwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLGNBQWM7SUFDZCxNQUFNO0lBQ04sa0dBQWtHO0lBQ2xHLGtHQUFrRztJQUNsRyx5QkFBeUI7SUFDekIseUJBQXlCO0lBQ3pCLDZCQUE2QjtJQUM3QixJQUFJO0lBRUo7O09BRUc7SUFDSCw0QkFBNEI7SUFDNUIsMERBQTBEO0lBQzFELGNBQWM7SUFDZCxNQUFNO0lBQ04sa0dBQWtHO0lBQ2xHLGdEQUFnRDtJQUNoRCxrR0FBa0c7SUFDbEcsZ0RBQWdEO0lBQ2hELDRCQUE0QjtJQUM1QixtQ0FBbUM7SUFDbkMsaUNBQWlDO0lBQ2pDLE9BQU87SUFDUCx1QkFBdUI7SUFDdkIscUNBQXFDO0lBQ3JDLE9BQU87SUFDUCx1QkFBdUI7SUFDdkIsdUNBQXVDO0lBQ3ZDLE9BQU87SUFDUCw2QkFBNkI7SUFDN0IsSUFBSTtJQUVKOztPQUVHO0lBQ0gsMENBQTBDO0lBQzFDLDBEQUEwRDtJQUMxRCxjQUFjO0lBQ2QsTUFBTTtJQUVOLGtHQUFrRztJQUNsRyxnREFBZ0Q7SUFFaEQsa0VBQWtFO0lBQ2xFLGdEQUFnRDtJQUVoRCx5REFBeUQ7SUFDekQsNERBQTREO0lBQzVELDJEQUEyRDtJQUUzRCx3Q0FBd0M7SUFDeEMsaUdBQWlHO0lBQ2pHLHNGQUFzRjtJQUN0Rix3RkFBd0Y7SUFFeEYsd0dBQXdHO0lBQ3hHLDJHQUEyRztJQUUzRyxpRUFBaUU7SUFDakUsNkJBQTZCO0lBQzdCLElBQUk7SUFFSjs7T0FFRztJQUNLLFlBQVksQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUN2QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsYUFBYSxDQUFpQix1QkFBdUIsQ0FBQyxDQUFDO1FBQzdGLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzNDLEVBQUU7UUFDRixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQVEsQ0FBQztRQUM5RCxNQUFNLElBQUksR0FBRztZQUNYLENBQUM7WUFDRCxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLO1lBQ2YsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTTtZQUM5QixDQUFDO1NBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7T0FFRztJQUNLLG1CQUFtQixDQUFDLENBQVMsRUFBRSxDQUFTO1FBQzlDLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsYUFBYSxDQUFpQix1QkFBdUIsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxPQUFPO2dCQUFFLE9BQU87WUFDckIsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUM7WUFDNUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGFBQWEsQ0FBaUIsdUJBQXVCLENBQUMsQ0FBQztZQUM3RixNQUFNLEVBQUUsR0FBRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztZQUM1QyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUN2QixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWTtZQUNwQyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYTtZQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHO2dCQUNsQixDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7Z0JBQ3hCLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7YUFDbkMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNZLFdBQVc7UUFDckIsT0FBTyx5QkFBeUIsQ0FBQztJQUNuQyxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQWlCO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQUUsT0FBTztRQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFUyxVQUFVLENBQUMsS0FBaUI7UUFDcEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzNELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVTLFFBQVE7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFpQjtRQUNwQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQ2xELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUV4RSxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUNwRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUVsRCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQzNELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7UUFFNUQsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxZQUFZLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDOUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFN0csSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkYsQ0FBQzs4R0EzUVUsNkJBQTZCLGtCQXNEOUIsNkJBQTZCO2tHQXRENUIsNkJBQTZCLHlHQVI3QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSw0QkFBNEI7Z0JBQ3JDLFdBQVcsRUFBRSw2QkFBNkI7YUFDM0M7WUFDRCxjQUFjO1NBQ2YsbUtDL0JILDIvQkFxQ0E7OzJGREphLDZCQUE2QjtrQkFiekMsU0FBUzsrQkFDRSx5QkFBeUIsaUJBRXBCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDRCQUE0Qjs0QkFDckMsV0FBVywrQkFBK0I7eUJBQzNDO3dCQUNELGNBQWM7cUJBQ2Y7OzBCQXdERSxNQUFNOzJCQUFDLDZCQUE2QjtzRUFvTDNCLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYQ29sb3JVdGlsLCBBWFVuc3Vic2NyaWJlciB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBzaWduYWwsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDb2xvclBhbGV0dGVDaGlsZENvbXBvbmVudCwgQVhDb2xvclBhbGV0dGVQYXJlbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbG9yLXBhbGV0dGUuY2xhc3MnO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgcGlja2luZyBjb2xvcnMgZnJvbSBhIGNvbG9yIHBhbGV0dGUuXG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29sb3ItcGFsZXR0ZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGFsZXR0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhDb2xvclBhbGV0dGVDaGlsZENvbXBvbmVudCxcbiAgICAgIHVzZUV4aXN0aW5nOiBBWENvbG9yUGFsZXR0ZVBpY2tlckNvbXBvbmVudCxcbiAgICB9LFxuICAgIEFYVW5zdWJzY3JpYmVyLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbG9yUGFsZXR0ZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIE1YQmFzZUNvbXBvbmVudCB7XG4gIF9yZ2JhOiB7IHI6IG51bWJlcjsgZzogbnVtYmVyOyBiOiBudW1iZXI7IGE6IG51bWJlciB9ID0ge1xuICAgIHI6IDAsXG4gICAgZzogMCxcbiAgICBiOiAwLFxuICAgIGE6IDAsXG4gIH07XG5cbiAgcHJpdmF0ZSBjaXJjbGUgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4+KCdjaXJjbGUnKTtcblxuICBwcml2YXRlIGNoYW5naW5nQ29sb3IgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9ncmFkaWVudCA9IDA7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2JnQ29sb3IgPSAnI0YwMCc7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9ncmFkaWVudENvbG9yczogYW55W10gPSBbXG4gICAgeyBjb2xvcjogJ3JnYigyNTUsIDAsIDApJywgcG9zOiAwIH0sXG4gICAgeyBjb2xvcjogJ3JnYigyNTUsIDI1NSwgMCknLCBwb3M6IDAuMTcgfSxcbiAgICB7IGNvbG9yOiAncmdiKDAsIDI1NSwgMCknLCBwb3M6IDAuMzMgfSxcbiAgICB7IGNvbG9yOiAncmdiKDAsIDI1NSwgMjU1KScsIHBvczogMC41IH0sXG4gICAgeyBjb2xvcjogJ3JnYigwLCAwLCAyNTUpJywgcG9zOiAwLjY3IH0sXG4gICAgeyBjb2xvcjogJ3JnYigyNTUsIDAsIDI1NSknLCBwb3M6IDAuODMgfSxcbiAgICB7IGNvbG9yOiAncmdiKDI1NSwgMCwgMCknLCBwb3M6IDEgfSxcbiAgXTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2dyYWRpZW50cyA9IEFYQ29sb3JVdGlsLmdyYWRpZW50KHRoaXMuX2dyYWRpZW50Q29sb3JzKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbG9ycyA9IHRoaXMuX2dyYWRpZW50cy5yZ2IoMTAwKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBkcmFnUG9zaXRpb24gPSB7IHg6IDAsIHk6IDAgfTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQVhDb2xvclBhbGV0dGVQYXJlbnRDb21wb25lbnQpXG4gICAgcHVibGljIF9wYXJlbnQ6IEFYQ29sb3JQYWxldHRlUGFyZW50Q29tcG9uZW50LFxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlcjogQVhVbnN1YnNjcmliZXIsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgX3BhcmVudC5vblZhbHVlQ2hhbmdlZC5waXBlKF91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICB0aGlzLl9oYW5kbGVQYXJlbnRDb2xvckNoYW5nZWQoKTtcbiAgICB9KTtcbiAgICBfcGFyZW50Lm9uT3B0aW9uQ2hhbmdlZC5waXBlKF91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRIU1YoKSB7XG4gICAgY29uc3QgaHN2ID0gQVhDb2xvclV0aWwudG8odGhpcy5fcmdiYSwgJ2hzdmEnKSBhcyBhbnk7XG4gICAgY29uc3Qgc29ydGVkSCA9IHRoaXMuX2NvbG9ycy5tYXAoKGMpID0+IGMudG9Ic3YoKS5oKTtcbiAgICB0aGlzLl9ncmFkaWVudCA9IHNvcnRlZEguZmluZEluZGV4KChjKSA9PiB7XG4gICAgICByZXR1cm4gTWF0aC5yb3VuZChjKSA+PSBNYXRoLnJvdW5kKGhzdi5oKTtcbiAgICB9KTtcbiAgICB0aGlzLl9iZ0NvbG9yID0gQVhDb2xvclV0aWwudG9TdHJpbmcoeyBoOiBoc3YuaCwgczogMSwgdjogMSwgYTogdGhpcy5fcmdiYS5hIH0sICdyZ2JhJyk7XG4gICAgdGhpcy5zZXRQb2ludGVyQnlQZXJjZW50KGhzdi5zICogMTAwLCBoc3YudiAqIDEwMCk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX2hhbmRsZVBhcmVudENvbG9yQ2hhbmdlZCgpIHtcbiAgICBjb25zdCBjb2xvciA9IHRoaXMuX3BhcmVudC52YWx1ZTtcbiAgICBpZiAoIWNvbG9yKSB7XG4gICAgICB0aGlzLl9yZ2JhID0ge1xuICAgICAgICByOiAwLFxuICAgICAgICBnOiAwLFxuICAgICAgICBiOiAwLFxuICAgICAgICBhOiAwLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFBWENvbG9yVXRpbC5lcXVhbChjb2xvciwgdGhpcy5fcmdiYSkpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9yZ2JhLCBBWENvbG9yVXRpbC50byhjb2xvciwgJ3JnYmEnKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2V0SFNWKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZUFscGhhQ2hhbmdlZChlOiBhbnkpIHtcbiAgICBpZiAoZSAhPSB0aGlzLl9yZ2JhLmEpIHtcbiAgICAgIGNvbnN0IHsgciwgZywgYiB9ID0gdGhpcy5fcmdiYTtcbiAgICAgIGNvbnN0IF9jb2xvciA9IGByZ2JhKCR7cn0sJHtnfSwke2J9LCR7ZX0pYDtcbiAgICAgIHRoaXMuX3BhcmVudC5jb21taXRWYWx1ZShBWENvbG9yVXRpbC50b1N0cmluZyhfY29sb3IsICdyZ2JhJyksIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVHcmFkaWVudENoYW5nZWQoZTogYW55KSB7XG4gICAgaWYgKGUgIT0gdGhpcy5fZ3JhZGllbnQpIHtcbiAgICAgIGNvbnN0IHsgcywgdiB9ID0gQVhDb2xvclV0aWwudG8odGhpcy5fcmdiYSwgJ2hzdmEnKSBhcyBhbnk7XG4gICAgICBjb25zdCB7IGggfSA9IHRoaXMuX2NvbG9yc1tlIGFzIG51bWJlcl0udG9Ic3YoKTtcbiAgICAgIHRoaXMuX3BhcmVudC5jb21taXRWYWx1ZShBWENvbG9yVXRpbC50b1N0cmluZyh7IGgsIHMsIHYsIGE6IHRoaXMuX3JnYmEuYSB9LCAncmdiYScpLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIC8vIHByb3RlY3RlZCBfaGFuZGxlU3VyZmFjZUNsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgLy8gICBpZiAodGhpcy5fcGFyZW50LmRpc2FibGVkIHx8IHRoaXMuX3BhcmVudC5yZWFkb25seSkge1xuICAvLyAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAvLyAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgLy8gICAgIHJldHVybjtcbiAgLy8gICB9XG4gIC8vICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LWNvbG9yLWJveC1vdmVybGF5Jyk7XG4gIC8vICAgY29uc3QgcG9pbnRlciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LWNvbG9yLWJveC1wb2ludGVyJyk7XG4gIC8vICAgY29uc3QgeCA9IGUub2Zmc2V0WDtcbiAgLy8gICBjb25zdCB5ID0gZS5vZmZzZXRZO1xuICAvLyAgIHRoaXMuc2V0Q29sb3JCeVhZKHgsIHkpO1xuICAvLyB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICAvLyBwcm90ZWN0ZWQgX2hhbmRsZURyYWcoKSB7XG4gIC8vICAgaWYgKHRoaXMuX3BhcmVudC5kaXNhYmxlZCB8fCB0aGlzLl9wYXJlbnQucmVhZG9ubHkpIHtcbiAgLy8gICAgIHJldHVybjtcbiAgLy8gICB9XG4gIC8vICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LWNvbG9yLWJveC1vdmVybGF5Jyk7XG4gIC8vICAgY29uc3Qgc2IgPSBzdXJmYWNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAvLyAgIGNvbnN0IHBvaW50ZXIgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1jb2xvci1ib3gtcG9pbnRlcicpO1xuICAvLyAgIGNvbnN0IHBiID0gcG9pbnRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgLy8gICBjb25zdCB3ID0gcGIud2lkdGggLyAyO1xuICAvLyAgIGxldCB4ID0gcGIubGVmdCAtIHNiLmxlZnQgKyB3O1xuICAvLyAgIGxldCB5ID0gcGIudG9wIC0gc2IudG9wICsgdztcbiAgLy8gICAvL1xuICAvLyAgIHggPSB4IDwgMCA/IDAgOiB4O1xuICAvLyAgIHggPSB4ID4gc2Iud2lkdGggPyBzYi53aWR0aCA6IHg7XG4gIC8vICAgLy9cbiAgLy8gICB5ID0geSA8IDAgPyAwIDogeTtcbiAgLy8gICB5ID0geSA+IHNiLmhlaWdodCA/IHNiLmhlaWdodCA6IHk7XG4gIC8vICAgLy9cbiAgLy8gICB0aGlzLnNldENvbG9yQnlYWSh4LCB5KTtcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgLy8gcHJvdGVjdGVkIF9oYW5kbGVEcmFnTW92ZShldmVudDogYW55KSB7XG4gIC8vICAgaWYgKHRoaXMuX3BhcmVudC5kaXNhYmxlZCB8fCB0aGlzLl9wYXJlbnQucmVhZG9ubHkpIHtcbiAgLy8gICAgIHJldHVybjtcbiAgLy8gICB9XG5cbiAgLy8gICBjb25zdCBzdXJmYWNlID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtY29sb3ItYm94LW92ZXJsYXknKTtcbiAgLy8gICBjb25zdCBzYiA9IHN1cmZhY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgLy8gICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBkcmFnIGV2ZW50IHJlbGF0aXZlIHRvIHRoZSBzdXJmYWNlXG4gIC8vICAgY29uc3QgZHJhZ1Bvc2l0aW9uID0gZXZlbnQucG9pbnRlclBvc2l0aW9uO1xuXG4gIC8vICAgLy8gQ2FsY3VsYXRlIHggYW5kIHkgb2Zmc2V0cyByZWxhdGl2ZSB0byB0aGUgc3VyZmFjZVxuICAvLyAgIGxldCB4ID0gZHJhZ1Bvc2l0aW9uLnggLSBzYi5sZWZ0OyAvLyBQb2ludGVyIHggcG9zaXRpb25cbiAgLy8gICBsZXQgeSA9IGRyYWdQb3NpdGlvbi55IC0gc2IudG9wOyAvLyBQb2ludGVyIHkgcG9zaXRpb25cblxuICAvLyAgIC8vIENsYW1wIHZhbHVlcyB0byBiZSB3aXRoaW4gYm91bmRzXG4gIC8vICAgLy8gQWRqdXN0IHRoZSBjbGFtcGluZyBsb2dpYyB0byBwcmV2ZW50IG92ZXJzaG9vdGluZyBieSB0YWtpbmcgdGhlIHBvaW50ZXIgc2l6ZSBpbnRvIGFjY291bnRcbiAgLy8gICBjb25zdCBwb2ludGVyV2lkdGggPSAyMDsgLy8gQXNzdW1pbmcgYSBwb2ludGVyIHdpZHRoIG9mIDIwcHgsIGFkanVzdCBhcyBuZWNlc3NhcnlcbiAgLy8gICBjb25zdCBwb2ludGVySGVpZ2h0ID0gMjA7IC8vIEFzc3VtaW5nIGEgcG9pbnRlciBoZWlnaHQgb2YgMjBweCwgYWRqdXN0IGFzIG5lY2Vzc2FyeVxuXG4gIC8vICAgeCA9IE1hdGgubWF4KDAgKyBwb2ludGVyV2lkdGggLyAyLCBNYXRoLm1pbih4LCBzYi53aWR0aCAtIHBvaW50ZXJXaWR0aCAvIDIpKTsgLy8gQ2VudGVyIHRoZSBwb2ludGVyXG4gIC8vICAgeSA9IE1hdGgubWF4KDAgKyBwb2ludGVySGVpZ2h0IC8gMiwgTWF0aC5taW4oeSwgc2IuaGVpZ2h0IC0gcG9pbnRlckhlaWdodCAvIDIpKTsgLy8gQ2VudGVyIHRoZSBwb2ludGVyXG5cbiAgLy8gICAvLyBDYWxsIHRoZSBtZXRob2QgdG8gc2V0IHRoZSBjb2xvciBiYXNlZCBvbiB0aGUgbmV3IHggYW5kIHlcbiAgLy8gICB0aGlzLnNldENvbG9yQnlYWSh4LCB5KTtcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRDb2xvckJ5WFkoeDogbnVtYmVyLCB5OiBudW1iZXIpIHtcbiAgICBjb25zdCBzdXJmYWNlID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtY29sb3ItYm94LW92ZXJsYXknKTtcbiAgICBjb25zdCBzYiA9IHN1cmZhY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgLy9cbiAgICBjb25zdCB7IGgsIGEgfSA9IEFYQ29sb3JVdGlsLnRvKHRoaXMuX2JnQ29sb3IsICdoc3ZhJykgYXMgYW55O1xuICAgIGNvbnN0IGhzdmEgPSB7XG4gICAgICBoLFxuICAgICAgczogeCAvIHNiLndpZHRoLFxuICAgICAgdjogKHNiLmhlaWdodCAtIHkpIC8gc2IuaGVpZ2h0LFxuICAgICAgYSxcbiAgICB9O1xuICAgIHRoaXMuX3BhcmVudC5jb21taXRWYWx1ZShBWENvbG9yVXRpbC50b1N0cmluZyhoc3ZhLCAncmdiYScpLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRQb2ludGVyQnlQZXJjZW50KHg6IG51bWJlciwgeTogbnVtYmVyKSB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICBjb25zdCBzdXJmYWNlID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtY29sb3ItYm94LW92ZXJsYXknKTtcbiAgICAgIGlmICghc3VyZmFjZSkgcmV0dXJuO1xuICAgICAgY29uc3Qgc2IgPSBzdXJmYWNlPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHBvaW50ZXIgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1jb2xvci1ib3gtcG9pbnRlcicpO1xuICAgICAgY29uc3QgcGIgPSBwb2ludGVyPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHcgPSBwYi53aWR0aCAvIDI7XG4gICAgICBjb25zdCB3aWR0aCA9IHNiLndpZHRoOyAvLysgcGIud2lkdGhcbiAgICAgIGNvbnN0IGhlaWdodCA9IHNiLmhlaWdodDsgLy8gKyBwYi53aWR0aFxuICAgICAgdGhpcy5kcmFnUG9zaXRpb24gPSB7XG4gICAgICAgIHg6ICh4ICogd2lkdGgpIC8gMTAwIC0gdyxcbiAgICAgICAgeTogaGVpZ2h0IC0gKHkgKiBoZWlnaHQpIC8gMTAwIC0gdyxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGF4LWNvbG9yLXBhbGV0dGUtcGlja2VyYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmNoYW5naW5nQ29sb3IoKSkgcmV0dXJuO1xuICAgIHRoaXMucGxhY2VQb2ludGVyKGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuX3BhcmVudC5kaXNhYmxlZCB8fCB0aGlzLl9wYXJlbnQucmVhZG9ubHkpIHJldHVybjtcbiAgICB0aGlzLnBsYWNlUG9pbnRlcihldmVudCk7XG4gICAgdGhpcy5jaGFuZ2luZ0NvbG9yLnNldCh0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVVcCgpIHtcbiAgICB0aGlzLmNoYW5naW5nQ29sb3Iuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgcGxhY2VQb2ludGVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgY29uc3QgY2lyY2xlRWxlbWVudCA9IHRoaXMuY2lyY2xlKCkubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBwYXJlbnRTdGF0cyA9IGNpcmNsZUVsZW1lbnQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IGNpcmNsZUhlaWdodCA9IGNpcmNsZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjtcbiAgICBjb25zdCBjaXJjbGVXaWR0aCA9IGNpcmNsZUVsZW1lbnQub2Zmc2V0V2lkdGggLyAyO1xuXG4gICAgY29uc3QgdG9wID0gZXZlbnQuY2xpZW50WSAtIHBhcmVudFN0YXRzLnRvcCAtIGNpcmNsZUhlaWdodDtcbiAgICBjb25zdCBsZWZ0ID0gZXZlbnQuY2xpZW50WCAtIHBhcmVudFN0YXRzLmxlZnQgLSBjaXJjbGVXaWR0aDtcblxuICAgIGNpcmNsZUVsZW1lbnQuc3R5bGUudG9wID0gYCR7TWF0aC5tYXgoMCAtIGNpcmNsZUhlaWdodCwgTWF0aC5taW4odG9wLCBwYXJlbnRTdGF0cy5oZWlnaHQgLSBjaXJjbGVIZWlnaHQpKX1weGA7XG4gICAgY2lyY2xlRWxlbWVudC5zdHlsZS5sZWZ0ID0gYCR7TWF0aC5tYXgoMCAtIGNpcmNsZVdpZHRoLCBNYXRoLm1pbihsZWZ0LCBwYXJlbnRTdGF0cy53aWR0aCAtIGNpcmNsZVdpZHRoKSl9cHhgO1xuXG4gICAgdGhpcy5zZXRDb2xvckJ5WFkoZXZlbnQuY2xpZW50WCAtIHBhcmVudFN0YXRzLmxlZnQsIGV2ZW50LmNsaWVudFkgLSBwYXJlbnRTdGF0cy50b3ApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtY29sb3ItYm94LW92ZXJsYXktdHJhbnNcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXgtY29sb3ItYm94LW92ZXJsYXlcIlxuICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIl9iZ0NvbG9yXCJcbiAgICAobW91c2Vtb3ZlKT1cImhhbmRsZU1vdmUoJGV2ZW50KVwiXG4gICAgKG1vdXNlZG93bik9XCJoYW5kbGVEb3duKCRldmVudClcIlxuICAgIChtb3VzZXVwKT1cImhhbmRsZVVwKClcIlxuICAgIChtb3VzZWxlYXZlKT1cImhhbmRsZVVwKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNvbG9yLWJveC1vdmVybGF5LWcxXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNvbG9yLWJveC1vdmVybGF5LWcyXCI+PC9kaXY+XG4gICAgPGRpdiAjY2lyY2xlIGNsYXNzPVwiYXgtY29sb3ItYm94LXBvaW50ZXJcIj48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGF4LXJhbmdlLXNsaWRlclxuICBjbGFzcz1cImF4LWNvbG9yLWJveC1ncmFkaWVudFwiXG4gIFttaW5dPVwiMFwiXG4gIFttYXhdPVwiMTAwXCJcbiAgW21vZGVdPVwiJ3NpbmdsZSdcIlxuICBbbmdNb2RlbF09XCJfZ3JhZGllbnRcIlxuICBbZGlzYWJsZWRdPVwiX3BhcmVudC5kaXNhYmxlZFwiXG4gIFtyZWFkb25seV09XCJfcGFyZW50LnJlYWRvbmx5XCJcbiAgKG5nTW9kZWxDaGFuZ2UpPVwiX2hhbmRsZUdyYWRpZW50Q2hhbmdlZCgkZXZlbnQpXCJcbj5cbjwvYXgtcmFuZ2Utc2xpZGVyPlxuPGF4LXJhbmdlLXNsaWRlclxuICBjbGFzcz1cImF4LWNvbG9yLWJveC10cmFuc3BhcmVudFwiXG4gIFttaW5dPVwiMFwiXG4gIFttYXhdPVwiMVwiXG4gIFtoYXNTdGVwXT1cImZhbHNlXCJcbiAgW25nTW9kZWxdPVwiX3JnYmEuYVwiXG4gIFtkaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkXCJcbiAgW3JlYWRvbmx5XT1cIl9wYXJlbnQucmVhZG9ubHlcIlxuICAobmdNb2RlbENoYW5nZSk9XCJfaGFuZGxlQWxwaGFDaGFuZ2VkKCRldmVudClcIlxuPlxuPC9heC1yYW5nZS1zbGlkZXI+XG4iXX0=
@@ -73,25 +73,26 @@ export class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {
73
73
  AXUnsubscriber,
74
74
  ], usesInheritance: true, ngImport: i0, template: `
75
75
  <ax-button
76
+ class="ax-sm"
76
77
  [disabled]="_currentPage === 1 || _parent.disabled"
77
78
  look="blank"
78
79
  (onClick)="_handleOnItemClick({ data: 1 })"
79
80
  >
80
- <ax-icon class="ax-icon ax-icon-chevron-double-left ax-text-xl"></ax-icon>
81
+ <ax-icon class="ax-icon ax-icon-chevron-double-left"></ax-icon>
81
82
  </ax-button>
82
83
 
83
84
  @if (!_parent.isLoading) {
84
85
  @for (item of _items; track $index) {
85
86
  <ax-button
86
- class="ax-selected-page-button"
87
+ class="ax-sm"
87
88
  [disabled]="_parent.disabled"
88
- [color]="_currentPage === item.data ? 'primary' : 'solid'"
89
+ [color]="_currentPage === item.data ? 'primary' : 'ghost'"
89
90
  [look]="_currentPage === item.data ? 'solid' : 'blank'"
90
91
  [text]="item.text"
91
92
  (onClick)="_handleOnItemClick(item)"
92
93
  >
93
94
  @if (item.iconClass) {
94
- <ax-icon class="ax-icon ax-text-xl" [ngClass]="item.iconClass"></ax-icon>
95
+ <ax-icon class="ax-icon" [ngClass]="item.iconClass"></ax-icon>
95
96
  }
96
97
  </ax-button>
97
98
  }
@@ -100,11 +101,12 @@ export class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {
100
101
  }
101
102
 
102
103
  <ax-button
104
+ class="ax-sm"
103
105
  [disabled]="_currentPage === _lastPage || _parent.disabled"
104
106
  look="blank"
105
107
  (onClick)="_handleOnItemClick({ data: _lastPage })"
106
108
  >
107
- <ax-icon class="ax-icon ax-icon-chevron-double-right ax-text-xl"></ax-icon>
109
+ <ax-icon class="ax-icon ax-icon-chevron-double-right"></ax-icon>
108
110
  </ax-button>
109
111
  `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
110
112
  }
@@ -114,25 +116,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
114
116
  selector: 'ax-data-pager-numeric-selector',
115
117
  template: `
116
118
  <ax-button
119
+ class="ax-sm"
117
120
  [disabled]="_currentPage === 1 || _parent.disabled"
118
121
  look="blank"
119
122
  (onClick)="_handleOnItemClick({ data: 1 })"
120
123
  >
121
- <ax-icon class="ax-icon ax-icon-chevron-double-left ax-text-xl"></ax-icon>
124
+ <ax-icon class="ax-icon ax-icon-chevron-double-left"></ax-icon>
122
125
  </ax-button>
123
126
 
124
127
  @if (!_parent.isLoading) {
125
128
  @for (item of _items; track $index) {
126
129
  <ax-button
127
- class="ax-selected-page-button"
130
+ class="ax-sm"
128
131
  [disabled]="_parent.disabled"
129
- [color]="_currentPage === item.data ? 'primary' : 'solid'"
132
+ [color]="_currentPage === item.data ? 'primary' : 'ghost'"
130
133
  [look]="_currentPage === item.data ? 'solid' : 'blank'"
131
134
  [text]="item.text"
132
135
  (onClick)="_handleOnItemClick(item)"
133
136
  >
134
137
  @if (item.iconClass) {
135
- <ax-icon class="ax-icon ax-text-xl" [ngClass]="item.iconClass"></ax-icon>
138
+ <ax-icon class="ax-icon" [ngClass]="item.iconClass"></ax-icon>
136
139
  }
137
140
  </ax-button>
138
141
  }
@@ -141,11 +144,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
141
144
  }
142
145
 
143
146
  <ax-button
147
+ class="ax-sm"
144
148
  [disabled]="_currentPage === _lastPage || _parent.disabled"
145
149
  look="blank"
146
150
  (onClick)="_handleOnItemClick({ data: _lastPage })"
147
151
  >
148
- <ax-icon class="ax-icon ax-icon-chevron-double-right ax-text-xl"></ax-icon>
152
+ <ax-icon class="ax-icon ax-icon-chevron-double-right"></ax-icon>
149
153
  </ax-button>
150
154
  `,
151
155
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -159,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
159
163
  ],
160
164
  }]
161
165
  }] });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wYWdlci1udW1lcmljLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLXBhZ2VyL3NyYy9saWIvZGF0YS1wYWdlci1udW1lcmljLXNlbGVjdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBRS9EOzs7O0dBSUc7QUFpREgsTUFBTSxPQUFPLG1DQUFvQyxTQUFRLGdCQUFnQjtJQWhEekU7O1FBaURFLFdBQU0sR0FBbUIsRUFBRSxDQUFDO1FBQzVCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCOztXQUVHO1FBQ0ssa0JBQWEsR0FBRyxDQUFDLENBQUM7S0ErQzNCO0lBN0NDOztPQUVHO0lBQ2dCLFdBQVc7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUNyRCxFQUFFO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDcEIsQ0FBQyxFQUNELENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FDakYsQ0FBQztRQUNGLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRSxFQUFFO1FBQ0YsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNmLFNBQVMsRUFBRSxzQkFBc0I7Z0JBQ2pDLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQzthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsRUFBRTtRQUNGLEtBQUssSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDZixJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtnQkFDbEIsSUFBSSxFQUFFLENBQUM7YUFDUixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNmLFNBQVMsRUFBRSx1QkFBdUI7Z0JBQ2xDLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQzthQUNkLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQixDQUFDLENBQU07UUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDOzhHQXZEVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyx5REFSbkM7WUFDVDtnQkFDRSxPQUFPLEVBQUUsZ0JBQWdCO2dCQUN6QixXQUFXLEVBQUUsbUNBQW1DO2FBQ2pEO1lBQ0QsY0FBYztTQUNmLGlEQTVDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ1Q7OzJGQVdVLG1DQUFtQztrQkFoRC9DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsZ0JBQWdCOzRCQUN6QixXQUFXLHFDQUFxQzt5QkFDakQ7d0JBQ0QsY0FBYztxQkFDZjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uSXRlbSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRGF0YVBhZ2VyQ2hpbGQgfSBmcm9tICcuL2RhdGEtcGFnZXItYmFzZS5jb21wb25lbnQnO1xuXG4vKipcbiAqIENvbXBvbmVudCB0aGF0IHByb3ZpZGVzIG51bWVyaWMgcGFnZSBzZWxlY3Rpb24gY29udHJvbHMgZm9yIGEgZGF0YSBwYWdlci5cbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1kYXRhLXBhZ2VyLW51bWVyaWMtc2VsZWN0b3InLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxheC1idXR0b25cbiAgICAgIFtkaXNhYmxlZF09XCJfY3VycmVudFBhZ2UgPT09IDEgfHwgX3BhcmVudC5kaXNhYmxlZFwiXG4gICAgICBsb29rPVwiYmxhbmtcIlxuICAgICAgKG9uQ2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKHsgZGF0YTogMSB9KVwiXG4gICAgPlxuICAgICAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hldnJvbi1kb3VibGUtbGVmdCBheC10ZXh0LXhsXCI+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuXG4gICAgQGlmICghX3BhcmVudC5pc0xvYWRpbmcpIHtcbiAgICAgIEBmb3IgKGl0ZW0gb2YgX2l0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYXgtc2VsZWN0ZWQtcGFnZS1idXR0b25cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkXCJcbiAgICAgICAgICBbY29sb3JdPVwiX2N1cnJlbnRQYWdlID09PSBpdGVtLmRhdGEgPyAncHJpbWFyeScgOiAnc29saWQnXCJcbiAgICAgICAgICBbbG9va109XCJfY3VycmVudFBhZ2UgPT09IGl0ZW0uZGF0YSA/ICdzb2xpZCcgOiAnYmxhbmsnXCJcbiAgICAgICAgICBbdGV4dF09XCJpdGVtLnRleHRcIlxuICAgICAgICAgIChvbkNsaWNrKT1cIl9oYW5kbGVPbkl0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKGl0ZW0uaWNvbkNsYXNzKSB7XG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtdGV4dC14bFwiIFtuZ0NsYXNzXT1cIml0ZW0uaWNvbkNsYXNzXCI+PC9heC1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICA8YXgtc2tlbGV0b24+PC9heC1za2VsZXRvbj5cbiAgICB9XG5cbiAgICA8YXgtYnV0dG9uXG4gICAgICBbZGlzYWJsZWRdPVwiX2N1cnJlbnRQYWdlID09PSBfbGFzdFBhZ2UgfHwgX3BhcmVudC5kaXNhYmxlZFwiXG4gICAgICBsb29rPVwiYmxhbmtcIlxuICAgICAgKG9uQ2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKHsgZGF0YTogX2xhc3RQYWdlIH0pXCJcbiAgICA+XG4gICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jaGV2cm9uLWRvdWJsZS1yaWdodCBheC10ZXh0LXhsXCI+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhEYXRhUGFnZXJDaGlsZCxcbiAgICAgIHVzZUV4aXN0aW5nOiBBWERhdGFQYWdlck51bWVyaWNTZWxlY3RvckNvbXBvbmVudCxcbiAgICB9LFxuICAgIEFYVW5zdWJzY3JpYmVyLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGFQYWdlck51bWVyaWNTZWxlY3RvckNvbXBvbmVudCBleHRlbmRzIEFYRGF0YVBhZ2VyQ2hpbGQge1xuICBfaXRlbXM6IEFYQnV0dG9uSXRlbVtdID0gW107XG4gIF9jdXJyZW50UGFnZSA9IDE7XG4gIF9sYXN0UGFnZSA9IDE7XG4gIF9sb2FkaW5nID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9kaXNwbGF5Q291bnQgPSA1O1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFwcGx5UGFyZW50KCk6IHZvaWQge1xuICAgIHRoaXMuX2N1cnJlbnRQYWdlID0gdGhpcy5fcGFyZW50LmRpc3BsYXlJbmZvLnBhZ2U7XG4gICAgdGhpcy5fbG9hZGluZyA9IHRoaXMuX3BhcmVudC5pc0xvYWRpbmc7XG4gICAgdGhpcy5fbGFzdFBhZ2UgPSB0aGlzLl9wYXJlbnQuZGlzcGxheUluZm8udG90YWxQYWdlcztcbiAgICAvL1xuICAgIHRoaXMuX2l0ZW1zID0gW107XG5cbiAgICBjb25zdCBzdGFydCA9IE1hdGgubWF4KFxuICAgICAgMCxcbiAgICAgIChNYXRoLmNlaWwodGhpcy5fY3VycmVudFBhZ2UgLyB0aGlzLl9kaXNwbGF5Q291bnQpIC0gMSkgKiB0aGlzLl9kaXNwbGF5Q291bnQgKyAxLFxuICAgICk7XG4gICAgY29uc3QgZW5kID0gTWF0aC5taW4oc3RhcnQgKyB0aGlzLl9kaXNwbGF5Q291bnQgLSAxLCB0aGlzLl9sYXN0UGFnZSk7XG4gICAgLy9cbiAgICBpZiAoc3RhcnQgPiB0aGlzLl9kaXNwbGF5Q291bnQpIHtcbiAgICAgIHRoaXMuX2l0ZW1zLnB1c2goe1xuICAgICAgICBpY29uQ2xhc3M6ICdheC1pY29uLWNoZXZyb24tbGVmdCcsXG4gICAgICAgIGRhdGE6IHN0YXJ0IC0gMSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICAvL1xuICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8PSBlbmQ7IGkrKykge1xuICAgICAgdGhpcy5faXRlbXMucHVzaCh7XG4gICAgICAgIHRleHQ6IGkudG9TdHJpbmcoKSxcbiAgICAgICAgZGF0YTogaSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoZW5kIDwgdGhpcy5fbGFzdFBhZ2UpIHtcbiAgICAgIHRoaXMuX2l0ZW1zLnB1c2goe1xuICAgICAgICBpY29uQ2xhc3M6ICdheC1pY29uLWNoZXZyb24tcmlnaHQnLFxuICAgICAgICBkYXRhOiBlbmQgKyAxLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgX2hhbmRsZU9uSXRlbUNsaWNrKGU6IGFueSkge1xuICAgIGlmICh0aGlzLl9wYXJlbnQucmVhZG9ubHkgfHwgdGhpcy5fcGFyZW50LmRpc2FibGVkKSByZXR1cm47XG4gICAgdGhpcy5fcGFyZW50LmdvVG9QYWdlKE51bWJlcihlLmRhdGEpKTtcbiAgfVxufVxuIl19
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wYWdlci1udW1lcmljLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLXBhZ2VyL3NyYy9saWIvZGF0YS1wYWdlci1udW1lcmljLXNlbGVjdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBRS9EOzs7O0dBSUc7QUFtREgsTUFBTSxPQUFPLG1DQUFvQyxTQUFRLGdCQUFnQjtJQWxEekU7O1FBbURFLFdBQU0sR0FBbUIsRUFBRSxDQUFDO1FBQzVCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCOztXQUVHO1FBQ0ssa0JBQWEsR0FBRyxDQUFDLENBQUM7S0ErQzNCO0lBN0NDOztPQUVHO0lBQ2dCLFdBQVc7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUNyRCxFQUFFO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDcEIsQ0FBQyxFQUNELENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FDakYsQ0FBQztRQUNGLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRSxFQUFFO1FBQ0YsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNmLFNBQVMsRUFBRSxzQkFBc0I7Z0JBQ2pDLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQzthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsRUFBRTtRQUNGLEtBQUssSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDZixJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtnQkFDbEIsSUFBSSxFQUFFLENBQUM7YUFDUixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNmLFNBQVMsRUFBRSx1QkFBdUI7Z0JBQ2xDLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQzthQUNkLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQixDQUFDLENBQU07UUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDOzhHQXZEVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyx5REFSbkM7WUFDVDtnQkFDRSxPQUFPLEVBQUUsZ0JBQWdCO2dCQUN6QixXQUFXLEVBQUUsbUNBQW1DO2FBQ2pEO1lBQ0QsY0FBYztTQUNmLGlEQTlDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFDVDs7MkZBV1UsbUNBQW1DO2tCQWxEL0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0NBQWdDO29CQUMxQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ1Q7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsV0FBVyxxQ0FBcUM7eUJBQ2pEO3dCQUNELGNBQWM7cUJBQ2Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbkl0ZW0gfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWERhdGFQYWdlckNoaWxkIH0gZnJvbSAnLi9kYXRhLXBhZ2VyLWJhc2UuY29tcG9uZW50JztcblxuLyoqXG4gKiBDb21wb25lbnQgdGhhdCBwcm92aWRlcyBudW1lcmljIHBhZ2Ugc2VsZWN0aW9uIGNvbnRyb2xzIGZvciBhIGRhdGEgcGFnZXIuXG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtZGF0YS1wYWdlci1udW1lcmljLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXgtYnV0dG9uXG4gICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgIFtkaXNhYmxlZF09XCJfY3VycmVudFBhZ2UgPT09IDEgfHwgX3BhcmVudC5kaXNhYmxlZFwiXG4gICAgICBsb29rPVwiYmxhbmtcIlxuICAgICAgKG9uQ2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKHsgZGF0YTogMSB9KVwiXG4gICAgPlxuICAgICAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hldnJvbi1kb3VibGUtbGVmdFwiPjwvYXgtaWNvbj5cbiAgICA8L2F4LWJ1dHRvbj5cblxuICAgIEBpZiAoIV9wYXJlbnQuaXNMb2FkaW5nKSB7XG4gICAgICBAZm9yIChpdGVtIG9mIF9pdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX3BhcmVudC5kaXNhYmxlZFwiXG4gICAgICAgICAgW2NvbG9yXT1cIl9jdXJyZW50UGFnZSA9PT0gaXRlbS5kYXRhID8gJ3ByaW1hcnknIDogJ2dob3N0J1wiXG4gICAgICAgICAgW2xvb2tdPVwiX2N1cnJlbnRQYWdlID09PSBpdGVtLmRhdGEgPyAnc29saWQnIDogJ2JsYW5rJ1wiXG4gICAgICAgICAgW3RleHRdPVwiaXRlbS50ZXh0XCJcbiAgICAgICAgICAob25DbGljayk9XCJfaGFuZGxlT25JdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgICAgQGlmIChpdGVtLmljb25DbGFzcykge1xuICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uXCIgW25nQ2xhc3NdPVwiaXRlbS5pY29uQ2xhc3NcIj48L2F4LWljb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxheC1za2VsZXRvbj48L2F4LXNrZWxldG9uPlxuICAgIH1cblxuICAgIDxheC1idXR0b25cbiAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgW2Rpc2FibGVkXT1cIl9jdXJyZW50UGFnZSA9PT0gX2xhc3RQYWdlIHx8IF9wYXJlbnQuZGlzYWJsZWRcIlxuICAgICAgbG9vaz1cImJsYW5rXCJcbiAgICAgIChvbkNsaWNrKT1cIl9oYW5kbGVPbkl0ZW1DbGljayh7IGRhdGE6IF9sYXN0UGFnZSB9KVwiXG4gICAgPlxuICAgICAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hldnJvbi1kb3VibGUtcmlnaHRcIj48L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWERhdGFQYWdlckNoaWxkLFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYRGF0YVBhZ2VyTnVtZXJpY1NlbGVjdG9yQ29tcG9uZW50LFxuICAgIH0sXG4gICAgQVhVbnN1YnNjcmliZXIsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYRGF0YVBhZ2VyTnVtZXJpY1NlbGVjdG9yQ29tcG9uZW50IGV4dGVuZHMgQVhEYXRhUGFnZXJDaGlsZCB7XG4gIF9pdGVtczogQVhCdXR0b25JdGVtW10gPSBbXTtcbiAgX2N1cnJlbnRQYWdlID0gMTtcbiAgX2xhc3RQYWdlID0gMTtcbiAgX2xvYWRpbmcgPSBmYWxzZTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX2Rpc3BsYXlDb3VudCA9IDU7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXBwbHlQYXJlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5fY3VycmVudFBhZ2UgPSB0aGlzLl9wYXJlbnQuZGlzcGxheUluZm8ucGFnZTtcbiAgICB0aGlzLl9sb2FkaW5nID0gdGhpcy5fcGFyZW50LmlzTG9hZGluZztcbiAgICB0aGlzLl9sYXN0UGFnZSA9IHRoaXMuX3BhcmVudC5kaXNwbGF5SW5mby50b3RhbFBhZ2VzO1xuICAgIC8vXG4gICAgdGhpcy5faXRlbXMgPSBbXTtcblxuICAgIGNvbnN0IHN0YXJ0ID0gTWF0aC5tYXgoXG4gICAgICAwLFxuICAgICAgKE1hdGguY2VpbCh0aGlzLl9jdXJyZW50UGFnZSAvIHRoaXMuX2Rpc3BsYXlDb3VudCkgLSAxKSAqIHRoaXMuX2Rpc3BsYXlDb3VudCArIDEsXG4gICAgKTtcbiAgICBjb25zdCBlbmQgPSBNYXRoLm1pbihzdGFydCArIHRoaXMuX2Rpc3BsYXlDb3VudCAtIDEsIHRoaXMuX2xhc3RQYWdlKTtcbiAgICAvL1xuICAgIGlmIChzdGFydCA+IHRoaXMuX2Rpc3BsYXlDb3VudCkge1xuICAgICAgdGhpcy5faXRlbXMucHVzaCh7XG4gICAgICAgIGljb25DbGFzczogJ2F4LWljb24tY2hldnJvbi1sZWZ0JyxcbiAgICAgICAgZGF0YTogc3RhcnQgLSAxLFxuICAgICAgfSk7XG4gICAgfVxuICAgIC8vXG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDw9IGVuZDsgaSsrKSB7XG4gICAgICB0aGlzLl9pdGVtcy5wdXNoKHtcbiAgICAgICAgdGV4dDogaS50b1N0cmluZygpLFxuICAgICAgICBkYXRhOiBpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChlbmQgPCB0aGlzLl9sYXN0UGFnZSkge1xuICAgICAgdGhpcy5faXRlbXMucHVzaCh7XG4gICAgICAgIGljb25DbGFzczogJ2F4LWljb24tY2hldnJvbi1yaWdodCcsXG4gICAgICAgIGRhdGE6IGVuZCArIDEsXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBfaGFuZGxlT25JdGVtQ2xpY2soZTogYW55KSB7XG4gICAgaWYgKHRoaXMuX3BhcmVudC5yZWFkb25seSB8fCB0aGlzLl9wYXJlbnQuZGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLl9wYXJlbnQuZ29Ub1BhZ2UoTnVtYmVyKGUuZGF0YSkpO1xuICB9XG59XG4iXX0=