@dotglitch/ngx-common 1.0.32 → 1.0.34

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.
@@ -34,10 +34,9 @@ export declare class VscodeComponent implements AfterViewInit, OnDestroy {
34
34
  mouseWheelScrollSensitivity: number;
35
35
  scrollBeyondLastLine: boolean;
36
36
  scrollBeyondLastColumn: number;
37
- scrollbarAlwaysConsumeMouseWheel: number;
38
37
  lineNumbers: MonacoEditor.editor.LineNumbersType;
38
+ restSettings: MonacoEditor.editor.IStandaloneEditorConstructionOptions;
39
39
  get settings(): MonacoEditor.editor.IStandaloneEditorConstructionOptions;
40
- verticalScrollExhausted: boolean;
41
40
  private _sub;
42
41
  constructor(viewContainer: ViewContainerRef);
43
42
  ngOnChanges(changes: SimpleChanges): void;
@@ -53,5 +52,5 @@ export declare class VscodeComponent implements AfterViewInit, OnDestroy {
53
52
  download(): void;
54
53
  resize: () => void;
55
54
  static ɵfac: i0.ɵɵFactoryDeclaration<VscodeComponent, never>;
56
- static ɵcmp: i0.ɵɵComponentDeclaration<VscodeComponent, "app-vscode", never, { "code": "code"; "customLanguage": "customLanguage"; "language": "language"; "installationLocation": "installationLocation"; "tabSize": "tabSize"; "readOnly": "readOnly"; "theme": "theme"; "fontFamily": "fontFamily"; "fontSize": "fontSize"; "automaticLayout": "automaticLayout"; "colorDecorators": "colorDecorators"; "folding": "folding"; "minimapEnabled": "minimapEnabled"; "minimap": "minimap"; "scrollbar": "scrollbar"; "smoothScrolling": "smoothScrolling"; "mouseWheelScrollSensitivity": "mouseWheelScrollSensitivity"; "scrollBeyondLastLine": "scrollBeyondLastLine"; "scrollBeyondLastColumn": "scrollBeyondLastColumn"; "scrollbarAlwaysConsumeMouseWheel": "scrollbarAlwaysConsumeMouseWheel"; "lineNumbers": "lineNumbers"; }, { "codeChange": "codeChange"; }, never, never, true, never>;
55
+ static ɵcmp: i0.ɵɵComponentDeclaration<VscodeComponent, "app-vscode", never, { "code": "code"; "customLanguage": "customLanguage"; "language": "language"; "installationLocation": "installationLocation"; "tabSize": "tabSize"; "readOnly": "readOnly"; "theme": "theme"; "fontFamily": "fontFamily"; "fontSize": "fontSize"; "automaticLayout": "automaticLayout"; "colorDecorators": "colorDecorators"; "folding": "folding"; "minimapEnabled": "minimapEnabled"; "minimap": "minimap"; "scrollbar": "scrollbar"; "smoothScrolling": "smoothScrolling"; "mouseWheelScrollSensitivity": "mouseWheelScrollSensitivity"; "scrollBeyondLastLine": "scrollBeyondLastLine"; "scrollBeyondLastColumn": "scrollBeyondLastColumn"; "lineNumbers": "lineNumbers"; "restSettings": "restSettings"; }, { "codeChange": "codeChange"; }, never, never, true, never>;
57
56
  }
@@ -9,6 +9,7 @@ import { ToolbarComponent } from './toolbar/toolbar.component';
9
9
  import { TreeViewComponent } from './tree-view/tree-view.component';
10
10
  import { NGX_WEB_COMPONENTS_CONFIG } from '../types';
11
11
  import { IconResolver } from './icon-resolver';
12
+ import { ulid } from 'ulidx';
12
13
  import * as i0 from "@angular/core";
13
14
  import * as i1 from "../lazy-loader/lazy-loader.service";
14
15
  import * as i2 from "../../public-api";
@@ -101,7 +102,7 @@ export class FilemanagerComponent {
101
102
  }
102
103
  initTab(path) {
103
104
  this.tabs.push(this.currentTab = {
104
- id: crypto.randomUUID(),
105
+ id: ulid(),
105
106
  label: this.getTabLabel(path),
106
107
  breadcrumb: this.calcBreadcrumb(path),
107
108
  path,
@@ -298,4 +299,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
298
299
  }], filesSelect: [{
299
300
  type: Output
300
301
  }] } });
