@worktile/theia 2.1.5 → 2.1.9

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 (38) hide show
  1. package/bundles/worktile-theia.umd.js +170 -191
  2. package/bundles/worktile-theia.umd.js.map +1 -1
  3. package/editor.component.d.ts +3 -4
  4. package/editor.module.d.ts +26 -28
  5. package/esm2015/components/toolbar/toolbar.component.js +6 -6
  6. package/esm2015/constants/toolbar.js +1 -4
  7. package/esm2015/editor.component.js +19 -20
  8. package/esm2015/editor.module.js +1 -4
  9. package/esm2015/interfaces/editor.js +1 -1
  10. package/esm2015/plugins/common/move-selection.plugin.js +48 -3
  11. package/esm2015/plugins/image/image.component.js +1 -1
  12. package/esm2015/plugins/inline-code/inline-code.component.js +14 -15
  13. package/esm2015/plugins/inline-code/inline-code.editor.js +7 -3
  14. package/esm2015/plugins/inline-code/inline-code.plugin.js +2 -2
  15. package/esm2015/plugins/link/edit/link-edit.component.js +1 -1
  16. package/esm2015/plugins/link/link.component.js +13 -3
  17. package/esm2015/plugins/list/transforms/insert-list-item.js +11 -7
  18. package/esm2015/plugins/quick-insert/components/quick-insert.component.js +17 -9
  19. package/esm2015/plugins/table/transforms/insert-table.js +2 -2
  20. package/esm2015/transforms/handle-continual-insert-break.js +1 -4
  21. package/esm2015/utils/index.js +2 -1
  22. package/esm2015/utils/is-inline.js +10 -0
  23. package/fesm2015/worktile-theia.js +162 -171
  24. package/fesm2015/worktile-theia.js.map +1 -1
  25. package/interfaces/editor.d.ts +3 -3
  26. package/package.json +1 -1
  27. package/plugins/inline-code/inline-code.component.d.ts +2 -7
  28. package/plugins/inline-code/inline-code.editor.d.ts +2 -2
  29. package/plugins/link/link.component.d.ts +1 -0
  30. package/plugins/quick-insert/components/quick-insert.component.d.ts +3 -1
  31. package/plugins/table/transforms/insert-table.d.ts +1 -1
  32. package/styles/index.scss +0 -1
  33. package/styles/typo.scss +4 -1
  34. package/utils/index.d.ts +1 -0
  35. package/utils/is-inline.d.ts +2 -0
  36. package/esm2015/plugins/placeholder/placeholder.component.js +0 -83
  37. package/plugins/placeholder/placeholder.component.d.ts +0 -21
  38. package/plugins/placeholder/placeholder.component.scss +0 -10
@@ -1,4 +1,4 @@
1
- import { OnInit, OnDestroy, ViewContainerRef, ElementRef, EventEmitter, OnChanges, SimpleChanges, NgZone } from '@angular/core';
1
+ import { OnInit, OnDestroy, ViewContainerRef, ElementRef, EventEmitter, OnChanges, SimpleChanges, NgZone, ChangeDetectorRef } from '@angular/core';
2
2
  import { MixinBase } from 'ngx-tethys/core';
3
3
  import { Editor, Text, Element, Descendant, Range, NodeEntry } from 'slate';
4
4
  import { SlateError } from 'slate-angular';
@@ -9,7 +9,6 @@ import { TheToolbarService } from './services/toolbar.service';
9
9
  import { TheContextService } from './services/context.service';
10
10
  import { TheTextComponent } from './components/text/text.component';
11
11
  import { TheQuickInsertComponent } from './plugins/quick-insert/components/quick-insert.component';
12
- import { ThePlaceholderComponent } from './plugins/placeholder/placeholder.component';
13
12
  import * as i0 from "@angular/core";
14
13
  declare const TheEditorComponent_base: import("ngx-tethys/core").Constructor<import("ngx-tethys/core").ThyUnsubscribe> & typeof MixinBase;
