@datarailsshared/datarailsshared 1.6.406 → 1.6.408
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/datarailsshared-datarailsshared-1.6.408.tgz +0 -0
- package/esm2022/lib/dr-accordion/accordion-item-body.component.mjs +3 -3
- package/esm2022/lib/dr-accordion/accordion-item-header.component.mjs +5 -4
- package/esm2022/lib/dr-accordion/accordion-item.component.mjs +3 -3
- package/esm2022/lib/dr-accordion/accordion.component.mjs +3 -3
- package/esm2022/lib/dr-accordion/accordion.module.mjs +5 -8
- package/esm2022/lib/dr-code-editor/components/code-editor-hint-wrapper.component.mjs +6 -4
- package/esm2022/lib/dr-code-editor/components/dr-codemirror.component.mjs +4 -3
- package/esm2022/lib/dr-code-editor/dr-code-editor.component.mjs +11 -6
- package/esm2022/lib/dr-code-editor/dr-code-editor.module.mjs +4 -10
- package/esm2022/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.mjs +3 -3
- package/esm2022/lib/dr-dropdown/dr-dropdown-item-show.pipe.mjs +3 -2
- package/esm2022/lib/dr-dropdown/dr-dropdown.component.mjs +20 -5
- package/esm2022/lib/dr-dropdown/dr-dropdown.directive.mjs +5 -3
- package/esm2022/lib/dr-dropdown/dr-dropdown.module.mjs +5 -14
- package/esm2022/lib/dr-layout/dr-layout-body.component.mjs +3 -2
- package/esm2022/lib/dr-layout/dr-layout-header.component.mjs +3 -2
- package/esm2022/lib/dr-layout/dr-layout.component.mjs +3 -3
- package/esm2022/lib/dr-layout/dr-layout.module.mjs +4 -6
- package/esm2022/lib/dr-tabs/dr-tab.component.mjs +3 -2
- package/esm2022/lib/dr-tabs/dr-tabs.component.mjs +9 -4
- package/esm2022/lib/dr-tabs/dr-tabs.module.mjs +4 -11
- package/esm2022/lib/dr-treeview/components/treeview/treeview.component.mjs +9 -7
- package/esm2022/lib/dr-treeview/components/treeview-item/treeview-item.component.mjs +5 -4
- package/esm2022/lib/dr-treeview/dr-tree-view.module.mjs +4 -8
- package/esm2022/lib/dr-treeview/pipes/treeview.pipe.mjs +3 -2
- package/fesm2022/datarailsshared-datarailsshared.mjs +147 -141
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
- package/lib/dr-accordion/accordion-item-body.component.d.ts +1 -1
- package/lib/dr-accordion/accordion-item-header.component.d.ts +3 -2
- package/lib/dr-accordion/accordion-item.component.d.ts +1 -1
- package/lib/dr-accordion/accordion.component.d.ts +1 -1
- package/lib/dr-accordion/accordion.module.d.ts +1 -2
- package/lib/dr-code-editor/components/code-editor-hint-wrapper.component.d.ts +1 -1
- package/lib/dr-code-editor/components/dr-codemirror.component.d.ts +1 -1
- package/lib/dr-code-editor/dr-code-editor.component.d.ts +5 -1
- package/lib/dr-code-editor/dr-code-editor.module.d.ts +1 -5
- package/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.d.ts +1 -1
- package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +1 -1
- package/lib/dr-dropdown/dr-dropdown.component.d.ts +1 -1
- package/lib/dr-dropdown/dr-dropdown.directive.d.ts +2 -2
- package/lib/dr-dropdown/dr-dropdown.module.d.ts +1 -4
- package/lib/dr-layout/dr-layout-body.component.d.ts +1 -1
- package/lib/dr-layout/dr-layout-header.component.d.ts +1 -1
- package/lib/dr-layout/dr-layout.component.d.ts +1 -1
- package/lib/dr-layout/dr-layout.module.d.ts +1 -2
- package/lib/dr-tabs/dr-tab.component.d.ts +1 -1
- package/lib/dr-tabs/dr-tabs.component.d.ts +1 -1
- package/lib/dr-tabs/dr-tabs.module.d.ts +1 -6
- package/lib/dr-treeview/components/treeview/treeview.component.d.ts +1 -1
- package/lib/dr-treeview/components/treeview-item/treeview-item.component.d.ts +1 -1
- package/lib/dr-treeview/dr-tree-view.module.d.ts +1 -3
- package/lib/dr-treeview/pipes/treeview.pipe.d.ts +1 -1
- package/package.json +1 -1
- package/datarailsshared-datarailsshared-1.6.406.tgz +0 -0
|
@@ -1,13 +1,18 @@
|
|
|
1
|
+
import 'codemirror/mode/javascript/javascript';
|
|
2
|
+
import 'codemirror/addon/edit/matchbrackets';
|
|
3
|
+
import 'codemirror/addon/hint/show-hint';
|
|
4
|
+
import '@codemirror/autocomplete';
|
|
1
5
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, forwardRef, Injector, Input, ViewChild, } from '@angular/core';
|
|
2
|
-
import {
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
8
|
import * as CodeMirror from 'codemirror';
|
|
4
9
|
import { CodeEditorHintWrapperComponent } from './components/code-editor-hint-wrapper.component';
|
|
5
10
|
import { DrCodemirrorComponent } from './components/dr-codemirror.component';
|
|
11
|
+
import { DrErrorModule } from '../dr-error/dr-error.module';
|
|
6
12
|
import * as i0 from "@angular/core";
|
|
7
13
|
import * as i1 from "@angular/common";
|
|
8
14
|
import * as i2 from "@angular/forms";
|
|
9
15
|
import * as i3 from "../dr-error/dr-error.component";
|
|
10
|
-
import * as i4 from "./components/dr-codemirror.component";
|
|
11
16
|
const _c0 = ["codeEditor"];
|
|
12
17
|
function DrCodeEditorComponent_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
13
18
|
i0.ɵɵelementStart(0, "span", 4);
|
|
@@ -291,7 +296,7 @@ export class DrCodeEditorComponent {
|
|
|
291
296
|
} if (rf & 2) {
|
|
292
297
|
let _t;
|
|
293
298
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.codeEditor = _t.first);
|
|
294
|
-
} }, inputs: { markers: "markers", highlightHints: "highlightHints", hints: "hints", control: "control", placeholder: "placeholder" }, features: [i0.ɵɵProvidersFeature([{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => DrCodeEditorComponent)), multi: true }])], decls: 4, vars: 9, consts: [[3, "ngModel", "options", "ngModelChange", "focusChange", "codeMirrorLoaded"], ["codeEditor", ""], ["class", "codemirror-placeholder", 4, "ngIf"], [3, "control", "displayAsLabel"], [1, "codemirror-placeholder"]], template: function DrCodeEditorComponent_Template(rf, ctx) { if (rf & 1) {
|
|
299
|
+
} }, inputs: { markers: "markers", highlightHints: "highlightHints", hints: "hints", control: "control", placeholder: "placeholder" }, standalone: true, features: [i0.ɵɵProvidersFeature([{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => DrCodeEditorComponent)), multi: true }]), i0.ɵɵStandaloneFeature], decls: 4, vars: 9, consts: [[3, "ngModel", "options", "ngModelChange", "focusChange", "codeMirrorLoaded"], ["codeEditor", ""], ["class", "codemirror-placeholder", 4, "ngIf"], [3, "control", "displayAsLabel"], [1, "codemirror-placeholder"]], template: function DrCodeEditorComponent_Template(rf, ctx) { if (rf & 1) {
|
|
295
300
|
i0.ɵɵelementStart(0, "dr-codemirror", 0, 1);
|
|
296
301
|
i0.ɵɵlistener("ngModelChange", function DrCodeEditorComponent_Template_dr_codemirror_ngModelChange_0_listener($event) { return ctx.value = $event; })("focusChange", function DrCodeEditorComponent_Template_dr_codemirror_focusChange_0_listener($event) { return ctx.focusChanged($event); })("codeMirrorLoaded", function DrCodeEditorComponent_Template_dr_codemirror_codeMirrorLoaded_0_listener() { return ctx.afterCodeMirrorLoaded(); });
|
|
297
302
|
i0.ɵɵelementEnd();
|
|
@@ -304,11 +309,11 @@ export class DrCodeEditorComponent {
|
|
|
304
309
|
i0.ɵɵproperty("ngIf", !ctx.isFocused && !ctx.innerValue);
|
|
305
310
|
i0.ɵɵadvance(1);
|
|
306
311
|
i0.ɵɵproperty("control", ctx.control)("displayAsLabel", true);
|
|
307
|
-
} }, dependencies: [i1.NgIf, i2.NgControlStatus, i2.NgModel, i3.DrErrorComponent
|
|
312
|
+
} }, dependencies: [CommonModule, i1.NgIf, FormsModule, i2.NgControlStatus, i2.NgModel, DrCodemirrorComponent, DrErrorModule, i3.DrErrorComponent], styles: ["dr-codemirror[_ngcontent-%COMP%] .CodeMirror{height:10rem;border:1px solid #9ea1aa;border-radius:6px}dr-codemirror[_ngcontent-%COMP%] .CodeMirror-focused{border-color:#4646ce!important}dr-codemirror[_ngcontent-%COMP%] .CodeMirror-line{font-size:12px;line-height:16px;font-weight:400}dr-codemirror[_ngcontent-%COMP%] .CodeMirror .CodeMirror-scroll{padding:0}dr-codemirror[_ngcontent-%COMP%] .CodeMirror .marker{color:#fff;background:#20a452}dr-codemirror[_ngcontent-%COMP%] .CodeMirror .marker:first-child, dr-codemirror[_ngcontent-%COMP%] .CodeMirror .cm-variable:not(.marker)+.marker{padding-left:2px;margin-left:2px}dr-codemirror[_ngcontent-%COMP%] .CodeMirror .marker+.cm-variable:not(.marker){margin-left:2px}dr-codemirror[_ngcontent-%COMP%] .CodeMirror-matchingbracket{color:#0f0!important}[_nghost-%COMP%] {position:relative}[_nghost-%COMP%] .mirror-error .CodeMirror{border:1px solid #bf1d30}[_nghost-%COMP%] .mark-hints .hint-variable{color:#4646ce}dr-error[_ngcontent-%COMP%]{position:absolute;bottom:5px;left:7px;background:#fff;margin:0;width:calc(100% - 9px)}dr-error[_ngcontent-%COMP%]:not(:last-child){display:none}.codemirror-placeholder[_ngcontent-%COMP%]{color:#6d6e6f;position:absolute;top:10px;left:10px;font-size:12px;pointer-events:none;white-space:pre} .CodeMirror-hints{background:#fff;border:1px solid #e5e6ea;box-shadow:0 4px 8px 1px #00000040;border-radius:6px;z-index:100;padding:8px 0} .CodeMirror-hints .CodeMirror-hint{font-size:12px;line-height:16px;font-weight:400;padding:0 12px;display:flex;align-items:center;height:32px;background:#fff;color:#333} .CodeMirror-hints .CodeMirror-hint, .CodeMirror-hints .CodeMirror-hint-active{background:#fff;color:#333} .CodeMirror-hints:not(:hover) .CodeMirror-hint-active, .CodeMirror-hints .CodeMirror-hint:hover{background:#eaeaff;cursor:pointer}"], changeDetection: 0 }); }
|
|
308
313
|
}
|
|
309
314
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrCodeEditorComponent, [{
|
|
310
315
|
type: Component,
|
|
311
|
-
args: [{ selector: 'dr-code-editor', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => DrCodeEditorComponent)), multi: true }], template: "<dr-codemirror\n #codeEditor\n [(ngModel)]=\"value\"\n [options]=\"codeMirrorOptions\"\n [class.mark-hints]=\"highlightHints\"\n [class.mirror-error]=\"control.status === 'INVALID' && !control.pristine\"\n (focusChange)=\"focusChanged($event)\"\n (codeMirrorLoaded)=\"afterCodeMirrorLoaded()\"></dr-codemirror>\n<span *ngIf=\"!isFocused && !innerValue\" class=\"codemirror-placeholder\">{{ placeholder }}</span>\n<dr-error [control]=\"control\" [displayAsLabel]=\"true\"></dr-error>\n", styles: ["dr-codemirror ::ng-deep .CodeMirror{height:10rem;border:1px solid #9ea1aa;border-radius:6px}dr-codemirror ::ng-deep .CodeMirror-focused{border-color:#4646ce!important}dr-codemirror ::ng-deep .CodeMirror-line{font-size:12px;line-height:16px;font-weight:400}dr-codemirror ::ng-deep .CodeMirror .CodeMirror-scroll{padding:0}dr-codemirror ::ng-deep .CodeMirror .marker{color:#fff;background:#20a452}dr-codemirror ::ng-deep .CodeMirror .marker:first-child,dr-codemirror ::ng-deep .CodeMirror .cm-variable:not(.marker)+.marker{padding-left:2px;margin-left:2px}dr-codemirror ::ng-deep .CodeMirror .marker+.cm-variable:not(.marker){margin-left:2px}dr-codemirror ::ng-deep .CodeMirror-matchingbracket{color:#0f0!important}:host::ng-deep{position:relative}:host::ng-deep .mirror-error .CodeMirror{border:1px solid #bf1d30}:host::ng-deep .mark-hints .hint-variable{color:#4646ce}dr-error{position:absolute;bottom:5px;left:7px;background:#fff;margin:0;width:calc(100% - 9px)}dr-error:not(:last-child){display:none}.codemirror-placeholder{color:#6d6e6f;position:absolute;top:10px;left:10px;font-size:12px;pointer-events:none;white-space:pre}::ng-deep .CodeMirror-hints{background:#fff;border:1px solid #e5e6ea;box-shadow:0 4px 8px 1px #00000040;border-radius:6px;z-index:100;padding:8px 0}::ng-deep .CodeMirror-hints .CodeMirror-hint{font-size:12px;line-height:16px;font-weight:400;padding:0 12px;display:flex;align-items:center;height:32px;background:#fff;color:#333}::ng-deep .CodeMirror-hints .CodeMirror-hint,::ng-deep .CodeMirror-hints .CodeMirror-hint-active{background:#fff;color:#333}::ng-deep .CodeMirror-hints:not(:hover) .CodeMirror-hint-active,::ng-deep .CodeMirror-hints .CodeMirror-hint:hover{background:#eaeaff;cursor:pointer}\n"] }]
|
|
316
|
+
args: [{ standalone: true, imports: [CommonModule, FormsModule, DrCodemirrorComponent, DrErrorModule], selector: 'dr-code-editor', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => DrCodeEditorComponent)), multi: true }], template: "<dr-codemirror\n #codeEditor\n [(ngModel)]=\"value\"\n [options]=\"codeMirrorOptions\"\n [class.mark-hints]=\"highlightHints\"\n [class.mirror-error]=\"control.status === 'INVALID' && !control.pristine\"\n (focusChange)=\"focusChanged($event)\"\n (codeMirrorLoaded)=\"afterCodeMirrorLoaded()\"></dr-codemirror>\n<span *ngIf=\"!isFocused && !innerValue\" class=\"codemirror-placeholder\">{{ placeholder }}</span>\n<dr-error [control]=\"control\" [displayAsLabel]=\"true\"></dr-error>\n", styles: ["dr-codemirror ::ng-deep .CodeMirror{height:10rem;border:1px solid #9ea1aa;border-radius:6px}dr-codemirror ::ng-deep .CodeMirror-focused{border-color:#4646ce!important}dr-codemirror ::ng-deep .CodeMirror-line{font-size:12px;line-height:16px;font-weight:400}dr-codemirror ::ng-deep .CodeMirror .CodeMirror-scroll{padding:0}dr-codemirror ::ng-deep .CodeMirror .marker{color:#fff;background:#20a452}dr-codemirror ::ng-deep .CodeMirror .marker:first-child,dr-codemirror ::ng-deep .CodeMirror .cm-variable:not(.marker)+.marker{padding-left:2px;margin-left:2px}dr-codemirror ::ng-deep .CodeMirror .marker+.cm-variable:not(.marker){margin-left:2px}dr-codemirror ::ng-deep .CodeMirror-matchingbracket{color:#0f0!important}:host::ng-deep{position:relative}:host::ng-deep .mirror-error .CodeMirror{border:1px solid #bf1d30}:host::ng-deep .mark-hints .hint-variable{color:#4646ce}dr-error{position:absolute;bottom:5px;left:7px;background:#fff;margin:0;width:calc(100% - 9px)}dr-error:not(:last-child){display:none}.codemirror-placeholder{color:#6d6e6f;position:absolute;top:10px;left:10px;font-size:12px;pointer-events:none;white-space:pre}::ng-deep .CodeMirror-hints{background:#fff;border:1px solid #e5e6ea;box-shadow:0 4px 8px 1px #00000040;border-radius:6px;z-index:100;padding:8px 0}::ng-deep .CodeMirror-hints .CodeMirror-hint{font-size:12px;line-height:16px;font-weight:400;padding:0 12px;display:flex;align-items:center;height:32px;background:#fff;color:#333}::ng-deep .CodeMirror-hints .CodeMirror-hint,::ng-deep .CodeMirror-hints .CodeMirror-hint-active{background:#fff;color:#333}::ng-deep .CodeMirror-hints:not(:hover) .CodeMirror-hint-active,::ng-deep .CodeMirror-hints .CodeMirror-hint:hover{background:#eaeaff;cursor:pointer}\n"] }]
|
|
312
317
|
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }]; }, { markers: [{
|
|
313
318
|
type: Input
|
|
314
319
|
}], highlightHints: [{
|
|
@@ -323,4 +328,4 @@ export class DrCodeEditorComponent {
|
|
|
323
328
|
type: ViewChild,
|
|
324
329
|
args: ['codeEditor']
|
|
325
330
|
}] }); })();
|
|
326
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY29kZS1lZGl0b3IvZHItY29kZS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY29kZS1lZGl0b3IvZHItY29kZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRWpHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7OztJQ1A3RSwrQkFBdUU7SUFBQSxZQUFpQjtJQUFBLGlCQUFPOzs7SUFBeEIsZUFBaUI7SUFBakIsd0NBQWlCOztBRFF4RixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7QUFTdEIsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUNZLEdBQXNCLEVBQ3RCLEdBQTZCLEVBQzdCLFFBQWtCO1FBRmxCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQTBCO1FBQzdCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFHdkIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUNwQixzQkFBaUIsR0FBZSxJQUFJLENBQUM7UUFDckMs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dHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgKiBhcyBDb2RlTWlycm9yIGZyb20gJ2NvZGVtaXJyb3InO1xuaW1wb3J0IHsgSGludCwgSGludHMgfSBmcm9tICdjb2RlbWlycm9yJztcbmltcG9ydCB7IENvZGVFZGl0b3JIaW50V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2RlLWVkaXRvci1oaW50LXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IElDb2RlRWRpdG9ySGludCwgSUNvZGVFZGl0b3JNYXJrZXIgfSBmcm9tICcuL21vZGVscy9jb2RlLWVkaXRvci1oaW50JztcbmltcG9ydCB7IERyQ29kZW1pcnJvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kci1jb2RlbWlycm9yLmNvbXBvbmVudCc7XG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItY29kZS1lZGl0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1jb2RlLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItY29kZS1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEckNvZGVFZGl0b3JDb21wb25lbnQpLCBtdWx0aTogdHJ1ZSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgRHJDb2RlRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICkge31cblxuICAgIHB1YmxpYyBpbm5lclZhbHVlOiBhbnkgPSAnJztcbiAgICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcbiAgICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuICAgIHByaXZhdGUgZXhpc3RNYXJrZXJzOiBhbnlbXTtcbiAgICBwcml2YXRlIGhpZ2hsaWdodGVkSGludHM6IGFueVtdO1xuICAgIHByaXZhdGUgcGFyZW50aGVzZXNNYXJrZXJzID0gW107XG4gICAgcHJpdmF0ZSBwYXJlbnRoZXNpc0NvbG9yczogc3RyaW5nW10gPSBbXG4gICAgICAgICcjMkYzRTQ4JyxcbiAgICAgICAgJyMxZjY4Y2MnLFxuICAgICAgICAnIzk0ODBDRCcsXG4gICAgICAgICcjNEQ5OTQ0JyxcbiAgICAgICAgJyNCMDNFODQnLFxuICAgICAgICAnI0I2NDkwMCcsXG4gICAgICAgICcjMjY3MzkyJyxcbiAgICAgICAgJyMzMjZBQzcnLFxuICAgIF07XG4gICAgcHJpdmF0ZSBwYXJlbnRoZXNlc01hcCA9IHtcbiAgICAgICAgJ30nOiAneycsXG4gICAgICAgICddJzogJ1snLFxuICAgICAgICAnKSc6ICcoJyxcbiAgICAgICAgJ3snOiAnfScsXG4gICAgICAgICdbJzogJ10nLFxuICAgICAgICAnKCc6ICcpJyxcbiAgICB9O1xuICAgIHByaXZhdGUgZG9jOiBhbnk7XG4gICAgcHJpdmF0ZSBfaGludHM6IElDb2RlRWRpdG9ySGludFtdID0gW107XG5cbiAgICBwcml2YXRlIGhpbnRSZWZzU3RhY2sgPSBbXTtcblxuICAgIHB1YmxpYyBjb2RlTWlycm9yT3B0aW9uczogYW55ID0ge1xuICAgICAgICBsaW5lV3JhcHBpbmc6IHRydWUsXG4gICAgICAgIG1hdGNoQnJhY2tldHM6IHRydWUsXG4gICAgICAgIGF1dG9SZWZyZXNoOiB0cnVlLFxuICAgICAgICBsaW5lTnVtYmVyczogZmFsc2UsXG4gICAgICAgIG1vZGU6ICdqYXZhc2NyaXB0JyxcbiAgICAgICAgZXh0cmFLZXlzOiB7ICdDdHJsLVNwYWNlJzogJ2F1dG9jb21wbGV0ZScgfSxcbiAgICAgICAgYXV0b0Nsb3NlQnJhY2tldHM6IHRydWUsXG4gICAgICAgIGhpbnRPcHRpb25zOiB7XG4gICAgICAgICAgICBjb250YWluZXI6IHdpbmRvdy5kb2N1bWVudC5ib2R5LFxuICAgICAgICAgICAgY29tcGxldGVTaW5nbGU6IGZhbHNlLFxuICAgICAgICB9LFxuICAgIH07XG4gICAgcHVibGljIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwdWJsaWMgbWFya2VyczogSUNvZGVFZGl0b3JNYXJrZXJbXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaGlnaGxpZ2h0SGludHMgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHNldCBoaW50cyh2YWx1ZXM6IElDb2RlRWRpdG9ySGludFtdKSB7XG4gICAgICAgIGlmICh2YWx1ZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5faGludHMgPSB2YWx1ZXM7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVySGludHModmFsdWVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIGNvbnRyb2w6IEZvcm1Db250cm9sIHwgYW55O1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnU3RhcnQgdHlwaW5nIHlvdXIgZm9ybXVsYSBoZXJlLiBXZSBzdXBwb3J0ICgrLC0sKiwvKS5cXG5Gb3IgRXhhbXBsZTogW0ZlYi0yMl0gLSBbSmFuLTIyXSc7XG4gICAgQFZpZXdDaGlsZCgnY29kZUVkaXRvcicpIHByaXZhdGUgY29kZUVkaXRvcjogRHJDb2RlbWlycm9yQ29tcG9uZW50O1xuXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdmFsdWUodjogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHY7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodik7XG4gICAgICAgICAgICB0aGlzLmhpZ2hsaWdodEN1c3RvbUZ1bmN0aW9uc0luRWRpdG9yKCk7XG4gICAgICAgICAgICB0aGlzLmNvbG9yaXplUGFyZW50aGVzZXMoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZ2hsaWdodEhpbnRzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVIaWdobGlnaHRIaW50cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIGZvY3VzQ2hhbmdlZChib29sKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNGb2N1c2VkID0gYm9vbDtcbiAgICB9XG4gICAgcHVibGljIGFmdGVyQ29kZU1pcnJvckxvYWRlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kb2MgPSB0aGlzLmNvZGVFZGl0b3IuY29kZU1pcnJvci5nZXREb2MoKTtcblxuICAgICAgICB0aGlzLmNvZGVFZGl0b3IuY29kZU1pcnJvci5vbigna2V5dXAnLCAoY20sIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2hpbnRzLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKCFldmVudC5jdHJsS2V5ICYmIGV2ZW50LmtleUNvZGUgPj0gNjUgJiYgZXZlbnQua2V5Q29kZSA8PSA5MCkgfHxcbiAgICAgICAgICAgICAgICAoZXZlbnQua2V5Q29kZSA+PSA5NyAmJiBldmVudC5rZXlDb2RlIDw9IDEyMikgfHxcbiAgICAgICAgICAgICAgICAoZXZlbnQua2V5Q29kZSA+PSA0NiAmJiBldmVudC5rZXlDb2RlIDw9IDU3KSB8fFxuICAgICAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgPT09IDMyXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgQ29kZU1pcnJvci5jb21tYW5kcy5hdXRvY29tcGxldGUodGhpcy5jb2RlRWRpdG9yLmNvZGVNaXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb2RlRWRpdG9yLmNvZGVNaXJyb3Iub24oJ2ZvY3VzJywgKGNtLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9oaW50cy5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgQ29kZU1pcnJvci5jb21tYW5kcy5hdXRvY29tcGxldGUodGhpcy5jb2RlRWRpdG9yLmNvZGVNaXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGlnaGxpZ2h0SGludHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUhpZ2hsaWdodEhpbnRzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNDbG9zZWRQYXJlbnRoZXNpcyhwYXJlbnRoZXNpczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBbJ30nLCAnKScsICddJ10uc29tZSgodmFsdWU6IHN0cmluZykgPT4gdmFsdWUgPT09IHBhcmVudGhlc2lzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbG9yaXplUGFyZW50aGVzZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZG9jLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gW107XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBsZXQgbGluZSA9IDA7XG4gICAgICAgIGxldCBjaCA9IDA7XG4gICAgICAgIHRoaXMucGFyZW50aGVzZXNNYXJrZXJzLmZvckVhY2goKG1hcmtlcikgPT4gbWFya2VyLmNsZWFyKCkpO1xuICAgICAgICB0aGlzLnBhcmVudGhlc2VzTWFya2VycyA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBzdHJpbmcubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBjaGFyID0gc3RyaW5nLmNoYXJBdChpbmRleCk7XG4gICAgICAgICAgICBpZiAoY2hhciA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICBsaW5lKys7XG4gICAgICAgICAgICAgICAgY2ggPSAwO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50aGVzZXNNYXBbY2hhcl0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwZWVrID0gc3RhY2sgPyBzdGFja1tzdGFjay5sZW5ndGggLSAxXSA6IG51bGw7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNDbG9zZWRQYXJlbnRoZXNpcyhjaGFyKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3JJbmRleCA9IHBlZWs/LmNvbG9ySW5kZXggKyAxIHx8IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9ySW5kZXggPSBjb2xvckluZGV4ID4gdGhpcy5wYXJlbnRoZXNpc0NvbG9ycy5sZW5ndGggLSAxID8gMCA6IGNvbG9ySW5kZXg7XG5cbiAgICAgICAgICAgICAgICAgICAgc3RhY2sucHVzaCh7IHZhbHVlOiBjaGFyLCBjb2xvcjogdGhpcy5wYXJlbnRoZXNpc0NvbG9yc1tjb2xvckluZGV4XSwgY29sb3JJbmRleCB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2luZGV4XSA9IHsgdmFsdWU6IGNoYXIsIGNvbG9yOiB0aGlzLnBhcmVudGhlc2lzQ29sb3JzW2NvbG9ySW5kZXhdLCBjb2xvckluZGV4IH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzdGFjaz8ubGVuZ3RoICYmIHBlZWs/LnZhbHVlID09PSB0aGlzLnBhcmVudGhlc2VzTWFwW2NoYXJdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtpbmRleF0gPSB7IHZhbHVlOiBjaGFyLCBjb2xvcjogcGVlay5jb2xvciwgY29sb3JJbmRleDogcGVlay5jb2xvckluZGV4IH07XG4gICAgICAgICAgICAgICAgICAgIHN0YWNrLnBvcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlc3VsdFtpbmRleF0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudGhlc2VzTWFya2Vycy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvYy5tYXJrVGV4dChcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoOiBjaCArIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzczogYGNvbG9yOiAke3Jlc3VsdFtpbmRleF0uY29sb3J9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNoKys7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZ2hsaWdodEN1c3RvbUZ1bmN0aW9uc0luRWRpdG9yKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtYXJrZXJzID0gdGhpcy5tYXJrZXJzIHx8IFtdO1xuICAgICAgICBjb25zdCBleGlzdE1hcmtlcnMgPSB0aGlzLmV4aXN0TWFya2VycyB8fCBbXTtcblxuICAgICAgICBleGlzdE1hcmtlcnMuZm9yRWFjaCgobSkgPT4gbS5jbGVhcigpKTtcbiAgICAgICAgdGhpcy5kb2MuZWFjaExpbmUoKGxpbmUpID0+IHtcbiAgICAgICAgICAgIG1hcmtlcnMuZm9yRWFjaCgobWFya2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VhcmNoU3RyID0gbWFya2VyLm5hbWUgKyAnXFxcXCgnO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBsaW5lLnRleHQubWF0Y2hBbGwobmV3IFJlZ0V4cChzZWFyY2hTdHIsICdnJykpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgbWF0Y2hlcykge1xuICAgICAgICAgICAgICAgICAgICBleGlzdE1hcmtlcnMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9jLm1hcmtUZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogbGluZS5saW5lTm8oKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2g6IG1hdGNoLmluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lOiBsaW5lLmxpbmVObygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaDogbWF0Y2guaW5kZXggKyBtYXJrZXIubmFtZS5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ21hcmtlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBtYXJrZXIudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBwYXN0ZVRleHQodGV4dDogc3RyaW5nLCBnb0NoYXJMZWZ0PzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRvYy5yZXBsYWNlU2VsZWN0aW9uKHRleHQpO1xuICAgICAgICB0aGlzLmRvYy5jbS5mb2N1cygpO1xuICAgICAgICBpZiAoZ29DaGFyTGVmdCkge1xuICAgICAgICAgICAgdGhpcy5kb2MuY20uZXhlY0NvbW1hbmQoJ2dvQ2hhckxlZnQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJIaW50cyhkaWN0aW9uYXJ5OiBJQ29kZUVkaXRvckhpbnRbXSA9IFtdKSB7XG4gICAgICAgIGNvbnN0IGhpbnRSZWdleHAgPSAvW1xcdyRdfFsgJidcIiMlJEBdLztcbiAgICAgICAgQ29kZU1pcnJvci5yZWdpc3RlckhlbHBlcignaGludCcsICdkaWN0aW9uYXJ5SGludCcsIChlZGl0b3IpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnNvciA9IGVkaXRvci5nZXRDdXJzb3IoKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRMaW5lID0gZWRpdG9yLmdldExpbmUoY3Vyc29yLmxpbmUpO1xuXG4gICAgICAgICAgICBsZXQgc3RhcnQgPSBjdXJzb3IuY2g7XG4gICAgICAgICAgICBsZXQgZW5kID0gY3Vyc29yLmNoO1xuICAgICAgICAgICAgd2hpbGUgKGVuZCA8IGN1cnJlbnRMaW5lLmxlbmd0aCAmJiBoaW50UmVnZXhwLnRlc3QoY3VycmVudExpbmUuY2hhckF0KGVuZCkpKSArK2VuZDtcbiAgICAgICAgICAgIHdoaWxlIChzdGFydCAmJiBoaW50UmVnZXhwLnRlc3QoY3VycmVudExpbmUuY2hhckF0KHN0YXJ0IC0gMSkpKSAtLXN0YXJ0O1xuXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50V29yZCA9IChzdGFydCAhPT0gZW5kICYmIGN1cnJlbnRMaW5lLnNsaWNlKHN0YXJ0LCBlbmQpKSB8fCAnJztcblxuICAgICAgICAgICAgY29uc3QgZmlsdGVyZWREaWN0aW9uYXJ5ID1cbiAgICAgICAgICAgICAgICAoIWN1cnJlbnRXb3JkXG4gICAgICAgICAgICAgICAgICAgID8gZGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICA6IGRpY3Rpb25hcnkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY3VycmVudFdvcmQudG9Mb3dlckNhc2UoKSkpXG4gICAgICAgICAgICAgICAgKS5zb3J0KCkgfHwgW107XG5cbiAgICAgICAgICAgIGNvbnN0IGhpbnRzTGlzdDogSGludFtdID0gZmlsdGVyZWREaWN0aW9uYXJ5Lm1hcCgoaXRlbTogSUNvZGVFZGl0b3JIaW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheVRleHQgPSBpdGVtLnZhbHVlO1xuICAgICAgICAgICAgICAgIGxldCB0ZXh0ID0gaXRlbS52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50TGluZVtzdGFydCAtIDFdICE9PSAnWycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICdbJyArIHRleHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50TGluZVtlbmRdICE9PSAnXScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnXSc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVRleHQsXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcjogKGVsZW1lbnQ6IEhUTUxMSUVsZW1lbnQsIGRhdGE6IEhpbnRzLCBjdXJyZW50OiBIaW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gY3VycmVudC5kaXNwbGF5VGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoY3VycmVudFdvcmQudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmdUb1JlcGxhY2UgPSBjdXJyZW50LmRpc3BsYXlUZXh0LnNsaWNlKHN0YXJ0SW5kZXgsIHN0YXJ0SW5kZXggKyBjdXJyZW50V29yZC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGludEhUTUwgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2l0ZW0uaWNvbn0gYCArIGN1cnJlbnQuZGlzcGxheVRleHQucmVwbGFjZShzdHJpbmdUb1JlcGxhY2UsIGA8Yj4ke3N0cmluZ1RvUmVwbGFjZX08L2I+YCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShDb2RlRWRpdG9ySGludFdyYXBwZXJDb21wb25lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGVudCA9IGhpbnRIVE1MO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnRvb2x0aXAgPSBpdGVtLmhpbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGludFJlZnNTdGFjay5wdXNoKGNvbXBvbmVudFJlZik7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGxpc3Q6IGhpbnRzTGlzdCxcbiAgICAgICAgICAgICAgICBmcm9tOiBDb2RlTWlycm9yLlBvcyhjdXJzb3IubGluZSwgc3RhcnQpLFxuICAgICAgICAgICAgICAgIHRvOiBDb2RlTWlycm9yLlBvcyhjdXJzb3IubGluZSwgZW5kKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgQ29kZU1pcnJvci5jb21tYW5kcy5hdXRvY29tcGxldGUgPSAoY20pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveUhpbnRzKCk7XG5cbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIENvZGVNaXJyb3Iuc2hvd0hpbnQoY20sIENvZGVNaXJyb3IuaGludC5kaWN0aW9uYXJ5SGludCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95SGludHMoKSB7XG4gICAgICAgIHRoaXMuaGludFJlZnNTdGFjay5mb3JFYWNoKChyZWYpID0+IHJlZi5kZXN0cm95KCkpO1xuICAgICAgICB0aGlzLmhpbnRSZWZzU3RhY2sgPSBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUhpZ2hsaWdodEhpbnRzKCkge1xuICAgICAgICBjb25zdCBoaW50cyA9IHRoaXMuX2hpbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBoaWdobGlnaHRlZEhpbnRzID0gdGhpcy5oaWdobGlnaHRlZEhpbnRzIHx8IFtdO1xuXG4gICAgICAgIGhpZ2hsaWdodGVkSGludHMuZm9yRWFjaCgobSkgPT4gbS5jbGVhcigpKTtcblxuICAgICAgICB0aGlzLmRvYy5lYWNoTGluZSgobGluZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGxpbmUudGV4dC5tYXRjaEFsbCgvKD86XFxbKS4rPyg/PVxcXSkvZ20pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGludCA9IGhpbnRzLmZpbmQoKGgpID0+IGgudmFsdWUgPT09IG1hdGNoWzBdLnJlcGxhY2UoJ1snLCAnJykpO1xuICAgICAgICAgICAgICAgIGlmIChoaW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodGVkSGludHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9jLm1hcmtUZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogbGluZS5saW5lTm8oKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2g6IG1hdGNoLmluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogbGluZS5saW5lTm8oKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2g6IG1hdGNoLmluZGV4ICsgMSArIGhpbnQudmFsdWUubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdoaW50LXZhcmlhYmxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGhpbnQudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG59XG4iLCI8ZHItY29kZW1pcnJvclxuICAgICNjb2RlRWRpdG9yXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgW29wdGlvbnNdPVwiY29kZU1pcnJvck9wdGlvbnNcIlxuICAgIFtjbGFzcy5tYXJrLWhpbnRzXT1cImhpZ2hsaWdodEhpbnRzXCJcbiAgICBbY2xhc3MubWlycm9yLWVycm9yXT1cImNvbnRyb2wuc3RhdHVzID09PSAnSU5WQUxJRCcgJiYgIWNvbnRyb2wucHJpc3RpbmVcIlxuICAgIChmb2N1c0NoYW5nZSk9XCJmb2N1c0NoYW5nZWQoJGV2ZW50KVwiXG4gICAgKGNvZGVNaXJyb3JMb2FkZWQpPVwiYWZ0ZXJDb2RlTWlycm9yTG9hZGVkKClcIj48L2RyLWNvZGVtaXJyb3I+XG48c3BhbiAqbmdJZj1cIiFpc0ZvY3VzZWQgJiYgIWlubmVyVmFsdWVcIiBjbGFzcz1cImNvZGVtaXJyb3ItcGxhY2Vob2xkZXJcIj57eyBwbGFjZWhvbGRlciB9fTwvc3Bhbj5cbjxkci1lcnJvciBbY29udHJvbF09XCJjb250cm9sXCIgW2Rpc3BsYXlBc0xhYmVsXT1cInRydWVcIj48L2RyLWVycm9yPlxuIl19
|
|
331
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY29kZS1lZGl0b3IvZHItY29kZS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY29kZS1lZGl0b3IvZHItY29kZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8saUNBQWlDLENBQUM7QUFDekMsT0FBTywwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUNMLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFxQyxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQztBQUV6QyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUVqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7SUNkNUQsK0JBQXVFO0lBQUEsWUFBaUI7SUFBQSxpQkFBTzs7O0lBQXhCLGVBQWlCO0lBQWpCLHdDQUFpQjs7QURleEYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBV3RCLE1BQU0sT0FBTyxx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QUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLHNCQUFzQixFQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2tJQW9EOUYsT0FBTztrQkFBdEIsS0FBSztZQUNVLGNBQWM7a0JBQTdCLEtBQUs7WUFFTyxLQUFLO2tCQUFqQixLQUFLO1lBT0csT0FBTztrQkFBZixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUMyQixVQUFVO2tCQUExQyxTQUFTO21CQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ2NvZGVtaXJyb3IvbW9kZS9qYXZhc2NyaXB0L2phdmFzY3JpcHQnO1xuaW1wb3J0ICdjb2RlbWlycm9yL2FkZG9uL2VkaXQvbWF0Y2hicmFja2V0cyc7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvYWRkb24vaGludC9zaG93LWhpbnQnO1xuaW1wb3J0ICdAY29kZW1pcnJvci9hdXRvY29tcGxldGUnO1xuXG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgQ29kZU1pcnJvciBmcm9tICdjb2RlbWlycm9yJztcbmltcG9ydCB7IEhpbnQsIEhpbnRzIH0gZnJvbSAnY29kZW1pcnJvcic7XG5pbXBvcnQgeyBDb2RlRWRpdG9ySGludFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29kZS1lZGl0b3ItaGludC13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJQ29kZUVkaXRvckhpbnQsIElDb2RlRWRpdG9yTWFya2VyIH0gZnJvbSAnLi9tb2RlbHMvY29kZS1lZGl0b3ItaGludCc7XG5pbXBvcnQgeyBEckNvZGVtaXJyb3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHItY29kZW1pcnJvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJFcnJvck1vZHVsZSB9IGZyb20gJy4uL2RyLWVycm9yL2RyLWVycm9yLm1vZHVsZSc7XG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIERyQ29kZW1pcnJvckNvbXBvbmVudCwgRHJFcnJvck1vZHVsZV0sXG4gICAgc2VsZWN0b3I6ICdkci1jb2RlLWVkaXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLWNvZGUtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1jb2RlLWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERyQ29kZUVkaXRvckNvbXBvbmVudCksIG11bHRpOiB0cnVlIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBEckNvZGVFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBjZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGlubmVyVmFsdWU6IGFueSA9ICcnO1xuICAgIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xuICAgIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG4gICAgcHJpdmF0ZSBleGlzdE1hcmtlcnM6IGFueVtdO1xuICAgIHByaXZhdGUgaGlnaGxpZ2h0ZWRIaW50czogYW55W107XG4gICAgcHJpdmF0ZSBwYXJlbnRoZXNlc01hcmtlcnMgPSBbXTtcbiAgICBwcml2YXRlIHBhcmVudGhlc2lzQ29sb3JzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgJyMyRjNFNDgnLFxuICAgICAgICAnIzFmNjhjYycsXG4gICAgICAgICcjOTQ4MENEJyxcbiAgICAgICAgJyM0RDk5NDQnLFxuICAgICAgICAnI0IwM0U4NCcsXG4gICAgICAgICcjQjY0OTAwJyxcbiAgICAgICAgJyMyNjczOTInLFxuICAgICAgICAnIzMyNkFDNycsXG4gICAgXTtcbiAgICBwcml2YXRlIHBhcmVudGhlc2VzTWFwID0ge1xuICAgICAgICAnfSc6ICd7JyxcbiAgICAgICAgJ10nOiAnWycsXG4gICAgICAgICcpJzogJygnLFxuICAgICAgICAneyc6ICd9JyxcbiAgICAgICAgJ1snOiAnXScsXG4gICAgICAgICcoJzogJyknLFxuICAgIH07XG4gICAgcHJpdmF0ZSBkb2M6IGFueTtcbiAgICBwcml2YXRlIF9oaW50czogSUNvZGVFZGl0b3JIaW50W10gPSBbXTtcblxuICAgIHByaXZhdGUgaGludFJlZnNTdGFjayA9IFtdO1xuXG4gICAgcHVibGljIGNvZGVNaXJyb3JPcHRpb25zOiBhbnkgPSB7XG4gICAgICAgIGxpbmVXcmFwcGluZzogdHJ1ZSxcbiAgICAgICAgbWF0Y2hCcmFja2V0czogdHJ1ZSxcbiAgICAgICAgYXV0b1JlZnJlc2g6IHRydWUsXG4gICAgICAgIGxpbmVOdW1iZXJzOiBmYWxzZSxcbiAgICAgICAgbW9kZTogJ2phdmFzY3JpcHQnLFxuICAgICAgICBleHRyYUtleXM6IHsgJ0N0cmwtU3BhY2UnOiAnYXV0b2NvbXBsZXRlJyB9LFxuICAgICAgICBhdXRvQ2xvc2VCcmFja2V0czogdHJ1ZSxcbiAgICAgICAgaGludE9wdGlvbnM6IHtcbiAgICAgICAgICAgIGNvbnRhaW5lcjogd2luZG93LmRvY3VtZW50LmJvZHksXG4gICAgICAgICAgICBjb21wbGV0ZVNpbmdsZTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBwdWJsaWMgaXNGb2N1c2VkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXJrZXJzOiBJQ29kZUVkaXRvck1hcmtlcltdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoaWdobGlnaHRIaW50cyA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2V0IGhpbnRzKHZhbHVlczogSUNvZGVFZGl0b3JIaW50W10pIHtcbiAgICAgICAgaWYgKHZhbHVlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9oaW50cyA9IHZhbHVlcztcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJIaW50cyh2YWx1ZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCkgY29udHJvbDogRm9ybUNvbnRyb2wgfCBhbnk7XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdTdGFydCB0eXBpbmcgeW91ciBmb3JtdWxhIGhlcmUuIFdlIHN1cHBvcnQgKCssLSwqLC8pLlxcbkZvciBFeGFtcGxlOiBbRmViLTIyXSAtIFtKYW4tMjJdJztcbiAgICBAVmlld0NoaWxkKCdjb2RlRWRpdG9yJykgcHJpdmF0ZSBjb2RlRWRpdG9yOiBEckNvZGVtaXJyb3JDb21wb25lbnQ7XG5cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB2YWx1ZSh2OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHYgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcbiAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0Q3VzdG9tRnVuY3Rpb25zSW5FZGl0b3IoKTtcbiAgICAgICAgICAgIHRoaXMuY29sb3JpemVQYXJlbnRoZXNlcygpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaGlnaGxpZ2h0SGludHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUhpZ2hsaWdodEhpbnRzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5pbm5lclZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgZm9jdXNDaGFuZ2VkKGJvb2wpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBib29sO1xuICAgIH1cbiAgICBwdWJsaWMgYWZ0ZXJDb2RlTWlycm9yTG9hZGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRvYyA9IHRoaXMuY29kZUVkaXRvci5jb2RlTWlycm9yLmdldERvYygpO1xuXG4gICAgICAgIHRoaXMuY29kZUVkaXRvci5jb2RlTWlycm9yLm9uKCdrZXl1cCcsIChjbSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5faGludHMubGVuZ3RoKSByZXR1cm47XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoIWV2ZW50LmN0cmxLZXkgJiYgZXZlbnQua2V5Q29kZSA+PSA2NSAmJiBldmVudC5rZXlDb2RlIDw9IDkwKSB8fFxuICAgICAgICAgICAgICAgIChldmVudC5rZXlDb2RlID49IDk3ICYmIGV2ZW50LmtleUNvZGUgPD0gMTIyKSB8fFxuICAgICAgICAgICAgICAgIChldmVudC5rZXlDb2RlID49IDQ2ICYmIGV2ZW50LmtleUNvZGUgPD0gNTcpIHx8XG4gICAgICAgICAgICAgICAgZXZlbnQua2V5Q29kZSA9PT0gMzJcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBDb2RlTWlycm9yLmNvbW1hbmRzLmF1dG9jb21wbGV0ZSh0aGlzLmNvZGVFZGl0b3IuY29kZU1pcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvZGVFZGl0b3IuY29kZU1pcnJvci5vbignZm9jdXMnLCAoY20sIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2hpbnRzLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBDb2RlTWlycm9yLmNvbW1hbmRzLmF1dG9jb21wbGV0ZSh0aGlzLmNvZGVFZGl0b3IuY29kZU1pcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgMjAwKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5oaWdobGlnaHRIaW50cykge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSGlnaGxpZ2h0SGludHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0Nsb3NlZFBhcmVudGhlc2lzKHBhcmVudGhlc2lzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFsnfScsICcpJywgJ10nXS5zb21lKCh2YWx1ZTogc3RyaW5nKSA9PiB2YWx1ZSA9PT0gcGFyZW50aGVzaXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29sb3JpemVQYXJlbnRoZXNlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nID0gdGhpcy5kb2MuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBbXTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIGxldCBsaW5lID0gMDtcbiAgICAgICAgbGV0IGNoID0gMDtcbiAgICAgICAgdGhpcy5wYXJlbnRoZXNlc01hcmtlcnMuZm9yRWFjaCgobWFya2VyKSA9PiBtYXJrZXIuY2xlYXIoKSk7XG4gICAgICAgIHRoaXMucGFyZW50aGVzZXNNYXJrZXJzID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHN0cmluZy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGNoYXIgPSBzdHJpbmcuY2hhckF0KGluZGV4KTtcbiAgICAgICAgICAgIGlmIChjaGFyID09PSAnXFxuJykge1xuICAgICAgICAgICAgICAgIGxpbmUrKztcbiAgICAgICAgICAgICAgICBjaCA9IDA7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5wYXJlbnRoZXNlc01hcFtjaGFyXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBlZWsgPSBzdGFjayA/IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdIDogbnVsbDtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0Nsb3NlZFBhcmVudGhlc2lzKGNoYXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb2xvckluZGV4ID0gcGVlaz8uY29sb3JJbmRleCArIDEgfHwgMDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3JJbmRleCA9IGNvbG9ySW5kZXggPiB0aGlzLnBhcmVudGhlc2lzQ29sb3JzLmxlbmd0aCAtIDEgPyAwIDogY29sb3JJbmRleDtcblxuICAgICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKHsgdmFsdWU6IGNoYXIsIGNvbG9yOiB0aGlzLnBhcmVudGhlc2lzQ29sb3JzW2NvbG9ySW5kZXhdLCBjb2xvckluZGV4IH0pO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRbaW5kZXhdID0geyB2YWx1ZTogY2hhciwgY29sb3I6IHRoaXMucGFyZW50aGVzaXNDb2xvcnNbY29sb3JJbmRleF0sIGNvbG9ySW5kZXggfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHN0YWNrPy5sZW5ndGggJiYgcGVlaz8udmFsdWUgPT09IHRoaXMucGFyZW50aGVzZXNNYXBbY2hhcl0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2luZGV4XSA9IHsgdmFsdWU6IGNoYXIsIGNvbG9yOiBwZWVrLmNvbG9yLCBjb2xvckluZGV4OiBwZWVrLmNvbG9ySW5kZXggfTtcbiAgICAgICAgICAgICAgICAgICAgc3RhY2sucG9wKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVzdWx0W2luZGV4XSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyZW50aGVzZXNNYXJrZXJzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9jLm1hcmtUZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2gsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2g6IGNoICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzOiBgY29sb3I6ICR7cmVzdWx0W2luZGV4XS5jb2xvcn1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2grKztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGlnaGxpZ2h0Q3VzdG9tRnVuY3Rpb25zSW5FZGl0b3IoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1hcmtlcnMgPSB0aGlzLm1hcmtlcnMgfHwgW107XG4gICAgICAgIGNvbnN0IGV4aXN0TWFya2VycyA9IHRoaXMuZXhpc3RNYXJrZXJzIHx8IFtdO1xuXG4gICAgICAgIGV4aXN0TWFya2Vycy5mb3JFYWNoKChtKSA9PiBtLmNsZWFyKCkpO1xuICAgICAgICB0aGlzLmRvYy5lYWNoTGluZSgobGluZSkgPT4ge1xuICAgICAgICAgICAgbWFya2Vycy5mb3JFYWNoKChtYXJrZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWFyY2hTdHIgPSBtYXJrZXIubmFtZSArICdcXFxcKCc7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGxpbmUudGV4dC5tYXRjaEFsbChuZXcgUmVnRXhwKHNlYXJjaFN0ciwgJ2cnKSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGV4aXN0TWFya2Vycy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kb2MubWFya1RleHQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lOiBsaW5lLmxpbmVObygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaDogbWF0Y2guaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmU6IGxpbmUubGluZU5vKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoOiBtYXRjaC5pbmRleCArIG1hcmtlci5uYW1lLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbWFya2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IG1hcmtlci50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHBhc3RlVGV4dCh0ZXh0OiBzdHJpbmcsIGdvQ2hhckxlZnQ/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZG9jLnJlcGxhY2VTZWxlY3Rpb24odGV4dCk7XG4gICAgICAgIHRoaXMuZG9jLmNtLmZvY3VzKCk7XG4gICAgICAgIGlmIChnb0NoYXJMZWZ0KSB7XG4gICAgICAgICAgICB0aGlzLmRvYy5jbS5leGVjQ29tbWFuZCgnZ29DaGFyTGVmdCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlckhpbnRzKGRpY3Rpb25hcnk6IElDb2RlRWRpdG9ySGludFtdID0gW10pIHtcbiAgICAgICAgY29uc3QgaGludFJlZ2V4cCA9IC9bXFx3JF18WyAmJ1wiIyUkQF0vO1xuICAgICAgICBDb2RlTWlycm9yLnJlZ2lzdGVySGVscGVyKCdoaW50JywgJ2RpY3Rpb25hcnlIaW50JywgKGVkaXRvcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3Vyc29yID0gZWRpdG9yLmdldEN1cnNvcigpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudExpbmUgPSBlZGl0b3IuZ2V0TGluZShjdXJzb3IubGluZSk7XG5cbiAgICAgICAgICAgIGxldCBzdGFydCA9IGN1cnNvci5jaDtcbiAgICAgICAgICAgIGxldCBlbmQgPSBjdXJzb3IuY2g7XG4gICAgICAgICAgICB3aGlsZSAoZW5kIDwgY3VycmVudExpbmUubGVuZ3RoICYmIGhpbnRSZWdleHAudGVzdChjdXJyZW50TGluZS5jaGFyQXQoZW5kKSkpICsrZW5kO1xuICAgICAgICAgICAgd2hpbGUgKHN0YXJ0ICYmIGhpbnRSZWdleHAudGVzdChjdXJyZW50TGluZS5jaGFyQXQoc3RhcnQgLSAxKSkpIC0tc3RhcnQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRXb3JkID0gKHN0YXJ0ICE9PSBlbmQgJiYgY3VycmVudExpbmUuc2xpY2Uoc3RhcnQsIGVuZCkpIHx8ICcnO1xuXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJlZERpY3Rpb25hcnkgPVxuICAgICAgICAgICAgICAgICghY3VycmVudFdvcmRcbiAgICAgICAgICAgICAgICAgICAgPyBkaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgIDogZGljdGlvbmFyeS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0udmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjdXJyZW50V29yZC50b0xvd2VyQ2FzZSgpKSlcbiAgICAgICAgICAgICAgICApLnNvcnQoKSB8fCBbXTtcblxuICAgICAgICAgICAgY29uc3QgaGludHNMaXN0OiBIaW50W10gPSBmaWx0ZXJlZERpY3Rpb25hcnkubWFwKChpdGVtOiBJQ29kZUVkaXRvckhpbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5VGV4dCA9IGl0ZW0udmFsdWU7XG4gICAgICAgICAgICAgICAgbGV0IHRleHQgPSBpdGVtLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRMaW5lW3N0YXJ0IC0gMV0gIT09ICdbJykge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gJ1snICsgdGV4dDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRMaW5lW2VuZF0gIT09ICddJykge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9ICddJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VGV4dCxcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyOiAoZWxlbWVudDogSFRNTExJRWxlbWVudCwgZGF0YTogSGludHMsIGN1cnJlbnQ6IEhpbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBjdXJyZW50LmRpc3BsYXlUZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihjdXJyZW50V29yZC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmluZ1RvUmVwbGFjZSA9IGN1cnJlbnQuZGlzcGxheVRleHQuc2xpY2Uoc3RhcnRJbmRleCwgc3RhcnRJbmRleCArIGN1cnJlbnRXb3JkLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaW50SFRNTCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7aXRlbS5pY29ufSBgICsgY3VycmVudC5kaXNwbGF5VGV4dC5yZXBsYWNlKHN0cmluZ1RvUmVwbGFjZSwgYDxiPiR7c3RyaW5nVG9SZXBsYWNlfTwvYj5gKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KENvZGVFZGl0b3JIaW50V3JhcHBlckNvbXBvbmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb250ZW50ID0gaGludEhUTUw7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UudG9vbHRpcCA9IGl0ZW0uaGludDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaW50UmVmc1N0YWNrLnB1c2goY29tcG9uZW50UmVmKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbGlzdDogaGludHNMaXN0LFxuICAgICAgICAgICAgICAgIGZyb206IENvZGVNaXJyb3IuUG9zKGN1cnNvci5saW5lLCBzdGFydCksXG4gICAgICAgICAgICAgICAgdG86IENvZGVNaXJyb3IuUG9zKGN1cnNvci5saW5lLCBlbmQpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBDb2RlTWlycm9yLmNvbW1hbmRzLmF1dG9jb21wbGV0ZSA9IChjbSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZXN0cm95SGludHMoKTtcblxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgQ29kZU1pcnJvci5zaG93SGludChjbSwgQ29kZU1pcnJvci5oaW50LmRpY3Rpb25hcnlIaW50KTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lIaW50cygpIHtcbiAgICAgICAgdGhpcy5oaW50UmVmc1N0YWNrLmZvckVhY2goKHJlZikgPT4gcmVmLmRlc3Ryb3koKSk7XG4gICAgICAgIHRoaXMuaGludFJlZnNTdGFjayA9IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSGlnaGxpZ2h0SGludHMoKSB7XG4gICAgICAgIGNvbnN0IGhpbnRzID0gdGhpcy5faGludHMgfHwgW107XG4gICAgICAgIGNvbnN0IGhpZ2hsaWdodGVkSGludHMgPSB0aGlzLmhpZ2hsaWdodGVkSGludHMgfHwgW107XG5cbiAgICAgICAgaGlnaGxpZ2h0ZWRIaW50cy5mb3JFYWNoKChtKSA9PiBtLmNsZWFyKCkpO1xuXG4gICAgICAgIHRoaXMuZG9jLmVhY2hMaW5lKChsaW5lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzID0gbGluZS50ZXh0Lm1hdGNoQWxsKC8oPzpcXFspLis/KD89XFxdKS9nbSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIG1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoaW50ID0gaGludHMuZmluZCgoaCkgPT4gaC52YWx1ZSA9PT0gbWF0Y2hbMF0ucmVwbGFjZSgnWycsICcnKSk7XG4gICAgICAgICAgICAgICAgaWYgKGhpbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0ZWRIaW50cy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kb2MubWFya1RleHQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lOiBsaW5lLmxpbmVObygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaDogbWF0Y2guaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lOiBsaW5lLmxpbmVObygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaDogbWF0Y2guaW5kZXggKyAxICsgaGludC52YWx1ZS5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2hpbnQtdmFyaWFibGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogaGludC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbn1cbiIsIjxkci1jb2RlbWlycm9yXG4gICAgI2NvZGVFZGl0b3JcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICBbb3B0aW9uc109XCJjb2RlTWlycm9yT3B0aW9uc1wiXG4gICAgW2NsYXNzLm1hcmstaGludHNdPVwiaGlnaGxpZ2h0SGludHNcIlxuICAgIFtjbGFzcy5taXJyb3ItZXJyb3JdPVwiY29udHJvbC5zdGF0dXMgPT09ICdJTlZBTElEJyAmJiAhY29udHJvbC5wcmlzdGluZVwiXG4gICAgKGZvY3VzQ2hhbmdlKT1cImZvY3VzQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAoY29kZU1pcnJvckxvYWRlZCk9XCJhZnRlckNvZGVNaXJyb3JMb2FkZWQoKVwiPjwvZHItY29kZW1pcnJvcj5cbjxzcGFuICpuZ0lmPVwiIWlzRm9jdXNlZCAmJiAhaW5uZXJWYWx1ZVwiIGNsYXNzPVwiY29kZW1pcnJvci1wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyIH19PC9zcGFuPlxuPGRyLWVycm9yIFtjb250cm9sXT1cImNvbnRyb2xcIiBbZGlzcGxheUFzTGFiZWxdPVwidHJ1ZVwiPjwvZHItZXJyb3I+XG4iXX0=
|
|
@@ -3,27 +3,21 @@ import 'codemirror/addon/edit/matchbrackets';
|
|
|
3
3
|
import 'codemirror/addon/hint/show-hint';
|
|
4
4
|
import '@codemirror/autocomplete';
|
|
5
5
|
import { NgModule } from '@angular/core';
|
|
6
|
-
import { CommonModule } from '@angular/common';
|
|
7
6
|
import { DrCodeEditorComponent } from './dr-code-editor.component';
|
|
8
7
|
import { CodeEditorHintWrapperComponent } from './components/code-editor-hint-wrapper.component';
|
|
9
|
-
import { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';
|
|
10
|
-
import { DrErrorModule } from '../dr-error/dr-error.module';
|
|
11
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
12
8
|
import { DrCodemirrorComponent } from './components/dr-codemirror.component';
|
|
13
9
|
import * as i0 from "@angular/core";
|
|
14
10
|
export class DrCodeEditorModule {
|
|
15
11
|
/** @nocollapse */ static { this.ɵfac = function DrCodeEditorModule_Factory(t) { return new (t || DrCodeEditorModule)(); }; }
|
|
16
12
|
/** @nocollapse */ static { this.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DrCodeEditorModule }); }
|
|
17
|
-
/** @nocollapse */ static { this.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [
|
|
13
|
+
/** @nocollapse */ static { this.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [DrCodeEditorComponent] }); }
|
|
18
14
|
}
|
|
19
15
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrCodeEditorModule, [{
|
|
20
16
|
type: NgModule,
|
|
21
17
|
args: [{
|
|
22
|
-
imports: [
|
|
18
|
+
imports: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],
|
|
23
19
|
exports: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],
|
|
24
|
-
providers: [],
|
|
25
|
-
declarations: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],
|
|
26
20
|
}]
|
|
27
21
|
}], null, null); })();
|
|
28
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DrCodeEditorModule, {
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DrCodeEditorModule, { imports: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent], exports: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent] }); })();
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY29kZS1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY29kZS1lZGl0b3IvZHItY29kZS1lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFNN0UsTUFBTSxPQUFPLGtCQUFrQjtzR0FBbEIsa0JBQWtCO2tHQUFsQixrQkFBa0I7c0dBSE0scUJBQXFCOzt1RkFHN0Msa0JBQWtCO2NBSjlCLFFBQVE7ZUFBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsQ0FBQztnQkFDdkYsT0FBTyxFQUFFLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsOEJBQThCLENBQUM7YUFDMUY7O3dGQUNZLGtCQUFrQixjQUhqQixxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsYUFDNUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdjb2RlbWlycm9yL21vZGUvamF2YXNjcmlwdC9qYXZhc2NyaXB0JztcbmltcG9ydCAnY29kZW1pcnJvci9hZGRvbi9lZGl0L21hdGNoYnJhY2tldHMnO1xuaW1wb3J0ICdjb2RlbWlycm9yL2FkZG9uL2hpbnQvc2hvdy1oaW50JztcbmltcG9ydCAnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJztcblxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERyQ29kZUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZHItY29kZS1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IENvZGVFZGl0b3JIaW50V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2RlLWVkaXRvci1oaW50LXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERyQ29kZW1pcnJvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kci1jb2RlbWlycm9yLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0RyQ29kZW1pcnJvckNvbXBvbmVudCwgRHJDb2RlRWRpdG9yQ29tcG9uZW50LCBDb2RlRWRpdG9ySGludFdyYXBwZXJDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtEckNvZGVtaXJyb3JDb21wb25lbnQsIERyQ29kZUVkaXRvckNvbXBvbmVudCwgQ29kZUVkaXRvckhpbnRXcmFwcGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRHJDb2RlRWRpdG9yTW9kdWxlIHt9XG4iXX0=
|
|
@@ -9,7 +9,7 @@ export class DrDropdownItemComponent {
|
|
|
9
9
|
/** @nocollapse */ static { this.ɵfac = function DrDropdownItemComponent_Factory(t) { return new (t || DrDropdownItemComponent)(); }; }
|
|
10
10
|
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrDropdownItemComponent, selectors: [["dr-dropdown-item"]], hostVars: 1, hostBindings: function DrDropdownItemComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
11
11
|
i0.ɵɵattribute("role", ctx.role);
|
|
12
|
-
} }, inputs: { selected: "selected", disabled: "disabled", divider: "divider" }, ngContentSelectors: _c1, decls: 5, vars: 6, consts: [[1, "dr-dropdown-item"], [1, "dr-dropdown-text"], [1, "dr-dropdown-actions"]], template: function DrDropdownItemComponent_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
+
} }, inputs: { selected: "selected", disabled: "disabled", divider: "divider" }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c1, decls: 5, vars: 6, consts: [[1, "dr-dropdown-item"], [1, "dr-dropdown-text"], [1, "dr-dropdown-actions"]], template: function DrDropdownItemComponent_Template(rf, ctx) { if (rf & 1) {
|
|
13
13
|
i0.ɵɵprojectionDef(_c0);
|
|
14
14
|
i0.ɵɵelementStart(0, "div", 0)(1, "span", 1);
|
|
15
15
|
i0.ɵɵprojection(2);
|
|
@@ -23,7 +23,7 @@ export class DrDropdownItemComponent {
|
|
|
23
23
|
}
|
|
24
24
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrDropdownItemComponent, [{
|
|
25
25
|
type: Component,
|
|
26
|
-
args: [{ selector: 'dr-dropdown-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dr-dropdown-item\" [class.item-disabled]=\"disabled\" [class.item-selected]=\"selected\" [class.divider]=\"divider\">\n <span class=\"dr-dropdown-text\">\n <ng-content select=\"[dropdownItemContent]\"></ng-content>\n </span>\n <div class=\"dr-dropdown-actions\">\n <ng-content select=\"[dropdownItemActions]\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;align-items:center}:host .dr-dropdown-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-right:auto;display:inline-flex;align-items:center;flex:1}:host .dr-dropdown-actions{margin-left:auto;display:flex;align-items:center}:host .dr-dropdown-item{font-size:14px;line-height:24px;font-weight:400;display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0;background-color:#fff;color:#333}:host .dr-dropdown-item:hover{background-color:#f5f5f5}:host .dr-dropdown-item.divider{border-top:1px solid #dfe0e3}:host .dr-dropdown-item:active,:host .dr-dropdown-item.item-selected{background-color:#eaeaff}:host .dr-dropdown-item.item-disabled{background-color:#fff!important;color:#aeabac!important}\n"] }]
|
|
26
|
+
args: [{ standalone: true, selector: 'dr-dropdown-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dr-dropdown-item\" [class.item-disabled]=\"disabled\" [class.item-selected]=\"selected\" [class.divider]=\"divider\">\n <span class=\"dr-dropdown-text\">\n <ng-content select=\"[dropdownItemContent]\"></ng-content>\n </span>\n <div class=\"dr-dropdown-actions\">\n <ng-content select=\"[dropdownItemActions]\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;align-items:center}:host .dr-dropdown-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-right:auto;display:inline-flex;align-items:center;flex:1}:host .dr-dropdown-actions{margin-left:auto;display:flex;align-items:center}:host .dr-dropdown-item{font-size:14px;line-height:24px;font-weight:400;display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0;background-color:#fff;color:#333}:host .dr-dropdown-item:hover{background-color:#f5f5f5}:host .dr-dropdown-item.divider{border-top:1px solid #dfe0e3}:host .dr-dropdown-item:active,:host .dr-dropdown-item.item-selected{background-color:#eaeaff}:host .dr-dropdown-item.item-disabled{background-color:#fff!important;color:#aeabac!important}\n"] }]
|
|
27
27
|
}], null, { selected: [{
|
|
28
28
|
type: Input
|
|
29
29
|
}], disabled: [{
|
|
@@ -34,4 +34,4 @@ export class DrDropdownItemComponent {
|
|
|
34
34
|
type: HostBinding,
|
|
35
35
|
args: ['attr.role']
|
|
36
36
|
}] }); })();
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1kcm9wZG93bi9kci1kcm9wZG93bi1pdGVtL2RyLWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24taXRlbS9kci1kcm9wZG93bi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVN2RixNQUFNLE9BQU8sdUJBQXVCO0lBUHBDO1FBa0JhLFNBQUksR0FBRyxRQUFRLENBQUM7S0FDNUI7MkdBWlksdUJBQXVCO21HQUF2Qix1QkFBdUI7Ozs7WUNUcEMsOEJBQTBILGNBQUE7WUFFbEgsa0JBQXdEO1lBQzVELGlCQUFPO1lBQ1AsOEJBQWlDO1lBQzdCLHFCQUF3RDtZQUM1RCxpQkFBTSxFQUFBOztZQU5vQiw2Q0FBZ0MsK0JBQUEsd0JBQUE7Ozt1RkRTakQsdUJBQXVCO2NBUG5DLFNBQVM7NkJBQ00sSUFBSSxZQUNOLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNO2dCQUkvQyxRQUFRO2tCQURQLEtBQUs7WUFJTixRQUFRO2tCQURQLEtBQUs7WUFJTixPQUFPO2tCQUROLEtBQUs7WUFJRyxJQUFJO2tCQURaLFdBQVc7bUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnZHItZHJvcGRvd24taXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJEcm9wZG93bkl0ZW1Db21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBkaXZpZGVyOiBib29sZWFuO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIHJlYWRvbmx5IHJvbGUgPSAnb3B0aW9uJztcbn1cbiIsIjxkaXYgY2xhc3M9XCJkci1kcm9wZG93bi1pdGVtXCIgW2NsYXNzLml0ZW0tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbY2xhc3MuaXRlbS1zZWxlY3RlZF09XCJzZWxlY3RlZFwiIFtjbGFzcy5kaXZpZGVyXT1cImRpdmlkZXJcIj5cbiAgICA8c3BhbiBjbGFzcz1cImRyLWRyb3Bkb3duLXRleHRcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Ryb3Bkb3duSXRlbUNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgICA8ZGl2IGNsYXNzPVwiZHItZHJvcGRvd24tYWN0aW9uc1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZHJvcGRvd25JdGVtQWN0aW9uc11cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -5,12 +5,13 @@ export class DrDropdownItemShowPipe {
|
|
|
5
5
|
return arr.filter((item) => (item.show ? item.show(item.data) : true));
|
|
6
6
|
}
|
|
7
7
|
/** @nocollapse */ static { this.ɵfac = function DrDropdownItemShowPipe_Factory(t) { return new (t || DrDropdownItemShowPipe)(); }; }
|
|
8
|
-
/** @nocollapse */ static { this.ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "drDropdownItemShowPipe", type: DrDropdownItemShowPipe, pure: true }); }
|
|
8
|
+
/** @nocollapse */ static { this.ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "drDropdownItemShowPipe", type: DrDropdownItemShowPipe, pure: true, standalone: true }); }
|
|
9
9
|
}
|
|
10
10
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrDropdownItemShowPipe, [{
|
|
11
11
|
type: Pipe,
|
|
12
12
|
args: [{
|
|
13
|
+
standalone: true,
|
|
13
14
|
name: 'drDropdownItemShowPipe',
|
|
14
15
|
}]
|
|
15
16
|
}], null, null); })();
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24taXRlbS1zaG93LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1kcm9wZG93bi9kci1kcm9wZG93bi1pdGVtLXNob3cucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLHNCQUFzQjtJQUMvQixTQUFTLENBQUMsR0FBdUI7UUFDN0IsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7MEdBSFEsc0JBQXNCOytIQUF0QixzQkFBc0I7O3VGQUF0QixzQkFBc0I7Y0FKbEMsSUFBSTtlQUFDO2dCQUNGLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixJQUFJLEVBQUUsd0JBQXdCO2FBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSURyb3Bkb3duSXRlbSB9IGZyb20gJy4uL21vZGVscy9kcm9wZG93bic7XG5cbkBQaXBlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIG5hbWU6ICdkckRyb3Bkb3duSXRlbVNob3dQaXBlJyxcbn0pXG5leHBvcnQgY2xhc3MgRHJEcm9wZG93bkl0ZW1TaG93UGlwZTxUPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShhcnI6IElEcm9wZG93bkl0ZW08VD5bXSk6IElEcm9wZG93bkl0ZW08VD5bXSB7XG4gICAgICAgIHJldHVybiBhcnIuZmlsdGVyKChpdGVtKSA9PiAoaXRlbS5zaG93ID8gaXRlbS5zaG93KGl0ZW0uZGF0YSkgOiB0cnVlKSk7XG4gICAgfVxufVxuIl19
|
|
@@ -7,13 +7,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, ElementRef, EventEmitter, inject, Input, Output, ViewChild, } from '@angular/core';
|
|
10
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, ElementRef, EventEmitter, forwardRef, inject, Input, Output, ViewChild, } from '@angular/core';
|
|
11
|
+
import { CommonModule } from '@angular/common';
|
|
11
12
|
import { DrPopoverRef } from '../models/popover';
|
|
12
13
|
import { first, merge, Subject, takeUntil } from 'rxjs';
|
|
13
14
|
import { DropdownInstanceService } from './dr-dropdown.service';
|
|
14
15
|
import { Debounce } from '../utils/decorators';
|
|
15
16
|
import { TooltipTheme } from '../dr-tooltip/enums/tooltip-theme.enum';
|
|
17
|
+
import { DrTooltipDirective } from '../dr-tooltip/dr-tooltip.directive';
|
|
18
|
+
import { DrDropdownItemComponent } from './dr-dropdown-item/dr-dropdown-item.component';
|
|
19
|
+
import { DrDropdownItemShowPipe } from './dr-dropdown-item-show.pipe';
|
|
20
|
+
import { DrDropdownDirective, DrDropdownChildDirective } from './dr-dropdown.directive';
|
|
16
21
|
import * as i0 from "@angular/core";
|
|
22
|
+
import * as i1 from "@angular/common";
|
|
17
23
|
const _c0 = ["menuContainer"];
|
|
18
24
|
function DrDropdownComponent_dr_dropdown_item_4_ng_container_1_i_1_Template(rf, ctx) { if (rf & 1) {
|
|
19
25
|
i0.ɵɵelement(0, "i", 11);
|
|
@@ -249,7 +255,7 @@ export class DrDropdownComponent {
|
|
|
249
255
|
} if (rf & 2) {
|
|
250
256
|
let _t;
|
|
251
257
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.menuContainer = _t.first);
|
|
252
|
-
} }, inputs: { options: "options" }, outputs: { onAction: "action" }, features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c3, decls: 6, vars: 5, consts: [[1, "dr-dropdown"], ["menuContainer", ""], ["tabindex", "-1", "role", "listbox", 1, "dr-dropdown__container", 3, "mouseenter", "mouseleave"], ["drDropdownChild", "", "tabindex", "0", 3, "drTooltip", "drTooltipPosition", "drTooltipOptions", "drTooltipTheme", "drTooltipMousleaveTimeout", "drTooltipMouseEnterTimeout", "drTooltipClass", "drDropdown", "drDropdownClass", "drDropdownInHover", "drDropdownPosition", "disabled", "selected", "divider", "mousedown", 4, "ngFor", "ngForOf"], ["drDropdownChild", "", "tabindex", "0", 3, "drTooltip", "drTooltipPosition", "drTooltipOptions", "drTooltipTheme", "drTooltipMousleaveTimeout", "drTooltipMouseEnterTimeout", "drTooltipClass", "drDropdown", "drDropdownClass", "drDropdownInHover", "drDropdownPosition", "disabled", "selected", "divider", "mousedown"], ["dropdownItemContent", "", 4, "ngIf"], ["dropdownItemActions", "", 4, "ngIf"], ["dropdownItemContent", "", 3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["dropdownItemContent", ""], ["class", "dr-dropdown__icon", 3, "class", 4, "ngIf"], [1, "dr-dropdown__text"], [1, "dr-dropdown__icon"], ["dropdownItemActions", ""], [3, "class", "showOnHover", "mousedown", 4, "ngFor", "ngForOf"], ["class", "dr-icon-arrow-right", 4, "ngIf"], [3, "mousedown"], [1, "dr-icon-arrow-right"], ["dropdownItemContent", "", 3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function DrDropdownComponent_Template(rf, ctx) { if (rf & 1) {
|
|
258
|
+
} }, inputs: { options: "options" }, outputs: { onAction: "action" }, standalone: true, features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c3, decls: 6, vars: 5, consts: [[1, "dr-dropdown"], ["menuContainer", ""], ["tabindex", "-1", "role", "listbox", 1, "dr-dropdown__container", 3, "mouseenter", "mouseleave"], ["drDropdownChild", "", "tabindex", "0", 3, "drTooltip", "drTooltipPosition", "drTooltipOptions", "drTooltipTheme", "drTooltipMousleaveTimeout", "drTooltipMouseEnterTimeout", "drTooltipClass", "drDropdown", "drDropdownClass", "drDropdownInHover", "drDropdownPosition", "disabled", "selected", "divider", "mousedown", 4, "ngFor", "ngForOf"], ["drDropdownChild", "", "tabindex", "0", 3, "drTooltip", "drTooltipPosition", "drTooltipOptions", "drTooltipTheme", "drTooltipMousleaveTimeout", "drTooltipMouseEnterTimeout", "drTooltipClass", "drDropdown", "drDropdownClass", "drDropdownInHover", "drDropdownPosition", "disabled", "selected", "divider", "mousedown"], ["dropdownItemContent", "", 4, "ngIf"], ["dropdownItemActions", "", 4, "ngIf"], ["dropdownItemContent", "", 3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["dropdownItemContent", ""], ["class", "dr-dropdown__icon", 3, "class", 4, "ngIf"], [1, "dr-dropdown__text"], [1, "dr-dropdown__icon"], ["dropdownItemActions", ""], [3, "class", "showOnHover", "mousedown", 4, "ngFor", "ngForOf"], ["class", "dr-icon-arrow-right", 4, "ngIf"], [3, "mousedown"], [1, "dr-icon-arrow-right"], ["dropdownItemContent", "", 3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function DrDropdownComponent_Template(rf, ctx) { if (rf & 1) {
|
|
253
259
|
i0.ɵɵprojectionDef(_c2);
|
|
254
260
|
i0.ɵɵelementStart(0, "div", 0, 1)(2, "div", 2);
|
|
255
261
|
i0.ɵɵlistener("mouseenter", function DrDropdownComponent_Template_div_mouseenter_2_listener() { return ctx.onMouseenter(); })("mouseleave", function DrDropdownComponent_Template_div_mouseleave_2_listener() { return ctx.onMouseleave(); });
|
|
@@ -261,7 +267,9 @@ export class DrDropdownComponent {
|
|
|
261
267
|
i0.ɵɵclassMap(ctx.containerClass);
|
|
262
268
|
i0.ɵɵadvance(4);
|
|
263
269
|
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(5, 3, ctx.list));
|
|
264
|
-
} },
|
|
270
|
+
} }, dependencies: function () { return [CommonModule, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, DrTooltipDirective,
|
|
271
|
+
DrDropdownItemComponent,
|
|
272
|
+
DrDropdownItemShowPipe, DrDropdownDirective, DrDropdownChildDirective]; }, styles: [".dr-dropdown__item .dr-dropdown{visibility:hidden;transition-delay:.2s} .dr-dropdown__item:hover>*>.dr-dropdown{visibility:visible;transition-delay:0s} .dr-dropdown__tooltip>.default-content{max-width:300px;white-space:normal!important}.dr-dropdown[_ngcontent-%COMP%]{width:auto}.dr-dropdown__text[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;flex:1}.dr-dropdown__container[_ngcontent-%COMP%]{display:flex;flex-direction:column;background:#fff;padding:8px 0;overflow-y:auto;max-height:60vh;max-width:300px}.dr-dropdown__icon[_ngcontent-%COMP%]{margin-right:8px}.dr-dropdown[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:not(:first-child):hover{color:#4646ce}.dr-dropdown[_ngcontent-%COMP%] dr-dropdown-item[_ngcontent-%COMP%]:hover .showOnHover[_ngcontent-%COMP%]{visibility:visible}.dr-dropdown[_ngcontent-%COMP%] .showOnHover[_ngcontent-%COMP%]{visibility:hidden}"], changeDetection: 0 }); }
|
|
265
273
|
}
|
|
266
274
|
__decorate([
|
|
267
275
|
Debounce(200),
|
|
@@ -271,7 +279,14 @@ __decorate([
|
|
|
271
279
|
], DrDropdownComponent.prototype, "onMouseleave", null);
|
|
272
280
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrDropdownComponent, [{
|
|
273
281
|
type: Component,
|
|
274
|
-
args: [{
|
|
282
|
+
args: [{ standalone: true, imports: [
|
|
283
|
+
CommonModule,
|
|
284
|
+
DrTooltipDirective,
|
|
285
|
+
DrDropdownItemComponent,
|
|
286
|
+
DrDropdownItemShowPipe,
|
|
287
|
+
forwardRef((() => DrDropdownDirective)),
|
|
288
|
+
forwardRef((() => DrDropdownChildDirective)),
|
|
289
|
+
], selector: 'dr-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #menuContainer [class]=\"containerClass\" class=\"dr-dropdown\">\n <div class=\"dr-dropdown__container\" (mouseenter)=\"onMouseenter()\" (mouseleave)=\"onMouseleave()\" tabindex=\"-1\" role=\"listbox\">\n <ng-content select=\"dr-dropdown-item\"></ng-content>\n\n <dr-dropdown-item\n *ngFor=\"let act of list | drDropdownItemShowPipe; let index = index\"\n (mousedown)=\"action(act)\"\n [drTooltip]=\"tooltipToShow(act)\"\n [drTooltipPosition]=\"getTooltipPosition(act)\"\n [drTooltipOptions]=\"getTooltipOptions(act)\"\n [drTooltipTheme]=\"getTooltipTheme(act)\"\n [drTooltipMousleaveTimeout]=\"getTooltipMousleaveTimeout(act)\"\n [drTooltipMouseEnterTimeout]=\"getTooltipMouseEnterTimeout(act)\"\n [drTooltipClass]=\"'dr-dropdown__tooltip'\"\n [drDropdown]=\"hasChildren(act) && act.children\"\n [drDropdownClass]=\"act.childOptions?.class\"\n [drDropdownInHover]=\"true\"\n [drDropdownPosition]=\"act.childOptions?.position\"\n drDropdownChild\n [disabled]=\"disabled(act)\"\n [selected]=\"selected(act)\"\n [divider]=\"act.separateLine\"\n [attr.data-analytics]=\"getDataAnalyticsTag(act, index)\"\n tabindex=\"0\">\n <ng-container dropdownItemContent *ngIf=\"!act.templateRef\">\n <i *ngIf=\"act.icon\" [class]=\"act.icon\" class=\"dr-dropdown__icon\"></i>\n <span class=\"dr-dropdown__text\">{{ act.title }}</span>\n </ng-container>\n\n <ng-container dropdownItemActions *ngIf=\"!act.templateRef\">\n <i\n *ngFor=\"let actionIcon of act.actionIcons\"\n [attr.data-analytics]=\"getDataAnalyticsTag(actionIcon, index)\"\n [class]=\"actionIcon.icon\"\n [class.showOnHover]=\"actionIcon.showOnHover\"\n (mousedown)=\"onActionIconClick($event, actionIcon, act.data)\"></i>\n <i *ngIf=\"hasChildren(act)\" class=\"dr-icon-arrow-right\"></i>\n </ng-container>\n\n <ng-container\n *ngIf=\"act.templateRef\"\n dropdownItemContent\n [ngTemplateOutlet]=\"act.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: act }\">\n </ng-container>\n </dr-dropdown-item>\n </div>\n</div>\n", styles: ["::ng-deep .dr-dropdown__item .dr-dropdown{visibility:hidden;transition-delay:.2s}::ng-deep .dr-dropdown__item:hover>*>.dr-dropdown{visibility:visible;transition-delay:0s}::ng-deep .dr-dropdown__tooltip>.default-content{max-width:300px;white-space:normal!important}.dr-dropdown{width:auto}.dr-dropdown__text{overflow:hidden;text-overflow:ellipsis;flex:1}.dr-dropdown__container{display:flex;flex-direction:column;background:#fff;padding:8px 0;overflow-y:auto;max-height:60vh;max-width:300px}.dr-dropdown__icon{margin-right:8px}.dr-dropdown i:not(:first-child):hover{color:#4646ce}.dr-dropdown dr-dropdown-item:hover .showOnHover{visibility:visible}.dr-dropdown .showOnHover{visibility:hidden}\n"] }]
|
|
275
290
|
}], function () { return []; }, { menuContainer: [{
|
|
276
291
|
type: ViewChild,
|
|
277
292
|
args: ['menuContainer', { static: true }]
|
|
@@ -281,4 +296,4 @@ __decorate([
|
|
|
281
296
|
type: Output,
|
|
282
297
|
args: ['action']
|
|
283
298
|
}], onMouseleave: [] }); })();
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQXVCLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7OztJQ0l0RCx3QkFBcUU7OztJQUFqRCwwQkFBa0I7OztJQUQxQyxnQ0FBMkQ7SUFDdkQsa0dBQXFFO0lBQ3JFLGdDQUFnQztJQUFBLFlBQWU7SUFBQSxpQkFBTztJQUMxRCwwQkFBZTs7O0lBRlAsZUFBYztJQUFkLGtDQUFjO0lBQ2MsZUFBZTtJQUFmLGtDQUFlOzs7O0lBSS9DLDZCQUtrRTtJQUE5RCwyVEFBYSxlQUFBLDhEQUErQyxDQUFBLElBQUM7SUFBQyxpQkFBSTs7Ozs7SUFGbEUsa0NBQXlCO0lBQ3pCLHlE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dXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUN1c3RvbVRvb2x0aXBDb21wb25lbnQsIElEcm9wZG93biwgSURyb3Bkb3duQWN0aW9uLCBJRHJvcGRvd25BY3Rpb25JY29uLCBJRHJvcGRvd25JdGVtIH0gZnJvbSAnLi4vbW9kZWxzL2Ryb3Bkb3duJztcbmltcG9ydCB7IERyUG9wb3ZlclJlZiB9IGZyb20gJy4uL21vZGVscy9wb3BvdmVyJztcbmltcG9ydCB7IGZpcnN0LCBtZXJnZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEcm9wZG93bkluc3RhbmNlUmVmLCBEcm9wZG93bkluc3RhbmNlU2VydmljZSB9IGZyb20gJy4vZHItZHJvcGRvd24uc2VydmljZSc7XG5pbXBvcnQgeyBEZWJvdW5jZSB9IGZyb20gJy4uL3V0aWxzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLi9tb2RlbHMvcG9zaXRpb24nO1xuaW1wb3J0IHsgVG9vbHRpcE9wdGlvbnMgfSBmcm9tICcuLi9kci10b29sdGlwL2RyLXRvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2x0aXBUaGVtZSB9IGZyb20gJy4uL2RyLXRvb2x0aXAvZW51bXMvdG9vbHRpcC10aGVtZS5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kcm9wZG93bicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEckRyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgRHJvcGRvd25JbnN0YW5jZVJlZiwgT25DaGFuZ2VzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRyb3Bkb3duSW5zdGFuY2VTZXJ2aWNlKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5kcm9wZG93bkluc3RhbmNlU2VydmljZS5yZWdpc3Rlcih0aGlzKTtcbiAgICAgICAgaW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duSW5zdGFuY2VTZXJ2aWNlLnVucmVnaXN0ZXIodGhpcyk7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3BvdmVyUmVmID0gaW5qZWN0KERyUG9wb3ZlclJlZiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duSW5zdGFuY2VTZXJ2aWNlID0gaW5qZWN0KERyb3Bkb3duSW5zdGFuY2VTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJEcm9wZG93bkluSG92ZXJDaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9hY3RpdmUgPSB0cnVlO1xuXG4gICAgcHVibGljIGRyRHJvcGRvd25JbkhvdmVyOiBib29sZWFuO1xuICAgIHB1YmxpYyBsaXN0OiBJRHJvcGRvd25JdGVtPHVua25vd24+W10gPSBbXTtcbiAgICBwdWJsaWMgY29udGFpbmVyQ2xhc3M6IHN0cmluZztcbiAgICBwdWJsaWMgd2FzSG92ZXJlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBhc0NoaWxkID0gZmFsc2U7XG4gICAgcHVibGljIGRhdGFBbmFseXRpY3M6IHN0cmluZztcblxuICAgIEBWaWV3Q2hpbGQoJ21lbnVDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIG1lbnVDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgb3B0aW9ucyhkYXRhOiBJRHJvcGRvd248SURyb3Bkb3duSXRlbTx1bmtub3duPj4pIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuZHJEcm9wZG93bkluSG92ZXIgPSBkYXRhLmRyRHJvcGRvd25JbkhvdmVyO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXJDbGFzcyA9IGRhdGEuY2xhc3M7XG4gICAgICAgICAgICB0aGlzLmRhdGFBbmFseXRpY3MgPSBkYXRhLmRhdGFBbmFseXRpY3M7XG4gICAgICAgICAgICB0aGlzLmxpc3QgPSBkYXRhLmxpc3QgfHwgW107XG4gICAgICAgICAgICB0aGlzLmxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5jaGlsZE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogaXRlbT8uY2hpbGRPcHRpb25zPy5jbGFzcyB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpdGVtPy5jaGlsZE9wdGlvbnM/LnBvc2l0aW9uIHx8ICdsZWZ0LXRvcCcsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZHJEcm9wZG93bkluSG92ZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyb3Bkb3duSW5zdGFuY2VTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgIC5pbmFjdGl2ZSh0aGlzKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShmaXJzdCgpLCB0YWtlVW50aWwobWVyZ2UodGhpcy5kZXN0cm95JCwgdGhpcy5kckRyb3Bkb3duSW5Ib3ZlckNoYW5nZSQpKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAT3V0cHV0KCdhY3Rpb24nKVxuICAgIG9uQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxJRHJvcGRvd25BY3Rpb248dW5rbm93bj4+KCk7XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICghY2hhbmdlcz8uZHJEcm9wZG93bkluSG92ZXI/LmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgdGhpcy5kckRyb3Bkb3duSW5Ib3ZlckNoYW5nZSQubmV4dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQERlYm91bmNlKDIwMClcbiAgICBwdWJsaWMgb25Nb3VzZWxlYXZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlO1xuICAgIH1cblxuICAgIHB1YmxpYyBkaXNhYmxlZChhY3Q6IElEcm9wZG93bkl0ZW08dW5rbm93bj4pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFhY3QuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGFjdC5kaXNhYmxlZCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICByZXR1cm4gYWN0LmRpc2FibGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFjdC5kaXNhYmxlZChhY3QuZGF0YSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWQoYWN0OiBJRHJvcGRvd25JdGVtPHVua25vd24+KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghYWN0LnNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhY3Quc2VsZWN0ZWQgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgcmV0dXJuIGFjdC5zZWxlY3RlZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhY3Quc2VsZWN0ZWQoYWN0LmRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHRvb2x0aXBUb1Nob3coYWN0OiBJRHJvcGRvd25JdGVtPHVua25vd24+KTogc3RyaW5nIHwgSUN1c3RvbVRvb2x0aXBDb21wb25lbnQge1xuICAgICAgICBpZiAoYWN0LnRvb2xUaXBJZkRpc2FibGVkICYmICF0aGlzLmRpc2FibGVkKGFjdCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhY3QuY3VzdG9tVG9vbHRpcCkge1xuICAgICAgICAgICAgcmV0dXJuIGFjdC5jdXN0b21Ub29sdGlwKGFjdC5kYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhY3QudG9vbFRpcCkge1xuICAgICAgICAgICAgcmV0dXJuIGFjdC50b29sVGlwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUb29sdGlwT3B0aW9ucyhhY3Q6IElEcm9wZG93bkl0ZW08dW5rbm93bj4pOiBUb29sdGlwT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGN1c3RvbU9wdGlvbnMgPSB0aGlzLmdldEN1c3RvbVRvb2x0aXBDb21wb25lbnQoYWN0KT8ub3B0aW9ucztcbiAgICAgICAgaWYgKCFjdXN0b21PcHRpb25zKSByZXR1cm4gPFRvb2x0aXBPcHRpb25zPnsgd2l0aG91dEFycm93OiB0cnVlIH07XG5cbiAgICAgICAgcmV0dXJuIDxUb29sdGlwT3B0aW9ucz57XG4gICAgICAgICAgICB3aXRob3V0QXJyb3c6IGN1c3RvbU9wdGlvbnMud2l0aG91dEFycm93LFxuICAgICAgICAgICAgd2l0aG91dENvbnRhaW5lclN0eWxlczogY3VzdG9tT3B0aW9ucy53aXRob3V0Q29udGFpbmVyU3R5bGVzLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUb29sdGlwUG9zaXRpb24oYWN0OiBJRHJvcGRvd25JdGVtPHVua25vd24+KTogUG9zaXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDdXN0b21Ub29sdGlwQ29tcG9uZW50KGFjdCk/Lm9wdGlvbnM/LnBvc2l0aW9uID8/ICdsZWZ0JztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VG9vbHRpcFRoZW1lKGFjdDogSURyb3Bkb3duSXRlbTx1bmtub3duPik6IFRvb2x0aXBUaGVtZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEN1c3RvbVRvb2x0aXBDb21wb25lbnQoYWN0KT8ub3B0aW9ucz8udGhlbWUgPz8gVG9vbHRpcFRoZW1lLkxJR0hUO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUb29sdGlwTW91c2xlYXZlVGltZW91dChhY3Q6IElEcm9wZG93bkl0ZW08dW5rbm93bj4pOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDdXN0b21Ub29sdGlwQ29tcG9uZW50KGFjdCk/Lm9wdGlvbnM/LmRyVG9vbHRpcE1vdXNsZWF2ZVRpbWVvdXQgPz8gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VG9vbHRpcE1vdXNlRW50ZXJUaW1lb3V0KGFjdDogSURyb3Bkb3duSXRlbTx1bmtub3duPik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEN1c3RvbVRvb2x0aXBDb21wb25lbnQoYWN0KT8ub3B0aW9ucz8uZHJUb29sdGlwTW91c2VFbnRlclRpbWVvdXQgPz8gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEN1c3RvbVRvb2x0aXBDb21wb25lbnQoYWN0OiBJRHJvcGRvd25JdGVtPHVua25vd24+KTogSUN1c3RvbVRvb2x0aXBDb21wb25lbnQgfCBudWxsIHtcbiAgICAgICAgaWYgKGFjdC5jdXN0b21Ub29sdGlwKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhY3QuY3VzdG9tVG9vbHRpcChhY3QuZGF0YSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCAhPT0gJ3N0cmluZycpIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGFjdGlvbihhY3Q6IElEcm9wZG93bkl0ZW08dW5rbm93bj4pIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKGFjdCkpIHtcbiAgICAgICAgICAgIGlmIChhY3QuYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgYWN0LmFjdGlvbihhY3QuZGF0YSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0geyBldmVudDogYWN0LmV2ZW50IHx8IGFjdC50aXRsZSB8fCAnZGVmYXVsdCcsIGRhdGE6IGFjdC5kYXRhIH07XG4gICAgICAgICAgICAgICAgdGhpcy5vbkFjdGlvbi5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkFjdGlvbkljb25DbGljaygkZXZlbnQ6IE1vdXNlRXZlbnQsIGFjdGlvbkljb246IElEcm9wZG93bkFjdGlvbkljb248dW5rbm93bj4sIGRhdGE6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBhY3Rpb25JY29uLmFjdGlvbihkYXRhKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzQ2hpbGRyZW4oaXRlbTogSURyb3Bkb3duSXRlbTx1bmtub3duPik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISFpdGVtLmNoaWxkcmVuPy5sZW5ndGggJiYgIXRoaXMuZGlzYWJsZWQoaXRlbSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTW91c2VlbnRlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53YXNIb3ZlcmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGF0YUFuYWx5dGljc1RhZyhhY3Q6IElEcm9wZG93bkl0ZW08dW5rbm93bj4sIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYWN0LmRhdGFBbmFseXRpY3NcbiAgICAgICAgICAgID8gYWN0LmRhdGFBbmFseXRpY3NcbiAgICAgICAgICAgIDogdGhpcy5kYXRhQW5hbHl0aWNzXG4gICAgICAgICAgICAgID8gdGhpcy5kYXRhQW5hbHl0aWNzICsgJ18nICsgKGFjdC50aXRsZT8ucmVwbGFjZSgvIC9nLCAnLScpIHx8IGluZGV4KVxuICAgICAgICAgICAgICA6IG51bGw7XG4gICAgfVxufVxuIiwiPGRpdiAjbWVudUNvbnRhaW5lciBbY2xhc3NdPVwiY29udGFpbmVyQ2xhc3NcIiBjbGFzcz1cImRyLWRyb3Bkb3duXCI+XG4gICAgPGRpdiBjbGFzcz1cImRyLWRyb3Bkb3duX19jb250YWluZXJcIiAobW91c2VlbnRlcik9XCJvbk1vdXNlZW50ZXIoKVwiIChtb3VzZWxlYXZlKT1cIm9uTW91c2VsZWF2ZSgpXCIgdGFiaW5kZXg9XCItMVwiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRyLWRyb3Bkb3duLWl0ZW1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgPGRyLWRyb3Bkb3duLWl0ZW1cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhY3Qgb2YgbGlzdCB8IGRyRHJvcGRvd25JdGVtU2hvd1BpcGU7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwiYWN0aW9uKGFjdClcIlxuICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJ0b29sdGlwVG9TaG93KGFjdClcIlxuICAgICAgICAgICAgW2RyVG9vbHRpcFBvc2l0aW9uXT1cImdldFRvb2x0aXBQb3NpdGlvbihhY3QpXCJcbiAgICAgICAgICAgIFtkclRvb2x0aXBPcHRpb25zXT1cImdldFRvb2x0aXBPcHRpb25zKGFjdClcIlxuICAgICAgICAgICAgW2RyVG9vbHRpcFRoZW1lXT1cImdldFRvb2x0aXBUaGVtZShhY3QpXCJcbiAgICAgICAgICAgIFtkclRvb2x0aXBNb3VzbGVhdmVUaW1lb3V0XT1cImdldFRvb2x0aXBNb3VzbGVhdmVUaW1lb3V0KGFjdClcIlxuICAgICAgICAgICAgW2RyVG9vbHRpcE1vdXNlRW50ZXJUaW1lb3V0XT1cImdldFRvb2x0aXBNb3VzZUVudGVyVGltZW91dChhY3QpXCJcbiAgICAgICAgICAgIFtkclRvb2x0aXBDbGFzc109XCInZHItZHJvcGRvd25fX3Rvb2x0aXAnXCJcbiAgICAgICAgICAgIFtkckRyb3Bkb3duXT1cImhhc0NoaWxkcmVuKGFjdCkgJiYgYWN0LmNoaWxkcmVuXCJcbiAgICAgICAgICAgIFtkckRyb3Bkb3duQ2xhc3NdPVwiYWN0LmNoaWxkT3B0aW9ucz8uY2xhc3NcIlxuICAgICAgICAgICAgW2RyRHJvcGRvd25JbkhvdmVyXT1cInRydWVcIlxuICAgICAgICAgICAgW2RyRHJvcGRvd25Qb3NpdGlvbl09XCJhY3QuY2hpbGRPcHRpb25zPy5wb3NpdGlvblwiXG4gICAgICAgICAgICBkckRyb3Bkb3duQ2hpbGRcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZChhY3QpXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZChhY3QpXCJcbiAgICAgICAgICAgIFtkaXZpZGVyXT1cImFjdC5zZXBhcmF0ZUxpbmVcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1hbmFseXRpY3NdPVwiZ2V0RGF0YUFuYWx5dGljc1RhZyhhY3QsIGluZGV4KVwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgZHJvcGRvd25JdGVtQ29udGVudCAqbmdJZj1cIiFhY3QudGVtcGxhdGVSZWZcIj5cbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImFjdC5pY29uXCIgW2NsYXNzXT1cImFjdC5pY29uXCIgY2xhc3M9XCJkci1kcm9wZG93bl9faWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyLWRyb3Bkb3duX190ZXh0XCI+e3sgYWN0LnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgZHJvcGRvd25JdGVtQWN0aW9ucyAqbmdJZj1cIiFhY3QudGVtcGxhdGVSZWZcIj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uSWNvbiBvZiBhY3QuYWN0aW9uSWNvbnNcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWFuYWx5dGljc109XCJnZXREYXRhQW5hbHl0aWNzVGFnKGFjdGlvbkljb24sIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Rpb25JY29uLmljb25cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2hvd09uSG92ZXJdPVwiYWN0aW9uSWNvbi5zaG93T25Ib3ZlclwiXG4gICAgICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25BY3Rpb25JY29uQ2xpY2soJGV2ZW50LCBhY3Rpb25JY29uLCBhY3QuZGF0YSlcIj48L2k+XG4gICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJoYXNDaGlsZHJlbihhY3QpXCIgY2xhc3M9XCJkci1pY29uLWFycm93LXJpZ2h0XCI+PC9pPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImFjdC50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgZHJvcGRvd25JdGVtQ29udGVudFxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFjdC50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBhY3QgfVwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZHItZHJvcGRvd24taXRlbT5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBdUIsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlC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bEMsd0RBQWtDO2lERDJCdEQsWUFBWSw0Q0FDWixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLHNCQUFzQixFQUNMLG1CQUFtQixFQUNuQix3QkFBd0I7O0FBeUU3QztJQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Ozs7dURBR2I7dUZBckVRLG1CQUFtQjtjQWYvQixTQUFTOzZCQUNNLElBQUksV0FDUDtvQkFDTCxZQUFZO29CQUNaLGtCQUFrQjtvQkFDbEIsdUJBQXVCO29CQUN2QixzQkFBc0I7b0JBQ3RCLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsRUFBQztvQkFDckMsVUFBVSxFQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixFQUFDO2lCQUM3QyxZQUNTLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTTtzQ0E2Qi9DLGFBQWE7a0JBRFosU0FBUzttQkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBSXhDLE9BQU87a0JBRFYsS0FBSztZQTZCTixRQUFRO2tCQURQLE1BQU07bUJBQUMsUUFBUTtZQVVULFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElDdXN0b21Ub29sdGlwQ29tcG9uZW50LCBJRHJvcGRvd24sIElEcm9wZG93bkFjdGlvbiwgSURyb3Bkb3duQWN0aW9uSWNvbiwgSURyb3Bkb3duSXRlbSB9IGZyb20gJy4uL21vZGVscy9kcm9wZG93bic7XG5pbXBvcnQgeyBEclBvcG92ZXJSZWYgfSBmcm9tICcuLi9tb2RlbHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBmaXJzdCwgbWVyZ2UsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRHJvcGRvd25JbnN0YW5jZVJlZiwgRHJvcGRvd25JbnN0YW5jZVNlcnZpY2UgfSBmcm9tICcuL2RyLWRyb3Bkb3duLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGVib3VuY2UgfSBmcm9tICcuLi91dGlscy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3Bvc2l0aW9uJztcbmltcG9ydCB7IFRvb2x0aXBPcHRpb25zIH0gZnJvbSAnLi4vZHItdG9vbHRpcC9kci10b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwVGhlbWUgfSBmcm9tICcuLi9kci10b29sdGlwL2VudW1zL3Rvb2x0aXAtdGhlbWUuZW51bSc7XG5pbXBvcnQgeyBEclRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi9kci10b29sdGlwL2RyLXRvb2x0aXAuZGlyZWN0aXZlJztcbmltcG9ydCB7IERyRHJvcGRvd25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kci1kcm9wZG93bi1pdGVtL2RyLWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IERyRHJvcGRvd25JdGVtU2hvd1BpcGUgfSBmcm9tICcuL2RyLWRyb3Bkb3duLWl0ZW0tc2hvdy5waXBlJztcbmltcG9ydCB7IERyRHJvcGRvd25EaXJlY3RpdmUsIERyRHJvcGRvd25DaGlsZERpcmVjdGl2ZSB9IGZyb20gJy4vZHItZHJvcGRvd24uZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRHJUb29sdGlwRGlyZWN0aXZlLFxuICAgICAgICBEckRyb3Bkb3duSXRlbUNvbXBvbmVudCxcbiAgICAgICAgRHJEcm9wZG93bkl0ZW1TaG93UGlwZSxcbiAgICAgICAgZm9yd2FyZFJlZigoKSA9PiBEckRyb3Bkb3duRGlyZWN0aXZlKSxcbiAgICAgICAgZm9yd2FyZFJlZigoKSA9PiBEckRyb3Bkb3duQ2hpbGREaXJlY3RpdmUpLFxuICAgIF0sXG4gICAgc2VsZWN0b3I6ICdkci1kcm9wZG93bicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEckRyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgRHJvcGRvd25JbnN0YW5jZVJlZiwgT25DaGFuZ2VzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRyb3Bkb3duSW5zdGFuY2VTZXJ2aWNlKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5kcm9wZG93bkluc3RhbmNlU2VydmljZS5yZWdpc3Rlcih0aGlzKTtcbiAgICAgICAgaW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duSW5zdGFuY2VTZXJ2aWNlLnVucmVnaXN0ZXIodGhpcyk7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3BvdmVyUmVmID0gaW5qZWN0KERyUG9wb3ZlclJlZiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duSW5zdGFuY2VTZXJ2aWNlID0gaW5qZWN0KERyb3Bkb3duSW5zdGFuY2VTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJEcm9wZG93bkluSG92ZXJDaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9hY3RpdmUgPSB0cnVlO1xuXG4gICAgcHVibGljIGRyRHJvcGRvd25JbkhvdmVyOiBib29sZWFuO1xuICAgIHB1YmxpYyBsaXN0OiBJRHJvcGRvd25JdGVtPHVua25vd24+W10gPSBbXTtcbiAgICBwdWJsaWMgY29udGFpbmVyQ2xhc3M6IHN0cmluZztcbiAgICBwdWJsaWMgd2FzSG92ZXJlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBhc0NoaWxkID0gZmFsc2U7XG4gICAgcHVibGljIGRhdGFBbmFseXRpY3M6IHN0cmluZztcblxuICAgIEBWaWV3Q2hpbGQoJ21lbnVDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIG1lbnVDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgb3B0aW9ucyhkYXRhOiBJRHJvcGRvd248SURyb3Bkb3duSXRlbTx1bmtub3duPj4pIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuZHJEcm9wZG93bkluSG92ZXIgPSBkYXRhLmRyRHJvcGRvd25JbkhvdmVyO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXJDbGFzcyA9IGRhdGEuY2xhc3M7XG4gICAgICAgICAgICB0aGlzLmRhdGFBbmFseXRpY3MgPSBkYXRhLmRhdGFBbmFseXRpY3M7XG4gICAgICAgICAgICB0aGlzLmxpc3QgPSBkYXRhLmxpc3QgfHwgW107XG4gICAgICAgICAgICB0aGlzLmxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5jaGlsZE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogaXRlbT8uY2hpbGRPcHRpb25zPy5jbGFzcyB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpdGVtPy5jaGlsZE9wdGlvbnM/LnBvc2l0aW9uIHx8ICdsZWZ0LXRvcCcsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZHJEcm9wZG93bkluSG92ZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyb3Bkb3duSW5zdGFuY2VTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgIC5pbmFjdGl2ZSh0aGlzKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShmaXJzdCgpLCB0YWtlVW50aWwobWVyZ2UodGhpcy5kZXN0cm95JCwgdGhpcy5kckRyb3Bkb3duSW5Ib3ZlckNoYW5nZSQpKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAT3V0cHV0KCdhY3Rpb24nKVxuICAgIG9uQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxJRHJvcGRvd25BY3Rpb248dW5rbm93bj4+KCk7XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICghY2hhbmdlcz8uZHJEcm9wZG93bkluSG92ZXI/LmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgdGhpcy5kckRyb3Bkb3duSW5Ib3ZlckNoYW5nZSQubmV4dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQERlYm91bmNlKDIwMClcbiAgICBwdWJsaWMgb25Nb3VzZWxlYXZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlO1xuICAgIH1cblxuICAgIHB1YmxpYyBkaXNhYmxlZChhY3Q6IElEcm9wZG93bkl0ZW08dW5rbm93bj4pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFhY3QuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGFjdC5kaXNhYmxlZCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICByZXR1cm4gYWN0LmRpc2FibGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFjdC5kaXNhYmxlZChhY3QuZGF0YSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWQoYWN0OiBJRHJvcGRvd25JdGVtPHVua25vd24+KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghYWN0LnNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhY3Quc2VsZWN0ZWQgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgcmV0dXJuIGFjdC5zZWxlY3RlZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhY3Quc2VsZWN0ZWQoYWN0LmRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHRvb2x0aXBUb1Nob3coYWN0OiBJRHJvcGRvd25JdGVtPHVua25vd24+KTogc3RyaW5nIHwgSUN1c3RvbVRvb2x0aXBDb21wb25lbnQge1xuICAgICAgICBpZiAoYWN0LnRvb2xUaXBJZkRpc2FibGVkICYmICF0aGlzLmRpc2FibGVkKGFjdCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhY3QuY3VzdG9tVG9vbHRpcCkge1xuICAgICAgICAgICAgcmV0dXJuIGFjdC5jdXN0b21Ub29sdGlwKGFjdC5kYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhY3QudG9vbFRpcCkge1xuICAgICAgICAgICAgcmV0dXJuIGFjdC50b29sVGlwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUb29sdGlwT3B0aW9ucyhhY3Q6IElEcm9wZG93bkl0ZW08dW5rbm93bj4pOiBUb29sdGlwT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGN1c3RvbU9wdGlvbnMgPSB0aGlzLmdldEN1c3RvbVRvb2x0aXBDb21wb25lbnQoYWN0KT8ub3B0aW9ucztcbiAgICAgICAgaWYgKCFjdXN0b21PcHRpb25zKSByZXR1cm4gPFRvb2x0aXBPcHRpb25zPnsgd2l0aG91dEFycm93OiB0cnVlIH07XG5cbiAgICAgICAgcmV0dXJuIDxUb29sdGlwT3B0aW9ucz57XG4gICAgICAgICAgICB3aXRob3V0QXJyb3c6IGN1c3RvbU9wdGlvbnMud2l0aG91dEFycm93LFxuICAgICAgICAgICAgd2l0aG91dENvbnRhaW5lclN0eWxlczogY3VzdG9tT3B0aW9ucy53aXRob3V0Q29udGFpbmVyU3R5bGVzLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUb29sdGlwUG9zaXRpb24oYWN0OiBJRHJvcGRvd25JdGVtPHVua25vd24+KTogUG9zaXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDdXN0b21Ub29sdGlwQ29tcG9uZW50KGFjdCk/Lm9wdGlvbnM/LnBvc2l0aW9uID8/ICdsZWZ0JztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VG9vbHRpcFRoZW1lKGFjdDogSURyb3Bkb3duSXRlbTx1bmtub3duPik6IFRvb2x0aXBUaGVtZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEN1c3RvbVRvb2x0aXBDb21wb25lbnQoYWN0KT8ub3B0aW9ucz8udGhlbWUgPz8gVG9vbHRpcFRoZW1lLkxJR0hUO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUb29sdGlwTW91c2xlYXZlVGltZW91dChhY3Q6IElEcm9wZG93bkl0ZW08dW5rbm93bj4pOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDdXN0b21Ub29sdGlwQ29tcG9uZW50KGFjdCk/Lm9wdGlvbnM/LmRyVG9vbHRpcE1vdXNsZWF2ZVRpbWVvdXQgPz8gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VG9vbHRpcE1vdXNlRW50ZXJUaW1lb3V0KGFjdDogSURyb3Bkb3duSXRlbTx1bmtub3duPik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEN1c3RvbVRvb2x0aXBDb21wb25lbnQoYWN0KT8ub3B0aW9ucz8uZHJUb29sdGlwTW91c2VFbnRlclRpbWVvdXQgPz8gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEN1c3RvbVRvb2x0aXBDb21wb25lbnQoYWN0OiBJRHJvcGRvd25JdGVtPHVua25vd24+KTogSUN1c3RvbVRvb2x0aXBDb21wb25lbnQgfCBudWxsIHtcbiAgICAgICAgaWYgKGFjdC5jdXN0b21Ub29sdGlwKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhY3QuY3VzdG9tVG9vbHRpcChhY3QuZGF0YSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCAhPT0gJ3N0cmluZycpIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGFjdGlvbihhY3Q6IElEcm9wZG93bkl0ZW08dW5rbm93bj4pIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKGFjdCkpIHtcbiAgICAgICAgICAgIGlmIChhY3QuYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgYWN0LmFjdGlvbihhY3QuZGF0YSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0geyBldmVudDogYWN0LmV2ZW50IHx8IGFjdC50aXRsZSB8fCAnZGVmYXVsdCcsIGRhdGE6IGFjdC5kYXRhIH07XG4gICAgICAgICAgICAgICAgdGhpcy5vbkFjdGlvbi5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkFjdGlvbkljb25DbGljaygkZXZlbnQ6IE1vdXNlRXZlbnQsIGFjdGlvbkljb246IElEcm9wZG93bkFjdGlvbkljb248dW5rbm93bj4sIGRhdGE6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBhY3Rpb25JY29uLmFjdGlvbihkYXRhKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzQ2hpbGRyZW4oaXRlbTogSURyb3Bkb3duSXRlbTx1bmtub3duPik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISFpdGVtLmNoaWxkcmVuPy5sZW5ndGggJiYgIXRoaXMuZGlzYWJsZWQoaXRlbSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTW91c2VlbnRlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53YXNIb3ZlcmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGF0YUFuYWx5dGljc1RhZyhhY3Q6IElEcm9wZG93bkl0ZW08dW5rbm93bj4sIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYWN0LmRhdGFBbmFseXRpY3NcbiAgICAgICAgICAgID8gYWN0LmRhdGFBbmFseXRpY3NcbiAgICAgICAgICAgIDogdGhpcy5kYXRhQW5hbHl0aWNzXG4gICAgICAgICAgICAgID8gdGhpcy5kYXRhQW5hbHl0aWNzICsgJ18nICsgKGFjdC50aXRsZT8ucmVwbGFjZSgvIC9nLCAnLScpIHx8IGluZGV4KVxuICAgICAgICAgICAgICA6IG51bGw7XG4gICAgfVxufVxuIiwiPGRpdiAjbWVudUNvbnRhaW5lciBbY2xhc3NdPVwiY29udGFpbmVyQ2xhc3NcIiBjbGFzcz1cImRyLWRyb3Bkb3duXCI+XG4gICAgPGRpdiBjbGFzcz1cImRyLWRyb3Bkb3duX19jb250YWluZXJcIiAobW91c2VlbnRlcik9XCJvbk1vdXNlZW50ZXIoKVwiIChtb3VzZWxlYXZlKT1cIm9uTW91c2VsZWF2ZSgpXCIgdGFiaW5kZXg9XCItMVwiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRyLWRyb3Bkb3duLWl0ZW1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgPGRyLWRyb3Bkb3duLWl0ZW1cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhY3Qgb2YgbGlzdCB8IGRyRHJvcGRvd25JdGVtU2hvd1BpcGU7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwiYWN0aW9uKGFjdClcIlxuICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJ0b29sdGlwVG9TaG93KGFjdClcIlxuICAgICAgICAgICAgW2RyVG9vbHRpcFBvc2l0aW9uXT1cImdldFRvb2x0aXBQb3NpdGlvbihhY3QpXCJcbiAgICAgICAgICAgIFtkclRvb2x0aXBPcHRpb25zXT1cImdldFRvb2x0aXBPcHRpb25zKGFjdClcIlxuICAgICAgICAgICAgW2RyVG9vbHRpcFRoZW1lXT1cImdldFRvb2x0aXBUaGVtZShhY3QpXCJcbiAgICAgICAgICAgIFtkclRvb2x0aXBNb3VzbGVhdmVUaW1lb3V0XT1cImdldFRvb2x0aXBNb3VzbGVhdmVUaW1lb3V0KGFjdClcIlxuICAgICAgICAgICAgW2RyVG9vbHRpcE1vdXNlRW50ZXJUaW1lb3V0XT1cImdldFRvb2x0aXBNb3VzZUVudGVyVGltZW91dChhY3QpXCJcbiAgICAgICAgICAgIFtkclRvb2x0aXBDbGFzc109XCInZHItZHJvcGRvd25fX3Rvb2x0aXAnXCJcbiAgICAgICAgICAgIFtkckRyb3Bkb3duXT1cImhhc0NoaWxkcmVuKGFjdCkgJiYgYWN0LmNoaWxkcmVuXCJcbiAgICAgICAgICAgIFtkckRyb3Bkb3duQ2xhc3NdPVwiYWN0LmNoaWxkT3B0aW9ucz8uY2xhc3NcIlxuICAgICAgICAgICAgW2RyRHJvcGRvd25JbkhvdmVyXT1cInRydWVcIlxuICAgICAgICAgICAgW2RyRHJvcGRvd25Qb3NpdGlvbl09XCJhY3QuY2hpbGRPcHRpb25zPy5wb3NpdGlvblwiXG4gICAgICAgICAgICBkckRyb3Bkb3duQ2hpbGRcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZChhY3QpXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZChhY3QpXCJcbiAgICAgICAgICAgIFtkaXZpZGVyXT1cImFjdC5zZXBhcmF0ZUxpbmVcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1hbmFseXRpY3NdPVwiZ2V0RGF0YUFuYWx5dGljc1RhZyhhY3QsIGluZGV4KVwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgZHJvcGRvd25JdGVtQ29udGVudCAqbmdJZj1cIiFhY3QudGVtcGxhdGVSZWZcIj5cbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImFjdC5pY29uXCIgW2NsYXNzXT1cImFjdC5pY29uXCIgY2xhc3M9XCJkci1kcm9wZG93bl9faWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyLWRyb3Bkb3duX190ZXh0XCI+e3sgYWN0LnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgZHJvcGRvd25JdGVtQWN0aW9ucyAqbmdJZj1cIiFhY3QudGVtcGxhdGVSZWZcIj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uSWNvbiBvZiBhY3QuYWN0aW9uSWNvbnNcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWFuYWx5dGljc109XCJnZXREYXRhQW5hbHl0aWNzVGFnKGFjdGlvbkljb24sIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Rpb25JY29uLmljb25cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2hvd09uSG92ZXJdPVwiYWN0aW9uSWNvbi5zaG93T25Ib3ZlclwiXG4gICAgICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25BY3Rpb25JY29uQ2xpY2soJGV2ZW50LCBhY3Rpb25JY29uLCBhY3QuZGF0YSlcIj48L2k+XG4gICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJoYXNDaGlsZHJlbihhY3QpXCIgY2xhc3M9XCJkci1pY29uLWFycm93LXJpZ2h0XCI+PC9pPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImFjdC50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgZHJvcGRvd25JdGVtQ29udGVudFxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFjdC50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBhY3QgfVwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZHItZHJvcGRvd24taXRlbT5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|