301
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZW1hbmFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb21wb25lbnRzL2ZpbGVtYW5hZ2VyL2ZpbGVtYW5hZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9maWxlbWFuYWdlci9maWxlbWFuYWdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQWUseUJBQXlCLEVBQTBCLE1BQU0sVUFBVSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUE4Si9DLE1BQU0sT0FBTyxvQkFBb0I7SUFvRTdCLElBQUksZUFBZSxLQUFLLE9BQU8s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O2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9yT2YsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0VGFiR3JvdXAsIE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdERyYXdlckNvbnRhaW5lciwgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgQW5ndWxhclNwbGl0TW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zcGxpdCc7XG5cbmltcG9ydCB7IEZpbGVHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLWdyaWQvZmlsZS1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlU29ydGluZywgTkdYX1dFQl9DT01QT05FTlRTX0NPTkZJRywgTmd4V2ViQ29tcG9uZW50c0NvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEljb25SZXNvbHZlciB9IGZyb20gJy4vaWNvbi1yZXNvbHZlcic7XG5pbXBvcnQgeyBMYXp5TG9hZGVyU2VydmljZSwgTkdYX0xBWllfTE9BREVSX0NPTkZJRyB9IGZyb20gJy4uL2xhenktbG9hZGVyL2xhenktbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmV0Y2ggfSBmcm9tICcuLi8uLi9wdWJsaWMtYXBpJztcblxuLy8gVE9ETzpcbi8qKlxuICogTXVsdGlwbGUgbXVzaWMgLyB2aWRlbyAvIGltYWdlIGZpbGVzIHNlbGVjdGVkIHR1cm5zIGludG8gYSBwbGF5bGlzdFxuICogRHJhZ2dpbmcgbXVzaWMgLyB2aWRlbyAvIGltYWdlIHF1ZXVlcyB0aGUgZmlsZShzKVxuICogQ2FuIHNhdmUgYW5kIGVkaXQgYSBsaXN0IG9mIGZpbGVzIGFzIHBsYXlsaXN0XG4gKiBDYW4gXCJsb29wXCIgXCJyYW5kb21pemVcIlxuICovXG5cbmV4cG9ydCB0eXBlIERpcmVjdG9yeURlc2NyaXB0b3IgPSB7XG4gICAga2luZDogXCJkaXJlY3RvcnlcIixcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgbmFtZTogc3RyaW5nXG4gICAgY29udGVudHM6IHtcbiAgICAgICAgZGlyczogRGlyZWN0b3J5RGVzY3JpcHRvcltdLFxuICAgICAgICBmaWxlczogRmlsZURlc2NyaXB0b3JbXVxuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgRmlsZURlc2NyaXB0b3IgPSB7XG4gICAga2luZDogXCJmaWxlXCIsXG4gICAgc3RhdHM6IHtcbiAgICAgICAgc2l6ZTogbnVtYmVyO1xuICAgICAgICAvLyBTaXplIGZvciB6aXBwZWQgZmlsZVxuICAgICAgICBjb21wcmVzc2VkU2l6ZT86IG51bWJlcixcbiAgICAgICAgYXRpbWVNczogbnVtYmVyO1xuICAgICAgICBtdGltZU1zOiBudW1iZXI7XG4gICAgICAgIGN0aW1lTXM6IG51bWJlcjtcbiAgICAgICAgYmlydGh0aW1lTXM6IG51bWJlcjtcbiAgICB9LFxuICAgIHBhdGg6IHN0cmluZ1xuICAgIG5hbWU6IHN0cmluZyxcbiAgICBleHQ6IHN0cmluZyxcbiAgICAvLyBDb21tZW50IGZvciBlbnRyaWVzIGluIGEgemlwIGZpbGUuXG4gICAgY29tbWVudD86IHN0cmluZ1xufTtcblxuZXhwb3J0IHR5cGUgRlNEZXNjcmlwdG9yID0gRGlyZWN0b3J5RGVzY3JpcHRvciB8IEZpbGVEZXNjcmlwdG9yO1xuXG5leHBvcnQgdHlwZSBGaWxlVmlld1RhYiA9IHtcbiAgICBpZDogc3RyaW5nLFxuICAgIGxhYmVsOiBzdHJpbmcsXG4gICAgYnJlYWRjcnVtYjoge1xuICAgICAgICBpZDogc3RyaW5nLFxuICAgICAgICBsYWJlbDogc3RyaW5nXG4gICAgfVtdLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBzZWxlY3Rpb246IEZTRGVzY3JpcHRvcltdLFxuICAgIHZpZXdNb2RlOiBcImdyaWRcIiB8IFwibGlzdFwiLFxuICAgIGhpc3RvcnlJbmRleDogbnVtYmVyLFxuICAgIGhpc3Rvcnk6IHN0cmluZ1tdLFxuICAgIHNpZGViYXJJdGVtczogRlNEZXNjcmlwdG9yW10sXG4gICAgc29ydE9yZGVyOiBGaWxlU29ydGluZ1xufVxuXG4vLyBUT0RPOiByZXBsYWNlIGh0dHAgY29uZmlnc1xudHlwZSBIdHRwQ29uZmlndXJhdGlvbiA9IChcbiAgICB7IHVybDogc3RyaW5nIH0gfFxuICAgIHsgdXJsVGVtcGxhdGU6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZyB9XG4pICYge1xuICAgIG1ldGhvZD86IFwiZ2V0XCIgfCBcInB1dFwiIHwgXCJwb3N0XCIgfCBcInBhdGNoXCIgfCBcImRlbGV0ZVwiLFxuICAgIGhlYWRlcnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG59XG5cbmV4cG9ydCB0eXBlIE5neEZpbGVNYW5hZ2VyQ29uZmlndXJhdGlvbiA9IFBhcnRpYWw8e1xuICAgIC8qKlxuICAgICAqIEluaXRpYWwgcGF0aFxuICAgICAqL1xuICAgIHBhdGg6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSByb290IHBhdGggKHdpbGwgYXBwZWFyIGFzICcvJykuXG4gICAgICogRGVmYXVsdHMgdG8gJy8nLlxuICAgICAqXG4gICAgICogVXNlciBjYW5ub3QgdmlldyBvdXRzaWRlIG9mIHRoaXMgcGF0aC5cbiAgICAgKiAgIChOb3QgdG8gYmUgdXNlZCBhcyBhIHNlY3VyaXR5IG1lYXN1cmUhKVxuICAgICAqL1xuICAgIGNocm9vdFBhdGg6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFJlc3RyaWN0IHVzZXJzIHRvIG9ubHkgbmF2aWdhdGUgYXJvdW5kIHRvIHN1YnBhdGhzIG9mIHRoZSBzcGVjaWZpZWQgYHBhdGhgXG4gICAgICovXG4gICAgbmF2aWdhdGVPbmx5VG9EZXNjZW5kYW50czogYm9vbGVhbixcbiAgICBzaG93QnJlYWRjcnVtYjogYm9vbGVhbixcbiAgICBzaG93VHJlZXZpZXc6IGJvb2xlYW4sXG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBcInJvb3RcIiBwYXRoIGAvYFxuICAgICAqIERlZmF1bHRzIHRvIFwiU3RvcmFnZVwiXG4gICAgICovXG4gICAgcm9vdE5hbWU6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGJlIHN0b3JlZCBpbiBoaXN0b3J5LlxuICAgICAqL1xuICAgIG1heEhpc3RvcnlMZW5ndGg6IG51bWJlcixcblxuICAgIGFwaVNldHRpbmdzOiB7XG4gICAgICAgIGxpc3RFbnRyaWVzVXJsPzogc3RyaW5nLFxuICAgICAgICBsaXN0RW50cmllc1VybFRlbXBsYXRlPzogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgICAgICBkb3dubG9hZEVudHJ5VXJsPzogc3RyaW5nLFxuICAgICAgICBkb3dubG9hZEVudHJ5VXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gICAgICAgIHVwbG9hZEVudHJ5VXJsPzogc3RyaW5nLFxuICAgICAgICB1cGxvYWRFbnRyeVVybFRlbXBsYXRlPzogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgICAgICBkZWxldGVFbnRyeVVybD86IHN0cmluZyxcbiAgICAgICAgZGVsZXRlRW50cnlVcmxUZW1wbGF0ZT86IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgICAgICAgcmVuYW1lRW50cnlVcmw/OiBzdHJpbmcsXG4gICAgICAgIHJlbmFtZUVudHJ5VXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gICAgICAgIGNyZWF0ZURpcmVjdG9yeVVybD86IHN0cmluZyxcbiAgICAgICAgY3JlYXRlRGlyZWN0b3J5VXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmdcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVGhlIHBhdGggdGhhdCBpbWFnZXMgYXJlIGxvYWRlZCBmcm9tLlxuICAgICAqIERlZmF1bHQgdmFsdWUgYC9hc3NldHMvZG90Z2xpdGNoL3dlYmNvbXBvbmVudHMvYFxuICAgICAqL1xuICAgIGFzc2V0UGF0aDogc3RyaW5nLFxuICAgIHNpZGViYXJMb2NhdGlvblN0cmF0ZWd5OiBcImtub3duXCIgfCBcImN1cnJlbnREaXJlY3RvcnlcIixcblxuICAgIGljb25SZXNvbHZlcjogKGZpbGU6IEZTRGVzY3JpcHRvcikgPT4gc3RyaW5nLFxuXG4gICAgaW1hZ2VTaXplOiBcIm5vcm1hbFwiIHwgXCJzbWFsbFwiIHwgXCJodWdlXCIsXG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqL1xuICAgIHNlbGVjdGlvbk1vZGU6IFwic2luZ2xlXCIgfCBcIm11bHRpcGxlXCIsXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGRldGVybWluZXMgaWYgdGhlIGZpbGVtYW5hZ2VyIHNob3dzIHNlbGVjdGVkIGVudHJpZXNcbiAgICAgKlxuICAgICAqIElmIHNldCB0byBgZm9jdXNGaWxlc2AsIGZpbGUgcGF0aHMgdGhhdCBtYXRjaCBmcm9tIHRoZSBwcm92aWRlZCBgZm9jdXNlZEZpbGVzYFxuICAgICAqIHdpbGwgYmUgaGlnaGxpZ2h0ZWQsIGFuZCBjYW4gYmUgc2VsZWN0ZWQgLyBkZXNlbGVjdGVkLlxuICAgICAqL1xuICAgIG1vZGU6IFwiZm9jdXNGaWxlc1wiIHwgXCJub3JtYWxcIixcbiAgICBmb2N1c2VkRmlsZXM6IHN0cmluZ1tdXG59PlxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1maWxlbWFuYWdlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGVtYW5hZ2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9maWxlbWFuYWdlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdGb3JPZixcbiAgICAgICAgQW5ndWxhclNwbGl0TW9kdWxlLFxuICAgICAgICBGaWxlR3JpZENvbXBvbmVudCxcbiAgICAgICAgTWF0VGFic01vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICAgICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICAgICAgVHJlZVZpZXdDb21wb25lbnRcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRmlsZW1hbmFnZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3RhYkdyb3VwJykgdGFiR3JvdXA6IE1hdFRhYkdyb3VwO1xuICAgIEBWaWV3Q2hpbGRyZW4oRmlsZUdyaWRDb21wb25lbnQpIGZpbGVHcmlkczogRmlsZUdyaWRDb21wb25lbnRbXTtcbiAgICBAVmlld0NoaWxkKFRyZWVWaWV3Q29tcG9uZW50KSB0cmVlVmlldzogVHJlZVZpZXdDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZChUb29sYmFyQ29tcG9uZW50KSB0b29sYmFyOiBUb29sYmFyQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoTWF0RHJhd2VyQ29udGFpbmVyKSBkcmF3ZXI6IE1hdERyYXdlckNvbnRhaW5lcjtcblxuICAgIEBJbnB1dCgpIGNvbmZpZzogTmd4RmlsZU1hbmFnZXJDb25maWd1cmF0aW9uID0ge1xuICAgICAgICBhcGlTZXR0aW5nczoge1xuICAgICAgICAgICAgbGlzdEVudHJpZXNVcmw6IGAvYXBpL2ZpbGVzeXN0ZW0vYCxcbiAgICAgICAgICAgIHVwbG9hZEVudHJ5VXJsOiBgL2FwaS9maWxlc3lzdGVtL2AsXG4gICAgICAgICAgICBkb3dubG9hZEVudHJ5VXJsOiBgL2FwaS9maWxlc3lzdGVtL2AsXG4gICAgICAgICAgICBkZWxldGVFbnRyeVVybDogYC9hcGkvZmlsZXN5c3RlbS9gLFxuICAgICAgICAgICAgY3JlYXRlRGlyZWN0b3J5VXJsOiBgL2FwaS9maWxlc3lzdGVtL2ZvbGRlcmAsXG4gICAgICAgICAgICByZW5hbWVFbnRyeVVybDogYC9hcGkvZmlsZXN5c3RlbS9yZW5hbWVgXG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQElucHV0KCkgZ3JpZFNpemU6IFwic21hbGxcIiB8IFwibm9ybWFsXCIgfCBcImxhcmdlXCIgPSBcIm5vcm1hbFwiO1xuICAgIEBJbnB1dCgpIG1vZGU6IFwiZ3JpZFwiIHwgXCJsaXN0XCI7XG4gICAgQElucHV0KCkgY29udGV4dFRhZ3M6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xuXG5cbiAgICBASW5wdXQoKSB2YWx1ZTogRlNEZXNjcmlwdG9yW10gPSBbXTtcbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZTRGVzY3JpcHRvcltdPigpO1xuXG4gICAgZ3JpZFZhbHVlczogRlNEZXNjcmlwdG9yW11bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBmb2N1c2VkIGZpbGVzIGNoYW5nZS5cbiAgICAgKiBPbmx5IGF2YWlsYWJsZSBpbiBgZm9jdXNGaWxlc2AgbW9kZS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZm9jdXNlZEZpbGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gYSBmaWxlIGlzIHVwbG9hZGVkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBmaWxlVXBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gYSBmaWxlIGlzIGRvd25sb2FkZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIGZpbGVEb3dubG9hZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsZVJlbmFtZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsZURlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsZUNvcHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGZpbGVQYXN0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBmaWxlU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlRGVzY3JpcHRvcj4oKTtcbiAgICBAT3V0cHV0KCkgZmlsZURibENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlRGVzY3JpcHRvcj4oKTtcbiAgICBAT3V0cHV0KCkgZm9sZGVyU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxEaXJlY3RvcnlEZXNjcmlwdG9yPigpO1xuICAgIEBPdXRwdXQoKSBmb2xkZXJEYmxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RGlyZWN0b3J5RGVzY3JpcHRvcj4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gbXVsdGlwbGUgZmlsZSBzZWxlY3Rpb25zIGNoYW5nZS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZmlsZXNTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEZTRGVzY3JpcHRvcltdPigpO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gYW55IHNlbGVjdGlvbiBjaGFuZ2VzLCBzaW5nbGUgb3IgbXVsdGlwbGUgZmlsZXMuXG4gICAgICovXG4gICAgLy8gQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RlNEZXNjcmlwdG9yW10+KCk7XG5cbiAgICBzaG93SGlkZGVuRmlsZXMgPSBmYWxzZTtcbiAgICBzaG93U2lkZWJhciA9IHRydWU7XG4gICAgc2lkZWJhck92ZXJsYXkgPSBmYWxzZTtcbiAgICB3aWR0aCA9IDA7XG5cbiAgICBpc0hvbWVBbmNlc3RvciA9IGZhbHNlO1xuXG4gICAgY3VycmVudFRhYjogRmlsZVZpZXdUYWIgPSB7fSBhcyBhbnk7XG4gICAgZ2V0IGN1cnJlbnRGaWxlR3JpZCgpIHsgcmV0dXJuIHRoaXMuZmlsZUdyaWRzW3RoaXMudGFiSW5kZXhdIH1cbiAgICB0YWJJbmRleCA9IDA7XG4gICAgdGFiczogRmlsZVZpZXdUYWJbXSA9IFtdO1xuXG4gICAgaWNvblJlc29sdmVyOiBJY29uUmVzb2x2ZXI7XG5cbiAgICBjb25zdHJ1Y3RvciAoXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkdYX1dFQl9DT01QT05FTlRTX0NPTkZJRykgcmVhZG9ubHkgbGliQ29uZmlnOiBOZ3hXZWJDb21wb25lbnRzQ29uZmlnID0ge30sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbGF6eUxvYWRlcjogTGF6eUxvYWRlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBmZXRjaDogRmV0Y2hcbiAgICApIHtcbiAgICAgICAgbGF6eUxvYWRlci5yZWdpc3RlckNvbXBvbmVudCh7XG4gICAgICAgICAgICBpZDogXCJmb2xkZXItcmVuYW1lXCIsXG4gICAgICAgICAgICBncm91cDogXCJAZG90Z2xpdGNoL25neC13ZWItY29tcG9uZW50c1wiLFxuICAgICAgICAgICAgbG9hZDogKCkgPT4gaW1wb3J0KCcuL2ZvbGRlci1yZW5hbWUvZm9sZGVyLXJlbmFtZS5jb21wb25lbnQnKVxuICAgICAgICB9KVxuXG4gICAgICAgIHRoaXMuaWNvblJlc29sdmVyID0gbmV3IEljb25SZXNvbHZlcihsaWJDb25maWcuYXNzZXRQYXRoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0VGFiKHRoaXMuY29uZmlnLnBhdGgpO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWIgPSB0aGlzLnRhYnNbMF07XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uUmVzaXplKCksIDI1MCk7XG4gICAgfVxuXG4gICAgb25UcmVlVmlld0xvYWRDaGlsZHJlbih7aXRlbSwgY2J9KSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmxpc3RFbnRyaWVzVXJsVGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5jb25maWcuYXBpU2V0dGluZ3MubGlzdEVudHJpZXNVcmxUZW1wbGF0ZShpdGVtLnBhdGggKyBpdGVtLm5hbWUpXG4gICAgICAgICAgICAgICAgICA6IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmxpc3RFbnRyaWVzVXJsXG5cbiAgICAgICAgdGhpcy5mZXRjaC5wb3N0KHVybCwgeyBwYXRoOiBpdGVtLnBhdGggKyBpdGVtLm5hbWUsIHNob3dIaWRkZW46IHRoaXMuc2hvd0hpZGRlbkZpbGVzIH0pXG4gICAgICAgICAgICAudGhlbigoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlyczogRGlyZWN0b3J5RGVzY3JpcHRvcltdID0gZGF0YS5kaXJzO1xuICAgICAgICAgICAgICAgIGNiKGRpcnMpO1xuICAgICAgICAgICAgfSlcbiAgICB9XG5cbiAgICBpbml0VGFiKHBhdGg6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRhYnMucHVzaCh0aGlzLmN1cnJlbnRUYWIgPSB7XG4gICAgICAgICAgICBpZDogY3J5cHRvLnJhbmRvbVVVSUQoKSxcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFRhYkxhYmVsKHBhdGgpLFxuICAgICAgICAgICAgYnJlYWRjcnVtYjogdGhpcy5jYWxjQnJlYWRjcnVtYihwYXRoKSxcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBzZWxlY3Rpb246IFtdLFxuICAgICAgICAgICAgdmlld01vZGU6IHRoaXMubW9kZSB8fCAnZ3JpZCcsXG4gICAgICAgICAgICBoaXN0b3J5SW5kZXg6IDAsXG4gICAgICAgICAgICBoaXN0b3J5OiBbXSxcbiAgICAgICAgICAgIHNpZGViYXJJdGVtczogW10sXG4gICAgICAgICAgICBzb3J0T3JkZXI6ICdhLXonXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRhYkluZGV4ID0gdGhpcy50YWJzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjbG9zZVRhYih0YWI6IEZpbGVWaWV3VGFiKSB7XG4gICAgICAgIHRoaXMudGFicy5zcGxpY2UodGhpcy50YWJzLmZpbmRJbmRleCh0ID0+IHQuaWQgPT0gdGFiLmlkKSwgMSk7XG4gICAgfVxuXG4gICAgY2FsY0JyZWFkY3J1bWIocGF0aDogc3RyaW5nKSB7XG4gICAgICAgIGlmICghcGF0aCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZShcIiMvXCIsICcvJyk7XG5cbiAgICAgICAgLy8gSWYgd2UncmUgYWN0aW5nIGxpa2Ugd2UncmUgaW4gYSBjaGFuZ2VkIHJvb3QsIHdlIHdpcGUgb3V0XG4gICAgICAgIC8vIGJyZWFkY3J1bWJzIGJlbG93IHRoZSByb290XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5jaHJvb3RQYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKHRoaXMuY29uZmlnLmNocm9vdFBhdGgsICcnKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLycpO1xuXG4gICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKC9eXFwvLywgdGhpcy5jb25maWcuY2hyb290UGF0aCk7XG4gICAgICAgICAgICByZXR1cm4gcGFydHMubWFwKChwLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IHBhcnRzLnNsaWNlKDAsIGkgKyAxKS5qb2luKCcvJyk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpZDogKHRoaXMuY29uZmlnLmNocm9vdFBhdGggKyAocGF0aCB8fCAnLycpKS5yZXBsYWNlKC9cXC8rL2csICcvJyksXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwIHx8IFwiXCJcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoJy8nKTtcblxuICAgICAgICAgICAgcmV0dXJuIHBhcnRzLm1hcCgocCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBwYXJ0cy5zbGljZSgwLCBpICsgMSkuam9pbignLycpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHBhdGggfHwgJy8nLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogcCB8fCBcIlwiXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CcmVhZGNydW1iQ2xpY2soY3J1bWIpIHtcbiAgICAgICAgaWYgKGNydW1iLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWIucGF0aCA9IGNydW1iLmlkO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VGFiLmJyZWFkY3J1bWIgPSB0aGlzLmNhbGNCcmVhZGNydW1iKGNydW1iLmlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVGFiUGF0aENoYW5nZSh0YWI6IEZpbGVWaWV3VGFiKSB7XG4gICAgICAgIHRhYi5sYWJlbCA9IHRoaXMuZ2V0VGFiTGFiZWwodGFiLnBhdGgpO1xuICAgICAgICB0YWIuYnJlYWRjcnVtYiA9IHRoaXMuY2FsY0JyZWFkY3J1bWIodGFiLnBhdGgpO1xuXG4gICAgICAgIHRhYi5oaXN0b3J5SW5kZXgrKztcbiAgICAgICAgdGFiLmhpc3RvcnkucHVzaCh0YWIucGF0aCk7XG4gICAgICAgIHRhYi5oaXN0b3J5LnNwbGljZSh0eXBlb2YgdGhpcy5jb25maWcubWF4SGlzdG9yeUxlbmd0aCA9PSAnbnVtYmVyJyA/IHRoaXMuY29uZmlnLm1heEhpc3RvcnlMZW5ndGggOiA1MCk7XG4gICAgfVxuXG4gICAgb25UcmVlVmlld1NlbGVjdChpdGVtOiBGU0Rlc2NyaXB0b3IpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiLnBhdGggPSBpdGVtLnBhdGggKyBpdGVtLm5hbWU7XG4gICAgfVxuXG4gICAgb25UYWJMb2FkRmlsZXModGFiOiBGaWxlVmlld1RhYiwgZmlsZXM6IEZTRGVzY3JpcHRvcltdKSB7XG4gICAgICAgIGlmICh0YWIuc2lkZWJhckl0ZW1zLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICB0YWIuc2lkZWJhckl0ZW1zID0gZmlsZXMuZmlsdGVyKGYgPT4gZi5raW5kID09IFwiZGlyZWN0b3J5XCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudEl0ZW1zID0gdGFiLnNpZGViYXJJdGVtcztcbiAgICAgICAgY29uc3QgZGlySXRlbXMgPSBmaWxlcy5maWx0ZXIoZiA9PiBmLmtpbmQgPT0gXCJkaXJlY3RvcnlcIik7XG5cbiAgICAgICAgZnVuY3Rpb24gcmVjdXJzZShpdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbmQoaSA9PiB0YWIucGF0aD8uc3RhcnRzV2l0aChpLnBhdGgpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YXJnZXQgPSByZWN1cnNlKGN1cnJlbnRJdGVtcyk7XG5cbiAgICAgICAgaWYgKHRhcmdldClcbiAgICAgICAgICAgIHRhcmdldFsnX2NoaWxkcmVuJ10gPSBkaXJJdGVtcztcblxuICAgICAgICB0YWIuc2lkZWJhckl0ZW1zID0gY3VycmVudEl0ZW1zO1xuICAgIH1cblxuICAgIG9uR3JpZFZhbHVlQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5ncmlkVmFsdWVzLmZsYXQoMSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKVxuICAgIH1cblxuICAgIGdldFRhYkxhYmVsKHBhdGg6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gcGF0aD8uc3BsaXQoJy8nKS5maWx0ZXIocCA9PiBwKS5wb3AoKTtcbiAgICB9XG5cbiAgICBhc3luYyBvblJlc2l6ZSgpIHtcbiAgICAgICAgLy8gVHJpZ2dlciByZS1jYWxjdWxhdGlvbiBvZiB0aGUgdmlld1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5yZXNpemUoKSk7XG5cbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBib3VuZHMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgdGhpcy53aWR0aCA9IGJvdW5kcy53aWR0aDtcblxuICAgICAgICAvLyBJZiB0aGUgdmlldyBhcmVhIGlzIGxlc3MgdGhhbiA2NTBweCB3aWRlLCB1c2Ugb3ZlcmxheSB0aGUgc2lkZWJhciBwYW5lbFxuICAgICAgICB0aGlzLnNpZGViYXJPdmVybGF5ID0gYm91bmRzLndpZHRoIDwgNjUwO1xuICAgICAgICBpZiAodGhpcy5zaWRlYmFyT3ZlcmxheSA9PSBmYWxzZSAmJiBbLi4udGhpcy5kcmF3ZXIuX2RyYXdlcnNdWzBdLm9wZW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIG9uUmVzaXplRW5kKCkge1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uUmVzaXplKCksIDI1MCk7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50VGFiLnZpZXdNb2RlID09IFwiZ3JpZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50VGFiLnNlbGVjdGlvblxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhclNlbGVjdGlvbigpIHtcbiAgICAgICAgdGhpcy5maWxlR3JpZHMuZm9yRWFjaChnID0+IGcuY2xlYXJTZWxlY3Rpb24oKSk7XG4gICAgfVxuXG4gICAgLy8gVGVsbCB0aGUgY2hpbGQgZ3JpZCB0byByZWZyZXNoIGl0J3Mgc29ydGluZ1xuICAgIHJlZnJlc2hTb3J0aW5nKCkge1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5zb3J0KCkpO1xuICAgIH1cblxuICAgIHJlZnJlc2hEYXRhKCkge1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5sb2FkRm9sZGVyKCkpO1xuICAgIH1cblxuICAgIGdldEZpbGVEYXRhKGZpbGU6IEZpbGVEZXNjcmlwdG9yKSB7XG4gICAgICAgIGxldCB1cmwgPSB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5yZW5hbWVFbnRyeVVybFRlbXBsYXRlXG4gICAgICAgICAgICA/IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLnJlbmFtZUVudHJ5VXJsVGVtcGxhdGUoZmlsZS5wYXRoICsgZmlsZS5uYW1lKVxuICAgICAgICAgICAgOiB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5yZW5hbWVFbnRyeVVybDtcblxuICAgICAgICB1cmwgPSAodXJsLmluY2x1ZGVzKCc/JykgPyAnJicgOiAnPycpICsgYGRpcj0ke2ZpbGUucGF0aH0mZmlsZT0ke2ZpbGUubmFtZX1gO1xuXG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfVxufVxuIiwiPGFwcC10b29sYmFyXG4gICAgW2N1cnJlbnRUYWJdPVwiY3VycmVudFRhYlwiXG4gICAgWyhzaG93SGlkZGVuRmlsZXMpXT1cInNob3dIaWRkZW5GaWxlc1wiXG4gICAgWyhzaG93U2lkZWJhcildPVwic2hvd1NpZGViYXJcIlxuICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICBbc2hvd0JhcmVNaW5pbXVtXT1cIndpZHRoIDwgNTAwICYmIGNvbmZpZy5zaG93QnJlYWRjcnVtYiAhPSBmYWxzZVwiXG4gICAgKG9uQnJlYWRjcnVtYkNsaWNrKT1cIm9uQnJlYWRjcnVtYkNsaWNrKCRldmVudClcIlxuLz5cblxuPG1hdC1kcmF3ZXItY29udGFpbmVyPlxuICAgIDxtYXQtZHJhd2VyICNkcmF3ZXIgbW9kZT1cIm92ZXJcIj5cbiAgICAgICAgPGFwcC10b29sYmFyXG4gICAgICAgICAgICAqbmdJZj1cIndpZHRoIDwgNTAwICYmIGNvbmZpZy5zaG93QnJlYWRjcnVtYiAhPSBmYWxzZVwiXG4gICAgICAgICAgICBbY3VycmVudFRhYl09XCJjdXJyZW50VGFiXCJcbiAgICAgICAgICAgIFsoc2hvd0hpZGRlbkZpbGVzKV09XCJzaG93SGlkZGVuRmlsZXNcIlxuICAgICAgICAgICAgWyhzaG93U2lkZWJhcildPVwic2hvd1NpZGViYXJcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAgICAgW2RyYXdlck1vZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAob25CcmVhZGNydW1iQ2xpY2spPVwib25CcmVhZGNydW1iQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxhcHAtdHJlZS12aWV3XG4gICAgICAgICAgICBbZGF0YV09XCJjdXJyZW50VGFiLnNpZGViYXJJdGVtc1wiXG4gICAgICAgICAgICAobG9hZENoaWxkcmVuKT1cIm9uVHJlZVZpZXdMb2FkQ2hpbGRyZW4oJGV2ZW50KVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25UcmVlVmlld1NlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICA8L21hdC1kcmF3ZXI+XG4gICAgPG1hdC1kcmF3ZXItY29udGVudD5cbiAgICAgICAgPGFzLXNwbGl0IGRpcmVjdGlvbj1cImhvcml6b250YWxcIiBbZ3V0dGVyU2l6ZV09XCJzaWRlYmFyT3ZlcmxheSA/IDAgOiAyXCIgW3VuaXRdPVwiJ3BpeGVsJ1wiIChkcmFnRW5kKT1cIm9uUmVzaXplRW5kKClcIj5cbiAgICAgICAgICAgIDxhcy1zcGxpdC1hcmVhXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1maWxlbWFuYWdlci1zaWRlYmFyLWJhY2tncm91bmQtY29sb3IsICMyYzJjMmMpXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCIyMTVcIlxuICAgICAgICAgICAgICAgIFttaW5TaXplXT1cIjIxNVwiXG4gICAgICAgICAgICAgICAgW21heFNpemVdPVwid2lkdGgvNFwiXG4gICAgICAgICAgICAgICAgW3Zpc2libGVdPVwiIXNpZGViYXJPdmVybGF5ICYmIGNvbmZpZy5zaG93VHJlZXZpZXcgIT0gZmFsc2VcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc2lkZWJhck92ZXJsYXkgJiYgY29uZmlnLnNob3dUcmVldmlldyAhPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjdXJyZW50VGFiLnNlbGVjdGlvbiA9IFtdXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtdHJlZS12aWV3XG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJjdXJyZW50VGFiLnNpZGViYXJJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAobG9hZENoaWxkcmVuKT1cIm9uVHJlZVZpZXdMb2FkQ2hpbGRyZW4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25UcmVlVmlld1NlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYXMtc3BsaXQtYXJlYT5cbiAgICAgICAgICAgIDxhcy1zcGxpdC1hcmVhIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZmlsZW1hbmFnZXItYmFja2dyb3VuZC1jb2xvciwgIzI3MjcyNyk7XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuLS10YWItaGVpZ2h0XT1cInRhYnMubGVuZ3RoID4gMSA/ICczNnB4JyA6ICcwJ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYi1ncm91cCAjdGFiR3JvdXAgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cImN1cnJlbnRUYWIgPSB0YWJzWyRldmVudC5pbmRleF1cIiBbKHNlbGVjdGVkSW5kZXgpXT1cInRhYkluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYiAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YWIubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlVGFiKHRhYilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWZpbGUtZ3JpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZpZXdNb2RlXT1cInRhYi52aWV3TW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFiXT1cInRhYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JpZFNpemVdPVwiZ3JpZFNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NvcnRPcmRlcl09XCJ0YWIuc29ydE9yZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoc2VsZWN0aW9uKV09XCJ0YWIuc2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocGF0aCldPVwidGFiLnBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhdGhDaGFuZ2UpPVwib25UYWJQYXRoQ2hhbmdlKHRhYilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiZ3JpZFZhbHVlc1tpXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25HcmlkVmFsdWVDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9hZEZpbGVzKT1cIm9uVGFiTG9hZEZpbGVzKHRhYiwgJGV2ZW50KVwiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlU2VsZWN0KT1cImZpbGVTZWxlY3QubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlRGJsQ2xpY2spPVwiZmlsZURibENsaWNrLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9sZGVyU2VsZWN0KT1cImZvbGRlclNlbGVjdC5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvbGRlckRibENsaWNrKT1cImZvbGRlckRibENsaWNrLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9hcy1zcGxpdC1hcmVhPlxuICAgICAgICA8L2FzLXNwbGl0PlxuICAgIDwvbWF0LWRyYXdlci1jb250ZW50PlxuPC9tYXQtZHJhd2VyLWNvbnRhaW5lcj5cblxuIl19
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZW1hbmFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb21wb25lbnRzL2ZpbGVtYW5hZ2VyL2ZpbGVtYW5hZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9maWxlbWFuYWdlci9maWxlbWFuYWdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQWUseUJBQXlCLEVBQTBCLE1BQU0sVUFBVSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDOzs7Ozs7OztBQTRKN0IsTUFBTSxPQUFPLG9CQUFvQjtJQW9FN0IsSUFBSSxlQUFlLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFNOUQsWUFDNEQsWUFBb0MsRUFBRSxFQUM3RSxVQUE2QixFQUN0QyxhQUErQixFQUMvQixLQUFZO1FBSG9DLGNBQVMsR0FBVCxTQUFTLENBQTZCO1FBQzdFLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQ3RDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBdkVmLFdBQU0sR0FBZ0M7WUFDM0MsV0FBVyxFQUFFO2dCQUNULGNBQWMsRUFBRSxrQkFBa0I7Z0JBQ2xDLGNBQWMsRUFBRSxrQkFBa0I7Z0JBQ2xDLGdCQUFnQixFQUFFLGtCQUFrQjtnQkFDcEMsY0FBYyxFQUFFLGtCQUFrQjtnQkFDbEMsa0JBQWtCLEVBQUUsd0JBQXdCO2dCQUM1QyxjQUFjLEVBQUUsd0JBQXdCO2FBQzNDO1NBQ0osQ0FBQztRQUVPLGFBQVEsR0FBaUMsUUFBUSxDQUFDO1FBS2xELFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBQzFCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFM0QsZUFBVSxHQUFxQixFQUFFLENBQUM7UUFFbEM7OztXQUdHO1FBQ08sdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsRDs7V0FFRztRQUNPLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFDOztXQUVHO1FBQ08saUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9CLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUNoRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBQ2xELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDdkQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUVuRTs7V0FFRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFDM0Q7O1dBRUc7UUFDSCxrRUFBa0U7UUFFbEUsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUVWLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLGVBQVUsR0FBZ0IsRUFBUyxDQUFDO1FBRXBDLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixTQUFJLEdBQWtCLEVBQUUsQ0FBQztRQVVyQixVQUFVLENBQUMsaUJBQWlCLENBQUM7WUFDekIsRUFBRSxFQUFFLGVBQWU7WUFDbkIsS0FBSyxFQUFFLCtCQUErQjtZQUN0QyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHlDQUF5QyxDQUFDO1NBQ2hFLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVoQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUM7UUFDN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsc0JBQXNCO1lBQ2hELENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdkUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQTtRQUVsRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7YUFDbEYsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEdBQTBCLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDOUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUE7SUFDVixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVk7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUM3QixFQUFFLEVBQUUsSUFBSSxFQUFFO1lBQ1YsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQzdCLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztZQUNyQyxJQUFJO1lBQ0osU0FBUyxFQUFFLEVBQUU7WUFDYixRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNO1lBQzdCLFlBQVksRUFBRSxDQUFDO1lBQ2YsT0FBTyxFQUFFLEVBQUU7WUFDWCxZQUFZLEVBQUUsRUFBRTtZQUNoQixTQUFTLEVBQUUsS0FBSztTQUNuQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBZ0I7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVk7UUFDdkIsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV2QixJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFL0IsNERBQTREO1FBQzVELDZCQUE2QjtRQUM3QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQ3hCLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFOUIsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkQsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUU3QyxPQUFPO29CQUNILEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7b0JBQ2pFLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRTtpQkFDakIsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFDSTtZQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFOUIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUU3QyxPQUFPO29CQUNILEVBQUUsRUFBRSxJQUFJLElBQUksR0FBRztvQkFDZixLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUU7aUJBQ2pCLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQUs7UUFDbkIsSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM5RDtJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBZ0I7UUFDNUIsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxHQUFHLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9DLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNuQixHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQWtCO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNqRCxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQWdCLEVBQUUsS0FBcUI7UUFDbEQsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDOUIsR0FBRyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsQ0FBQztZQUM1RCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxDQUFDO1FBRTFELFNBQVMsT0FBTyxDQUFDLEtBQUs7WUFDbEIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyQyxJQUFJLE1BQU07WUFDTixNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBRW5DLEdBQUcsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxpQkFBaUI7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVk7UUFDcEIsT0FBTyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUTtRQUNWLHFDQUFxQztRQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRXhDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGFBQTRCLENBQUM7UUFDbkUsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBRTFCLDBFQUEwRTtRQUMxRSxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDdkI7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDYixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLElBQUksTUFBTSxFQUFFO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUE7U0FDbkM7YUFDSTtZQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNyQjtJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsOENBQThDO0lBQzlDLGNBQWM7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQW9CO1FBQzVCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLHNCQUFzQjtZQUNwRCxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3ZFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUM7UUFFN0MsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLElBQUksQ0FBQyxJQUFJLFNBQVMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTdFLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQzs7aUhBM1FRLG9CQUFvQixrQkEyRUwseUJBQXlCO3FHQTNFeEMsb0JBQW9CLDJyQkFHbEIsaUJBQWlCLDBFQUNqQixnQkFBZ0IseUVBQ2hCLGtCQUFrQiwrREFIZixpQkFBaUIsZ0RDNUtuQyxrb0lBeUZBLGloRERxRVEsSUFBSSw2RkFDSixPQUFPLGtIQUNQLGtCQUFrQixza0JBQ2xCLGlCQUFpQiw0VEFDakIsYUFBYSw2ZEFDYixhQUFhLG1MQUNiLGdCQUFnQiwyaUJBQ2hCLGdCQUFnQiwyT0FDaEIsaUJBQWlCOzJGQUlaLG9CQUFvQjtrQkFqQmhDLFNBQVM7K0JBQ0ksaUJBQWlCLFdBR2xCO3dCQUNMLElBQUk7d0JBQ0osT0FBTzt3QkFDUCxrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7cUJBQ3BCLGNBQ1csSUFBSTs7MEJBNkVYLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMseUJBQXlCOytIQTFFMUIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNZLFNBQVM7c0JBQXpDLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNELFFBQVE7c0JBQXJDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUNDLE9BQU87c0JBQW5DLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUNJLE1BQU07c0JBQXBDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVwQixNQUFNO3NCQUFkLEtBQUs7Z0JBV0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFRRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBSUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFJRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9yT2YsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0VGFiR3JvdXAsIE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdERyYXdlckNvbnRhaW5lciwgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgQW5ndWxhclNwbGl0TW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zcGxpdCc7XG5cbmltcG9ydCB7IEZpbGVHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLWdyaWQvZmlsZS1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlU29ydGluZywgTkdYX1dFQl9DT01QT05FTlRTX0NPTkZJRywgTmd4V2ViQ29tcG9uZW50c0NvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEljb25SZXNvbHZlciB9IGZyb20gJy4vaWNvbi1yZXNvbHZlcic7XG5pbXBvcnQgeyBMYXp5TG9hZGVyU2VydmljZSwgTkdYX0xBWllfTE9BREVSX0NPTkZJRyB9IGZyb20gJy4uL2xhenktbG9hZGVyL2xhenktbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmV0Y2ggfSBmcm9tICcuLi8uLi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IHVsaWQgfSBmcm9tICd1bGlkeCc7XG5cbi8vIFRPRE86XG4vKipcbiAqIE11bHRpcGxlIG11c2ljIC8gdmlkZW8gLyBpbWFnZSBmaWxlcyBzZWxlY3RlZCB0dXJucyBpbnRvIGEgcGxheWxpc3RcbiAqIERyYWdnaW5nIG11c2ljIC8gdmlkZW8gLyBpbWFnZSBxdWV1ZXMgdGhlIGZpbGUocylcbiAqIENhbiBzYXZlIGFuZCBlZGl0IGEgbGlzdCBvZiBmaWxlcyBhcyBwbGF5bGlzdFxuICogQ2FuIFwibG9vcFwiIFwicmFuZG9taXplXCJcbiAqL1xuXG5leHBvcnQgdHlwZSBEaXJlY3RvcnlEZXNjcmlwdG9yID0ge1xuICAgIGtpbmQ6IFwiZGlyZWN0b3J5XCIsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZ1xuICAgIGNvbnRlbnRzOiB7XG4gICAgICAgIGRpcnM6IERpcmVjdG9yeURlc2NyaXB0b3JbXSxcbiAgICAgICAgZmlsZXM6IEZpbGVEZXNjcmlwdG9yW11cbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIEZpbGVEZXNjcmlwdG9yID0ge1xuICAgIGtpbmQ6IFwiZmlsZVwiLFxuICAgIHN0YXRzOiB7XG4gICAgICAgIHNpemU6IG51bWJlcjtcbiAgICAgICAgLy8gU2l6ZSBmb3IgemlwcGVkIGZpbGVcbiAgICAgICAgY29tcHJlc3NlZFNpemU/OiBudW1iZXIsXG4gICAgICAgIGF0aW1lTXM6IG51bWJlcjtcbiAgICAgICAgbXRpbWVNczogbnVtYmVyO1xuICAgICAgICBjdGltZU1zOiBudW1iZXI7XG4gICAgICAgIGJpcnRodGltZU1zOiBudW1iZXI7XG4gICAgfSxcbiAgICBwYXRoOiBzdHJpbmdcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgZXh0OiBzdHJpbmcsXG4gICAgLy8gQ29tbWVudCBmb3IgZW50cmllcyBpbiBhIHppcCBmaWxlLlxuICAgIGNvbW1lbnQ/OiBzdHJpbmdcbn07XG5cbmV4cG9ydCB0eXBlIEZTRGVzY3JpcHRvciA9IERpcmVjdG9yeURlc2NyaXB0b3IgfCBGaWxlRGVzY3JpcHRvcjtcblxuZXhwb3J0IHR5cGUgRmlsZVZpZXdUYWIgPSB7XG4gICAgaWQ6IHN0cmluZyxcbiAgICBsYWJlbDogc3RyaW5nLFxuICAgIGJyZWFkY3J1bWI6IHtcbiAgICAgICAgaWQ6IHN0cmluZyxcbiAgICAgICAgbGFiZWw6IHN0cmluZ1xuICAgIH1bXSxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgc2VsZWN0aW9uOiBGU0Rlc2NyaXB0b3JbXSxcbiAgICB2aWV3TW9kZTogXCJncmlkXCIgfCBcImxpc3RcIixcbiAgICBoaXN0b3J5SW5kZXg6IG51bWJlcixcbiAgICBoaXN0b3J5OiBzdHJpbmdbXSxcbiAgICBzaWRlYmFySXRlbXM6IEZTRGVzY3JpcHRvcltdLFxuICAgIHNvcnRPcmRlcjogRmlsZVNvcnRpbmdcbn1cblxuLy8gVE9ETzogcmVwbGFjZSBodHRwIGNvbmZpZ3NcbnR5cGUgSHR0cENvbmZpZ3VyYXRpb24gPSAoXG4gICAgeyB1cmw6IHN0cmluZyB9IHxcbiAgICB7IHVybFRlbXBsYXRlOiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcgfVxuKSAmIHtcbiAgICBtZXRob2Q/OiBcImdldFwiIHwgXCJwdXRcIiB8IFwicG9zdFwiIHwgXCJwYXRjaFwiIHwgXCJkZWxldGVcIixcbiAgICBoZWFkZXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxufVxuXG5leHBvcnQgdHlwZSBOZ3hGaWxlTWFuYWdlckNvbmZpZ3VyYXRpb24gPSBQYXJ0aWFsPHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsIHBhdGhcbiAgICAgKi9cbiAgICBwYXRoOiBzdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gcm9vdCBwYXRoICh3aWxsIGFwcGVhciBhcyAnLycpLlxuICAgICAqIERlZmF1bHRzIHRvICcvJy5cbiAgICAgKlxuICAgICAqIFVzZXIgY2Fubm90IHZpZXcgb3V0c2lkZSBvZiB0aGlzIHBhdGguXG4gICAgICogICAoTm90IHRvIGJlIHVzZWQgYXMgYSBzZWN1cml0eSBtZWFzdXJlISlcbiAgICAgKi9cbiAgICBjaHJvb3RQYXRoOiBzdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBSZXN0cmljdCB1c2VycyB0byBvbmx5IG5hdmlnYXRlIGFyb3VuZCB0byBzdWJwYXRocyBvZiB0aGUgc3BlY2lmaWVkIGBwYXRoYFxuICAgICAqL1xuICAgIG5hdmlnYXRlT25seVRvRGVzY2VuZGFudHM6IGJvb2xlYW4sXG4gICAgc2hvd0JyZWFkY3J1bWI6IGJvb2xlYW4sXG4gICAgc2hvd1RyZWV2aWV3OiBib29sZWFuLFxuXG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgXCJyb290XCIgcGF0aCBgL2BcbiAgICAgKiBEZWZhdWx0cyB0byBcIlN0b3JhZ2VcIlxuICAgICAqL1xuICAgIHJvb3ROYW1lOiBzdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBiZSBzdG9yZWQgaW4gaGlzdG9yeS5cbiAgICAgKi9cbiAgICBtYXhIaXN0b3J5TGVuZ3RoOiBudW1iZXIsXG5cbiAgICBhcGlTZXR0aW5nczoge1xuICAgICAgICBsaXN0RW50cmllc1VybD86IHN0cmluZyxcbiAgICAgICAgbGlzdEVudHJpZXNVcmxUZW1wbGF0ZT86IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgICAgICAgZG93bmxvYWRFbnRyeVVybD86IHN0cmluZyxcbiAgICAgICAgZG93bmxvYWRFbnRyeVVybFRlbXBsYXRlPzogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgICAgICB1cGxvYWRFbnRyeVVybD86IHN0cmluZyxcbiAgICAgICAgdXBsb2FkRW50cnlVcmxUZW1wbGF0ZT86IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgICAgICAgZGVsZXRlRW50cnlVcmw/OiBzdHJpbmcsXG4gICAgICAgIGRlbGV0ZUVudHJ5VXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gICAgICAgIHJlbmFtZUVudHJ5VXJsPzogc3RyaW5nLFxuICAgICAgICByZW5hbWVFbnRyeVVybFRlbXBsYXRlPzogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgICAgICBjcmVhdGVEaXJlY3RvcnlVcmw/OiBzdHJpbmcsXG4gICAgICAgIGNyZWF0ZURpcmVjdG9yeVVybFRlbXBsYXRlPzogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nXG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFRoZSBwYXRoIHRoYXQgaW1hZ2VzIGFyZSBsb2FkZWQgZnJvbS5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGAvYXNzZXRzL2RvdGdsaXRjaC93ZWJjb21wb25lbnRzL2BcbiAgICAgKi9cbiAgICBhc3NldFBhdGg6IHN0cmluZyxcbiAgICBzaWRlYmFyTG9jYXRpb25TdHJhdGVneTogXCJrbm93blwiIHwgXCJjdXJyZW50RGlyZWN0b3J5XCIsXG5cbiAgICBpY29uUmVzb2x2ZXI6IChmaWxlOiBGU0Rlc2NyaXB0b3IpID0+IHN0cmluZyxcblxuICAgIGltYWdlU2l6ZTogXCJub3JtYWxcIiB8IFwic21hbGxcIiB8IFwiaHVnZVwiLFxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cbiAgICBzZWxlY3Rpb25Nb2RlOiBcInNpbmdsZVwiIHwgXCJtdWx0aXBsZVwiLFxuXG4gICAgLyoqXG4gICAgICogVGhpcyBkZXRlcm1pbmVzIGlmIHRoZSBmaWxlbWFuYWdlciBzaG93cyBzZWxlY3RlZCBlbnRyaWVzXG4gICAgICpcbiAgICAgKiBJZiBzZXQgdG8gYGZvY3VzRmlsZXNgLCBmaWxlIHBhdGhzIHRoYXQgbWF0Y2ggZnJvbSB0aGUgcHJvdmlkZWQgYGZvY3VzZWRGaWxlc2BcbiAgICAgKiB3aWxsIGJlIGhpZ2hsaWdodGVkLCBhbmQgY2FuIGJlIHNlbGVjdGVkIC8gZGVzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBtb2RlOiBcImZvY3VzRmlsZXNcIiB8IFwibm9ybWFsXCIsXG4gICAgZm9jdXNlZEZpbGVzOiBzdHJpbmdbXVxufT5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtZmlsZW1hbmFnZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWxlbWFuYWdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZW1hbmFnZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5nRm9yT2YsXG4gICAgICAgIEFuZ3VsYXJTcGxpdE1vZHVsZSxcbiAgICAgICAgRmlsZUdyaWRDb21wb25lbnQsXG4gICAgICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgICAgIFRyZWVWaWV3Q29tcG9uZW50XG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVtYW5hZ2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCd0YWJHcm91cCcpIHRhYkdyb3VwOiBNYXRUYWJHcm91cDtcbiAgICBAVmlld0NoaWxkcmVuKEZpbGVHcmlkQ29tcG9uZW50KSBmaWxlR3JpZHM6IEZpbGVHcmlkQ29tcG9uZW50W107XG4gICAgQFZpZXdDaGlsZChUcmVlVmlld0NvbXBvbmVudCkgdHJlZVZpZXc6IFRyZWVWaWV3Q29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoVG9vbGJhckNvbXBvbmVudCkgdG9vbGJhcjogVG9vbGJhckNvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKE1hdERyYXdlckNvbnRhaW5lcikgZHJhd2VyOiBNYXREcmF3ZXJDb250YWluZXI7XG5cbiAgICBASW5wdXQoKSBjb25maWc6IE5neEZpbGVNYW5hZ2VyQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgYXBpU2V0dGluZ3M6IHtcbiAgICAgICAgICAgIGxpc3RFbnRyaWVzVXJsOiBgL2FwaS9maWxlc3lzdGVtL2AsXG4gICAgICAgICAgICB1cGxvYWRFbnRyeVVybDogYC9hcGkvZmlsZXN5c3RlbS9gLFxuICAgICAgICAgICAgZG93bmxvYWRFbnRyeVVybDogYC9hcGkvZmlsZXN5c3RlbS9gLFxuICAgICAgICAgICAgZGVsZXRlRW50cnlVcmw6IGAvYXBpL2ZpbGVzeXN0ZW0vYCxcbiAgICAgICAgICAgIGNyZWF0ZURpcmVjdG9yeVVybDogYC9hcGkvZmlsZXN5c3RlbS9mb2xkZXJgLFxuICAgICAgICAgICAgcmVuYW1lRW50cnlVcmw6IGAvYXBpL2ZpbGVzeXN0ZW0vcmVuYW1lYFxuICAgICAgICB9XG4gICAgfTtcblxuICAgIEBJbnB1dCgpIGdyaWRTaXplOiBcInNtYWxsXCIgfCBcIm5vcm1hbFwiIHwgXCJsYXJnZVwiID0gXCJub3JtYWxcIjtcbiAgICBASW5wdXQoKSBtb2RlOiBcImdyaWRcIiB8IFwibGlzdFwiO1xuICAgIEBJbnB1dCgpIGNvbnRleHRUYWdzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfTtcblxuXG4gICAgQElucHV0KCkgdmFsdWU6IEZTRGVzY3JpcHRvcltdID0gW107XG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGU0Rlc2NyaXB0b3JbXT4oKTtcblxuICAgIGdyaWRWYWx1ZXM6IEZTRGVzY3JpcHRvcltdW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gZm9jdXNlZCBmaWxlcyBjaGFuZ2UuXG4gICAgICogT25seSBhdmFpbGFibGUgaW4gYGZvY3VzRmlsZXNgIG1vZGUuXG4gICAgICovXG4gICAgQE91dHB1dCgpIGZvY3VzZWRGaWxlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAvKipcbiAgICAgKiBFbWl0cyB3aGVuIGEgZmlsZSBpcyB1cGxvYWRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZmlsZVVwbG9hZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAvKipcbiAgICAgKiBFbWl0cyB3aGVuIGEgZmlsZSBpcyBkb3dubG9hZGVkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBmaWxlRG93bmxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGZpbGVSZW5hbWUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGZpbGVEZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGZpbGVDb3B5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBmaWxlUGFzdGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgZmlsZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZURlc2NyaXB0b3I+KCk7XG4gICAgQE91dHB1dCgpIGZpbGVEYmxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZURlc2NyaXB0b3I+KCk7XG4gICAgQE91dHB1dCgpIGZvbGRlclNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RGlyZWN0b3J5RGVzY3JpcHRvcj4oKTtcbiAgICBAT3V0cHV0KCkgZm9sZGVyRGJsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPERpcmVjdG9yeURlc2NyaXB0b3I+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB3aGVuIG11bHRpcGxlIGZpbGUgc2VsZWN0aW9ucyBjaGFuZ2UuXG4gICAgICovXG4gICAgQE91dHB1dCgpIGZpbGVzU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxGU0Rlc2NyaXB0b3JbXT4oKTtcbiAgICAvKipcbiAgICAgKiBFbWl0cyB3aGVuIGFueSBzZWxlY3Rpb24gY2hhbmdlcywgc2luZ2xlIG9yIG11bHRpcGxlIGZpbGVzLlxuICAgICAqL1xuICAgIC8vIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZTRGVzY3JpcHRvcltdPigpO1xuXG4gICAgc2hvd0hpZGRlbkZpbGVzID0gZmFsc2U7XG4gICAgc2hvd1NpZGViYXIgPSB0cnVlO1xuICAgIHNpZGViYXJPdmVybGF5ID0gZmFsc2U7XG4gICAgd2lkdGggPSAwO1xuXG4gICAgaXNIb21lQW5jZXN0b3IgPSBmYWxzZTtcblxuICAgIGN1cnJlbnRUYWI6IEZpbGVWaWV3VGFiID0ge30gYXMgYW55O1xuICAgIGdldCBjdXJyZW50RmlsZUdyaWQoKSB7IHJldHVybiB0aGlzLmZpbGVHcmlkc1t0aGlzLnRhYkluZGV4XSB9XG4gICAgdGFiSW5kZXggPSAwO1xuICAgIHRhYnM6IEZpbGVWaWV3VGFiW10gPSBbXTtcblxuICAgIGljb25SZXNvbHZlcjogSWNvblJlc29sdmVyO1xuXG4gICAgY29uc3RydWN0b3IgKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5HWF9XRUJfQ09NUE9ORU5UU19DT05GSUcpIHJlYWRvbmx5IGxpYkNvbmZpZzogTmd4V2ViQ29tcG9uZW50c0NvbmZpZyA9IHt9LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxhenlMb2FkZXI6IExhenlMb2FkZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgZmV0Y2g6IEZldGNoXG4gICAgKSB7XG4gICAgICAgIGxhenlMb2FkZXIucmVnaXN0ZXJDb21wb25lbnQoe1xuICAgICAgICAgICAgaWQ6IFwiZm9sZGVyLXJlbmFtZVwiLFxuICAgICAgICAgICAgZ3JvdXA6IFwiQGRvdGdsaXRjaC9uZ3gtd2ViLWNvbXBvbmVudHNcIixcbiAgICAgICAgICAgIGxvYWQ6ICgpID0+IGltcG9ydCgnLi9mb2xkZXItcmVuYW1lL2ZvbGRlci1yZW5hbWUuY29tcG9uZW50JylcbiAgICAgICAgfSlcblxuICAgICAgICB0aGlzLmljb25SZXNvbHZlciA9IG5ldyBJY29uUmVzb2x2ZXIobGliQ29uZmlnLmFzc2V0UGF0aCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdFRhYih0aGlzLmNvbmZpZy5wYXRoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiID0gdGhpcy50YWJzWzBdO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5vblJlc2l6ZSgpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5vblJlc2l6ZSgpLCAyNTApO1xuICAgIH1cblxuICAgIG9uVHJlZVZpZXdMb2FkQ2hpbGRyZW4oe2l0ZW0sIGNifSkge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5saXN0RW50cmllc1VybFRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICA/IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmxpc3RFbnRyaWVzVXJsVGVtcGxhdGUoaXRlbS5wYXRoICsgaXRlbS5uYW1lKVxuICAgICAgICAgICAgICAgICAgOiB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5saXN0RW50cmllc1VybFxuXG4gICAgICAgIHRoaXMuZmV0Y2gucG9zdCh1cmwsIHsgcGF0aDogaXRlbS5wYXRoICsgaXRlbS5uYW1lLCBzaG93SGlkZGVuOiB0aGlzLnNob3dIaWRkZW5GaWxlcyB9KVxuICAgICAgICAgICAgLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpcnM6IERpcmVjdG9yeURlc2NyaXB0b3JbXSA9IGRhdGEuZGlycztcbiAgICAgICAgICAgICAgICBjYihkaXJzKTtcbiAgICAgICAgICAgIH0pXG4gICAgfVxuXG4gICAgaW5pdFRhYihwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy50YWJzLnB1c2godGhpcy5jdXJyZW50VGFiID0ge1xuICAgICAgICAgICAgaWQ6IHVsaWQoKSxcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFRhYkxhYmVsKHBhdGgpLFxuICAgICAgICAgICAgYnJlYWRjcnVtYjogdGhpcy5jYWxjQnJlYWRjcnVtYihwYXRoKSxcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBzZWxlY3Rpb246IFtdLFxuICAgICAgICAgICAgdmlld01vZGU6IHRoaXMubW9kZSB8fCAnZ3JpZCcsXG4gICAgICAgICAgICBoaXN0b3J5SW5kZXg6IDAsXG4gICAgICAgICAgICBoaXN0b3J5OiBbXSxcbiAgICAgICAgICAgIHNpZGViYXJJdGVtczogW10sXG4gICAgICAgICAgICBzb3J0T3JkZXI6ICdhLXonXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRhYkluZGV4ID0gdGhpcy50YWJzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjbG9zZVRhYih0YWI6IEZpbGVWaWV3VGFiKSB7XG4gICAgICAgIHRoaXMudGFicy5zcGxpY2UodGhpcy50YWJzLmZpbmRJbmRleCh0ID0+IHQuaWQgPT0gdGFiLmlkKSwgMSk7XG4gICAgfVxuXG4gICAgY2FsY0JyZWFkY3J1bWIocGF0aDogc3RyaW5nKSB7XG4gICAgICAgIGlmICghcGF0aCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZShcIiMvXCIsICcvJyk7XG5cbiAgICAgICAgLy8gSWYgd2UncmUgYWN0aW5nIGxpa2Ugd2UncmUgaW4gYSBjaGFuZ2VkIHJvb3QsIHdlIHdpcGUgb3V0XG4gICAgICAgIC8vIGJyZWFkY3J1bWJzIGJlbG93IHRoZSByb290XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5jaHJvb3RQYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKHRoaXMuY29uZmlnLmNocm9vdFBhdGgsICcnKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLycpO1xuXG4gICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKC9eXFwvLywgdGhpcy5jb25maWcuY2hyb290UGF0aCk7XG4gICAgICAgICAgICByZXR1cm4gcGFydHMubWFwKChwLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IHBhcnRzLnNsaWNlKDAsIGkgKyAxKS5qb2luKCcvJyk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpZDogKHRoaXMuY29uZmlnLmNocm9vdFBhdGggKyAocGF0aCB8fCAnLycpKS5yZXBsYWNlKC9cXC8rL2csICcvJyksXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwIHx8IFwiXCJcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoJy8nKTtcblxuICAgICAgICAgICAgcmV0dXJuIHBhcnRzLm1hcCgocCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBwYXJ0cy5zbGljZSgwLCBpICsgMSkuam9pbignLycpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHBhdGggfHwgJy8nLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogcCB8fCBcIlwiXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CcmVhZGNydW1iQ2xpY2soY3J1bWIpIHtcbiAgICAgICAgaWYgKGNydW1iLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWIucGF0aCA9IGNydW1iLmlkO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VGFiLmJyZWFkY3J1bWIgPSB0aGlzLmNhbGNCcmVhZGNydW1iKGNydW1iLmlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVGFiUGF0aENoYW5nZSh0YWI6IEZpbGVWaWV3VGFiKSB7XG4gICAgICAgIHRhYi5sYWJlbCA9IHRoaXMuZ2V0VGFiTGFiZWwodGFiLnBhdGgpO1xuICAgICAgICB0YWIuYnJlYWRjcnVtYiA9IHRoaXMuY2FsY0JyZWFkY3J1bWIodGFiLnBhdGgpO1xuXG4gICAgICAgIHRhYi5oaXN0b3J5SW5kZXgrKztcbiAgICAgICAgdGFiLmhpc3RvcnkucHVzaCh0YWIucGF0aCk7XG4gICAgICAgIHRhYi5oaXN0b3J5LnNwbGljZSh0eXBlb2YgdGhpcy5jb25maWcubWF4SGlzdG9yeUxlbmd0aCA9PSAnbnVtYmVyJyA/IHRoaXMuY29uZmlnLm1heEhpc3RvcnlMZW5ndGggOiA1MCk7XG4gICAgfVxuXG4gICAgb25UcmVlVmlld1NlbGVjdChpdGVtOiBGU0Rlc2NyaXB0b3IpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiLnBhdGggPSBpdGVtLnBhdGggKyBpdGVtLm5hbWU7XG4gICAgfVxuXG4gICAgb25UYWJMb2FkRmlsZXModGFiOiBGaWxlVmlld1RhYiwgZmlsZXM6IEZTRGVzY3JpcHRvcltdKSB7XG4gICAgICAgIGlmICh0YWIuc2lkZWJhckl0ZW1zLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICB0YWIuc2lkZWJhckl0ZW1zID0gZmlsZXMuZmlsdGVyKGYgPT4gZi5raW5kID09IFwiZGlyZWN0b3J5XCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudEl0ZW1zID0gdGFiLnNpZGViYXJJdGVtcztcbiAgICAgICAgY29uc3QgZGlySXRlbXMgPSBmaWxlcy5maWx0ZXIoZiA9PiBmLmtpbmQgPT0gXCJkaXJlY3RvcnlcIik7XG5cbiAgICAgICAgZnVuY3Rpb24gcmVjdXJzZShpdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbmQoaSA9PiB0YWIucGF0aD8uc3RhcnRzV2l0aChpLnBhdGgpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YXJnZXQgPSByZWN1cnNlKGN1cnJlbnRJdGVtcyk7XG5cbiAgICAgICAgaWYgKHRhcmdldClcbiAgICAgICAgICAgIHRhcmdldFsnX2NoaWxkcmVuJ10gPSBkaXJJdGVtcztcblxuICAgICAgICB0YWIuc2lkZWJhckl0ZW1zID0gY3VycmVudEl0ZW1zO1xuICAgIH1cblxuICAgIG9uR3JpZFZhbHVlQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5ncmlkVmFsdWVzLmZsYXQoMSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKVxuICAgIH1cblxuICAgIGdldFRhYkxhYmVsKHBhdGg6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gcGF0aD8uc3BsaXQoJy8nKS5maWx0ZXIocCA9PiBwKS5wb3AoKTtcbiAgICB9XG5cbiAgICBhc3luYyBvblJlc2l6ZSgpIHtcbiAgICAgICAgLy8gVHJpZ2dlciByZS1jYWxjdWxhdGlvbiBvZiB0aGUgdmlld1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5yZXNpemUoKSk7XG5cbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBib3VuZHMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgdGhpcy53aWR0aCA9IGJvdW5kcy53aWR0aDtcblxuICAgICAgICAvLyBJZiB0aGUgdmlldyBhcmVhIGlzIGxlc3MgdGhhbiA2NTBweCB3aWRlLCB1c2Ugb3ZlcmxheSB0aGUgc2lkZWJhciBwYW5lbFxuICAgICAgICB0aGlzLnNpZGViYXJPdmVybGF5ID0gYm91bmRzLndpZHRoIDwgNjUwO1xuICAgICAgICBpZiAodGhpcy5zaWRlYmFyT3ZlcmxheSA9PSBmYWxzZSAmJiBbLi4udGhpcy5kcmF3ZXIuX2RyYXdlcnNdWzBdLm9wZW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIG9uUmVzaXplRW5kKCkge1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uUmVzaXplKCksIDI1MCk7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50VGFiLnZpZXdNb2RlID09IFwiZ3JpZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50VGFiLnNlbGVjdGlvblxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhclNlbGVjdGlvbigpIHtcbiAgICAgICAgdGhpcy5maWxlR3JpZHMuZm9yRWFjaChnID0+IGcuY2xlYXJTZWxlY3Rpb24oKSk7XG4gICAgfVxuXG4gICAgLy8gVGVsbCB0aGUgY2hpbGQgZ3JpZCB0byByZWZyZXNoIGl0J3Mgc29ydGluZ1xuICAgIHJlZnJlc2hTb3J0aW5nKCkge1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5zb3J0KCkpO1xuICAgIH1cblxuICAgIHJlZnJlc2hEYXRhKCkge1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5sb2FkRm9sZGVyKCkpO1xuICAgIH1cblxuICAgIGdldEZpbGVEYXRhKGZpbGU6IEZpbGVEZXNjcmlwdG9yKSB7XG4gICAgICAgIGxldCB1cmwgPSB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5yZW5hbWVFbnRyeVVybFRlbXBsYXRlXG4gICAgICAgICAgICA/IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLnJlbmFtZUVudHJ5VXJsVGVtcGxhdGUoZmlsZS5wYXRoICsgZmlsZS5uYW1lKVxuICAgICAgICAgICAgOiB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5yZW5hbWVFbnRyeVVybDtcblxuICAgICAgICB1cmwgPSAodXJsLmluY2x1ZGVzKCc/JykgPyAnJicgOiAnPycpICsgYGRpcj0ke2ZpbGUucGF0aH0mZmlsZT0ke2ZpbGUubmFtZX1gO1xuXG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfVxufVxuIiwiPGFwcC10b29sYmFyXG4gICAgW2N1cnJlbnRUYWJdPVwiY3VycmVudFRhYlwiXG4gICAgWyhzaG93SGlkZGVuRmlsZXMpXT1cInNob3dIaWRkZW5GaWxlc1wiXG4gICAgWyhzaG93U2lkZWJhcildPVwic2hvd1NpZGViYXJcIlxuICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICBbc2hvd0JhcmVNaW5pbXVtXT1cIndpZHRoIDwgNTAwICYmIGNvbmZpZy5zaG93QnJlYWRjcnVtYiAhPSBmYWxzZVwiXG4gICAgKG9uQnJlYWRjcnVtYkNsaWNrKT1cIm9uQnJlYWRjcnVtYkNsaWNrKCRldmVudClcIlxuLz5cblxuPG1hdC1kcmF3ZXItY29udGFpbmVyPlxuICAgIDxtYXQtZHJhd2VyICNkcmF3ZXIgbW9kZT1cIm92ZXJcIj5cbiAgICAgICAgPGFwcC10b29sYmFyXG4gICAgICAgICAgICAqbmdJZj1cIndpZHRoIDwgNTAwICYmIGNvbmZpZy5zaG93QnJlYWRjcnVtYiAhPSBmYWxzZVwiXG4gICAgICAgICAgICBbY3VycmVudFRhYl09XCJjdXJyZW50VGFiXCJcbiAgICAgICAgICAgIFsoc2hvd0hpZGRlbkZpbGVzKV09XCJzaG93SGlkZGVuRmlsZXNcIlxuICAgICAgICAgICAgWyhzaG93U2lkZWJhcildPVwic2hvd1NpZGViYXJcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAgICAgW2RyYXdlck1vZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAob25CcmVhZGNydW1iQ2xpY2spPVwib25CcmVhZGNydW1iQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxhcHAtdHJlZS12aWV3XG4gICAgICAgICAgICBbZGF0YV09XCJjdXJyZW50VGFiLnNpZGViYXJJdGVtc1wiXG4gICAgICAgICAgICAobG9hZENoaWxkcmVuKT1cIm9uVHJlZVZpZXdMb2FkQ2hpbGRyZW4oJGV2ZW50KVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25UcmVlVmlld1NlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICA8L21hdC1kcmF3ZXI+XG4gICAgPG1hdC1kcmF3ZXItY29udGVudD5cbiAgICAgICAgPGFzLXNwbGl0IGRpcmVjdGlvbj1cImhvcml6b250YWxcIiBbZ3V0dGVyU2l6ZV09XCJzaWRlYmFyT3ZlcmxheSA/IDAgOiAyXCIgW3VuaXRdPVwiJ3BpeGVsJ1wiIChkcmFnRW5kKT1cIm9uUmVzaXplRW5kKClcIj5cbiAgICAgICAgICAgIDxhcy1zcGxpdC1hcmVhXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1maWxlbWFuYWdlci1zaWRlYmFyLWJhY2tncm91bmQtY29sb3IsICMyYzJjMmMpXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCIyMTVcIlxuICAgICAgICAgICAgICAgIFttaW5TaXplXT1cIjIxNVwiXG4gICAgICAgICAgICAgICAgW21heFNpemVdPVwid2lkdGgvNFwiXG4gICAgICAgICAgICAgICAgW3Zpc2libGVdPVwiIXNpZGViYXJPdmVybGF5ICYmIGNvbmZpZy5zaG93VHJlZXZpZXcgIT0gZmFsc2VcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc2lkZWJhck92ZXJsYXkgJiYgY29uZmlnLnNob3dUcmVldmlldyAhPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjdXJyZW50VGFiLnNlbGVjdGlvbiA9IFtdXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtdHJlZS12aWV3XG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJjdXJyZW50VGFiLnNpZGViYXJJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAobG9hZENoaWxkcmVuKT1cIm9uVHJlZVZpZXdMb2FkQ2hpbGRyZW4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25UcmVlVmlld1NlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYXMtc3BsaXQtYXJlYT5cbiAgICAgICAgICAgIDxhcy1zcGxpdC1hcmVhIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZmlsZW1hbmFnZXItYmFja2dyb3VuZC1jb2xvciwgIzI3MjcyNyk7XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuLS10YWItaGVpZ2h0XT1cInRhYnMubGVuZ3RoID4gMSA/ICczNnB4JyA6ICcwJ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYi1ncm91cCAjdGFiR3JvdXAgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cImN1cnJlbnRUYWIgPSB0YWJzWyRldmVudC5pbmRleF1cIiBbKHNlbGVjdGVkSW5kZXgpXT1cInRhYkluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYiAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YWIubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlVGFiKHRhYilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWZpbGUtZ3JpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZpZXdNb2RlXT1cInRhYi52aWV3TW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFiXT1cInRhYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JpZFNpemVdPVwiZ3JpZFNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NvcnRPcmRlcl09XCJ0YWIuc29ydE9yZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoc2VsZWN0aW9uKV09XCJ0YWIuc2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocGF0aCldPVwidGFiLnBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhdGhDaGFuZ2UpPVwib25UYWJQYXRoQ2hhbmdlKHRhYilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiZ3JpZFZhbHVlc1tpXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25HcmlkVmFsdWVDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9hZEZpbGVzKT1cIm9uVGFiTG9hZEZpbGVzKHRhYiwgJGV2ZW50KVwiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlU2VsZWN0KT1cImZpbGVTZWxlY3QubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlRGJsQ2xpY2spPVwiZmlsZURibENsaWNrLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9sZGVyU2VsZWN0KT1cImZvbGRlclNlbGVjdC5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvbGRlckRibENsaWNrKT1cImZvbGRlckRibENsaWNrLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9hcy1zcGxpdC1hcmVhPlxuICAgICAgICA8L2FzLXNwbGl0PlxuICAgIDwvbWF0LWRyYXdlci1jb250ZW50PlxuPC9tYXQtZHJhd2VyLWNvbnRhaW5lcj5cblxuIl19
@@ -24,6 +24,7 @@ export class VscodeComponent {
24
24
  get language() { return this._language; }
25
25
  get settings() {
26
26
  return {
27
+ ...this.restSettings,
27
28
  theme: this.theme,
28
29
  language: this.language,
29
30
  tabSize: this.tabSize,
@@ -69,9 +70,8 @@ export class VscodeComponent {
69
70
  this.mouseWheelScrollSensitivity = 2;
70
71
  this.scrollBeyondLastLine = false;
71
72
  this.scrollBeyondLastColumn = 0;
72
- this.scrollbarAlwaysConsumeMouseWheel = 2;
73
73
  this.lineNumbers = "on";
74
- this.verticalScrollExhausted = false;
74
+ this.restSettings = {};
75
75
  this.resize = () => {
76
76
  this.editor?.layout();
77
77
  };
@@ -175,7 +175,7 @@ export class VscodeComponent {
175
175
  */
176
176
  VscodeComponent.isMonacoInstalled = false;
177
177
  VscodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: VscodeComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
178
- VscodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: VscodeComponent, isStandalone: true, selector: "app-vscode", inputs: { code: "code", customLanguage: "customLanguage", language: "language", installationLocation: "installationLocation", tabSize: "tabSize", readOnly: "readOnly", theme: "theme", fontFamily: "fontFamily", fontSize: "fontSize", automaticLayout: "automaticLayout", colorDecorators: "colorDecorators", folding: "folding", minimapEnabled: "minimapEnabled", minimap: "minimap", scrollbar: "scrollbar", smoothScrolling: "smoothScrolling", mouseWheelScrollSensitivity: "mouseWheelScrollSensitivity", scrollBeyondLastLine: "scrollBeyondLastLine", scrollBeyondLastColumn: "scrollBeyondLastColumn", scrollbarAlwaysConsumeMouseWheel: "scrollbarAlwaysConsumeMouseWheel", lineNumbers: "lineNumbers" }, outputs: { codeChange: "codeChange" }, host: { listeners: { "window:resize": "resize($event)" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [":host{display:block;height:100%;max-height:100vh;max-width:100vw}\n"] });
178
+ VscodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: VscodeComponent, isStandalone: true, selector: "app-vscode", inputs: { code: "code", customLanguage: "customLanguage", language: "language", installationLocation: "installationLocation", tabSize: "tabSize", readOnly: "readOnly", theme: "theme", fontFamily: "fontFamily", fontSize: "fontSize", automaticLayout: "automaticLayout", colorDecorators: "colorDecorators", folding: "folding", minimapEnabled: "minimapEnabled", minimap: "minimap", scrollbar: "scrollbar", smoothScrolling: "smoothScrolling", mouseWheelScrollSensitivity: "mouseWheelScrollSensitivity", scrollBeyondLastLine: "scrollBeyondLastLine", scrollBeyondLastColumn: "scrollBeyondLastColumn", lineNumbers: "lineNumbers", restSettings: "restSettings" }, outputs: { codeChange: "codeChange" }, host: { listeners: { "window:resize": "resize($event)" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [":host{display:block;height:100%;max-height:100vh;max-width:100vw}\n"] });
179
179
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: VscodeComponent, decorators: [{
180
180
  type: Component,
181
181
  args: [{ selector: 'app-vscode', template: '', standalone: true, styles: [":host{display:block;height:100%;max-height:100vh;max-width:100vw}\n"] }]
@@ -219,12 +219,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
219
219
  type: Input
220
220
  }], scrollBeyondLastColumn: [{
221
221
  type: Input
222
- }], scrollbarAlwaysConsumeMouseWheel: [{
223
- type: Input
224
222
  }], lineNumbers: [{
225
223
  type: Input
224
+ }], restSettings: [{
225
+ type: Input
226
226
  }], resize: [{
227
227
  type: HostListener,
228
228
  args: ['window:resize', ['$event']]
229
229
  }] } });
230
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnNjb2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy92c2NvZGUvdnNjb2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQThDLE1BQU0sZUFBZSxDQUFDO0FBRzNKLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRXBDLElBQUksTUFBMkIsQ0FBQztBQWVoQyxNQUFNLE9BQU8sZUFBZTtJQU14QixJQUFhLElBQUksQ0FBQyxLQUFhO1FBQzNCLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQ25CLE9BQU87UUFDWCxJQUFJLE9BQU8sS0FBSyxJQUFJLFFBQVE7WUFDeEIsTUFBTSxJQUFJLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQUEsQ0FBQztJQUNGLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFTeEMsSUFBYSxRQUFRLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2IsSUFBSSxFQUFFLFlBQVk7WUFDbEIsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsS0FBSztTQUNoQixDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxNQUFNLENBQUE7SUFDL0IsQ0FBQztJQUNELElBQUksUUFBUSxL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Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkF5Sk4sTUFBTTtzQkFETCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgKiBhcyBNb25hY29FZGl0b3IgZnJvbSAnbW9uYWNvLWVkaXRvcic7XHJcbmltcG9ydCB7IE1vbmFjb0F1dG9UeXBlSW1wb3J0ZXIgfSBmcm9tICcuL3RzLXR5cGUtcmVzb2x2ZXIvbWFpbic7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xyXG5cclxubGV0IE1vbmFjbzogdHlwZW9mIE1vbmFjb0VkaXRvcjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtdnNjb2RlJyxcclxuICAgIHRlbXBsYXRlOiAnJyxcclxuICAgIHN0eWxlczogW2BcclxuOmhvc3Qge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDB2aDtcclxuICAgIG1heC13aWR0aDogMTAwdnc7XHJcbn1cclxuICAgIGBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVnNjb2RlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAgIGlzRGlydHkgPSBmYWxzZTtcclxuICAgIGVkaXRvcjogTW9uYWNvRWRpdG9yLmVkaXRvci5JU3RhbmRhbG9uZUNvZGVFZGl0b3I7XHJcbiAgICBmaWxlbmFtZTogc3RyaW5nO1xyXG5cclxuICAgIHByaXZhdGUgX2NvZGU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHNldCBjb2RlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodmFsdWUgPT0gdGhpcy5fY29kZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT0gXCJzdHJpbmdcIilcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlZhbHVlIG11c3QgYmUgb2YgdHlwZSBzdHJpbmdcIik7XHJcblxyXG4gICAgICAgIHRoaXMuX2NvZGUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmVkaXRvcj8uc2V0VmFsdWUodGhpcy5jb2RlKTtcclxuICAgIH07XHJcbiAgICBnZXQgY29kZSgpIHsgcmV0dXJuIHRoaXMuX2NvZGU/LnRyaW0oKSB9XHJcbiAgICBAT3V0cHV0KCkgY29kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgcHJpdmF0ZSBvbkNvZGVUeXBlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgICBwcml2YXRlIHR5cGVEZWJvdW5jZSA9IHRoaXMub25Db2RlVHlwZS5waXBlKGRlYm91bmNlVGltZSgxMDApKTtcclxuXHJcbiAgICBASW5wdXQoKSBjdXN0b21MYW5ndWFnZTogeyBpbml0OiBGdW5jdGlvbjsgfTtcclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2U6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHNldCBsYW5ndWFnZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2UgPSB7XHJcbiAgICAgICAgICAgICd0cyc6IFwidHlwZXNjcmlwdFwiLFxyXG4gICAgICAgICAgICAnaHRtbCc6ICd4bWwnLFxyXG4gICAgICAgICAgICAnc2Nzcyc6ICdjc3MnXHJcbiAgICAgICAgfVt2YWx1ZV0gfHwgdmFsdWUgfHwgXCJhdXRvXCJcclxuICAgIH1cclxuICAgIGdldCBsYW5ndWFnZSgpIHsgcmV0dXJuIHRoaXMuX2xhbmd1YWdlIH1cclxuXHJcbiAgICBASW5wdXQoKSBpbnN0YWxsYXRpb25Mb2NhdGlvbiA9IFwiL2xpYi9tb25hY28vdnNcIjtcclxuXHJcblxyXG4gICAgQElucHV0KCkgdGFiU2l6ZSA9IDI7XHJcbiAgICBASW5wdXQoKSByZWFkT25seSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgdGhlbWUgPSBcInZzLWRhcmtcIjtcclxuICAgIEBJbnB1dCgpIGZvbnRGYW1pbHkgPSBcIkRyb2lkIFNhbnMgTW9ub1wiO1xyXG4gICAgQElucHV0KCkgZm9udFNpemUgPSAxNDtcclxuXHJcbiAgICBASW5wdXQoKSBhdXRvbWF0aWNMYXlvdXQgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgY29sb3JEZWNvcmF0b3JzID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGZvbGRpbmcgPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpIG1pbmltYXBFbmFibGVkID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIG1pbmltYXA6IE1vbmFjb0VkaXRvci5lZGl0b3IuSUVkaXRvck1pbmltYXBPcHRpb25zID0ge1xyXG4gICAgICAgIGVuYWJsZWQ6IHRydWVcclxuICAgIH07XHJcbiAgICBASW5wdXQoKSBzY3JvbGxiYXI6IE1vbmFjb0VkaXRvci5lZGl0b3IuSUVkaXRvclNjcm9sbGJhck9wdGlvbnMgPSB7XHJcbiAgICAgICAgYWx3YXlzQ29uc3VtZU1vdXNlV2hlZWw6IGZhbHNlLFxyXG4gICAgICAgIC8vIHNjcm9sbEJ5UGFnZTogdHJ1ZVxyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpIHNtb290aFNjcm9sbGluZyA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBtb3VzZVdoZWVsU2Nyb2xsU2Vuc2l0aXZpdHkgPSAyO1xyXG4gICAgQElucHV0KCkgc2Nyb2xsQmV5b25kTGFzdExpbmUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNjcm9sbEJleW9uZExhc3RDb2x1bW4gPSAwO1xyXG4gICAgQElucHV0KCkgc2Nyb2xsYmFyQWx3YXlzQ29uc3VtZU1vdXNlV2hlZWwgPSAyO1xyXG5cclxuICAgIEBJbnB1dCgpIGxpbmVOdW1iZXJzOiBNb25hY29FZGl0b3IuZWRpdG9yLkxpbmVOdW1iZXJzVHlwZSA9IFwib25cIjtcclxuXHJcbiAgICBnZXQgc2V0dGluZ3MoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdGhlbWU6IHRoaXMudGhlbWUsXHJcbiAgICAgICAgICAgIGxhbmd1YWdlOiB0aGlzLmxhbmd1YWdlLFxyXG4gICAgICAgICAgICB0YWJTaXplOiB0aGlzLnRhYlNpemUsXHJcbiAgICAgICAgICAgIHJlYWRPbmx5OiB0aGlzLnJlYWRPbmx5LFxyXG4gICAgICAgICAgICBmb250RmFtaWx5OiB0aGlzLmZvbnRGYW1pbHksXHJcbiAgICAgICAgICAgIGZvbnRTaXplOiB0aGlzLmZvbnRTaXplLFxyXG4gICAgICAgICAgICBhdXRvbWF0aWNMYXlvdXQ6IHRoaXMuYXV0b21hdGljTGF5b3V0LFxyXG4gICAgICAgICAgICBzY3JvbGxCZXlvbmRMYXN0TGluZTogdGhpcy5zY3JvbGxCZXlvbmRMYXN0TGluZSxcclxuICAgICAgICAgICAgY29sb3JEZWNvcmF0b3JzOiB0aGlzLmNvbG9yRGVjb3JhdG9ycyxcclxuICAgICAgICAgICAgZm9sZGluZzogdGhpcy5mb2xkaW5nLFxyXG4gICAgICAgICAgICBzY3JvbGxCZXlvbmRMYXN0Q29sdW1uOiB0aGlzLnNjcm9sbEJleW9uZExhc3RDb2x1bW4sXHJcbiAgICAgICAgICAgIG1pbmltYXA6IHRoaXMubWluaW1hcCxcclxuICAgICAgICAgICAgc2Nyb2xsYmFyOiB0aGlzLnNjcm9sbGJhcixcclxuICAgICAgICAgICAgc21vb3RoU2Nyb2xsaW5nOiB0aGlzLnNtb290aFNjcm9sbGluZyxcclxuICAgICAgICAgICAgbW91c2VXaGVlbFNjcm9sbFNlbnNpdGl2aXR5OiB0aGlzLm1vdXNlV2hlZWxTY3JvbGxTZW5zaXRpdml0eSxcclxuICAgICAgICAgICAgbGluZU51bWJlcnM6IHRoaXMubGluZU51bWJlcnNcclxuICAgICAgICB9IGFzIE1vbmFjb0VkaXRvci5lZGl0b3IuSVN0YW5kYWxvbmVFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIHZlcnRpY2FsU2Nyb2xsRXhoYXVzdGVkID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfc3ViO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICAgICAgdGhpcy5pbnN0YWxsTW9uYWNvKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX3N1YiA9IHRoaXMudHlwZURlYm91bmNlLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jb2RlQ2hhbmdlLm5leHQodGhpcy5fY29kZSA9IHRoaXMuZWRpdG9yLmdldFZhbHVlKCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICAvLyBJZiB3ZSBjaGFuZ2VkIGFueXRoaW5nIE9USEVSIHRoYW4gY29kZSwgcmVsb2FkIHRoZSBlZGl0b3JcclxuICAgICAgICBpZiAoT2JqZWN0LmtleXMoY2hhbmdlcykubGVuZ3RoID4gMSB8fCAhY2hhbmdlc1snY29kZSddKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmVkaXRvcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0b3I/LmRpc3Bvc2UoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlRWRpdG9yKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ3RoZW1lJ10pXHJcbiAgICAgICAgICAgIE1vbmFjbz8uZWRpdG9yLnNldFRoZW1lKHRoaXMudGhlbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHJcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlcywgcmVqKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgICAgICAgIGxldCBpID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvdW50Kys7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvd1snbW9uYWNvJ10gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwoaSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIE1vbmFjbyA9IHdpbmRvd1snbW9uYWNvJ107XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGNvdW50ID49IDEwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKGkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcyhmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuY3JlYXRlRWRpdG9yKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3I/LmRpc3Bvc2UoKTtcclxuICAgICAgICB0aGlzLl9zdWI/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVFZGl0b3IoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tTGFuZ3VhZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21MYW5ndWFnZS5pbml0KE1vbmFjbyk7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgbGV0IGVkaXRvciA9IHRoaXMuZWRpdG9yID0gTW9uYWNvLmVkaXRvci5jcmVhdGUodGhpcy52aWV3Q29udGFpbmVyPy5lbGVtZW50Py5uYXRpdmVFbGVtZW50LCB0aGlzLnNldHRpbmdzIGFzIGFueSk7XHJcblxyXG4gICAgICAgIC8vIGNvbnN0IGF1dG9UeXBpbmdzID0gYXdhaXRcclxuICAgICAgICBNb25hY29BdXRvVHlwZUltcG9ydGVyLmNyZWF0ZShlZGl0b3IsIHtcclxuICAgICAgICAgICAgbW9uYWNvOiBNb25hY28sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuY29uZmlndXJlTGFuZ3VhZ2VTdXBwb3J0KCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvZGUpIHtcclxuICAgICAgICAgICAgZWRpdG9yLnNldFZhbHVlKHRoaXMuY29kZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlZGl0b3IuZ2V0TW9kZWwoKS5vbkRpZENoYW5nZUNvbnRlbnQoKCkgPT4gdGhpcy5vbkNvZGVUeXBlLmVtaXQoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjb25maWd1cmVMYW5ndWFnZVN1cHBvcnQoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJ1ZSBpZiB0aGUgbW9uYWNvIFVNRCBmaWxlcyBhcmUgaW5qZWN0ZWQgaW50byB0aGUgd2VicGFnZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBpc01vbmFjb0luc3RhbGxlZCA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBpbnN0YWxsTW9uYWNvKCkge1xyXG4gICAgICAgIGlmIChWc2NvZGVDb21wb25lbnQuaXNNb25hY29JbnN0YWxsZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgLy8gTW9uYWNvIGhhcyBhIFVNRCBsb2FkZXIgdGhhdCByZXF1aXJlcyB0aGlzXHJcbiAgICAgICAgLy8gTWVyZ2Ugd2l0aCBhbnkgcHJlLWV4aXN0aW5nIGdsb2JhbCByZXF1aXJlIG9iamVjdHMuXHJcbiAgICAgICAgaWYgKCF3aW5kb3dbJ3JlcXVpcmUnXSkgd2luZG93WydyZXF1aXJlJ10gPSB7fSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKCF3aW5kb3dbJ3JlcXVpcmUnXVsncGF0aHMnXSkgd2luZG93WydyZXF1aXJlJ11bJ3BhdGhzJ10gPSB7fTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFsbGF0aW9uTG9jYXRpb24uZW5kc1dpdGgoJy8nKSlcclxuICAgICAgICAgICAgdGhpcy5pbnN0YWxsYXRpb25Mb2NhdGlvbiA9IHRoaXMuaW5zdGFsbGF0aW9uTG9jYXRpb24uc2xpY2UoMCwgLTEpO1xyXG5cclxuICAgICAgICB3aW5kb3dbJ3JlcXVpcmUnXVsncGF0aHMnXS52cyA9IHRoaXMuaW5zdGFsbGF0aW9uTG9jYXRpb247XHJcblxyXG4gICAgICAgIGNvbnN0IG1vbmFjb0ZpbGVzID0gW1xyXG4gICAgICAgICAgICAnbG9hZGVyLmpzJyxcclxuICAgICAgICAgICAgJ2VkaXRvci9lZGl0b3IubWFpbi5ubHMuanMnLFxyXG4gICAgICAgICAgICAnZWRpdG9yL2VkaXRvci5tYWluLmpzJyxcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbmFjb0ZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XHJcbiAgICAgICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoXCJkZWZlclwiLCBcIlwiKTtcclxuICAgICAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZShcInNyY1wiLCB0aGlzLmluc3RhbGxhdGlvbkxvY2F0aW9uICsgJy8nICsgbW9uYWNvRmlsZXNbaV0pO1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBWc2NvZGVDb21wb25lbnQuaXNNb25hY29JbnN0YWxsZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGRvd25sb2FkKCkge1xyXG4gICAgICAgIGNvbnN0IGNvZGUgPSB0aGlzLmVkaXRvci5nZXRWYWx1ZSgpO1xyXG5cclxuICAgICAgICBsZXQgYmxvYiA9IG5ldyBCbG9iKFtjb2RlXSwgeyB0eXBlOiAndGV4dC9sb2cnIH0pO1xyXG4gICAgICAgIGxldCBlbG0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgbGV0IGJsb2JVUkwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIGRhdGEgdmFsdWVzLlxyXG4gICAgICAgIGVsbS5ocmVmID0gYmxvYlVSTDtcclxuICAgICAgICBlbG0uZG93bmxvYWQgPSB0aGlzLmZpbGVuYW1lO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsbSk7XHJcbiAgICAgICAgZWxtLmNsaWNrKCk7XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxtKTtcclxuICAgICAgICBlbG0ucmVtb3ZlKCk7XHJcblxyXG4gICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwoYmxvYlVSTCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgICByZXNpemUgPSAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3I/LmxheW91dCgpO1xyXG4gICAgfTtcclxufVxyXG4iXX0=
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnNjb2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy92c2NvZGUvdnNjb2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQThDLE1BQU0sZUFBZSxDQUFDO0FBRzNKLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRXBDLElBQUksTUFBMkIsQ0FBQztBQWVoQyxNQUFNLE9BQU8sZUFBZTtJQU14QixJQUFhLElBQUksQ0FBQyxLQUFhO1FBQzNCLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQ25CLE9BQU87UUFDWCxJQUFJLE9BQU8sS0FBSyxJQUFJLFFBQVE7WUFDeEIsTUFBTSxJQUFJLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQUEsQ0FBQztJQUNGLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFTeEMsSUFBYSxRQUFRLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2IsSUFBSSxFQUFFLFlBQVk7WUFDbEIsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsS0FBSztTQUNoQixDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxNQUFNLENBQUE7SUFDL0IsQ0FBQztJQUNELElBQUksUUFBUSxL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LFlBQVk7c0JBQXBCLEtBQUs7Z0JBd0pOLE1BQU07c0JBREwsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0ICogYXMgTW9uYWNvRWRpdG9yIGZyb20gJ21vbmFjby1lZGl0b3InO1xyXG5pbXBvcnQgeyBNb25hY29BdXRvVHlwZUltcG9ydGVyIH0gZnJvbSAnLi90cy10eXBlLXJlc29sdmVyL21haW4nO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcclxuXHJcbmxldCBNb25hY286IHR5cGVvZiBNb25hY29FZGl0b3I7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLXZzY29kZScsXHJcbiAgICB0ZW1wbGF0ZTogJycsXHJcbiAgICBzdHlsZXM6IFtgXHJcbjpob3N0IHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgbWF4LWhlaWdodDogMTAwdmg7XHJcbiAgICBtYXgtd2lkdGg6IDEwMHZ3O1xyXG59XHJcbiAgICBgXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFZzY29kZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgICBpc0RpcnR5ID0gZmFsc2U7XHJcbiAgICBlZGl0b3I6IE1vbmFjb0VkaXRvci5lZGl0b3IuSVN0YW5kYWxvbmVDb2RlRWRpdG9yO1xyXG4gICAgZmlsZW5hbWU6IHN0cmluZztcclxuXHJcbiAgICBwcml2YXRlIF9jb2RlOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBzZXQgY29kZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09IHRoaXMuX2NvZGUpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9IFwic3RyaW5nXCIpXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJWYWx1ZSBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nXCIpO1xyXG5cclxuICAgICAgICB0aGlzLl9jb2RlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5lZGl0b3I/LnNldFZhbHVlKHRoaXMuY29kZSk7XHJcbiAgICB9O1xyXG4gICAgZ2V0IGNvZGUoKSB7IHJldHVybiB0aGlzLl9jb2RlPy50cmltKCkgfVxyXG4gICAgQE91dHB1dCgpIGNvZGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIHByaXZhdGUgb25Db2RlVHlwZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgcHJpdmF0ZSB0eXBlRGVib3VuY2UgPSB0aGlzLm9uQ29kZVR5cGUucGlwZShkZWJvdW5jZVRpbWUoMTAwKSk7XHJcblxyXG4gICAgQElucHV0KCkgY3VzdG9tTGFuZ3VhZ2U6IHsgaW5pdDogRnVuY3Rpb247IH07XHJcblxyXG5cclxuICAgIHByaXZhdGUgX2xhbmd1YWdlOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBzZXQgbGFuZ3VhZ2UodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2xhbmd1YWdlID0ge1xyXG4gICAgICAgICAgICAndHMnOiBcInR5cGVzY3JpcHRcIixcclxuICAgICAgICAgICAgJ2h0bWwnOiAneG1sJyxcclxuICAgICAgICAgICAgJ3Njc3MnOiAnY3NzJ1xyXG4gICAgICAgIH1bdmFsdWVdIHx8IHZhbHVlIHx8IFwiYXV0b1wiXHJcbiAgICB9XHJcbiAgICBnZXQgbGFuZ3VhZ2UoKSB7IHJldHVybiB0aGlzLl9sYW5ndWFnZSB9XHJcblxyXG4gICAgQElucHV0KCkgaW5zdGFsbGF0aW9uTG9jYXRpb24gPSBcIi9saWIvbW9uYWNvL3ZzXCI7XHJcblxyXG5cclxuICAgIEBJbnB1dCgpIHRhYlNpemUgPSAyO1xyXG4gICAgQElucHV0KCkgcmVhZE9ubHkgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHRoZW1lID0gXCJ2cy1kYXJrXCI7XHJcbiAgICBASW5wdXQoKSBmb250RmFtaWx5ID0gXCJEcm9pZCBTYW5zIE1vbm9cIjtcclxuICAgIEBJbnB1dCgpIGZvbnRTaXplID0gMTQ7XHJcblxyXG4gICAgQElucHV0KCkgYXV0b21hdGljTGF5b3V0ID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGNvbG9yRGVjb3JhdG9ycyA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBmb2xkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKSBtaW5pbWFwRW5hYmxlZCA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBtaW5pbWFwOiBNb25hY29FZGl0b3IuZWRpdG9yLklFZGl0b3JNaW5pbWFwT3B0aW9ucyA9IHtcclxuICAgICAgICBlbmFibGVkOiB0cnVlXHJcbiAgICB9O1xyXG4gICAgQElucHV0KCkgc2Nyb2xsYmFyOiBNb25hY29FZGl0b3IuZWRpdG9yLklFZGl0b3JTY3JvbGxiYXJPcHRpb25zID0ge1xyXG4gICAgICAgIGFsd2F5c0NvbnN1bWVNb3VzZVdoZWVsOiBmYWxzZSxcclxuICAgICAgICAvLyBzY3JvbGxCeVBhZ2U6IHRydWVcclxuICAgIH07XHJcbiAgICBASW5wdXQoKSBzbW9vdGhTY3JvbGxpbmcgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgbW91c2VXaGVlbFNjcm9sbFNlbnNpdGl2aXR5ID0gMjtcclxuICAgIEBJbnB1dCgpIHNjcm9sbEJleW9uZExhc3RMaW5lID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzY3JvbGxCZXlvbmRMYXN0Q29sdW1uID0gMDtcclxuXHJcbiAgICBASW5wdXQoKSBsaW5lTnVtYmVyczogTW9uYWNvRWRpdG9yLmVkaXRvci5MaW5lTnVtYmVyc1R5cGUgPSBcIm9uXCI7XHJcblxyXG4gICAgQElucHV0KCkgcmVzdFNldHRpbmdzOiBNb25hY29FZGl0b3IuZWRpdG9yLklTdGFuZGFsb25lRWRpdG9yQ29uc3RydWN0aW9uT3B0aW9ucyA9IHt9O1xyXG5cclxuICAgIGdldCBzZXR0aW5ncygpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi50aGlzLnJlc3RTZXR0aW5ncyxcclxuICAgICAgICAgICAgdGhlbWU6IHRoaXMudGhlbWUsXHJcbiAgICAgICAgICAgIGxhbmd1YWdlOiB0aGlzLmxhbmd1YWdlLFxyXG4gICAgICAgICAgICB0YWJTaXplOiB0aGlzLnRhYlNpemUsXHJcbiAgICAgICAgICAgIHJlYWRPbmx5OiB0aGlzLnJlYWRPbmx5LFxyXG4gICAgICAgICAgICBmb250RmFtaWx5OiB0aGlzLmZvbnRGYW1pbHksXHJcbiAgICAgICAgICAgIGZvbnRTaXplOiB0aGlzLmZvbnRTaXplLFxyXG4gICAgICAgICAgICBhdXRvbWF0aWNMYXlvdXQ6IHRoaXMuYXV0b21hdGljTGF5b3V0LFxyXG4gICAgICAgICAgICBzY3JvbGxCZXlvbmRMYXN0TGluZTogdGhpcy5zY3JvbGxCZXlvbmRMYXN0TGluZSxcclxuICAgICAgICAgICAgY29sb3JEZWNvcmF0b3JzOiB0aGlzLmNvbG9yRGVjb3JhdG9ycyxcclxuICAgICAgICAgICAgZm9sZGluZzogdGhpcy5mb2xkaW5nLFxyXG4gICAgICAgICAgICBzY3JvbGxCZXlvbmRMYXN0Q29sdW1uOiB0aGlzLnNjcm9sbEJleW9uZExhc3RDb2x1bW4sXHJcbiAgICAgICAgICAgIG1pbmltYXA6IHRoaXMubWluaW1hcCxcclxuICAgICAgICAgICAgc2Nyb2xsYmFyOiB0aGlzLnNjcm9sbGJhcixcclxuICAgICAgICAgICAgc21vb3RoU2Nyb2xsaW5nOiB0aGlzLnNtb290aFNjcm9sbGluZyxcclxuICAgICAgICAgICAgbW91c2VXaGVlbFNjcm9sbFNlbnNpdGl2aXR5OiB0aGlzLm1vdXNlV2hlZWxTY3JvbGxTZW5zaXRpdml0eSxcclxuICAgICAgICAgICAgbGluZU51bWJlcnM6IHRoaXMubGluZU51bWJlcnNcclxuICAgICAgICB9IGFzIE1vbmFjb0VkaXRvci5lZGl0b3IuSVN0YW5kYWxvbmVFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3N1YjtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gICAgICAgIHRoaXMuaW5zdGFsbE1vbmFjbygpO1xyXG5cclxuICAgICAgICB0aGlzLl9zdWIgPSB0aGlzLnR5cGVEZWJvdW5jZS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY29kZUNoYW5nZS5uZXh0KHRoaXMuX2NvZGUgPSB0aGlzLmVkaXRvci5nZXRWYWx1ZSgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgLy8gSWYgd2UgY2hhbmdlZCBhbnl0aGluZyBPVEhFUiB0aGFuIGNvZGUsIHJlbG9hZCB0aGUgZWRpdG9yXHJcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGNoYW5nZXMpLmxlbmd0aCA+IDEgfHwgIWNoYW5nZXNbJ2NvZGUnXSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5lZGl0b3IpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yPy5kaXNwb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUVkaXRvcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjaGFuZ2VzWyd0aGVtZSddKVxyXG4gICAgICAgICAgICBNb25hY28/LmVkaXRvci5zZXRUaGVtZSh0aGlzLnRoZW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XHJcblxyXG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgICAgICAgICBsZXQgaSA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb3VudCsrO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh3aW5kb3dbJ21vbmFjbyddICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKGkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBNb25hY28gPSB3aW5kb3dbJ21vbmFjbyddO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcyh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChjb3VudCA+PSAxMDApIHtcclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbChpKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCAxMDApO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmNyZWF0ZUVkaXRvcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yPy5kaXNwb3NlKCk7XHJcbiAgICAgICAgdGhpcy5fc3ViPy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlRWRpdG9yKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUxhbmd1YWdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tTGFuZ3VhZ2UuaW5pdChNb25hY28pO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIGxldCBlZGl0b3IgPSB0aGlzLmVkaXRvciA9IE1vbmFjby5lZGl0b3IuY3JlYXRlKHRoaXMudmlld0NvbnRhaW5lcj8uZWxlbWVudD8ubmF0aXZlRWxlbWVudCwgdGhpcy5zZXR0aW5ncyBhcyBhbnkpO1xyXG5cclxuICAgICAgICAvLyBjb25zdCBhdXRvVHlwaW5ncyA9IGF3YWl0XHJcbiAgICAgICAgTW9uYWNvQXV0b1R5cGVJbXBvcnRlci5jcmVhdGUoZWRpdG9yLCB7XHJcbiAgICAgICAgICAgIG1vbmFjbzogTW9uYWNvLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmNvbmZpZ3VyZUxhbmd1YWdlU3VwcG9ydCgpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb2RlKSB7XHJcbiAgICAgICAgICAgIGVkaXRvci5zZXRWYWx1ZSh0aGlzLmNvZGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWRpdG9yLmdldE1vZGVsKCkub25EaWRDaGFuZ2VDb250ZW50KCgpID0+IHRoaXMub25Db2RlVHlwZS5lbWl0KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY29uZmlndXJlTGFuZ3VhZ2VTdXBwb3J0KCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRydWUgaWYgdGhlIG1vbmFjbyBVTUQgZmlsZXMgYXJlIGluamVjdGVkIGludG8gdGhlIHdlYnBhZ2VcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgaXNNb25hY29JbnN0YWxsZWQgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgaW5zdGFsbE1vbmFjbygpIHtcclxuICAgICAgICBpZiAoVnNjb2RlQ29tcG9uZW50LmlzTW9uYWNvSW5zdGFsbGVkKSByZXR1cm47XHJcblxyXG4gICAgICAgIC8vIE1vbmFjbyBoYXMgYSBVTUQgbG9hZGVyIHRoYXQgcmVxdWlyZXMgdGhpc1xyXG4gICAgICAgIC8vIE1lcmdlIHdpdGggYW55IHByZS1leGlzdGluZyBnbG9iYWwgcmVxdWlyZSBvYmplY3RzLlxyXG4gICAgICAgIGlmICghd2luZG93WydyZXF1aXJlJ10pIHdpbmRvd1sncmVxdWlyZSddID0ge30gYXMgYW55O1xyXG4gICAgICAgIGlmICghd2luZG93WydyZXF1aXJlJ11bJ3BhdGhzJ10pIHdpbmRvd1sncmVxdWlyZSddWydwYXRocyddID0ge307XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbGxhdGlvbkxvY2F0aW9uLmVuZHNXaXRoKCcvJykpXHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFsbGF0aW9uTG9jYXRpb24gPSB0aGlzLmluc3RhbGxhdGlvbkxvY2F0aW9uLnNsaWNlKDAsIC0xKTtcclxuXHJcbiAgICAgICAgd2luZG93WydyZXF1aXJlJ11bJ3BhdGhzJ10udnMgPSB0aGlzLmluc3RhbGxhdGlvbkxvY2F0aW9uO1xyXG5cclxuICAgICAgICBjb25zdCBtb25hY29GaWxlcyA9IFtcclxuICAgICAgICAgICAgJ2xvYWRlci5qcycsXHJcbiAgICAgICAgICAgICdlZGl0b3IvZWRpdG9yLm1haW4ubmxzLmpzJyxcclxuICAgICAgICAgICAgJ2VkaXRvci9lZGl0b3IubWFpbi5qcycsXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtb25hY29GaWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xyXG4gICAgICAgICAgICBzY3JpcHQuc2V0QXR0cmlidXRlKFwiZGVmZXJcIiwgXCJcIik7XHJcbiAgICAgICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoXCJzcmNcIiwgdGhpcy5pbnN0YWxsYXRpb25Mb2NhdGlvbiArICcvJyArIG1vbmFjb0ZpbGVzW2ldKTtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgVnNjb2RlQ29tcG9uZW50LmlzTW9uYWNvSW5zdGFsbGVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBkb3dubG9hZCgpIHtcclxuICAgICAgICBjb25zdCBjb2RlID0gdGhpcy5lZGl0b3IuZ2V0VmFsdWUoKTtcclxuXHJcbiAgICAgICAgbGV0IGJsb2IgPSBuZXcgQmxvYihbY29kZV0sIHsgdHlwZTogJ3RleHQvbG9nJyB9KTtcclxuICAgICAgICBsZXQgZWxtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgIGxldCBibG9iVVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuXHJcbiAgICAgICAgLy8gU2V0IHRoZSBkYXRhIHZhbHVlcy5cclxuICAgICAgICBlbG0uaHJlZiA9IGJsb2JVUkw7XHJcbiAgICAgICAgZWxtLmRvd25sb2FkID0gdGhpcy5maWxlbmFtZTtcclxuXHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbG0pO1xyXG4gICAgICAgIGVsbS5jbGljaygpO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsbSk7XHJcbiAgICAgICAgZWxtLnJlbW92ZSgpO1xyXG5cclxuICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGJsb2JVUkwpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gICAgcmVzaXplID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yPy5sYXlvdXQoKTtcclxuICAgIH07XHJcbn1cclxuIl19
@@ -2,6 +2,7 @@ import { Directive, Input } from '@angular/core';
2
2
  import { MatDialog } from '@angular/material/dialog';
3
3
  import { getPosition } from './utils';
4
4
  import { MenuComponent, calcMenuItemBounds } from '../components/menu/menu.component';
5
+ import { ulid } from 'ulidx';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/material/dialog";
7
8
  export class MenuDirective {
@@ -105,7 +106,7 @@ export const openMenu = async (dialog, menuItems, data, evt, config = {}, el) =>
105
106
  if (!config.alignment)
106
107
  config.alignment = "start";
107
108
  const cords = getPosition(el || evt, config, await calcMenuItemBounds(menuItems, data));
108
- const specificId = crypto.randomUUID();
109
+ const specificId = ulid();
109
110
  return new Promise(res => {
110
111
  dialog.open(MenuComponent, {
111
112
  data: {
@@ -124,4 +125,4 @@ export const openMenu = async (dialog, menuItems, data, evt, config = {}, el) =>
124
125
  });
125
126
  });
126
127
  };
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2RpcmVjdGl2ZXMvbWVudS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBU3RGLE1BQU0sT0FBTyxhQUFhO0lBMkJ0QixZQUNZLE1BQWlCLEVBQ2pCLGFBQStCO1FBRC9CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBUjNDOztXQUVHO1FBRXVCLFdBQU0sR0FBZ0IsRUFBRSxDQUFDO0lBSy9DLENBQUM7SUFFTCxlQUFlO1FBQ1gsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsYUFBNEIsQ0FBQztRQUVuRSw2Q0FBNkM7UUFDN0Msd0JBQXdCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixFQUFFLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVB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QWlCLEVBQ2pCLFNBQXNCLEVBQUUsRUFDeEIsRUFBZ0IsRUFDbEIsRUFBRTtJQUNBLDZEQUE2RDtJQUU3RCxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckIsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBRXRCLGtCQUFrQjtJQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7UUFDakIsTUFBTSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7SUFFL0IsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEYsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRXZDLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsSUFBSSxFQUFFO2dCQUNGLElBQUksRUFBRSxJQUFJO2dCQUNWLEtBQUssRUFBRSxTQUFTO2dCQUNoQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxFQUFFLEVBQUUsVUFBVTthQUNqQjtZQUNELFVBQVUsRUFBRSxDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO1lBQy9FLFFBQVEsRUFBRSxLQUFLO1lBQ2YsYUFBYSxFQUFFLG1CQUFtQjtTQUNyQyxDQUFDO2FBQ0QsV0FBVyxFQUFFO2FBQ2IsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1gsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQWlCLENBQUM7QUFDdkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGdldFBvc2l0aW9uIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBNZW51SXRlbSwgTWVudU9wdGlvbnMgfSBmcm9tICcuLi90eXBlcy9tZW51JztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQsIGNhbGNNZW51SXRlbUJvdW5kcyB9IGZyb20gJy4uL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25neC1jb250ZXh0bWVudV0sW25neC1tZW51XSxbbmd4Q29udGV4dG1lbnVdLFtuZ3hNZW51XScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE1hdERpYWxvZ1xuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZW51RGlyZWN0aXZlIHtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHJlcHJlc2VudGluZyB0aGUgaXRlbSB0aGUgbWVudSB3YXMgb3BlbmVkIGZvci5cbiAgICAgKi9cbiAgICBASW5wdXQoXCJuZ3hNZW51Q29udGV4dFwiKVxuICAgIEBJbnB1dChcIm5neC1tZW51LWNvbnRleHRcIikgZGF0YTogYW55O1xuXG4gICAgLyoqXG4gICAgICogVGhlIGl0ZW1zIHRoYXQgd2lsbCBiZSBib3VuZCB0byB0aGUgY29udGV4dCBtZW51LlxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neENvbnRleHRtZW51XCIpXG4gICAgQElucHV0KFwibmd4LWNvbnRleHRtZW51XCIpIGN0eE1lbnVJdGVtczogTWVudUl0ZW1bXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBpdGVtcyB0aGF0IHdpbGwgYmUgYm91bmQgdG8gdGhlIG1lbnUgdGhhdCBwb3BzXG4gICAgICogdXAgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhlIGVsZW1lbnQuXG4gICAgICovXG4gICAgQElucHV0KFwibmd4TWVudVwiKVxuICAgIEBJbnB1dChcIm5neC1tZW51XCIpIG1lbnVJdGVtczogTWVudUl0ZW1bXTtcblxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIG9wZW5pbmcgdGhlIGFwcCBtZW51XG4gICAgICovXG4gICAgQElucHV0KFwibmd4TWVudUNvbmZpZ1wiKVxuICAgIEBJbnB1dChcIm5neC1tZW51LWNvbmZpZ1wiKSBjb25maWc6IE1lbnVPcHRpb25zID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7IH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIC8vIEF1dG9tYXRpY2FsbHkgYXR0YWNoIGNvbnRleHQgbWVudSBpdGVtcyB0b1xuICAgICAgICAvLyB0aGUgY29udGV4dG1lbnUgZXZlbnRcbiAgICAgICAgaWYgKHRoaXMuY3R4TWVudUl0ZW1zKSB7XG4gICAgICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMub3Blbk1lbnUoZSBhcyBhbnksIHRoaXMuY3R4TWVudUl0ZW1zKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubWVudUl0ZW1zPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnPy50cmlnZ2VyKSB7XG4gICAgICAgICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm9wZW5NZW51LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcnMgPSBBcnJheS5pc0FycmF5KHRoaXMuY29uZmlnLnRyaWdnZXIpID8gdGhpcy5jb25maWcudHJpZ2dlciA6IFt0aGlzLmNvbmZpZy50cmlnZ2VyXTtcblxuICAgICAgICAgICAgICAgIHRyaWdnZXJzLmZvckVhY2godCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ID09IFwiY29udGV4dG1lbnVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcih0LCAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5NZW51KGUgYXMgYW55LCB0aGlzLmN0eE1lbnVJdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIodCwgdGhpcy5vcGVuTWVudS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgb3Blbk1lbnUoZXZ0OiBQb2ludGVyRXZlbnQsIGl0ZW1zID0gdGhpcy5tZW51SXRlbXMpIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoXCJuZ3gtbWVudS1vcGVuXCIpO1xuXG4gICAgICAgIGNvbnN0IGlzQ3R4RXZlbnQgPSBldnQuYnV0dG9uID09IDI7XG5cbiAgICAgICAgcmV0dXJuIG9wZW5NZW51KHRoaXMuZGlhbG9nLCBpdGVtcywgdGhpcy5kYXRhLCBldnQsIHRoaXMuY29uZmlnLCBpc0N0eEV2ZW50ID8gbnVsbCA6IGVsKVxuICAgICAgICAgICAgLnRoZW4oKC4uLnJlcykgPT4ge1xuICAgICAgICAgICAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoXCJuZ3gtbWVudS1vcGVuXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChleCkgPT4ge1xuICAgICAgICAgICAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoXCJuZ3gtbWVudS1vcGVuXCIpO1xuICAgICAgICAgICAgICAgIHRocm93IGV4O1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vLyBIZWxwZXIgdG8gb3BlbiB0aGUgbWVudSB3aXRob3V0IHVzaW5nIHRoZSBkaXJlY3RpdmUuXG5leHBvcnQgY29uc3Qgb3Blbk1lbnUgPSBhc3luYyAoXG4gICAgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgbWVudUl0ZW1zOiBNZW51SXRlbVtdLFxuICAgIGRhdGE6IGFueSxcbiAgICBldnQ6IFBvaW50ZXJFdmVudCxcbiAgICBjb25maWc6IE1lbnVPcHRpb25zID0ge30sXG4gICAgZWw/OiBIVE1MRWxlbWVudFxuKSA9PiB7XG4gICAgLy8gY29uc29sZS5sb2coeyBkaWFsb2csIG1lbnVJdGVtcywgZGF0YSwgZXZ0LCBjb25maWcsIGVsIH0pO1xuXG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgLy8gQXBwbHkgZGVmYXVsdHMuXG4gICAgaWYgKCFjb25maWcuYWxpZ25tZW50KVxuICAgICAgICBjb25maWcuYWxpZ25tZW50ID0gXCJzdGFydFwiO1xuXG4gICAgY29uc3QgY29yZHMgPSBnZXRQb3NpdGlvbihlbCB8fCBldnQsIGNvbmZpZywgYXdhaXQgY2FsY01lbnVJdGVtQm91bmRzKG1lbnVJdGVtcywgZGF0YSkpO1xuICAgIGNvbnN0IHNwZWNpZmljSWQgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlcyA9PiB7XG4gICAgICAgIGRpYWxvZy5vcGVuKE1lbnVDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBtZW51SXRlbXMsXG4gICAgICAgICAgICAgICAgY29uZmlnOiBjb25maWcsXG4gICAgICAgICAgICAgICAgaWQ6IHNwZWNpZmljSWRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYW5lbENsYXNzOiBbXCJuZ3gtbWVudVwiLCAnbmd4LScgKyBzcGVjaWZpY0lkXS5jb25jYXQoY29uZmlnPy5jdXN0b21DbGFzcyB8fCBbXSksXG4gICAgICAgICAgICBwb3NpdGlvbjogY29yZHMsXG4gICAgICAgICAgICBiYWNrZHJvcENsYXNzOiBcIm5neC1tZW51LWJhY2tkcm9wXCJcbiAgICAgICAgfSlcbiAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgLnN1YnNjcmliZShzID0+IHtcbiAgICAgICAgICAgIHJlcyhzKTtcbiAgICAgICAgfSlcbiAgICB9KSBhcyBQcm9taXNlPGFueT47XG59O1xuIl19
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2RpcmVjdGl2ZXMvbWVudS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDOzs7QUFTN0IsTUFBTSxPQUFPLGFBQWE7SUEyQnRCLFlBQ1ksTUFBaUIsRUFDakIsYUFBK0I7UUFEL0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFSM0M7O1dBRUc7UUFFdUIsV0FBTSxHQUFnQixFQUFFLENBQUM7SUFLL0MsQ0FBQztJQUVMLGVBQWU7UUFDWCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxhQUE0QixDQUFDO1FBRW5FLDZDQUE2QztRQUM3Qyx3QkFBd0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDckMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lB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b250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBnZXRQb3NpdGlvbiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgTWVudUl0ZW0sIE1lbnVPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMvbWVudSc7XG5pbXBvcnQgeyBNZW51Q29tcG9uZW50LCBjYWxjTWVudUl0ZW1Cb3VuZHMgfSBmcm9tICcuLi9jb21wb25lbnRzL21lbnUvbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgdWxpZCB9IGZyb20gJ3VsaWR4JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbmd4LWNvbnRleHRtZW51XSxbbmd4LW1lbnVdLFtuZ3hDb250ZXh0bWVudV0sW25neE1lbnVdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTWF0RGlhbG9nXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVEaXJlY3RpdmUge1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgcmVwcmVzZW50aW5nIHRoZSBpdGVtIHRoZSBtZW51IHdhcyBvcGVuZWQgZm9yLlxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neE1lbnVDb250ZXh0XCIpXG4gICAgQElucHV0KFwibmd4LW1lbnUtY29udGV4dFwiKSBkYXRhOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaXRlbXMgdGhhdCB3aWxsIGJlIGJvdW5kIHRvIHRoZSBjb250ZXh0IG1lbnUuXG4gICAgICovXG4gICAgQElucHV0KFwibmd4Q29udGV4dG1lbnVcIilcbiAgICBASW5wdXQoXCJuZ3gtY29udGV4dG1lbnVcIikgY3R4TWVudUl0ZW1zOiBNZW51SXRlbVtdO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGl0ZW1zIHRoYXQgd2lsbCBiZSBib3VuZCB0byB0aGUgbWVudSB0aGF0IHBvcHNcbiAgICAgKiB1cCB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGUgZWxlbWVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoXCJuZ3hNZW51XCIpXG4gICAgQElucHV0KFwibmd4LW1lbnVcIikgbWVudUl0ZW1zOiBNZW51SXRlbVtdO1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3Igb3BlbmluZyB0aGUgYXBwIG1lbnVcbiAgICAgKi9cbiAgICBASW5wdXQoXCJuZ3hNZW51Q29uZmlnXCIpXG4gICAgQElucHV0KFwibmd4LW1lbnUtY29uZmlnXCIpIGNvbmZpZzogTWVudU9wdGlvbnMgPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWZcbiAgICApIHsgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgLy8gQXV0b21hdGljYWxseSBhdHRhY2ggY29udGV4dCBtZW51IGl0ZW1zIHRvXG4gICAgICAgIC8vIHRoZSBjb250ZXh0bWVudSBldmVudFxuICAgICAgICBpZiAodGhpcy5jdHhNZW51SXRlbXMpIHtcbiAgICAgICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgKGUpID0+IHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTWVudShlIGFzIGFueSwgdGhpcy5jdHhNZW51SXRlbXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tZW51SXRlbXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jb25maWc/LnRyaWdnZXIpIHtcbiAgICAgICAgICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub3Blbk1lbnUuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VycyA9IEFycmF5LmlzQXJyYXkodGhpcy5jb25maWcudHJpZ2dlcikgPyB0aGlzLmNvbmZpZy50cmlnZ2VyIDogW3RoaXMuY29uZmlnLnRyaWdnZXJdO1xuXG4gICAgICAgICAgICAgICAgdHJpZ2dlcnMuZm9yRWFjaCh0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgPT0gXCJjb250ZXh0bWVudVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKHQsIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3Blbk1lbnUoZSBhcyBhbnksIHRoaXMuY3R4TWVudUl0ZW1zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcih0LCB0aGlzLm9wZW5NZW51LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBvcGVuTWVudShldnQ6IFBvaW50ZXJFdmVudCwgaXRlbXMgPSB0aGlzLm1lbnVJdGVtcykge1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgZWwuY2xhc3NMaXN0LmFkZChcIm5neC1tZW51LW9wZW5cIik7XG5cbiAgICAgICAgY29uc3QgaXNDdHhFdmVudCA9IGV2dC5idXR0b24gPT0gMjtcblxuICAgICAgICByZXR1cm4gb3Blbk1lbnUodGhpcy5kaWFsb2csIGl0ZW1zLCB0aGlzLmRhdGEsIGV2dCwgdGhpcy5jb25maWcsIGlzQ3R4RXZlbnQgPyBudWxsIDogZWwpXG4gICAgICAgICAgICAudGhlbigoLi4ucmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShcIm5neC1tZW51LW9wZW5cIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShcIm5neC1tZW51LW9wZW5cIik7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXg7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIEhlbHBlciB0byBvcGVuIHRoZSBtZW51IHdpdGhvdXQgdXNpbmcgdGhlIGRpcmVjdGl2ZS5cbmV4cG9ydCBjb25zdCBvcGVuTWVudSA9IGFzeW5jIChcbiAgICBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBtZW51SXRlbXM6IE1lbnVJdGVtW10sXG4gICAgZGF0YTogYW55LFxuICAgIGV2dDogUG9pbnRlckV2ZW50LFxuICAgIGNvbmZpZzogTWVudU9wdGlvbnMgPSB7fSxcbiAgICBlbD86IEhUTUxFbGVtZW50XG4pID0+IHtcbiAgICAvLyBjb25zb2xlLmxvZyh7IGRpYWxvZywgbWVudUl0ZW1zLCBkYXRhLCBldnQsIGNvbmZpZywgZWwgfSk7XG5cbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAvLyBBcHBseSBkZWZhdWx0cy5cbiAgICBpZiAoIWNvbmZpZy5hbGlnbm1lbnQpXG4gICAgICAgIGNvbmZpZy5hbGlnbm1lbnQgPSBcInN0YXJ0XCI7XG5cbiAgICBjb25zdCBjb3JkcyA9IGdldFBvc2l0aW9uKGVsIHx8IGV2dCwgY29uZmlnLCBhd2FpdCBjYWxjTWVudUl0ZW1Cb3VuZHMobWVudUl0ZW1zLCBkYXRhKSk7XG4gICAgY29uc3Qgc3BlY2lmaWNJZCA9IHVsaWQoKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXMgPT4ge1xuICAgICAgICBkaWFsb2cub3BlbihNZW51Q29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgICAgICBpdGVtczogbWVudUl0ZW1zLFxuICAgICAgICAgICAgICAgIGNvbmZpZzogY29uZmlnLFxuICAgICAgICAgICAgICAgIGlkOiBzcGVjaWZpY0lkXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogW1wibmd4LW1lbnVcIiwgJ25neC0nICsgc3BlY2lmaWNJZF0uY29uY2F0KGNvbmZpZz8uY3VzdG9tQ2xhc3MgfHwgW10pLFxuICAgICAgICAgICAgcG9zaXRpb246IGNvcmRzLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogXCJuZ3gtbWVudS1iYWNrZHJvcFwiXG4gICAgICAgIH0pXG4gICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgIC5zdWJzY3JpYmUocyA9PiB7XG4gICAgICAgICAgICByZXMocyk7XG4gICAgICAgIH0pXG4gICAgfSkgYXMgUHJvbWlzZTxhbnk+O1xufTtcbiJdfQ==
@@ -2,6 +2,7 @@ import { Directive, Input, HostListener, TemplateRef } from '@angular/core';
2
2
  import { MatDialog } from '@angular/material/dialog';
3
3
  import { getPosition } from './utils';
4
4
  import { TooltipComponent, calcTooltipBounds } from '../components/tooltip/tooltip.component';
5
+ import { ulid } from 'ulidx';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/material/dialog";
7
8
  export class TooltipDirective {
@@ -109,7 +110,7 @@ export const openTooltip = async (dialog, template, data, el, config, focusTrap
109
110
  const rect = await calcTooltipBounds(template, data);
110
111
  const ownerCords = el.getBoundingClientRect();
111
112
  const cords = getPosition(el, config, rect);
112
- const specificId = crypto.randomUUID();
113
+ const specificId = ulid();
113
114
  return new Promise(res => {
114
115
  dialog.open(TooltipComponent, {
115
116
  autoFocus: focusTrap,
@@ -132,4 +133,4 @@ export const openTooltip = async (dialog, template, data, el, config, focusTrap
132
133
  });
133
134
  });
134
135
  };
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2RpcmVjdGl2ZXMvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ0osT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQVVoSSxNQUFNLE9BQU8sZ0JBQWdCO0lBd0J6QixZQUNZLE1BQWlCLEVBQ2pCLGFBQStCO1FBRC9CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBbkIzQzs7V0FFRztRQUUwQixXQUFNLEdBQW1CLEVBQUUsQ0FBQztRQUV6RDs7V0FFRztRQUUyQixTQUFJLEdBQVEsRUFBRSxDQUFDO1FBSXJDLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUF3Qi9CLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFsQjdDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEtBQUssSUFBSSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7WUFDbkMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ2hFO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZ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cG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEhvc3RMaXN0ZW5lciwgVGVtcGxhdGVSZWYsIFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGdldFBvc2l0aW9uIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyAgfSBmcm9tICcuLi90eXBlcy9wb3B1cCc7aW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCwgY2FsY1Rvb2x0aXBCb3VuZHMgfSBmcm9tICcuLi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcy90b29sdGlwJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbmd4VG9vbHRpcF0sW25neC10b29sdGlwXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE1hdERpYWxvZ1xuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIHtcblxuICAgIC8qKlxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neFRvb2x0aXBcIilcbiAgICBASW5wdXQoXCJuZ3gtdG9vbHRpcFwiKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IFR5cGU8YW55PjtcblxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIG9wZW5pbmcgdGhlIGFwcCBtZW51XG4gICAgICovXG4gICAgQElucHV0KFwibmd4VG9vbHRpcENvbmZpZ1wiKVxuICAgIEBJbnB1dChcIm5neC10b29sdGlwLWNvbmZpZ1wiKSBjb25maWc6IFRvb2x0aXBPcHRpb25zID0ge307XG5cbiAgICAvKipcbiAgICAgKiBBcmJpdHJhcnkgZGF0YSB0byBwYXNzIGludG8gdGhlIHRlbXBsYXRlXG4gICAgICovXG4gICAgQElucHV0KFwibmd4VG9vbHRpcENvbnRleHRcIilcbiAgICBASW5wdXQoXCJuZ3gtdG9vbHRpcC1jb250ZXh0XCIpIGRhdGE6IGFueSA9IHt9O1xuXG5cbiAgICBwcml2YXRlIGRpYWxvZ0luc3RhbmNlOiBNYXREaWFsb2dSZWY8YW55PjtcbiAgICBwcml2YXRlIGlzQ3Vyc29yT3ZlclRhcmdldCA9IGZhbHNlO1xuICAgIHByaXZhdGUgaXNGcmVlemVPbktleUNvZGVCb3VuZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZlxuICAgICkge1xuICAgICAgICBpZiAodGhpcy5jb25maWcuZnJlZXplT25LZXlDb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmlzRnJlZXplT25LZXlDb2RlQm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLm9uS2V5RG93bkV2dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNGcmVlemVPbktleUNvZGVCb3VuZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLm9uS2V5RG93bkV2dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleURvd24oZXZ0KSB7XG4gICAgICAgIC8vIFRPRE86IGZhZGUgbWVzc2FnZSAndG9vbHRpcCBpcyBsb2NrZWQgb3BlbidcbiAgICAgICAgaWYgKGV2dC5jb2RlID09IChcIkYyXCIpKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0luc3RhbmNlLmNvbXBvbmVudEluc3RhbmNlLmlzTG9ja2VkT3BlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBvbktleURvd25FdnQgPSB0aGlzLm9uS2V5RG93bi5iaW5kKHRoaXMpO1xuXG4gICAgLy8gTmVlZHMgdG8gYmUgcHVibGljIHNvIHdlIGNhbiBtYW51YWxseSBvcGVuIHRoZSBkaWFsb2dcbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyZW50ZXInLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBhc3luYyBvblBvaW50ZXJFbnRlcihldnQ6IFBvaW50ZXJFdmVudCkge1xuICAgICAgICAvLyBJZiB0aGUgdGVtcGxhdGUgaXMgbm90IGEgdGVtcGxhdGUgcmVmLCBkbyBub3RoaW5nLlxuICAgICAgICBpZiAoISh0aGlzLnRlbXBsYXRlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIC8vIElmIHRoZSBjbGljayB0cmlnZ2VyIGlzIHNldCwgd2Ugd2lsbCBpbW1lZGlhdGVseSBvcGVuIHRoZSB0b29sdGlwLlxuICAgICAgICAvLyBUaGlzIHdpbGwgYnlwYXNzIGFsbCBvdGhlciB0cmlnZ2Vycy5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnPy50cmlnZ2Vycz8uaW5jbHVkZXMoXCJjbGlja1wiKSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmRpYWxvZ0luc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGE7XG4gICAgICAgICAgICAgICAgZGF0YS5pc0xvY2tlZE9wZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nSW5zdGFuY2UgPSBhd2FpdCBvcGVuVG9vbHRpcCh0aGlzLmRpYWxvZywgdGhpcy50ZW1wbGF0ZSwgdGhpcy5kYXRhLCBlbCwgdGhpcy5jb25maWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc0N1cnNvck92ZXJUYXJnZXQgPSB0cnVlO1xuXG4gICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgLy8gSWYgdGhlIGN1cnNvciBtb3ZlZCBhd2F5IGluIHRoZSB0aW1lXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNDdXJzb3JPdmVyVGFyZ2V0KVxuICAgICAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmRpYWxvZ0luc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nSW5zdGFuY2UgPSBhd2FpdCBvcGVuVG9vbHRpcCh0aGlzLmRpYWxvZywgdGhpcy50ZW1wbGF0ZSwgdGhpcy5kYXRhLCBlbCwgdGhpcy5jb25maWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCB0aGlzLmNvbmZpZy5kZWxheSA/PyAyNTApO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3BvaW50ZXJsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIGFzeW5jIG9uUG9pbnRlckxlYXZlKGV2dDogUG9pbnRlckV2ZW50KSB7XG4gICAgICAgIHRoaXMuaXNDdXJzb3JPdmVyVGFyZ2V0ID0gZmFsc2U7XG4gICAgfVxufVxuXG4vLyBIZWxwZXIgdG8gb3BlbiB0aGUgY29udGV4dCBtZW51IHdpdGhvdXQgdXNpbmcgdGhlIGRpcmVjdGl2ZS5cbmV4cG9ydCBjb25zdCBvcGVuVG9vbHRpcCA9IGFzeW5jIChcbiAgICBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IFR5cGU8YW55PixcbiAgICBkYXRhOiBhbnksXG4gICAgZWw6IEhUTUxFbGVtZW50LFxuICAgIGNvbmZpZz86IFRvb2x0aXBPcHRpb25zLFxuICAgIGZvY3VzVHJhcCA9IGZhbHNlXG4pID0+IHtcblxuICAgIGNvbnN0IHJlY3QgPSBhd2FpdCBjYWxjVG9vbHRpcEJvdW5kcyh0ZW1wbGF0ZSwgZGF0YSk7XG4gICAgY29uc3Qgb3duZXJDb3JkcyA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGNvcmRzID0gZ2V0UG9zaXRpb24oZWwsIGNvbmZpZywgcmVjdCk7XG4gICAgY29uc3Qgc3BlY2lmaWNJZCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzID0+IHtcbiAgICAgICAgZGlhbG9nLm9wZW4oVG9vbHRpcENvbXBvbmVudCwge1xuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmb2N1c1RyYXAsXG4gICAgICAgICAgICByZXN0b3JlRm9jdXM6IGZvY3VzVHJhcCxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSxcbiAgICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZyxcbiAgICAgICAgICAgICAgICBvd25lckNvcmRzOiBvd25lckNvcmRzLFxuICAgICAgICAgICAgICAgIHNlbGZDb3JkczogY29yZHMsXG4gICAgICAgICAgICAgICAgaWQ6IHNwZWNpZmljSWRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYW5lbENsYXNzOiBbXCJuZ3gtdG9vbHRpcFwiLCAnbmd4LScgKyBzcGVjaWZpY0lkXS5jb25jYXQoY29uZmlnPy5jdXN0b21DbGFzcyB8fCBbXSksXG4gICAgICAgICAgICBwb3NpdGlvbjogY29yZHMsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHMgPT4ge1xuICAgICAgICAgICAgICAgIHJlcyhzKTtcbiAgICAgICAgICAgIH0pXG4gICAgfSkgYXMgUHJvbWlzZTxhbnk+O1xufTtcbiJdfQ==
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2RpcmVjdGl2ZXMvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ0osT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFaEksT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQzs7O0FBUzdCLE1BQU0sT0FBTyxnQkFBZ0I7SUF3QnpCLFlBQ1ksTUFBaUIsRUFDakIsYUFBK0I7UUFEL0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFuQjNDOztXQUVHO1FBRTBCLFdBQU0sR0FBbUIsRUFBRSxDQUFDO1FBRXpEOztXQUVHO1FBRTJCLFNBQUksR0FBUSxFQUFFLENBQUM7UUFJckMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQXdCL0IsaUJBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQWxCN0MsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsS0FBSyxJQUFJLEVBQUU7WUFDdEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztZQUNuQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEU7SUFDTCxDQUFDO0lB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QUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBIb3N0TGlzdGVuZXIsIFRlbXBsYXRlUmVmLCBUeXBlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBnZXRQb3NpdGlvbiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgIH0gZnJvbSAnLi4vdHlwZXMvcG9wdXAnO2ltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQsIGNhbGNUb29sdGlwQm91bmRzIH0gZnJvbSAnLi4vY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2x0aXBPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMvdG9vbHRpcCc7XG5pbXBvcnQgeyB1bGlkIH0gZnJvbSAndWxpZHgnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tuZ3hUb29sdGlwXSxbbmd4LXRvb2x0aXBdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTWF0RGlhbG9nXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUge1xuXG4gICAgLyoqXG4gICAgICovXG4gICAgQElucHV0KFwibmd4VG9vbHRpcFwiKVxuICAgIEBJbnB1dChcIm5neC10b29sdGlwXCIpIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgVHlwZTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3Igb3BlbmluZyB0aGUgYXBwIG1lbnVcbiAgICAgKi9cbiAgICBASW5wdXQoXCJuZ3hUb29sdGlwQ29uZmlnXCIpXG4gICAgQElucHV0KFwibmd4LXRvb2x0aXAtY29uZmlnXCIpIGNvbmZpZzogVG9vbHRpcE9wdGlvbnMgPSB7fTtcblxuICAgIC8qKlxuICAgICAqIEFyYml0cmFyeSBkYXRhIHRvIHBhc3MgaW50byB0aGUgdGVtcGxhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoXCJuZ3hUb29sdGlwQ29udGV4dFwiKVxuICAgIEBJbnB1dChcIm5neC10b29sdGlwLWNvbnRleHRcIikgZGF0YTogYW55ID0ge307XG5cblxuICAgIHByaXZhdGUgZGlhbG9nSW5zdGFuY2U6IE1hdERpYWxvZ1JlZjxhbnk+O1xuICAgIHByaXZhdGUgaXNDdXJzb3JPdmVyVGFyZ2V0ID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBpc0ZyZWV6ZU9uS2V5Q29kZUJvdW5kID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5mcmVlemVPbktleUNvZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGcmVlemVPbktleUNvZGVCb3VuZCA9IHRydWU7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIHRoaXMub25LZXlEb3duRXZ0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5pc0ZyZWV6ZU9uS2V5Q29kZUJvdW5kKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIHRoaXMub25LZXlEb3duRXZ0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uS2V5RG93bihldnQpIHtcbiAgICAgICAgLy8gVE9ETzogZmFkZSBtZXNzYWdlICd0b29sdGlwIGlzIGxvY2tlZCBvcGVuJ1xuICAgICAgICBpZiAoZXZ0LmNvZGUgPT0gKFwiRjJcIikpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nSW5zdGFuY2UuY29tcG9uZW50SW5zdGFuY2UuaXNMb2NrZWRPcGVuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIG9uS2V5RG93bkV2dCA9IHRoaXMub25LZXlEb3duLmJpbmQodGhpcyk7XG5cbiAgICAvLyBOZWVkcyB0byBiZSBwdWJsaWMgc28gd2UgY2FuIG1hbnVhbGx5IG9wZW4gdGhlIGRpYWxvZ1xuICAgIEBIb3N0TGlzdGVuZXIoJ3BvaW50ZXJlbnRlcicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIGFzeW5jIG9uUG9pbnRlckVudGVyKGV2dDogUG9pbnRlckV2ZW50KSB7XG4gICAgICAgIC8vIElmIHRoZSB0ZW1wbGF0ZSBpcyBub3QgYSB0ZW1wbGF0ZSByZWYsIGRvIG5vdGhpbmcuXG4gICAgICAgIGlmICghKHRoaXMudGVtcGxhdGUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgLy8gSWYgdGhlIGNsaWNrIHRyaWdnZXIgaXMgc2V0LCB3ZSB3aWxsIGltbWVkaWF0ZWx5IG9wZW4gdGhlIHRvb2x0aXAuXG4gICAgICAgIC8vIFRoaXMgd2lsbCBieXBhc3MgYWxsIG90aGVyIHRyaWdnZXJzLlxuICAgICAgICBpZiAodGhpcy5jb25maWc/LnRyaWdnZXJzPy5pbmNsdWRlcyhcImNsaWNrXCIpKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlhbG9nSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YTtcbiAgICAgICAgICAgICAgICBkYXRhLmlzTG9ja2VkT3BlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dJbnN0YW5jZSA9IGF3YWl0IG9wZW5Ub29sdGlwKHRoaXMuZGlhbG9nLCB0aGlzLnRlbXBsYXRlLCB0aGlzLmRhdGEsIGVsLCB0aGlzLmNvbmZpZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzQ3Vyc29yT3ZlclRhcmdldCA9IHRydWU7XG5cbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgY3Vyc29yIG1vdmVkIGF3YXkgaW4gdGhlIHRpbWVcbiAgICAgICAgICAgIGlmICghdGhpcy5pc0N1cnNvck92ZXJUYXJnZXQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlhbG9nSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dJbnN0YW5jZSA9IGF3YWl0IG9wZW5Ub29sdGlwKHRoaXMuZGlhbG9nLCB0aGlzLnRlbXBsYXRlLCB0aGlzLmRhdGEsIGVsLCB0aGlzLmNvbmZpZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHRoaXMuY29uZmlnLmRlbGF5ID8/IDI1MCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmxlYXZlJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgYXN5bmMgb25Qb2ludGVyTGVhdmUoZXZ0OiBQb2ludGVyRXZlbnQpIHtcbiAgICAgICAgdGhpcy5pc0N1cnNvck92ZXJUYXJnZXQgPSBmYWxzZTtcbiAgICB9XG59XG5cbi8vIEhlbHBlciB0byBvcGVuIHRoZSBjb250ZXh0IG1lbnUgd2l0aG91dCB1c2luZyB0aGUgZGlyZWN0aXZlLlxuZXhwb3J0IGNvbnN0IG9wZW5Ub29sdGlwID0gYXN5bmMgKFxuICAgIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgVHlwZTxhbnk+LFxuICAgIGRhdGE6IGFueSxcbiAgICBlbDogSFRNTEVsZW1lbnQsXG4gICAgY29uZmlnPzogVG9vbHRpcE9wdGlvbnMsXG4gICAgZm9jdXNUcmFwID0gZmFsc2VcbikgPT4ge1xuXG4gICAgY29uc3QgcmVjdCA9IGF3YWl0IGNhbGNUb29sdGlwQm91bmRzKHRlbXBsYXRlLCBkYXRhKTtcbiAgICBjb25zdCBvd25lckNvcmRzID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgY29yZHMgPSBnZXRQb3NpdGlvbihlbCwgY29uZmlnLCByZWN0KTtcbiAgICBjb25zdCBzcGVjaWZpY0lkID0gdWxpZCgpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlcyA9PiB7XG4gICAgICAgIGRpYWxvZy5vcGVuKFRvb2x0aXBDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGF1dG9Gb2N1czogZm9jdXNUcmFwLFxuICAgICAgICAgICAgcmVzdG9yZUZvY3VzOiBmb2N1c1RyYXAsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdGVtcGxhdGUsXG4gICAgICAgICAgICAgICAgY29uZmlnOiBjb25maWcsXG4gICAgICAgICAgICAgICAgb3duZXJDb3Jkczogb3duZXJDb3JkcyxcbiAgICAgICAgICAgICAgICBzZWxmQ29yZHM6IGNvcmRzLFxuICAgICAgICAgICAgICAgIGlkOiBzcGVjaWZpY0lkXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogW1wibmd4LXRvb2x0aXBcIiwgJ25neC0nICsgc3BlY2lmaWNJZF0uY29uY2F0KGNvbmZpZz8uY3VzdG9tQ2xhc3MgfHwgW10pLFxuICAgICAgICAgICAgcG9zaXRpb246IGNvcmRzLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlXG4gICAgICAgIH0pXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgLnN1YnNjcmliZShzID0+IHtcbiAgICAgICAgICAgICAgICByZXMocyk7XG4gICAgICAgICAgICB9KVxuICAgIH0pIGFzIFByb21pc2U8YW55Pjtcbn07XG4iXX0=
@@ -15,6 +15,7 @@ import 'tslib';
15
15
  import '@angular/common';
16
16
  import '@angular/platform-browser';
17
17
  import 'rxjs';
18
+ import 'ulidx';
18
19
  import '@angular/material/progress-spinner';
19
20
  import '@angular/cdk/portal';
20
21
  import '@angular/cdk/dialog';
@@ -78,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
78
79
  }] } });