15
14
  export declare class TheEditorComponent extends TheEditorComponent_base implements OnInit, OnChanges, OnDestroy {
@@ -18,6 +17,7 @@ export declare class TheEditorComponent extends TheEditorComponent_base implemen
18
17
  private viewContainerRef;
19
18
  private elementRef;
20
19
  private ngZone;
20
+ private cdr;
21
21
  theOptions: TheOptions;
22
22
  thePlugins: ThePlugin[];
23
23
  theGlobalToolbar?: TheToolbarComponent;
@@ -32,7 +32,6 @@ export declare class TheEditorComponent extends TheEditorComponent_base implemen
32
32
  templateInstance: TheTemplateComponent;
33
33
  globalToolbarInstance: TheToolbarComponent;
34
34
  quickInsertInstance: TheQuickInsertComponent;
35
- placeholderInstance: ThePlaceholderComponent;
36
35
  _plugins: ThePlugin[];
37
36
  toolbarEntity: ToolbarEntity;
38
37
  editor: TheEditor;
@@ -46,7 +45,7 @@ export declare class TheEditorComponent extends TheEditorComponent_base implemen
46
45
  elementToHtml: WeakMap<Element, string>;
47
46
  private onChangeCallback;
48
47
  private onTouchedCallback;
49
- constructor(toolbarService: TheToolbarService, theContextService: TheContextService, viewContainerRef: ViewContainerRef, elementRef: ElementRef, ngZone: NgZone);
48
+ constructor(toolbarService: TheToolbarService, theContextService: TheContextService, viewContainerRef: ViewContainerRef, elementRef: ElementRef, ngZone: NgZone, cdr: ChangeDetectorRef);
50
49
  ngOnInit(): void;
51
50
  ngOnChanges(changes: SimpleChanges): void;
52
51
  ngOnDestroy(): void;
@@ -12,7 +12,7 @@ import { TheNumberedListComponent } from './plugins/list/components/numbered-lis
12
12
  import { TheColorSelectComponent } from './components/color-select/color-select.component';
13
13
  import { TheColorToolbarItemComponent } from './plugins/color/toolbar-item.component';
14
14
  import { TheCodeComponent } from './plugins/code/code.component';
15
- import { TheLinkComponent } from './plugins/link/link.component';
15
+ import { TheReadonlyLinkComponent } from './plugins/link/link.component';
16
16
  import { TheLinkEditComponent } from './plugins/link/edit/link-edit.component';
17
17
  import { TheLinkHoverComponent } from './plugins/link/hover/link-hover.component';
18
18
  import { TheTableToolbarComponent } from './plugins/table/components/toolbar/table-toolbar.component';
@@ -28,7 +28,6 @@ import { TheVerticalToolbarItemComponent } from './plugins/vertical-align/toolba
28
28
  import { TheInlineToolbarComponent } from './components/inline-toolbar/inline-toolbar.component';
29
29
  import { TheQuickToolbarComponent } from './plugins/quick-insert/components/quick-toolbar/quick-toolbar.component';
30
30
  import { TheQuickInsertComponent } from './plugins/quick-insert/components/quick-insert.component';
31
- import { ThePlaceholderComponent } from './plugins/placeholder/placeholder.component';
32
31
  import * as i0 from "@angular/core";
33
32
  import * as i1 from "./editor.component";
34
33
  import * as i2 from "./pipes";
@@ -66,34 +65,33 @@ import * as i33 from "./plugins/table/components/toolbar/table-toolbar.component
66
65
  import * as i34 from "./plugins/table/components/table.component";
67
66
  import * as i35 from "./plugins/table/components/row/row.component";
68
67
  import * as i36 from "./plugins/table/components/td/td.component";
69
- import * as i37 from "./plugins/placeholder/placeholder.component";
70
- import * as i38 from "./plugins/inline-code/inline-code.component";
71
- import * as i39 from "@angular/common";
72
- import * as i40 from "slate-angular";
73
- import * as i41 from "@angular/forms";
74
- import * as i42 from "ngx-tethys/icon";
75
- import * as i43 from "ngx-tethys/avatar";
76
- import * as i44 from "ngx-tethys/nav";
77
- import * as i45 from "ngx-tethys/form";
78
- import * as i46 from "ngx-tethys/shared";
79
- import * as i47 from "ngx-tethys/list";
80
- import * as i48 from "ngx-tethys/tooltip";
81
- import * as i49 from "ngx-tethys/progress";
82
- import * as i50 from "ngx-tethys/autocomplete";
83
- import * as i51 from "ngx-tethys/action-menu";
84
- import * as i52 from "ngx-tethys/input";
85
- import * as i53 from "ngx-tethys/select";
86
- import * as i54 from "ngx-tethys/button";
87
- import * as i55 from "ngx-tethys/notify";
88
- import * as i56 from "ngx-tethys/alert";
89
- import * as i57 from "ngx-tethys/resizable";
90
- import * as i58 from "ngx-tethys/switch";
91
- import * as i59 from "ng-codemirror";
92
- import * as i60 from "./components/column-resize/column-resize.module";
68
+ import * as i37 from "./plugins/inline-code/inline-code.component";
69
+ import * as i38 from "@angular/common";
70
+ import * as i39 from "slate-angular";
71
+ import * as i40 from "@angular/forms";
72
+ import * as i41 from "ngx-tethys/icon";
73
+ import * as i42 from "ngx-tethys/avatar";
74
+ import * as i43 from "ngx-tethys/nav";
75
+ import * as i44 from "ngx-tethys/form";
76
+ import * as i45 from "ngx-tethys/shared";
77
+ import * as i46 from "ngx-tethys/list";
78
+ import * as i47 from "ngx-tethys/tooltip";
79
+ import * as i48 from "ngx-tethys/progress";
80
+ import * as i49 from "ngx-tethys/autocomplete";
81
+ import * as i50 from "ngx-tethys/action-menu";
82
+ import * as i51 from "ngx-tethys/input";
83
+ import * as i52 from "ngx-tethys/select";
84
+ import * as i53 from "ngx-tethys/button";
85
+ import * as i54 from "ngx-tethys/notify";
86
+ import * as i55 from "ngx-tethys/alert";
87
+ import * as i56 from "ngx-tethys/resizable";
88
+ import * as i57 from "ngx-tethys/switch";
89
+ import * as i58 from "ng-codemirror";
90
+ import * as i59 from "./components/column-resize/column-resize.module";
93
91
  export declare const COMPONENTS: (typeof TheColorSelectComponent | typeof TheContextMenuComponent | typeof TheToolbarGroupComponent | typeof TheTextComponent | typeof TheDefaultElementComponent | typeof TheConversionHintComponent | typeof TheColorToolbarItemComponent | typeof TheTableSelectComponent | typeof TheTableToolbarItemComponent | typeof TheVerticalToolbarItemComponent | typeof TheQuickToolbarComponent | typeof TheToolbarItemComponent | typeof NavSplitLineComponent | typeof TheToolbarDropdownComponent | typeof TheToolbarComponent | typeof TheQuickInsertComponent | typeof TheInsertMarkComponent | typeof TheInlineToolbarComponent)[];
94
- export declare const PLUGIN_COMPONENTS: (typeof TheTableToolbarComponent | typeof TheTableComponent | typeof TheImageComponent | typeof TheNumberedListComponent | typeof TheBulletedListComponent | typeof TheBlockquoteComponent | typeof TheCodeComponent | typeof TheLinkHoverComponent | typeof TheLinkEditComponent | typeof TheLinkComponent | typeof TheTdComponent | typeof TheTemplateComponent | typeof ThePlaceholderComponent)[];
92
+ export declare const PLUGIN_COMPONENTS: (typeof TheTableToolbarComponent | typeof TheTableComponent | typeof TheImageComponent | typeof TheNumberedListComponent | typeof TheBulletedListComponent | typeof TheBlockquoteComponent | typeof TheCodeComponent | typeof TheLinkHoverComponent | typeof TheLinkEditComponent | typeof TheReadonlyLinkComponent | typeof TheTdComponent | typeof TheTemplateComponent)[];
95
93
  export declare class TheEditorModule {
96
94
  static ɵfac: i0.ɵɵFactoryDeclaration<TheEditorModule, never>;
97
- static ɵmod: i0.ɵɵNgModuleDeclaration<TheEditorModule, [typeof i1.TheEditorComponent, typeof i2.ElementStylePipe, typeof i2.ElementClassPipe, typeof i3.TheToolbarComponent, typeof i4.TheToolbarDropdownComponent, typeof i5.TheToolbarGroupComponent, typeof i6.TheToolbarItemComponent, typeof i7.TheInlineToolbarComponent, typeof i8.NavSplitLineComponent, typeof i9.TheTextComponent, typeof i10.TheDefaultElementComponent, typeof i11.TheQuickInsertComponent, typeof i12.TheQuickToolbarComponent, typeof i13.TheColorSelectComponent, typeof i14.TheColorToolbarItemComponent, typeof i15.TheContextMenuComponent, typeof i16.TheInsertMarkComponent, typeof i17.TheTableSelectComponent, typeof i18.TheTableToolbarItemComponent, typeof i19.TheConversionHintComponent, typeof i20.TheVerticalToolbarItemComponent, typeof i21.TheImageComponent, typeof i22.TheTemplateComponent, typeof i23.TheHrComponent, typeof i24.TheBlockquoteComponent, typeof i25.TheTodoItemComponent, typeof i26.TheListItemComponent, typeof i27.TheBulletedListComponent, typeof i28.TheNumberedListComponent, typeof i29.TheCodeComponent, typeof i30.TheLinkComponent, typeof i30.TheReadonlyLinkComponent, typeof i31.TheLinkEditComponent, typeof i32.TheLinkHoverComponent, typeof i33.TheTableToolbarComponent, typeof i34.TheTableComponent, typeof i35.TheTableRowComponent, typeof i36.TheTdComponent, typeof i37.ThePlaceholderComponent, typeof i38.TheInlineCodeComponent], [typeof i39.CommonModule, typeof i40.SlateModule, typeof i41.FormsModule, typeof i42.ThyIconModule, typeof i43.ThyAvatarModule, typeof i44.ThyNavModule, typeof i45.ThyFormModule, typeof i46.ThySharedModule, typeof i47.ThyListModule, typeof i48.ThyTooltipModule, typeof i49.ThyProgressModule, typeof i50.ThyAutocompleteModule, typeof i51.ThyActionMenuModule, typeof i52.ThyInputModule, typeof i53.ThySelectModule, typeof i54.ThyButtonModule, typeof i55.ThyNotifyModule, typeof i56.ThyAlertModule, typeof i57.ThyResizableModule, typeof i58.ThySwitchModule, typeof i59.CodemirrorModule, typeof i60.TheColumnSizeModule], [typeof i1.TheEditorComponent, typeof i3.TheToolbarComponent, typeof i4.TheToolbarDropdownComponent, typeof i6.TheToolbarItemComponent, typeof i10.TheDefaultElementComponent]>;
95
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TheEditorModule, [typeof i1.TheEditorComponent, typeof i2.ElementStylePipe, typeof i2.ElementClassPipe, typeof i3.TheToolbarComponent, typeof i4.TheToolbarDropdownComponent, typeof i5.TheToolbarGroupComponent, typeof i6.TheToolbarItemComponent, typeof i7.TheInlineToolbarComponent, typeof i8.NavSplitLineComponent, typeof i9.TheTextComponent, typeof i10.TheDefaultElementComponent, typeof i11.TheQuickInsertComponent, typeof i12.TheQuickToolbarComponent, typeof i13.TheColorSelectComponent, typeof i14.TheColorToolbarItemComponent, typeof i15.TheContextMenuComponent, typeof i16.TheInsertMarkComponent, typeof i17.TheTableSelectComponent, typeof i18.TheTableToolbarItemComponent, typeof i19.TheConversionHintComponent, typeof i20.TheVerticalToolbarItemComponent, typeof i21.TheImageComponent, typeof i22.TheTemplateComponent, typeof i23.TheHrComponent, typeof i24.TheBlockquoteComponent, typeof i25.TheTodoItemComponent, typeof i26.TheListItemComponent, typeof i27.TheBulletedListComponent, typeof i28.TheNumberedListComponent, typeof i29.TheCodeComponent, typeof i30.TheLinkComponent, typeof i30.TheReadonlyLinkComponent, typeof i31.TheLinkEditComponent, typeof i32.TheLinkHoverComponent, typeof i33.TheTableToolbarComponent, typeof i34.TheTableComponent, typeof i35.TheTableRowComponent, typeof i36.TheTdComponent, typeof i37.TheInlineCodeComponent], [typeof i38.CommonModule, typeof i39.SlateModule, typeof i40.FormsModule, typeof i41.ThyIconModule, typeof i42.ThyAvatarModule, typeof i43.ThyNavModule, typeof i44.ThyFormModule, typeof i45.ThySharedModule, typeof i46.ThyListModule, typeof i47.ThyTooltipModule, typeof i48.ThyProgressModule, typeof i49.ThyAutocompleteModule, typeof i50.ThyActionMenuModule, typeof i51.ThyInputModule, typeof i52.ThySelectModule, typeof i53.ThyButtonModule, typeof i54.ThyNotifyModule, typeof i55.ThyAlertModule, typeof i56.ThyResizableModule, typeof i57.ThySwitchModule, typeof i58.CodemirrorModule, typeof i59.TheColumnSizeModule], [typeof i1.TheEditorComponent, typeof i3.TheToolbarComponent, typeof i4.TheToolbarDropdownComponent, typeof i6.TheToolbarItemComponent, typeof i10.TheDefaultElementComponent]>;
98
96
  static ɵinj: i0.ɵɵInjectorDeclaration<TheEditorModule>;
99
97
  }
@@ -214,15 +214,15 @@ export class TheToolbarComponent {
214
214
  return TheToolbarItemComponent;
215
215
  }
216
216
  getDropdownItem(item) {
217
- var _a;
217
+ var _a, _b, _c;
218
218
  let dropdownKey = item === null || item === void 0 ? void 0 : item.dropdownItemKey;
219
219
  // modify the fontsize option externally
220
- const contextService = this.editor.injector.get(TheContextService);
221
- const fontSize = contextService.getDefaultFontSize();
222
- if (item.key === MarkTypes.fontSize && fontSize) {
220
+ const contextService = (_b = (_a = this.editor) === null || _a === void 0 ? void 0 : _a.injector) === null || _b === void 0 ? void 0 : _b.get(TheContextService);
221
+ const fontSize = contextService === null || contextService === void 0 ? void 0 : contextService.getDefaultFontSize();
222
+ if (contextService && item.key === MarkTypes.fontSize && fontSize) {
223
223
  dropdownKey = fontSize;
224
224
  }
225
- return (_a = item === null || item === void 0 ? void 0 : item.includes) === null || _a === void 0 ? void 0 : _a.find((item) => item.key === dropdownKey);
225
+ return (_c = item === null || item === void 0 ? void 0 : item.includes) === null || _c === void 0 ? void 0 : _c.find((item) => item.key === dropdownKey);
226
226
  }
227
227
  }
228
228
  TheToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: TheToolbarComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: TheToolbarGroupToken }], target: i0.ɵɵFactoryTarget.Component });
