@worktile/theia 17.0.1 → 17.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/components/contextmenu/contextmenu.component.d.ts +3 -2
  2. package/esm2022/components/contextmenu/contextmenu.component.mjs +6 -5
  3. package/esm2022/components/element/element.component.mjs +4 -6
  4. package/esm2022/components/text/text.component.mjs +3 -3
  5. package/esm2022/components/toolbar/toolbar.component.mjs +1 -4
  6. package/esm2022/core/with-theia.mjs +2 -1
  7. package/esm2022/editor.component.mjs +8 -23
  8. package/esm2022/interfaces/editor.mjs +1 -1
  9. package/esm2022/plugins/align/align.plugin.mjs +3 -3
  10. package/esm2022/plugins/autoformat/autoformat.plugin.mjs +3 -3
  11. package/esm2022/plugins/autoformat/transforms/auto-format-block.mjs +3 -3
  12. package/esm2022/plugins/blockquote/blockquote.component.mjs +4 -6
  13. package/esm2022/plugins/blockquote/blockquote.plugin.mjs +4 -4
  14. package/esm2022/plugins/code/code.component.mjs +11 -10
  15. package/esm2022/plugins/code/code.editor.mjs +3 -3
  16. package/esm2022/plugins/common/block-card.plugin.mjs +41 -8
  17. package/esm2022/plugins/common/move-selection.plugin.mjs +6 -4
  18. package/esm2022/plugins/common/remove-empty.plugin.mjs +9 -8
  19. package/esm2022/plugins/common/remove-void.plugin.mjs +7 -4
  20. package/esm2022/plugins/hr/hr.component.mjs +6 -6
  21. package/esm2022/plugins/image/image.component.mjs +10 -10
  22. package/esm2022/plugins/image/image.plugin.mjs +19 -2
  23. package/esm2022/plugins/index.mjs +1 -3
  24. package/esm2022/plugins/inline-code/inline-code.component.mjs +6 -6
  25. package/esm2022/plugins/link/link.component.mjs +17 -14
  26. package/esm2022/plugins/list/components/bulleted-list.component.mjs +4 -6
  27. package/esm2022/plugins/list/components/list-item.component.mjs +4 -6
  28. package/esm2022/plugins/list/components/numbered-list.component.mjs +4 -6
  29. package/esm2022/plugins/list/list.editor.mjs +5 -3
  30. package/esm2022/plugins/list/list.plugin.mjs +4 -4
  31. package/esm2022/plugins/normalizers/insert-paragraph-nodes.mjs +1 -1
  32. package/esm2022/plugins/normalizers/trailing-node.plugin.mjs +3 -3
  33. package/esm2022/plugins/soft-break/soft-break.plugin.mjs +1 -1
  34. package/esm2022/plugins/table/components/insert-mark/insert-mark.component.mjs +9 -8
  35. package/esm2022/plugins/table/components/row/row.component.mjs +52 -30
  36. package/esm2022/plugins/table/components/table.component.mjs +320 -297
  37. package/esm2022/plugins/table/components/td/td.component.mjs +46 -46
  38. package/esm2022/plugins/table/components/toolbar/table-options.component.mjs +3 -4
  39. package/esm2022/plugins/table/table.editor.mjs +17 -13
  40. package/esm2022/plugins/table/table.pipe.mjs +32 -19
  41. package/esm2022/plugins/table/table.plugin.mjs +5 -5
  42. package/esm2022/plugins/table/table.service.mjs +10 -35
  43. package/esm2022/plugins/table/table.store.mjs +28 -27
  44. package/esm2022/plugins/table/table.types.mjs +2 -1
  45. package/esm2022/plugins/table/utils/calculate-table.mjs +17 -10
  46. package/esm2022/plugins/table/utils/cell-position.mjs +1 -4
  47. package/esm2022/plugins/table/utils/get-grid-columns.mjs +11 -54
  48. package/esm2022/plugins/table/utils/is-header-row.mjs +3 -2
  49. package/esm2022/plugins/table/utils/is-legal-table.mjs +11 -1
  50. package/esm2022/plugins/table/utils/merge-cell.mjs +21 -19
  51. package/esm2022/plugins/table/utils/remove-row-column.mjs +3 -4
  52. package/esm2022/plugins/table/utils/table-position.mjs +11 -1
  53. package/esm2022/plugins/todo-item/todo-item.component.mjs +17 -15
  54. package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +1 -2
  55. package/esm2022/plugins/vertical-align/vertical-align.editor.mjs +2 -2
  56. package/esm2022/queries/anchor-block-entry.mjs +3 -3
  57. package/esm2022/queries/anchor-inline-entry.mjs +3 -3
  58. package/esm2022/queries/find-descendant.mjs +3 -3
  59. package/esm2022/queries/find-node.mjs +3 -3
  60. package/esm2022/queries/get-anchor-block-entry.mjs +3 -3
  61. package/esm2022/queries/get-block-above.mjs +3 -3
  62. package/esm2022/queries/get-insert-elements-path.mjs +5 -3
  63. package/esm2022/queries/index.mjs +4 -2
  64. package/esm2022/queries/is-root-path.mjs +2 -0
  65. package/esm2022/services/context.service.mjs +10 -6
  66. package/esm2022/services/table-contextmenu.service.mjs +8 -1
  67. package/esm2022/transforms/handle-continual-insert-break.mjs +3 -3
  68. package/esm2022/transforms/move-children.mjs +3 -3
  69. package/esm2022/utils/fragment.mjs +11 -3
  70. package/esm2022/utils/insert-data-by-invalid-type.mjs +14 -6
  71. package/esm2022/utils/match.mjs +3 -3
  72. package/fesm2022/worktile-theia.mjs +844 -761
  73. package/fesm2022/worktile-theia.mjs.map +1 -1
  74. package/interfaces/editor.d.ts +16 -5
  75. package/package.json +3 -3
  76. package/plugins/code/code.component.d.ts +2 -3
  77. package/plugins/image/image.component.d.ts +3 -4
  78. package/plugins/image/image.component.scss +2 -2
  79. package/plugins/link/link.component.d.ts +4 -3
  80. package/plugins/normalizers/insert-paragraph-nodes.d.ts +1 -2
  81. package/plugins/normalizers/trailing-node.plugin.d.ts +1 -2
  82. package/plugins/soft-break/soft-break.plugin.d.ts +1 -2
  83. package/plugins/table/components/insert-mark/insert-mark.component.d.ts +1 -0
  84. package/plugins/table/components/row/row.component.d.ts +11 -6
  85. package/plugins/table/components/table.component.d.ts +28 -15
  86. package/plugins/table/components/table.component.scss +37 -24
  87. package/plugins/table/components/td/td.component.d.ts +4 -7
  88. package/plugins/table/table.editor.d.ts +2 -2
  89. package/plugins/table/table.pipe.d.ts +8 -3
  90. package/plugins/table/table.service.d.ts +0 -2
  91. package/plugins/table/table.store.d.ts +10 -11
  92. package/plugins/table/table.types.d.ts +1 -0
  93. package/plugins/table/utils/calculate-table.d.ts +1 -0
  94. package/plugins/table/utils/get-grid-columns.d.ts +3 -22
  95. package/plugins/table/utils/is-header-row.d.ts +1 -1
  96. package/plugins/table/utils/is-legal-table.d.ts +2 -0
  97. package/plugins/table/utils/table-position.d.ts +3 -1
  98. package/plugins/todo-item/todo-item.component.d.ts +3 -3
  99. package/plugins/vertical-align/toolbar-item.component.d.ts +0 -1
  100. package/plugins/vertical-align/vertical-align.scss +11 -0
  101. package/queries/index.d.ts +2 -1
  102. package/queries/is-range-across-blocks.d.ts +1 -1
  103. package/queries/is-root-path.d.ts +2 -0
  104. package/transforms/index.d.ts +1 -1
  105. package/utils/insert-data-by-invalid-type.d.ts +2 -1
  106. package/esm2022/plugins/common/transforms.plugin.mjs +0 -18
  107. package/plugins/common/transforms.plugin.d.ts +0 -8
@@ -1,9 +1,10 @@
1
- import { ElementRef, OnInit } from '@angular/core';
1
+ import { ChangeDetectorRef, ElementRef, OnInit } from '@angular/core';
2
2
  import { ThyPopoverRef } from 'ngx-tethys/popover';
3
3
  import { MenuEntity } from '../../plugins/table/table.types';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class TheContextMenu implements OnInit {
6
6
  elementRef: ElementRef;
7
+ cdr: ChangeDetectorRef;
7
8
  private thyPopoverRef;
8
9
  menuEntities: MenuEntity[];
9
10
  actionHandle: (entity: MenuEntity) => void;
@@ -12,7 +13,7 @@ export declare class TheContextMenu implements OnInit {
12
13
  wrap: boolean;
13
14
  handleDocumentMouseDown(event: MouseEvent): void;
14
15
  handleMouseDown(event: MouseEvent): void;
15
- constructor(elementRef: ElementRef, thyPopoverRef: ThyPopoverRef<TheContextMenu>);
16
+ constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, thyPopoverRef: ThyPopoverRef<TheContextMenu>);
16
17
  ngOnInit(): void;
17
18
  itemMousedown(event: MouseEvent, entity: MenuEntity): void;
18
19
  itemMouseleave(event: MouseEvent, entity: MenuEntity): void;
@@ -6,7 +6,7 @@ import { ThyDropdownMenuDivider, ThyDropdownMenuItemDirective, ThyDropdownMenuIt
6
6
  import { ThyIcon } from 'ngx-tethys/icon';
7
7
  import { ThyInputNumber } from 'ngx-tethys/input-number';
8
8
  import { ThyEnterDirective, ThyStopPropagationDirective } from 'ngx-tethys/shared';
9
- import { isColorPanel } from '../../utils';
9
+ import { isColorPanel } from '../../utils/color-picker';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "ngx-tethys/popover";
12
12
  import * as i2 from "@angular/forms";
@@ -23,8 +23,9 @@ export class TheContextMenu {
23
23
  event.preventDefault();
24
24
  event.stopPropagation();
25
25
  }
26
- constructor(elementRef, thyPopoverRef) {
26
+ constructor(elementRef, cdr, thyPopoverRef) {
27
27
  this.elementRef = elementRef;
28
+ this.cdr = cdr;
28
29
  this.thyPopoverRef = thyPopoverRef;
29
30
  this.menuEntities = [];
30
31
  this.wrap = true;
@@ -56,7 +57,7 @@ export class TheContextMenu {
56
57
  item.backgroundColor = color;
57
58
  item.activeHandle(undefined, item);
58
59
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheContextMenu, deps: [{ token: i0.ElementRef }, { token: i1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheContextMenu, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
60
61
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheContextMenu, isStandalone: true, selector: "the-contextmenu", inputs: { menuEntities: "menuEntities", actionHandle: "actionHandle", activeHandle: "activeHandle", deactivateHandle: "deactivateHandle" }, host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)", "mousedown": "handleMouseDown($event)" }, properties: { "class.the-overlay-menu-wrap": "this.wrap" } }, ngImport: i0, template: "<div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menuItem of menuEntities\">\n <ng-container *ngIf=\"menuItem.visibility && !menuItem?.isInputNumber && menuItem.key !== 'background-color'\">\n <ng-template [ngTemplateOutlet]=\"defaultMenuTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"menuItem.visibility && menuItem.key === 'background-color'\">\n <ng-template [ngTemplateOutlet]=\"backgroundColorTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"menuItem.visibility && menuItem?.isInputNumber\">\n <ng-template [ngTemplateOutlet]=\"inputNumberMenuTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <thy-dropdown-menu-divider *ngIf=\"menuItem.divider && menuItem.visibility\"></thy-dropdown-menu-divider>\n </ng-container>\n</div>\n\n<ng-template #defaultMenuTemplate let-item>\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n (mousedown)=\"itemMousedown($event, item)\"\n (mouseenter)=\"itemMouseenter($event, item)\"\n (mouseleave)=\"itemMouseleave($event, item)\"\n >\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n <span *ngIf=\"item.extendIcon\" thyDropdownMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ item.extendIcon }}\"></thy-icon>\n </span>\n </a>\n</ng-template>\n\n<ng-template #backgroundColorTemplate let-item>\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n thyColorPicker\n thyTrigger=\"hover\"\n thyPlacement=\"rightTop\"\n [(ngModel)]=\"item.backgroundColor\"\n (ngModelChange)=\"changeColor($event, item)\"\n [thyHasBackdrop]=\"false\"\n >\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\" thyIconType=\"twotone\" [thyTwotoneColor]=\"item.backgroundColor\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n <span *ngIf=\"item.extendIcon\" thyDropdownMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ item.extendIcon }}\"></thy-icon>\n </span>\n </a>\n</ng-template>\n\n<ng-template #inputNumberMenuTemplate let-item>\n <a href=\"javascript:;\" class=\"the-input-number-menu\" thyDropdownMenuItem (click)=\"itemMousedown($event, item)\">\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName class=\"d-flex align-items-center\">\n {{ item.name }}\n <thy-input-number\n #inputNumber\n class=\"mx-2\"\n thySize=\"sm\"\n [(ngModel)]=\"item.count\"\n [thyStep]=\"1\"\n [thyMin]=\"1\"\n (click)=\"inputNumberFocus($event)\"\n (thyEnter)=\"itemEnterHandle($event, item)\"\n thyStopPropagation\n ></thy-input-number>\n {{ item.nameSuffix }}\n </span>\n </a>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyInputNumber, selector: "thy-input-number", inputs: ["thyAutoFocus", "thyPlaceholder", "thyDisabled", "thyMax", "thyMin", "thyStep", "thyStepDelay", "thySize", "thyPrecision", "thySuffix"], outputs: ["thyBlur", "thyFocus"] }, { kind: "component", type: ThyDropdownMenuDivider, selector: "thy-dropdown-menu-divider" }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "directive", type: ThyColorPickerDirective, selector: "[thyColorPicker]", inputs: ["thyOffset", "thyHasBackdrop", "thyDefaultColor", "thyTransparentColorSelectable", "thyPresetColors", "thyPlacement", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyDisabled"], outputs: ["thyPanelOpen", "thyPanelClose"] }, { kind: "directive", type: ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: ThyDropdownMenuItemExtendIconDirective, selector: "[thyDropdownMenuItemExtendIcon]" }] }); }
61
62
  }