79
80
 
80
81
  export { FolderRenameComponent };
81
- //# sourceMappingURL=dotglitch-ngx-common-folder-rename.component-22b918d0.mjs.map
82
+ //# sourceMappingURL=dotglitch-ngx-common-folder-rename.component-984ccea3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotglitch-ngx-common-folder-rename.component-984ccea3.mjs","sources":["../../../packages/common/src/components/filemanager/folder-rename/folder-rename.component.ts","../../../packages/common/src/components/filemanager/folder-rename/folder-rename.component.html"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { NgxFileManagerConfiguration } from '../filemanager.component';\nimport { Fetch } from '../../../public-api';\n\n@Component({\n selector: 'app-folder-rename',\n templateUrl: './folder-rename.component.html',\n styleUrls: ['./folder-rename.component.scss'],\n imports: [\n MatInputModule,\n MatIconModule,\n MatButtonModule,\n FormsModule\n ],\n standalone: true\n})\nexport class FolderRenameComponent implements OnInit {\n\n @Input() path: string;\n @Input() name: string = '';\n @Input() config: NgxFileManagerConfiguration;\n\n isRename = false;\n\n constructor(\n public dialog: MatDialogRef<any>,\n private fetch: Fetch\n ) { }\n\n ngOnInit() {\n this.isRename = this.name.length > 0;\n }\n\n onSave() {\n if (this.isRename) {\n const url = this.config.apiSettings.renameEntryUrlTemplate\n ? this.config.apiSettings.renameEntryUrlTemplate(this.path + this.name)\n : this.config.apiSettings.renameEntryUrl\n\n this.fetch.post(url, { path: this.path + '/' + this.name });\n }\n else {\n const url = this.config.apiSettings.createDirectoryUrlTemplate\n ? this.config.apiSettings.createDirectoryUrlTemplate(this.path + this.name)\n : this.config.apiSettings.createDirectoryUrl\n\n this.fetch.post(url, {path: this.path +'/'+ this.name});\n }\n this.dialog.close(true);\n }\n}\n","<mat-form-field style=\"width: 280px;\">\n <mat-label>Name</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"name\" (keyup)=\"$event.key == 'Enter' && onSave()\">\n</mat-form-field>\n\n<div style=\"align-self: end;\">\n <button mat-flat-button (click)=\"onSave()\"><mat-icon>check</mat-icon>Ok</button>\n <button mat-flat-button (click)=\"dialog.close()\"><mat-icon>cancel</mat-icon>Cancel</button>\n</div>\n"],"names":["i2.Fetch","i6"],"mappings":"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"}