@alauda-fe/common 1.4.28-beta.2 → 1.4.28-beta.4
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/core/directives/scroll-to-first-invalid.directive.d.ts +1 -1
- package/esm2022/code/managed-fields-folder.util.mjs +21 -7
- package/esm2022/code/resource-yaml-display/component.mjs +12 -10
- package/esm2022/code/resource-yaml-editor/component.mjs +22 -18
- package/esm2022/code/yaml-sidebar/component.mjs +3 -3
- package/esm2022/exec/terminal-group/component.mjs +2 -2
- package/esm2022/multi-search/action-input/component.mjs +18 -18
- package/esm2022/multi-search/form/component.mjs +8 -12
- package/esm2022/multi-search/public-api.mjs +1 -2
- package/esm2022/multi-search/utils.mjs +2 -1
- package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.component.mjs +6 -7
- package/esm2022/page-scaffold/page/notices/maintenance.component.mjs +22 -19
- package/esm2022/page-scaffold/page/notices/notice.component.mjs +13 -11
- package/esm2022/page-scaffold/page/page.module.mjs +9 -10
- package/esm2022/widget/foldable-item-in-table/component.mjs +2 -2
- package/esm2022/widget/status-icon/status-icon.component.mjs +5 -5
- package/esm2022/widget/terminating-tag/component.mjs +2 -2
- package/esm2022/widget/zero-state/zero-state.component.mjs +5 -6
- package/multi-search/action-input/component.d.ts +4 -4
- package/multi-search/form/component.d.ts +0 -1
- package/multi-search/public-api.d.ts +0 -1
- package/multi-search/utils.d.ts +1 -0
- package/package.json +1 -1
- package/page-scaffold/navigation/nav-menu/nav-menu.component.d.ts +2 -2
- package/page-scaffold/page/notices/maintenance.component.d.ts +9 -5
- package/page-scaffold/page/page.module.d.ts +5 -4
- package/table/component.d.ts +1 -1
- package/widget/status-icon/status-icon.component.d.ts +1 -1
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { IconComponent
|
|
3
|
-
import { AsyncPipe, NgClass,
|
|
2
|
+
import { IconComponent } from '@alauda/ui';
|
|
3
|
+
import { AsyncPipe, NgClass, NgIf } from '@angular/common';
|
|
4
4
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
5
5
|
import { FormsModule } from '@angular/forms';
|
|
6
6
|
import { cloneDeep, isEmpty, set } from 'lodash-es';
|
|
7
7
|
import { BehaviorSubject, combineLatest, distinctUntilChanged, fromEvent, map, merge, Observable, scan, Subject, take, takeUntil, tap, } from 'rxjs';
|
|
8
|
-
import { isEqual, ObservableInput, publishRef
|
|
8
|
+
import { isEqual, ObservableInput, publishRef } from '../../core/public-api';
|
|
9
9
|
import { MultiSearchActionInputComponent } from '../action-input/component';
|
|
10
10
|
import { MultiSearchTagsComponent } from '../multi-search-tags/component';
|
|
11
|
+
import { DEFAULT_OPERATOR } from '../utils';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
import * as i1 from "@angular/forms";
|
|
13
14
|
const _c0 = ["inputRef"];
|
|
@@ -35,7 +36,6 @@ function MultiSearchComponent_div_14_Template(rf, ctx) { if (rf & 1) {
|
|
|
35
36
|
i0.ɵɵadvance(2);
|
|
36
37
|
i0.ɵɵproperty("ngClass", ctx_r2.SEARCH_ICON_CLASS);
|
|
37
38
|
} }
|
|
38
|
-
export const DEFAULT_OPERATOR = '=';
|
|
39
39
|
export class MultiSearchComponent {
|
|
40
40
|
get inputComponent() {
|
|
41
41
|
return this.noDeletingCondition && this.noEditingCondition
|
|
@@ -304,7 +304,7 @@ export class MultiSearchComponent {
|
|
|
304
304
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.normalInputComponent = _t.first);
|
|
305
305
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tagsComponent = _t.first);
|
|
306
306
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.multiSearchRef = _t.first);
|
|
307
|
-
} }, inputs: { placeholder: "placeholder", conditionCreatable: "conditionCreatable", conditions: "conditions", conditionConfig: "conditionConfig", autoScroll: "autoScroll", searchSuffix: "searchSuffix", showFootAction: "showFootAction" }, outputs: { search: "search", conditionsChange: "conditionsChange" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 15, vars: 35, consts: [["multiSearch", ""], ["tagsRef", ""], ["inputRef", ""], [1, "aui-input", "multi-search", 3, "ngClass"], [3, "removeCondition", "setConditionEditing", "setConditionDeleting", "search", "completed", "ngClass", "placeholder", "conditionCreatable", "existingConditions", "conditionConfig", "showFootAction"], [1, "input-wrapper", 3, "ngModelChange", "completed", "delete", "search", "isEditing", "hidden", "placeholder", "conditionCreatable", "conditionConfig", "existingConditions", "autoScroll", "ngModel", "showFootAction"], [1, "search-suffix"], ["class", "search-clear", 4, "ngIf"], ["class", "search-suffix", 4, "ngIf"], [1, "search-clear"], ["icon", "xmark_small", "size", "14", 1, "tw-text-n-4", "tw-cursor-pointer", 3, "click", "ngClass"], [1, "suffix-wrapper"], ["icon", "magnifier", 1, "tw-text-n-4", "tw-cursor-pointer", 3, "click", "ngClass"]], template: function MultiSearchComponent_Template(rf, ctx) { if (rf & 1) {
|
|
307
|
+
} }, inputs: { placeholder: "placeholder", conditionCreatable: "conditionCreatable", conditions: "conditions", conditionConfig: "conditionConfig", autoScroll: "autoScroll", searchSuffix: "searchSuffix", showFootAction: "showFootAction" }, outputs: { search: "search", conditionsChange: "conditionsChange" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 15, vars: 35, consts: [["multiSearch", ""], ["tagsRef", ""], ["inputRef", ""], [1, "aui-input", "multi-search", 3, "ngClass"], [3, "removeCondition", "setConditionEditing", "setConditionDeleting", "search", "completed", "ngClass", "placeholder", "conditionCreatable", "existingConditions", "conditionConfig", "showFootAction"], [1, "input-wrapper", 3, "ngModelChange", "completed", "delete", "search", "focusIn", "focusOut", "isEditing", "hidden", "placeholder", "conditionCreatable", "conditionConfig", "existingConditions", "autoScroll", "ngModel", "showFootAction"], [1, "search-suffix"], ["class", "search-clear", 4, "ngIf"], ["class", "search-suffix", 4, "ngIf"], [1, "search-clear"], ["icon", "xmark_small", "size", "14", 1, "tw-text-n-4", "tw-cursor-pointer", 3, "click", "ngClass"], [1, "suffix-wrapper"], ["icon", "magnifier", 1, "tw-text-n-4", "tw-cursor-pointer", 3, "click", "ngClass"]], template: function MultiSearchComponent_Template(rf, ctx) { if (rf & 1) {
|
|
308
308
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
309
309
|
i0.ɵɵelementStart(0, "div", 3, 0);
|
|
310
310
|
i0.ɵɵpipe(2, "async");
|
|
@@ -316,7 +316,7 @@ export class MultiSearchComponent {
|
|
|
316
316
|
i0.ɵɵpipe(9, "async");
|
|
317
317
|
i0.ɵɵpipe(10, "async");
|
|
318
318
|
i0.ɵɵtwoWayListener("ngModelChange", function MultiSearchComponent_Template_acl_multi_search_action_input_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.addedCondition, $event) || (ctx.addedCondition = $event); return i0.ɵɵresetView($event); });
|
|
319
|
-
i0.ɵɵlistener("completed", function MultiSearchComponent_Template_acl_multi_search_action_input_completed_7_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.complete($event)); })("delete", function MultiSearchComponent_Template_acl_multi_search_action_input_delete_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.setConditionDeleting()); })("search", function MultiSearchComponent_Template_acl_multi_search_action_input_search_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.doSearch()); });
|
|
319
|
+
i0.ɵɵlistener("completed", function MultiSearchComponent_Template_acl_multi_search_action_input_completed_7_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.complete($event)); })("delete", function MultiSearchComponent_Template_acl_multi_search_action_input_delete_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.setConditionDeleting()); })("search", function MultiSearchComponent_Template_acl_multi_search_action_input_search_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.doSearch()); })("focusIn", function MultiSearchComponent_Template_acl_multi_search_action_input_focusIn_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.setFocus(true)); })("focusOut", function MultiSearchComponent_Template_acl_multi_search_action_input_focusOut_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.manualBlur()); });
|
|
320
320
|
i0.ɵɵelementEnd()();
|
|
321
321
|
i0.ɵɵelementStart(11, "div", 6);
|
|
322
322
|
i0.ɵɵtemplate(12, MultiSearchComponent_div_12_Template, 2, 1, "div", 7);
|
|
@@ -357,16 +357,12 @@ __decorate([
|
|
|
357
357
|
args: [{ selector: 'acl-multi-search', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
358
358
|
NgClass,
|
|
359
359
|
AsyncPipe,
|
|
360
|
-
TagComponent,
|
|
361
|
-
PurePipe,
|
|
362
360
|
MultiSearchActionInputComponent,
|
|
363
361
|
MultiSearchTagsComponent,
|
|
364
|
-
NgFor,
|
|
365
362
|
NgIf,
|
|
366
|
-
InputComponent,
|
|
367
363
|
FormsModule,
|
|
368
364
|
IconComponent,
|
|
369
|
-
], template: "<div\n class=\"aui-input multi-search\"\n #multiSearch\n [ngClass]=\"{\n 'search-focus': focus$$ | async,\n }\"\n>\n <!-- \u5DF2\u9009\u62E9\u7C7B\u76EEtags -->\n <acl-multi-search-tags\n #tagsRef\n [ngClass]=\"{\n 'tags-width-with-delete': $any(existingConditions$ | async)?.length,\n 'tags-width': !$any(existingConditions$ | async)?.length,\n }\"\n [placeholder]=\"placeholder\"\n [conditionCreatable]=\"conditionCreatable\"\n [existingConditions]=\"existingConditions\"\n [conditionConfig]=\"conditionConfig\"\n (removeCondition)=\"removeCondition($event)\"\n (setConditionEditing)=\"setConditionEditing($event)\"\n (setConditionDeleting)=\"setConditionDeleting($event)\"\n [showFootAction]=\"showFootAction\"\n (search)=\"doSearch()\"\n (completed)=\"complete($event)\"\n >\n <!-- \u672B\u5C3E\u8F93\u5165\u6846 -->\n <acl-multi-search-action-input\n #inputRef\n class=\"input-wrapper\"\n [isEditing]=\"true\"\n [hidden]=\"addedInputShouldHidden$ | async\"\n [placeholder]=\"placeholder\"\n [conditionCreatable]=\"conditionCreatable\"\n [conditionConfig]=\"conditionConfig\"\n [existingConditions]=\"existingConditions$ | async\"\n [autoScroll]=\"autoScroll\"\n [(ngModel)]=\"addedCondition\"\n [showFootAction]=\"showFootAction\"\n (completed)=\"complete($event)\"\n (delete)=\"setConditionDeleting()\"\n (search)=\"doSearch()\"\n ></acl-multi-search-action-input>\n </acl-multi-search-tags>\n\n <div class=\"search-suffix\">\n <div\n *ngIf=\"$any(existingConditions$ | async)?.length\"\n class=\"search-clear\"\n >\n <aui-icon\n class=\"tw-text-n-4 tw-cursor-pointer\"\n [ngClass]=\"CLEAR_ICON_CLASS\"\n icon=\"xmark_small\"\n size=\"14\"\n (click)=\"clearConditions(); doSearch(); $event.stopPropagation()\"\n ></aui-icon>\n </div>\n <div\n class=\"search-suffix\"\n *ngIf=\"searchSuffix\"\n >\n <div class=\"suffix-wrapper\">\n <aui-icon\n class=\"tw-text-n-4 tw-cursor-pointer\"\n [ngClass]=\"SEARCH_ICON_CLASS\"\n icon=\"magnifier\"\n (click)=\"doSearch(); $event.stopPropagation()\"\n ></aui-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{min-width:0}.multi-search{min-width:240px;height:max-content;display:flex;align-items:stretch;padding:0;overflow-y:auto}.multi-search .tags-width{width:calc(100% - 30px)}.multi-search .tags-width-with-delete{width:calc(100% - 48px)}.multi-search .search-clear{width:18px;display:flex;align-items:center}.multi-search .search-clear-icon ::ng-deep .aui-icon{border-radius:50%}.multi-search .search-clear-icon ::ng-deep .aui-icon:hover{color:rgb(var(--aui-color-n-10));background-color:rgb(var(--aui-color-n-5))!important}.multi-search .search-suffix{display:flex;text-align:center}.multi-search .search-suffix .suffix-wrapper{margin-top:4px;margin-bottom:4px;height:calc(100% - 8px);border-left:solid 1px rgb(var(--aui-color-n-7));min-width:30px;display:flex;align-items:center;justify-content:center}.multi-search .search-suffix .suffix-wrapper aui-icon:hover{color:rgb(var(--aui-color-blue))}.search-focus{border-color:rgb(var(--aui-color-primary));box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}\n"] }]
|
|
365
|
+
], template: "<div\n class=\"aui-input multi-search\"\n #multiSearch\n [ngClass]=\"{\n 'search-focus': focus$$ | async,\n }\"\n>\n <!-- \u5DF2\u9009\u62E9\u7C7B\u76EEtags -->\n <acl-multi-search-tags\n #tagsRef\n [ngClass]=\"{\n 'tags-width-with-delete': $any(existingConditions$ | async)?.length,\n 'tags-width': !$any(existingConditions$ | async)?.length,\n }\"\n [placeholder]=\"placeholder\"\n [conditionCreatable]=\"conditionCreatable\"\n [existingConditions]=\"existingConditions\"\n [conditionConfig]=\"conditionConfig\"\n (removeCondition)=\"removeCondition($event)\"\n (setConditionEditing)=\"setConditionEditing($event)\"\n (setConditionDeleting)=\"setConditionDeleting($event)\"\n [showFootAction]=\"showFootAction\"\n (search)=\"doSearch()\"\n (completed)=\"complete($event)\"\n >\n <!-- \u672B\u5C3E\u8F93\u5165\u6846 -->\n <acl-multi-search-action-input\n #inputRef\n class=\"input-wrapper\"\n [isEditing]=\"true\"\n [hidden]=\"addedInputShouldHidden$ | async\"\n [placeholder]=\"placeholder\"\n [conditionCreatable]=\"conditionCreatable\"\n [conditionConfig]=\"conditionConfig\"\n [existingConditions]=\"existingConditions$ | async\"\n [autoScroll]=\"autoScroll\"\n [(ngModel)]=\"addedCondition\"\n [showFootAction]=\"showFootAction\"\n (completed)=\"complete($event)\"\n (delete)=\"setConditionDeleting()\"\n (search)=\"doSearch()\"\n (focusIn)=\"setFocus(true)\"\n (focusOut)=\"manualBlur()\"\n ></acl-multi-search-action-input>\n </acl-multi-search-tags>\n\n <div class=\"search-suffix\">\n <div\n *ngIf=\"$any(existingConditions$ | async)?.length\"\n class=\"search-clear\"\n >\n <aui-icon\n class=\"tw-text-n-4 tw-cursor-pointer\"\n [ngClass]=\"CLEAR_ICON_CLASS\"\n icon=\"xmark_small\"\n size=\"14\"\n (click)=\"clearConditions(); doSearch(); $event.stopPropagation()\"\n ></aui-icon>\n </div>\n <div\n class=\"search-suffix\"\n *ngIf=\"searchSuffix\"\n >\n <div class=\"suffix-wrapper\">\n <aui-icon\n class=\"tw-text-n-4 tw-cursor-pointer\"\n [ngClass]=\"SEARCH_ICON_CLASS\"\n icon=\"magnifier\"\n (click)=\"doSearch(); $event.stopPropagation()\"\n ></aui-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{min-width:0}.multi-search{min-width:240px;height:max-content;display:flex;align-items:stretch;padding:0;overflow-y:auto}.multi-search .tags-width{width:calc(100% - 30px)}.multi-search .tags-width-with-delete{width:calc(100% - 48px)}.multi-search .search-clear{width:18px;display:flex;align-items:center}.multi-search .search-clear-icon ::ng-deep .aui-icon{border-radius:50%}.multi-search .search-clear-icon ::ng-deep .aui-icon:hover{color:rgb(var(--aui-color-n-10));background-color:rgb(var(--aui-color-n-5))!important}.multi-search .search-suffix{display:flex;text-align:center}.multi-search .search-suffix .suffix-wrapper{margin-top:4px;margin-bottom:4px;height:calc(100% - 8px);border-left:solid 1px rgb(var(--aui-color-n-7));min-width:30px;display:flex;align-items:center;justify-content:center}.multi-search .search-suffix .suffix-wrapper aui-icon:hover{color:rgb(var(--aui-color-blue))}.search-focus{border-color:rgb(var(--aui-color-primary));box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}\n"] }]
|
|
370
366
|
}], () => [{ type: i0.ChangeDetectorRef }], { placeholder: [{
|
|
371
367
|
type: Input
|
|
372
368
|
}], conditionCreatable: [{
|
|
@@ -396,4 +392,4 @@ __decorate([
|
|
|
396
392
|
args: ['multiSearch', { static: true }]
|
|
397
393
|
}] }); })();
|
|
398
394
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MultiSearchComponent, { className: "MultiSearchComponent" }); })();
|
|
399
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL211bHRpLXNlYXJjaC9mb3JtL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9tdWx0aS1zZWFyY2gvZm9ybS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEQsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLFVBQVUsRUFDVixJQUFJLEVBQ0osT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLE9BQU8sRUFDUCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFFBQVEsR0FDVCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7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b0JBQ1osUUFBUTtvQkFDUiwrQkFBK0I7b0JBQy9CLHdCQUF3QjtvQkFDeEIsS0FBSztvQkFDTCxJQUFJO29CQUNKLGNBQWM7b0JBQ2QsV0FBVztvQkFDWCxhQUFhO2lCQUNkO2tEQUlELFdBQVc7a0JBRFYsS0FBSztZQUlOLGtCQUFrQjtrQkFEakIsS0FBSztZQUtOLFVBQVU7a0JBRFQsS0FBSztZQUlOLFdBQVcsTUFJWCxlQUFlO2tCQURkLEtBQUs7WUFJTixnQkFBZ0IsTUFHaEIsVUFBVTtrQkFEVCxLQUFLO1lBSU4sWUFBWTtrQkFEWCxLQUFLO1lBS04sTUFBTTtrQkFETCxNQUFNO1lBSVAsY0FBYztrQkFEYixLQUFLO1lBS04sZ0JBQWdCO2tCQURmLE1BQU07WUFJUCxvQkFBb0I7a0JBRG5CLFNBQVM7bUJBQUMsVUFBVTtZQUlyQixhQUFhO2tCQURaLFNBQVM7bUJBQUMsU0FBUztZQUlwQixjQUFjO2tCQURiLFNBQVM7bUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7a0ZBNUMvQixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJY29uQ29tcG9uZW50LCBJbnB1dENvbXBvbmVudCwgVGFnQ29tcG9uZW50IH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VtcHR5LCBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBzY2FuLFxuICBTdWJqZWN0LFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIGlzRXF1YWwsXG4gIE9ic2VydmFibGVJbnB1dCxcbiAgcHVibGlzaFJlZixcbiAgUHVyZVBpcGUsXG59IGZyb20gJy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBNdWx0aVNlYXJjaEFjdGlvbklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uLWlucHV0L2NvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aVNlYXJjaFRhZ3NDb21wb25lbnQgfSBmcm9tICcuLi9tdWx0aS1zZWFyY2gtdGFncy9jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgU2VhcmNoQ29uZGl0aW9uQ29uZmlnLFxuICBTZWFyY2hDb25kaXRpb24sXG4gIFNlYXJjaENvbmRpdGlvbk1vZGVsLFxufSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09QRVJBVE9SOiBzdHJpbmcgPSAnPSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1tdWx0aS1zZWFyY2gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlcy5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBBc3luY1BpcGUsXG4gICAgVGFnQ29tcG9uZW50LFxuICAgIFB1cmVQaXBlLFxuICAgIE11bHRpU2VhcmNoQWN0aW9uSW5wdXRDb21wb25lbnQsXG4gICAgTXVsdGlTZWFyY2hUYWdzQ29tcG9uZW50LFxuICAgIE5nRm9yLFxuICAgIE5nSWYsXG4gICAgSW5wdXRDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgY29uZGl0aW9uQ3JlYXRhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gc2VhcmNoIHZhbHVlXG4gIEBJbnB1dCgpXG4gIGNvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbltdO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBjb25kaXRpb25zJCE6IE9ic2VydmFibGU8U2VhcmNoQ29uZGl0aW9uW10+O1xuXG4gIC8vIOexu+ebrumFjee9rlxuICBASW5wdXQoKVxuICBjb25kaXRpb25Db25maWc6IFNlYXJjaENvbmRpdGlvbkNvbmZpZ1tdO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBjb25kaXRpb25Db25maWckITogT2JzZXJ2YWJsZTxTZWFyY2hDb25kaXRpb25Db25maWdbXT47XG5cbiAgQElucHV0KClcbiAgYXV0b1Njcm9sbDogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgc2VhcmNoU3VmZml4OiBib29sZWFuID0gdHJ1ZTtcblxuICAvLyDmkJzntKLmk43kvZxcbiAgQE91dHB1dCgpXG4gIHNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoQ29uZGl0aW9uW10+KCk7XG5cbiAgQElucHV0KClcbiAgc2hvd0Zvb3RBY3Rpb246IGJvb2xlYW47XG5cbiAgLy8g5p2h5Lu25Y+Y5YyWXG4gIEBPdXRwdXQoKVxuICBjb25kaXRpb25zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hDb25kaXRpb25bXT4oKTtcblxuICBAVmlld0NoaWxkKCdpbnB1dFJlZicpXG4gIG5vcm1hbElucHV0Q29tcG9uZW50OiBNdWx0aVNlYXJjaEFjdGlvbklucHV0Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3RhZ3NSZWYnKVxuICB0YWdzQ29tcG9uZW50OiBNdWx0aVNlYXJjaFRhZ3NDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnbXVsdGlTZWFyY2gnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBtdWx0aVNlYXJjaFJlZjogRWxlbWVudFJlZjtcblxuICBhZGRlZENvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWw7XG5cbiAgLy8g5b2T5YmNbXVsdGktc2VhcmNo57uE5Lu25piv5ZCmZm9jdXNcbiAgZm9jdXMkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGRlc3Ryb3kkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgYWN0aW9uU2Nhbm5lciQkID0gbmV3IFN1YmplY3Q8XG4gICAgKGl0ZW1zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdXG4gID4oKTtcblxuICBleGlzdGluZ0NvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW10gPSBbXTtcbiAgZXhpc3RpbmdDb25kaXRpb25zJCA9IG1lcmdlKFxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuY29uZGl0aW9ucyQsIHRoaXMuY29uZGl0aW9uQ29uZmlnJF0pLnBpcGUoXG4gICAgICBtYXAoKFtjb25kaXRpb25zLCBjb25kaXRpb25Db25maWddKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlcyA9XG4gICAgICAgICAgY29uZGl0aW9ucz8ubWFwKGNvbmRpdGlvbiA9PiB7XG4gICAgICAgICAgICBjb25zdCBleGlzdCA9IHRoaXMuZXhpc3RpbmdDb25kaXRpb25zPy5maW5kKFxuICAgICAgICAgICAgICBleGlzdCA9PiBleGlzdC5jb25kaXRpb24udmFsdWUgPT09IGNvbmRpdGlvbi5jb25kaXRpb24sXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gY29uZGl0aW9uQ29uZmlnPy5maW5kKFxuICAgICAgICAgICAgICBjb25maWcgPT4gY29uZmlnLmNvbmRpdGlvbi52YWx1ZSA9PT0gY29uZGl0aW9uLmNvbmRpdGlvbixcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIOaJgOe7p+aJv+eahOaVsOaNru+8jOiLpeW3suWtmOWcqGV4aXN077yM5YiZ57un5om/ZXhpc3TvvJvoi6XkuI3lrZjlnKjvvIzliJnnu6fmib9jb25maWdcbiAgICAgICAgICAgIC8vIOatpOWkhOeahOe7p+aJv+aYr+S4uuS6humYsuatouWklueVjGNvbmRpdGlvbnPmlbDmja7nmoTlj5jljJblr7zoh7Tmk43kvZznirbmgIHliLfmlrBcbiAgICAgICAgICAgIC8vIOWboOatpO+8jOmZpOS6hmNvbmRpdGlvbnPmlbDmja7lpJbnmoTpmYTliqDmlbDmja7vvIzpg73lupTor6Xnu6fmib9cbiAgICAgICAgICAgIGNvbnN0IGluaGVyaXQgPSB7XG4gICAgICAgICAgICAgIC4uLmV4aXN0LFxuICAgICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gaXNFbXB0eShpbmhlcml0KVxuICAgICAgICAgICAgICA/ICh7XG4gICAgICAgICAgICAgICAgICBjb25kaXRpb246IHsgdmFsdWU6IGNvbmRpdGlvbi5jb25kaXRpb24gfSxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBjb25kaXRpb24ub3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlczogY29uZGl0aW9uLnZhbHVlcz8ubWFwKHZhbHVlID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICAgIH0gYXMgU2VhcmNoQ29uZGl0aW9uTW9kZWwpXG4gICAgICAgICAgICAgIDogKHtcbiAgICAgICAgICAgICAgICAgIC4uLmluaGVyaXQsXG4gICAgICAgICAgICAgICAgICBvcGVyYXRvcjogY29uZGl0aW9uLm9wZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZXM6IGNvbmRpdGlvbi52YWx1ZXM/Lm1hcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbmQgPSBpbmhlcml0LnZhbHVlcz8uZmluZChcbiAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0VmFsdWUgPT4gaW5oZXJpdFZhbHVlLnZhbHVlID09PSB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbmRcbiAgICAgICAgICAgICAgICAgICAgICA/IHsgLi4uZmluZCB9XG4gICAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIH0gYXMgU2VhcmNoQ29uZGl0aW9uTW9kZWwpO1xuICAgICAgICAgIH0pIHx8IFtdO1xuICAgICAgICByZXR1cm4gKF86IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pID0+IHJlcztcbiAgICAgIH0pLFxuICAgICksXG4gICAgdGhpcy5hY3Rpb25TY2FubmVyJCQsXG4gICkucGlwZShcbiAgICBzY2FuKChhY2MsIGN1cikgPT4gY3VyKGFjYyksIFtdIGFzIFNlYXJjaENvbmRpdGlvbk1vZGVsW10pLFxuICAgIHRhcChleGlzdGluZ0NvbmRpdGlvbnMgPT4ge1xuICAgICAgdGhpcy5leGlzdGluZ0NvbmRpdGlvbnMgPSBleGlzdGluZ0NvbmRpdGlvbnM7XG4gICAgfSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIG5vRWRpdGluZ0NvbmRpdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gIG5vRWRpdGluZ0NvbmRpdGlvbiQgPSB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyQucGlwZShcbiAgICBtYXAoZXhpc3RpbmdDb25kaXRpb25zID0+XG4gICAgICBleGlzdGluZ0NvbmRpdGlvbnM/LmV2ZXJ5KGNvbmRpdGlvbiA9PiAhY29uZGl0aW9uLmlzRWRpdGluZyksXG4gICAgKSxcbiAgICB0YXAobm9FZGl0aW5nQ29uZGl0aW9uID0+ICh0aGlzLm5vRWRpdGluZ0NvbmRpdGlvbiA9IG5vRWRpdGluZ0NvbmRpdGlvbikpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBub0RlbGV0aW5nQ29uZGl0aW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgbm9EZWxldGluZ0NvbmRpdGlvbiQgPSB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyQucGlwZShcbiAgICBtYXAoZXhpc3RpbmdDb25kaXRpb25zID0+XG4gICAgICBleGlzdGluZ0NvbmRpdGlvbnM/LmV2ZXJ5KGNvbmRpdGlvbiA9PiAhY29uZGl0aW9uLmlzRGVsZXRpbmcpLFxuICAgICksXG4gICAgdGFwKFxuICAgICAgbm9EZWxldGluZ0NvbmRpdGlvbiA9PiAodGhpcy5ub0RlbGV0aW5nQ29uZGl0aW9uID0gbm9EZWxldGluZ0NvbmRpdGlvbiksXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgYWRkZWRJbnB1dFNob3VsZEhpZGRlbiQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm5vRWRpdGluZ0NvbmRpdGlvbiQsXG4gICAgdGhpcy5ub0RlbGV0aW5nQ29uZGl0aW9uJCxcbiAgICB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbbm9FZGl0aW5nQ29uZGl0aW9uLCBub0RlbGV0aW5nQ29uZGl0aW9uLCBleGlzdGluZ0NvbmRpdGlvbnNdKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAoIW5vRWRpdGluZ0NvbmRpdGlvbiB8fCAhbm9EZWxldGluZ0NvbmRpdGlvbikgJiZcbiAgICAgICAgZXhpc3RpbmdDb25kaXRpb25zLmxlbmd0aCAhPT0gMFxuICAgICAgKTtcbiAgICB9KSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgZ2V0IGlucHV0Q29tcG9uZW50KCkge1xuICAgIHJldHVybiB0aGlzLm5vRGVsZXRpbmdDb25kaXRpb24gJiYgdGhpcy5ub0VkaXRpbmdDb25kaXRpb25cbiAgICAgID8gdGhpcy5ub3JtYWxJbnB1dENvbXBvbmVudFxuICAgICAgOiB0aGlzLnRhZ3NDb21wb25lbnQ/LmlucHV0Q29tcG9uZW50O1xuICB9XG5cbiAgQ0xFQVJfSUNPTl9DTEFTUyA9ICdzZWFyY2gtY2xlYXItaWNvbic7XG5cbiAgU0VBUkNIX0lDT05fQ0xBU1MgPSAnc2VhcmNoLWljb24nO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5leGlzdGluZ0NvbmRpdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGE/Lmxlbmd0aCA9PT0gYj8ubGVuZ3RoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZXhpc3RpbmdDb25kaXRpb25zID0+IHtcbiAgICAgICAgdGhpcy5jb25kaXRpb25zQ2hhbmdlLmVtaXQodGhpcy5nZXRDb25kaXRpb25Nb2RlbChleGlzdGluZ0NvbmRpdGlvbnMpKTtcbiAgICAgIH0pO1xuICAgIC8vIOatpOWkhOeahGNsaWNr5LqL5Lu255uR5ZCs5L2/55So5LqG5o2V6I636ICM6Z2e5YaS5rOh77yM5piv5Li65LqG6K6p5LqL5Lu26Kem5Y+R55qE5pe25py65YWI5LqOdGFnLmNsaWNrXG4gICAgLy8g6IuldGFnLmNsaWNr5YWI6Kem5Y+R77yM5Lya5a+86Ie0ZWxlbWVudC5jb250YWlucygp5Yik5pat5Ye66ZSZXG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LmJvZHksICdjbGljaycsIHsgY2FwdHVyZTogdHJ1ZSB9KVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgRWxlbWVudDtcblxuICAgICAgICBpZiAodGhpcy5pc1NlYXJjaEJ0bih0YXJnZXQpKSB7XG4gICAgICAgICAgdGhpcy5tYW51YWxDb21wbGV0ZShmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgdGhpcy5pbnB1dENvbXBvbmVudC50b29sVGlwSGlkZSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm11bHRpU2VhcmNoUmVmPy5uYXRpdmVFbGVtZW50Py5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgICAgLy8g5b2T54K55Ye75Yy65Z+f5Li6bXVsdGktc2VhcmNo57uE5Lu277yM6Ieq5Yqo6IGa54SmXG5cbiAgICAgICAgICAvLyDlr7nkuo7mk43kvZzmjInpkq7vvIzlj6rlgZpoaWRkZW4gdG9vbFRpcFxuICAgICAgICAgIGlmICh0aGlzLm5vdEFjdGlvbkVsZW1lbnQodGFyZ2V0KSkge1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IHRoaXMuaW5wdXRDb21wb25lbnQ/LmlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgICBjb25zdCBpc0ZvY3VzID0gdGhpcy5mb2N1cyQkLnZhbHVlO1xuICAgICAgICAgICAgICB0aGlzLm1hbnVhbEZvY3VzKGlzRm9jdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pbnB1dENvbXBvbmVudC50b29sVGlwU2hvdygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1hbnVhbEZvY3VzKHRydWUpO1xuXG4gICAgICAgICAgICAvLyB0aGlzLmlucHV0Q29tcG9uZW50LnRvb2xUaXBIaWRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIOW9k+eCueWHu+WMuuWfn+S4uumdnnRvb2x0aXDnmoTlhbbku5bljLrln5/ml7bvvIzoh6rliqjmlLbnvKlcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm5vdFRvb2x0aXBDb250ZW50KHRhcmdldCkpIHtcbiAgICAgICAgICB0aGlzLm1hbnVhbEJsdXIoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGlzU2VhcmNoQnRuKGVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja0VsZW1lbnQoZWxlbWVudCwgZWxlbWVudCA9PlxuICAgICAgZWxlbWVudD8uY2xhc3NOYW1lPy5pbmNsdWRlcz8uKHRoaXMuU0VBUkNIX0lDT05fQ0xBU1MpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG5vdEFjdGlvbkVsZW1lbnQoZWxlbWVudDogRWxlbWVudCkge1xuICAgIHJldHVybiAhdGhpcy5jaGVja0VsZW1lbnQoXG4gICAgICBlbGVtZW50LFxuICAgICAgZWxlbWVudCA9PlxuICAgICAgICBlbGVtZW50Py5jbGFzc05hbWU/LmluY2x1ZGVzPy4odGhpcy5DTEVBUl9JQ09OX0NMQVNTKSB8fFxuICAgICAgICBlbGVtZW50Py5jbGFzc05hbWU/LmluY2x1ZGVzPy4odGhpcy5TRUFSQ0hfSUNPTl9DTEFTUykgfHxcbiAgICAgICAgZWxlbWVudD8uY2xhc3NOYW1lPy5pbmNsdWRlcz8uKCdhdWktdGFnX19jbG9zZScpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG5vdFRvb2x0aXBDb250ZW50KGVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgICByZXR1cm4gIXRoaXMuY2hlY2tFbGVtZW50KFxuICAgICAgZWxlbWVudCxcbiAgICAgIGVsZW1lbnQgPT4gZWxlbWVudC50YWdOYW1lID09PSAnQVVJLVRPT0xUSVAnLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRWxlbWVudChlbGVtZW50OiBFbGVtZW50LCBmbjogKGU6IEVsZW1lbnQpID0+IGJvb2xlYW4pIHtcbiAgICB3aGlsZSAoZWxlbWVudCAmJiAhZm4oZWxlbWVudCkpIHtcbiAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhZWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgbWFudWFsQ29tcGxldGUoXG4gICAgdG9Db250aW51ZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIG1hbnVhbEZvY3VzOiBib29sZWFuID0gZmFsc2UsXG4gICkge1xuICAgIHRoaXMuaW5wdXRDb21wb25lbnQ/LmlmQ29tcGxldGUodG9Db250aW51ZSwgbWFudWFsRm9jdXMpO1xuICB9XG5cbiAgbWFudWFsRm9jdXMoc2lsZW5jZT86IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldEZvY3VzKHRydWUpO1xuICAgIHRoaXMuaW5wdXRDb21wb25lbnQ/Lm1hbnVhbEZvY3VzKHNpbGVuY2UpO1xuICB9XG5cbiAgc2V0Rm9jdXMoZm9jdXM6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmZvY3VzJCQubmV4dChmb2N1cyk7XG4gIH1cblxuICBtYW51YWxCbHVyKCkge1xuICAgIHRoaXMuc2V0Rm9jdXMoZmFsc2UpO1xuICAgIHRoaXMuaW5wdXRDb21wb25lbnQ/Lm1hbnVhbEJsdXIoKTtcbiAgfVxuXG4gIC8vIOaQnOe0ouaTjeS9nFxuICBkb1NlYXJjaCgpIHtcbiAgICB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyRcbiAgICAgIC5waXBlKHRha2UoMSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCkpXG4gICAgICAuc3Vic2NyaWJlKGV4aXN0cyA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoLmVtaXQoXG4gICAgICAgICAgdGhpcy5nZXRDb25kaXRpb25Nb2RlbChcbiAgICAgICAgICAgIGV4aXN0cz8uZmlsdGVyKGV4aXN0ID0+ICF0aGlzLmNvbmRpdGlvbkluQWN0aW9uKGV4aXN0KSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLy8g5riF6Zmk5omA5pyJ5bey6YCJ5p2h5Lu2XG4gIGNsZWFyQ29uZGl0aW9ucygpIHtcbiAgICB0aGlzLmFkZGVkQ29uZGl0aW9uID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KChfOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiBbXSk7XG4gIH1cblxuICAvLyDnp7vpmaTlvZPliY3mnaHku7ZcbiAgcmVtb3ZlQ29uZGl0aW9uKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICBjb25zdCByZW1vdmUgPSAoZXhpc3RpbmdDb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiB7XG4gICAgICBjb25zdCBpZHggPSBleGlzdGluZ0NvbmRpdGlvbnMuZmluZEluZGV4KFxuICAgICAgICBjb24gPT4gY29uLmNvbmRpdGlvbi52YWx1ZSA9PT0gY29uZGl0aW9uLmNvbmRpdGlvbi52YWx1ZSxcbiAgICAgICk7XG4gICAgICBleGlzdGluZ0NvbmRpdGlvbnMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICByZXR1cm4gWy4uLmV4aXN0aW5nQ29uZGl0aW9uc107XG4gICAgfTtcbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KHJlbW92ZSk7XG4gIH1cblxuICAvLyDmm7TmlrDmnaHku7ZcbiAgdXBkYXRlQ29uZGl0aW9uKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBfdXBkYXRlID0gKGV4aXN0aW5nQ29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkgPT4ge1xuICAgICAgaWYgKGNvbmRpdGlvbikge1xuICAgICAgICBleGlzdGluZ0NvbmRpdGlvbnMuc3BsaWNlKGluZGV4LCAxLCBjb25kaXRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhpc3RpbmdDb25kaXRpb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gWy4uLmV4aXN0aW5nQ29uZGl0aW9uc107XG4gICAgfTtcblxuICAgIHRoaXMuYWN0aW9uU2Nhbm5lciQkLm5leHQoX3VwZGF0ZSk7XG4gIH1cblxuICAvLyDmt7vliqBjb25kaXRpb25cbiAgYWRkQ29uZGl0aW9uKGFjdGl2ZUNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICBjb25zdCBfYWRkID0gKGV4aXN0aW5nQ29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkgPT4ge1xuICAgICAgZXhpc3RpbmdDb25kaXRpb25zLnB1c2goYWN0aXZlQ29uZGl0aW9uKTtcbiAgICAgIHJldHVybiBbLi4uZXhpc3RpbmdDb25kaXRpb25zXTtcbiAgICB9O1xuXG4gICAgdGhpcy5hY3Rpb25TY2FubmVyJCQubmV4dChfYWRkKTtcbiAgfVxuXG4gIC8vIOiuvue9rmNvbmRpdGlvbueahOeKtuaAgeS4uue8lui+keaAgVxuICBzZXRDb25kaXRpb25FZGl0aW5nKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICBpZiAodGhpcy5pc0dyYW1tYXJDdXN0b21Db25kaXRpb24oY29uZGl0aW9uKSkgcmV0dXJuO1xuICAgIGNvbnN0IF91cGRhdGUgPSAoZXhpc3RpbmdDb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiB7XG4gICAgICBpZiAoIWV4aXN0aW5nQ29uZGl0aW9ucykgcmV0dXJuO1xuICAgICAgY29uc3QgaWR4ID0gZXhpc3RpbmdDb25kaXRpb25zLmZpbmRJbmRleChcbiAgICAgICAgY29uID0+IGNvbi5jb25kaXRpb24udmFsdWUgPT09IGNvbmRpdGlvbi5jb25kaXRpb24udmFsdWUsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjb25kaXRpb25zRXhjZXB0Q3VyID0gW1xuICAgICAgICAuLi4oZXhpc3RpbmdDb25kaXRpb25zLnNsaWNlKDAsIGlkeCkgfHwgW10pLFxuICAgICAgICAuLi4oZXhpc3RpbmdDb25kaXRpb25zLnNsaWNlKGlkeCArIDEpIHx8IFtdKSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IGFscmVhZHlIYXZlQWN0aW9uID0gY29uZGl0aW9uc0V4Y2VwdEN1ci5zb21lKGNvbiA9PlxuICAgICAgICB0aGlzLmNvbmRpdGlvbkluQWN0aW9uKGNvbiksXG4gICAgICApO1xuICAgICAgLy8g5b2T5bey57uP5a2Y5Zyo5pON5L2c5Lit55qEY29uZGl0aW9u5pe277yM5Lya57un57ut57u05oqk5LmL5YmN5pON5L2c77yM5Lit5q2i5paw55qE5pON5L2c6KGM5Li6XG4gICAgICAvLyDkuIrov7DlpITnkIbpgLvovpHkuLvopoHmmK/kuLrkuobpgb/lhY3mk43kvZzliLDkuIDljYrvvIjmr5TlpoLmnKrpgInmi6lvcGVyYXRvcuOAgeacqumAieaLqWNvbmRpdGlvbuaXtu+8ieWwseWIh+aNouiHs+WPpuS4gOS4qmNvbmRpdGlvbuaTjeS9nO+8jOatpOaXtuivpeacquWujOaIkOeahOaTjeS9nOW6lOivpeWmguS9leWkhOeQhu+8jOaaguacque7meWumuOAglxuICAgICAgaWYgKGFscmVhZHlIYXZlQWN0aW9uIHx8IHRoaXMuYWRkZWRDb25kaXRpb24pIHJldHVybiBleGlzdGluZ0NvbmRpdGlvbnM7XG5cbiAgICAgIGNvbnN0IGZpbmQgPSBleGlzdGluZ0NvbmRpdGlvbnNbaWR4XTtcbiAgICAgIC8vIOWwhuW9k+WJjeaJgOaTjeS9nGNvbmRpdGlvbueahOeKtuaAgemHjee9ruS4umVkaXRpbmdcbiAgICAgIGZpbmQuaXNEZWxldGluZyA9IGZhbHNlO1xuICAgICAgZmluZC5pc0VkaXRpbmcgPSB0cnVlO1xuXG4gICAgICBmaW5kLmFjdGlvbk1vZGVsID0gY2xvbmVEZWVwKGZpbmQpO1xuICAgICAgcmV0dXJuIFsuLi5leGlzdGluZ0NvbmRpdGlvbnNdO1xuICAgIH07XG5cbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KF91cGRhdGUpO1xuICB9XG5cbiAgLy8g6K6+572uY29uZGl0aW9u55qE54q25oCB5Li65Yig6Zmk5oCBXG4gIHNldENvbmRpdGlvbkRlbGV0aW5nKGluZGV4PzogbnVtYmVyKSB7XG4gICAgY29uc3QgX2RlbGV0ZSA9IChleGlzdGluZ0NvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pID0+IHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IE51bWJlci5pc0ludGVnZXIoaW5kZXgpXG4gICAgICAgID8gZXhpc3RpbmdDb25kaXRpb25zW2luZGV4XVxuICAgICAgICA6IGV4aXN0aW5nQ29uZGl0aW9ucy5hdCgtMSk7XG5cbiAgICAgIGlmIChjb25kaXRpb24pIHtcbiAgICAgICAgc2V0KGNvbmRpdGlvbiwgJ2lzRGVsZXRpbmcnLCB0cnVlKTtcbiAgICAgICAgY29uZGl0aW9uLmFjdGlvbk1vZGVsID0gY2xvbmVEZWVwKGNvbmRpdGlvbik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbLi4uZXhpc3RpbmdDb25kaXRpb25zXTtcbiAgICB9O1xuICAgIHRoaXMuYWN0aW9uU2Nhbm5lciQkLm5leHQoX2RlbGV0ZSk7XG4gIH1cblxuICBjb21wbGV0ZSh7XG4gICAgYWN0aXZlQ29uZGl0aW9uLFxuICAgIHRvQ29udGludWUsXG4gICAgbWFudWFsRm9jdXMsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICBhY3RpdmVDb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsO1xuICAgIHRvQ29udGludWU/OiBib29sZWFuO1xuICAgIG1hbnVhbEZvY3VzPzogYm9vbGVhbjtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkge1xuICAgIGlmIChhY3RpdmVDb25kaXRpb24pIHtcbiAgICAgIGFjdGl2ZUNvbmRpdGlvbi5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICAgIGFjdGl2ZUNvbmRpdGlvbi5pc0RlbGV0aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKE51bWJlci5pc0ludGVnZXIoaW5kZXgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbmRpdGlvbihhY3RpdmVDb25kaXRpb24sIGluZGV4KTtcbiAgICB9IGVsc2UgaWYgKGFjdGl2ZUNvbmRpdGlvbikge1xuICAgICAgdGhpcy5hZGRDb25kaXRpb24oYWN0aXZlQ29uZGl0aW9uKTtcbiAgICB9XG4gICAgLy8g6Ieq5Yqo6IGa54SmXG4gICAgaWYgKG1hbnVhbEZvY3VzKSB7XG4gICAgICB0aGlzLm1hbnVhbEZvY3VzKCF0b0NvbnRpbnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzR3JhbW1hckN1c3RvbUNvbmRpdGlvbihjb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5Db25maWcgPSB0aGlzLmNvbmRpdGlvbkNvbmZpZy5zb21lKGNvbmZpZyA9PlxuICAgICAgaXNFcXVhbChjb25kaXRpb24uY29uZGl0aW9uLCBjb25maWcuY29uZGl0aW9uKSxcbiAgICApO1xuICAgIC8vIOWmguaenOW9k+WJjWNvbmRpdGlvbuS4jeWcqGNvbmZpZ+S4re+8jOS4lG9wZXJhdG9y5LiN5Li66buY6K6k5YC877yM5YiZ5Luj6KGo5b2T5YmNY29uZGl0aW9u5piv55So5oi36YCa6L+H6K+t5rOV6Ieq5a6a5LmJ55qE77yM5q2k5pe25LiN5YWB6K646YCa6L+HVUnkv67mlLlcbiAgICAvLyDogIPomZHliLDmnKrmnaXkvJrlhYHorrjnlKjmiLfovpPlhaXliJvlu7pjb25kaXRpb27vvIzmraTml7bmmK/lhYHorrjnlKjmiLfpgJrov4dVSeWGjeasoeS/ruaUueeahOOAguatpOexu+aDheWGteeahOeJueaAp++8miFpbkNvbmZpZyAmJiBvcGVyYXRvciA9PT0gREVGQVVMVF9PUEVSQVRPUlxuICAgIHJldHVybiAhaW5Db25maWcgJiYgY29uZGl0aW9uLm9wZXJhdG9yICE9PSBERUZBVUxUX09QRVJBVE9SO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25kaXRpb25Nb2RlbChjb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbnM/Lm1hcChjb25kaXRpb24gPT4gKHtcbiAgICAgIGNvbmRpdGlvbjogY29uZGl0aW9uLmNvbmRpdGlvbi52YWx1ZSxcbiAgICAgIG9wZXJhdG9yOiBjb25kaXRpb24ub3BlcmF0b3IsXG4gICAgICB2YWx1ZXM6IGNvbmRpdGlvbi5zZWxlY3RlZFZhbHVlcz8ubWFwKHZhbHVlID0+IHZhbHVlLnZhbHVlKSB8fCBbXSxcbiAgICB9KSk7XG4gIH1cblxuICBjb25kaXRpb25JbkFjdGlvbihjb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsKSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbi5pc0VkaXRpbmcgfHwgY29uZGl0aW9uLmlzRGVsZXRpbmc7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJhdWktaW5wdXQgbXVsdGktc2VhcmNoXCJcbiAgI211bHRpU2VhcmNoXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2VhcmNoLWZvY3VzJzogZm9jdXMkJCB8IGFzeW5jLFxuICB9XCJcbj5cbiAgPCEtLSDlt7LpgInmi6nnsbvnm650YWdzIC0tPlxuICA8YWNsLW11bHRpLXNlYXJjaC10YWdzXG4gICAgI3RhZ3NSZWZcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAndGFncy13aWR0aC13aXRoLWRlbGV0ZSc6ICRhbnkoZXhpc3RpbmdDb25kaXRpb25zJCB8IGFzeW5jKT8ubGVuZ3RoLFxuICAgICAgJ3RhZ3Mtd2lkdGgnOiAhJGFueShleGlzdGluZ0NvbmRpdGlvbnMkIHwgYXN5bmMpPy5sZW5ndGgsXG4gICAgfVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbY29uZGl0aW9uQ3JlYXRhYmxlXT1cImNvbmRpdGlvbkNyZWF0YWJsZVwiXG4gICAgW2V4aXN0aW5nQ29uZGl0aW9uc109XCJleGlzdGluZ0NvbmRpdGlvbnNcIlxuICAgIFtjb25kaXRpb25Db25maWddPVwiY29uZGl0aW9uQ29uZmlnXCJcbiAgICAocmVtb3ZlQ29uZGl0aW9uKT1cInJlbW92ZUNvbmRpdGlvbigkZXZlbnQpXCJcbiAgICAoc2V0Q29uZGl0aW9uRWRpdGluZyk9XCJzZXRDb25kaXRpb25FZGl0aW5nKCRldmVudClcIlxuICAgIChzZXRDb25kaXRpb25EZWxldGluZyk9XCJzZXRDb25kaXRpb25EZWxldGluZygkZXZlbnQpXCJcbiAgICBbc2hvd0Zvb3RBY3Rpb25dPVwic2hvd0Zvb3RBY3Rpb25cIlxuICAgIChzZWFyY2gpPVwiZG9TZWFyY2goKVwiXG4gICAgKGNvbXBsZXRlZCk9XCJjb21wbGV0ZSgkZXZlbnQpXCJcbiAgPlxuICAgIDwhLS0g5pyr5bC+6L6T5YWl5qGGIC0tPlxuICAgIDxhY2wtbXVsdGktc2VhcmNoLWFjdGlvbi1pbnB1dFxuICAgICAgI2lucHV0UmVmXG4gICAgICBjbGFzcz1cImlucHV0LXdyYXBwZXJcIlxuICAgICAgW2lzRWRpdGluZ109XCJ0cnVlXCJcbiAgICAgIFtoaWRkZW5dPVwiYWRkZWRJbnB1dFNob3VsZEhpZGRlbiQgfCBhc3luY1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW2NvbmRpdGlvbkNyZWF0YWJsZV09XCJjb25kaXRpb25DcmVhdGFibGVcIlxuICAgICAgW2NvbmRpdGlvbkNvbmZpZ109XCJjb25kaXRpb25Db25maWdcIlxuICAgICAgW2V4aXN0aW5nQ29uZGl0aW9uc109XCJleGlzdGluZ0NvbmRpdGlvbnMkIHwgYXN5bmNcIlxuICAgICAgW2F1dG9TY3JvbGxdPVwiYXV0b1Njcm9sbFwiXG4gICAgICBbKG5nTW9kZWwpXT1cImFkZGVkQ29uZGl0aW9uXCJcbiAgICAgIFtzaG93Rm9vdEFjdGlvbl09XCJzaG93Rm9vdEFjdGlvblwiXG4gICAgICAoY29tcGxldGVkKT1cImNvbXBsZXRlKCRldmVudClcIlxuICAgICAgKGRlbGV0ZSk9XCJzZXRDb25kaXRpb25EZWxldGluZygpXCJcbiAgICAgIChzZWFyY2gpPVwiZG9TZWFyY2goKVwiXG4gICAgPjwvYWNsLW11bHRpLXNlYXJjaC1hY3Rpb24taW5wdXQ+XG4gIDwvYWNsLW11bHRpLXNlYXJjaC10YWdzPlxuXG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtc3VmZml4XCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIkYW55KGV4aXN0aW5nQ29uZGl0aW9ucyQgfCBhc3luYyk/Lmxlbmd0aFwiXG4gICAgICBjbGFzcz1cInNlYXJjaC1jbGVhclwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgIGNsYXNzPVwidHctdGV4dC1uLTQgdHctY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICBbbmdDbGFzc109XCJDTEVBUl9JQ09OX0NMQVNTXCJcbiAgICAgICAgaWNvbj1cInhtYXJrX3NtYWxsXCJcbiAgICAgICAgc2l6ZT1cIjE0XCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyQ29uZGl0aW9ucygpOyBkb1NlYXJjaCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzZWFyY2gtc3VmZml4XCJcbiAgICAgICpuZ0lmPVwic2VhcmNoU3VmZml4XCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic3VmZml4LXdyYXBwZXJcIj5cbiAgICAgICAgPGF1aS1pY29uXG4gICAgICAgICAgY2xhc3M9XCJ0dy10ZXh0LW4tNCB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiU0VBUkNIX0lDT05fQ0xBU1NcIlxuICAgICAgICAgIGljb249XCJtYWduaWZpZXJcIlxuICAgICAgICAgIChjbGljayk9XCJkb1NlYXJjaCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICA+PC9hdWktaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
395
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL211bHRpLXNlYXJjaC9mb3JtL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9tdWx0aS1zZWFyY2gvZm9ybS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEQsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLFVBQVUsRUFDVixJQUFJLEVBQ0osT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0UsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFNMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7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O29CQUNULCtCQUErQjtvQkFDL0Isd0JBQXdCO29CQUN4QixJQUFJO29CQUNKLFdBQVc7b0JBQ1gsYUFBYTtpQkFDZDtrREFJRCxXQUFXO2tCQURWLEtBQUs7WUFJTixrQkFBa0I7a0JBRGpCLEtBQUs7WUFLTixVQUFVO2tCQURULEtBQUs7WUFJTixXQUFXLE1BSVgsZUFBZTtrQkFEZCxLQUFLO1lBSU4sZ0JBQWdCLE1BR2hCLFVBQVU7a0JBRFQsS0FBSztZQUlOLFlBQVk7a0JBRFgsS0FBSztZQUtOLE1BQU07a0JBREwsTUFBTTtZQUlQLGNBQWM7a0JBRGIsS0FBSztZQUtOLGdCQUFnQjtrQkFEZixNQUFNO1lBSVAsb0JBQW9CO2tCQURuQixTQUFTO21CQUFDLFVBQVU7WUFJckIsYUFBYTtrQkFEWixTQUFTO21CQUFDLFNBQVM7WUFJcEIsY0FBYztrQkFEYixTQUFTO21CQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7O2tGQTVDL0Isb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VtcHR5LCBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBzY2FuLFxuICBTdWJqZWN0LFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGlzRXF1YWwsIE9ic2VydmFibGVJbnB1dCwgcHVibGlzaFJlZiB9IGZyb20gJy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBNdWx0aVNlYXJjaEFjdGlvbklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uLWlucHV0L2NvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aVNlYXJjaFRhZ3NDb21wb25lbnQgfSBmcm9tICcuLi9tdWx0aS1zZWFyY2gtdGFncy9jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgU2VhcmNoQ29uZGl0aW9uQ29uZmlnLFxuICBTZWFyY2hDb25kaXRpb24sXG4gIFNlYXJjaENvbmRpdGlvbk1vZGVsLFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBERUZBVUxUX09QRVJBVE9SIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtbXVsdGktc2VhcmNoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZXMuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgQXN5bmNQaXBlLFxuICAgIE11bHRpU2VhcmNoQWN0aW9uSW5wdXRDb21wb25lbnQsXG4gICAgTXVsdGlTZWFyY2hUYWdzQ29tcG9uZW50LFxuICAgIE5nSWYsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgY29uZGl0aW9uQ3JlYXRhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gc2VhcmNoIHZhbHVlXG4gIEBJbnB1dCgpXG4gIGNvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbltdO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBjb25kaXRpb25zJCE6IE9ic2VydmFibGU8U2VhcmNoQ29uZGl0aW9uW10+O1xuXG4gIC8vIOexu+ebrumFjee9rlxuICBASW5wdXQoKVxuICBjb25kaXRpb25Db25maWc6IFNlYXJjaENvbmRpdGlvbkNvbmZpZ1tdO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBjb25kaXRpb25Db25maWckITogT2JzZXJ2YWJsZTxTZWFyY2hDb25kaXRpb25Db25maWdbXT47XG5cbiAgQElucHV0KClcbiAgYXV0b1Njcm9sbDogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgc2VhcmNoU3VmZml4OiBib29sZWFuID0gdHJ1ZTtcblxuICAvLyDmkJzntKLmk43kvZxcbiAgQE91dHB1dCgpXG4gIHNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoQ29uZGl0aW9uW10+KCk7XG5cbiAgQElucHV0KClcbiAgc2hvd0Zvb3RBY3Rpb246IGJvb2xlYW47XG5cbiAgLy8g5p2h5Lu25Y+Y5YyWXG4gIEBPdXRwdXQoKVxuICBjb25kaXRpb25zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hDb25kaXRpb25bXT4oKTtcblxuICBAVmlld0NoaWxkKCdpbnB1dFJlZicpXG4gIG5vcm1hbElucHV0Q29tcG9uZW50OiBNdWx0aVNlYXJjaEFjdGlvbklucHV0Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3RhZ3NSZWYnKVxuICB0YWdzQ29tcG9uZW50OiBNdWx0aVNlYXJjaFRhZ3NDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnbXVsdGlTZWFyY2gnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBtdWx0aVNlYXJjaFJlZjogRWxlbWVudFJlZjtcblxuICBhZGRlZENvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWw7XG5cbiAgLy8g5b2T5YmNbXVsdGktc2VhcmNo57uE5Lu25piv5ZCmZm9jdXNcbiAgZm9jdXMkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGRlc3Ryb3kkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgYWN0aW9uU2Nhbm5lciQkID0gbmV3IFN1YmplY3Q8XG4gICAgKGl0ZW1zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdXG4gID4oKTtcblxuICBleGlzdGluZ0NvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW10gPSBbXTtcbiAgZXhpc3RpbmdDb25kaXRpb25zJCA9IG1lcmdlKFxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuY29uZGl0aW9ucyQsIHRoaXMuY29uZGl0aW9uQ29uZmlnJF0pLnBpcGUoXG4gICAgICBtYXAoKFtjb25kaXRpb25zLCBjb25kaXRpb25Db25maWddKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlcyA9XG4gICAgICAgICAgY29uZGl0aW9ucz8ubWFwKGNvbmRpdGlvbiA9PiB7XG4gICAgICAgICAgICBjb25zdCBleGlzdCA9IHRoaXMuZXhpc3RpbmdDb25kaXRpb25zPy5maW5kKFxuICAgICAgICAgICAgICBleGlzdCA9PiBleGlzdC5jb25kaXRpb24udmFsdWUgPT09IGNvbmRpdGlvbi5jb25kaXRpb24sXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gY29uZGl0aW9uQ29uZmlnPy5maW5kKFxuICAgICAgICAgICAgICBjb25maWcgPT4gY29uZmlnLmNvbmRpdGlvbi52YWx1ZSA9PT0gY29uZGl0aW9uLmNvbmRpdGlvbixcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIOaJgOe7p+aJv+eahOaVsOaNru+8jOiLpeW3suWtmOWcqGV4aXN077yM5YiZ57un5om/ZXhpc3TvvJvoi6XkuI3lrZjlnKjvvIzliJnnu6fmib9jb25maWdcbiAgICAgICAgICAgIC8vIOatpOWkhOeahOe7p+aJv+aYr+S4uuS6humYsuatouWklueVjGNvbmRpdGlvbnPmlbDmja7nmoTlj5jljJblr7zoh7Tmk43kvZznirbmgIHliLfmlrBcbiAgICAgICAgICAgIC8vIOWboOatpO+8jOmZpOS6hmNvbmRpdGlvbnPmlbDmja7lpJbnmoTpmYTliqDmlbDmja7vvIzpg73lupTor6Xnu6fmib9cbiAgICAgICAgICAgIGNvbnN0IGluaGVyaXQgPSB7XG4gICAgICAgICAgICAgIC4uLmV4aXN0LFxuICAgICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gaXNFbXB0eShpbmhlcml0KVxuICAgICAgICAgICAgICA/ICh7XG4gICAgICAgICAgICAgICAgICBjb25kaXRpb246IHsgdmFsdWU6IGNvbmRpdGlvbi5jb25kaXRpb24gfSxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBjb25kaXRpb24ub3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlczogY29uZGl0aW9uLnZhbHVlcz8ubWFwKHZhbHVlID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICAgIH0gYXMgU2VhcmNoQ29uZGl0aW9uTW9kZWwpXG4gICAgICAgICAgICAgIDogKHtcbiAgICAgICAgICAgICAgICAgIC4uLmluaGVyaXQsXG4gICAgICAgICAgICAgICAgICBvcGVyYXRvcjogY29uZGl0aW9uLm9wZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZXM6IGNvbmRpdGlvbi52YWx1ZXM/Lm1hcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbmQgPSBpbmhlcml0LnZhbHVlcz8uZmluZChcbiAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0VmFsdWUgPT4gaW5oZXJpdFZhbHVlLnZhbHVlID09PSB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbmRcbiAgICAgICAgICAgICAgICAgICAgICA/IHsgLi4uZmluZCB9XG4gICAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIH0gYXMgU2VhcmNoQ29uZGl0aW9uTW9kZWwpO1xuICAgICAgICAgIH0pIHx8IFtdO1xuICAgICAgICByZXR1cm4gKF86IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pID0+IHJlcztcbiAgICAgIH0pLFxuICAgICksXG4gICAgdGhpcy5hY3Rpb25TY2FubmVyJCQsXG4gICkucGlwZShcbiAgICBzY2FuKChhY2MsIGN1cikgPT4gY3VyKGFjYyksIFtdIGFzIFNlYXJjaENvbmRpdGlvbk1vZGVsW10pLFxuICAgIHRhcChleGlzdGluZ0NvbmRpdGlvbnMgPT4ge1xuICAgICAgdGhpcy5leGlzdGluZ0NvbmRpdGlvbnMgPSBleGlzdGluZ0NvbmRpdGlvbnM7XG4gICAgfSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIG5vRWRpdGluZ0NvbmRpdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gIG5vRWRpdGluZ0NvbmRpdGlvbiQgPSB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyQucGlwZShcbiAgICBtYXAoZXhpc3RpbmdDb25kaXRpb25zID0+XG4gICAgICBleGlzdGluZ0NvbmRpdGlvbnM/LmV2ZXJ5KGNvbmRpdGlvbiA9PiAhY29uZGl0aW9uLmlzRWRpdGluZyksXG4gICAgKSxcbiAgICB0YXAobm9FZGl0aW5nQ29uZGl0aW9uID0+ICh0aGlzLm5vRWRpdGluZ0NvbmRpdGlvbiA9IG5vRWRpdGluZ0NvbmRpdGlvbikpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBub0RlbGV0aW5nQ29uZGl0aW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgbm9EZWxldGluZ0NvbmRpdGlvbiQgPSB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyQucGlwZShcbiAgICBtYXAoZXhpc3RpbmdDb25kaXRpb25zID0+XG4gICAgICBleGlzdGluZ0NvbmRpdGlvbnM/LmV2ZXJ5KGNvbmRpdGlvbiA9PiAhY29uZGl0aW9uLmlzRGVsZXRpbmcpLFxuICAgICksXG4gICAgdGFwKFxuICAgICAgbm9EZWxldGluZ0NvbmRpdGlvbiA9PiAodGhpcy5ub0RlbGV0aW5nQ29uZGl0aW9uID0gbm9EZWxldGluZ0NvbmRpdGlvbiksXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgYWRkZWRJbnB1dFNob3VsZEhpZGRlbiQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm5vRWRpdGluZ0NvbmRpdGlvbiQsXG4gICAgdGhpcy5ub0RlbGV0aW5nQ29uZGl0aW9uJCxcbiAgICB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbbm9FZGl0aW5nQ29uZGl0aW9uLCBub0RlbGV0aW5nQ29uZGl0aW9uLCBleGlzdGluZ0NvbmRpdGlvbnNdKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAoIW5vRWRpdGluZ0NvbmRpdGlvbiB8fCAhbm9EZWxldGluZ0NvbmRpdGlvbikgJiZcbiAgICAgICAgZXhpc3RpbmdDb25kaXRpb25zLmxlbmd0aCAhPT0gMFxuICAgICAgKTtcbiAgICB9KSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgZ2V0IGlucHV0Q29tcG9uZW50KCkge1xuICAgIHJldHVybiB0aGlzLm5vRGVsZXRpbmdDb25kaXRpb24gJiYgdGhpcy5ub0VkaXRpbmdDb25kaXRpb25cbiAgICAgID8gdGhpcy5ub3JtYWxJbnB1dENvbXBvbmVudFxuICAgICAgOiB0aGlzLnRhZ3NDb21wb25lbnQ/LmlucHV0Q29tcG9uZW50O1xuICB9XG5cbiAgQ0xFQVJfSUNPTl9DTEFTUyA9ICdzZWFyY2gtY2xlYXItaWNvbic7XG5cbiAgU0VBUkNIX0lDT05fQ0xBU1MgPSAnc2VhcmNoLWljb24nO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5leGlzdGluZ0NvbmRpdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGE/Lmxlbmd0aCA9PT0gYj8ubGVuZ3RoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZXhpc3RpbmdDb25kaXRpb25zID0+IHtcbiAgICAgICAgdGhpcy5jb25kaXRpb25zQ2hhbmdlLmVtaXQodGhpcy5nZXRDb25kaXRpb25Nb2RlbChleGlzdGluZ0NvbmRpdGlvbnMpKTtcbiAgICAgIH0pO1xuICAgIC8vIOatpOWkhOeahGNsaWNr5LqL5Lu255uR5ZCs5L2/55So5LqG5o2V6I636ICM6Z2e5YaS5rOh77yM5piv5Li65LqG6K6p5LqL5Lu26Kem5Y+R55qE5pe25py65YWI5LqOdGFnLmNsaWNrXG4gICAgLy8g6IuldGFnLmNsaWNr5YWI6Kem5Y+R77yM5Lya5a+86Ie0ZWxlbWVudC5jb250YWlucygp5Yik5pat5Ye66ZSZXG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LmJvZHksICdjbGljaycsIHsgY2FwdHVyZTogdHJ1ZSB9KVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgRWxlbWVudDtcblxuICAgICAgICBpZiAodGhpcy5pc1NlYXJjaEJ0bih0YXJnZXQpKSB7XG4gICAgICAgICAgdGhpcy5tYW51YWxDb21wbGV0ZShmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgdGhpcy5pbnB1dENvbXBvbmVudC50b29sVGlwSGlkZSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm11bHRpU2VhcmNoUmVmPy5uYXRpdmVFbGVtZW50Py5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgICAgLy8g5b2T54K55Ye75Yy65Z+f5Li6bXVsdGktc2VhcmNo57uE5Lu277yM6Ieq5Yqo6IGa54SmXG5cbiAgICAgICAgICAvLyDlr7nkuo7mk43kvZzmjInpkq7vvIzlj6rlgZpoaWRkZW4gdG9vbFRpcFxuICAgICAgICAgIGlmICh0aGlzLm5vdEFjdGlvbkVsZW1lbnQodGFyZ2V0KSkge1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IHRoaXMuaW5wdXRDb21wb25lbnQ/LmlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgICBjb25zdCBpc0ZvY3VzID0gdGhpcy5mb2N1cyQkLnZhbHVlO1xuICAgICAgICAgICAgICB0aGlzLm1hbnVhbEZvY3VzKGlzRm9jdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pbnB1dENvbXBvbmVudC50b29sVGlwU2hvdygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1hbnVhbEZvY3VzKHRydWUpO1xuXG4gICAgICAgICAgICAvLyB0aGlzLmlucHV0Q29tcG9uZW50LnRvb2xUaXBIaWRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIOW9k+eCueWHu+WMuuWfn+S4uumdnnRvb2x0aXDnmoTlhbbku5bljLrln5/ml7bvvIzoh6rliqjmlLbnvKlcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm5vdFRvb2x0aXBDb250ZW50KHRhcmdldCkpIHtcbiAgICAgICAgICB0aGlzLm1hbnVhbEJsdXIoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGlzU2VhcmNoQnRuKGVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja0VsZW1lbnQoZWxlbWVudCwgZWxlbWVudCA9PlxuICAgICAgZWxlbWVudD8uY2xhc3NOYW1lPy5pbmNsdWRlcz8uKHRoaXMuU0VBUkNIX0lDT05fQ0xBU1MpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG5vdEFjdGlvbkVsZW1lbnQoZWxlbWVudDogRWxlbWVudCkge1xuICAgIHJldHVybiAhdGhpcy5jaGVja0VsZW1lbnQoXG4gICAgICBlbGVtZW50LFxuICAgICAgZWxlbWVudCA9PlxuICAgICAgICBlbGVtZW50Py5jbGFzc05hbWU/LmluY2x1ZGVzPy4odGhpcy5DTEVBUl9JQ09OX0NMQVNTKSB8fFxuICAgICAgICBlbGVtZW50Py5jbGFzc05hbWU/LmluY2x1ZGVzPy4odGhpcy5TRUFSQ0hfSUNPTl9DTEFTUykgfHxcbiAgICAgICAgZWxlbWVudD8uY2xhc3NOYW1lPy5pbmNsdWRlcz8uKCdhdWktdGFnX19jbG9zZScpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG5vdFRvb2x0aXBDb250ZW50KGVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgICByZXR1cm4gIXRoaXMuY2hlY2tFbGVtZW50KFxuICAgICAgZWxlbWVudCxcbiAgICAgIGVsZW1lbnQgPT4gZWxlbWVudC50YWdOYW1lID09PSAnQVVJLVRPT0xUSVAnLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRWxlbWVudChlbGVtZW50OiBFbGVtZW50LCBmbjogKGU6IEVsZW1lbnQpID0+IGJvb2xlYW4pIHtcbiAgICB3aGlsZSAoZWxlbWVudCAmJiAhZm4oZWxlbWVudCkpIHtcbiAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhZWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgbWFudWFsQ29tcGxldGUoXG4gICAgdG9Db250aW51ZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIG1hbnVhbEZvY3VzOiBib29sZWFuID0gZmFsc2UsXG4gICkge1xuICAgIHRoaXMuaW5wdXRDb21wb25lbnQ/LmlmQ29tcGxldGUodG9Db250aW51ZSwgbWFudWFsRm9jdXMpO1xuICB9XG5cbiAgbWFudWFsRm9jdXMoc2lsZW5jZT86IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldEZvY3VzKHRydWUpO1xuICAgIHRoaXMuaW5wdXRDb21wb25lbnQ/Lm1hbnVhbEZvY3VzKHNpbGVuY2UpO1xuICB9XG5cbiAgc2V0Rm9jdXMoZm9jdXM6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmZvY3VzJCQubmV4dChmb2N1cyk7XG4gIH1cblxuICBtYW51YWxCbHVyKCkge1xuICAgIHRoaXMuc2V0Rm9jdXMoZmFsc2UpO1xuICAgIHRoaXMuaW5wdXRDb21wb25lbnQ/Lm1hbnVhbEJsdXIoKTtcbiAgfVxuXG4gIC8vIOaQnOe0ouaTjeS9nFxuICBkb1NlYXJjaCgpIHtcbiAgICB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyRcbiAgICAgIC5waXBlKHRha2UoMSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCkpXG4gICAgICAuc3Vic2NyaWJlKGV4aXN0cyA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoLmVtaXQoXG4gICAgICAgICAgdGhpcy5nZXRDb25kaXRpb25Nb2RlbChcbiAgICAgICAgICAgIGV4aXN0cz8uZmlsdGVyKGV4aXN0ID0+ICF0aGlzLmNvbmRpdGlvbkluQWN0aW9uKGV4aXN0KSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLy8g5riF6Zmk5omA5pyJ5bey6YCJ5p2h5Lu2XG4gIGNsZWFyQ29uZGl0aW9ucygpIHtcbiAgICB0aGlzLmFkZGVkQ29uZGl0aW9uID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KChfOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiBbXSk7XG4gIH1cblxuICAvLyDnp7vpmaTlvZPliY3mnaHku7ZcbiAgcmVtb3ZlQ29uZGl0aW9uKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICBjb25zdCByZW1vdmUgPSAoZXhpc3RpbmdDb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiB7XG4gICAgICBjb25zdCBpZHggPSBleGlzdGluZ0NvbmRpdGlvbnMuZmluZEluZGV4KFxuICAgICAgICBjb24gPT4gY29uLmNvbmRpdGlvbi52YWx1ZSA9PT0gY29uZGl0aW9uLmNvbmRpdGlvbi52YWx1ZSxcbiAgICAgICk7XG4gICAgICBleGlzdGluZ0NvbmRpdGlvbnMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICByZXR1cm4gWy4uLmV4aXN0aW5nQ29uZGl0aW9uc107XG4gICAgfTtcbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KHJlbW92ZSk7XG4gIH1cblxuICAvLyDmm7TmlrDmnaHku7ZcbiAgdXBkYXRlQ29uZGl0aW9uKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBfdXBkYXRlID0gKGV4aXN0aW5nQ29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkgPT4ge1xuICAgICAgaWYgKGNvbmRpdGlvbikge1xuICAgICAgICBleGlzdGluZ0NvbmRpdGlvbnMuc3BsaWNlKGluZGV4LCAxLCBjb25kaXRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhpc3RpbmdDb25kaXRpb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gWy4uLmV4aXN0aW5nQ29uZGl0aW9uc107XG4gICAgfTtcblxuICAgIHRoaXMuYWN0aW9uU2Nhbm5lciQkLm5leHQoX3VwZGF0ZSk7XG4gIH1cblxuICAvLyDmt7vliqBjb25kaXRpb25cbiAgYWRkQ29uZGl0aW9uKGFjdGl2ZUNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICBjb25zdCBfYWRkID0gKGV4aXN0aW5nQ29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkgPT4ge1xuICAgICAgZXhpc3RpbmdDb25kaXRpb25zLnB1c2goYWN0aXZlQ29uZGl0aW9uKTtcbiAgICAgIHJldHVybiBbLi4uZXhpc3RpbmdDb25kaXRpb25zXTtcbiAgICB9O1xuXG4gICAgdGhpcy5hY3Rpb25TY2FubmVyJCQubmV4dChfYWRkKTtcbiAgfVxuXG4gIC8vIOiuvue9rmNvbmRpdGlvbueahOeKtuaAgeS4uue8lui+keaAgVxuICBzZXRDb25kaXRpb25FZGl0aW5nKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICBpZiAodGhpcy5pc0dyYW1tYXJDdXN0b21Db25kaXRpb24oY29uZGl0aW9uKSkgcmV0dXJuO1xuICAgIGNvbnN0IF91cGRhdGUgPSAoZXhpc3RpbmdDb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiB7XG4gICAgICBpZiAoIWV4aXN0aW5nQ29uZGl0aW9ucykgcmV0dXJuO1xuICAgICAgY29uc3QgaWR4ID0gZXhpc3RpbmdDb25kaXRpb25zLmZpbmRJbmRleChcbiAgICAgICAgY29uID0+IGNvbi5jb25kaXRpb24udmFsdWUgPT09IGNvbmRpdGlvbi5jb25kaXRpb24udmFsdWUsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjb25kaXRpb25zRXhjZXB0Q3VyID0gW1xuICAgICAgICAuLi4oZXhpc3RpbmdDb25kaXRpb25zLnNsaWNlKDAsIGlkeCkgfHwgW10pLFxuICAgICAgICAuLi4oZXhpc3RpbmdDb25kaXRpb25zLnNsaWNlKGlkeCArIDEpIHx8IFtdKSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IGFscmVhZHlIYXZlQWN0aW9uID0gY29uZGl0aW9uc0V4Y2VwdEN1ci5zb21lKGNvbiA9PlxuICAgICAgICB0aGlzLmNvbmRpdGlvbkluQWN0aW9uKGNvbiksXG4gICAgICApO1xuICAgICAgLy8g5b2T5bey57uP5a2Y5Zyo5pON5L2c5Lit55qEY29uZGl0aW9u5pe277yM5Lya57un57ut57u05oqk5LmL5YmN5pON5L2c77yM5Lit5q2i5paw55qE5pON5L2c6KGM5Li6XG4gICAgICAvLyDkuIrov7DlpITnkIbpgLvovpHkuLvopoHmmK/kuLrkuobpgb/lhY3mk43kvZzliLDkuIDljYrvvIjmr5TlpoLmnKrpgInmi6lvcGVyYXRvcuOAgeacqumAieaLqWNvbmRpdGlvbuaXtu+8ieWwseWIh+aNouiHs+WPpuS4gOS4qmNvbmRpdGlvbuaTjeS9nO+8jOatpOaXtuivpeacquWujOaIkOeahOaTjeS9nOW6lOivpeWmguS9leWkhOeQhu+8jOaaguacque7meWumuOAglxuICAgICAgaWYgKGFscmVhZHlIYXZlQWN0aW9uIHx8IHRoaXMuYWRkZWRDb25kaXRpb24pIHJldHVybiBleGlzdGluZ0NvbmRpdGlvbnM7XG5cbiAgICAgIGNvbnN0IGZpbmQgPSBleGlzdGluZ0NvbmRpdGlvbnNbaWR4XTtcbiAgICAgIC8vIOWwhuW9k+WJjeaJgOaTjeS9nGNvbmRpdGlvbueahOeKtuaAgemHjee9ruS4umVkaXRpbmdcbiAgICAgIGZpbmQuaXNEZWxldGluZyA9IGZhbHNlO1xuICAgICAgZmluZC5pc0VkaXRpbmcgPSB0cnVlO1xuXG4gICAgICBmaW5kLmFjdGlvbk1vZGVsID0gY2xvbmVEZWVwKGZpbmQpO1xuICAgICAgcmV0dXJuIFsuLi5leGlzdGluZ0NvbmRpdGlvbnNdO1xuICAgIH07XG5cbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KF91cGRhdGUpO1xuICB9XG5cbiAgLy8g6K6+572uY29uZGl0aW9u55qE54q25oCB5Li65Yig6Zmk5oCBXG4gIHNldENvbmRpdGlvbkRlbGV0aW5nKGluZGV4PzogbnVtYmVyKSB7XG4gICAgY29uc3QgX2RlbGV0ZSA9IChleGlzdGluZ0NvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pID0+IHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IE51bWJlci5pc0ludGVnZXIoaW5kZXgpXG4gICAgICAgID8gZXhpc3RpbmdDb25kaXRpb25zW2luZGV4XVxuICAgICAgICA6IGV4aXN0aW5nQ29uZGl0aW9ucy5hdCgtMSk7XG5cbiAgICAgIGlmIChjb25kaXRpb24pIHtcbiAgICAgICAgc2V0KGNvbmRpdGlvbiwgJ2lzRGVsZXRpbmcnLCB0cnVlKTtcbiAgICAgICAgY29uZGl0aW9uLmFjdGlvbk1vZGVsID0gY2xvbmVEZWVwKGNvbmRpdGlvbik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbLi4uZXhpc3RpbmdDb25kaXRpb25zXTtcbiAgICB9O1xuICAgIHRoaXMuYWN0aW9uU2Nhbm5lciQkLm5leHQoX2RlbGV0ZSk7XG4gIH1cblxuICBjb21wbGV0ZSh7XG4gICAgYWN0aXZlQ29uZGl0aW9uLFxuICAgIHRvQ29udGludWUsXG4gICAgbWFudWFsRm9jdXMsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICBhY3RpdmVDb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsO1xuICAgIHRvQ29udGludWU/OiBib29sZWFuO1xuICAgIG1hbnVhbEZvY3VzPzogYm9vbGVhbjtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkge1xuICAgIGlmIChhY3RpdmVDb25kaXRpb24pIHtcbiAgICAgIGFjdGl2ZUNvbmRpdGlvbi5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICAgIGFjdGl2ZUNvbmRpdGlvbi5pc0RlbGV0aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKE51bWJlci5pc0ludGVnZXIoaW5kZXgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbmRpdGlvbihhY3RpdmVDb25kaXRpb24sIGluZGV4KTtcbiAgICB9IGVsc2UgaWYgKGFjdGl2ZUNvbmRpdGlvbikge1xuICAgICAgdGhpcy5hZGRDb25kaXRpb24oYWN0aXZlQ29uZGl0aW9uKTtcbiAgICB9XG4gICAgLy8g6Ieq5Yqo6IGa54SmXG4gICAgaWYgKG1hbnVhbEZvY3VzKSB7XG4gICAgICB0aGlzLm1hbnVhbEZvY3VzKCF0b0NvbnRpbnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzR3JhbW1hckN1c3RvbUNvbmRpdGlvbihjb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5Db25maWcgPSB0aGlzLmNvbmRpdGlvbkNvbmZpZy5zb21lKGNvbmZpZyA9PlxuICAgICAgaXNFcXVhbChjb25kaXRpb24uY29uZGl0aW9uLCBjb25maWcuY29uZGl0aW9uKSxcbiAgICApO1xuICAgIC8vIOWmguaenOW9k+WJjWNvbmRpdGlvbuS4jeWcqGNvbmZpZ+S4re+8jOS4lG9wZXJhdG9y5LiN5Li66buY6K6k5YC877yM5YiZ5Luj6KGo5b2T5YmNY29uZGl0aW9u5piv55So5oi36YCa6L+H6K+t5rOV6Ieq5a6a5LmJ55qE77yM5q2k5pe25LiN5YWB6K646YCa6L+HVUnkv67mlLlcbiAgICAvLyDogIPomZHliLDmnKrmnaXkvJrlhYHorrjnlKjmiLfovpPlhaXliJvlu7pjb25kaXRpb27vvIzmraTml7bmmK/lhYHorrjnlKjmiLfpgJrov4dVSeWGjeasoeS/ruaUueeahOOAguatpOexu+aDheWGteeahOeJueaAp++8miFpbkNvbmZpZyAmJiBvcGVyYXRvciA9PT0gREVGQVVMVF9PUEVSQVRPUlxuICAgIHJldHVybiAhaW5Db25maWcgJiYgY29uZGl0aW9uLm9wZXJhdG9yICE9PSBERUZBVUxUX09QRVJBVE9SO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25kaXRpb25Nb2RlbChjb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbnM/Lm1hcChjb25kaXRpb24gPT4gKHtcbiAgICAgIGNvbmRpdGlvbjogY29uZGl0aW9uLmNvbmRpdGlvbi52YWx1ZSxcbiAgICAgIG9wZXJhdG9yOiBjb25kaXRpb24ub3BlcmF0b3IsXG4gICAgICB2YWx1ZXM6IGNvbmRpdGlvbi5zZWxlY3RlZFZhbHVlcz8ubWFwKHZhbHVlID0+IHZhbHVlLnZhbHVlKSB8fCBbXSxcbiAgICB9KSk7XG4gIH1cblxuICBjb25kaXRpb25JbkFjdGlvbihjb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsKSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbi5pc0VkaXRpbmcgfHwgY29uZGl0aW9uLmlzRGVsZXRpbmc7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJhdWktaW5wdXQgbXVsdGktc2VhcmNoXCJcbiAgI211bHRpU2VhcmNoXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2VhcmNoLWZvY3VzJzogZm9jdXMkJCB8IGFzeW5jLFxuICB9XCJcbj5cbiAgPCEtLSDlt7LpgInmi6nnsbvnm650YWdzIC0tPlxuICA8YWNsLW11bHRpLXNlYXJjaC10YWdzXG4gICAgI3RhZ3NSZWZcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAndGFncy13aWR0aC13aXRoLWRlbGV0ZSc6ICRhbnkoZXhpc3RpbmdDb25kaXRpb25zJCB8IGFzeW5jKT8ubGVuZ3RoLFxuICAgICAgJ3RhZ3Mtd2lkdGgnOiAhJGFueShleGlzdGluZ0NvbmRpdGlvbnMkIHwgYXN5bmMpPy5sZW5ndGgsXG4gICAgfVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbY29uZGl0aW9uQ3JlYXRhYmxlXT1cImNvbmRpdGlvbkNyZWF0YWJsZVwiXG4gICAgW2V4aXN0aW5nQ29uZGl0aW9uc109XCJleGlzdGluZ0NvbmRpdGlvbnNcIlxuICAgIFtjb25kaXRpb25Db25maWddPVwiY29uZGl0aW9uQ29uZmlnXCJcbiAgICAocmVtb3ZlQ29uZGl0aW9uKT1cInJlbW92ZUNvbmRpdGlvbigkZXZlbnQpXCJcbiAgICAoc2V0Q29uZGl0aW9uRWRpdGluZyk9XCJzZXRDb25kaXRpb25FZGl0aW5nKCRldmVudClcIlxuICAgIChzZXRDb25kaXRpb25EZWxldGluZyk9XCJzZXRDb25kaXRpb25EZWxldGluZygkZXZlbnQpXCJcbiAgICBbc2hvd0Zvb3RBY3Rpb25dPVwic2hvd0Zvb3RBY3Rpb25cIlxuICAgIChzZWFyY2gpPVwiZG9TZWFyY2goKVwiXG4gICAgKGNvbXBsZXRlZCk9XCJjb21wbGV0ZSgkZXZlbnQpXCJcbiAgPlxuICAgIDwhLS0g5pyr5bC+6L6T5YWl5qGGIC0tPlxuICAgIDxhY2wtbXVsdGktc2VhcmNoLWFjdGlvbi1pbnB1dFxuICAgICAgI2lucHV0UmVmXG4gICAgICBjbGFzcz1cImlucHV0LXdyYXBwZXJcIlxuICAgICAgW2lzRWRpdGluZ109XCJ0cnVlXCJcbiAgICAgIFtoaWRkZW5dPVwiYWRkZWRJbnB1dFNob3VsZEhpZGRlbiQgfCBhc3luY1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW2NvbmRpdGlvbkNyZWF0YWJsZV09XCJjb25kaXRpb25DcmVhdGFibGVcIlxuICAgICAgW2NvbmRpdGlvbkNvbmZpZ109XCJjb25kaXRpb25Db25maWdcIlxuICAgICAgW2V4aXN0aW5nQ29uZGl0aW9uc109XCJleGlzdGluZ0NvbmRpdGlvbnMkIHwgYXN5bmNcIlxuICAgICAgW2F1dG9TY3JvbGxdPVwiYXV0b1Njcm9sbFwiXG4gICAgICBbKG5nTW9kZWwpXT1cImFkZGVkQ29uZGl0aW9uXCJcbiAgICAgIFtzaG93Rm9vdEFjdGlvbl09XCJzaG93Rm9vdEFjdGlvblwiXG4gICAgICAoY29tcGxldGVkKT1cImNvbXBsZXRlKCRldmVudClcIlxuICAgICAgKGRlbGV0ZSk9XCJzZXRDb25kaXRpb25EZWxldGluZygpXCJcbiAgICAgIChzZWFyY2gpPVwiZG9TZWFyY2goKVwiXG4gICAgICAoZm9jdXNJbik9XCJzZXRGb2N1cyh0cnVlKVwiXG4gICAgICAoZm9jdXNPdXQpPVwibWFudWFsQmx1cigpXCJcbiAgICA+PC9hY2wtbXVsdGktc2VhcmNoLWFjdGlvbi1pbnB1dD5cbiAgPC9hY2wtbXVsdGktc2VhcmNoLXRhZ3M+XG5cbiAgPGRpdiBjbGFzcz1cInNlYXJjaC1zdWZmaXhcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIiRhbnkoZXhpc3RpbmdDb25kaXRpb25zJCB8IGFzeW5jKT8ubGVuZ3RoXCJcbiAgICAgIGNsYXNzPVwic2VhcmNoLWNsZWFyXCJcbiAgICA+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJ0dy10ZXh0LW4tNCB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIkNMRUFSX0lDT05fQ0xBU1NcIlxuICAgICAgICBpY29uPVwieG1hcmtfc21hbGxcIlxuICAgICAgICBzaXplPVwiMTRcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJDb25kaXRpb25zKCk7IGRvU2VhcmNoKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNlYXJjaC1zdWZmaXhcIlxuICAgICAgKm5nSWY9XCJzZWFyY2hTdWZmaXhcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdWZmaXgtd3JhcHBlclwiPlxuICAgICAgICA8YXVpLWljb25cbiAgICAgICAgICBjbGFzcz1cInR3LXRleHQtbi00IHR3LWN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJTRUFSQ0hfSUNPTl9DTEFTU1wiXG4gICAgICAgICAgaWNvbj1cIm1hZ25pZmllclwiXG4gICAgICAgICAgKGNsaWNrKT1cImRvU2VhcmNoKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgID48L2F1aS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * from './utils';
|
|
2
2
|
export * from './types';
|
|
3
3
|
export * from './form/component';
|
|
4
|
-
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9tdWx0aS1zZWFyY2gvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtL2NvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi1pbnB1dC9jb21wb25lbnQnO1xuIl19
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9tdWx0aS1zZWFyY2gvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS9jb21wb25lbnQnO1xuIl19
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export const DEFAULT_OPERATOR = '=';
|
|
1
2
|
/**
|
|
2
3
|
* 将basic的conditions转换为advanced形式
|
|
3
4
|
* 如:
|
|
@@ -43,4 +44,4 @@ export function MultiSearchBasic(advancedConditions) {
|
|
|
43
44
|
};
|
|
44
45
|
});
|
|
45
46
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvbXVsdGktc2VhcmNoL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFXLEdBQUcsQ0FBQztBQUU1Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsVUFBNkI7SUFDL0QsT0FBTyxVQUFVO1FBQ2YsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FDaEIsU0FBUyxDQUFDLFNBQVM7UUFDakIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQ2xCLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxTQUFTLElBQ3JCLFNBQVMsQ0FBQyxRQUFRLElBQUksRUFDeEIsS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSTtZQUN0QyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsU0FBUyxHQUFHO1FBQzlCLENBQUMsQ0FBQyxFQUFFLENBQ1A7UUFDRCxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDakIsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEIsQ0FBQztBQUVELFdBQVc7QUFDWCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLGtCQUEwQjtJQUUxQixNQUFNLEdBQUcsR0FDUCxnSEFBZ0gsQ0FBQztJQUVuSCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwRSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDekIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUN6QixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFFN0QsT0FBTztZQUNMLFNBQVM7WUFDVCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDekIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNsQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VhcmNoQ29uZGl0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09QRVJBVE9SOiBzdHJpbmcgPSAnPSc7XG5cbi8qKlxuICog5bCGYmFzaWPnmoRjb25kaXRpb25z6L2s5o2i5Li6YWR2YW5jZWTlvaLlvI9cbiAqIOWmgu+8mlxuICogW1xuICogIHtcbiAqICAgIGNvbmRpdGlvbjogJ2NhdGVnb3J5MScsXG4gKiAgICBvcGVyYXRvcjogJz0nLFxuICogICAgdmFsdWVzOiBbJ2NvbjEnLCAnY29uMiddXG4gKiAgfSxcbiAqICB7XG4gKiAgICBjb25kaXRpb246ICdjYXRlZ29yeTInLFxuICogICAgb3BlcmF0b3I6ICchPScsXG4gKiAgICB2YWx1ZXM6IFsnY29uMTEnXVxuICogIH0sXG4gKiAge1xuICogICAgY29uZGl0aW9uOiAnIWN1c3RvbSdcbiAqICB9XG4gKiBdXG4gKiDlsIbkvJrovazljJbkuLrvvJpcbiAqICdbY2F0ZWdvcnkxID0gKGNvbjEsY29uMildLFtjYXRlZ29yeTIgIT0gKGNvbjExKV0sWyFjdXN0b21dJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gTXVsdGlTZWFyY2hBZHZhbmNlZChjb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25bXSk6IHN0cmluZyB7XG4gIHJldHVybiBjb25kaXRpb25zXG4gICAgPy5tYXAoY29uZGl0aW9uID0+XG4gICAgICBjb25kaXRpb24uY29uZGl0aW9uXG4gICAgICAgID8gY29uZGl0aW9uLm9wZXJhdG9yXG4gICAgICAgICAgPyBgWyR7Y29uZGl0aW9uLmNvbmRpdGlvbn0gJHtcbiAgICAgICAgICAgICAgY29uZGl0aW9uLm9wZXJhdG9yIHx8ICcnXG4gICAgICAgICAgICB9ICgke2NvbmRpdGlvbi52YWx1ZXM/LmpvaW4oJywnKX0pXWBcbiAgICAgICAgICA6IGBbJHtjb25kaXRpb24uY29uZGl0aW9ufV1gXG4gICAgICAgIDogJycsXG4gICAgKVxuICAgID8uZmlsdGVyKEJvb2xlYW4pXG4gICAgPy5qb2luKCcsJyk7XG59XG5cbi8vIOS4iui/sOWHveaVsOeahOWPjeino+aekFxuZXhwb3J0IGZ1bmN0aW9uIE11bHRpU2VhcmNoQmFzaWMoXG4gIGFkdmFuY2VkQ29uZGl0aW9uczogc3RyaW5nLFxuKTogU2VhcmNoQ29uZGl0aW9uW10ge1xuICBjb25zdCByZWcgPVxuICAgIC9cXFsoPzooPzxjb25kaXRpb24+W14sXSs/KVxccyg/PG9wZXJhdG9yPltcXHNcXFNdKz8pXFxzXFwoKD88dmFsdWVzPlteXFxdXSo/KVxcKXwoPzxjdXN0b21Db25kaXRpb24+W14sXSs/KSlcXF0oPzosfCQpL2c7XG5cbiAgY29uc3QgbWF0Y2hlcyA9IEFycmF5LmZyb20oYWR2YW5jZWRDb25kaXRpb25zPy5tYXRjaEFsbChyZWcpIHx8IFtdKTtcbiAgcmV0dXJuIG1hdGNoZXMubWFwKG1hdGNoID0+IHtcbiAgICBjb25zdCB7IGdyb3VwcyB9ID0gbWF0Y2g7XG4gICAgY29uc3QgY29uZGl0aW9uID0gZ3JvdXBzLmNvbmRpdGlvbiB8fCBncm91cHMuY3VzdG9tQ29uZGl0aW9uO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmRpdGlvbixcbiAgICAgIG9wZXJhdG9yOiBncm91cHMub3BlcmF0b3IsXG4gICAgICB2YWx1ZXM6IGdyb3Vwcy52YWx1ZXM/LnNwbGl0KCcsJyksXG4gICAgfTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -5,9 +5,9 @@ import { NavigationEnd, Router, RouterLink } from '@angular/router';
|
|
|
5
5
|
import { filter } from 'rxjs';
|
|
6
6
|
import { ImgHeaderPipe, PurePipe, SanitizePipe, } from '../../../core/public-api';
|
|
7
7
|
import { GridLayoutModule } from '../../../grid-layout/module';
|
|
8
|
-
import { TranslatePipe } from '../../../
|
|
8
|
+
import { TranslatePipe } from '../../../translate/translate.pipe';
|
|
9
9
|
import animDataMap from '../lottie-icons/animation-data';
|
|
10
|
-
import { NavLottieIconDirective } from '../
|
|
10
|
+
import { NavLottieIconDirective } from '../lottie-icons/lottie-icon.directive';
|
|
11
11
|
import { findNavPath } from '../utils';
|
|
12
12
|
import { BreadcrumbService, } from './breadcrumb.service';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
@@ -372,4 +372,4 @@ function findIndex(compare, value) {
|
|
|
372
372
|
}
|
|
373
373
|
return -1;
|
|
374
374
|
}
|
|
375
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9uYXZpZ2F0aW9uL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9uYXZpZ2F0aW9uL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUdULE1BQU0sRUFHTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5QixPQUFPLEVBQ0wsYUFBYSxFQUNiLFFBQVEsRUFDUixZQUFZLEdBRWIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxXQUFXLE1BQU0sZ0NBQWdDLENBQUM7QUFFekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFdkMsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7SUN6QmhCLHdCQUVnQjs7O0lBRmhCLHNJQUVDOzs7OztJQUQwQixBQUF4QiwwQ0FBd0IsZ0VBQStCOzs7SUFOOUQsNEJBR0M7SUFDQyxvSEFBbUI7SUFLbkIsNEJBQU07SUFBQSxZQUEyQzs7SUFDbkQsQUFEbUQsaUJBQU8sRUFDdEQ7Ozs7O0lBUkYsK0NBQThCO0lBRTlCLGNBSUM7SUFKRCw2Q0FJQztJQUNLLGVBQTJDO0lBQTNDLHlFQUEyQzs7O0lBSy9DLHdCQUVnQjs7O0lBRmhCLHNJQUVDOzs7OztJQUQwQixBQUF4QiwwQ0FBd0IsZ0VBQWdDOzs7SUFIL0QsK0JBQW1CO0lBQ2pCLG9IQUFtQjtJQUtuQiw0QkFBTTtJQUFBLFlBQTJDOztJQUNuRCxBQURtRCxpQkFBTyxFQUNuRDs7Ozs7SUFOTCxjQUlDO0lBSkQsNkNBSUM7SUFDSyxlQUEyQztJQUEzQyx5RUFBMkM7OztJQXBCdkQsMkNBQXFCO0lBYWpCLEFBWkYsOEZBQXNELG9GQVk3QztJQVVYLGlCQUFzQjs7OztJQXRCcEIsY0FxQkM7SUFyQkQscUZBcUJDOzs7SUF2QkwsdUhBeUJDOzs7SUF6QkQsbUNBeUJDOzs7SUFHRCwyQkFHZ0I7OztJQURkLEFBREEsd0RBQW1DLDBFQUNrQjs7O0lBT2pELDRCQUFrQztJQUFBLFlBRWhDOztJQUFBLGlCQUFJOzs7SUFGSCwrQ0FBOEI7SUFBQyxjQUVoQztJQUZnQywyRkFFaEM7OztJQUVGLDRCQUFNO0lBQUEsWUFFSjs7SUFBQSxpQkFBTzs7O0lBRkgsY0FFSjtJQUZJLDJGQUVKOzs7SUFSTiwyQ0FBcUI7SUFLakIsQUFKRiw4RkFBdUIsaUZBSWQ7SUFLWCxpQkFBc0I7OztJQVRwQixjQVFDO0lBUkQsNENBUUM7OztJQVZMLHVIQVlDOzs7SUFaRCxjQUFBLGlCQUFVLENBWVQ7OztJQVVELHlDQUd1Qjs7Ozs7O0lBRHJCLEFBREEsMENBQXlCLDhDQUNVOzs7SUFJbkMseUNBR3VCOzs7SUFEckIsQUFEQSwwQ0FBeUIsbUJBQ0Y7OztJQUgzQix3SEFBK0Q7Ozs7OztJQUEvRCxtSEFLQzs7O0lBRUQseUJBQW9EOzs7O0lBQS9DLHVGQUE0Qzs7O0lBRWpELHlCQUlFOzs7OztJQUhBLGtJQUVDOzs7SUFHSCw4QkFBOEM7OztJQUFwQyx5Q0FBd0I7OztJQUVsQyx5Q0FHdUI7Ozs7SUFEckIsQUFEQSwwQ0FBeUIsd0NBQ087OztJQUhsQyxBQUZBLEFBTkEsQUFGQSxBQVBBLEFBTEYsMEdBQTJDLG1FQUtULDZFQU9KLDZFQUVrQixrRkFNbEIsNkZBRXJCOzs7O0lBdEJULHVNQTJCQzs7QUQ1QkgsTUFBTSxPQUFPLG1CQUFtQjtJQWlDOUIsWUFDbUIsTUFBYyxFQUNkLEdBQXNCLEVBQ3RCLE9BQTBCO1FBRjFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQW5DN0MsZ0JBQVcsR0FBRyxXQUFXLENBQUM7UUE2QmxCLG9CQUFlLEdBQW9CLEVBQUUsQ0FBQztRQVE1QyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsQ0FBQzthQUNyRCxTQUFTLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7WUFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7WUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxlQUFlO2dCQUNsQixJQUFJLENBQUMsT0FBTztvQkFDWixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FDakIsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFDdkMsRUFBcUIsQ0FDdEIsQ0FBQztRQUNOLENBQUM7UUFFRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQWlDO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDO0lBQzlDLENBQUM7SUFFRCxRQUFRO1FBS04sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDaEMsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUV4RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQzthQUNuQyxLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXBCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2hELElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUN2QixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMvQyxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlDLE9BQU87Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ2IsVUFBVSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ25EO2dCQUNELEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFO2FBQ3BDLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUVELElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDdEQsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNWLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBWTtRQUN6QixNQUFNLElBQUksR0FBRyxNQUFNLENBQVUsSUFBSSxDQUFDLENBQUM7UUFFbkMsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNSLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDWCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBRUwsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxhQUFhO1lBQ2hCLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGVBQWU7Z0JBQ3ZDLENBQUMsQ0FBQyxXQUFXLENBQWdCLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQ2hFLElBQUksQ0FBQyxlQUFlLENBQ3JCO2dCQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDWCxDQUFDO0lBRU8sUUFBUSxDQUFDLElBQWlDO1FBQ2hELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUNuQixHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDZCxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQzdDLENBQUM7SUFDSixDQUFDO0lBRU8sU0FBUyxDQUFDLElBQWlDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM1QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM3QixPQUFPLENBQ0wsR0FBRztvQkFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQThCLENBQUM7eUJBQzNDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQzt5QkFDeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDWCxHQUFHLENBQ0osQ0FBQztZQUNKLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQzlELENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7b0ZBbExVLG1CQUFtQjtvRUFBbkIsbUJBQW1COzs7Ozs7WUN4RGhDLHNDQUFnQjtZQW1DZCxBQU5BLEFBNUJBLGtFQUE2Qix3RUE0QlUscURBTXdCO1lBZWpFLGlCQUFpQjtZQUVqQixxSEFJQzs7WUF2REMsY0EyQkM7WUEzQkQsd0ZBMkJDO1lBQ0QsY0FLQztZQUxELDhEQUtDO1lBQ0QsY0FjQztZQWRELDBGQWNDOzRCRExDLGdCQUFnQixzREFDaEIsVUFBVTtZQUNWLHNCQUFzQjtZQUN0QixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osYUFBYTtZQUNiLGFBQWE7WUFDYixRQUFROztpRkFHQyxtQkFBbUI7Y0FuQi9CLFNBQVM7MkJBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO29CQUNQLGdCQUFnQjtvQkFDaEIsVUFBVTtvQkFDVixzQkFBc0I7b0JBQ3RCLGdCQUFnQjtvQkFDaEIsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLFlBQVk7b0JBQ1osYUFBYTtvQkFDYixhQUFhO29CQUNiLFFBQVE7aUJBQ1Q7dUdBTUQsT0FBTztrQkFETixLQUFLO1lBSU4sTUFBTTtrQkFETCxLQUFLO1lBSU4sWUFBWTtrQkFEWCxLQUFLO1lBS04sU0FBUztrQkFEUixLQUFLO21CQUFDLFVBQVU7WUFXakIsT0FBTztrQkFETixTQUFTO21CQUFDLE1BQU07O2tGQXZCTixtQkFBbUI7QUFxTGhDLFNBQVMsU0FBUyxDQUFDLE9BQStCLEVBQUUsS0FBYTtJQUMvRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3RDLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFkY3J1bWJNb2R1bGUsIEljb25Db21wb25lbnQgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBpc0Rldk1vZGUsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBzaWduYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBJbWdIZWFkZXJQaXBlLFxuICBQdXJlUGlwZSxcbiAgU2FuaXRpemVQaXBlLFxuICBTdHJpbmdNYXAsXG59IGZyb20gJy4uLy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBHcmlkTGF5b3V0TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vZ3JpZC1sYXlvdXQvbW9kdWxlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9wdWJsaWMtYXBpJztcbmltcG9ydCBhbmltRGF0YU1hcCBmcm9tICcuLi9sb3R0aWUtaWNvbnMvYW5pbWF0aW9uLWRhdGEnO1xuaW1wb3J0IHsgTmF2R3JvdXBDb25maWcsIE5hdkl0ZW1Db25maWcgfSBmcm9tICcuLi9uYXYtbWVudS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IE5hdkxvdHRpZUljb25EaXJlY3RpdmUgfSBmcm9tICcuLi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IGZpbmROYXZQYXRoIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQge1xuICBCcmVhZGNydW1iU2VydmljZSxcbiAgQnJlYWRjcnVtYlRlbXBsYXRlU3RhdGUsXG59IGZyb20gJy4vYnJlYWRjcnVtYi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLWJyZWFkY3J1bWInLFxuICB0ZW1wbGF0ZVVybDogJy4vYnJlYWRjcnVtYi50ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnJlYWRjcnVtYi5zdHlsZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQnJlYWRjcnVtYk1vZHVsZSxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIE5hdkxvdHRpZUljb25EaXJlY3RpdmUsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIEdyaWRMYXlvdXRNb2R1bGUsXG4gICAgU2FuaXRpemVQaXBlLFxuICAgIEltZ0hlYWRlclBpcGUsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBQdXJlUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgYW5pbURhdGFNYXAgPSBhbmltRGF0YU1hcDtcblxuICBASW5wdXQoKVxuICBjb25maWdzOiBOYXZJdGVtQ29uZmlnW107XG5cbiAgQElucHV0KClcbiAgZ3JvdXBzOiBOYXZHcm91cENvbmZpZ1tdO1xuXG4gIEBJbnB1dCgpXG4gIGFjdGl2YXRlZEtleTogc3RyaW5nO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnc3ViSXRlbXMnKVxuICBfc3ViSXRlbXM6IChcbiAgICByZXN0OiBzdHJpbmdbXSxcbiAgICBsYXN0Um91dGVMaW5rOiBBcnJheTxzdHJpbmcgfCBTdHJpbmdNYXA+LFxuICApID0+IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdHJhbnNsYXRlPzogYm9vbGVhbjtcbiAgICByb3V0ZXJMaW5rPzogTmF2SXRlbUNvbmZpZ1sncm91dGVyTGluayddO1xuICB9PiB8IHZvaWQ7XG5cbiAgQFZpZXdDaGlsZCgnaWNvbicpXG4gIGljb25SZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGFjdGl2YXRlZFBhdGg6IE5hdkl0ZW1Db25maWdbXTtcbiAgY3VzdG9tVGVtcGxhdGVTdGF0ZTogQnJlYWRjcnVtYlRlbXBsYXRlU3RhdGU7XG4gIGN1c3RvbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBwcml2YXRlIGludGVybmFsQ29uZmlnczogTmF2SXRlbUNvbmZpZ1tdID0gW107XG4gIHByaXZhdGUgdXJsOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBCcmVhZGNydW1iU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy51cmwgPSByb3V0ZXIudXJsO1xuICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuICAgICAgICB0aGlzLnVybCA9IGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLnRlbXBsYXRlU3RhdGUkLnN1YnNjcmliZShzdGF0ZSA9PiB7XG4gICAgICB0aGlzLmN1c3RvbVRlbXBsYXRlU3RhdGUgPSBzdGF0ZTtcbiAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGUgPSB0aGlzLnNlcnZpY2UudGVtcGxhdGU7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5jb25maWdzIHx8IGNoYW5nZXMuZ3JvdXBzKSB7XG4gICAgICB0aGlzLmludGVybmFsQ29uZmlncyA9XG4gICAgICAgIHRoaXMuY29uZmlncyA/P1xuICAgICAgICB0aGlzLmdyb3Vwcz8ucmVkdWNlKFxuICAgICAgICAgIChhY2MsIGdyb3VwKSA9PiBhY2MuY29uY2F0KGdyb3VwLml0ZW1zKSxcbiAgICAgICAgICBbXSBhcyBOYXZJdGVtQ29uZmlnW10sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVBY3RpdmF0ZWRQYXRoKCk7XG4gIH1cblxuICBpc1NhbWVVcmwobGluazogTmF2SXRlbUNvbmZpZ1sncm91dGVyTGluayddKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVzdCA9IHRoaXMucmVzdE5vZGUobGluayk7XG4gICAgcmV0dXJuIHJlc3QubGVuZ3RoID09PSAwIHx8IHJlc3QgPT09ICdsaXN0JztcbiAgfVxuXG4gIHN1Ykl0ZW1zKCk6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdHJhbnNsYXRlPzogYm9vbGVhbjtcbiAgICByb3V0ZXJMaW5rPzogTmF2SXRlbUNvbmZpZ1sncm91dGVyTGluayddO1xuICB9PiB7XG4gICAgaWYgKCF0aGlzLmFjdGl2YXRlZFBhdGg/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByb3V0ZXJMaW5rID0gdGhpcy5hY3RpdmF0ZWRQYXRoLmF0KC0xKS5yb3V0ZXJMaW5rO1xuXG4gICAgY29uc3QgcmVzdCA9IHRoaXMucmVzdE5vZGUocm91dGVyTGluaylcbiAgICAgIC5zcGxpdCgnLycpXG4gICAgICAuZmlsdGVyKHYgPT4gISF2KTtcblxuICAgIGlmICh0aGlzLl9zdWJJdGVtcykge1xuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fc3ViSXRlbXMocmVzdCwgcm91dGVyTGluayk7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGlmIChyZXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgaWYgKHJlc3RbMF0gPT09ICdsaXN0Jykge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAocmVzdFswXSA9PT0gJ2NyZWF0ZScpIHtcbiAgICAgICAgcmV0dXJuIFt7IG5hbWU6ICdjcmVhdGUnLCB0cmFuc2xhdGU6IHRydWUgfV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlc3QubGVuZ3RoID09PSAyICYmIHJlc3RbMF0gPT09ICd1cGRhdGUnKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogcmVzdFsxXSxcbiAgICAgICAgICByb3V0ZXJMaW5rOiByb3V0ZXJMaW5rLmNvbmNhdChbJ2RldGFpbCcsIHJlc3RbMV1dKSxcbiAgICAgICAgfSxcbiAgICAgICAgeyBuYW1lOiAndXBkYXRlJywgdHJhbnNsYXRlOiB0cnVlIH0sXG4gICAgICBdO1xuICAgIH1cbiAgICBpZiAocmVzdC5sZW5ndGggPT09IDIgJiYgcmVzdFswXSA9PT0gJ2RldGFpbCcpIHtcbiAgICAgIHJldHVybiBbeyBuYW1lOiByZXN0WzFdIH1dO1xuICAgIH1cblxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgY29uc29sZS5lcnJvcihcIlVSTCBjYW4ndCBtYXRjaCBhbnkgZGVmYXVsdCBicmVhZGNydW1iOlwiLCB0aGlzLnVybCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcm9vdFBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZhdGVkUGF0aD8uYXQoLTEpXG4gICAgICA/IHRoaXMubGlua1RvVXJsKHRoaXMuYWN0aXZhdGVkUGF0aC5hdCgtMSkucm91dGVyTGluaylcbiAgICAgIDogJy8nO1xuICB9XG5cbiAgbG9hZExvdHRpZUpzb24oaWNvbjogc3RyaW5nKSB7XG4gICAgY29uc3QgZGF0YSA9IHNpZ25hbDx1bmtub3duPihudWxsKTtcblxuICAgIGZldGNoKGljb24pXG4gICAgICAudGhlbihyZXMgPT4gcmVzLmpzb24oKSlcbiAgICAgIC50aGVuKGpzb24gPT4ge1xuICAgICAgICBkYXRhLnNldChqc29uKTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUFjdGl2YXRlZFBhdGgoKSB7XG4gICAgdGhpcy5hY3RpdmF0ZWRQYXRoID1cbiAgICAgIHRoaXMuYWN0aXZhdGVkS2V5ICYmIHRoaXMuaW50ZXJuYWxDb25maWdzXG4gICAgICAgID8gZmluZE5hdlBhdGg8TmF2SXRlbUNvbmZpZz4oaXRlbSA9PiBpdGVtLmtleSA9PT0gdGhpcy5hY3RpdmF0ZWRLZXkpKFxuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbENvbmZpZ3MsXG4gICAgICAgICAgKVxuICAgICAgICA6IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSByZXN0Tm9kZShsaW5rOiBOYXZJdGVtQ29uZmlnWydyb3V0ZXJMaW5rJ10pIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmxpbmtUb1VybChsaW5rKTtcbiAgICBpZiAoIXRoaXMudXJsLnN0YXJ0c1dpdGgodXJsKSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCBlbmRJbmRleCA9IGZpbmRJbmRleChjID0+IGMgPT09ICc/JyB8fCBjID09PSAnIycsIHRoaXMudXJsKTtcbiAgICByZXR1cm4gdGhpcy51cmwuc2xpY2UoXG4gICAgICB1cmwubGVuZ3RoICsgMSxcbiAgICAgIGVuZEluZGV4ID09PSAtMSA/IHRoaXMudXJsLmxlbmd0aCA6IGVuZEluZGV4LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxpbmtUb1VybChsaW5rOiBOYXZJdGVtQ29uZmlnWydyb3V0ZXJMaW5rJ10pOiBzdHJpbmcge1xuICAgIHJldHVybiBsaW5rLnJlZHVjZVJpZ2h0PHN0cmluZz4oKGFjYywgY3VycikgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjdXJyID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICc7JyArXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoY3VyciBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KVxuICAgICAgICAgICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9PSR7dmFsdWV9YClcbiAgICAgICAgICAgIC5qb2luKCcnKSArXG4gICAgICAgICAgYWNjXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3Vyci5zdGFydHNXaXRoKCcvJykgPyBjdXJyICsgYWNjIDogJy8nICsgY3VyciArIGFjYztcbiAgICB9LCAnJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEluZGV4KGNvbXBhcmU6ICh2OiBzdHJpbmcpID0+IGJvb2xlYW4sIHZhbHVlOiBzdHJpbmcpIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChjb21wYXJlKHZhbHVlLmNoYXJBdChpKSkpIHtcbiAgICAgIHJldHVybiBpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAtMTtcbn1cbiIsIjxhdWktYnJlYWRjcnVtYj5cbiAgQGlmIChhY3RpdmF0ZWRQYXRoPy5sZW5ndGgpIHtcbiAgICBAZm9yIChpdGVtIG9mIGFjdGl2YXRlZFBhdGg7IHRyYWNrIGl0ZW0ua2V5OyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcbiAgICAgIDxhdWktYnJlYWRjcnVtYi1pdGVtPlxuICAgICAgICBAaWYgKGl0ZW0ucm91dGVyTGluayAmJiAhaXNTYW1lVXJsKGl0ZW0ucm91dGVyTGluaykpIHtcbiAgICAgICAgICA8YVxuICAgICAgICAgICAgY2xhc3M9XCJpdGVtXCJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uOyBjb250ZXh0OiB7IGl0ZW0sIGluTGluazogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5sYWJlbCB8fCAoaXRlbS5uYW1lIHwgdHJhbnNsYXRlKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbVwiPlxuICAgICAgICAgICAgQGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uOyBjb250ZXh0OiB7IGl0ZW0sIGluTGluazogZmFsc2UgfVwiXG4gICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfHwgKGl0ZW0ubmFtZSB8IHRyYW5zbGF0ZSkgfX08L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgICA8L2F1aS1icmVhZGNydW1iLWl0ZW0+XG4gICAgfVxuICB9XG4gIEBpZiAoY3VzdG9tVGVtcGxhdGVTdGF0ZSA9PT0gJ3JlYWR5Jykge1xuICAgIDxuZy1jb250YWluZXJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbVRlbXBsYXRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcm9vdFBhdGgoKSB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIH1cbiAgQGlmIChjdXN0b21UZW1wbGF0ZVN0YXRlICE9PSAnaW5pdGlhbGluZycgJiYgIWN1c3RvbVRlbXBsYXRlKSB7XG4gICAgQGZvciAoaXRlbSBvZiBzdWJJdGVtcygpOyB0cmFjayBpdGVtLm5hbWUpIHtcbiAgICAgIDxhdWktYnJlYWRjcnVtYi1pdGVtPlxuICAgICAgICBAaWYgKGl0ZW0ucm91dGVyTGluaykge1xuICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiPnt7XG4gICAgICAgICAgICBpdGVtLnRyYW5zbGF0ZSA/IChpdGVtLm5hbWUgfCB0cmFuc2xhdGUpIDogaXRlbS5uYW1lXG4gICAgICAgICAgfX08L2E+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxzcGFuPnt7XG4gICAgICAgICAgICBpdGVtLnRyYW5zbGF0ZSA/IChpdGVtLm5hbWUgfCB0cmFuc2xhdGUpIDogaXRlbS5uYW1lXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvYXVpLWJyZWFkY3J1bWItaXRlbT5cbiAgICB9XG4gIH1cbjwvYXVpLWJyZWFkY3J1bWI+XG5cbjxuZy10ZW1wbGF0ZVxuICAjaWNvblxuICBsZXQtaXRlbT1cIml0ZW1cIlxuICBsZXQtaW5MaW5rPVwiaW5MaW5rXCJcbj5cbiAgQGlmIChpdGVtLmljb24gJiYgYW5pbURhdGFNYXBbaXRlbS5pY29uXSkge1xuICAgIDxhY2wtbmF2LWxvdHRpZS1pY29uXG4gICAgICBbZnJhbWVdPVwiaW5MaW5rID8gLTEgOiAwXCJcbiAgICAgIFthbmltRGF0YV09XCJhbmltRGF0YU1hcFtpdGVtLmljb25dXCJcbiAgICA+PC9hY2wtbmF2LWxvdHRpZS1pY29uPlxuICB9IEBlbHNlIGlmIChpdGVtLmljb25Mb3R0aWVKc29uKSB7XG4gICAgQGlmIChpdGVtLmljb25Mb3R0aWVKc29uIHwgcHVyZTogbG9hZExvdHRpZUpzb247IGFzIGFuaW1EYXRhKSB7XG4gICAgICA8YWNsLW5hdi1sb3R0aWUtaWNvblxuICAgICAgICBbZnJhbWVdPVwiaW5MaW5rID8gLTEgOiAwXCJcbiAgICAgICAgW2FuaW1EYXRhXT1cImFuaW1EYXRhKClcIlxuICAgICAgPjwvYWNsLW5hdi1sb3R0aWUtaWNvbj5cbiAgICB9XG4gIH0gQGVsc2UgaWYgKGl0ZW0uaWNvbkltZ1NyYykge1xuICAgIDxpbWcgW3NyY109XCJpdGVtLmljb25JbWdTcmMgfCBhY2xTYW5pdGl6ZTogJ3VybCdcIiAvPlxuICB9IEBlbHNlIGlmIChpdGVtLmljb25JbWdEYXRhIHx8IGl0ZW0uaWNvbkRhdGEpIHtcbiAgICA8aW1nXG4gICAgICBbc3JjXT1cIlxuICAgICAgICBpdGVtLmljb25JbWdEYXRhIHx8IGl0ZW0uaWNvbkRhdGEgfCBhY2xJbWFnZUhlYWRlciB8IGFjbFNhbml0aXplOiAndXJsJ1xuICAgICAgXCJcbiAgICAvPlxuICB9IEBlbHNlIGlmIChpdGVtLmljb25TdGF0aWMpIHtcbiAgICA8YXVpLWljb24gW2ljb25dPVwiaXRlbS5pY29uU3RhdGljXCI+PC9hdWktaWNvbj5cbiAgfSBAZWxzZSB7XG4gICAgPGFjbC1uYXYtbG90dGllLWljb25cbiAgICAgIFtmcmFtZV09XCJpbkxpbmsgPyAtMSA6IDBcIlxuICAgICAgW2FuaW1EYXRhXT1cImFuaW1EYXRhTWFwLnByb2R1Y3RcIlxuICAgID48L2FjbC1uYXYtbG90dGllLWljb24+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
375
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9uYXZpZ2F0aW9uL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9uYXZpZ2F0aW9uL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUdULE1BQU0sRUFHTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5QixPQUFPLEVBQ0wsYUFBYSxFQUNiLFFBQVEsRUFDUixZQUFZLEdBRWIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxXQUFXLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2QyxPQUFPLEVBQ0ws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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWRjcnVtYk1vZHVsZSwgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIGlzRGV2TW9kZSxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIHNpZ25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIEltZ0hlYWRlclBpcGUsXG4gIFB1cmVQaXBlLFxuICBTYW5pdGl6ZVBpcGUsXG4gIFN0cmluZ01hcCxcbn0gZnJvbSAnLi4vLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEdyaWRMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9ncmlkLWxheW91dC9tb2R1bGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3RyYW5zbGF0ZS90cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgYW5pbURhdGFNYXAgZnJvbSAnLi4vbG90dGllLWljb25zL2FuaW1hdGlvbi1kYXRhJztcbmltcG9ydCB7IE5hdkxvdHRpZUljb25EaXJlY3RpdmUgfSBmcm9tICcuLi9sb3R0aWUtaWNvbnMvbG90dGllLWljb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IE5hdkdyb3VwQ29uZmlnLCBOYXZJdGVtQ29uZmlnIH0gZnJvbSAnLi4vbmF2LW1lbnUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBmaW5kTmF2UGF0aCB9IGZyb20gJy4uL3V0aWxzJztcblxuaW1wb3J0IHtcbiAgQnJlYWRjcnVtYlNlcnZpY2UsXG4gIEJyZWFkY3J1bWJUZW1wbGF0ZVN0YXRlLFxufSBmcm9tICcuL2JyZWFkY3J1bWIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1icmVhZGNydW1iJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWIudGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JyZWFkY3J1bWIuc3R5bGUuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEJyZWFkY3J1bWJNb2R1bGUsXG4gICAgUm91dGVyTGluayxcbiAgICBOYXZMb3R0aWVJY29uRGlyZWN0aXZlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBHcmlkTGF5b3V0TW9kdWxlLFxuICAgIFNhbml0aXplUGlwZSxcbiAgICBJbWdIZWFkZXJQaXBlLFxuICAgIEljb25Db21wb25lbnQsXG4gICAgUHVyZVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIGFuaW1EYXRhTWFwID0gYW5pbURhdGFNYXA7XG5cbiAgQElucHV0KClcbiAgY29uZmlnczogTmF2SXRlbUNvbmZpZ1tdO1xuXG4gIEBJbnB1dCgpXG4gIGdyb3VwczogTmF2R3JvdXBDb25maWdbXTtcblxuICBASW5wdXQoKVxuICBhY3RpdmF0ZWRLZXk6IHN0cmluZztcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3N1Ykl0ZW1zJylcbiAgX3N1Ykl0ZW1zOiAoXG4gICAgcmVzdDogc3RyaW5nW10sXG4gICAgbGFzdFJvdXRlTGluazogQXJyYXk8c3RyaW5nIHwgU3RyaW5nTWFwPixcbiAgKSA9PiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHRyYW5zbGF0ZT86IGJvb2xlYW47XG4gICAgcm91dGVyTGluaz86IE5hdkl0ZW1Db25maWdbJ3JvdXRlckxpbmsnXTtcbiAgfT4gfCB2b2lkO1xuXG4gIEBWaWV3Q2hpbGQoJ2ljb24nKVxuICBpY29uUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBhY3RpdmF0ZWRQYXRoOiBOYXZJdGVtQ29uZmlnW107XG4gIGN1c3RvbVRlbXBsYXRlU3RhdGU6IEJyZWFkY3J1bWJUZW1wbGF0ZVN0YXRlO1xuICBjdXN0b21UZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgcHJpdmF0ZSBpbnRlcm5hbENvbmZpZ3M6IE5hdkl0ZW1Db25maWdbXSA9IFtdO1xuICBwcml2YXRlIHVybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogQnJlYWRjcnVtYlNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMudXJsID0gcm91dGVyLnVybDtcbiAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE5hdmlnYXRpb25FbmQpID0+IHtcbiAgICAgICAgdGhpcy51cmwgPSBldmVudC51cmxBZnRlclJlZGlyZWN0cztcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VydmljZS50ZW1wbGF0ZVN0YXRlJC5zdWJzY3JpYmUoc3RhdGUgPT4ge1xuICAgICAgdGhpcy5jdXN0b21UZW1wbGF0ZVN0YXRlID0gc3RhdGU7XG4gICAgICB0aGlzLmN1c3RvbVRlbXBsYXRlID0gdGhpcy5zZXJ2aWNlLnRlbXBsYXRlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuY29uZmlncyB8fCBjaGFuZ2VzLmdyb3Vwcykge1xuICAgICAgdGhpcy5pbnRlcm5hbENvbmZpZ3MgPVxuICAgICAgICB0aGlzLmNvbmZpZ3MgPz9cbiAgICAgICAgdGhpcy5ncm91cHM/LnJlZHVjZShcbiAgICAgICAgICAoYWNjLCBncm91cCkgPT4gYWNjLmNvbmNhdChncm91cC5pdGVtcyksXG4gICAgICAgICAgW10gYXMgTmF2SXRlbUNvbmZpZ1tdLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlQWN0aXZhdGVkUGF0aCgpO1xuICB9XG5cbiAgaXNTYW1lVXJsKGxpbms6IE5hdkl0ZW1Db25maWdbJ3JvdXRlckxpbmsnXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlc3QgPSB0aGlzLnJlc3ROb2RlKGxpbmspO1xuICAgIHJldHVybiByZXN0Lmxlbmd0aCA9PT0gMCB8fCByZXN0ID09PSAnbGlzdCc7XG4gIH1cblxuICBzdWJJdGVtcygpOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHRyYW5zbGF0ZT86IGJvb2xlYW47XG4gICAgcm91dGVyTGluaz86IE5hdkl0ZW1Db25maWdbJ3JvdXRlckxpbmsnXTtcbiAgfT4ge1xuICAgIGlmICghdGhpcy5hY3RpdmF0ZWRQYXRoPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgcm91dGVyTGluayA9IHRoaXMuYWN0aXZhdGVkUGF0aC5hdCgtMSkucm91dGVyTGluaztcblxuICAgIGNvbnN0IHJlc3QgPSB0aGlzLnJlc3ROb2RlKHJvdXRlckxpbmspXG4gICAgICAuc3BsaXQoJy8nKVxuICAgICAgLmZpbHRlcih2ID0+ICEhdik7XG5cbiAgICBpZiAodGhpcy5fc3ViSXRlbXMpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3N1Ykl0ZW1zKHJlc3QsIHJvdXRlckxpbmspO1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyZXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBpZiAocmVzdC5sZW5ndGggPT09IDEpIHtcbiAgICAgIGlmIChyZXN0WzBdID09PSAnbGlzdCcpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3RbMF0gPT09ICdjcmVhdGUnKSB7XG4gICAgICAgIHJldHVybiBbeyBuYW1lOiAnY3JlYXRlJywgdHJhbnNsYXRlOiB0cnVlIH1dO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyZXN0Lmxlbmd0aCA9PT0gMiAmJiByZXN0WzBdID09PSAndXBkYXRlJykge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IHJlc3RbMV0sXG4gICAgICAgICAgcm91dGVyTGluazogcm91dGVyTGluay5jb25jYXQoWydkZXRhaWwnLCByZXN0WzFdXSksXG4gICAgICAgIH0sXG4gICAgICAgIHsgbmFtZTogJ3VwZGF0ZScsIHRyYW5zbGF0ZTogdHJ1ZSB9LFxuICAgICAgXTtcbiAgICB9XG4gICAgaWYgKHJlc3QubGVuZ3RoID09PSAyICYmIHJlc3RbMF0gPT09ICdkZXRhaWwnKSB7XG4gICAgICByZXR1cm4gW3sgbmFtZTogcmVzdFsxXSB9XTtcbiAgICB9XG5cbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJVUkwgY2FuJ3QgbWF0Y2ggYW55IGRlZmF1bHQgYnJlYWRjcnVtYjpcIiwgdGhpcy51cmwpO1xuICAgIH1cblxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJvb3RQYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmFjdGl2YXRlZFBhdGg/LmF0KC0xKVxuICAgICAgPyB0aGlzLmxpbmtUb1VybCh0aGlzLmFjdGl2YXRlZFBhdGguYXQoLTEpLnJvdXRlckxpbmspXG4gICAgICA6ICcvJztcbiAgfVxuXG4gIGxvYWRMb3R0aWVKc29uKGljb246IHN0cmluZykge1xuICAgIGNvbnN0IGRhdGEgPSBzaWduYWw8dW5rbm93bj4obnVsbCk7XG5cbiAgICBmZXRjaChpY29uKVxuICAgICAgLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpXG4gICAgICAudGhlbihqc29uID0+IHtcbiAgICAgICAgZGF0YS5zZXQoanNvbik7XG4gICAgICB9KTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVBY3RpdmF0ZWRQYXRoKCkge1xuICAgIHRoaXMuYWN0aXZhdGVkUGF0aCA9XG4gICAgICB0aGlzLmFjdGl2YXRlZEtleSAmJiB0aGlzLmludGVybmFsQ29uZmlnc1xuICAgICAgICA/IGZpbmROYXZQYXRoPE5hdkl0ZW1Db25maWc+KGl0ZW0gPT4gaXRlbS5rZXkgPT09IHRoaXMuYWN0aXZhdGVkS2V5KShcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxDb25maWdzLFxuICAgICAgICAgIClcbiAgICAgICAgOiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzdE5vZGUobGluazogTmF2SXRlbUNvbmZpZ1sncm91dGVyTGluayddKSB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5saW5rVG9VcmwobGluayk7XG4gICAgaWYgKCF0aGlzLnVybC5zdGFydHNXaXRoKHVybCkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3QgZW5kSW5kZXggPSBmaW5kSW5kZXgoYyA9PiBjID09PSAnPycgfHwgYyA9PT0gJyMnLCB0aGlzLnVybCk7XG4gICAgcmV0dXJuIHRoaXMudXJsLnNsaWNlKFxuICAgICAgdXJsLmxlbmd0aCArIDEsXG4gICAgICBlbmRJbmRleCA9PT0gLTEgPyB0aGlzLnVybC5sZW5ndGggOiBlbmRJbmRleCxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBsaW5rVG9VcmwobGluazogTmF2SXRlbUNvbmZpZ1sncm91dGVyTGluayddKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbGluay5yZWR1Y2VSaWdodDxzdHJpbmc+KChhY2MsIGN1cnIpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgY3VyciA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAnOycgK1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGN1cnIgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPilcbiAgICAgICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT0ke3ZhbHVlfWApXG4gICAgICAgICAgICAuam9pbignJykgK1xuICAgICAgICAgIGFjY1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnIuc3RhcnRzV2l0aCgnLycpID8gY3VyciArIGFjYyA6ICcvJyArIGN1cnIgKyBhY2M7XG4gICAgfSwgJycpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmRJbmRleChjb21wYXJlOiAodjogc3RyaW5nKSA9PiBib29sZWFuLCB2YWx1ZTogc3RyaW5nKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoY29tcGFyZSh2YWx1ZS5jaGFyQXQoaSkpKSB7XG4gICAgICByZXR1cm4gaTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gLTE7XG59XG4iLCI8YXVpLWJyZWFkY3J1bWI+XG4gIEBpZiAoYWN0aXZhdGVkUGF0aD8ubGVuZ3RoKSB7XG4gICAgQGZvciAoaXRlbSBvZiBhY3RpdmF0ZWRQYXRoOyB0cmFjayBpdGVtLmtleTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICA8YXVpLWJyZWFkY3J1bWItaXRlbT5cbiAgICAgICAgQGlmIChpdGVtLnJvdXRlckxpbmsgJiYgIWlzU2FtZVVybChpdGVtLnJvdXRlckxpbmspKSB7XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGNsYXNzPVwiaXRlbVwiXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlckxpbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvbjsgY29udGV4dDogeyBpdGVtLCBpbkxpbms6IHRydWUgfVwiXG4gICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfHwgKGl0ZW0ubmFtZSB8IHRyYW5zbGF0ZSkgfX08L3NwYW4+XG4gICAgICAgICAgPC9hPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW1cIj5cbiAgICAgICAgICAgIEBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvbjsgY29udGV4dDogeyBpdGVtLCBpbkxpbms6IGZhbHNlIH1cIlxuICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3Bhbj57eyBpdGVtLmxhYmVsIHx8IChpdGVtLm5hbWUgfCB0cmFuc2xhdGUpIH19PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9hdWktYnJlYWRjcnVtYi1pdGVtPlxuICAgIH1cbiAgfVxuICBAaWYgKGN1c3RvbVRlbXBsYXRlU3RhdGUgPT09ICdyZWFkeScpIHtcbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21UZW1wbGF0ZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHJvb3RQYXRoKCkgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICB9XG4gIEBpZiAoY3VzdG9tVGVtcGxhdGVTdGF0ZSAhPT0gJ2luaXRpYWxpbmcnICYmICFjdXN0b21UZW1wbGF0ZSkge1xuICAgIEBmb3IgKGl0ZW0gb2Ygc3ViSXRlbXMoKTsgdHJhY2sgaXRlbS5uYW1lKSB7XG4gICAgICA8YXVpLWJyZWFkY3J1bWItaXRlbT5cbiAgICAgICAgQGlmIChpdGVtLnJvdXRlckxpbmspIHtcbiAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlckxpbmtcIj57e1xuICAgICAgICAgICAgaXRlbS50cmFuc2xhdGUgPyAoaXRlbS5uYW1lIHwgdHJhbnNsYXRlKSA6IGl0ZW0ubmFtZVxuICAgICAgICAgIH19PC9hPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8c3Bhbj57e1xuICAgICAgICAgICAgaXRlbS50cmFuc2xhdGUgPyAoaXRlbS5uYW1lIHwgdHJhbnNsYXRlKSA6IGl0ZW0ubmFtZVxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICB9XG4gICAgICA8L2F1aS1icmVhZGNydW1iLWl0ZW0+XG4gICAgfVxuICB9XG48L2F1aS1icmVhZGNydW1iPlxuXG48bmctdGVtcGxhdGVcbiAgI2ljb25cbiAgbGV0LWl0ZW09XCJpdGVtXCJcbiAgbGV0LWluTGluaz1cImluTGlua1wiXG4+XG4gIEBpZiAoaXRlbS5pY29uICYmIGFuaW1EYXRhTWFwW2l0ZW0uaWNvbl0pIHtcbiAgICA8YWNsLW5hdi1sb3R0aWUtaWNvblxuICAgICAgW2ZyYW1lXT1cImluTGluayA/IC0xIDogMFwiXG4gICAgICBbYW5pbURhdGFdPVwiYW5pbURhdGFNYXBbaXRlbS5pY29uXVwiXG4gICAgPjwvYWNsLW5hdi1sb3R0aWUtaWNvbj5cbiAgfSBAZWxzZSBpZiAoaXRlbS5pY29uTG90dGllSnNvbikge1xuICAgIEBpZiAoaXRlbS5pY29uTG90dGllSnNvbiB8IHB1cmU6IGxvYWRMb3R0aWVKc29uOyBhcyBhbmltRGF0YSkge1xuICAgICAgPGFjbC1uYXYtbG90dGllLWljb25cbiAgICAgICAgW2ZyYW1lXT1cImluTGluayA/IC0xIDogMFwiXG4gICAgICAgIFthbmltRGF0YV09XCJhbmltRGF0YSgpXCJcbiAgICAgID48L2FjbC1uYXYtbG90dGllLWljb24+XG4gICAgfVxuICB9IEBlbHNlIGlmIChpdGVtLmljb25JbWdTcmMpIHtcbiAgICA8aW1nIFtzcmNdPVwiaXRlbS5pY29uSW1nU3JjIHwgYWNsU2FuaXRpemU6ICd1cmwnXCIgLz5cbiAgfSBAZWxzZSBpZiAoaXRlbS5pY29uSW1nRGF0YSB8fCBpdGVtLmljb25EYXRhKSB7XG4gICAgPGltZ1xuICAgICAgW3NyY109XCJcbiAgICAgICAgaXRlbS5pY29uSW1nRGF0YSB8fCBpdGVtLmljb25EYXRhIHwgYWNsSW1hZ2VIZWFkZXIgfCBhY2xTYW5pdGl6ZTogJ3VybCdcbiAgICAgIFwiXG4gICAgLz5cbiAgfSBAZWxzZSBpZiAoaXRlbS5pY29uU3RhdGljKSB7XG4gICAgPGF1aS1pY29uIFtpY29uXT1cIml0ZW0uaWNvblN0YXRpY1wiPjwvYXVpLWljb24+XG4gIH0gQGVsc2Uge1xuICAgIDxhY2wtbmF2LWxvdHRpZS1pY29uXG4gICAgICBbZnJhbWVdPVwiaW5MaW5rID8gLTEgOiAwXCJcbiAgICAgIFthbmltRGF0YV09XCJhbmltRGF0YU1hcC5wcm9kdWN0XCJcbiAgICA+PC9hY2wtbmF2LWxvdHRpZS1pY29uPlxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -3,14 +3,13 @@ import { TooltipTrigger } from '@alauda/ui';
|
|
|
3
3
|
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, ViewChild, ElementRef, } from '@angular/core';
|
|
4
4
|
import { once } from 'lodash-es';
|
|
5
5
|
import { BehaviorSubject, combineLatest, merge, Observable, ReplaySubject, distinctUntilChanged, map, } from 'rxjs';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { PageComponent } from '../../public-api';
|
|
6
|
+
import { publishRef, ObservableInput } from '../../../core/public-api';
|
|
7
|
+
import { COLLAPSE_MENU_KEY, IframeConfigService, } from '../../../iframe-config/public-api';
|
|
8
|
+
import { PageComponent } from '../../../page-scaffold/page/page.component';
|
|
10
9
|
import { filterEmptyNode } from '../utils';
|
|
11
10
|
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "
|
|
13
|
-
import * as i2 from "
|
|
11
|
+
import * as i1 from "../../../page-scaffold/page/page.component";
|
|
12
|
+
import * as i2 from "../../../iframe-config/public-api";
|
|
14
13
|
const _c0 = ["container"];
|
|
15
14
|
const _c1 = ["content"];
|
|
16
15
|
const _c2 = () => ({ bottomDistance: 20 });
|
|
@@ -184,4 +183,4 @@ __decorate([
|
|
|
184
183
|
args: ['content', { read: ElementRef }]
|
|
185
184
|
}] }); })();
|
|
186
185
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NavMenuComponent, { className: "NavMenuComponent" }); })();
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BhZ2Utc2NhZmZvbGQvbmF2aWdhdGlvbi9uYXYtbWVudS9uYXYtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9uYXZpZ2F0aW9uL25hdi1tZW51L25hdi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxpQkFBaUIsRUFJakIsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEtBQUssRUFDTCxVQUFVLEVBQ1YsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7Ozs7SUNuQnpDLG1DQUVvQjs7OztJQWN0Qiw4QkFPQzs7SUFEQyx5S0FBUyx1QkFBZ0IsS0FBQztJQUUxQiw4QkFFWTtJQUNkLGlCQUFNOzs7SUFSSiw4RkFFRTtJQUlBLGVB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QUFVOzs7Ozs7O1lDOUUxQyxpQ0FPQztZQURDLG9KQUFnQixrQkFBYyxLQUFDO1lBRS9CLDJGQUVDO1lBRUQsaUNBSUM7O1lBQ0MscUNBR21COztZQUV2QixBQURFLGlCQUFNLEVBQ0Y7WUFFTixpRUFPQzs7WUE1QkMscUVBRUU7WUFJQyxlQUF5QztZQUF6Qyw2SEFBeUM7WUFNMUMsY0FBeUQ7WUFBekQsdUZBQXlEO1lBR3ZELGVBQWtDO1lBQ2xDLEFBREEsa0VBQWtDLHNCQUNqQjtZQU1wQixlQUE0QztZQUE1QyxnSUFBNEM7OztBRHdCN0M7SUFEQyxlQUFlLEVBQUU7OEJBQ0YsVUFBVTt1REFBUztBQU1uQztJQURDLGVBQWUsRUFBRTs4QkFDSixVQUFVO3FEQUFVO0FBU2xDO0lBREMsZUFBZSxFQUFFOzhCQUNQLFVBQVU7a0RBQWtCO0FBTXZDO0lBREMsZUFBZSxFQUFFOzhCQUNSLFVBQVU7aURBQW1CO2lGQTdCNUIsZ0JBQWdCO2NBUjVCLFNBQVM7MkJBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLHVCQUNoQixLQUFLO2dGQU8xQixZQUFZO2tCQURYLEtBQUs7WUFJTixhQUFhLE1BR2IsVUFBVTtrQkFEVCxLQUFLO1lBSU4sV0FBVyxNQUdYLFdBQVc7a0JBRFYsS0FBSztZQUlOLE9BQU87a0JBRE4sS0FBSztZQUlOLFFBQVEsTUFHUixNQUFNO2tCQURMLEtBQUs7WUFJTixPQUFPLE1BR1AsY0FBYztrQkFEYixLQUFLO1lBSU4sU0FBUztrQkFEUixTQUFTO21CQUFDLFdBQVc7WUFJdEIsT0FBTztrQkFETixTQUFTO21CQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7O2tGQXJDL0IsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9vbHRpcFRyaWdnZXIgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIEFmdGVyVmlld0luaXQsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBvbmNlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGUsXG4gIFJlcGxheVN1YmplY3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJZnJhbWVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vL2lmcmFtZS1jb25maWcvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0LCBwdWJsaXNoUmVmIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENPTExBUFNFX01FTlVfS0VZIH0gZnJvbSAnLi4vLi4vLi4vaWZyYW1lLWNvbmZpZy9jb25zdGFudHMnO1xuaW1wb3J0IHsgUGFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgZmlsdGVyRW1wdHlOb2RlIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBOYXZHcm91cENvbmZpZywgTmF2SXRlbUNvbmZpZyB9IGZyb20gJy4vbmF2LW1lbnUudHlwZXMnO1xuXG5jb25zdCBTSURFTkFWX0FOSSA9ICdzaWRlbmF2LWFuaSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1uYXYtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXYtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hdi1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgTmF2TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBleHBhbmRlZEtleSQkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb2N1c2VkUm9vdEtleSQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gIEBJbnB1dCgpXG4gIGFjdGl2YXRlZEtleTogc3RyaW5nO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBhY3RpdmF0ZWRLZXkkITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIEBJbnB1dCgpXG4gIGlzQ29sbGFwc2UgPSB0aGlzLmlmcmFtZUNvbmZpZ1NlcnZpY2UuaXNDb2xsYXBzZU1lbnU7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGlzQ29sbGFwc2UkITogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBASW5wdXQoKVxuICB0cmlnZ2VyVHlwZTogVG9vbHRpcFRyaWdnZXIgPSBUb29sdGlwVHJpZ2dlci5Ib3ZlcjtcblxuICBASW5wdXQoKVxuICBjb25maWdzOiBOYXZJdGVtQ29uZmlnW107XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGNvbmZpZ3MkITogT2JzZXJ2YWJsZTxOYXZJdGVtQ29uZmlnW10+O1xuXG4gIEBJbnB1dCgpXG4gIGdyb3VwczogTmF2R3JvdXBDb25maWdbXTtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgZ3JvdXBzJCE6IE9ic2VydmFibGU8TmF2R3JvdXBDb25maWdbXT47XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZUFuaUljb24gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdjb250YWluZXInKVxuICBjb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBjb250ZW50OiBFbGVtZW50UmVmO1xuXG4gIGZpbHRlcmVkQ29uZmlncyQgPSB0aGlzLmNvbmZpZ3MkLnBpcGUobWFwKGZpbHRlckVtcHR5Tm9kZSksIHB1Ymxpc2hSZWYoKSk7XG4gIHNob3dTaGFkb3ckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIGlzSW50ZXJzZWN0aW5nOiBib29sZWFuO1xuICBpdGVtcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmZpbHRlcmVkQ29uZmlncyQsIHRoaXMuZ3JvdXBzJF0pLnBpcGUoXG4gICAgLy8g5aSE55CG5oiQTmF2SXRlbUNvbmZpZ+aVsOe7hFxuICAgIG1hcChcbiAgICAgIChbaXRlbXMsIGdyb3Vwc10pID0+XG4gICAgICAgIGl0ZW1zIHx8XG4gICAgICAgIChncm91cHNcbiAgICAgICAgICA/IGdyb3Vwcy5yZWR1Y2U8TmF2SXRlbUNvbmZpZ1tdPihcbiAgICAgICAgICAgICAgKHByZXYsIGN1cikgPT4gWy4uLnByZXYsIC4uLmN1ci5pdGVtc10sXG4gICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogW10pLFxuICAgICksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIHBhdGhzJCA9IHRoaXMuaXRlbXMkLnBpcGUoXG4gICAgbWFwKGl0ZW1zID0+IHRoaXMuZ2V0UGF0aHMoaXRlbXMpKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgYWN0aXZlS2V5cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnBhdGhzJCwgdGhpcy5hY3RpdmF0ZWRLZXkkXSkucGlwZShcbiAgICBtYXAoKFtwYXRocywga2V5XSkgPT4gdGhpcy5maW5kUGF0aEJ5TGFzdEtleShwYXRocywga2V5KSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIGV4cGFuZGVkS2V5cyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnBhdGhzJCxcbiAgICBtZXJnZSh0aGlzLmFjdGl2YXRlZEtleSQsIHRoaXMuZXhwYW5kZWRLZXkkJCksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbcGF0aHMsIGtleV0pID0+IHRoaXMuZmluZFBhdGhCeUxhc3RLZXkocGF0aHMsIGtleSkpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBmb2N1c2VkUm9vdEtleSQgPSB0aGlzLmZvY3VzZWRSb290S2V5JCQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VDcHQ6IFBhZ2VDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpZnJhbWVDb25maWdTZXJ2aWNlOiBJZnJhbWVDb25maWdTZXJ2aWNlLFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVDb2xsYXBzZUNsYXNzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnBhZ2VDcHQucmVtb3ZlQ2xhc3MoU0lERU5BVl9BTkkpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IG9iID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgZW50cmllcyA9PiB7XG4gICAgICAgIGNvbnN0IHsgaXNJbnRlcnNlY3RpbmcgfSA9IGVudHJpZXNbMF07XG4gICAgICAgIHRoaXMuaXNJbnRlcnNlY3RpbmcgPSBpc0ludGVyc2VjdGluZztcbiAgICAgICAgdGhpcy5zaG93U2hhZG93JC5uZXh0KCFpc0ludGVyc2VjdGluZyk7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICByb290OiB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuICAgICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICAgIC8vIOWboOS4uiAuYWNsLW5hdi1tZW51IOW6lemDqOaciemineWklueahCAyMHB4IOmXtOi3nVxuICAgICAgICByb290TWFyZ2luOiAnMHB4IDBweCAyMHB4IDBweCcsXG4gICAgICB9LFxuICAgICk7XG4gICAgb2Iub2JzZXJ2ZSh0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBzY3JvbGwodHlwZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICB0aGlzLnNob3dTaGFkb3ckLm5leHQodHlwZSAhPT0gJ2JvdHRvbScpO1xuICAgIH1cbiAgfVxuXG4gIC8vIOmAmui/h2tleeaJvuWIsOS7luWPiuWFtueItueahHBhdGjot6/lvoRcbiAgcHJpdmF0ZSBmaW5kUGF0aEJ5TGFzdEtleShwYXRoczogc3RyaW5nW11bXSwga2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcGF0aHMuZmluZChwYXRoID0+IFsuLi5wYXRoXS5wb3AoKSA9PT0ga2V5KTtcbiAgfVxuXG4gIC8vIOS7pU5hdkl0ZW1Db25maWfnmoRrZXnnu4TmiJDoh6rkuIrogIzkuIvnmoRwYXRo6Lev5b6E77yM57G75Ly8WydhJywgJ2EvYiddXG4gIHByaXZhdGUgZ2V0UGF0aHMoaXRlbXM6IE5hdkl0ZW1Db25maWdbXSwgcGFyZW50Pzogc3RyaW5nW10pOiBzdHJpbmdbXVtdIHtcbiAgICBpZiAoIWl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgcHJlID0gcGFyZW50ID8gWy4uLnBhcmVudF0gOiBbXTtcbiAgICByZXR1cm4gaXRlbXMucmVkdWNlKFxuICAgICAgKHByZXYsIGN1cikgPT4gW1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICAuLi50aGlzLmdldFBhdGhzKGN1ci5jaGlsZHJlbiwgWy4uLnByZSwgY3VyLmtleV0pLFxuICAgICAgXSxcbiAgICAgIGl0ZW1zLm1hcChpdGVtID0+IFsuLi5wcmUsIGl0ZW0ua2V5XSksXG4gICAgKTtcbiAgfVxuXG4gIGV4cGFuZGVkS2V5Q2hhbmdlZChrZXk6IHN0cmluZykge1xuICAgIHRoaXMuZXhwYW5kZWRLZXkkJC5uZXh0KGtleSk7XG4gIH1cblxuICBmb2N1c2VkUm9vdEtleUNoYW5nZShrZXk6IHN0cmluZykge1xuICAgIHRoaXMuZm9jdXNlZFJvb3RLZXkkJC5uZXh0KGtleSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGFkZFNpZGVuYXZBbmkgPSBvbmNlKCgpID0+IHtcbiAgICB0aGlzLnBhZ2VDcHQuYWRkQ2xhc3MoU0lERU5BVl9BTkkpO1xuICB9KTtcblxuICB0b2dnbGVDb2xsYXBzZSgpIHtcbiAgICB0aGlzLmlzQ29sbGFwc2UgPSAhdGhpcy5pc0NvbGxhcHNlO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKENPTExBUFNFX01FTlVfS0VZLCBTdHJpbmcodGhpcy5pc0NvbGxhcHNlKSk7XG4gICAgdGhpcy5hZGRTaWRlbmF2QW5pKCk7IC8vIOW9k+eUqOaIt+esrOS4gOasoeS4u+WKqOWIh+aNoueKtuaAgeaXtua3u+WKoOWKqOaViOexu++8jOiAjOS4jeaYr+S4gOW8gOWni+Wwseacie+8jOmBv+WFjeWIneWni+WMluaXtuWFtuS7luagt+W8j+WIh+aNouW4puadpeeahOi/h+W6puWKqOaViFxuICAgIHRoaXMudXBkYXRlQ29sbGFwc2VDbGFzcygpO1xuICB9XG5cbiAgdXBkYXRlQ29sbGFwc2VDbGFzcygpIHtcbiAgICB0aGlzLnBhZ2VDcHRbdGhpcy5pc0NvbGxhcHNlID8gJ2FkZENsYXNzJyA6ICdyZW1vdmVDbGFzcyddKFxuICAgICAgJ3NpZGVuYXYtY29sbGFwc2UnLFxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJhY2wtbmF2LW1lbnVfX2NvbnRhaW5lciB0dy1oLWZ1bGxcIlxuICAjY29udGFpbmVyXG4gIFthY2xTY3JvbGxCb3JkZXJPYnNlcnZlcl09XCJ7XG4gICAgYm90dG9tRGlzdGFuY2U6IDIwLFxuICB9XCJcbiAgKHNjcm9sbEJvcmRlcik9XCJzY3JvbGwoJGV2ZW50KVwiXG4+XG4gIDxhY2wtbmF2LXNrZWxldG9uXG4gICAgKm5nSWY9XCIhY29uZmlncz8ubGVuZ3RoICYmICFncm91cHM/Lmxlbmd0aFwiXG4gID48L2FjbC1uYXYtc2tlbGV0b24+XG5cbiAgPGRpdlxuICAgICNjb250ZW50XG4gICAgY2xhc3M9XCJhY2wtbmF2LW1lbnUgdHctZmxleCB0dy1mbGV4LWNvbCB0dy1zZWxlY3Qtbm9uZSB0dy1yZWxhdGl2ZVwiXG4gICAgW25nQ2xhc3NdPVwiKGlzQ29sbGFwc2UkIHwgYXN5bmMpID8gJ2NvbGxhcHNlJyA6ICdleHBhbmQnXCJcbiAgPlxuICAgIDxhY2wtbmF2LWl0ZW0tdWxcbiAgICAgIFtpdGVtc109XCJmaWx0ZXJlZENvbmZpZ3MkIHwgYXN5bmNcIlxuICAgICAgW2dyb3Vwc109XCJncm91cHNcIlxuICAgID48L2FjbC1uYXYtaXRlbS11bD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdlxuICAqbmdJZj1cIiEoIWNvbmZpZ3M/Lmxlbmd0aCAmJiAhZ3JvdXBzPy5sZW5ndGgpXCJcbiAgY2xhc3M9XCJhY2wtbmF2LW1lbnVfX2NvbGxhcHNlLWJ1dHRvbiB0dy1mbGV4IHR3LWp1c3RpZnktZW5kXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdhY2wtbmF2LW1lbnVfX2NvbGxhcHNlLWJ1dHRvbi1zaGFkb3cnOiBzaG93U2hhZG93JCB8IGFzeW5jLFxuICB9XCJcbiAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKClcIlxuPlxuICA8YXVpLWljb25cbiAgICBbaWNvbl09XCJpc0NvbGxhcHNlID8gJ3Byb2Q6bGlzdF9leHBhbmRfcmlnaHQnIDogJ3Byb2Q6bGlzdF9mb2xkX2xlZnQnXCJcbiAgPjwvYXVpLWljb24+XG48L2Rpdj5cbiJdfQ==
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BhZ2Utc2NhZmZvbGQvbmF2aWdhdGlvbi9uYXYtbWVudS9uYXYtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9uYXZpZ2F0aW9uL25hdi1tZW51L25hdi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxpQkFBaUIsRUFJakIsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEtBQUssRUFDTCxVQUFVLEVBQ1YsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsbUJBQW1CLEdBQ3BCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7OztJQ3JCekMsbUNBRW9COzs7O0lBY3RCLDhCQU9DOztJQURDLHlLQUFTLHVCQUFnQixLQUFDO0lBRTFCLDhCQUVZO0lBQ2QsaUJBQU07OztJQVJKLDhGQUVFO0lBSUEsZUFBc0U7SUFBdEUsMkZBQXNFOztBREExRSxNQUFNLFdB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QWdCLGtCQUFjLEtBQUM7WUFFL0IsMkZBRUM7WUFFRCxpQ0FJQzs7WUFDQyxxQ0FHbUI7O1lBRXZCLEFBREUsaUJBQU0sRUFDRjtZQUVOLGlFQU9DOztZQTVCQyxxRUFFRTtZQUlDLGVBQXlDO1lBQXpDLDZIQUF5QztZQU0xQyxjQUF5RDtZQUF6RCx1RkFBeUQ7WUFHdkQsZUFBa0M7WUFDbEMsQUFEQSxrRUFBa0Msc0JBQ2pCO1lBTXBCLGVBQTRDO1lBQTVDLGdJQUE0Qzs7O0FEMEI3QztJQURDLGVBQWUsRUFBRTs4QkFDRixVQUFVO3VEQUFTO0FBTW5DO0lBREMsZUFBZSxFQUFFOzhCQUNKLFVBQVU7cURBQVU7QUFTbEM7SUFEQyxlQUFlLEVBQUU7OEJBQ1AsVUFBVTtrREFBa0I7QUFNdkM7SUFEQyxlQUFlLEVBQUU7OEJBQ1IsVUFBVTtpREFBbUI7aUZBN0I1QixnQkFBZ0I7Y0FSNUIsU0FBUzsyQkFDRSxjQUFjLG1CQUdQLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksdUJBQ2hCLEtBQUs7Z0ZBTzFCLFlBQVk7a0JBRFgsS0FBSztZQUlOLGFBQWEsTUFHYixVQUFVO2tCQURULEtBQUs7WUFJTixXQUFXLE1BR1gsV0FBVztrQkFEVixLQUFLO1lBSU4sT0FBTztrQkFETixLQUFLO1lBSU4sUUFBUSxNQUdSLE1BQU07a0JBREwsS0FBSztZQUlOLE9BQU8sTUFHUCxjQUFjO2tCQURiLEtBQUs7WUFJTixTQUFTO2tCQURSLFNBQVM7bUJBQUMsV0FBVztZQUl0QixPQUFPO2tCQUROLFNBQVM7bUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTs7a0ZBckMvQixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sdGlwVHJpZ2dlciB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG9uY2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBtZXJnZSxcbiAgT2JzZXJ2YWJsZSxcbiAgUmVwbGF5U3ViamVjdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHB1Ymxpc2hSZWYsIE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQge1xuICBDT0xMQVBTRV9NRU5VX0tFWSxcbiAgSWZyYW1lQ29uZmlnU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vaWZyYW1lLWNvbmZpZy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9wYWdlLXNjYWZmb2xkL3BhZ2UvcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgZmlsdGVyRW1wdHlOb2RlIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBOYXZHcm91cENvbmZpZywgTmF2SXRlbUNvbmZpZyB9IGZyb20gJy4vbmF2LW1lbnUudHlwZXMnO1xuXG5jb25zdCBTSURFTkFWX0FOSSA9ICdzaWRlbmF2LWFuaSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1uYXYtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXYtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hdi1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgTmF2TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBleHBhbmRlZEtleSQkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb2N1c2VkUm9vdEtleSQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gIEBJbnB1dCgpXG4gIGFjdGl2YXRlZEtleTogc3RyaW5nO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBhY3RpdmF0ZWRLZXkkITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIEBJbnB1dCgpXG4gIGlzQ29sbGFwc2UgPSB0aGlzLmlmcmFtZUNvbmZpZ1NlcnZpY2UuaXNDb2xsYXBzZU1lbnU7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGlzQ29sbGFwc2UkITogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBASW5wdXQoKVxuICB0cmlnZ2VyVHlwZTogVG9vbHRpcFRyaWdnZXIgPSBUb29sdGlwVHJpZ2dlci5Ib3ZlcjtcblxuICBASW5wdXQoKVxuICBjb25maWdzOiBOYXZJdGVtQ29uZmlnW107XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGNvbmZpZ3MkITogT2JzZXJ2YWJsZTxOYXZJdGVtQ29uZmlnW10+O1xuXG4gIEBJbnB1dCgpXG4gIGdyb3VwczogTmF2R3JvdXBDb25maWdbXTtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgZ3JvdXBzJCE6IE9ic2VydmFibGU8TmF2R3JvdXBDb25maWdbXT47XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZUFuaUljb24gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdjb250YWluZXInKVxuICBjb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBjb250ZW50OiBFbGVtZW50UmVmO1xuXG4gIGZpbHRlcmVkQ29uZmlncyQgPSB0aGlzLmNvbmZpZ3MkLnBpcGUobWFwKGZpbHRlckVtcHR5Tm9kZSksIHB1Ymxpc2hSZWYoKSk7XG4gIHNob3dTaGFkb3ckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIGlzSW50ZXJzZWN0aW5nOiBib29sZWFuO1xuICBpdGVtcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmZpbHRlcmVkQ29uZmlncyQsIHRoaXMuZ3JvdXBzJF0pLnBpcGUoXG4gICAgLy8g5aSE55CG5oiQTmF2SXRlbUNvbmZpZ+aVsOe7hFxuICAgIG1hcChcbiAgICAgIChbaXRlbXMsIGdyb3Vwc10pID0+XG4gICAgICAgIGl0ZW1zIHx8XG4gICAgICAgIChncm91cHNcbiAgICAgICAgICA/IGdyb3Vwcy5yZWR1Y2U8TmF2SXRlbUNvbmZpZ1tdPihcbiAgICAgICAgICAgICAgKHByZXYsIGN1cikgPT4gWy4uLnByZXYsIC4uLmN1ci5pdGVtc10sXG4gICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogW10pLFxuICAgICksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIHBhdGhzJCA9IHRoaXMuaXRlbXMkLnBpcGUoXG4gICAgbWFwKGl0ZW1zID0+IHRoaXMuZ2V0UGF0aHMoaXRlbXMpKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgYWN0aXZlS2V5cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnBhdGhzJCwgdGhpcy5hY3RpdmF0ZWRLZXkkXSkucGlwZShcbiAgICBtYXAoKFtwYXRocywga2V5XSkgPT4gdGhpcy5maW5kUGF0aEJ5TGFzdEtleShwYXRocywga2V5KSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIGV4cGFuZGVkS2V5cyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnBhdGhzJCxcbiAgICBtZXJnZSh0aGlzLmFjdGl2YXRlZEtleSQsIHRoaXMuZXhwYW5kZWRLZXkkJCksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbcGF0aHMsIGtleV0pID0+IHRoaXMuZmluZFBhdGhCeUxhc3RLZXkocGF0aHMsIGtleSkpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBmb2N1c2VkUm9vdEtleSQgPSB0aGlzLmZvY3VzZWRSb290S2V5JCQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VDcHQ6IFBhZ2VDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpZnJhbWVDb25maWdTZXJ2aWNlOiBJZnJhbWVDb25maWdTZXJ2aWNlLFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVDb2xsYXBzZUNsYXNzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnBhZ2VDcHQucmVtb3ZlQ2xhc3MoU0lERU5BVl9BTkkpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IG9iID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgZW50cmllcyA9PiB7XG4gICAgICAgIGNvbnN0IHsgaXNJbnRlcnNlY3RpbmcgfSA9IGVudHJpZXNbMF07XG4gICAgICAgIHRoaXMuaXNJbnRlcnNlY3RpbmcgPSBpc0ludGVyc2VjdGluZztcbiAgICAgICAgdGhpcy5zaG93U2hhZG93JC5uZXh0KCFpc0ludGVyc2VjdGluZyk7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICByb290OiB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuICAgICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICAgIC8vIOWboOS4uiAuYWNsLW5hdi1tZW51IOW6lemDqOaciemineWklueahCAyMHB4IOmXtOi3nVxuICAgICAgICByb290TWFyZ2luOiAnMHB4IDBweCAyMHB4IDBweCcsXG4gICAgICB9LFxuICAgICk7XG4gICAgb2Iub2JzZXJ2ZSh0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBzY3JvbGwodHlwZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICB0aGlzLnNob3dTaGFkb3ckLm5leHQodHlwZSAhPT0gJ2JvdHRvbScpO1xuICAgIH1cbiAgfVxuXG4gIC8vIOmAmui/h2tleeaJvuWIsOS7luWPiuWFtueItueahHBhdGjot6/lvoRcbiAgcHJpdmF0ZSBmaW5kUGF0aEJ5TGFzdEtleShwYXRoczogc3RyaW5nW11bXSwga2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcGF0aHMuZmluZChwYXRoID0+IFsuLi5wYXRoXS5wb3AoKSA9PT0ga2V5KTtcbiAgfVxuXG4gIC8vIOS7pU5hdkl0ZW1Db25maWfnmoRrZXnnu4TmiJDoh6rkuIrogIzkuIvnmoRwYXRo6Lev5b6E77yM57G75Ly8WydhJywgJ2EvYiddXG4gIHByaXZhdGUgZ2V0UGF0aHMoaXRlbXM6IE5hdkl0ZW1Db25maWdbXSwgcGFyZW50Pzogc3RyaW5nW10pOiBzdHJpbmdbXVtdIHtcbiAgICBpZiAoIWl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgcHJlID0gcGFyZW50ID8gWy4uLnBhcmVudF0gOiBbXTtcbiAgICByZXR1cm4gaXRlbXMucmVkdWNlKFxuICAgICAgKHByZXYsIGN1cikgPT4gW1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICAuLi50aGlzLmdldFBhdGhzKGN1ci5jaGlsZHJlbiwgWy4uLnByZSwgY3VyLmtleV0pLFxuICAgICAgXSxcbiAgICAgIGl0ZW1zLm1hcChpdGVtID0+IFsuLi5wcmUsIGl0ZW0ua2V5XSksXG4gICAgKTtcbiAgfVxuXG4gIGV4cGFuZGVkS2V5Q2hhbmdlZChrZXk6IHN0cmluZykge1xuICAgIHRoaXMuZXhwYW5kZWRLZXkkJC5uZXh0KGtleSk7XG4gIH1cblxuICBmb2N1c2VkUm9vdEtleUNoYW5nZShrZXk6IHN0cmluZykge1xuICAgIHRoaXMuZm9jdXNlZFJvb3RLZXkkJC5uZXh0KGtleSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGFkZFNpZGVuYXZBbmkgPSBvbmNlKCgpID0+IHtcbiAgICB0aGlzLnBhZ2VDcHQuYWRkQ2xhc3MoU0lERU5BVl9BTkkpO1xuICB9KTtcblxuICB0b2dnbGVDb2xsYXBzZSgpIHtcbiAgICB0aGlzLmlzQ29sbGFwc2UgPSAhdGhpcy5pc0NvbGxhcHNlO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKENPTExBUFNFX01FTlVfS0VZLCBTdHJpbmcodGhpcy5pc0NvbGxhcHNlKSk7XG4gICAgdGhpcy5hZGRTaWRlbmF2QW5pKCk7IC8vIOW9k+eUqOaIt+esrOS4gOasoeS4u+WKqOWIh+aNoueKtuaAgeaXtua3u+WKoOWKqOaViOexu++8jOiAjOS4jeaYr+S4gOW8gOWni+Wwseacie+8jOmBv+WFjeWIneWni+WMluaXtuWFtuS7luagt+W8j+WIh+aNouW4puadpeeahOi/h+W6puWKqOaViFxuICAgIHRoaXMudXBkYXRlQ29sbGFwc2VDbGFzcygpO1xuICB9XG5cbiAgdXBkYXRlQ29sbGFwc2VDbGFzcygpIHtcbiAgICB0aGlzLnBhZ2VDcHRbdGhpcy5pc0NvbGxhcHNlID8gJ2FkZENsYXNzJyA6ICdyZW1vdmVDbGFzcyddKFxuICAgICAgJ3NpZGVuYXYtY29sbGFwc2UnLFxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJhY2wtbmF2LW1lbnVfX2NvbnRhaW5lciB0dy1oLWZ1bGxcIlxuICAjY29udGFpbmVyXG4gIFthY2xTY3JvbGxCb3JkZXJPYnNlcnZlcl09XCJ7XG4gICAgYm90dG9tRGlzdGFuY2U6IDIwLFxuICB9XCJcbiAgKHNjcm9sbEJvcmRlcik9XCJzY3JvbGwoJGV2ZW50KVwiXG4+XG4gIDxhY2wtbmF2LXNrZWxldG9uXG4gICAgKm5nSWY9XCIhY29uZmlncz8ubGVuZ3RoICYmICFncm91cHM/Lmxlbmd0aFwiXG4gID48L2FjbC1uYXYtc2tlbGV0b24+XG5cbiAgPGRpdlxuICAgICNjb250ZW50XG4gICAgY2xhc3M9XCJhY2wtbmF2LW1lbnUgdHctZmxleCB0dy1mbGV4LWNvbCB0dy1zZWxlY3Qtbm9uZSB0dy1yZWxhdGl2ZVwiXG4gICAgW25nQ2xhc3NdPVwiKGlzQ29sbGFwc2UkIHwgYXN5bmMpID8gJ2NvbGxhcHNlJyA6ICdleHBhbmQnXCJcbiAgPlxuICAgIDxhY2wtbmF2LWl0ZW0tdWxcbiAgICAgIFtpdGVtc109XCJmaWx0ZXJlZENvbmZpZ3MkIHwgYXN5bmNcIlxuICAgICAgW2dyb3Vwc109XCJncm91cHNcIlxuICAgID48L2FjbC1uYXYtaXRlbS11bD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdlxuICAqbmdJZj1cIiEoIWNvbmZpZ3M/Lmxlbmd0aCAmJiAhZ3JvdXBzPy5sZW5ndGgpXCJcbiAgY2xhc3M9XCJhY2wtbmF2LW1lbnVfX2NvbGxhcHNlLWJ1dHRvbiB0dy1mbGV4IHR3LWp1c3RpZnktZW5kXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdhY2wtbmF2LW1lbnVfX2NvbGxhcHNlLWJ1dHRvbi1zaGFkb3cnOiBzaG93U2hhZG93JCB8IGFzeW5jLFxuICB9XCJcbiAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKClcIlxuPlxuICA8YXVpLWljb25cbiAgICBbaWNvbl09XCJpc0NvbGxhcHNlID8gJ3Byb2Q6bGlzdF9leHBhbmRfcmlnaHQnIDogJ3Byb2Q6bGlzdF9mb2xkX2xlZnQnXCJcbiAgPjwvYXVpLWljb24+XG48L2Rpdj5cbiJdfQ==
|