@@ -255,4 +255,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
255
255
  type: ViewChild,
256
256
  args: ['toolbarContainer', { read: ViewContainerRef, static: true }]
257
257
  }] } });
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBUWhCLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQTRELGVBQWUsRUFBYyxNQUFNLDBCQUEwQixDQUFDO0FBQ2pJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbkYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFN0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFTbkUsTUFBTSxPQUFPLG1CQUFtQjtJQW9CNUIsWUFDWSxHQUE2QixFQUM3QixVQUFzQixFQUN0QixNQUFjLEVBQ2dCLHFCQUE4RDtRQUg1RixRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZ0IsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF5QztRQXJCL0YsaUJBQVksR0FBa0IsRUFBRSxDQUFDO1FBSWpDLG1CQUFjLEdB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RSx1QkFBdUI7cUJBQ2pDO2lCQUNKOzswQkF5QlEsTUFBTTsyQkFBQyxvQkFBb0I7NENBdkJ2QixNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFbUUsZ0JBQWdCO3NCQUF4RixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIENvbXBvbmVudFJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uRGVzdHJveSxcbiAgICBOZ1pvbmUsXG4gICAgSW5qZWN0LFxuICAgIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgVG9vbGJhckFsaWdubWVudCwgVG9vbGJhckl0ZW0sIFRvb2xiYXJJdGVtc0NvbXBvc2VSZXR1cm4sIFRvb2xiYXJJdGVtVHlwZSwgVG9vbGJhcktleSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdG9vbGJhcic7XG5pbXBvcnQgeyBUaGVUb29sYmFyR3JvdXBUb2tlbiwgVG9vbGJhck1vcmVHcm91cCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy90b29sYmFyJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcywgTWFya1R5cGVzLCBUb29sYmFyQWN0aW9uVHlwZXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbm9kZS10eXBlcyc7XG5pbXBvcnQgeyBUaGVUb29sYmFySXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2xiYXItaXRlbS90b29sYmFyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE5hdlNwbGl0TGluZUNvbXBvbmVudCB9IGZyb20gJy4uL25hdi1zcGxpdC1saW5lL25hdi1zcGxpdC1saW5lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUb29sYmFyRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi90b29sYmFyLWRyb3Bkb3duL3Rvb2xiYXItZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHsgVGhlVG9vbGJhckdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbGJhci1ncm91cC90b29sYmFyLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGhlLXRvb2xiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAndG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoZS10b29sYmFyLWNvbnRhaW5lcidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFRoZVRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBlZGl0b3I6IEVkaXRvcjtcblxuICAgIEBJbnB1dCgpIHRvb2xiYXJJdGVtczogVG9vbGJhckl0ZW1bXSA9IFtdO1xuXG4gICAgQElucHV0KCkgYWxpZ246IFRvb2xiYXJBbGlnbm1lbnQ7XG5cbiAgICBASW5wdXQoKSBjb250YWluZXJDbGFzczogc3RyaW5nW10gPSBbXTtcblxuICAgIEBJbnB1dCgpIGlzTW9yZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKSBhZnRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgndG9vbGJhckNvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHRvb2xiYXJDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICBjb21wb25lbnRzOiBNYXA8c3RyaW5nLCBDb21wb25lbnRSZWY8YW55Pj4gPSBuZXcgTWFwPHN0cmluZywgQ29tcG9uZW50UmVmPGFueT4+KCk7XG4gICAgbW9yZUdyb3VwTWVudSA9IFRvb2xiYXJNb3JlR3JvdXA7XG4gICAgcmVzaXplT2JzZXJ2ZXI7XG4gICAgZWxlbWVudFdpZHRoID0gMDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBJbmplY3QoVGhlVG9vbGJhckdyb3VwVG9rZW4pIHByaXZhdGUgdG9vbGJhckdyb3VwQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPFRoZVRvb2xiYXJHcm91cENvbXBvbmVudD5cbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRUb29sYmFyQ2xhc3MoKTtcbiAgICAgICAgdGhpcy5yZW5kZXJUb29sYmFyVmlldygpO1xuICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZSh0aGlzLmVkaXRvcik7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNNb3JlKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdG9vbGJhckl0ZW1zID0gY2hhbmdlcy50b29sYmFySXRlbXM7XG4gICAgICAgIGlmICh0b29sYmFySXRlbXMgJiYgIXRvb2xiYXJJdGVtcy5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJUb29sYmFyVmlldygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRUb29sYmFyQ2xhc3MoKSB7XG4gICAgICAgIGlmICh0aGlzLmVkaXRvciAmJiAhIXRoaXMuY29udGFpbmVyQ2xhc3MubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKC4uLnRoaXMuY29udGFpbmVyQ2xhc3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNpemVFbGVtZW50KCkge1xuICAgICAgICBjb25zdCBlZGl0YWJsZUVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKGVudHJpZXMgPT4ge1xuICAgICAgICAgICAgZm9yIChsZXQgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgd2lkdGggfSA9IGVudHJ5LmNvbnRlbnRSZWN0O1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTW9yZSAmJiB0aGlzLmVsZW1lbnRXaWR0aCAhPT0gd2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50V2lkdGggPSB3aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJUb29sYmFyVmlldygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlZGl0YWJsZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0dXNDaGFuZ2UoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgdG9vbGJhckl0ZW1zID0gWy4uLnRoaXMudG9vbGJhckl0ZW1zLCB0aGlzLm1vcmVHcm91cE1lbnVdO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdG9vbGJhckl0ZW1zKSB7XG4gICAgICAgICAgICBpZiAoaXRlbS5rZXkgIT09IFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1Db21wb25lbnQgPSB0aGlzLmNvbXBvbmVudHMuZ2V0KGl0ZW0ua2V5KTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbUNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtQ29tcG9uZW50Lmluc3RhbmNlLnN0YXR1c0NoYW5nZShlZGl0b3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZW5kZXJUb29sYmFyVmlldygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMudG9vbGJhckNvbnRhaW5lci5jbGVhcigpO1xuICAgICAgICBjb25zdCB0b29sYmFySXRlbXMgPSB0aGlzLnRvb2xiYXJJdGVtc0NvbXBvc2UoKTtcbiAgICAgICAgY29uc3QgeyBpdGVtcywgZ3JvdXAgfSA9IHRvb2xiYXJJdGVtcztcblxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ua2V5ID09PSBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVUb29sYmFyU3BsaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlVG9vbGJhckl0ZW0oaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU1vcmVHcm91cChncm91cCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNhbGN1bGF0aW9uIGRpc3BsYXkgdG9vbGJhciBhbmQgbW9yZSBncm91cGVkIHRvb2xiYXJzXG4gICAgICpcbiAgICAgKlx04pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIEdvb2xiYXJUb29sYmFyVmlldyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJBcbiAgICAgKlx0fCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgI2NoaWxkcmVuIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCB8XG4gICAgICpcdHwgfCAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAjaXRlbXNWaWV3IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSAICNncm91cGVkSXRlbXNEcm9wZG93biDilIDilIDilIDilJAgICB8IHxcbiAgICAgKlx0fCB8ICAgfCAgICAgICAjdW5ncm91cGVkSXRlbXMgICAgIHwgfCBUb29sYmFyU2VwYXJhdG9yVmlldyB8IHwgICAgICAgICNncm91cGVkSXRlbXMgICAgICAgfCAgIHwgfFxuICAgICAqXHR8IHwgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAt4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICB8IHxcbiAgICAgKlx0fCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcLS0tLS0tLS0tLSBvbmx5IHdoZW4gdG9vbGJhciBpdGVtcyBvdmVyZmxvdyAtLS0tLS0tLS8gICB8IHxcbiAgICAgKlx0fCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggfFxuICAgICAqXHTilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJhcbiAgICAgKiBzcGxpdCB3aWR0aDogNnB4XG4gICAgICogaXRlbSB3aWR0aDogZGVmYXVsdCBpdGVtOiAzNXB4OyBkcm9wZG93biBpdGVtOiA1MHB4XG4gICAgICogc2V0IGFzaWRlIDUwcHhcbiAgICAgKi9cbiAgICBwcml2YXRlIHRvb2xiYXJJdGVtc0NvbXBvc2UoKTogVG9vbGJhckl0ZW1zQ29tcG9zZVJldHVybiB7XG4gICAgICAgIGxldCBlbGVtZW50V2lkdGggPSB0aGlzLmlzTW9yZSA/IHRoaXMuZWxlbWVudFdpZHRoIDogbnVsbDtcbiAgICAgICAgY29uc3QgbWF4SXRlbVdpZHRoID0gNTA7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRJdGVtV2lkdGggPSAzNTtcbiAgICAgICAgY29uc3Qgc3BsaXRXaWR0aCA9IDY7XG4gICAgICAgIC8vIHNwZWNpYWwgdHlwZVxuICAgICAgICBjb25zdCBoZWFkaW5nV2lkdGggPSA3MDtcbiAgICAgICAgY29uc3QgaXRlbXM6IFRvb2xiYXJJdGVtW10gPSBbXTtcbiAgICAgICAgY29uc3QgZ3JvdXA6IFRvb2xiYXJJdGVtW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy50b29sYmFySXRlbXMpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc01vcmUpIHtcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBub3QgZW5vdWdoIGZyZWUgc3BhY2VcbiAgICAgICAgICAgIGNvbnN0IGFsbG93UmVuZGVyID0gZWxlbWVudFdpZHRoICYmIGVsZW1lbnRXaWR0aCA+IG1heEl0ZW1XaWR0aDtcbiAgICAgICAgICAgIGlmIChhbGxvd1JlbmRlciAmJiBpdGVtLmtleSA9PT0gVG9vbGJhckFjdGlvblR5cGVzLnNwbGl0KSB7XG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50V2lkdGggLT0gc3BsaXRXaWR0aDtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGFsbG93UmVuZGVyKSB7XG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZ3JvdXAucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGl0ZW0ua2V5ID09PSBFbGVtZW50S2luZHMuaGVhZGluZ0xpc3QpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50V2lkdGggLT0gaGVhZGluZ1dpZHRoO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaXNDdXN0b21Db21wb25lbnQgPSBpdGVtPy50eXBlID09PSBUb29sYmFySXRlbVR5cGUudG9vbERyb3Bkb3duIHx8ICEhaXRlbT8uaWNvbkNvbXBvbmVudDtcbiAgICAgICAgICAgIGVsZW1lbnRXaWR0aCAtPSBpc0N1c3RvbUNvbXBvbmVudCA/IG1heEl0ZW1XaWR0aCA6IGRlZmF1bHRJdGVtV2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHRoaXMucHVyZVRvb2xiYXJJdGVtcyhpdGVtcyksXG4gICAgICAgICAgICBncm91cFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGV4dGVybmFsbHkgZGVzaWduYXRlZCBtb3JlIGdyb3VwXG4gICAgICovXG4gICAgcHJpdmF0ZSB0b29sYmFySXRlbXNBbmRNb3JlQ29tcG9zZSgpIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSBbXTtcbiAgICAgICAgY29uc3QgZ3JvdXAgPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy50b29sYmFySXRlbXMpIHtcbiAgICAgICAgICAgIGlmIChpdGVtLmtleSA9PT0gVG9vbGJhckFjdGlvblR5cGVzLnNwbGl0KSB7XG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHRoaXMucHVyZVRvb2xiYXJJdGVtcyhpdGVtcyksXG4gICAgICAgICAgICBncm91cFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZpbHRlciBhZGphY2VudCByZXBlYXRlZCBkaXZpZGVyc1xuICAgICAqIEBwYXJhbSB7VG9vbGJhckl0ZW1bXX0gaXRlbXNcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqIEBtZW1iZXJvZiBUaGVUb29sYmFyQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVyZVRvb2xiYXJJdGVtcyhpdGVtczogVG9vbGJhckl0ZW1bXSkge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoYSwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKGkgPiAwICYmIGl0ZW1zW2kgLSAxXS5rZXkgIT09IFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGEua2V5ICE9PSBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlVG9vbGJhckl0ZW0oaXRlbTogVG9vbGJhckl0ZW0pIHtcbiAgICAgICAgY29uc3QgeyBpY29uQ29tcG9uZW50LCB0eXBlLCBkcm9wZG93bk1vZGUsIGRyb3Bkb3duSXRlbUtleSwgaW5jbHVkZXMsIC4uLmFyZ3MgfSA9IGl0ZW07XG4gICAgICAgIGNvbnN0IHZpZXdDb21wb25lbnQgPSB0aGlzLnZpZXdDb21wb25lbnRUeXBlKHR5cGUpO1xuICAgICAgICBjb25zdCBkcm9wZG93bkl0ZW0gPSB0aGlzLmdldERyb3Bkb3duSXRlbShpdGVtKTtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGljb25Db21wb25lbnQgPyBpY29uQ29tcG9uZW50IDogdmlld0NvbXBvbmVudCk7XG4gICAgICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLnRvb2xiYXJDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuXG4gICAgICAgIGNvbXBSZWYuaW5zdGFuY2UuZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgICAgIGNvbXBSZWYuaW5zdGFuY2UudG9vbGJhckl0ZW0gPSBpdGVtO1xuICAgICAgICBjb21wUmVmLmluc3RhbmNlLm1lbnVzID0gaW5jbHVkZXM7XG4gICAgICAgIGNvbXBSZWYuaW5zdGFuY2UuaXRlbSA9IGluY2x1ZGVzICYmIGRyb3Bkb3duSXRlbSA/IGRyb3Bkb3duSXRlbSA6IGFyZ3M7XG4gICAgICAgIGNvbXBSZWYuaW5zdGFuY2UubW9kZSA9IGRyb3Bkb3duTW9kZTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRzLnNldChpdGVtLmtleSwgY29tcFJlZik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVUb29sYmFyU3BsaXQoKSB7XG4gICAgICAgIGNvbnN0IG5hdlNwbGl0TGluZUZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShOYXZTcGxpdExpbmVDb21wb25lbnQpO1xuICAgICAgICB0aGlzLnRvb2xiYXJDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KG5hdlNwbGl0TGluZUZhY3RvcnkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlTW9yZUdyb3VwKGdyb3VwOiBUb29sYmFySXRlbVtdKSB7XG4gICAgICAgIGlmIChncm91cC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBtb3JlR3JvdXBGYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy50b29sYmFyR3JvdXBDb21wb25lbnQpO1xuICAgICAgICAgICAgY29uc3QgY29tcFJlZiA9IHRoaXMudG9vbGJhckNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQobW9yZUdyb3VwRmFjdG9yeSk7XG4gICAgICAgICAgICBjb21wUmVmLmluc3RhbmNlLmVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgICAgICAgICAgY29tcFJlZi5pbnN0YW5jZS5tZW51cyA9IGdyb3VwO1xuICAgICAgICAgICAgY29tcFJlZi5pbnN0YW5jZS5pdGVtID0gdGhpcy5tb3JlR3JvdXBNZW51O1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRzLnNldCh0aGlzLm1vcmVHcm91cE1lbnUua2V5LCBjb21wUmVmKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdmlld0NvbXBvbmVudFR5cGUodHlwZTogVG9vbGJhckl0ZW1UeXBlKSB7XG4gICAgICAgIGlmICh0eXBlID09PSBUb29sYmFySXRlbVR5cGUuZGVmYXVsdCkge1xuICAgICAgICAgICAgcmV0dXJuIFRoZVRvb2xiYXJJdGVtQ29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlID09PSBUb29sYmFySXRlbVR5cGUudG9vbERyb3Bkb3duKSB7XG4gICAgICAgICAgICByZXR1cm4gVGhlVG9vbGJhckRyb3Bkb3duQ29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBUaGVUb29sYmFySXRlbUNvbXBvbmVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERyb3Bkb3duSXRlbShpdGVtOiBUb29sYmFySXRlbSkge1xuICAgICAgICBsZXQgZHJvcGRvd25LZXk6IFRvb2xiYXJLZXkgfCBzdHJpbmcgPSBpdGVtPy5kcm9wZG93bkl0ZW1LZXk7XG4gICAgICAgIC8vIG1vZGlmeSB0aGUgZm9udHNpemUgb3B0aW9uIGV4dGVybmFsbHlcbiAgICAgICAgY29uc3QgY29udGV4dFNlcnZpY2UgPSB0aGlzLmVkaXRvci5pbmplY3Rvci5nZXQoVGhlQ29udGV4dFNlcnZpY2UpO1xuICAgICAgICBjb25zdCBmb250U2l6ZSA9IGNvbnRleHRTZXJ2aWNlLmdldERlZmF1bHRGb250U2l6ZSgpO1xuICAgICAgICBpZiAoaXRlbS5rZXkgPT09IE1hcmtUeXBlcy5mb250U2l6ZSAmJiBmb250U2l6ZSkge1xuICAgICAgICAgICAgZHJvcGRvd25LZXkgPSBmb250U2l6ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbT8uaW5jbHVkZXM/LmZpbmQoKGl0ZW06IFRvb2xiYXJJdGVtKSA9PiBpdGVtLmtleSA9PT0gZHJvcGRvd25LZXkpO1xuICAgIH1cbn1cbiIsIjx0aHktaWNvbi1uYXYgW3N0eWxlLmp1c3RpZnlDb250ZW50XT1cImFsaWduXCI+XG4gICAgPG5nLWNvbnRhaW5lciAjdG9vbGJhckNvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiYWZ0ZXJUZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFmdGVyVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuPC90aHktaWNvbi1uYXY+XG4iXX0=
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBUWhCLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQTRELGVBQWUsRUFBYyxNQUFNLDBCQUEwQixDQUFDO0FBQ2pJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbkYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFN0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFTbkUsTUFBTSxPQUFPLG1CQUFtQjtJQW9CNUIsWUFDWSxHQUE2QixFQUM3QixVQUFzQixFQUN0QixNQUFjLEVBQ2dCLHFCQUE4RDtRQUg1RixRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZ0IsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF5QztRQXJCL0YsaUJBQVksR0FBa0IsRUFBRSxDQUFDO1FBSWpDLG1CQUFjLEdB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RUFBRSx3QkFBd0I7b0JBQ3JDLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsdUJBQXVCO3FCQUNqQztpQkFDSjs7MEJBeUJRLE1BQU07MkJBQUMsb0JBQW9COzRDQXZCdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRW1FLGdCQUFnQjtzQkFBeEYsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBPbkRlc3Ryb3ksXG4gICAgTmdab25lLFxuICAgIEluamVjdCxcbiAgICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkaXRvciB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IFRvb2xiYXJBbGlnbm1lbnQsIFRvb2xiYXJJdGVtLCBUb29sYmFySXRlbXNDb21wb3NlUmV0dXJuLCBUb29sYmFySXRlbVR5cGUsIFRvb2xiYXJLZXkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3Rvb2xiYXInO1xuaW1wb3J0IHsgVGhlVG9vbGJhckdyb3VwVG9rZW4sIFRvb2xiYXJNb3JlR3JvdXAgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdG9vbGJhcic7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMsIE1hcmtUeXBlcywgVG9vbGJhckFjdGlvblR5cGVzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL25vZGUtdHlwZXMnO1xuaW1wb3J0IHsgVGhlVG9vbGJhckl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi90b29sYmFyLWl0ZW0vdG9vbGJhci1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZTcGxpdExpbmVDb21wb25lbnQgfSBmcm9tICcuLi9uYXYtc3BsaXQtbGluZS9uYXYtc3BsaXQtbGluZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlVG9vbGJhckRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbGJhci1kcm9wZG93bi90b29sYmFyLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgdHlwZSB7IFRoZVRvb2xiYXJHcm91cENvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2xiYXItZ3JvdXAvdG9vbGJhci1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoZS10b29sYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aGUtdG9vbGJhci1jb250YWluZXInXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUaGVUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgZWRpdG9yOiBFZGl0b3I7XG5cbiAgICBASW5wdXQoKSB0b29sYmFySXRlbXM6IFRvb2xiYXJJdGVtW10gPSBbXTtcblxuICAgIEBJbnB1dCgpIGFsaWduOiBUb29sYmFyQWxpZ25tZW50O1xuXG4gICAgQElucHV0KCkgY29udGFpbmVyQ2xhc3M6IHN0cmluZ1tdID0gW107XG5cbiAgICBASW5wdXQoKSBpc01vcmUgPSB0cnVlO1xuXG4gICAgQElucHV0KCkgYWZ0ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoJ3Rvb2xiYXJDb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KSB0b29sYmFyQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgY29tcG9uZW50czogTWFwPHN0cmluZywgQ29tcG9uZW50UmVmPGFueT4+ID0gbmV3IE1hcDxzdHJpbmcsIENvbXBvbmVudFJlZjxhbnk+PigpO1xuICAgIG1vcmVHcm91cE1lbnUgPSBUb29sYmFyTW9yZUdyb3VwO1xuICAgIHJlc2l6ZU9ic2VydmVyO1xuICAgIGVsZW1lbnRXaWR0aCA9IDA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFRoZVRvb2xiYXJHcm91cFRva2VuKSBwcml2YXRlIHRvb2xiYXJHcm91cENvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUaGVUb29sYmFyR3JvdXBDb21wb25lbnQ+XG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0VG9vbGJhckNsYXNzKCk7XG4gICAgICAgIHRoaXMucmVuZGVyVG9vbGJhclZpZXcoKTtcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2UodGhpcy5lZGl0b3IpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTW9yZSkge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVFbGVtZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRvb2xiYXJJdGVtcyA9IGNoYW5nZXMudG9vbGJhckl0ZW1zO1xuICAgICAgICBpZiAodG9vbGJhckl0ZW1zICYmICF0b29sYmFySXRlbXMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyVG9vbGJhclZpZXcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZXNpemVPYnNlcnZlcikge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0VG9vbGJhckNsYXNzKCkge1xuICAgICAgICBpZiAodGhpcy5lZGl0b3IgJiYgISF0aGlzLmNvbnRhaW5lckNsYXNzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCguLi50aGlzLmNvbnRhaW5lckNsYXNzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzaXplRWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgZWRpdGFibGVFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihlbnRyaWVzID0+IHtcbiAgICAgICAgICAgIGZvciAobGV0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHdpZHRoIH0gPSBlbnRyeS5jb250ZW50UmVjdDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc01vcmUgJiYgdGhpcy5lbGVtZW50V2lkdGggIT09IHdpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFdpZHRoID0gd2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyVG9vbGJhclZpZXcoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZWRpdGFibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdHVzQ2hhbmdlKGVkaXRvcjogRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IHRvb2xiYXJJdGVtcyA9IFsuLi50aGlzLnRvb2xiYXJJdGVtcywgdGhpcy5tb3JlR3JvdXBNZW51XTtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRvb2xiYXJJdGVtcykge1xuICAgICAgICAgICAgaWYgKGl0ZW0ua2V5ICE9PSBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtQ29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRzLmdldChpdGVtLmtleSk7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1Db21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbUNvbXBvbmVudC5pbnN0YW5jZS5zdGF0dXNDaGFuZ2UoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVuZGVyVG9vbGJhclZpZXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50cy5jbGVhcigpO1xuICAgICAgICB0aGlzLnRvb2xiYXJDb250YWluZXIuY2xlYXIoKTtcbiAgICAgICAgY29uc3QgdG9vbGJhckl0ZW1zID0gdGhpcy50b29sYmFySXRlbXNDb21wb3NlKCk7XG4gICAgICAgIGNvbnN0IHsgaXRlbXMsIGdyb3VwIH0gPSB0b29sYmFySXRlbXM7XG5cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmtleSA9PT0gVG9vbGJhckFjdGlvblR5cGVzLnNwbGl0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlVG9vbGJhclNwbGl0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVRvb2xiYXJJdGVtKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jcmVhdGVNb3JlR3JvdXAoZ3JvdXApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjYWxjdWxhdGlvbiBkaXNwbGF5IHRvb2xiYXIgYW5kIG1vcmUgZ3JvdXBlZCB0b29sYmFyc1xuICAgICAqXG4gICAgICpcdOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCBHb29sYmFyVG9vbGJhclZpZXcg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4gICAgICpcdHwg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICNjaGlsZHJlbiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgfFxuICAgICAqXHR8IHwgICDilIzilIDilIDilIDilIDilIDilIDilIAgI2l0ZW1zVmlldyDilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgCAjZ3JvdXBlZEl0ZW1zRHJvcGRvd24g4pSA4pSA4pSA4pSQICAgfCB8XG4gICAgICpcdHwgfCAgIHwgICAgICAgI3VuZ3JvdXBlZEl0ZW1zICAgICB8IHwgVG9vbGJhclNlcGFyYXRvclZpZXcgfCB8ICAgICAgICAjZ3JvdXBlZEl0ZW1zICAgICAgIHwgICB8IHxcbiAgICAgKlx0fCB8ICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSALeKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAgfCB8XG4gICAgICpcdHwgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXC0tLS0tLS0tLS0gb25seSB3aGVuIHRvb2xiYXIgaXRlbXMgb3ZlcmZsb3cgLS0tLS0tLS0vICAgfCB8XG4gICAgICpcdHwg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIHxcbiAgICAgKlx04pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG4gICAgICogc3BsaXQgd2lkdGg6IDZweFxuICAgICAqIGl0ZW0gd2lkdGg6IGRlZmF1bHQgaXRlbTogMzVweDsgZHJvcGRvd24gaXRlbTogNTBweFxuICAgICAqIHNldCBhc2lkZSA1MHB4XG4gICAgICovXG4gICAgcHJpdmF0ZSB0b29sYmFySXRlbXNDb21wb3NlKCk6IFRvb2xiYXJJdGVtc0NvbXBvc2VSZXR1cm4ge1xuICAgICAgICBsZXQgZWxlbWVudFdpZHRoID0gdGhpcy5pc01vcmUgPyB0aGlzLmVsZW1lbnRXaWR0aCA6IG51bGw7XG4gICAgICAgIGNvbnN0IG1heEl0ZW1XaWR0aCA9IDUwO1xuICAgICAgICBjb25zdCBkZWZhdWx0SXRlbVdpZHRoID0gMzU7XG4gICAgICAgIGNvbnN0IHNwbGl0V2lkdGggPSA2O1xuICAgICAgICAvLyBzcGVjaWFsIHR5cGVcbiAgICAgICAgY29uc3QgaGVhZGluZ1dpZHRoID0gNzA7XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBUb29sYmFySXRlbVtdID0gW107XG4gICAgICAgIGNvbnN0IGdyb3VwOiBUb29sYmFySXRlbVtdID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMudG9vbGJhckl0ZW1zKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNNb3JlKSB7XG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gbm90IGVub3VnaCBmcmVlIHNwYWNlXG4gICAgICAgICAgICBjb25zdCBhbGxvd1JlbmRlciA9IGVsZW1lbnRXaWR0aCAmJiBlbGVtZW50V2lkdGggPiBtYXhJdGVtV2lkdGg7XG4gICAgICAgICAgICBpZiAoYWxsb3dSZW5kZXIgJiYgaXRlbS5rZXkgPT09IFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCkge1xuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgZWxlbWVudFdpZHRoIC09IHNwbGl0V2lkdGg7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChhbGxvd1JlbmRlcikge1xuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGdyb3VwLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpdGVtLmtleSA9PT0gRWxlbWVudEtpbmRzLmhlYWRpbmdMaXN0KSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudFdpZHRoIC09IGhlYWRpbmdXaWR0aDtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGlzQ3VzdG9tQ29tcG9uZW50ID0gaXRlbT8udHlwZSA9PT0gVG9vbGJhckl0ZW1UeXBlLnRvb2xEcm9wZG93biB8fCAhIWl0ZW0/Lmljb25Db21wb25lbnQ7XG4gICAgICAgICAgICBlbGVtZW50V2lkdGggLT0gaXNDdXN0b21Db21wb25lbnQgPyBtYXhJdGVtV2lkdGggOiBkZWZhdWx0SXRlbVdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW1zOiB0aGlzLnB1cmVUb29sYmFySXRlbXMoaXRlbXMpLFxuICAgICAgICAgICAgZ3JvdXBcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBleHRlcm5hbGx5IGRlc2lnbmF0ZWQgbW9yZSBncm91cFxuICAgICAqL1xuICAgIHByaXZhdGUgdG9vbGJhckl0ZW1zQW5kTW9yZUNvbXBvc2UoKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gW107XG4gICAgICAgIGNvbnN0IGdyb3VwID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMudG9vbGJhckl0ZW1zKSB7XG4gICAgICAgICAgICBpZiAoaXRlbS5rZXkgPT09IFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCkge1xuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW1zOiB0aGlzLnB1cmVUb29sYmFySXRlbXMoaXRlbXMpLFxuICAgICAgICAgICAgZ3JvdXBcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBmaWx0ZXIgYWRqYWNlbnQgcmVwZWF0ZWQgZGl2aWRlcnNcbiAgICAgKiBAcGFyYW0ge1Rvb2xiYXJJdGVtW119IGl0ZW1zXG4gICAgICogQHJldHVybnNcbiAgICAgKiBAbWVtYmVyb2YgVGhlVG9vbGJhckNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1cmVUb29sYmFySXRlbXMoaXRlbXM6IFRvb2xiYXJJdGVtW10pIHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGEsIGkpID0+IHtcbiAgICAgICAgICAgIGlmIChpID4gMCAmJiBpdGVtc1tpIC0gMV0ua2V5ICE9PSBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhLmtleSAhPT0gVG9vbGJhckFjdGlvblR5cGVzLnNwbGl0O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVRvb2xiYXJJdGVtKGl0ZW06IFRvb2xiYXJJdGVtKSB7XG4gICAgICAgIGNvbnN0IHsgaWNvbkNvbXBvbmVudCwgdHlwZSwgZHJvcGRvd25Nb2RlLCBkcm9wZG93bkl0ZW1LZXksIGluY2x1ZGVzLCAuLi5hcmdzIH0gPSBpdGVtO1xuICAgICAgICBjb25zdCB2aWV3Q29tcG9uZW50ID0gdGhpcy52aWV3Q29tcG9uZW50VHlwZSh0eXBlKTtcbiAgICAgICAgY29uc3QgZHJvcGRvd25JdGVtID0gdGhpcy5nZXREcm9wZG93bkl0ZW0oaXRlbSk7XG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShpY29uQ29tcG9uZW50ID8gaWNvbkNvbXBvbmVudCA6IHZpZXdDb21wb25lbnQpO1xuICAgICAgICBjb25zdCBjb21wUmVmID0gdGhpcy50b29sYmFyQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcblxuICAgICAgICBjb21wUmVmLmluc3RhbmNlLmVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgICAgICBjb21wUmVmLmluc3RhbmNlLnRvb2xiYXJJdGVtID0gaXRlbTtcbiAgICAgICAgY29tcFJlZi5pbnN0YW5jZS5tZW51cyA9IGluY2x1ZGVzO1xuICAgICAgICBjb21wUmVmLmluc3RhbmNlLml0ZW0gPSBpbmNsdWRlcyAmJiBkcm9wZG93bkl0ZW0gPyBkcm9wZG93bkl0ZW0gOiBhcmdzO1xuICAgICAgICBjb21wUmVmLmluc3RhbmNlLm1vZGUgPSBkcm9wZG93bk1vZGU7XG4gICAgICAgIHRoaXMuY29tcG9uZW50cy5zZXQoaXRlbS5rZXksIGNvbXBSZWYpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlVG9vbGJhclNwbGl0KCkge1xuICAgICAgICBjb25zdCBuYXZTcGxpdExpbmVGYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoTmF2U3BsaXRMaW5lQ29tcG9uZW50KTtcbiAgICAgICAgdGhpcy50b29sYmFyQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChuYXZTcGxpdExpbmVGYWN0b3J5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZU1vcmVHcm91cChncm91cDogVG9vbGJhckl0ZW1bXSkge1xuICAgICAgICBpZiAoZ3JvdXAubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgbW9yZUdyb3VwRmFjdG9yeSA9IHRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMudG9vbGJhckdyb3VwQ29tcG9uZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLnRvb2xiYXJDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KG1vcmVHcm91cEZhY3RvcnkpO1xuICAgICAgICAgICAgY29tcFJlZi5pbnN0YW5jZS5lZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICAgICAgICAgIGNvbXBSZWYuaW5zdGFuY2UubWVudXMgPSBncm91cDtcbiAgICAgICAgICAgIGNvbXBSZWYuaW5zdGFuY2UuaXRlbSA9IHRoaXMubW9yZUdyb3VwTWVudTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50cy5zZXQodGhpcy5tb3JlR3JvdXBNZW51LmtleSwgY29tcFJlZik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZpZXdDb21wb25lbnRUeXBlKHR5cGU6IFRvb2xiYXJJdGVtVHlwZSkge1xuICAgICAgICBpZiAodHlwZSA9PT0gVG9vbGJhckl0ZW1UeXBlLmRlZmF1bHQpIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVUb29sYmFySXRlbUNvbXBvbmVudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZSA9PT0gVG9vbGJhckl0ZW1UeXBlLnRvb2xEcm9wZG93bikge1xuICAgICAgICAgICAgcmV0dXJuIFRoZVRvb2xiYXJEcm9wZG93bkNvbXBvbmVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gVGhlVG9vbGJhckl0ZW1Db21wb25lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREcm9wZG93bkl0ZW0oaXRlbTogVG9vbGJhckl0ZW0pIHtcbiAgICAgICAgbGV0IGRyb3Bkb3duS2V5OiBUb29sYmFyS2V5IHwgc3RyaW5nID0gaXRlbT8uZHJvcGRvd25JdGVtS2V5O1xuICAgICAgICAvLyBtb2RpZnkgdGhlIGZvbnRzaXplIG9wdGlvbiBleHRlcm5hbGx5XG4gICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gdGhpcy5lZGl0b3I/LmluamVjdG9yPy5nZXQoVGhlQ29udGV4dFNlcnZpY2UpO1xuICAgICAgICBjb25zdCBmb250U2l6ZSA9IGNvbnRleHRTZXJ2aWNlPy5nZXREZWZhdWx0Rm9udFNpemUoKTtcbiAgICAgICAgaWYgKGNvbnRleHRTZXJ2aWNlICYmIGl0ZW0ua2V5ID09PSBNYXJrVHlwZXMuZm9udFNpemUgJiYgZm9udFNpemUpIHtcbiAgICAgICAgICAgIGRyb3Bkb3duS2V5ID0gZm9udFNpemU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW0/LmluY2x1ZGVzPy5maW5kKChpdGVtOiBUb29sYmFySXRlbSkgPT4gaXRlbS5rZXkgPT09IGRyb3Bkb3duS2V5KTtcbiAgICB9XG59XG4iLCI8dGh5LWljb24tbmF2IFtzdHlsZS5qdXN0aWZ5Q29udGVudF09XCJhbGlnblwiPlxuICAgIDxuZy1jb250YWluZXIgI3Rvb2xiYXJDb250YWluZXI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImFmdGVyVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJhZnRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvdGh5LWljb24tbmF2PlxuIl19
@@ -15,7 +15,6 @@ export var ToolbarItemMode;
15
15
  })(ToolbarItemMode || (ToolbarItemMode = {}));