62
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheContextMenu, decorators: [{
@@ -77,7 +78,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
77
78
  ThyDropdownMenuItemNameDirective,
78
79
  ThyDropdownMenuItemExtendIconDirective
79
80
  ], template: "<div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menuItem of menuEntities\">\n <ng-container *ngIf=\"menuItem.visibility && !menuItem?.isInputNumber && menuItem.key !== 'background-color'\">\n <ng-template [ngTemplateOutlet]=\"defaultMenuTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"menuItem.visibility && menuItem.key === 'background-color'\">\n <ng-template [ngTemplateOutlet]=\"backgroundColorTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"menuItem.visibility && menuItem?.isInputNumber\">\n <ng-template [ngTemplateOutlet]=\"inputNumberMenuTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <thy-dropdown-menu-divider *ngIf=\"menuItem.divider && menuItem.visibility\"></thy-dropdown-menu-divider>\n </ng-container>\n</div>\n\n<ng-template #defaultMenuTemplate let-item>\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n (mousedown)=\"itemMousedown($event, item)\"\n (mouseenter)=\"itemMouseenter($event, item)\"\n (mouseleave)=\"itemMouseleave($event, item)\"\n >\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n <span *ngIf=\"item.extendIcon\" thyDropdownMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ item.extendIcon }}\"></thy-icon>\n </span>\n </a>\n</ng-template>\n\n<ng-template #backgroundColorTemplate let-item>\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n thyColorPicker\n thyTrigger=\"hover\"\n thyPlacement=\"rightTop\"\n [(ngModel)]=\"item.backgroundColor\"\n (ngModelChange)=\"changeColor($event, item)\"\n [thyHasBackdrop]=\"false\"\n >\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\" thyIconType=\"twotone\" [thyTwotoneColor]=\"item.backgroundColor\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n <span *ngIf=\"item.extendIcon\" thyDropdownMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ item.extendIcon }}\"></thy-icon>\n </span>\n </a>\n</ng-template>\n\n<ng-template #inputNumberMenuTemplate let-item>\n <a href=\"javascript:;\" class=\"the-input-number-menu\" thyDropdownMenuItem (click)=\"itemMousedown($event, item)\">\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName class=\"d-flex align-items-center\">\n {{ item.name }}\n <thy-input-number\n #inputNumber\n class=\"mx-2\"\n thySize=\"sm\"\n [(ngModel)]=\"item.count\"\n [thyStep]=\"1\"\n [thyMin]=\"1\"\n (click)=\"inputNumberFocus($event)\"\n (thyEnter)=\"itemEnterHandle($event, item)\"\n thyStopPropagation\n ></thy-input-number>\n {{ item.nameSuffix }}\n </span>\n </a>\n</ng-template>\n" }]