16
16
  export const DefaultGlobalToolbarDefinition = [
17
17
  ElementKinds.headingList,
18
- MarkTypes.fontSize,
19
18
  ToolbarActionTypes.split,
20
19
  MarkTypes.bold,
21
20
  MarkTypes.italic,
@@ -30,7 +29,6 @@ export const DefaultGlobalToolbarDefinition = [
30
29
  ToolbarActionTypes.split,
31
30
  ElementKinds.numberedList,
32
31
  ElementKinds.bulletedList,
33
- // ElementKinds.checkItem,
34
32
  ToolbarActionTypes.split,
35
33
  ElementKinds.link,
36
34
  ElementKinds.image,
@@ -58,7 +56,6 @@ export const DefaultQuickToolbarDefinition = [
58
56
  ToolbarActionTypes.split,
59
57
  ElementKinds.numberedList,
60
58
  ElementKinds.bulletedList,
61
- // ElementKinds.checkItem,
62
59
  ToolbarActionTypes.split,
63
60
  ElementKinds.link,
64
61
  ElementKinds.image,
@@ -71,4 +68,4 @@ export const ToolbarMoreGroup = {
71
68
  key: 'more',
72
69
  icon: 'more'
73
70
  };
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb25zdGFudHMvdG9vbGJhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUEwQyx5QkFBeUIsQ0FBQyxDQUFDO0FBRTNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQUV4QyxNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3BCLGtDQUFrQixDQUFBO0lBQ2xCLGtDQUFrQixDQUFBO0FBQ3RCLENBQUMsRUFIVyxZQUFZLEtBQVosWUFBWSxRQUd2QjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDdkIsaUVBQVUsQ0FBQTtJQUNWLDZEQUFRLENBQUE7QUFDWixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUFFRCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBaUI7SUFDeEQsWUFBWSxDQUFDLFdBQVc7SUFDeEIsU0FBUyxDQUFDLFFBQVE7SUFDbEIsa0JBQWtCLENBQUMsS0FBSztJQUN4QixTQUFTLENBQUMsSUFBSTtJQUNkLFNBQVMsQ0FBQyxNQUFNO0lBQ2hCLFNBQVMsQ0FBQyxTQUFTO0lBQ25CLFNBQVMsQ0FBQyxNQUFNO0lBQ2hCLFlBQVksQ0FBQyxVQUFVO0lBQ3ZCLFNBQVMsQ0FBQyxLQUFLO0lBQ2YsU0FBUyxDQUFDLGVBQWU7SUFDekIsa0JBQWtCLENBQUMsS0FBSztJQUN4QixrQkFBa0IsQ0FBQyxTQUFTO0lBQzVCLGtCQUFrQixDQUFDLGFBQWE7SUFDaEMsa0JBQWtCLENBQUMsS0FBSztJQUN4QixZQUFZLENBQUMsWUFBWTtJQUN6QixZQUFZLENBQUMsWUFBWTtJQUN6QiwwQkFBMEI7SUFDMUIsa0JBQWtCLENBQUMsS0FBSztJQUN4QixZQUFZLENBQUMsSUFBSTtJQUNqQixZQUFZLENBQUMsS0FBSztJQUNsQixZQUFZLENBQUMsS0FBSztJQUNsQixZQUFZLENBQUMsVUFBVTtJQUN2QixZQUFZLENBQUMsSUFBSTtDQUNwQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQWlCO0lBQ3hELGtCQUFrQixDQUFDLEtBQUs7SUFDeEIsa0JBQWtCLENBQUMsS0FBSztJQUN4QixTQUFTLENBQUMsSUFBSTtJQUNkLFNBQVMsQ0FBQyxNQUFNO0lBQ2hCLFNBQVMsQ0FBQyxTQUFTO0lBQ25CLFNBQVMsQ0FBQyxNQUFNO0lBQ2hCLFlBQVksQ0FBQyxVQUFVO0lBQ3ZCLFNBQVMsQ0FBQyxLQUFLO0lBQ2YsU0FBUyxDQUFDLGVBQWU7SUFDekIsa0JBQWtCLENBQUMsS0FBSztJQUN4QixrQkFBa0IsQ0FBQyxTQUFTO0lBQzVCLGtCQUFrQixDQUFDLEtBQUs7SUFDeEIsWUFBWSxDQUFDLElBQUk7Q0FDcEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFpQjtJQUN2RCxHQUFHLHNCQUFzQjtJQUN6QixrQkFBa0IsQ0FBQyxLQUFLO0lBQ3hCLFlBQVksQ0FBQyxZQUFZO0lBQ3pCLFlBQVksQ0FBQyxZQUFZO0lBQ3pCLDBCQUEwQjtJQUMxQixrQkFBa0IsQ0FBQyxLQUFLO0lBQ3hCLFlBQVksQ0FBQyxJQUFJO0lBQ2pCLFlBQVksQ0FBQyxLQUFLO0lBQ2xCLFlBQVksQ0FBQyxLQUFLO0lBQ2xCLFlBQVksQ0FBQyxVQUFVO0lBQ3ZCLFlBQVksQ0FBQyxFQUFFO0lBQ2YsWUFBWSxDQUFDLElBQUk7Q0FDcEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFnQjtJQUN6QyxHQUFHLEVBQUUsTUFBTTtJQUNYLElBQUksRUFBRSxNQUFNO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMsIE1hcmtUeXBlcyB9IGZyb20gJy4vbm9kZS10eXBlcyc7XG5pbXBvcnQgeyBUb29sYmFySXRlbSwgVG9vbGJhcktleSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVG9vbGJhckFjdGlvblR5cGVzLCBTVEFOREFSRF9IRUFESU5HX1RZUEVTIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBUaGVUb29sYmFyR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3Rvb2xiYXItZ3JvdXAvdG9vbGJhci1ncm91cC5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgVGhlVG9vbGJhckdyb3VwVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29tcG9uZW50VHlwZTxUaGVUb29sYmFyR3JvdXBDb21wb25lbnQ+PigndGhlLXRvb2xiYXItZ3JvdXAtdG9rZW4nKTtcblxuZXhwb3J0IGNvbnN0IFFVSUNLX1RPT0xCQVJfSE9US0VZID0gJy8nO1xuXG5leHBvcnQgZW51bSBEcm9wZG93bk1vZGUge1xuICAgIGljb24gPSAnaWNvbi1tb2RlJyxcbiAgICB0ZXh0ID0gJ3RleHQtbW9kZSdcbn1cblxuZXhwb3J0IGVudW0gVG9vbGJhckl0ZW1Nb2RlIHtcbiAgICBob3Jpem9udGFsLFxuICAgIHZlcnRpY2FsXG59XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0R2xvYmFsVG9vbGJhckRlZmluaXRpb246IFRvb2xiYXJLZXlbXSA9IFtcbiAgICBFbGVtZW50S2luZHMuaGVhZGluZ0xpc3QsXG4gICAgTWFya1R5cGVzLmZvbnRTaXplLFxuICAgIFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCxcbiAgICBNYXJrVHlwZXMuYm9sZCxcbiAgICBNYXJrVHlwZXMuaXRhbGljLFxuICAgIE1hcmtUeXBlcy51bmRlcmxpbmUsXG4gICAgTWFya1R5cGVzLnN0cmlrZSxcbiAgICBFbGVtZW50S2luZHMuaW5saW5lQ29kZSxcbiAgICBNYXJrVHlwZXMuY29sb3IsXG4gICAgTWFya1R5cGVzLmJhY2tncm91bmRDb2xvcixcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQsXG4gICAgVG9vbGJhckFjdGlvblR5cGVzLmFsaWduVHlwZSxcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMudmVydGljYWxBbGlnbixcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQsXG4gICAgRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdCxcbiAgICBFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0LFxuICAgIC8vIEVsZW1lbnRLaW5kcy5jaGVja0l0ZW0sXG4gICAgVG9vbGJhckFjdGlvblR5cGVzLnNwbGl0LFxuICAgIEVsZW1lbnRLaW5kcy5saW5rLFxuICAgIEVsZW1lbnRLaW5kcy5pbWFnZSxcbiAgICBFbGVtZW50S2luZHMudGFibGUsXG4gICAgRWxlbWVudEtpbmRzLmJsb2NrcXVvdGUsXG4gICAgRWxlbWVudEtpbmRzLmNvZGVcbl07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0SW5saW5lVG9vbGJhckRlZmluaXRpb246IFRvb2xiYXJLZXlbXSA9IFtcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuY2xlYW4sXG4gICAgVG9vbGJhckFjdGlvblR5cGVzLnNwbGl0LFxuICAgIE1hcmtUeXBlcy5ib2xkLFxuICAgIE1hcmtUeXBlcy5pdGFsaWMsXG4gICAgTWFya1R5cGVzLnVuZGVybGluZSxcbiAgICBNYXJrVHlwZXMuc3RyaWtlLFxuICAgIEVsZW1lbnRLaW5kcy5pbmxpbmVDb2RlLFxuICAgIE1hcmtUeXBlcy5jb2xvcixcbiAgICBNYXJrVHlwZXMuYmFja2dyb3VuZENvbG9yLFxuICAgIFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCxcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuYWxpZ25UeXBlLFxuICAgIFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCxcbiAgICBFbGVtZW50S2luZHMubGlua1xuXTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRRdWlja1Rvb2xiYXJEZWZpbml0aW9uOiBUb29sYmFyS2V5W10gPSBbXG4gICAgLi4uU1RBTkRBUkRfSEVBRElOR19UWVBFUyxcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQsXG4gICAgRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdCxcbiAgICBFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0LFxuICAgIC8vIEVsZW1lbnRLaW5kcy5jaGVja0l0ZW0sXG4gICAgVG9vbGJhckFjdGlvblR5cGVzLnNwbGl0LFxuICAgIEVsZW1lbnRLaW5kcy5saW5rLFxuICAgIEVsZW1lbnRLaW5kcy5pbWFnZSxcbiAgICBFbGVtZW50S2luZHMudGFibGUsXG4gICAgRWxlbWVudEtpbmRzLmJsb2NrcXVvdGUsXG4gICAgRWxlbWVudEtpbmRzLmhyLFxuICAgIEVsZW1lbnRLaW5kcy5jb2RlXG5dO1xuXG5leHBvcnQgY29uc3QgVG9vbGJhck1vcmVHcm91cDogVG9vbGJhckl0ZW0gPSB7XG4gICAga2V5OiAnbW9yZScsXG4gICAgaWNvbjogJ21vcmUnXG59O1xuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb25zdGFudHMvdG9vbGJhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUEwQyx5QkFBeUIsQ0FBQyxDQUFDO0FBRTNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQUV4QyxNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3BCLGtDQUFrQixDQUFBO0lBQ2xCLGtDQUFrQixDQUFBO0FBQ3RCLENBQUMsRUFIVyxZQUFZLEtBQVosWUFBWSxRQUd2QjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDdkIsaUVBQVUsQ0FBQTtJQUNWLDZEQUFRLENBQUE7QUFDWixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUFFRCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBaUI7SUFDeEQsWUFBWSxDQUFDLFdBQVc7SUFDeEIsa0JBQWtCLENBQUMsS0FBSztJQUN4QixTQUFTLENBQUMsSUFBSTtJQUNkLFNBQVMsQ0FBQyxNQUFNO0lBQ2hCLFNBQVMsQ0FBQyxTQUFTO0lBQ25CLFNBQVMsQ0FBQyxNQUFNO0lBQ2hCLFlBQVksQ0FBQyxVQUFVO0lBQ3ZCLFNBQVMsQ0FBQyxLQUFLO0lBQ2YsU0FBUyxDQUFDLGVBQWU7SUFDekIsa0JBQWtCLENBQUMsS0FBSztJQUN4QixrQkFBa0IsQ0FBQyxTQUFTO0lBQzVCLGtCQUFrQixDQUFDLGFBQWE7SUFDaEMsa0JBQWtCLENBQUMsS0FBSztJQUN4QixZQUFZLENBQUMsWUFBWTtJQUN6QixZQUFZLENBQUMsWUFBWTtJQUN6QixrQkFBa0IsQ0FBQyxLQUFLO0lBQ3hCLFlBQVksQ0FBQyxJQUFJO0lBQ2pCLFlBQVksQ0FBQyxLQUFLO0lBQ2xCLFlBQVksQ0FBQyxLQUFLO0lBQ2xCLFlBQVksQ0FBQyxVQUFVO0lBQ3ZCLFlBQVksQ0FBQyxJQUFJO0NBQ3BCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBaUI7SUFDeEQsa0JBQWtCLENBQUMsS0FBSztJQUN4QixrQkFBa0IsQ0FBQyxLQUFLO0lBQ3hCLFNBQVMsQ0FBQyxJQUFJO0lBQ2QsU0FBUyxDQUFDLE1BQU07SUFDaEIsU0FBUyxDQUFDLFNBQVM7SUFDbkIsU0FBUyxDQUFDLE1BQU07SUFDaEIsWUFBWSxDQUFDLFVBQVU7SUFDdkIsU0FBUyxDQUFDLEtBQUs7SUFDZixTQUFTLENBQUMsZUFBZTtJQUN6QixrQkFBa0IsQ0FBQyxLQUFLO0lBQ3hCLGtCQUFrQixDQUFDLFNBQVM7SUFDNUIsa0JBQWtCLENBQUMsS0FBSztJQUN4QixZQUFZLENBQUMsSUFBSTtDQUNwQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQWlCO0lBQ3ZELEdBQUcsc0JBQXNCO0lBQ3pCLGtCQUFrQixDQUFDLEtBQUs7SUFDeEIsWUFBWSxDQUFDLFlBQVk7SUFDekIsWUFBWSxDQUFDLFlBQVk7SUFDekIsa0JBQWtCLENBQUMsS0FBSztJQUN4QixZQUFZLENBQUMsSUFBSTtJQUNqQixZQUFZLENBQUMsS0FBSztJQUNsQixZQUFZLENBQUMsS0FBSztJQUNsQixZQUFZLENBQUMsVUFBVTtJQUN2QixZQUFZLENBQUMsRUFBRTtJQUNmLFlBQVksQ0FBQyxJQUFJO0NBQ3BCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBZ0I7SUFDekMsR0FBRyxFQUFFLE1BQU07SUFDWCxJQUFJLEVBQUUsTUFBTTtDQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWxlbWVudEtpbmRzLCBNYXJrVHlwZXMgfSBmcm9tICcuL25vZGUtdHlwZXMnO1xuaW1wb3J0IHsgVG9vbGJhckl0ZW0sIFRvb2xiYXJLZXkgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRvb2xiYXJBY3Rpb25UeXBlcywgU1RBTkRBUkRfSEVBRElOR19UWVBFUyB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcbmltcG9ydCB0eXBlIHsgVGhlVG9vbGJhckdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy90b29sYmFyLWdyb3VwL3Rvb2xiYXItZ3JvdXAuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IFRoZVRvb2xiYXJHcm91cFRva2VuID0gbmV3IEluamVjdGlvblRva2VuPENvbXBvbmVudFR5cGU8VGhlVG9vbGJhckdyb3VwQ29tcG9uZW50Pj4oJ3RoZS10b29sYmFyLWdyb3VwLXRva2VuJyk7XG5cbmV4cG9ydCBjb25zdCBRVUlDS19UT09MQkFSX0hPVEtFWSA9ICcvJztcblxuZXhwb3J0IGVudW0gRHJvcGRvd25Nb2RlIHtcbiAgICBpY29uID0gJ2ljb24tbW9kZScsXG4gICAgdGV4dCA9ICd0ZXh0LW1vZGUnXG59XG5cbmV4cG9ydCBlbnVtIFRvb2xiYXJJdGVtTW9kZSB7XG4gICAgaG9yaXpvbnRhbCxcbiAgICB2ZXJ0aWNhbFxufVxuXG5leHBvcnQgY29uc3QgRGVmYXVsdEdsb2JhbFRvb2xiYXJEZWZpbml0aW9uOiBUb29sYmFyS2V5W10gPSBbXG4gICAgRWxlbWVudEtpbmRzLmhlYWRpbmdMaXN0LFxuICAgIFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCxcbiAgICBNYXJrVHlwZXMuYm9sZCxcbiAgICBNYXJrVHlwZXMuaXRhbGljLFxuICAgIE1hcmtUeXBlcy51bmRlcmxpbmUsXG4gICAgTWFya1R5cGVzLnN0cmlrZSxcbiAgICBFbGVtZW50S2luZHMuaW5saW5lQ29kZSxcbiAgICBNYXJrVHlwZXMuY29sb3IsXG4gICAgTWFya1R5cGVzLmJhY2tncm91bmRDb2xvcixcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQsXG4gICAgVG9vbGJhckFjdGlvblR5cGVzLmFsaWduVHlwZSxcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMudmVydGljYWxBbGlnbixcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQsXG4gICAgRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdCxcbiAgICBFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0LFxuICAgIFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCxcbiAgICBFbGVtZW50S2luZHMubGluayxcbiAgICBFbGVtZW50S2luZHMuaW1hZ2UsXG4gICAgRWxlbWVudEtpbmRzLnRhYmxlLFxuICAgIEVsZW1lbnRLaW5kcy5ibG9ja3F1b3RlLFxuICAgIEVsZW1lbnRLaW5kcy5jb2RlXG5dO1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdElubGluZVRvb2xiYXJEZWZpbml0aW9uOiBUb29sYmFyS2V5W10gPSBbXG4gICAgVG9vbGJhckFjdGlvblR5cGVzLmNsZWFuLFxuICAgIFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCxcbiAgICBNYXJrVHlwZXMuYm9sZCxcbiAgICBNYXJrVHlwZXMuaXRhbGljLFxuICAgIE1hcmtUeXBlcy51bmRlcmxpbmUsXG4gICAgTWFya1R5cGVzLnN0cmlrZSxcbiAgICBFbGVtZW50S2luZHMuaW5saW5lQ29kZSxcbiAgICBNYXJrVHlwZXMuY29sb3IsXG4gICAgTWFya1R5cGVzLmJhY2tncm91bmRDb2xvcixcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQsXG4gICAgVG9vbGJhckFjdGlvblR5cGVzLmFsaWduVHlwZSxcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQsXG4gICAgRWxlbWVudEtpbmRzLmxpbmtcbl07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0UXVpY2tUb29sYmFyRGVmaW5pdGlvbjogVG9vbGJhcktleVtdID0gW1xuICAgIC4uLlNUQU5EQVJEX0hFQURJTkdfVFlQRVMsXG4gICAgVG9vbGJhckFjdGlvblR5cGVzLnNwbGl0LFxuICAgIEVsZW1lbnRLaW5kcy5udW1iZXJlZExpc3QsXG4gICAgRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCxcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQsXG4gICAgRWxlbWVudEtpbmRzLmxpbmssXG4gICAgRWxlbWVudEtpbmRzLmltYWdlLFxuICAgIEVsZW1lbnRLaW5kcy50YWJsZSxcbiAgICBFbGVtZW50S2luZHMuYmxvY2txdW90ZSxcbiAgICBFbGVtZW50S2luZHMuaHIsXG4gICAgRWxlbWVudEtpbmRzLmNvZGVcbl07XG5cbmV4cG9ydCBjb25zdCBUb29sYmFyTW9yZUdyb3VwOiBUb29sYmFySXRlbSA9IHtcbiAgICBrZXk6ICdtb3JlJyxcbiAgICBpY29uOiAnbW9yZSdcbn07XG4iXX0=