80
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ThyPopoverRef }], propDecorators: { menuEntities: [{
81
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ThyPopoverRef }], propDecorators: { menuEntities: [{
81
82
  type: Input
82
83
  }], actionHandle: [{
83
84
  type: Input
@@ -95,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
95
96
  type: HostListener,
96
97
  args: ['mousedown', ['$event']]
97
98
  }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dG1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFjLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLDRCQUE0QixFQUM1QixzQ0FBc0MsRUFDdEMsZ0NBQWdDLEVBQ2hDLGdDQUFnQyxFQUNuQyxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQXVCM0MsTUFBTSxPQUFPLGNBQWM7SUFpQnZCLHVCQUF1QixDQUFDLEtBQWlCO1FBQ3JDLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFxQixDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxJ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LDZCQUE2QjtnQkFJMUMsdUJBQXVCO3NCQUR0QixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVcvQyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRoeUNvbG9yUGlja2VyRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9jb2xvci1waWNrZXInO1xuaW1wb3J0IHtcbiAgICBUaHlEcm9wZG93bk1lbnVEaXZpZGVyLFxuICAgIFRoeURyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUsXG4gICAgVGh5RHJvcGRvd25NZW51SXRlbUV4dGVuZEljb25EaXJlY3RpdmUsXG4gICAgVGh5RHJvcGRvd25NZW51SXRlbUljb25EaXJlY3RpdmUsXG4gICAgVGh5RHJvcGRvd25NZW51SXRlbU5hbWVEaXJlY3RpdmVcbn0gZnJvbSAnbmd4LXRldGh5cy9kcm9wZG93bic7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeUlucHV0TnVtYmVyIH0gZnJvbSAnbmd4LXRldGh5cy9pbnB1dC1udW1iZXInO1xuaW1wb3J0IHsgVGh5UG9wb3ZlclJlZiB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyBUaHlFbnRlckRpcmVjdGl2ZSwgVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgTWVudUVudGl0eSB9IGZyb20gJy4uLy4uL3BsdWdpbnMvdGFibGUvdGFibGUudHlwZXMnO1xuaW1wb3J0IHsgaXNDb2xvclBhbmVsIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoZS1jb250ZXh0bWVudScsXG4gICAgdGVtcGxhdGVVcmw6ICdjb250ZXh0bWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgVGh5SWNvbixcbiAgICAgICAgVGh5SW5wdXROdW1iZXIsXG4gICAgICAgIFRoeURyb3Bkb3duTWVudURpdmlkZXIsXG4gICAgICAgIFRoeUVudGVyRGlyZWN0aXZlLFxuICAgICAgICBUaHlDb2xvclBpY2tlckRpcmVjdGl2ZSxcbiAgICAgICAgVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLFxuICAgICAgICBUaHlEcm9wZG93bk1lbnVJdGVtRGlyZWN0aXZlLFxuICAgICAgICBUaHlEcm9wZG93bk1lbnVJdGVtSWNvbkRpcmVjdGl2ZSxcbiAgICAgICAgVGh5RHJvcGRvd25NZW51SXRlbU5hbWVEaXJlY3RpdmUsXG4gICAgICAgIFRoeURyb3Bkb3duTWVudUl0ZW1FeHRlbmRJY29uRGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVDb250ZXh0TWVudSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBtZW51RW50aXRpZXM6IE1lbnVFbnRpdHlbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBhY3Rpb25IYW5kbGU6IChlbnRpdHk6IE1lbnVFbnRpdHkpID0+IHZvaWQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGFjdGl2ZUhhbmRsZTogKGV2ZW50OiBNb3VzZUV2ZW50LCBlbnRpdHk6IE1lbnVFbnRpdHkpID0+IHZvaWQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGRlYWN0aXZhdGVIYW5kbGU6IChldmVudDogTW91c2VFdmVudCwgZW50aXR5OiBNZW51RW50aXR5KSA9PiB2b2lkO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aGUtb3ZlcmxheS1tZW51LXdyYXAnKVxuICAgIHdyYXAgPSB0cnVlO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6IG1vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlRG9jdW1lbnRNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKGlzQ29sb3JQYW5lbChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmIGV2ZW50LmJ1dHRvbiAhPT0gMikge1xuICAgICAgICAgICAgdGhpcy50aHlQb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZU1vdXNlRG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgdGh5UG9wb3ZlclJlZjogVGh5UG9wb3ZlclJlZjxUaGVDb250ZXh0TWVudT5cbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHt9XG5cbiAgICBpdGVtTW91c2Vkb3duKGV2ZW50OiBNb3VzZUV2ZW50LCBlbnRpdHk6IE1lbnVFbnRpdHkpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5hY3Rpb25IYW5kbGUoZW50aXR5KTtcbiAgICAgICAgdGhpcy50aHlQb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgaXRlbU1vdXNlbGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQsIGVudGl0eTogTWVudUVudGl0eSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmRlYWN0aXZhdGVIYW5kbGUoZXZlbnQsIGVudGl0eSk7XG4gICAgfVxuXG4gICAgaXRlbU1vdXNlZW50ZXIoZXZlbnQ6IE1vdXNlRXZlbnQsIGVudGl0eTogTWVudUVudGl0eSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUhhbmRsZShldmVudCwgZW50aXR5KTtcbiAgICB9XG5cbiAgICBpbnB1dE51bWJlckZvY3VzKGU6IEV2ZW50KSB7XG4gICAgICAgIChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBpdGVtRW50ZXJIYW5kbGUoZTogTW91c2VFdmVudCwgZW50aXR5OiBNZW51RW50aXR5KSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5hY3Rpb25IYW5kbGUoZW50aXR5KTtcbiAgICAgICAgdGhpcy50aHlQb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgY2hhbmdlQ29sb3IoY29sb3I6IHN0cmluZywgaXRlbTogTWVudUVudGl0eSkge1xuICAgICAgICBpdGVtLmJhY2tncm91bmRDb2xvciA9IGNvbG9yO1xuICAgICAgICBpdGVtLmFjdGl2ZUhhbmRsZSh1bmRlZmluZWQsIGl0ZW0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktZHJvcGRvd24tbWVudVwiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZW51SXRlbSBvZiBtZW51RW50aXRpZXNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudUl0ZW0udmlzaWJpbGl0eSAmJiAhbWVudUl0ZW0/LmlzSW5wdXROdW1iZXIgJiYgbWVudUl0ZW0ua2V5ICE9PSAnYmFja2dyb3VuZC1jb2xvcidcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWZhdWx0TWVudVRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBtZW51SXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudUl0ZW0udmlzaWJpbGl0eSAmJiBtZW51SXRlbS5rZXkgPT09ICdiYWNrZ3JvdW5kLWNvbG9yJ1wiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJhY2tncm91bmRDb2xvclRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBtZW51SXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudUl0ZW0udmlzaWJpbGl0eSAmJiBtZW51SXRlbT8uaXNJbnB1dE51bWJlclwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0TnVtYmVyTWVudVRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBtZW51SXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8dGh5LWRyb3Bkb3duLW1lbnUtZGl2aWRlciAqbmdJZj1cIm1lbnVJdGVtLmRpdmlkZXIgJiYgbWVudUl0ZW0udmlzaWJpbGl0eVwiPjwvdGh5LWRyb3Bkb3duLW1lbnUtZGl2aWRlcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0TWVudVRlbXBsYXRlIGxldC1pdGVtPlxuICA8YVxuICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxuICAgIHRoeURyb3Bkb3duTWVudUl0ZW1cbiAgICAobW91c2Vkb3duKT1cIml0ZW1Nb3VzZWRvd24oJGV2ZW50LCBpdGVtKVwiXG4gICAgKG1vdXNlZW50ZXIpPVwiaXRlbU1vdXNlZW50ZXIoJGV2ZW50LCBpdGVtKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwiaXRlbU1vdXNlbGVhdmUoJGV2ZW50LCBpdGVtKVwiXG4gID5cbiAgICA8c3BhbiB0aHlEcm9wZG93bk1lbnVJdGVtSWNvbj5cbiAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiaXRlbS5pY29uXCI+PC90aHktaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gdGh5RHJvcGRvd25NZW51SXRlbU5hbWU+e3sgaXRlbS5uYW1lIH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5leHRlbmRJY29uXCIgdGh5RHJvcGRvd25NZW51SXRlbUV4dGVuZEljb24+XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJ7eyBpdGVtLmV4dGVuZEljb24gfX1cIj48L3RoeS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgPC9hPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNiYWNrZ3JvdW5kQ29sb3JUZW1wbGF0ZSBsZXQtaXRlbT5cbiAgPGFcbiAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICB0aHlEcm9wZG93bk1lbnVJdGVtXG4gICAgdGh5Q29sb3JQaWNrZXJcbiAgICB0aHlUcmlnZ2VyPVwiaG92ZXJcIlxuICAgIHRoeVBsYWNlbWVudD1cInJpZ2h0VG9wXCJcbiAgICBbKG5nTW9kZWwpXT1cIml0ZW0uYmFja2dyb3VuZENvbG9yXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VDb2xvcigkZXZlbnQsIGl0ZW0pXCJcbiAgICBbdGh5SGFzQmFja2Ryb3BdPVwiZmFsc2VcIlxuICA+XG4gICAgPHNwYW4gdGh5RHJvcGRvd25NZW51SXRlbUljb24+XG4gICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cIml0ZW0uaWNvblwiIHRoeUljb25UeXBlPVwidHdvdG9uZVwiIFt0aHlUd290b25lQ29sb3JdPVwiaXRlbS5iYWNrZ3JvdW5kQ29sb3JcIj48L3RoeS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiB0aHlEcm9wZG93bk1lbnVJdGVtTmFtZT57eyBpdGVtLm5hbWUgfX08L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCJpdGVtLmV4dGVuZEljb25cIiB0aHlEcm9wZG93bk1lbnVJdGVtRXh0ZW5kSWNvbj5cbiAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cInt7IGl0ZW0uZXh0ZW5kSWNvbiB9fVwiPjwvdGh5LWljb24+XG4gICAgPC9zcGFuPlxuICA8L2E+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0TnVtYmVyTWVudVRlbXBsYXRlIGxldC1pdGVtPlxuICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJ0aGUtaW5wdXQtbnVtYmVyLW1lbnVcIiB0aHlEcm9wZG93bk1lbnVJdGVtIChjbGljayk9XCJpdGVtTW91c2Vkb3duKCRldmVudCwgaXRlbSlcIj5cbiAgICA8c3BhbiB0aHlEcm9wZG93bk1lbnVJdGVtSWNvbj5cbiAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiaXRlbS5pY29uXCI+PC90aHktaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gdGh5RHJvcGRvd25NZW51SXRlbU5hbWUgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgIDx0aHktaW5wdXQtbnVtYmVyXG4gICAgICAgICNpbnB1dE51bWJlclxuICAgICAgICBjbGFzcz1cIm14LTJcIlxuICAgICAgICB0aHlTaXplPVwic21cIlxuICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW0uY291bnRcIlxuICAgICAgICBbdGh5U3RlcF09XCIxXCJcbiAgICAgICAgW3RoeU1pbl09XCIxXCJcbiAgICAgICAgKGNsaWNrKT1cImlucHV0TnVtYmVyRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICh0aHlFbnRlcik9XCJpdGVtRW50ZXJIYW5kbGUoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgIHRoeVN0b3BQcm9wYWdhdGlvblxuICAgICAgPjwvdGh5LWlucHV0LW51bWJlcj5cbiAgICAgIHt7IGl0ZW0ubmFtZVN1ZmZpeCB9fVxuICAgIDwvc3Bhbj5cbiAgPC9hPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dG1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUNILHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIsc0NBQXNDLEVBQ3RDLGdDQUFnQyxFQUNoQyxnQ0FBZ0MsRUFDbkMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQXVCeEQsTUFBTSxPQUFPLGNBQWM7SUFpQnZCLHVCQUF1QixDQUFDLEtBQWlCO1FBQ3JDLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFxQixDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FB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QWdCO3NCQURmLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxXQUFXO3VCQUFDLDZCQUE2QjtnQkFJMUMsdUJBQXVCO3NCQUR0QixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVcvQyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUaHlDb2xvclBpY2tlckRpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvY29sb3ItcGlja2VyJztcbmltcG9ydCB7XG4gICAgVGh5RHJvcGRvd25NZW51RGl2aWRlcixcbiAgICBUaHlEcm9wZG93bk1lbnVJdGVtRGlyZWN0aXZlLFxuICAgIFRoeURyb3Bkb3duTWVudUl0ZW1FeHRlbmRJY29uRGlyZWN0aXZlLFxuICAgIFRoeURyb3Bkb3duTWVudUl0ZW1JY29uRGlyZWN0aXZlLFxuICAgIFRoeURyb3Bkb3duTWVudUl0ZW1OYW1lRGlyZWN0aXZlXG59IGZyb20gJ25neC10ZXRoeXMvZHJvcGRvd24nO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlJbnB1dE51bWJlciB9IGZyb20gJ25neC10ZXRoeXMvaW5wdXQtbnVtYmVyJztcbmltcG9ydCB7IFRoeVBvcG92ZXJSZWYgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgVGh5RW50ZXJEaXJlY3RpdmUsIFRoeVN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IE1lbnVFbnRpdHkgfSBmcm9tICcuLi8uLi9wbHVnaW5zL3RhYmxlL3RhYmxlLnR5cGVzJztcbmltcG9ydCB7IGlzQ29sb3JQYW5lbCB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbG9yLXBpY2tlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGhlLWNvbnRleHRtZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2NvbnRleHRtZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE5nRm9yLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBUaHlJY29uLFxuICAgICAgICBUaHlJbnB1dE51bWJlcixcbiAgICAgICAgVGh5RHJvcGRvd25NZW51RGl2aWRlcixcbiAgICAgICAgVGh5RW50ZXJEaXJlY3RpdmUsXG4gICAgICAgIFRoeUNvbG9yUGlja2VyRGlyZWN0aXZlLFxuICAgICAgICBUaHlTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsXG4gICAgICAgIFRoeURyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUsXG4gICAgICAgIFRoeURyb3Bkb3duTWVudUl0ZW1JY29uRGlyZWN0aXZlLFxuICAgICAgICBUaHlEcm9wZG93bk1lbnVJdGVtTmFtZURpcmVjdGl2ZSxcbiAgICAgICAgVGh5RHJvcGRvd25NZW51SXRlbUV4dGVuZEljb25EaXJlY3RpdmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRoZUNvbnRleHRNZW51IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKVxuICAgIG1lbnVFbnRpdGllczogTWVudUVudGl0eVtdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIGFjdGlvbkhhbmRsZTogKGVudGl0eTogTWVudUVudGl0eSkgPT4gdm9pZDtcblxuICAgIEBJbnB1dCgpXG4gICAgYWN0aXZlSGFuZGxlOiAoZXZlbnQ6IE1vdXNlRXZlbnQsIGVudGl0eTogTWVudUVudGl0eSkgPT4gdm9pZDtcblxuICAgIEBJbnB1dCgpXG4gICAgZGVhY3RpdmF0ZUhhbmRsZTogKGV2ZW50OiBNb3VzZUV2ZW50LCBlbnRpdHk6IE1lbnVFbnRpdHkpID0+IHZvaWQ7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoZS1vdmVybGF5LW1lbnUtd3JhcCcpXG4gICAgd3JhcCA9IHRydWU7XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDogbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVEb2N1bWVudE1vdXNlRG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAoaXNDb2xvclBhbmVsKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiYgZXZlbnQuYnV0dG9uICE9PSAyKSB7XG4gICAgICAgICAgICB0aGlzLnRoeVBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgdGh5UG9wb3ZlclJlZjogVGh5UG9wb3ZlclJlZjxUaGVDb250ZXh0TWVudT5cbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHt9XG5cbiAgICBpdGVtTW91c2Vkb3duKGV2ZW50OiBNb3VzZUV2ZW50LCBlbnRpdHk6IE1lbnVFbnRpdHkpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5hY3Rpb25IYW5kbGUoZW50aXR5KTtcbiAgICAgICAgdGhpcy50aHlQb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgaXRlbU1vdXNlbGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQsIGVudGl0eTogTWVudUVudGl0eSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmRlYWN0aXZhdGVIYW5kbGUoZXZlbnQsIGVudGl0eSk7XG4gICAgfVxuXG4gICAgaXRlbU1vdXNlZW50ZXIoZXZlbnQ6IE1vdXNlRXZlbnQsIGVudGl0eTogTWVudUVudGl0eSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUhhbmRsZShldmVudCwgZW50aXR5KTtcbiAgICB9XG5cbiAgICBpbnB1dE51bWJlckZvY3VzKGU6IEV2ZW50KSB7XG4gICAgICAgIChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBpdGVtRW50ZXJIYW5kbGUoZTogTW91c2VFdmVudCwgZW50aXR5OiBNZW51RW50aXR5KSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5hY3Rpb25IYW5kbGUoZW50aXR5KTtcbiAgICAgICAgdGhpcy50aHlQb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgY2hhbmdlQ29sb3IoY29sb3I6IHN0cmluZywgaXRlbTogTWVudUVudGl0eSkge1xuICAgICAgICBpdGVtLmJhY2tncm91bmRDb2xvciA9IGNvbG9yO1xuICAgICAgICBpdGVtLmFjdGl2ZUhhbmRsZSh1bmRlZmluZWQsIGl0ZW0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktZHJvcGRvd24tbWVudVwiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZW51SXRlbSBvZiBtZW51RW50aXRpZXNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudUl0ZW0udmlzaWJpbGl0eSAmJiAhbWVudUl0ZW0/LmlzSW5wdXROdW1iZXIgJiYgbWVudUl0ZW0ua2V5ICE9PSAnYmFja2dyb3VuZC1jb2xvcidcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWZhdWx0TWVudVRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBtZW51SXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudUl0ZW0udmlzaWJpbGl0eSAmJiBtZW51SXRlbS5rZXkgPT09ICdiYWNrZ3JvdW5kLWNvbG9yJ1wiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJhY2tncm91bmRDb2xvclRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBtZW51SXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudUl0ZW0udmlzaWJpbGl0eSAmJiBtZW51SXRlbT8uaXNJbnB1dE51bWJlclwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0TnVtYmVyTWVudVRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBtZW51SXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8dGh5LWRyb3Bkb3duLW1lbnUtZGl2aWRlciAqbmdJZj1cIm1lbnVJdGVtLmRpdmlkZXIgJiYgbWVudUl0ZW0udmlzaWJpbGl0eVwiPjwvdGh5LWRyb3Bkb3duLW1lbnUtZGl2aWRlcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0TWVudVRlbXBsYXRlIGxldC1pdGVtPlxuICA8YVxuICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxuICAgIHRoeURyb3Bkb3duTWVudUl0ZW1cbiAgICAobW91c2Vkb3duKT1cIml0ZW1Nb3VzZWRvd24oJGV2ZW50LCBpdGVtKVwiXG4gICAgKG1vdXNlZW50ZXIpPVwiaXRlbU1vdXNlZW50ZXIoJGV2ZW50LCBpdGVtKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwiaXRlbU1vdXNlbGVhdmUoJGV2ZW50LCBpdGVtKVwiXG4gID5cbiAgICA8c3BhbiB0aHlEcm9wZG93bk1lbnVJdGVtSWNvbj5cbiAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiaXRlbS5pY29uXCI+PC90aHktaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gdGh5RHJvcGRvd25NZW51SXRlbU5hbWU+e3sgaXRlbS5uYW1lIH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5leHRlbmRJY29uXCIgdGh5RHJvcGRvd25NZW51SXRlbUV4dGVuZEljb24+XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJ7eyBpdGVtLmV4dGVuZEljb24gfX1cIj48L3RoeS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgPC9hPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNiYWNrZ3JvdW5kQ29sb3JUZW1wbGF0ZSBsZXQtaXRlbT5cbiAgPGFcbiAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICB0aHlEcm9wZG93bk1lbnVJdGVtXG4gICAgdGh5Q29sb3JQaWNrZXJcbiAgICB0aHlUcmlnZ2VyPVwiaG92ZXJcIlxuICAgIHRoeVBsYWNlbWVudD1cInJpZ2h0VG9wXCJcbiAgICBbKG5nTW9kZWwpXT1cIml0ZW0uYmFja2dyb3VuZENvbG9yXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VDb2xvcigkZXZlbnQsIGl0ZW0pXCJcbiAgICBbdGh5SGFzQmFja2Ryb3BdPVwiZmFsc2VcIlxuICA+XG4gICAgPHNwYW4gdGh5RHJvcGRvd25NZW51SXRlbUljb24+XG4gICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cIml0ZW0uaWNvblwiIHRoeUljb25UeXBlPVwidHdvdG9uZVwiIFt0aHlUd290b25lQ29sb3JdPVwiaXRlbS5iYWNrZ3JvdW5kQ29sb3JcIj48L3RoeS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiB0aHlEcm9wZG93bk1lbnVJdGVtTmFtZT57eyBpdGVtLm5hbWUgfX08L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCJpdGVtLmV4dGVuZEljb25cIiB0aHlEcm9wZG93bk1lbnVJdGVtRXh0ZW5kSWNvbj5cbiAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cInt7IGl0ZW0uZXh0ZW5kSWNvbiB9fVwiPjwvdGh5LWljb24+XG4gICAgPC9zcGFuPlxuICA8L2E+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0TnVtYmVyTWVudVRlbXBsYXRlIGxldC1pdGVtPlxuICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJ0aGUtaW5wdXQtbnVtYmVyLW1lbnVcIiB0aHlEcm9wZG93bk1lbnVJdGVtIChjbGljayk9XCJpdGVtTW91c2Vkb3duKCRldmVudCwgaXRlbSlcIj5cbiAgICA8c3BhbiB0aHlEcm9wZG93bk1lbnVJdGVtSWNvbj5cbiAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiaXRlbS5pY29uXCI+PC90aHktaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gdGh5RHJvcGRvd25NZW51SXRlbU5hbWUgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgIDx0aHktaW5wdXQtbnVtYmVyXG4gICAgICAgICNpbnB1dE51bWJlclxuICAgICAgICBjbGFzcz1cIm14LTJcIlxuICAgICAgICB0aHlTaXplPVwic21cIlxuICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW0uY291bnRcIlxuICAgICAgICBbdGh5U3RlcF09XCIxXCJcbiAgICAgICAgW3RoeU1pbl09XCIxXCJcbiAgICAgICAgKGNsaWNrKT1cImlucHV0TnVtYmVyRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICh0aHlFbnRlcik9XCJpdGVtRW50ZXJIYW5kbGUoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgIHRoeVN0b3BQcm9wYWdhdGlvblxuICAgICAgPjwvdGh5LWlucHV0LW51bWJlcj5cbiAgICAgIHt7IGl0ZW0ubmFtZVN1ZmZpeCB9fVxuICAgIDwvc3Bhbj5cbiAgPC9hPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,5 +1,4 @@
1
1
  import { ChangeDetectionStrategy, Component, HostBinding } from '@angular/core';
2
- import { SlateChildren } from 'slate-angular';
3
2
  import { TheBaseElement } from '../../interfaces';
4
3
  import * as i0 from "@angular/core";
5
4
  export class TheDefaultElement extends TheBaseElement {
@@ -7,19 +6,18 @@ export class TheDefaultElement extends TheBaseElement {
7
6
  return this.element?.indent;
8
7
  }
9
8
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheDefaultElement, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheDefaultElement, isStandalone: true, selector: "[theDefaultElement]", host: { properties: { "attr.the-indent": "this.indent" } }, usesInheritance: true, ngImport: i0, template: '<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>', isInline: true, dependencies: [{ kind: "component", type: SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheDefaultElement, isStandalone: true, selector: "[theDefaultElement]", host: { properties: { "attr.the-indent": "this.indent" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
10
  }
12
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheDefaultElement, decorators: [{
13
12
  type: Component,
14
13
  args: [{
15
14
  selector: '[theDefaultElement]',
16
- template: '<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>',
15
+ template: '',
17
16
  changeDetection: ChangeDetectionStrategy.OnPush,
18
- standalone: true,
19
- imports: [SlateChildren]
17
+ standalone: true
20
18
  }]
21
19
  }], propDecorators: { indent: [{
22
20
  type: HostBinding,
23
21
  args: ['attr.the-indent']
24
22
  }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy9lbGVtZW50L2VsZW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVNsRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsY0FBYztJQUNqRCxJQUNJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hDLENBQUM7OEdBSlEsaUJBQWlCO2tHQUFqQixpQkFBaUIsa0tBTGhCLGlIQUFpSCw0REFHakgsYUFBYTs7MkZBRWQsaUJBQWlCO2tCQVA3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxpSEFBaUg7b0JBQzNILGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUMzQjs4QkFHTyxNQUFNO3NCQURULFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNsYXRlQ2hpbGRyZW4gfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IFRoZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3RoZURlZmF1bHRFbGVtZW50XScsXG4gICAgdGVtcGxhdGU6ICc8c2xhdGUtY2hpbGRyZW4gW2NoaWxkcmVuXT1cImNoaWxkcmVuXCIgW2NvbnRleHRdPVwiY2hpbGRyZW5Db250ZXh0XCIgW3ZpZXdDb250ZXh0XT1cInZpZXdDb250ZXh0XCI+PC9zbGF0ZS1jaGlsZHJlbj4nLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1NsYXRlQ2hpbGRyZW5dXG59KVxuZXhwb3J0IGNsYXNzIFRoZURlZmF1bHRFbGVtZW50IGV4dGVuZHMgVGhlQmFzZUVsZW1lbnQge1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50aGUtaW5kZW50JylcbiAgICBnZXQgaW5kZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Py5pbmRlbnQ7XG4gICAgfVxufVxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy9lbGVtZW50L2VsZW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFRbEQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGNBQWM7SUFDakQsSUFDSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQyxDQUFDOzhHQUpRLGlCQUFpQjtrR0FBakIsaUJBQWlCLGtLQUpoQixFQUFFOzsyRkFJSCxpQkFBaUI7a0JBTjdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFHTyxNQUFNO3NCQURULFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3RoZURlZmF1bHRFbGVtZW50XScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGhlRGVmYXVsdEVsZW1lbnQgZXh0ZW5kcyBUaGVCYXNlRWxlbWVudCB7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRoZS1pbmRlbnQnKVxuICAgIGdldCBpbmRlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQ/LmluZGVudDtcbiAgICB9XG59XG4iXX0=
@@ -42,13 +42,13 @@ export class TheText extends BaseTextComponent {
42
42
  this.applyTextMark();
43
43
  }
44
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheText, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheText, isStandalone: true, selector: "span[theText]", host: { attributes: { "data-slate-node": "text" } }, usesInheritance: true, ngImport: i0, template: `<slate-leaves [context]="context" [viewContext]="viewContext"></slate-leaves>`, isInline: true, dependencies: [{ kind: "component", type: SlateLeaves, selector: "slate-leaves", inputs: ["context"] }] }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheText, isStandalone: true, selector: "span[theText]", host: { attributes: { "data-slate-node": "text" } }, usesInheritance: true, ngImport: i0, template: ``, isInline: true }); }
46
46
  }
47
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheText, decorators: [{
48
48
  type: Component,
49
49
  args: [{
50
50
  selector: 'span[theText]',
51
- template: `<slate-leaves [context]="context" [viewContext]="viewContext"></slate-leaves>`,
51
+ template: ``,
52
52
  host: {
53
53
  'data-slate-node': 'text'
54
54
  },
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
56
56
  imports: [SlateLeaves]
57
57
  }]
58
58
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy90ZXh0L3RleHQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFXNUMsTUFBTSxPQUFPLE9BQVEsU0FBUSxpQkFBaUI7SUFDMUMsWUFDVyxVQUFzQixFQUN0QixTQUFvQixFQUMzQixHQUFzQjtRQUV0QixLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBSmhCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQU0vQixhQUFRLEdBQUcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlELGVBQVUsR0FBRyxFQUFFLENBQUM7SUFIaEIsQ0FBQztJQUtELGFBQWE7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMzRyxNQUFNLElBQUksR0FBRyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3pFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFDTCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBILElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNoRyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNySCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDbEYsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDOzhHQTVDUSxPQUFPO2tHQUFQLE9BQU8scUpBUE4sK0VBQStFLDREQUsvRSxXQUFXOzsyRkFFWixPQUFPO2tCQVRuQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUUsK0VBQStFO29CQUN6RixJQUFJLEVBQUU7d0JBQ0YsaUJBQWlCLEVBQUUsTUFBTTtxQkFDNUI7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VUZXh0Q29tcG9uZW50LCBTbGF0ZUxlYXZlcyB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgTWFya1R5cGVzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzcGFuW3RoZVRleHRdJyxcbiAgICB0ZW1wbGF0ZTogYDxzbGF0ZS1sZWF2ZXMgW2NvbnRleHRdPVwiY29udGV4dFwiIFt2aWV3Q29udGV4dF09XCJ2aWV3Q29udGV4dFwiPjwvc2xhdGUtbGVhdmVzPmAsXG4gICAgaG9zdDoge1xuICAgICAgICAnZGF0YS1zbGF0ZS1ub2RlJzogJ3RleHQnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtTbGF0ZUxlYXZlc11cbn0pXG5leHBvcnQgY2xhc3MgVGhlVGV4dCBleHRlbmRzIEJhc2VUZXh0Q29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHB1YmxpYyByZW5kZXJlcjI6IFJlbmRlcmVyMixcbiAgICAgICAgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xuICAgIH1cblxuICAgIGV4Y2x1ZGVzID0gWydjb2xvcicsICdmb250LXNpemUnLCAnYmFja2dyb3VuZC1jb2xvcicsICd0ZXh0J107XG4gICAgYXR0cmlidXRlcyA9IFtdO1xuXG4gICAgYXBwbHlUZXh0TWFyaygpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzLmZvckVhY2goYXR0ciA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyMi5yZW1vdmVBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGF0dHIpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzID0gW107XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMudGV4dCkge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLnRleHQsIGtleSkgJiYgIXRoaXMuZXhjbHVkZXMuaW5jbHVkZXMoa2V5KSAmJiAhIXRoaXMudGV4dFtrZXldKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXR0ciA9IGB0aGUtJHtrZXl9YDtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyMi5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGF0dHIsICd0cnVlJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzLnB1c2goYXR0cik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb250U2l6ZSA9IHRoaXMudGV4dFtNYXJrVHlwZXMuZm9udFNpemVdO1xuICAgICAgICB0aGlzLnJlbmRlcmVyMi5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGB0aGUtJHtNYXJrVHlwZXMuZm9udFNpemV9YCwgZm9udFNpemUgPyBmb250U2l6ZSA6IG51bGwpO1xuXG4gICAgICAgIGlmICh0aGlzLnRleHRbTWFya1R5cGVzLmNvbG9yXSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjb2xvcicsIHRoaXMudGV4dFtNYXJrVHlwZXMuY29sb3JdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIyLnJlbW92ZVN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY29sb3InKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRleHRbTWFya1R5cGVzLmJhY2tncm91bmRDb2xvcl0pIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnYmFja2dyb3VuZC1jb2xvcicsIHRoaXMudGV4dFtNYXJrVHlwZXMuYmFja2dyb3VuZENvbG9yXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyMi5yZW1vdmVTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2JhY2tncm91bmQtY29sb3InKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgc3VwZXIub25Db250ZXh0Q2hhbmdlKCk7XG4gICAgICAgIHRoaXMuYXBwbHlUZXh0TWFyaygpO1xuICAgIH1cbn1cbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy90ZXh0L3RleHQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFXNUMsTUFBTSxPQUFPLE9BQVEsU0FBUSxpQkFBaUI7SUFDMUMsWUFDVyxVQUFzQixFQUN0QixTQUFvQixFQUMzQixHQUFzQjtRQUV0QixLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBSmhCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQU0vQixhQUFRLEdBQUcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlELGVBQVUsR0FBRyxFQUFFLENBQUM7SUFIaEIsQ0FBQztJQUtELGFBQWE7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMzRyxNQUFNLElBQUksR0FBRyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3pFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFDTCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBILElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNoRyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNySCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDbEYsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDOzhHQTVDUSxPQUFPO2tHQUFQLE9BQU8scUpBUE4sRUFBRTs7MkZBT0gsT0FBTztrQkFUbkIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osSUFBSSxFQUFFO3dCQUNGLGlCQUFpQixFQUFFLE1BQU07cUJBQzVCO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUM7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlVGV4dENvbXBvbmVudCwgU2xhdGVMZWF2ZXMgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IE1hcmtUeXBlcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc3Bhblt0aGVUZXh0XScsXG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2RhdGEtc2xhdGUtbm9kZSc6ICd0ZXh0J1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbU2xhdGVMZWF2ZXNdXG59KVxuZXhwb3J0IGNsYXNzIFRoZVRleHQgZXh0ZW5kcyBCYXNlVGV4dENvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwdWJsaWMgcmVuZGVyZXIyOiBSZW5kZXJlcjIsXG4gICAgICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcbiAgICB9XG5cbiAgICBleGNsdWRlcyA9IFsnY29sb3InLCAnZm9udC1zaXplJywgJ2JhY2tncm91bmQtY29sb3InLCAndGV4dCddO1xuICAgIGF0dHJpYnV0ZXMgPSBbXTtcblxuICAgIGFwcGx5VGV4dE1hcmsoKSB7XG4gICAgICAgIHRoaXMuYXR0cmlidXRlcy5mb3JFYWNoKGF0dHIgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlcjIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBhdHRyKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXR0cmlidXRlcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLnRleHQpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy50ZXh0LCBrZXkpICYmICF0aGlzLmV4Y2x1ZGVzLmluY2x1ZGVzKGtleSkgJiYgISF0aGlzLnRleHRba2V5XSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dHIgPSBgdGhlLSR7a2V5fWA7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBhdHRyLCAndHJ1ZScpO1xuICAgICAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlcy5wdXNoKGF0dHIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZm9udFNpemUgPSB0aGlzLnRleHRbTWFya1R5cGVzLmZvbnRTaXplXTtcbiAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgdGhlLSR7TWFya1R5cGVzLmZvbnRTaXplfWAsIGZvbnRTaXplID8gZm9udFNpemUgOiBudWxsKTtcblxuICAgICAgICBpZiAodGhpcy50ZXh0W01hcmtUeXBlcy5jb2xvcl0pIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY29sb3InLCB0aGlzLnRleHRbTWFya1R5cGVzLmNvbG9yXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyMi5yZW1vdmVTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NvbG9yJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50ZXh0W01hcmtUeXBlcy5iYWNrZ3JvdW5kQ29sb3JdKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2JhY2tncm91bmQtY29sb3InLCB0aGlzLnRleHRbTWFya1R5cGVzLmJhY2tncm91bmRDb2xvcl0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlcjIucmVtb3ZlU3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdiYWNrZ3JvdW5kLWNvbG9yJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2UoKSB7XG4gICAgICAgIHN1cGVyLm9uQ29udGV4dENoYW5nZSgpO1xuICAgICAgICB0aGlzLmFwcGx5VGV4dE1hcmsoKTtcbiAgICB9XG59XG4iXX0=
@@ -177,9 +177,6 @@ export class TheToolbarComponent {
177
177
  itemWidth = splitWidth;
178
178
  }
179
179
  itemWidth += paddingRight;
180
- if (item?.key === ToolbarActionTypes.verticalAlign) {
181
- itemWidth = this.isTableActive() ? itemWidth : 0;
182
- }
183
180
  return itemWidth;
184
181
  }
185
182
  /**
@@ -267,4 +264,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
267
264
  type: HostBinding,
268
265
  args: ['style.justifyContent']
269
266
  }] } });
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBRUgsU0FBUyxFQUdULFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQU9MLFNBQVMsRUFDVCxnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRXhDLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekgsT0FBTyxFQUFpQyxlQUFlLEVBQTZCLE1BQU0sMEJBQTBCLENBQUM7QUFDckgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQVd4RSxNQUFNLE9BQU8sbUJBQW1CO0lBZTVCLElBQXlDLGNBQWM7UUFDbkQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFZRCxZQUNZLEdBQXNCLEVBQ3RCLFVBQXNCLEVBQ3RCLE1BQWMsRUFDZ0IsWUFBNEM7UUFIMUUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixXQUFNLEdB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d0tBR0EsNENEZ0NjLElBQUksNkZBQUUsZ0JBQWdCOzsyRkFFdkIsbUJBQW1CO2tCQVQvQixTQUFTOytCQUNJLGFBQWEsUUFFakI7d0JBQ0YsS0FBSyxFQUFFLGlEQUFpRDtxQkFDM0QsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUM7OzBCQW1DNUIsTUFBTTsyQkFBQyxvQkFBb0I7eUNBaEN2QixNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFbUUsZ0JBQWdCO3NCQUF4RixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRTlCLGNBQWM7c0JBQXRELFdBQVc7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlEaXZpZGVyIH0gZnJvbSAnbmd4LXRldGh5cy9kaXZpZGVyJztcbmltcG9ydCB7IEVkaXRvciwgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IERyb3Bkb3duTW9kZSwgRWxlbWVudEtpbmRzLCBUaGVUb29sYmFyR3JvdXBUb2tlbiwgVG9vbGJhckFjdGlvblR5cGVzLCBUb29sYmFyTW9yZUdyb3VwIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRoZUJhc2VUb29sYmFyRHJvcGRvd24sIFRoZUJhc2VUb29sYmFySXRlbSB9IGZyb20gJy4uLy4uL2NvcmUvdG9vbGJhci1pdGVtL2Jhc2UtdG9vbGJhci1pdGVtJztcbmltcG9ydCB7IFRvb2xiYXJBbGlnbm1lbnQsIFRvb2xiYXJJdGVtLCBUb29sYmFySXRlbVR5cGUsIFRvb2xiYXJJdGVtc0NvbXBvc2VSZXR1cm4gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3Rvb2xiYXInO1xuaW1wb3J0IHsgVGhlVG9vbGJhckRyb3Bkb3duIH0gZnJvbSAnLi4vdG9vbGJhci1kcm9wZG93bi90b29sYmFyLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUb29sYmFyR3JvdXAgfSBmcm9tICcuLi90b29sYmFyLWdyb3VwL3Rvb2xiYXItZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRvb2xiYXJJdGVtIH0gZnJvbSAnLi4vdG9vbGJhci1pdGVtL3Rvb2xiYXItaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoZS10b29sYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aGUtdG9vbGJhci1jb250YWluZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlcidcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRoZVRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBlZGl0b3I6IEVkaXRvcjtcblxuICAgIEBJbnB1dCgpIHRvb2xiYXJJdGVtczogVG9vbGJhckl0ZW1bXSA9IFtdO1xuXG4gICAgQElucHV0KCkgYWxpZ246IFRvb2xiYXJBbGlnbm1lbnQ7XG5cbiAgICBASW5wdXQoKSBjb250YWluZXJDbGFzczogc3RyaW5nW10gPSBbXTtcblxuICAgIEBJbnB1dCgpIGlzTW9yZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKSBhZnRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgndG9vbGJhckNvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHRvb2xiYXJDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmp1c3RpZnlDb250ZW50JykgZ2V0IGp1c3RpZnlDb250ZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbGlnbjtcbiAgICB9XG5cbiAgICBjb21wb25lbnRzOiBNYXA8c3RyaW5nLCBDb21wb25lbnRSZWY8YW55Pj4gPSBuZXcgTWFwPHN0cmluZywgQ29tcG9uZW50UmVmPGFueT4+KCk7XG5cbiAgICBjb21wb3NlVG9vbGJhckl0ZW1zOiBUb29sYmFySXRlbXNDb21wb3NlUmV0dXJuO1xuXG4gICAgbW9yZUdyb3VwTWVudSA9IFRvb2xiYXJNb3JlR3JvdXA7XG5cbiAgICByZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgICBlbGVtZW50V2lkdGggPSAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFRoZVRvb2xiYXJHcm91cFRva2VuKSBwcml2YXRlIHRvb2xiYXJHcm91cDogQ29tcG9uZW50VHlwZTxUaGVUb29sYmFyR3JvdXA+XG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0VG9vbGJhckNsYXNzKCk7XG4gICAgICAgIHRoaXMucmVuZGVyVG9vbGJhclZpZXcoKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UodGhpcy5lZGl0b3IpO1xuICAgICAgICB0aGlzLmlzTW9yZSAmJiB0aGlzLnJlc2l6ZUVsZW1lbnQoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRvb2xiYXJJdGVtcyA9IGNoYW5nZXMudG9vbGJhckl0ZW1zO1xuICAgICAgICBpZiAodG9vbGJhckl0ZW1zICYmICF0b29sYmFySXRlbXMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyVG9vbGJhclZpZXcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZXNpemVPYnNlcnZlcikge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0VG9vbGJhckNsYXNzKCkge1xuICAgICAgICBpZiAodGhpcy5lZGl0b3IgJiYgISF0aGlzLmNvbnRhaW5lckNsYXNzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCguLi50aGlzLmNvbnRhaW5lckNsYXNzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzaXplRWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgZWRpdGFibGVFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihlbnRyaWVzID0+IHtcbiAgICAgICAgICAgIGZvciAobGV0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHdpZHRoIH0gPSBlbnRyeS5jb250ZW50UmVjdDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc01vcmUgJiYgdGhpcy5lbGVtZW50V2lkdGggIT09IHdpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFdpZHRoID0gd2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyVG9vbGJhclZpZXcoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZWRpdGFibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVGFibGVBY3RpdmUoKSB7XG4gICAgICAgIGNvbnN0IFt0YWJsZV0gPSBFZGl0b3Iubm9kZXModGhpcy5lZGl0b3IsIHsgbWF0Y2g6IG4gPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMudGFibGUgfSk7XG4gICAgICAgIHJldHVybiAhIXRhYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3Rpb25DaGFuZ2UoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb3JlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlclRvb2xiYXJWaWV3KCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0b29sYmFySXRlbXMgPSBbLi4udGhpcy50b29sYmFySXRlbXMsIHRoaXMubW9yZUdyb3VwTWVudV07XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0b29sYmFySXRlbXMpIHtcbiAgICAgICAgICAgIGlmIChpdGVtLmtleSAhPT0gVG9vbGJhckFjdGlvblR5cGVzLnNwbGl0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUNvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50cy5nZXQoaXRlbS5rZXkpO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtQ29tcG9uZW50ICYmIGl0ZW1Db21wb25lbnQuaW5zdGFuY2Uuc2VsZWN0aW9uQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1Db21wb25lbnQuaW5zdGFuY2Uuc2VsZWN0aW9uQ2hhbmdlKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlclRvb2xiYXJWaWV3KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0b29sYmFySXRlbXMgPSB0aGlzLnRvb2xiYXJJdGVtc0NvbXBvc2UoKTtcbiAgICAgICAgY29uc3QgeyBpdGVtcywgZ3JvdXAgfSA9IHRvb2xiYXJJdGVtcztcblxuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSB0aGlzLmNvbXBvc2VUb29sYmFySXRlbXM/Lml0ZW1zPy5sZW5ndGggJiYgZ3JvdXA/Lmxlbmd0aCA9PT0gdGhpcy5jb21wb3NlVG9vbGJhckl0ZW1zPy5ncm91cD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb21wb3NlVG9vbGJhckl0ZW1zID0gdG9vbGJhckl0ZW1zO1xuICAgICAgICB0aGlzLmNvbXBvbmVudHMuY2xlYXIoKTtcbiAgICAgICAgdGhpcy50b29sYmFyQ29udGFpbmVyLmNsZWFyKCk7XG5cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmtleSA9PT0gVG9vbGJhckFjdGlvblR5cGVzLnNwbGl0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlVG9vbGJhclNwbGl0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVRvb2xiYXJJdGVtKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jcmVhdGVNb3JlR3JvdXAoZ3JvdXApO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNhbGN1bGF0aW9uIGRpc3BsYXkgdG9vbGJhciBhbmQgbW9yZSBncm91cGVkIHRvb2xiYXJzXG4gICAgICpcbiAgICAgKlx04pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICBHbG9iYWxUb29sYmFyVmlldyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJBcbiAgICAgKlx0fCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgI2NoaWxkcmVuIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCB8XG4gICAgICpcdHwgfCAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAjaXRlbXNWaWV3IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSAICNncm91cGVkSXRlbXNEcm9wZG93biDilIDilIDilIDilJAgICB8IHxcbiAgICAgKlx0fCB8ICAgfCAgICAgICAjdW5ncm91cGVkSXRlbXMgICAgIHwgfCBUb29sYmFyU2VwYXJhdG9yVmlldyB8IHwgICAgICAgICNncm91cGVkSXRlbXMgICAgICAgfCAgIHwgfFxuICAgICAqXHR8IHwgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAt4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICB8IHxcbiAgICAgKlx0fCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcLS0tLS0tLS0tLSBvbmx5IHdoZW4gdG9vbGJhciBpdGVtcyBvdmVyZmxvdyAtLS0tLS0tLS8gICB8IHxcbiAgICAgKlx0fCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggfFxuICAgICAqXHTilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJhcbiAgICAgKi9cbiAgICBwcml2YXRlIHRvb2xiYXJJdGVtc0NvbXBvc2UoKTogVG9vbGJhckl0ZW1zQ29tcG9zZVJldHVybiB7XG4gICAgICAgIGNvbnN0IGdyb3VwV2lkdGggPSAzMjtcbiAgICAgICAgY29uc3QgaXRlbXM6IFRvb2xiYXJJdGVtW10gPSBbXTtcbiAgICAgICAgY29uc3QgZ3JvdXA6IFRvb2xiYXJJdGVtW10gPSBbXTtcbiAgICAgICAgbGV0IGVsZW1lbnRXaWR0aCA9IHRoaXMuaXNNb3JlID8gdGhpcy5lbGVtZW50V2lkdGggOiBudWxsO1xuICAgICAgICBsZXQgaXNTcGFjZVJlbWFpbmluZyA9IHRydWU7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRvb2xiYXJJdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMudG9vbGJhckl0ZW1zW2ldO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzTW9yZSkge1xuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaXNTcGFjZVJlbWFpbmluZykge1xuICAgICAgICAgICAgICAgIGdyb3VwLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGl0ZW1XaWR0aCA9IHRoaXMuZ2V0SXRlbVdpZHRoKGl0ZW0pO1xuICAgICAgICAgICAgY29uc3Qgb2NjdXB5V2lkdGggPSBpID09PSB0aGlzLnRvb2xiYXJJdGVtcy5sZW5ndGggLSAxID8gaXRlbVdpZHRoIDogaXRlbVdpZHRoICsgZ3JvdXBXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGFsbG93UmVuZGVyID0gZWxlbWVudFdpZHRoICYmIGVsZW1lbnRXaWR0aCA+PSBvY2N1cHlXaWR0aDtcblxuICAgICAgICAgICAgaWYgKGFsbG93UmVuZGVyKSB7XG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50V2lkdGggLT0gaXRlbVdpZHRoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0ZpcnN0U3BsaXQgPSBncm91cC5sZW5ndGggPT09IDAgJiYgaXRlbS5rZXkgPT09IFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdDtcbiAgICAgICAgICAgICAgICBpZiAoIWlzRmlyc3RTcGxpdCkge1xuICAgICAgICAgICAgICAgICAgICBpc1NwYWNlUmVtYWluaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW1zOiB0aGlzLnB1cmVUb29sYmFySXRlbXMoaXRlbXMpLFxuICAgICAgICAgICAgZ3JvdXBcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzcGxpdCB3aWR0aDogMTNweFxuICAgICAqIGl0ZW0gd2lkdGg6IGRlZmF1bHQgaXRlbTogMzJweFxuICAgICAqIGRyb3Bkb3duIGl0ZW06IDQ4cHhcbiAgICAgKiBkZWZhdWx0IHBhZGRpbmdSaWdodDogNHB4XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRJdGVtV2lkdGgoaXRlbTogVG9vbGJhckl0ZW0pIHtcbiAgICAgICAgY29uc3QgcGFkZGluZ1JpZ2h0ID0gNDtcbiAgICAgICAgY29uc3QgZGVmYXVsdEl0ZW1XaWR0aCA9IDMyO1xuICAgICAgICBjb25zdCBpY29uRHJvcGRvd25JdGVtV2lkdGggPSA0ODtcbiAgICAgICAgY29uc3QgdGV4dERyb3Bkb3duSXRlbVdpZHRoID0gNzA7XG4gICAgICAgIGNvbnN0IGRyb3Bkb3duQWN0aW9uSWNvbldpZHRoID0gMTY7XG4gICAgICAgIGNvbnN0IHNwbGl0V2lkdGggPSA5O1xuICAgICAgICBjb25zdCBpc0Ryb3Bkb3duQ29tcG9uZW50ID0gaXRlbT8udHlwZSA9PT0gVG9vbGJhckl0ZW1UeXBlLmRyb3Bkb3duO1xuICAgICAgICBjb25zdCBpc1VwZGF0ZURyb3Bkb3duSXRlbVdpZHRoID0gIWl0ZW0/LndpZHRoICYmIGlzRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgICAgICAgbGV0IGl0ZW1XaWR0aCA9IGl0ZW0/LndpZHRoID8/IGRlZmF1bHRJdGVtV2lkdGg7XG5cbiAgICAgICAgaWYgKGlzVXBkYXRlRHJvcGRvd25JdGVtV2lkdGgpIHtcbiAgICAgICAgICAgIGlmIChpdGVtPy5kcm9wZG93bk1vZGUgPT09IERyb3Bkb3duTW9kZS5pY29uKSB7XG4gICAgICAgICAgICAgICAgaXRlbVdpZHRoID0gaWNvbkRyb3Bkb3duSXRlbVdpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpdGVtPy5kcm9wZG93bk1vZGUgfHwgaXRlbT8uZHJvcGRvd25Nb2RlID09PSBEcm9wZG93bk1vZGUudGV4dCkge1xuICAgICAgICAgICAgICAgIGl0ZW1XaWR0aCA9IHRleHREcm9wZG93bkl0ZW1XaWR0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtPy5pc0hpZGVEcm9wZG93bkFjdGlvbkljb24pIHtcbiAgICAgICAgICAgICAgICBpdGVtV2lkdGggLT0gZHJvcGRvd25BY3Rpb25JY29uV2lkdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGl0ZW0ua2V5ID09PSBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQpIHtcbiAgICAgICAgICAgIGl0ZW1XaWR0aCA9IHNwbGl0V2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBpdGVtV2lkdGggKz0gcGFkZGluZ1JpZ2h0O1xuXG4gICAgICAgIGlmIChpdGVtPy5rZXkgPT09IFRvb2xiYXJBY3Rpb25UeXBlcy52ZXJ0aWNhbEFsaWduKSB7XG4gICAgICAgICAgICBpdGVtV2lkdGggPSB0aGlzLmlzVGFibGVBY3RpdmUoKSA/IGl0ZW1XaWR0aCA6IDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbVdpZHRoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZpbHRlciBhZGphY2VudCByZXBlYXRlZCBkaXZpZGVyc1xuICAgICAqIEBwYXJhbSB7VG9vbGJhckl0ZW1bXX0gaXRlbXNcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqIEBtZW1iZXJvZiBUaGVUb29sYmFyQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVyZVRvb2xiYXJJdGVtcyhpdGVtczogVG9vbGJhckl0ZW1bXSkge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoYSwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKGkgPiAwICYmIGl0ZW1zW2kgLSAxXS5rZXkgIT09IFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGEua2V5ICE9PSBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlVG9vbGJhckl0ZW0oaXRlbTogVG9vbGJhckl0ZW0pIHtcbiAgICAgICAgY29uc3QgeyBpY29uQ29tcG9uZW50LCB0eXBlLCBkcm9wZG93bk1vZGUsIGRyb3Bkb3duSXRlbUtleSwgaW5jbHVkZXMsIC4uLmFyZ3MgfSA9IGl0ZW07XG4gICAgICAgIGNvbnN0IHZpZXdDb21wb25lbnQgPSB0aGlzLnZpZXdDb21wb25lbnRUeXBlKHR5cGUpO1xuICAgICAgICBjb25zdCBjb21wUmVmID0gdGhpcy50b29sYmFyQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudDxUaGVCYXNlVG9vbGJhckl0ZW0+KGljb25Db21wb25lbnQgPyBpY29uQ29tcG9uZW50IDogdmlld0NvbXBvbmVudCk7XG5cbiAgICAgICAgY29tcFJlZi5pbnN0YW5jZS5lZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICAgICAgY29tcFJlZi5pbnN0YW5jZS50b29sYmFySXRlbSA9IGl0ZW07XG4gICAgICAgIHRoaXMuY29tcG9uZW50cy5zZXQoaXRlbS5rZXksIGNvbXBSZWYpO1xuICAgICAgICBpZiAoaXRlbS50eXBlID09PSBUb29sYmFySXRlbVR5cGUuZHJvcGRvd24pIHtcbiAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duUmVmID0gY29tcFJlZiBhcyB1bmtub3duIGFzIENvbXBvbmVudFJlZjxUaGVCYXNlVG9vbGJhckRyb3Bkb3duPjtcbiAgICAgICAgICAgIGRyb3Bkb3duUmVmLmluc3RhbmNlLmRyb3Bkb3duSXRlbUtleSA9IGl0ZW0uZHJvcGRvd25JdGVtS2V5O1xuICAgICAgICAgICAgZHJvcGRvd25SZWYuaW5zdGFuY2UubWVudXMgPSBpbmNsdWRlcyBhcyBUb29sYmFySXRlbVtdO1xuICAgICAgICAgICAgZHJvcGRvd25SZWYuaW5zdGFuY2UubW9kZSA9IGRyb3Bkb3duTW9kZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlVG9vbGJhclNwbGl0KCkge1xuICAgICAgICBjb25zdCBjb21wUmVmID0gdGhpcy50b29sYmFyQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChUaHlEaXZpZGVyKTtcbiAgICAgICAgY29tcFJlZi5pbnN0YW5jZS50aHlWZXJ0aWNhbCA9IHRydWU7XG4gICAgICAgIGNvbXBSZWYuaW5zdGFuY2UudGh5Q29sb3IgPSAnbGlnaHQnO1xuICAgICAgICBjb21wUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbXgtMicpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlTW9yZUdyb3VwKGdyb3VwOiBUb29sYmFySXRlbVtdKSB7XG4gICAgICAgIGlmIChncm91cC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wUmVmID0gdGhpcy50b29sYmFyQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudCh0aGlzLnRvb2xiYXJHcm91cCk7XG4gICAgICAgICAgICBjb21wUmVmLmluc3RhbmNlLmVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgICAgICAgICAgY29tcFJlZi5pbnN0YW5jZS5tZW51cyA9IGdyb3VwO1xuICAgICAgICAgICAgY29tcFJlZi5pbnN0YW5jZS5pdGVtID0gdGhpcy5tb3JlR3JvdXBNZW51O1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRzLnNldCh0aGlzLm1vcmVHcm91cE1lbnUua2V5LCBjb21wUmVmKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdmlld0NvbXBvbmVudFR5cGUodHlwZTogVG9vbGJhckl0ZW1UeXBlKSB7XG4gICAgICAgIGlmICh0eXBlID09PSBUb29sYmFySXRlbVR5cGUuZGVmYXVsdCkge1xuICAgICAgICAgICAgcmV0dXJuIFRoZVRvb2xiYXJJdGVtO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlID09PSBUb29sYmFySXRlbVR5cGUuZHJvcGRvd24pIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVUb29sYmFyRHJvcGRvd247XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFRoZVRvb2xiYXJJdGVtO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgI3Rvb2xiYXJDb250YWluZXI+PC9uZy1jb250YWluZXI+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48bmctdGVtcGxhdGUgKm5nSWY9XCJhZnRlclRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWZ0ZXJUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4iXX0=
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBRUgsU0FBUyxFQUdULFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQU9MLFNBQVMsRUFDVCxnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRXhDLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekgsT0FBTyxFQUFpQyxlQUFlLEVBQTZCLE1BQU0sMEJBQTBCLENBQUM7QUFDckgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQVd4RSxNQUFNLE9BQU8sbUJBQW1CO0lBZTVCLElBQXlDLGNBQWM7UUFDbkQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFZRCxZQUNZLEdBQXNCLEVBQ3RCLFVBQXNCLEVBQ3RCLE1BQWMsRUFDZ0IsWUFBNEM7UUFIMUUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2dCLGlCQUFZLEdBQVosWUFBWSxDQUFnQztRQTlCN0UsaUJBQVksR0FBa0IsRUFBRSxDQUFDO1FBSWpDLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBRTlCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFVdkIsZUFBVSxHQUFtQyxJQUFJLEdBQUcsRUFBNkIsQ0FBQztRQUlsRixrQkFBYSxHQUFHLGdCQUFnQixDQUFDO1FBSWpDLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO0lBT2QsQ0FBQztJQUVKLFFBQVE7UUFDSixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQzFDLElBQUksWUFBWSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYTtRQUNqQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUN0RCxhQUFhO1FBQ2IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMvQyxLQUFLLElBQUksS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUN4QixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztnQkFDcEMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssS0FBSyxFQUFFLENBQUM7b0JBQzdDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO29CQUMxQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxhQUFhO1FBQ2pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDakgsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25CLENBQUM7SUFFTSxlQUFlLENBQUMsTUFBYztRQUNqQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEUsS0FBSyxNQUFNLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUM5QixJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDMUQsYUFBYSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25ELENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFTSxpQkFBaUI7UUFDcEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDaEQsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxZQUFZLENBQUM7UUFFdEMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssSUFBSSxDQUFDLG1CQUFtQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN4SCxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxZQUFZLENBQUM7UUFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ2pCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDeEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7b0JBQzFCLFNBQVM7Z0JBQ2IsQ0FBQztnQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsQ0FBQztZQUNELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNLLG1CQUFtQjtRQUN2QixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdEIsTUFBTSxLQUFLLEdBQWtCLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEtBQUssR0FBa0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMxRCxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUU1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNoRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2YsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakIsU0FBUztZQUNiLENBQUM7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakIsU0FBUztZQUNiLENBQUM7WUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFDLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztZQUM1RixNQUFNLFdBQVcsR0FBRyxZQUFZLElBQUksWUFBWSxJQUFJLFdBQVcsQ0FBQztZQUVoRSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNkLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pCLFlBQVksSUFBSSxTQUFTLENBQUM7WUFDOUIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssa0JBQWtCLENBQUMsS0FBSyxDQUFDO2dCQUNqRixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ2hCLGdCQUFnQixHQUFHLEtBQUssQ0FBQztvQkFDekIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckIsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTztZQUNILEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1lBQ25DLEtBQUs7U0FDUixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssWUFBWSxDQUFDLElBQWlCO1FBQ2xDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN2QixNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUM1QixNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztRQUNqQyxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztRQUNqQyxNQUFNLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNuQyxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDckIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEVBQUUsSUFBSSxLQUFLLGVBQWUsQ0FBQyxRQUFRLENBQUM7UUFDcEUsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksbUJBQW1CLENBQUM7UUFFdEUsSUFBSSxTQUFTLEdBQUcsSUFBSSxFQUFFLEtBQUssSUFBSSxnQkFBZ0IsQ0FBQztRQUVoRCxJQUFJLHlCQUF5QixFQUFFLENBQUM7WUFDNUIsSUFBSSxJQUFJLEVBQUUsWUFBWSxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDM0MsU0FBUyxHQUFHLHFCQUFxQixDQUFDO1lBQ3RDLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksSUFBSSxJQUFJLEVBQUUsWUFBWSxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEUsU0FBUyxHQUFHLHFCQUFxQixDQUFDO1lBQ3RDLENBQUM7WUFDRCxJQUFJLElBQUksRUFBRSx3QkFBd0IsRUFBRSxDQUFDO2dCQUNqQyxTQUFTLElBQUksdUJBQXVCLENBQUM7WUFDekMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEMsU0FBUyxHQUFHLFVBQVUsQ0FBQztRQUMzQixDQUFDO1FBRUQsU0FBUyxJQUFJLFlBQVksQ0FBQztRQUUxQixPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBQyxLQUFvQjtRQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3pELE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxHQUFHLEtBQUssa0JBQWtCLENBQUMsS0FBSyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQWlCO1FBQ3ZDLE1BQU0sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3ZGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFxQixhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFekgsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN0QyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sV0FBVyxHQUFHLE9BQTBELENBQUM7WUFDL0UsV0FBVyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUM1RCxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxRQUF5QixDQUFDO1lBQ3ZELFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztRQUM3QyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGtCQUFrQjtRQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUNwQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDcEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQW9CO1FBQ3hDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN6RSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3RDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUMvQixPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDTCxDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBcUI7UUFDM0MsSUFBSSxJQUFJLEtBQUssZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25DLE9BQU8sY0FBYyxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLElBQUksS0FBSyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEMsT0FBTyxrQkFBa0IsQ0FBQztRQUM5QixDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDMUIsQ0FBQzs4R0FoUlEsbUJBQW1CLG1HQWlDaEIsb0JBQW9CO2tHQWpDdkIsbUJBQW1CLG9kQWFXLGdCQUFnQixnRUNsRDNELHdLQUdBLDRDRGdDYyxJQUFJLDZGQUFFLGdCQUFnQjs7MkZBRXZCLG1CQUFtQjtrQkFUL0IsU0FBUzsrQkFDSSxhQUFhLFFBRWpCO3dCQUNGLEtBQUssRUFBRSxpREFBaUQ7cUJBQzNELGNBQ1csSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDOzswQkFtQzVCLE1BQU07MkJBQUMsb0JBQW9CO3lDQWhDdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRW1FLGdCQUFnQjtzQkFBeEYsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUU5QixjQUFjO3NCQUF0RCxXQUFXO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5RGl2aWRlciB9IGZyb20gJ25neC10ZXRoeXMvZGl2aWRlcic7XG5pbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBEcm9wZG93bk1vZGUsIEVsZW1lbnRLaW5kcywgVGhlVG9vbGJhckdyb3VwVG9rZW4sIFRvb2xiYXJBY3Rpb25UeXBlcywgVG9vbGJhck1vcmVHcm91cCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUaGVCYXNlVG9vbGJhckRyb3Bkb3duLCBUaGVCYXNlVG9vbGJhckl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlL3Rvb2xiYXItaXRlbS9iYXNlLXRvb2xiYXItaXRlbSc7XG5pbXBvcnQgeyBUb29sYmFyQWxpZ25tZW50LCBUb29sYmFySXRlbSwgVG9vbGJhckl0ZW1UeXBlLCBUb29sYmFySXRlbXNDb21wb3NlUmV0dXJuIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy90b29sYmFyJztcbmltcG9ydCB7IFRoZVRvb2xiYXJEcm9wZG93biB9IGZyb20gJy4uL3Rvb2xiYXItZHJvcGRvd24vdG9vbGJhci1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlVG9vbGJhckdyb3VwIH0gZnJvbSAnLi4vdG9vbGJhci1ncm91cC90b29sYmFyLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUb29sYmFySXRlbSB9IGZyb20gJy4uL3Rvb2xiYXItaXRlbS90b29sYmFyLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aGUtdG9vbGJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICd0b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGhlLXRvb2xiYXItY29udGFpbmVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXInXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0XVxufSlcbmV4cG9ydCBjbGFzcyBUaGVUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgZWRpdG9yOiBFZGl0b3I7XG5cbiAgICBASW5wdXQoKSB0b29sYmFySXRlbXM6IFRvb2xiYXJJdGVtW10gPSBbXTtcblxuICAgIEBJbnB1dCgpIGFsaWduOiBUb29sYmFyQWxpZ25tZW50O1xuXG4gICAgQElucHV0KCkgY29udGFpbmVyQ2xhc3M6IHN0cmluZ1tdID0gW107XG5cbiAgICBASW5wdXQoKSBpc01vcmUgPSB0cnVlO1xuXG4gICAgQElucHV0KCkgYWZ0ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoJ3Rvb2xiYXJDb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KSB0b29sYmFyQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5qdXN0aWZ5Q29udGVudCcpIGdldCBqdXN0aWZ5Q29udGVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxpZ247XG4gICAgfVxuXG4gICAgY29tcG9uZW50czogTWFwPHN0cmluZywgQ29tcG9uZW50UmVmPGFueT4+ID0gbmV3IE1hcDxzdHJpbmcsIENvbXBvbmVudFJlZjxhbnk+PigpO1xuXG4gICAgY29tcG9zZVRvb2xiYXJJdGVtczogVG9vbGJhckl0ZW1zQ29tcG9zZVJldHVybjtcblxuICAgIG1vcmVHcm91cE1lbnUgPSBUb29sYmFyTW9yZUdyb3VwO1xuXG4gICAgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgZWxlbWVudFdpZHRoID0gMDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChUaGVUb29sYmFyR3JvdXBUb2tlbikgcHJpdmF0ZSB0b29sYmFyR3JvdXA6IENvbXBvbmVudFR5cGU8VGhlVG9vbGJhckdyb3VwPlxuICAgICkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldFRvb2xiYXJDbGFzcygpO1xuICAgICAgICB0aGlzLnJlbmRlclRvb2xiYXJWaWV3KCk7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgdGhpcy5pc01vcmUgJiYgdGhpcy5yZXNpemVFbGVtZW50KCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB0b29sYmFySXRlbXMgPSBjaGFuZ2VzLnRvb2xiYXJJdGVtcztcbiAgICAgICAgaWYgKHRvb2xiYXJJdGVtcyAmJiAhdG9vbGJhckl0ZW1zLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlclRvb2xiYXJWaWV3KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldFRvb2xiYXJDbGFzcygpIHtcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yICYmICEhdGhpcy5jb250YWluZXJDbGFzcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoLi4udGhpcy5jb250YWluZXJDbGFzcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2l6ZUVsZW1lbnQoKSB7XG4gICAgICAgIGNvbnN0IGVkaXRhYmxlRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZW50cmllcyA9PiB7XG4gICAgICAgICAgICBmb3IgKGxldCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB3aWR0aCB9ID0gZW50cnkuY29udGVudFJlY3Q7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNNb3JlICYmIHRoaXMuZWxlbWVudFdpZHRoICE9PSB3aWR0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRXaWR0aCA9IHdpZHRoO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclRvb2xiYXJWaWV3KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKGVkaXRhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1RhYmxlQWN0aXZlKCkge1xuICAgICAgICBjb25zdCBbdGFibGVdID0gRWRpdG9yLm5vZGVzKHRoaXMuZWRpdG9yLCB7IG1hdGNoOiBuID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIG4udHlwZSA9PT0gRWxlbWVudEtpbmRzLnRhYmxlIH0pO1xuICAgICAgICByZXR1cm4gISF0YWJsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0aW9uQ2hhbmdlKGVkaXRvcjogRWRpdG9yKSB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9yZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJUb29sYmFyVmlldygpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdG9vbGJhckl0ZW1zID0gWy4uLnRoaXMudG9vbGJhckl0ZW1zLCB0aGlzLm1vcmVHcm91cE1lbnVdO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdG9vbGJhckl0ZW1zKSB7XG4gICAgICAgICAgICBpZiAoaXRlbS5rZXkgIT09IFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1Db21wb25lbnQgPSB0aGlzLmNvbXBvbmVudHMuZ2V0KGl0ZW0ua2V5KTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbUNvbXBvbmVudCAmJiBpdGVtQ29tcG9uZW50Lmluc3RhbmNlLnNlbGVjdGlvbkNoYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtQ29tcG9uZW50Lmluc3RhbmNlLnNlbGVjdGlvbkNoYW5nZShlZGl0b3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZW5kZXJUb29sYmFyVmlldygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdG9vbGJhckl0ZW1zID0gdGhpcy50b29sYmFySXRlbXNDb21wb3NlKCk7XG4gICAgICAgIGNvbnN0IHsgaXRlbXMsIGdyb3VwIH0gPSB0b29sYmFySXRlbXM7XG5cbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gdGhpcy5jb21wb3NlVG9vbGJhckl0ZW1zPy5pdGVtcz8ubGVuZ3RoICYmIGdyb3VwPy5sZW5ndGggPT09IHRoaXMuY29tcG9zZVRvb2xiYXJJdGVtcz8uZ3JvdXA/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29tcG9zZVRvb2xiYXJJdGVtcyA9IHRvb2xiYXJJdGVtcztcbiAgICAgICAgdGhpcy5jb21wb25lbnRzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMudG9vbGJhckNvbnRhaW5lci5jbGVhcigpO1xuXG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5rZXkgPT09IFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVRvb2xiYXJTcGxpdCgpO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVUb29sYmFySXRlbShpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9yZUdyb3VwKGdyb3VwKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjYWxjdWxhdGlvbiBkaXNwbGF5IHRvb2xiYXIgYW5kIG1vcmUgZ3JvdXBlZCB0b29sYmFyc1xuICAgICAqXG4gICAgICpcdOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAgR2xvYmFsVG9vbGJhclZpZXcg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4gICAgICpcdHwg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICNjaGlsZHJlbiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgfFxuICAgICAqXHR8IHwgICDilIzilIDilIDilIDilIDilIDilIDilIAgI2l0ZW1zVmlldyDilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgCAjZ3JvdXBlZEl0ZW1zRHJvcGRvd24g4pSA4pSA4pSA4pSQICAgfCB8XG4gICAgICpcdHwgfCAgIHwgICAgICAgI3VuZ3JvdXBlZEl0ZW1zICAgICB8IHwgVG9vbGJhclNlcGFyYXRvclZpZXcgfCB8ICAgICAgICAjZ3JvdXBlZEl0ZW1zICAgICAgIHwgICB8IHxcbiAgICAgKlx0fCB8ICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSALeKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAgfCB8XG4gICAgICpcdHwgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXC0tLS0tLS0tLS0gb25seSB3aGVuIHRvb2xiYXIgaXRlbXMgb3ZlcmZsb3cgLS0tLS0tLS0vICAgfCB8XG4gICAgICpcdHwg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIHxcbiAgICAgKlx04pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG4gICAgICovXG4gICAgcHJpdmF0ZSB0b29sYmFySXRlbXNDb21wb3NlKCk6IFRvb2xiYXJJdGVtc0NvbXBvc2VSZXR1cm4ge1xuICAgICAgICBjb25zdCBncm91cFdpZHRoID0gMzI7XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBUb29sYmFySXRlbVtdID0gW107XG4gICAgICAgIGNvbnN0IGdyb3VwOiBUb29sYmFySXRlbVtdID0gW107XG4gICAgICAgIGxldCBlbGVtZW50V2lkdGggPSB0aGlzLmlzTW9yZSA/IHRoaXMuZWxlbWVudFdpZHRoIDogbnVsbDtcbiAgICAgICAgbGV0IGlzU3BhY2VSZW1haW5pbmcgPSB0cnVlO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50b29sYmFySXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnRvb2xiYXJJdGVtc1tpXTtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc01vcmUpIHtcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWlzU3BhY2VSZW1haW5pbmcpIHtcbiAgICAgICAgICAgICAgICBncm91cC5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpdGVtV2lkdGggPSB0aGlzLmdldEl0ZW1XaWR0aChpdGVtKTtcbiAgICAgICAgICAgIGNvbnN0IG9jY3VweVdpZHRoID0gaSA9PT0gdGhpcy50b29sYmFySXRlbXMubGVuZ3RoIC0gMSA/IGl0ZW1XaWR0aCA6IGl0ZW1XaWR0aCArIGdyb3VwV2lkdGg7XG4gICAgICAgICAgICBjb25zdCBhbGxvd1JlbmRlciA9IGVsZW1lbnRXaWR0aCAmJiBlbGVtZW50V2lkdGggPj0gb2NjdXB5V2lkdGg7XG5cbiAgICAgICAgICAgIGlmIChhbGxvd1JlbmRlcikge1xuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgZWxlbWVudFdpZHRoIC09IGl0ZW1XaWR0aDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNGaXJzdFNwbGl0ID0gZ3JvdXAubGVuZ3RoID09PSAwICYmIGl0ZW0ua2V5ID09PSBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQ7XG4gICAgICAgICAgICAgICAgaWYgKCFpc0ZpcnN0U3BsaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNTcGFjZVJlbWFpbmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBncm91cC5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVtczogdGhpcy5wdXJlVG9vbGJhckl0ZW1zKGl0ZW1zKSxcbiAgICAgICAgICAgIGdyb3VwXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc3BsaXQgd2lkdGg6IDEzcHhcbiAgICAgKiBpdGVtIHdpZHRoOiBkZWZhdWx0IGl0ZW06IDMycHhcbiAgICAgKiBkcm9wZG93biBpdGVtOiA0OHB4XG4gICAgICogZGVmYXVsdCBwYWRkaW5nUmlnaHQ6IDRweFxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0SXRlbVdpZHRoKGl0ZW06IFRvb2xiYXJJdGVtKSB7XG4gICAgICAgIGNvbnN0IHBhZGRpbmdSaWdodCA9IDQ7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRJdGVtV2lkdGggPSAzMjtcbiAgICAgICAgY29uc3QgaWNvbkRyb3Bkb3duSXRlbVdpZHRoID0gNDg7XG4gICAgICAgIGNvbnN0IHRleHREcm9wZG93bkl0ZW1XaWR0aCA9IDcwO1xuICAgICAgICBjb25zdCBkcm9wZG93bkFjdGlvbkljb25XaWR0aCA9IDE2O1xuICAgICAgICBjb25zdCBzcGxpdFdpZHRoID0gOTtcbiAgICAgICAgY29uc3QgaXNEcm9wZG93bkNvbXBvbmVudCA9IGl0ZW0/LnR5cGUgPT09IFRvb2xiYXJJdGVtVHlwZS5kcm9wZG93bjtcbiAgICAgICAgY29uc3QgaXNVcGRhdGVEcm9wZG93bkl0ZW1XaWR0aCA9ICFpdGVtPy53aWR0aCAmJiBpc0Ryb3Bkb3duQ29tcG9uZW50O1xuXG4gICAgICAgIGxldCBpdGVtV2lkdGggPSBpdGVtPy53aWR0aCA/PyBkZWZhdWx0SXRlbVdpZHRoO1xuXG4gICAgICAgIGlmIChpc1VwZGF0ZURyb3Bkb3duSXRlbVdpZHRoKSB7XG4gICAgICAgICAgICBpZiAoaXRlbT8uZHJvcGRvd25Nb2RlID09PSBEcm9wZG93bk1vZGUuaWNvbikge1xuICAgICAgICAgICAgICAgIGl0ZW1XaWR0aCA9IGljb25Ecm9wZG93bkl0ZW1XaWR0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaXRlbT8uZHJvcGRvd25Nb2RlIHx8IGl0ZW0/LmRyb3Bkb3duTW9kZSA9PT0gRHJvcGRvd25Nb2RlLnRleHQpIHtcbiAgICAgICAgICAgICAgICBpdGVtV2lkdGggPSB0ZXh0RHJvcGRvd25JdGVtV2lkdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXRlbT8uaXNIaWRlRHJvcGRvd25BY3Rpb25JY29uKSB7XG4gICAgICAgICAgICAgICAgaXRlbVdpZHRoIC09IGRyb3Bkb3duQWN0aW9uSWNvbldpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpdGVtLmtleSA9PT0gVG9vbGJhckFjdGlvblR5cGVzLnNwbGl0KSB7XG4gICAgICAgICAgICBpdGVtV2lkdGggPSBzcGxpdFdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgaXRlbVdpZHRoICs9IHBhZGRpbmdSaWdodDtcblxuICAgICAgICByZXR1cm4gaXRlbVdpZHRoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZpbHRlciBhZGphY2VudCByZXBlYXRlZCBkaXZpZGVyc1xuICAgICAqIEBwYXJhbSB7VG9vbGJhckl0ZW1bXX0gaXRlbXNcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqIEBtZW1iZXJvZiBUaGVUb29sYmFyQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVyZVRvb2xiYXJJdGVtcyhpdGVtczogVG9vbGJhckl0ZW1bXSkge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoYSwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKGkgPiAwICYmIGl0ZW1zW2kgLSAxXS5rZXkgIT09IFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGEua2V5ICE9PSBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlVG9vbGJhckl0ZW0oaXRlbTogVG9vbGJhckl0ZW0pIHtcbiAgICAgICAgY29uc3QgeyBpY29uQ29tcG9uZW50LCB0eXBlLCBkcm9wZG93bk1vZGUsIGRyb3Bkb3duSXRlbUtleSwgaW5jbHVkZXMsIC4uLmFyZ3MgfSA9IGl0ZW07XG4gICAgICAgIGNvbnN0IHZpZXdDb21wb25lbnQgPSB0aGlzLnZpZXdDb21wb25lbnRUeXBlKHR5cGUpO1xuICAgICAgICBjb25zdCBjb21wUmVmID0gdGhpcy50b29sYmFyQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudDxUaGVCYXNlVG9vbGJhckl0ZW0+KGljb25Db21wb25lbnQgPyBpY29uQ29tcG9uZW50IDogdmlld0NvbXBvbmVudCk7XG5cbiAgICAgICAgY29tcFJlZi5pbnN0YW5jZS5lZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICAgICAgY29tcFJlZi5pbnN0YW5jZS50b29sYmFySXRlbSA9IGl0ZW07XG4gICAgICAgIHRoaXMuY29tcG9uZW50cy5zZXQoaXRlbS5rZXksIGNvbXBSZWYpO1xuICAgICAgICBpZiAoaXRlbS50eXBlID09PSBUb29sYmFySXRlbVR5cGUuZHJvcGRvd24pIHtcbiAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duUmVmID0gY29tcFJlZiBhcyB1bmtub3duIGFzIENvbXBvbmVudFJlZjxUaGVCYXNlVG9vbGJhckRyb3Bkb3duPjtcbiAgICAgICAgICAgIGRyb3Bkb3duUmVmLmluc3RhbmNlLmRyb3Bkb3duSXRlbUtleSA9IGl0ZW0uZHJvcGRvd25JdGVtS2V5O1xuICAgICAgICAgICAgZHJvcGRvd25SZWYuaW5zdGFuY2UubWVudXMgPSBpbmNsdWRlcyBhcyBUb29sYmFySXRlbVtdO1xuICAgICAgICAgICAgZHJvcGRvd25SZWYuaW5zdGFuY2UubW9kZSA9IGRyb3Bkb3duTW9kZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlVG9vbGJhclNwbGl0KCkge1xuICAgICAgICBjb25zdCBjb21wUmVmID0gdGhpcy50b29sYmFyQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChUaHlEaXZpZGVyKTtcbiAgICAgICAgY29tcFJlZi5pbnN0YW5jZS50aHlWZXJ0aWNhbCA9IHRydWU7XG4gICAgICAgIGNvbXBSZWYuaW5zdGFuY2UudGh5Q29sb3IgPSAnbGlnaHQnO1xuICAgICAgICBjb21wUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbXgtMicpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlTW9yZUdyb3VwKGdyb3VwOiBUb29sYmFySXRlbVtdKSB7XG4gICAgICAgIGlmIChncm91cC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wUmVmID0gdGhpcy50b29sYmFyQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudCh0aGlzLnRvb2xiYXJHcm91cCk7XG4gICAgICAgICAgICBjb21wUmVmLmluc3RhbmNlLmVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgICAgICAgICAgY29tcFJlZi5pbnN0YW5jZS5tZW51cyA9IGdyb3VwO1xuICAgICAgICAgICAgY29tcFJlZi5pbnN0YW5jZS5pdGVtID0gdGhpcy5tb3JlR3JvdXBNZW51O1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRzLnNldCh0aGlzLm1vcmVHcm91cE1lbnUua2V5LCBjb21wUmVmKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdmlld0NvbXBvbmVudFR5cGUodHlwZTogVG9vbGJhckl0ZW1UeXBlKSB7XG4gICAgICAgIGlmICh0eXBlID09PSBUb29sYmFySXRlbVR5cGUuZGVmYXVsdCkge1xuICAgICAgICAgICAgcmV0dXJuIFRoZVRvb2xiYXJJdGVtO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlID09PSBUb29sYmFySXRlbVR5cGUuZHJvcGRvd24pIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVUb29sYmFyRHJvcGRvd247XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFRoZVRvb2xiYXJJdGVtO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgI3Rvb2xiYXJDb250YWluZXI+PC9uZy1jb250YWluZXI+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48bmctdGVtcGxhdGUgKm5nSWY9XCJhZnRlclRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWZ0ZXJUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -5,6 +5,7 @@ export const withTheia = (editor, plugins = []) => {
5
5
  e.renderLeaf = (text) => null;
6
6
  e.isContainer = (value) => false;
7
7
  e.globalMousedown = (event) => null;
8
+ e.mousedown = (event) => { };
8
9
  e.extraElementOptions = [];
9
10
  e.disabled = false;
10
11
  e.plugins = [];
@@ -21,4 +22,4 @@ export const withTheia = (editor, plugins = []) => {
21
22
  e = combinePlugins(e);
22
23
  return e;
23
24
  };
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC10aGVpYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb3JlL3dpdGgtdGhlaWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHbkgsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQXNELE1BQVMsRUFBRSxVQUF1QixFQUFFLEVBQUUsRUFBRTtJQUNuSCxJQUFJLENBQUMsR0FBRyxNQUFtQixDQUFDO0lBRTVCLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxPQUFnQixFQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDdkQsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQVUsRUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQzlDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQztJQUMxQyxDQUFDLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ2hELENBQUMsQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFbkIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDZixDQUFDLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0lBRTVCLHFCQUFxQjtJQUNyQixrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFL0IscUJBQXFCO0lBQ3JCLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTNCLDZCQUE2QjtJQUM3QixvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRW5DLDhCQUE4QjtJQUM5QixnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRS9CLENBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdEIsT0FBTyxDQUFDLENBQUM7QUFDYixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50LCBUZXh0IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciwgVmlld1R5cGUgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IEhpc3RvcnlFZGl0b3IgfSBmcm9tICdzbGF0ZS1oaXN0b3J5JztcbmltcG9ydCB7IGNvbWJpbmVQbHVnaW5zLCBmbGF0dGVuRGVlcFBsdWdpbnMsIG1lcmdlRGVlcFBsdWdpbnMsIG5lc3RlZFN0cnVjdHVyZUJ5S2V5LCBwbHVnaW5zQnlLZXkgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFRoZUVkaXRvciwgVGhlUGx1Z2luIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCB3aXRoVGhlaWEgPSA8VCBleHRlbmRzIEFuZ3VsYXJFZGl0b3IgJiBIaXN0b3J5RWRpdG9yICYgVGhlRWRpdG9yPihlZGl0b3I6IFQsIHBsdWdpbnM6IFRoZVBsdWdpbltdID0gW10pID0+IHtcbiAgICBsZXQgZSA9IGVkaXRvciBhcyBUaGVFZGl0b3I7XG5cbiAgICBlLnJlbmRlckVsZW1lbnQgPSAoZWxlbWVudDogRWxlbWVudCk6IFZpZXdUeXBlID0+IG51bGw7XG4gICAgZS5yZW5kZXJMZWFmID0gKHRleHQ6IFRleHQpOiBWaWV3VHlwZSA9PiBudWxsO1xuICAgIGUuaXNDb250YWluZXIgPSAodmFsdWU6IEVsZW1lbnQpID0+IGZhbHNlO1xuICAgIGUuZ2xvYmFsTW91c2Vkb3duID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiBudWxsO1xuICAgIGUuZXh0cmFFbGVtZW50T3B0aW9ucyA9IFtdO1xuICAgIGUuZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIGUucGx1Z2lucyA9IFtdO1xuICAgIGUucGx1Z2luc0J5S2V5ID0ge307XG4gICAgZS5uZXN0ZWRTdHJ1Y3R1cmVCeUtleSA9IHt9O1xuXG4gICAgLy8gd2l0aE92ZXJyaWRlc0J5S2V5XG4gICAgZmxhdHRlbkRlZXBQbHVnaW5zKGUsIHBsdWdpbnMpO1xuXG4gICAgLy8gbW91bnQgcGx1Z2luc0J5S2V5XG4gICAgcGx1Z2luc0J5S2V5KGUsIGUucGx1Z2lucyk7XG5cbiAgICAvLyBtb3VudCBuZXN0ZWRTdHJ1Y3R1cmVCeUtleVxuICAgIG5lc3RlZFN0cnVjdHVyZUJ5S2V5KGUsIGUucGx1Z2lucyk7XG5cbiAgICAvLyBtZXJnZSBwbHVnaW4gdG8gcGx1Z2luQnlLZXlcbiAgICBtZXJnZURlZXBQbHVnaW5zKGUsIGUucGx1Z2lucyk7XG5cbiAgICBlID0gY29tYmluZVBsdWdpbnMoZSk7XG5cbiAgICByZXR1cm4gZTtcbn07XG4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC10aGVpYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb3JlL3dpdGgtdGhlaWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHbkgsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQXNELE1BQVMsRUFBRSxVQUF1QixFQUFFLEVBQUUsRUFBRTtJQUNuSCxJQUFJLENBQUMsR0FBRyxNQUFtQixDQUFDO0lBRTVCLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxPQUFnQixFQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDdkQsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQVUsRUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQzlDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQztJQUMxQyxDQUFDLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ2hELENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVuQixDQUFDLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7SUFFNUIscUJBQXFCO0lBQ3JCLGtCQUFrQixDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUvQixxQkFBcUI7SUFDckIsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFM0IsNkJBQTZCO0lBQzdCLG9CQUFvQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFbkMsOEJBQThCO0lBQzlCLGdCQUFnQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFL0IsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV0QixPQUFPLENBQUMsQ0FBQztBQUNiLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnQsIFRleHQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBWaWV3VHlwZSB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgSGlzdG9yeUVkaXRvciB9IGZyb20gJ3NsYXRlLWhpc3RvcnknO1xuaW1wb3J0IHsgY29tYmluZVBsdWdpbnMsIGZsYXR0ZW5EZWVwUGx1Z2lucywgbWVyZ2VEZWVwUGx1Z2lucywgbmVzdGVkU3RydWN0dXJlQnlLZXksIHBsdWdpbnNCeUtleSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVGhlRWRpdG9yLCBUaGVQbHVnaW4gfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IHdpdGhUaGVpYSA9IDxUIGV4dGVuZHMgQW5ndWxhckVkaXRvciAmIEhpc3RvcnlFZGl0b3IgJiBUaGVFZGl0b3I+KGVkaXRvcjogVCwgcGx1Z2luczogVGhlUGx1Z2luW10gPSBbXSkgPT4ge1xuICAgIGxldCBlID0gZWRpdG9yIGFzIFRoZUVkaXRvcjtcblxuICAgIGUucmVuZGVyRWxlbWVudCA9IChlbGVtZW50OiBFbGVtZW50KTogVmlld1R5cGUgPT4gbnVsbDtcbiAgICBlLnJlbmRlckxlYWYgPSAodGV4dDogVGV4dCk6IFZpZXdUeXBlID0+IG51bGw7XG4gICAgZS5pc0NvbnRhaW5lciA9ICh2YWx1ZTogRWxlbWVudCkgPT4gZmFsc2U7XG4gICAgZS5nbG9iYWxNb3VzZWRvd24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IG51bGw7XG4gICAgZS5tb3VzZWRvd24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHt9O1xuICAgIGUuZXh0cmFFbGVtZW50T3B0aW9ucyA9IFtdO1xuICAgIGUuZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIGUucGx1Z2lucyA9IFtdO1xuICAgIGUucGx1Z2luc0J5S2V5ID0ge307XG4gICAgZS5uZXN0ZWRTdHJ1Y3R1cmVCeUtleSA9IHt9O1xuXG4gICAgLy8gd2l0aE92ZXJyaWRlc0J5S2V5XG4gICAgZmxhdHRlbkRlZXBQbHVnaW5zKGUsIHBsdWdpbnMpO1xuXG4gICAgLy8gbW91bnQgcGx1Z2luc0J5S2V5XG4gICAgcGx1Z2luc0J5S2V5KGUsIGUucGx1Z2lucyk7XG5cbiAgICAvLyBtb3VudCBuZXN0ZWRTdHJ1Y3R1cmVCeUtleVxuICAgIG5lc3RlZFN0cnVjdHVyZUJ5S2V5KGUsIGUucGx1Z2lucyk7XG5cbiAgICAvLyBtZXJnZSBwbHVnaW4gdG8gcGx1Z2luQnlLZXlcbiAgICBtZXJnZURlZXBQbHVnaW5zKGUsIGUucGx1Z2lucyk7XG5cbiAgICBlID0gY29tYmluZVBsdWdpbnMoZSk7XG5cbiAgICByZXR1cm4gZTtcbn07XG4iXX0=