@eo-sdk/client 10.6.0-rc.7 → 10.6.1
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/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts +1 -1
- package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/date/date.component.d.ts +7 -4
- package/app/eo-framework/form-elements/date/date.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/organization/organization.component.d.ts +3 -1
- package/app/eo-framework/form-elements/organization/organization.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-details.component.d.ts +0 -1
- package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +1 -0
- package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts.map +1 -1
- package/app/eo-framework/object-state-details/object-state-details.component.d.ts +1 -0
- package/app/eo-framework/object-state-details/object-state-details.component.d.ts.map +1 -1
- package/app/eo-framework/tree/tree.component.d.ts.map +1 -1
- package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts +3 -2
- package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts.map +1 -1
- package/assets/_default/i18n/en.json +3 -2
- package/assets/_default/svg/ic_export.svg +1 -0
- package/assets/_default/svg/ic_import.svg +1 -0
- package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +19 -5
- package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +2 -2
- package/esm2020/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +2 -2
- package/esm2020/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
- package/esm2020/app/eo-client/settings/settings.component.mjs +3 -3
- package/esm2020/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +8 -7
- package/esm2020/app/eo-framework/form-elements/date/date.component.mjs +31 -9
- package/esm2020/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +3 -3
- package/esm2020/app/eo-framework/form-elements/organization/organization.component.mjs +9 -2
- package/esm2020/app/eo-framework/form-elements/reference/reference.component.mjs +3 -3
- package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +3 -3
- package/esm2020/app/eo-framework/grid/filters/codesystem-filter.component.mjs +3 -3
- package/esm2020/app/eo-framework/grid/filters/datetime-filter.component.mjs +3 -3
- package/esm2020/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
- package/esm2020/app/eo-framework/grid/grid.component.mjs +2 -2
- package/esm2020/app/eo-framework/object-details/object-details.component.mjs +3 -7
- package/esm2020/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
- package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +11 -3
- package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element.interface.mjs +1 -1
- package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +1 -1
- package/esm2020/app/eo-framework/object-form/object-form-helper.service.mjs +2 -2
- package/esm2020/app/eo-framework/object-state-details/object-state-details.component.mjs +8 -4
- package/esm2020/app/eo-framework/stored-query/stored-query/stored-query.component.mjs +2 -2
- package/esm2020/app/eo-framework/tree/tree.component.mjs +11 -1
- package/esm2020/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +14 -7
- package/esm2020/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +2 -2
- package/fesm2015/eo-sdk-client.mjs +132 -62
- package/fesm2015/eo-sdk-client.mjs.map +1 -1
- package/fesm2020/eo-sdk-client.mjs +129 -62
- package/fesm2020/eo-sdk-client.mjs.map +1 -1
- package/misc/scripts/helper.js +1 -1
- package/package.json +3 -3
- package/scss/_migrationTemp.scss +6 -0
- package/scss/_yuuvis-components.scss +4 -3
- package/styles.css +8 -3
|
@@ -13,7 +13,8 @@ import * as i5 from "@angular/common";
|
|
|
13
13
|
import * as i6 from "@ngx-translate/core";
|
|
14
14
|
import * as i7 from "../plugins/plugin.component";
|
|
15
15
|
import * as i8 from "@yuuvis/components/tabs";
|
|
16
|
-
import * as i9 from "../../eo-framework-core/pipes/
|
|
16
|
+
import * as i9 from "../../eo-framework-core/pipes/filesize.pipe";
|
|
17
|
+
import * as i10 from "../../eo-framework-core/pipes/locale-date.pipe";
|
|
17
18
|
let ObjectStateDetailsComponent = ObjectStateDetailsComponent_1 = class ObjectStateDetailsComponent {
|
|
18
19
|
get dataType() {
|
|
19
20
|
return this.context ? this.context.typeName : 'none';
|
|
@@ -24,6 +25,9 @@ let ObjectStateDetailsComponent = ObjectStateDetailsComponent_1 = class ObjectSt
|
|
|
24
25
|
get visibility() {
|
|
25
26
|
return !this.visible ? 0 : '100%';
|
|
26
27
|
}
|
|
28
|
+
get title() {
|
|
29
|
+
return this.eoTabs?.tabs?.find(t => t.id === this.eoTabs.selectedTab)?.label || '';
|
|
30
|
+
}
|
|
27
31
|
constructor(selection, actionService, appCache, dmsService, eventService, pendingChanges) {
|
|
28
32
|
this.selection = selection;
|
|
29
33
|
this.actionService = actionService;
|
|
@@ -89,14 +93,14 @@ let ObjectStateDetailsComponent = ObjectStateDetailsComponent_1 = class ObjectSt
|
|
|
89
93
|
};
|
|
90
94
|
ObjectStateDetailsComponent.LAST_SEEN_LIMIT = 10;
|
|
91
95
|
ObjectStateDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ObjectStateDetailsComponent, deps: [{ token: i1.SelectionService }, { token: i2.ActionService }, { token: i3.AppCacheService }, { token: i3.DmsService }, { token: i3.EventService }, { token: i4.PendingChangesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
92
|
-
ObjectStateDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ObjectStateDetailsComponent, selector: "eo-object-state-details", inputs: { plugins: "plugins", context: "context", selectedItem: "selectedItem", seenItems: "seenItems", frontPageData: "frontPageData", visible: "visible" }, outputs: { onTabChange: "onTabChange" }, host: { properties: { "class.visible": "this.visible", "attr.data-type": "this.dataType", "attr.data-id": "this.dataId", "style.height": "this.visibility" } }, viewQueries: [{ propertyName: "eoTabs", first: true, predicate: Tabs, descendants: true }], ngImport: i0, template: "<header class=\"eo-head eo-
|
|
96
|
+
ObjectStateDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ObjectStateDetailsComponent, selector: "eo-object-state-details", inputs: { plugins: "plugins", context: "context", selectedItem: "selectedItem", seenItems: "seenItems", frontPageData: "frontPageData", visible: "visible" }, outputs: { onTabChange: "onTabChange" }, host: { properties: { "class.visible": "this.visible", "attr.data-type": "this.dataType", "attr.data-id": "this.dataId", "style.height": "this.visibility" } }, viewQueries: [{ propertyName: "eoTabs", first: true, predicate: Tabs, descendants: true }], ngImport: i0, template: "<header class=\"eo-head\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info eo-header__content\">\n <!-- <h2 translate>eo.state.object.frontpage.title</h2> -->\n <h2 class=\"eo-header-title\">{{ title }}</h2>\n <h3 class=\"eo-header-subtitle flex-row\">{{context.title}}</h3>\n <div class=\"sizing\" *ngIf=\"frontPageData\">\n <div translate [translateParams]=\"{doccount: frontPageData?.documentCount.value}\">eo.state.object.frontpage.doccount</div>\n <div translate [translateParams]=\"{filesize: frontPageData?.totalFilesize | fileSize}\">eo.state.object.frontpage.filesize</div>\n </div>\n </div>\n <div class=\"eo-header-actions\"></div>\n </div>\n</header>\n\n<yvc-tabs (tabChange)=\"onTabChange.emit($event)\" layoutSettingsID=\"eo.object.state.details.tabs\">\n <ng-template [yvcTab]=\"{id: 'last-changes', label: 'eo.state.object.frontpage.lastchanges' | translate}\">\n <div class=\"panel last-changes\">\n <div class=\"doc\" *ngFor=\"let doc of frontPageData?.lastModifications\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'last-seen', label: 'eo.state.object.frontpage.lastseen' | translate}\">\n <div class=\"panel last-seen\">\n <div class=\"doc\" *ngFor=\"let doc of seenItems\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified.on | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div> \n </ng-template>\n\n <!-- plugin tabs -->\n <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\n <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\n </ng-template>\n \n</yvc-tabs>", styles: [":host ::ng-deep{position:relative;background:var(--color-white);display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;height:100%;box-sizing:border-box;color:var(--text-color-caption);overflow:hidden}:host ::ng-deep .eo-head{background-color:var(--color-primary-3);color:var(--color-white)}:host ::ng-deep .eo-head h2{display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:calc(var(--app-pane-padding) / 4) 0;font-size:var(--font-title);font-weight:400;line-height:1.1em;margin:0}:host ::ng-deep .eo-body{position:absolute;inset:0;overflow:hidden;top:var(--app-pane-header-height)}:host ::ng-deep .sizing{display:flex;justify-content:space-between;margin-bottom:var(--app-pane-padding)}:host ::ng-deep .doc{margin-bottom:var(--app-pane-padding);padding:0 var(--app-pane-padding);color:var(--text-color-body);cursor:pointer;display:flex;flex-flow:row nowrap;flex-shrink:0}:host ::ng-deep .doc:first-child{margin-top:var(--app-pane-padding)}:host ::ng-deep .doc .marker{width:4px;background:rgba(var(--color-black-rgb),.1);flex:0 0 auto;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host ::ng-deep .doc .content{flex:1 1 auto;margin:0 var(--app-pane-padding)}:host ::ng-deep .doc .date{color:var(--text-color-caption);font-size:var(--font-hint)}:host ::ng-deep .doc .desc{color:var(--text-color-caption)}:host ::ng-deep .doc.selected .marker,:host ::ng-deep .doc:hover .marker{background:var(--color-accent)}:host ::ng-deep>yvc-tabs>header{position:fixed;min-height:auto!important;top:calc(var(--app-bar-height) + 56px);border:none}[dir=ltr] :host ::ng-deep>yvc-tabs>header{right:calc(var(--app-pane-padding) * 1.75)}[dir=rtl] :host ::ng-deep>yvc-tabs>header{left:calc(var(--app-pane-padding) * 1.75)}:host ::ng-deep>yvc-tabs>header .scroll-x{border-bottom:none!important}:host ::ng-deep>yvc-tabs>header .scroll-x nav a{border:1px solid var(--color-primary-3)!important;border-radius:4px;margin:0 4px}:host.visible ::ng-deep>yvc-tabs>header nav a.active{border-color:var(--color-accent)!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i7.PluginComponent, selector: "eo-plugin", inputs: ["type", "id", "parent"] }, { kind: "component", type: i8.Tabs, selector: "yvc-tabs", inputs: ["tabs", "layoutSettingsID", "panelOrder", "panelOrderIncludeUnmentioned", "cacheViews", "tabSplitEnabled", "tabRemoveEnabled"], outputs: ["tabSplit", "tabRemove", "tabChange"] }, { kind: "directive", type: i8.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.FileSizePipe, name: "fileSize" }, { kind: "pipe", type: i10.LocaleDatePipe, name: "localeDate" }] });
|
|
93
97
|
ObjectStateDetailsComponent = ObjectStateDetailsComponent_1 = __decorate([
|
|
94
98
|
UntilDestroy()
|
|
95
99
|
], ObjectStateDetailsComponent);
|
|
96
100
|
export { ObjectStateDetailsComponent };
|
|
97
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ObjectStateDetailsComponent, decorators: [{
|
|
98
102
|
type: Component,
|
|
99
|
-
args: [{ selector: 'eo-object-state-details', template: "<header class=\"eo-head eo-
|
|
103
|
+
args: [{ selector: 'eo-object-state-details', template: "<header class=\"eo-head\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info eo-header__content\">\n <!-- <h2 translate>eo.state.object.frontpage.title</h2> -->\n <h2 class=\"eo-header-title\">{{ title }}</h2>\n <h3 class=\"eo-header-subtitle flex-row\">{{context.title}}</h3>\n <div class=\"sizing\" *ngIf=\"frontPageData\">\n <div translate [translateParams]=\"{doccount: frontPageData?.documentCount.value}\">eo.state.object.frontpage.doccount</div>\n <div translate [translateParams]=\"{filesize: frontPageData?.totalFilesize | fileSize}\">eo.state.object.frontpage.filesize</div>\n </div>\n </div>\n <div class=\"eo-header-actions\"></div>\n </div>\n</header>\n\n<yvc-tabs (tabChange)=\"onTabChange.emit($event)\" layoutSettingsID=\"eo.object.state.details.tabs\">\n <ng-template [yvcTab]=\"{id: 'last-changes', label: 'eo.state.object.frontpage.lastchanges' | translate}\">\n <div class=\"panel last-changes\">\n <div class=\"doc\" *ngFor=\"let doc of frontPageData?.lastModifications\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'last-seen', label: 'eo.state.object.frontpage.lastseen' | translate}\">\n <div class=\"panel last-seen\">\n <div class=\"doc\" *ngFor=\"let doc of seenItems\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified.on | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div> \n </ng-template>\n\n <!-- plugin tabs -->\n <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\n <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\n </ng-template>\n \n</yvc-tabs>", styles: [":host ::ng-deep{position:relative;background:var(--color-white);display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;height:100%;box-sizing:border-box;color:var(--text-color-caption);overflow:hidden}:host ::ng-deep .eo-head{background-color:var(--color-primary-3);color:var(--color-white)}:host ::ng-deep .eo-head h2{display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:calc(var(--app-pane-padding) / 4) 0;font-size:var(--font-title);font-weight:400;line-height:1.1em;margin:0}:host ::ng-deep .eo-body{position:absolute;inset:0;overflow:hidden;top:var(--app-pane-header-height)}:host ::ng-deep .sizing{display:flex;justify-content:space-between;margin-bottom:var(--app-pane-padding)}:host ::ng-deep .doc{margin-bottom:var(--app-pane-padding);padding:0 var(--app-pane-padding);color:var(--text-color-body);cursor:pointer;display:flex;flex-flow:row nowrap;flex-shrink:0}:host ::ng-deep .doc:first-child{margin-top:var(--app-pane-padding)}:host ::ng-deep .doc .marker{width:4px;background:rgba(var(--color-black-rgb),.1);flex:0 0 auto;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host ::ng-deep .doc .content{flex:1 1 auto;margin:0 var(--app-pane-padding)}:host ::ng-deep .doc .date{color:var(--text-color-caption);font-size:var(--font-hint)}:host ::ng-deep .doc .desc{color:var(--text-color-caption)}:host ::ng-deep .doc.selected .marker,:host ::ng-deep .doc:hover .marker{background:var(--color-accent)}:host ::ng-deep>yvc-tabs>header{position:fixed;min-height:auto!important;top:calc(var(--app-bar-height) + 56px);border:none}[dir=ltr] :host ::ng-deep>yvc-tabs>header{right:calc(var(--app-pane-padding) * 1.75)}[dir=rtl] :host ::ng-deep>yvc-tabs>header{left:calc(var(--app-pane-padding) * 1.75)}:host ::ng-deep>yvc-tabs>header .scroll-x{border-bottom:none!important}:host ::ng-deep>yvc-tabs>header .scroll-x nav a{border:1px solid var(--color-primary-3)!important;border-radius:4px;margin:0 4px}:host.visible ::ng-deep>yvc-tabs>header nav a.active{border-color:var(--color-accent)!important}\n"] }]
|
|
100
104
|
}], ctorParameters: function () { return [{ type: i1.SelectionService }, { type: i2.ActionService }, { type: i3.AppCacheService }, { type: i3.DmsService }, { type: i3.EventService }, { type: i4.PendingChangesService }]; }, propDecorators: { eoTabs: [{
|
|
101
105
|
type: ViewChild,
|
|
102
106
|
args: [Tabs]
|
|
@@ -127,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
127
131
|
type: HostBinding,
|
|
128
132
|
args: ['style.height']
|
|
129
133
|
}] } });
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN0YXRlLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LXN0YXRlLWRldGFpbHMvb2JqZWN0LXN0YXRlLWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LXN0YXRlLWRldGFpbHMvb2JqZWN0LXN0YXRlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBeUMsVUFBVSxFQUFlLE1BQU0sY0FBYyxDQUFDO0FBRTlGLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFJbkUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7OztBQVF0QyxJQUFNLDJCQUEyQixtQ0FBakMsTUFBTSwyQkFBMkI7SUFrQnRDLElBQW1DLFFBQVE7UUFDekMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFpQyxNQUFNO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBaUMsVUFBVTtRQUN6QyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMs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N0g7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2FBQzdELFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxlQUFlO0lBQ2YsQ0FBQzs7QUEvRk0sMkNBQWUsR0FBRyxFQUFFLENBQUM7d0hBRmpCLDJCQUEyQjs0R0FBM0IsMkJBQTJCLDhjQUkzQixJQUFJLGdEQ25CakIsNHpEQXdDVztBRHpCRSwyQkFBMkI7SUFOdkMsWUFBWSxFQUFFO0dBTUYsMkJBQTJCLENBbUd2QztTQW5HWSwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSx5QkFBeUI7eVBBUWxCLE1BQU07c0JBQXRCLFNBQVM7dUJBQUMsSUFBSTtnQkFFTixPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLE9BQU87c0JBRGYsV0FBVzt1QkFBQyxlQUFlOztzQkFDM0IsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUU0QixRQUFRO3NCQUExQyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFJSSxNQUFNO3NCQUF0QyxXQUFXO3VCQUFDLGNBQWM7Z0JBSU0sVUFBVTtzQkFBMUMsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QXBwQ2FjaGVTZXJ2aWNlLCBEbXNPYmplY3QsIERtc1NlcnZpY2UsIEVuYWlvRXZlbnQsIEV2ZW50U2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcblxuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQge1NlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge0FjdGlvblNlcnZpY2V9IGZyb20gJy4uL2FjdGlvbnMvYWN0aW9uLXNlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtUYWJzfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvdGFicyc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tb2JqZWN0LXN0YXRlLWRldGFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LXN0YXRlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vYmplY3Qtc3RhdGUtZGV0YWlscy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdFN0YXRlRGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgc3RhdGljIExBU1RfU0VFTl9MSU1JVCA9IDEwO1xuXG4gIEBWaWV3Q2hpbGQoVGFicykgZW9UYWJzOiBUYWJzO1xuXG4gIEBJbnB1dCgpIHBsdWdpbnM6IGFueVtdO1xuXG4gIEBJbnB1dCgpIGNvbnRleHQ6IERtc09iamVjdDtcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtOiBEbXNPYmplY3Q7XG4gIEBJbnB1dCgpIHNlZW5JdGVtczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgZnJvbnRQYWdlRGF0YTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnZpc2libGUnKVxuICBASW5wdXQoKSB2aXNpYmxlID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgb25UYWJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdHlwZScpIGdldCBkYXRhVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0ID8gdGhpcy5jb250ZXh0LnR5cGVOYW1lIDogJ25vbmUnO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtaWQnKSBnZXQgZGF0YUlkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQgPyB0aGlzLmNvbnRleHQuaWQgOiAnbm9uZSc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpIGdldCB2aXNpYmlsaXR5KCkge1xuICAgIHJldHVybiAhdGhpcy52aXNpYmxlID8gMCA6ICcxMDAlJztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlLCBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsIHByaXZhdGUgYXBwQ2FjaGU6IEFwcENhY2hlU2VydmljZSxcbiAgICBwcml2YXRlIGRtc1NlcnZpY2U6IERtc1NlcnZpY2UsIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSkge1xuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5ETVNfT0JKRUNUX0xPQURFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB0aGlzLm9uRm9jdXMoZXZlbnQuZGF0YSkpO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB0aGlzLm9uRm9jdXMoZXZlbnQuZGF0YSkpO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfREVMRVRFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiAodGhpcy5vblJlbW92ZShldmVudC5kYXRhKSwgdGhpcy5vblJlbW92ZU1vZGlmaWNhdGlvbihldmVudC5kYXRhKSkpO1xuICB9XG5cbiAgb25Gb2N1cyhpdGVtOiBEbXNPYmplY3QpIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XG4gICAgaWYgKGl0ZW0gJiYgaXRlbS5pZCAhPT0gdGhpcy5jb250ZXh0LmlkKSB7XG4gICAgICBjb25zdCBub3RTZWVuVGFiID0gZmFsc2UgLy8hdGhpcy5sYXN0U2VlblRhYiBUT0RPOiBlbmFibGUgYWdhaW4/XG4gICAgICBjb25zdCBub3RNb2RpZmllZCA9IHRoaXMuc2Vlbkl0ZW1zLmZpbmQoaSA9PiBpLmlkID09PSBpdGVtLmlkKT8ubW9kaWZpZWQ/Lm9uID09PSBpdGVtLm1vZGlmaWVkLm9uO1xuICAgICAgbGV0IHtpZCwgdHlwZU5hbWUsIHRpdGxlLCBkZXNjcmlwdGlvbiwgbW9kaWZpZWR9ID0gaXRlbTtcbiAgICAgIGlmKG5vdFNlZW5UYWIgfHwgIW5vdE1vZGlmaWVkKSB0aGlzLm9uUmVtb3ZlKGl0ZW0sIFt7aWQsIHR5cGU6IHR5cGVOYW1lLCB0aXRsZSwgZGVzY3JpcHRpb24sIG1vZGlmaWVkfV0pO1xuICAgIH1cbiAgfVxuXG4gIG9uUmVtb3ZlKGl0ZW06IERtc09iamVjdCwgc2VlbiA9IFtdKSB7XG4gICAgaWYgKGl0ZW0gJiYgaXRlbS5pZCkge1xuICAgICAgdGhpcy5zZWVuSXRlbXMgPSBzZWVuLmNvbmNhdCh0aGlzLnNlZW5JdGVtcy5maWx0ZXIoaSA9PiBpLmlkICE9PSBpdGVtLmlkKSkuc2xpY2UoMCwgT2JqZWN0U3RhdGVEZXRhaWxzQ29tcG9uZW50LkxBU1RfU0VFTl9MSU1JVCk7XG4gICAgICB0aGlzLmFwcENhY2hlLnNldEl0ZW0oJ2VvLmxhc3Quc2Vlbi5vYmplY3RzLScgKyB0aGlzLmNvbnRleHQuaWQsIHRoaXMuc2Vlbkl0ZW1zKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBvblJlbW92ZU1vZGlmaWNhdGlvbihpdGVtOiBEbXNPYmplY3QpIHtcbiAgICBpZiAoaXRlbSAmJiBpdGVtLmlkICYmIHRoaXMuZnJvbnRQYWdlRGF0YSkge1xuICAgICAgdGhpcy5mcm9udFBhZ2VEYXRhLmxhc3RNb2RpZmljYXRpb25zID0gdGhpcy5mcm9udFBhZ2VEYXRhLmxhc3RNb2RpZmljYXRpb25zICYmIHRoaXMuZnJvbnRQYWdlRGF0YS5sYXN0TW9kaWZpY2F0aW9ucy5maWx0ZXIoaSA9PiBpLmlkICE9PSBpdGVtLmlkKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RGcm9udFBhZ2VEb2MoZG9jKSB7XG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrKCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzKGRvYyk7XG4gICAgfVxuICB9XG5cbiAgb25Db250ZXh0TWVudUNsaWNrZWQoZXZ0LCBkb2M/KSB7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVjaygpKSB7XG4gICAgICB0aGlzLmRtc1NlcnZpY2UuZ2V0RG1zT2JqZWN0QnlQYXJhbXMoZG9jIHx8IHRoaXMuY29udGV4dCkuc3Vic2NyaWJlKG8gPT4gdGhpcy5hY3Rpb25TZXJ2aWNlLnNob3dBY3Rpb25zKFtvXSwgJ0RNU19PQkpFQ1QnKSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hcHBDYWNoZS5nZXRJdGVtKCdlby5sYXN0LnNlZW4ub2JqZWN0cy0nICsgdGhpcy5jb250ZXh0LmlkKVxuICAgICAgLnN1YnNjcmliZShscyA9PiB0aGlzLnNlZW5JdGVtcyA9IGxzIHx8IFtdKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgfVxuXG59XG4iLCI8aGVhZGVyIGNsYXNzPVwiZW8taGVhZCBlby1oZWFkLXRhYnNcIj5cbiAgPGgyIHRyYW5zbGF0ZT5lby5zdGF0ZS5vYmplY3QuZnJvbnRwYWdlLnRpdGxlPC9oMj5cbjwvaGVhZGVyPlxuXG48eXZjLXRhYnMgKHRhYkNoYW5nZSk9XCJvblRhYkNoYW5nZS5lbWl0KCRldmVudClcIiBsYXlvdXRTZXR0aW5nc0lEPVwiZW8ub2JqZWN0LnN0YXRlLmRldGFpbHMudGFic1wiPlxuICA8bmctdGVtcGxhdGUgW3l2Y1RhYl09XCJ7aWQ6ICdsYXN0LWNoYW5nZXMnLCBsYWJlbDogJ2VvLnN0YXRlLm9iamVjdC5mcm9udHBhZ2UubGFzdGNoYW5nZXMnIHwgdHJhbnNsYXRlfVwiPlxuICAgIDxkaXYgY2xhc3M9XCJwYW5lbCBsYXN0LWNoYW5nZXNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRvY1wiICpuZ0Zvcj1cImxldCBkb2Mgb2YgZnJvbnRQYWdlRGF0YT8ubGFzdE1vZGlmaWNhdGlvbnNcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntzZWxlY3RlZDogc2VsZWN0ZWRJdGVtICYmIGRvYy5pZCA9PT0gc2VsZWN0ZWRJdGVtLmlkfVwiIChjbGljayk9XCJzZWxlY3RGcm9udFBhZ2VEb2MoZG9jKVwiXG4gICAgICAgICAgKGNvbnRleHRtZW51KT1cIm9uQ29udGV4dE1lbnVDbGlja2VkKCRldmVudCwgZG9jKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZXJcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj57e2RvYy5tb2RpZmllZCB8IGxvY2FsZURhdGV9fTwvZGl2PlxuICAgICAgICAgICAgPHN0cm9uZz57e2RvYy50aXRsZX19PC9zdHJvbmc+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPnt7ZG9jLmRlc2NyaXB0aW9ufX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgW3l2Y1RhYl09XCJ7aWQ6ICdsYXN0LXNlZW4nLCBsYWJlbDogJ2VvLnN0YXRlLm9iamVjdC5mcm9udHBhZ2UubGFzdHNlZW4nIHwgdHJhbnNsYXRlfVwiPlxuICAgPGRpdiBjbGFzcz1cInBhbmVsIGxhc3Qtc2VlblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZG9jXCIgKm5nRm9yPVwibGV0IGRvYyBvZiBzZWVuSXRlbXNcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntzZWxlY3RlZDogc2VsZWN0ZWRJdGVtICYmIGRvYy5pZCA9PT0gc2VsZWN0ZWRJdGVtLmlkfVwiIChjbGljayk9XCJzZWxlY3RGcm9udFBhZ2VEb2MoZG9jKVwiXG4gICAgICAgICAgKGNvbnRleHRtZW51KT1cIm9uQ29udGV4dE1lbnVDbGlja2VkKCRldmVudCwgZG9jKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZXJcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj57e2RvYy5tb2RpZmllZC5vbiB8IGxvY2FsZURhdGV9fTwvZGl2PlxuICAgICAgICAgICAgPHN0cm9uZz57e2RvYy50aXRsZX19PC9zdHJvbmc+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPnt7ZG9jLmRlc2NyaXB0aW9ufX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+IFxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDwhLS0gcGx1Z2luIHRhYnMgLS0+XG4gIDxuZy10ZW1wbGF0ZSAqbmdGb3I9XCJsZXQgcCBvZiBwbHVnaW5zXCIgW3l2Y1RhYl09XCJ7aWQ6IHAuaWQsIGxhYmVsOiBwLmlkIHwgdHJhbnNsYXRlfVwiPlxuICAgIDxlby1wbHVnaW4gW2lkXT1cInAuaWRcIiBbcGFyZW50XT1cInRoaXNcIj48L2VvLXBsdWdpbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgXG48L3l2Yy10YWJzPiJdfQ==
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN0YXRlLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LXN0YXRlLWRldGFpbHMvb2JqZWN0LXN0YXRlLWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LXN0YXRlLWRldGFpbHMvb2JqZWN0LXN0YXRlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBeUMsVUFBVSxFQUFlLE1BQU0sY0FBYyxDQUFDO0FBRTlGLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFJbkUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7QUFRdEMsSUFBTSwyQkFBMkIsbUNBQWpDLE1BQU0sMkJBQTJCO0lBa0J0QyxJQUFtQyxRQUFRO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBaUMsTUFBTTtRQUNyQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDakQsQ0FBQztJQUVELElBQWlDLFVBQVU7UUFDekMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFD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b250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FwcENhY2hlU2VydmljZSwgRG1zT2JqZWN0LCBEbXNTZXJ2aWNlLCBFbmFpb0V2ZW50LCBFdmVudFNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5cbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtBY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi9hY3Rpb25zL2FjdGlvbi1zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7VGFic30gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL3RhYnMnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW9iamVjdC1zdGF0ZS1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1zdGF0ZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2JqZWN0LXN0YXRlLWRldGFpbHMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RTdGF0ZURldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIHN0YXRpYyBMQVNUX1NFRU5fTElNSVQgPSAxMDtcblxuICBAVmlld0NoaWxkKFRhYnMpIGVvVGFiczogVGFicztcblxuICBASW5wdXQoKSBwbHVnaW5zOiBhbnlbXTtcblxuICBASW5wdXQoKSBjb250ZXh0OiBEbXNPYmplY3Q7XG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbTogRG1zT2JqZWN0O1xuICBASW5wdXQoKSBzZWVuSXRlbXM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGZyb250UGFnZURhdGE7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy52aXNpYmxlJylcbiAgQElucHV0KCkgdmlzaWJsZSA9IHRydWU7XG5cbiAgQE91dHB1dCgpIG9uVGFiQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR5cGUnKSBnZXQgZGF0YVR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dCA/IHRoaXMuY29udGV4dC50eXBlTmFtZSA6ICdub25lJztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWlkJykgZ2V0IGRhdGFJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0ID8gdGhpcy5jb250ZXh0LmlkIDogJ25vbmUnO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKSBnZXQgdmlzaWJpbGl0eSgpIHtcbiAgICByZXR1cm4gIXRoaXMudmlzaWJsZSA/IDAgOiAnMTAwJSc7XG4gIH1cblxuICBnZXQgdGl0bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW9UYWJzPy50YWJzPy5maW5kKHQgPT4gdC5pZCA9PT0gdGhpcy5lb1RhYnMuc2VsZWN0ZWRUYWIpPy5sYWJlbCB8fCAnJztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlLCBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsIHByaXZhdGUgYXBwQ2FjaGU6IEFwcENhY2hlU2VydmljZSxcbiAgICBwcml2YXRlIGRtc1NlcnZpY2U6IERtc1NlcnZpY2UsIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSkge1xuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5ETVNfT0JKRUNUX0xPQURFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB0aGlzLm9uRm9jdXMoZXZlbnQuZGF0YSkpO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB0aGlzLm9uRm9jdXMoZXZlbnQuZGF0YSkpO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfREVMRVRFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiAodGhpcy5vblJlbW92ZShldmVudC5kYXRhKSwgdGhpcy5vblJlbW92ZU1vZGlmaWNhdGlvbihldmVudC5kYXRhKSkpO1xuICB9XG5cbiAgb25Gb2N1cyhpdGVtOiBEbXNPYmplY3QpIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XG4gICAgaWYgKGl0ZW0gJiYgaXRlbS5pZCAhPT0gdGhpcy5jb250ZXh0LmlkKSB7XG4gICAgICBjb25zdCBub3RTZWVuVGFiID0gZmFsc2UgLy8hdGhpcy5sYXN0U2VlblRhYiBUT0RPOiBlbmFibGUgYWdhaW4/XG4gICAgICBjb25zdCBub3RNb2RpZmllZCA9IHRoaXMuc2Vlbkl0ZW1zLmZpbmQoaSA9PiBpLmlkID09PSBpdGVtLmlkKT8ubW9kaWZpZWQ/Lm9uID09PSBpdGVtLm1vZGlmaWVkLm9uO1xuICAgICAgbGV0IHtpZCwgdHlwZU5hbWUsIHRpdGxlLCBkZXNjcmlwdGlvbiwgbW9kaWZpZWR9ID0gaXRlbTtcbiAgICAgIGlmKG5vdFNlZW5UYWIgfHwgIW5vdE1vZGlmaWVkKSB0aGlzLm9uUmVtb3ZlKGl0ZW0sIFt7aWQsIHR5cGU6IHR5cGVOYW1lLCB0aXRsZSwgZGVzY3JpcHRpb24sIG1vZGlmaWVkfV0pO1xuICAgIH1cbiAgfVxuXG4gIG9uUmVtb3ZlKGl0ZW06IERtc09iamVjdCwgc2VlbiA9IFtdKSB7XG4gICAgaWYgKGl0ZW0gJiYgaXRlbS5pZCkge1xuICAgICAgdGhpcy5zZWVuSXRlbXMgPSBzZWVuLmNvbmNhdCh0aGlzLnNlZW5JdGVtcy5maWx0ZXIoaSA9PiBpLmlkICE9PSBpdGVtLmlkKSkuc2xpY2UoMCwgT2JqZWN0U3RhdGVEZXRhaWxzQ29tcG9uZW50LkxBU1RfU0VFTl9MSU1JVCk7XG4gICAgICB0aGlzLmFwcENhY2hlLnNldEl0ZW0oJ2VvLmxhc3Quc2Vlbi5vYmplY3RzLScgKyB0aGlzLmNvbnRleHQuaWQsIHRoaXMuc2Vlbkl0ZW1zKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBvblJlbW92ZU1vZGlmaWNhdGlvbihpdGVtOiBEbXNPYmplY3QpIHtcbiAgICBpZiAoaXRlbSAmJiBpdGVtLmlkICYmIHRoaXMuZnJvbnRQYWdlRGF0YSkge1xuICAgICAgdGhpcy5mcm9udFBhZ2VEYXRhLmxhc3RNb2RpZmljYXRpb25zID0gdGhpcy5mcm9udFBhZ2VEYXRhLmxhc3RNb2RpZmljYXRpb25zICYmIHRoaXMuZnJvbnRQYWdlRGF0YS5sYXN0TW9kaWZpY2F0aW9ucy5maWx0ZXIoaSA9PiBpLmlkICE9PSBpdGVtLmlkKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RGcm9udFBhZ2VEb2MoZG9jKSB7XG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrKCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzKGRvYyk7XG4gICAgfVxuICB9XG5cbiAgb25Db250ZXh0TWVudUNsaWNrZWQoZXZ0LCBkb2M/KSB7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVjaygpKSB7XG4gICAgICB0aGlzLmRtc1NlcnZpY2UuZ2V0RG1zT2JqZWN0QnlQYXJhbXMoZG9jIHx8IHRoaXMuY29udGV4dCkuc3Vic2NyaWJlKG8gPT4gdGhpcy5hY3Rpb25TZXJ2aWNlLnNob3dBY3Rpb25zKFtvXSwgJ0RNU19PQkpFQ1QnKSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hcHBDYWNoZS5nZXRJdGVtKCdlby5sYXN0LnNlZW4ub2JqZWN0cy0nICsgdGhpcy5jb250ZXh0LmlkKVxuICAgICAgLnN1YnNjcmliZShscyA9PiB0aGlzLnNlZW5JdGVtcyA9IGxzIHx8IFtdKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgfVxuXG59XG4iLCI8aGVhZGVyIGNsYXNzPVwiZW8taGVhZFwiPlxuICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyIGRhcmtcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWluZm8gZW8taGVhZGVyX19jb250ZW50XCI+XG4gICAgICA8IS0tIDxoMiB0cmFuc2xhdGU+ZW8uc3RhdGUub2JqZWN0LmZyb250cGFnZS50aXRsZTwvaDI+IC0tPlxuICAgICAgPGgyIGNsYXNzPVwiZW8taGVhZGVyLXRpdGxlXCI+e3sgdGl0bGUgfX08L2gyPlxuICAgICAgPGgzIGNsYXNzPVwiZW8taGVhZGVyLXN1YnRpdGxlIGZsZXgtcm93XCI+e3tjb250ZXh0LnRpdGxlfX08L2gzPlxuICAgICAgPGRpdiBjbGFzcz1cInNpemluZ1wiICpuZ0lmPVwiZnJvbnRQYWdlRGF0YVwiPlxuICAgICAgICA8ZGl2IHRyYW5zbGF0ZSBbdHJhbnNsYXRlUGFyYW1zXT1cIntkb2Njb3VudDogZnJvbnRQYWdlRGF0YT8uZG9jdW1lbnRDb3VudC52YWx1ZX1cIj5lby5zdGF0ZS5vYmplY3QuZnJvbnRwYWdlLmRvY2NvdW50PC9kaXY+XG4gICAgICAgIDxkaXYgdHJhbnNsYXRlIFt0cmFuc2xhdGVQYXJhbXNdPVwie2ZpbGVzaXplOiBmcm9udFBhZ2VEYXRhPy50b3RhbEZpbGVzaXplIHwgZmlsZVNpemV9XCI+ZW8uc3RhdGUub2JqZWN0LmZyb250cGFnZS5maWxlc2l6ZTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1hY3Rpb25zXCI+PC9kaXY+XG4gIDwvZGl2PlxuPC9oZWFkZXI+XG5cbjx5dmMtdGFicyAodGFiQ2hhbmdlKT1cIm9uVGFiQ2hhbmdlLmVtaXQoJGV2ZW50KVwiIGxheW91dFNldHRpbmdzSUQ9XCJlby5vYmplY3Quc3RhdGUuZGV0YWlscy50YWJzXCI+XG4gIDxuZy10ZW1wbGF0ZSBbeXZjVGFiXT1cIntpZDogJ2xhc3QtY2hhbmdlcycsIGxhYmVsOiAnZW8uc3RhdGUub2JqZWN0LmZyb250cGFnZS5sYXN0Y2hhbmdlcycgfCB0cmFuc2xhdGV9XCI+XG4gICAgPGRpdiBjbGFzcz1cInBhbmVsIGxhc3QtY2hhbmdlc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZG9jXCIgKm5nRm9yPVwibGV0IGRvYyBvZiBmcm9udFBhZ2VEYXRhPy5sYXN0TW9kaWZpY2F0aW9uc1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie3NlbGVjdGVkOiBzZWxlY3RlZEl0ZW0gJiYgZG9jLmlkID09PSBzZWxlY3RlZEl0ZW0uaWR9XCIgKGNsaWNrKT1cInNlbGVjdEZyb250UGFnZURvYyhkb2MpXCJcbiAgICAgICAgICAoY29udGV4dG1lbnUpPVwib25Db250ZXh0TWVudUNsaWNrZWQoJGV2ZW50LCBkb2MpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmtlclwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiPnt7ZG9jLm1vZGlmaWVkIHwgbG9jYWxlRGF0ZX19PC9kaXY+XG4gICAgICAgICAgICA8c3Ryb25nPnt7ZG9jLnRpdGxlfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+e3tkb2MuZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSBbeXZjVGFiXT1cIntpZDogJ2xhc3Qtc2VlbicsIGxhYmVsOiAnZW8uc3RhdGUub2JqZWN0LmZyb250cGFnZS5sYXN0c2VlbicgfCB0cmFuc2xhdGV9XCI+XG4gICA8ZGl2IGNsYXNzPVwicGFuZWwgbGFzdC1zZWVuXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkb2NcIiAqbmdGb3I9XCJsZXQgZG9jIG9mIHNlZW5JdGVtc1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie3NlbGVjdGVkOiBzZWxlY3RlZEl0ZW0gJiYgZG9jLmlkID09PSBzZWxlY3RlZEl0ZW0uaWR9XCIgKGNsaWNrKT1cInNlbGVjdEZyb250UGFnZURvYyhkb2MpXCJcbiAgICAgICAgICAoY29udGV4dG1lbnUpPVwib25Db250ZXh0TWVudUNsaWNrZWQoJGV2ZW50LCBkb2MpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmtlclwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiPnt7ZG9jLm1vZGlmaWVkLm9uIHwgbG9jYWxlRGF0ZX19PC9kaXY+XG4gICAgICAgICAgICA8c3Ryb25nPnt7ZG9jLnRpdGxlfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+e3tkb2MuZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj4gXG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPCEtLSBwbHVnaW4gdGFicyAtLT5cbiAgPG5nLXRlbXBsYXRlICpuZ0Zvcj1cImxldCBwIG9mIHBsdWdpbnNcIiBbeXZjVGFiXT1cIntpZDogcC5pZCwgbGFiZWw6IHAuaWQgfCB0cmFuc2xhdGV9XCI+XG4gICAgPGVvLXBsdWdpbiBbaWRdPVwicC5pZFwiIFtwYXJlbnRdPVwidGhpc1wiPjwvZW8tcGx1Z2luPlxuICA8L25nLXRlbXBsYXRlPlxuICBcbjwveXZjLXRhYnM+Il19
|
|
@@ -154,7 +154,7 @@ export class StoredQueryComponent {
|
|
|
154
154
|
if (el) {
|
|
155
155
|
el.focus();
|
|
156
156
|
}
|
|
157
|
-
},
|
|
157
|
+
}, 100);
|
|
158
158
|
}
|
|
159
159
|
});
|
|
160
160
|
}
|
|
@@ -222,4 +222,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
222
222
|
type: HostBinding,
|
|
223
223
|
args: ["class.open"]
|
|
224
224
|
}] } });
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLXF1ZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3N0b3JlZC1xdWVyeS9zdG9yZWQtcXVlcnkvc3RvcmVkLXF1ZXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3N0b3JlZC1xdWVyeS9zdG9yZWQtcXVlcnkvc3RvcmVkLXF1ZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQWEsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBRVosTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ3RGLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsWUFBWSxFQUVaLFdBQVcsRUFLWixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsUUFBUSxFQUFjLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7QUFPOUMsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixJQUNJLEtBQUssQ0FBQyxXQUF3QjtRQUNoQyxJQUFJLFdBQVcsWUFBWSxXQUFXLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUMsS0FBSyxFQUFHLENBQUMsRUFBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFFMUMs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O0lBQ0wsQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLENBQUMsYUFBYTthQUNmLGNBQWMsQ0FBQyxFQUFDLElBQUksRUFBRSxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLEVBQUMsQ0FBQzthQUN2RSxTQUFTLENBQUMsQ0FBQyxLQUFrQixFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7aUhBL1BVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLCtPQy9CakMsMitDQWdDQTsyRkREYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCO2dTQWF2QixLQUFLO3NCQURSLEtBQUs7dUJBQUMsT0FBTztnQkFtQlYsUUFBUTtzQkFEWCxLQUFLO2dCQUtJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFFb0IsTUFBTTtzQkFBaEMsV0FBVzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWJvdW5jZVRpbWUsIHN3aXRjaE1hcCwgbWFwfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgRWxlbWVudFJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtPYmplY3RGb3JtSGVscGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtLWhlbHBlci5zZXJ2aWNlXCI7XG5pbXBvcnQge09iamVjdEZvcm1Db250cm9sV3JhcHBlcn0gZnJvbSBcIi4uLy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtL29iamVjdC1mb3JtLWNvbnRyb2wtd3JhcHBlclwiO1xuaW1wb3J0IHtBcHBTZWFyY2hTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VhcmNoL2FwcC1zZWFyY2guc2VydmljZVwiO1xuaW1wb3J0IHtPYmplY3RGb3JtR3JvdXB9IGZyb20gXCIuLi8uLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1ncm91cC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgU3RvcmVkUXVlcmllc1NlcnZpY2UsXG4gIFNlYXJjaEZpbHRlcixcbiAgU2VhcmNoU3RhdGUsXG4gIFN0b3JlZFF1ZXJ5LFxuICBTZWFyY2hTZXJ2aWNlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBTeXN0ZW1TZXJ2aWNlLFxuICBRdWVyeVNjb3BlXG59IGZyb20gXCJAZW8tc2RrL2NvcmVcIjtcbmltcG9ydCB7VXRpbGl0aWVzU2VydmljZX0gZnJvbSBcIi4uLy4uL3V0aWwvc2VydmljZXMvdXRpbGl0aWVzLnNlcnZpY2VcIjtcbmltcG9ydCB7Zm9ya0pvaW4sIE9ic2VydmFibGUsIG9mfSBmcm9tIFwicnhqc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiZW8tc3RvcmVkLXF1ZXJ5XCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vc3RvcmVkLXF1ZXJ5LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9zdG9yZWQtcXVlcnkuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgU3RvcmVkUXVlcnlDb21wb25lbnQge1xuICBxdWVyeVNjb3BlOiBRdWVyeVNjb3BlO1xuICBfc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBxdWVyeUZvcm1Db250cm9sczogT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyW107XG4gIHF1ZXJ5Rm9ybTogT2JqZWN0Rm9ybUdyb3VwO1xuICBmdWxsdGV4dEZvcm1Db250cm9sOiBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXI7XG4gIF9mb3JtT25seTogYm9vbGVhbjtcblxuICBASW5wdXQoXCJxdWVyeVwiKVxuICBzZXQgcXVlcnkoc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5KSB7XG4gICAgaWYgKHN0b3JlZFF1ZXJ5IGluc3RhbmNlb2YgU3RvcmVkUXVlcnkpIHtcbiAgICAgIHRoaXMuX3N0b3JlZFF1ZXJ5ID0gc3RvcmVkUXVlcnk7XG4gICAgICB0aGlzLl9zdG9yZWRRdWVyeS5zdGF0ZS5jb3VudCA9IHt2YWx1ZSA6IDB9O1xuICAgICAgdGhpcy5xdWVyeVNjb3BlID0gdGhpcy5fc3RvcmVkUXVlcnkuc2NvcGU7XG5cbiAgICAgIHRoaXMuY3JlYXRlUXVlcnlGb3JtKCk7XG4gICAgICB0aGlzLmFnZ3JlZ2F0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBxdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmVkUXVlcnk7XG4gIH1cblxuICAvLyBzZXQgdG8gdHJ1ZSBvbmx5IHRoZSBzdG9yZWQgcXVlcnkgZm9ybSB3aWxsIGJlIHJlbmRlcmVkLCBvdGhlcndpc2VcbiAgLy8gd2UnbGwgZ2V0IHRoZSBjb21wbGV0ZSBjb250cm9sXG4gIEBJbnB1dCgpXG4gIHNldCBmb3JtT25seShiOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZm9ybU9ubHkgPSBiO1xuICB9XG5cbiAgQE91dHB1dCgpIG9uUXVlcnlMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvblF1ZXJ5RXhlY3V0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5vcGVuXCIpIGlzT3BlbiA9IHRoaXMuZm9ybU9ubHk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZWRRdWVyaWVzU2VydmljZTogU3RvcmVkUXVlcmllc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtSGVscGVyU2VydmljZTogT2JqZWN0Rm9ybUhlbHBlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTZWFyY2hTZXJ2aWNlOiBBcHBTZWFyY2hTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgc2V0UXVlcnlTY29wZShzY29wZTogUXVlcnlTY29wZSkge1xuICAgIHRoaXMuX3N0b3JlZFF1ZXJ5LnNjb3BlID0gc2NvcGU7XG4gICAgdGhpcy5xdWVyeVNjb3BlID0gc2NvcGU7XG4gICAgdGhpcy5hZ2dyZWdhdGUoKTtcbiAgfVxuXG4gIC8vIGdlbmVyYXRlIHRoZSBmb3JtIGZvciB0aGUgZHluYW1pYyBwYXJ0cyBvZiB0aGUgc3RvcmVkIHF1ZXJ5XG4gIGNyZWF0ZVF1ZXJ5Rm9ybSgpIHtcbiAgICB0aGlzLnF1ZXJ5Rm9ybUNvbnRyb2xzID0gW107XG4gICAgdGhpcy5mdWxsdGV4dEZvcm1Db250cm9sID0gbnVsbDtcblxuICAgIC8vIHBhcmFtZXRlcnMgb2YgYSBzdG9yZWQgcXVlcnkgY29udGFpbiB0aGUgZHluYW1pYyBwYXJ0cyBvZiB0aGUgcXVlcnksIHNvXG4gICAgLy8gdGhlc2UgYXJlIHRoZSBmaWVsZHMgdG8gYmUgcmVuZGVyZWRcbiAgICBpZiAodGhpcy5fc3RvcmVkUXVlcnkucGFyYW1ldGVyICYmIHRoaXMuX3N0b3JlZFF1ZXJ5LnBhcmFtZXRlci5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYXJhbVFOYW1lcyA9IHRoaXMuX3N0b3JlZFF1ZXJ5LnBhcmFtZXRlci5tYXAocCA9PiBwLnFuYW1lKTtcbiAgICAgIGNvbnN0IGZ1bGx0ZXh0UGFyYW0gPSB0aGlzLl9zdG9yZWRRdWVyeS5wYXJhbWV0ZXIuZmluZChcbiAgICAgICAgcCA9PiBwLnR5cGUgPT09IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLkZVTExURVhUXG4gICAgICApO1xuXG4gICAgICAvLyBmdWxsdGV4dCBwYXJhbSBnZXQgYSBzcGVjaWFsIGhhbmRsaW5nXG4gICAgICBpZiAoZnVsbHRleHRQYXJhbSkge1xuICAgICAgICB0aGlzLmZ1bGx0ZXh0Rm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1IZWxwZXJTZXJ2aWNlLmVsZW1lbnRUb0Zvcm1Db250cm9sKFxuICAgICAgICAgIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UuZ2V0RnVsbHRleHRGb3JtRWxlbWVudChcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJlby5zdG9yZWRxdWVyeS5zZWFyY2gudGVybVwiKSxcbiAgICAgICAgICAgIHRoaXMuX3N0b3JlZFF1ZXJ5LnRlcm1cbiAgICAgICAgICApLFxuICAgICAgICAgIFwiU0VBUkNIXCJcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5nZXRGb3JtRWxlbWVudHMoKS5zdWJzY3JpYmUoZWxlbWVudHMgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgbGV0IHBhcmFtRWxlbWVudHMgPSBlbGVtZW50cy5maWx0ZXIoXG4gICAgICAgICAgICBlID0+IHBhcmFtUU5hbWVzLmluZGV4T2YoZS5xbmFtZSkgIT09IC0xXG4gICAgICAgICAgKTtcbiAgICAgICAgICAvLyBub3csIGNyZWF0ZSB0aGUgYWN0dWFsIGZvcm0gY29udHJvbHMgZnJvbSB0aGUgcGFyYW0gZWxlbWVudHNcbiAgICAgICAgICBwYXJhbUVsZW1lbnRzLmZvckVhY2gocGFyYW1FbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGlmKHBhcmFtRWxlbWVudC50eXBlID09PSAnVEFCTEUnKXtcbiAgICAgICAgICAgICAgbGV0IGZpbHRlcnMgPSB0aGlzLl9zdG9yZWRRdWVyeS5nZXRUYWJsZUZpbHRlcnMocGFyYW1FbGVtZW50LnFuYW1lKTtcbiAgICAgICAgICAgICAgaWYoZmlsdGVycyAmJiBmaWx0ZXJzLmxlbmd0aCl7XG4gICAgICAgICAgICAgICAgcGFyYW1FbGVtZW50LnZhbHVlID0gdGhpcy5zZWFyY2hTZXJ2aWNlLnRhYmxlRmlsdGVyc1RvRWxlbWVudFZhbHVlKGZpbHRlcnMsIHBhcmFtRWxlbWVudC5lbGVtZW50cyk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyYW1FbGVtZW50LnZhbHVlID0gW3t9XTtcbiAgICAgICAgICAgICAgICBkZWxldGUgcGFyYW1FbGVtZW50LmlzTm90U2V0VmFsdWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAvLyBncmFiIHZhbHVlIGZvciB0aGUgY29udHJvbCBmcm9tIGNvcnJlc3BvbmRpbmcgcXVlcnkgZmlsdGVyc1xuICAgICAgICAgICAgICBsZXQgZmlsdGVyID0gdGhpcy5fc3RvcmVkUXVlcnkuZ2V0RmlsdGVyKHBhcmFtRWxlbWVudC5xbmFtZSk7XG4gICAgICAgICAgICAgIC8vIHdlIG1heSBoYXZlIHBhcmFtcyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgcXVlcmllcyBmaWx0ZXJzLiBUaGlzIG1heSBiZSB0aGVcbiAgICAgICAgICAgICAgLy8gY2FzZSB3aGVuIHdlIG1hcmsgZm9ybSBlbGVtZW50cyBhcyBkeW5hbWljIGZpZWxkcyB3aXRob3V0IHByb3ZpZGluZyBhIHZhbHVlXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBmaWx0ZXIgdG8gaGF2ZSBubyB2YWx1ZVxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIGZpbHRlci5vcGVyYXRvciA9PT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkVRVUFMICYmXG4gICAgICAgICAgICAgICAgICBmaWx0ZXIuZmlyc3RWYWx1ZSA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgcGFyYW1FbGVtZW50LmlzTm90U2V0VmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBkZWxldGUgcGFyYW1FbGVtZW50LmlzTm90U2V0VmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICBcbiAgICAgICAgICAgICAgICBwYXJhbUVsZW1lbnQudmFsdWUgPSB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyVG9FbGVtZW50VmFsdWUoXG4gICAgICAgICAgICAgICAgICB0aGlzLl9zdG9yZWRRdWVyeS5nZXRGaWx0ZXIocGFyYW1FbGVtZW50LnFuYW1lKSxcbiAgICAgICAgICAgICAgICAgIHBhcmFtRWxlbWVudC50eXBlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJhbUVsZW1lbnQudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIG5hbWUgcHJvcGVydHkgb2Ygc3RvcmVkIHF1ZXJ5IHBhcmFtIGhhcyB0byBiZSBxbmFtZSBvZiBmb3JtIGVsZW1lbnRcbiAgICAgICAgICAgIC8vIGJlY2F1c2Ugd2UgbWF5IGNvbWJpbmUgbXVsdGlwbGUgZm9ybXMgKGNvbnRleHQgZm9ybSkgYW5kIGluIHRoaXMgY2FzZSBuYW1lIGNvdWxkIGJlIG5vdCB1bmlxdWVcbiAgICAgICAgICAgIHBhcmFtRWxlbWVudC5uYW1lID0gcGFyYW1FbGVtZW50LnFuYW1lO1xuICAgICAgICAgICAgbGV0IHdyYXBwZXIgPSB0aGlzLmZvcm1IZWxwZXJTZXJ2aWNlLmVsZW1lbnRUb0Zvcm1Db250cm9sKFxuICAgICAgICAgICAgICBwYXJhbUVsZW1lbnQsXG4gICAgICAgICAgICAgIFwiU0VBUkNIXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAod3JhcHBlcikge1xuICAgICAgICAgICAgICB0aGlzLnF1ZXJ5Rm9ybUNvbnRyb2xzLnB1c2god3JhcHBlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZm9ybSA9IG5ldyBPYmplY3RGb3JtR3JvdXAoe30pO1xuICAgICAgICAvLyBhZGQgZnVsbHRleHQgd2hlbiBhdmFpbGFibGVcbiAgICAgICAgaWYgKHRoaXMuZnVsbHRleHRGb3JtQ29udHJvbCkge1xuICAgICAgICAgIGZvcm0uYWRkQ29udHJvbChcbiAgICAgICAgICAgIHRoaXMuZnVsbHRleHRGb3JtQ29udHJvbC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWUsXG4gICAgICAgICAgICB0aGlzLmZ1bGx0ZXh0Rm9ybUNvbnRyb2xcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucXVlcnlGb3JtQ29udHJvbHMuZm9yRWFjaChjID0+XG4gICAgICAgICAgZm9ybS5hZGRDb250cm9sKGMuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLmNvbnRyb2xOYW1lLCBjKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIG9ubHkgc2V0dXAgdGhlIGZvcm0gaWYgd2UgYWN0dWFsbHkgaGF2ZSBjb250cm9scyBhcHBsaWVkIHRvIGl0XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnF1ZXJ5Rm9ybSA9IGZvcm07XG4gICAgICAgICAgdGhpcy5xdWVyeUZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAvLyB1cGRhdGUgcXVlcnkgYmFzZWQgb24gdGhlIGZvcm0gdmFsdWVzXG4gICAgICAgICAgICAvL2ZvciAobGV0IGtleSBvZiBPYmplY3Qua2V5cyhmb3JtRGF0YSkpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLnF1ZXJ5Rm9ybS5jb250cm9scykpIHtcbiAgICAgICAgICAgICAgLy9sZXQgdmFsdWUgPSBmb3JtRGF0YVtrZXldO1xuICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmdldFZhbHVlKGtleSk7XG5cbiAgICAgICAgICAgICAgaWYgKGtleSA9PT0gU3RvcmVkUXVlcmllc1NlcnZpY2UuRlVMTFRFWFQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdG9yZWRRdWVyeS50ZXJtID0gdmFsdWUgfHwgXCJcIjtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCB3cmFwcGVyOiBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIgPSB0aGlzLnF1ZXJ5Rm9ybVxuICAgICAgICAgICAgICAgICAgLmNvbnRyb2xzW2tleV0gYXMgT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1FbGVtZW50UmVmOiBhbnkgPVxuICAgICAgICAgICAgICAgICAgd3JhcHBlci5jb250cm9sc1t3cmFwcGVyLl9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZV07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJzOiBTZWFyY2hGaWx0ZXJbXSA9XG4gICAgICAgICAgICAgICAgICBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodmFsdWUpICYmXG4gICAgICAgICAgICAgICAgICAgICFmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5pc05vdFNldFZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gW11cbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0U2VhcmNoRmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0b3JlZFF1ZXJ5LnR5cGVzLFxuICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5pc05vdFNldFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgaWYoZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQudHlwZSA9PT0gJ1RBQkxFJyl7XG4gICAgICAgICAgICAgICAgICBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5lbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmVkUXVlcnkucmVtb3ZlRmlsdGVyKGVsLnFuYW1lKTtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaWx0ZXJzLmZvckVhY2goZiA9PiB0aGlzLl9zdG9yZWRRdWVyeS5hZGRGaWx0ZXIoZikpO1xuICAgICAgICAgICAgICAgIGlmICghZmlsdGVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX3N0b3JlZFF1ZXJ5LnJlbW92ZUZpbHRlcihrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZmV0Y2ggYWdncmVnYXRpb25zIGV2ZXJ5IHRpbWUgdGhlIGZvcm0gZGF0YSBjaGFuZ2VzXG4gICAgICAgICAgICB0aGlzLmFnZ3JlZ2F0ZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIHNldCBmb2N1cyB0byB0aGUgZmlyc3QgaW5wdXQsIG5lZWRzIFRpbWVvdXQgYmVjYXVzZSBmb3JtIG1heSBub3QgaGF2ZSBiZWVuIHJlbmRlcmVkXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKTtcbiAgICAgICAgICAgIGlmIChlbCkge1xuICAgICAgICAgICAgICBlbC5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEZvcm1FbGVtZW50cygpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgLy8gZm9yIGZvcm0gZmllbGRzIHdlIHVzZSB0aGUgcW5hbWUgb2YgdGhlIHBhcmFtZXRlciB0byBmZXRjaCB0aGUgY29ycmVzcG9uZGluZyBmb3JtIGVsZW1lbnRcbiAgICAvLyBmcm9tIG9iamVjdCBkZWZpbml0aW9uIGFsdGhvdWdoIHRoZXkgbWF5IGJlIHByb3ZpZGVkLCBiZWNhdXNlIHRoZXkgbWF5IGhhdmVcbiAgICAvLyBjaGFuZ2VkIHNpbmNlIHRoZSBxdWVyeSB3YXMgcGVyc2lzdGVkXG4gICAgaWYgKHRoaXMuX3N0b3JlZFF1ZXJ5LnR5cGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gY3JlYXRpbmcgcGFyYW1zIGZvcm0gb25seSBtYWtlcyBzZW5zZSBpZiB3ZSBoYXZlIG9uZSBzaW5nbGUgdGFyZ2V0IHR5cGUgLi4uXG4gICAgICBsZXQgZm9ybUVsZW1lbnRzID0gW107XG4gICAgICBjb25zdCBlbGVtZW50RmV0Y2hUYXNrcyA9IFtdO1xuICAgICAgZWxlbWVudEZldGNoVGFza3MucHVzaChcbiAgICAgICAgdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldEZvcm1FbGVtZW50c0Zyb21Gb3JtTW9kZWwoXG4gICAgICAgICAgdGhpcy5fc3RvcmVkUXVlcnkudHlwZXNbMF0ucW5hbWUsXG4gICAgICAgICAgXCJTRUFSQ0hcIlxuICAgICAgICApXG4gICAgICApO1xuICAgICAgLy8gLi4uIGNvbnRleHRmb2xkZXJ0eXBlIG1heSBhbHNvIGJlIHByb3ZpZGVkLiBUaGV5IHdpbGwgYmUgc2V0IHVwIGZpcnN0IHRvIGJlXG4gICAgICAvLyBvbiB0b3Agb2YgdGhlIGdlbmVyYXRlZCBmb3JtXG4gICAgICBpZiAodGhpcy5fc3RvcmVkUXVlcnkuY29udGV4dEZvbGRlclR5cGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBlbGVtZW50RmV0Y2hUYXNrcy5wdXNoKFxuICAgICAgICAgIHRoaXMuc3lzdGVtU2VydmljZS5nZXRGb3JtRWxlbWVudHNGcm9tRm9ybU1vZGVsKFxuICAgICAgICAgICAgdGhpcy5fc3RvcmVkUXVlcnkuY29udGV4dEZvbGRlclR5cGVzWzBdLnFuYW1lLFxuICAgICAgICAgICAgXCJTRUFSQ0hcIixcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIC8vIGVsZW1lbnRzID0gdGhpcy5fc3RvcmVkUXVlcnkuY29udGV4dEZvbGRlclR5cGVzWzBdLmVsZW1lbnRzO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZvcmtKb2luKGVsZW1lbnRGZXRjaFRhc2tzKS5waXBlKFxuICAgICAgICBtYXAoKHJlczogYW55W10pID0+IHtcbiAgICAgICAgICBmb3JtRWxlbWVudHMgPSByZXMubGVuZ3RoID09PSAyID8gWy4uLnJlc1swXSwgLi4ucmVzWzFdXSA6IHJlc1swXTtcbiAgICAgICAgICByZXR1cm4gZm9ybUVsZW1lbnRzLm1hcChlID0+ICh7Li4uZX0pKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYWx1ZShxbmFtZTogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5xdWVyeUZvcm0uY29udHJvbHNbcW5hbWVdO1xuICAgIHJldHVybiBjb250cm9sLnZhbHVlICYmIGNvbnRyb2wudmFsdWVbcW5hbWVdO1xuICB9XG5cbiAgbG9hZCgpIHtcbiAgICB0aGlzLmFwcFNlYXJjaFNlcnZpY2Uuc2V0UXVlcnkodGhpcy5fc3RvcmVkUXVlcnkpO1xuICAgIHRoaXMub25RdWVyeUxvYWRlZC5lbWl0KCk7XG4gIH1cblxuICBleGVjdXRlKCkge1xuICAgIHRoaXMub25RdWVyeUV4ZWN1dGUuZW1pdCh7XG4gICAgICBxdWVyeUpzb246IHRoaXMuX3N0b3JlZFF1ZXJ5LmdldFF1ZXJ5SnNvbigpXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFnZ3JlZ2F0ZSgpIHtcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgIC5nZXRTZWFyY2hTdGF0ZSh7YWdnczoge3R5cGU6IHt9fSwgLi4udGhpcy5fc3RvcmVkUXVlcnkuZ2V0UXVlcnlKc29uKCl9KVxuICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IFNlYXJjaFN0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuX3N0b3JlZFF1ZXJ5LnN0YXRlID0gc3RhdGU7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cInF1ZXJ5XCIgY2xhc3M9XCJlby1zdG9yZWQtcXVlcnlcIiBbbmdDbGFzc109XCJ7aGFzRm9ybTogcXVlcnlGb3JtQ29udHJvbHM/Lmxlbmd0aCA+IDB9XCI+XG5cbiAgPGRpdiBjbGFzcz1cInRpdGxlXCIgKm5nSWY9XCIhX2Zvcm1Pbmx5XCI+e3txdWVyeS5uYW1lfX08L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInFmb3JtXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwicXVlcnktZm9ybVwiIFtmb3JtR3JvdXBdPVwicXVlcnlGb3JtXCIgKm5nSWY9XCJxdWVyeUZvcm1cIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGQgZnVsbHRleHRcIiAqbmdJZj1cImZ1bGx0ZXh0Rm9ybUNvbnRyb2xcIj5cbiAgICAgICAgPGVvLXF1ZXJ5LXNjb3BlLXNlbGVjdCBbc2VsZWN0aW9uXT1cInF1ZXJ5U2NvcGVcIiAoc2VsZWN0KT1cInNldFF1ZXJ5U2NvcGUoJGV2ZW50KVwiPjwvZW8tcXVlcnktc2NvcGUtc2VsZWN0PlxuICAgICAgICA8ZW8tZm9ybS1lbGVtZW50IFtlbGVtZW50XT1cImZ1bGx0ZXh0Rm9ybUNvbnRyb2xcIiBbc2l0dWF0aW9uXT1cIidTRUFSQ0gnXCI+PC9lby1mb3JtLWVsZW1lbnQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRcIiAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBxdWVyeUZvcm1Db250cm9sc1wiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cIntzZmU6IGVsZW1lbnQuY29udHJvbHNbZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWVdLl9lb0Zvcm1FbGVtZW50LnNlbGVjdGVkZm9yZW5yaWNobWVudH1cIj5cbiAgICAgICAgPGVvLWZvcm0tZWxlbWVudCBbZWxlbWVudF09XCJlbGVtZW50XCIgW3NpdHVhdGlvbl09XCInU0VBUkNIJ1wiPjwvZW8tZm9ybS1lbGVtZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInN0YXRlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRcIj57e3F1ZXJ5LnN0YXRlPy50b3RhbENvdW50IHwgbG9jYWxlRGVjaW1hbH19PC9zcGFuPlxuICAgICAgICA8c3BhbiB0cmFuc2xhdGU+ZW8uc3RvcmVkcXVlcnkucmVzLmNvdW50LmxhYmVsPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uc1wiICpuZ0lmPVwiIV9mb3JtT25seVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImxvYWQoKVwiIHRyYW5zbGF0ZT5lby5zdG9yZWRxdWVyeS5sb2FkPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIihxdWVyeUZvcm0gJiYgcXVlcnlGb3JtLmludmFsaWQpIHx8IHF1ZXJ5LnN0YXRlPy5pc0VtcHR5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhlY3V0ZSgpXCIgdHJhbnNsYXRlPmVvLnN0b3JlZHF1ZXJ5LnJ1bjwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLXF1ZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3N0b3JlZC1xdWVyeS9zdG9yZWQtcXVlcnkvc3RvcmVkLXF1ZXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3N0b3JlZC1xdWVyeS9zdG9yZWQtcXVlcnkvc3RvcmVkLXF1ZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQWEsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBRVosTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ3RGLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsWUFBWSxFQUVaLFdBQVcsRUFLWixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsUUFBUSxFQUFjLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7QUFPOUMsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixJQUNJLEtBQUssQ0FBQyxXQUF3QjtRQUNoQyxJQUFJLFdBQVcsWUFBWSxXQUFXLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUMsS0FBSyxFQUFHLENBQUMsRUFBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFFMUMs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O0lBQ0wsQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLENBQUMsYUFBYTthQUNmLGNBQWMsQ0FBQyxFQUFDLElBQUksRUFBRSxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLEVBQUMsQ0FBQzthQUN2RSxTQUFTLENBQUMsQ0FBQyxLQUFrQixFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7aUhBL1BVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLCtPQy9CakMsMitDQWdDQTsyRkREYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCO2dTQWF2QixLQUFLO3NCQURSLEtBQUs7dUJBQUMsT0FBTztnQkFtQlYsUUFBUTtzQkFEWCxLQUFLO2dCQUtJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFFb0IsTUFBTTtzQkFBaEMsV0FBVzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWJvdW5jZVRpbWUsIHN3aXRjaE1hcCwgbWFwfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgRWxlbWVudFJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtPYmplY3RGb3JtSGVscGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtLWhlbHBlci5zZXJ2aWNlXCI7XG5pbXBvcnQge09iamVjdEZvcm1Db250cm9sV3JhcHBlcn0gZnJvbSBcIi4uLy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtL29iamVjdC1mb3JtLWNvbnRyb2wtd3JhcHBlclwiO1xuaW1wb3J0IHtBcHBTZWFyY2hTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VhcmNoL2FwcC1zZWFyY2guc2VydmljZVwiO1xuaW1wb3J0IHtPYmplY3RGb3JtR3JvdXB9IGZyb20gXCIuLi8uLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1ncm91cC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgU3RvcmVkUXVlcmllc1NlcnZpY2UsXG4gIFNlYXJjaEZpbHRlcixcbiAgU2VhcmNoU3RhdGUsXG4gIFN0b3JlZFF1ZXJ5LFxuICBTZWFyY2hTZXJ2aWNlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBTeXN0ZW1TZXJ2aWNlLFxuICBRdWVyeVNjb3BlXG59IGZyb20gXCJAZW8tc2RrL2NvcmVcIjtcbmltcG9ydCB7VXRpbGl0aWVzU2VydmljZX0gZnJvbSBcIi4uLy4uL3V0aWwvc2VydmljZXMvdXRpbGl0aWVzLnNlcnZpY2VcIjtcbmltcG9ydCB7Zm9ya0pvaW4sIE9ic2VydmFibGUsIG9mfSBmcm9tIFwicnhqc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiZW8tc3RvcmVkLXF1ZXJ5XCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vc3RvcmVkLXF1ZXJ5LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9zdG9yZWQtcXVlcnkuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgU3RvcmVkUXVlcnlDb21wb25lbnQge1xuICBxdWVyeVNjb3BlOiBRdWVyeVNjb3BlO1xuICBfc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBxdWVyeUZvcm1Db250cm9sczogT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyW107XG4gIHF1ZXJ5Rm9ybTogT2JqZWN0Rm9ybUdyb3VwO1xuICBmdWxsdGV4dEZvcm1Db250cm9sOiBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXI7XG4gIF9mb3JtT25seTogYm9vbGVhbjtcblxuICBASW5wdXQoXCJxdWVyeVwiKVxuICBzZXQgcXVlcnkoc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5KSB7XG4gICAgaWYgKHN0b3JlZFF1ZXJ5IGluc3RhbmNlb2YgU3RvcmVkUXVlcnkpIHtcbiAgICAgIHRoaXMuX3N0b3JlZFF1ZXJ5ID0gc3RvcmVkUXVlcnk7XG4gICAgICB0aGlzLl9zdG9yZWRRdWVyeS5zdGF0ZS5jb3VudCA9IHt2YWx1ZSA6IDB9O1xuICAgICAgdGhpcy5xdWVyeVNjb3BlID0gdGhpcy5fc3RvcmVkUXVlcnkuc2NvcGU7XG5cbiAgICAgIHRoaXMuY3JlYXRlUXVlcnlGb3JtKCk7XG4gICAgICB0aGlzLmFnZ3JlZ2F0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBxdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmVkUXVlcnk7XG4gIH1cblxuICAvLyBzZXQgdG8gdHJ1ZSBvbmx5IHRoZSBzdG9yZWQgcXVlcnkgZm9ybSB3aWxsIGJlIHJlbmRlcmVkLCBvdGhlcndpc2VcbiAgLy8gd2UnbGwgZ2V0IHRoZSBjb21wbGV0ZSBjb250cm9sXG4gIEBJbnB1dCgpXG4gIHNldCBmb3JtT25seShiOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZm9ybU9ubHkgPSBiO1xuICB9XG5cbiAgQE91dHB1dCgpIG9uUXVlcnlMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvblF1ZXJ5RXhlY3V0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5vcGVuXCIpIGlzT3BlbiA9IHRoaXMuZm9ybU9ubHk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZWRRdWVyaWVzU2VydmljZTogU3RvcmVkUXVlcmllc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtSGVscGVyU2VydmljZTogT2JqZWN0Rm9ybUhlbHBlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTZWFyY2hTZXJ2aWNlOiBBcHBTZWFyY2hTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgc2V0UXVlcnlTY29wZShzY29wZTogUXVlcnlTY29wZSkge1xuICAgIHRoaXMuX3N0b3JlZFF1ZXJ5LnNjb3BlID0gc2NvcGU7XG4gICAgdGhpcy5xdWVyeVNjb3BlID0gc2NvcGU7XG4gICAgdGhpcy5hZ2dyZWdhdGUoKTtcbiAgfVxuXG4gIC8vIGdlbmVyYXRlIHRoZSBmb3JtIGZvciB0aGUgZHluYW1pYyBwYXJ0cyBvZiB0aGUgc3RvcmVkIHF1ZXJ5XG4gIGNyZWF0ZVF1ZXJ5Rm9ybSgpIHtcbiAgICB0aGlzLnF1ZXJ5Rm9ybUNvbnRyb2xzID0gW107XG4gICAgdGhpcy5mdWxsdGV4dEZvcm1Db250cm9sID0gbnVsbDtcblxuICAgIC8vIHBhcmFtZXRlcnMgb2YgYSBzdG9yZWQgcXVlcnkgY29udGFpbiB0aGUgZHluYW1pYyBwYXJ0cyBvZiB0aGUgcXVlcnksIHNvXG4gICAgLy8gdGhlc2UgYXJlIHRoZSBmaWVsZHMgdG8gYmUgcmVuZGVyZWRcbiAgICBpZiAodGhpcy5fc3RvcmVkUXVlcnkucGFyYW1ldGVyICYmIHRoaXMuX3N0b3JlZFF1ZXJ5LnBhcmFtZXRlci5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYXJhbVFOYW1lcyA9IHRoaXMuX3N0b3JlZFF1ZXJ5LnBhcmFtZXRlci5tYXAocCA9PiBwLnFuYW1lKTtcbiAgICAgIGNvbnN0IGZ1bGx0ZXh0UGFyYW0gPSB0aGlzLl9zdG9yZWRRdWVyeS5wYXJhbWV0ZXIuZmluZChcbiAgICAgICAgcCA9PiBwLnR5cGUgPT09IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLkZVTExURVhUXG4gICAgICApO1xuXG4gICAgICAvLyBmdWxsdGV4dCBwYXJhbSBnZXQgYSBzcGVjaWFsIGhhbmRsaW5nXG4gICAgICBpZiAoZnVsbHRleHRQYXJhbSkge1xuICAgICAgICB0aGlzLmZ1bGx0ZXh0Rm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1IZWxwZXJTZXJ2aWNlLmVsZW1lbnRUb0Zvcm1Db250cm9sKFxuICAgICAgICAgIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UuZ2V0RnVsbHRleHRGb3JtRWxlbWVudChcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJlby5zdG9yZWRxdWVyeS5zZWFyY2gudGVybVwiKSxcbiAgICAgICAgICAgIHRoaXMuX3N0b3JlZFF1ZXJ5LnRlcm1cbiAgICAgICAgICApLFxuICAgICAgICAgIFwiU0VBUkNIXCJcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5nZXRGb3JtRWxlbWVudHMoKS5zdWJzY3JpYmUoZWxlbWVudHMgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgbGV0IHBhcmFtRWxlbWVudHMgPSBlbGVtZW50cy5maWx0ZXIoXG4gICAgICAgICAgICBlID0+IHBhcmFtUU5hbWVzLmluZGV4T2YoZS5xbmFtZSkgIT09IC0xXG4gICAgICAgICAgKTtcbiAgICAgICAgICAvLyBub3csIGNyZWF0ZSB0aGUgYWN0dWFsIGZvcm0gY29udHJvbHMgZnJvbSB0aGUgcGFyYW0gZWxlbWVudHNcbiAgICAgICAgICBwYXJhbUVsZW1lbnRzLmZvckVhY2gocGFyYW1FbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGlmKHBhcmFtRWxlbWVudC50eXBlID09PSAnVEFCTEUnKXtcbiAgICAgICAgICAgICAgbGV0IGZpbHRlcnMgPSB0aGlzLl9zdG9yZWRRdWVyeS5nZXRUYWJsZUZpbHRlcnMocGFyYW1FbGVtZW50LnFuYW1lKTtcbiAgICAgICAgICAgICAgaWYoZmlsdGVycyAmJiBmaWx0ZXJzLmxlbmd0aCl7XG4gICAgICAgICAgICAgICAgcGFyYW1FbGVtZW50LnZhbHVlID0gdGhpcy5zZWFyY2hTZXJ2aWNlLnRhYmxlRmlsdGVyc1RvRWxlbWVudFZhbHVlKGZpbHRlcnMsIHBhcmFtRWxlbWVudC5lbGVtZW50cyk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyYW1FbGVtZW50LnZhbHVlID0gW3t9XTtcbiAgICAgICAgICAgICAgICBkZWxldGUgcGFyYW1FbGVtZW50LmlzTm90U2V0VmFsdWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAvLyBncmFiIHZhbHVlIGZvciB0aGUgY29udHJvbCBmcm9tIGNvcnJlc3BvbmRpbmcgcXVlcnkgZmlsdGVyc1xuICAgICAgICAgICAgICBsZXQgZmlsdGVyID0gdGhpcy5fc3RvcmVkUXVlcnkuZ2V0RmlsdGVyKHBhcmFtRWxlbWVudC5xbmFtZSk7XG4gICAgICAgICAgICAgIC8vIHdlIG1heSBoYXZlIHBhcmFtcyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgcXVlcmllcyBmaWx0ZXJzLiBUaGlzIG1heSBiZSB0aGVcbiAgICAgICAgICAgICAgLy8gY2FzZSB3aGVuIHdlIG1hcmsgZm9ybSBlbGVtZW50cyBhcyBkeW5hbWljIGZpZWxkcyB3aXRob3V0IHByb3ZpZGluZyBhIHZhbHVlXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBmaWx0ZXIgdG8gaGF2ZSBubyB2YWx1ZVxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIGZpbHRlci5vcGVyYXRvciA9PT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkVRVUFMICYmXG4gICAgICAgICAgICAgICAgICBmaWx0ZXIuZmlyc3RWYWx1ZSA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgcGFyYW1FbGVtZW50LmlzTm90U2V0VmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBkZWxldGUgcGFyYW1FbGVtZW50LmlzTm90U2V0VmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICBcbiAgICAgICAgICAgICAgICBwYXJhbUVsZW1lbnQudmFsdWUgPSB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyVG9FbGVtZW50VmFsdWUoXG4gICAgICAgICAgICAgICAgICB0aGlzLl9zdG9yZWRRdWVyeS5nZXRGaWx0ZXIocGFyYW1FbGVtZW50LnFuYW1lKSxcbiAgICAgICAgICAgICAgICAgIHBhcmFtRWxlbWVudC50eXBlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJhbUVsZW1lbnQudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIG5hbWUgcHJvcGVydHkgb2Ygc3RvcmVkIHF1ZXJ5IHBhcmFtIGhhcyB0byBiZSBxbmFtZSBvZiBmb3JtIGVsZW1lbnRcbiAgICAgICAgICAgIC8vIGJlY2F1c2Ugd2UgbWF5IGNvbWJpbmUgbXVsdGlwbGUgZm9ybXMgKGNvbnRleHQgZm9ybSkgYW5kIGluIHRoaXMgY2FzZSBuYW1lIGNvdWxkIGJlIG5vdCB1bmlxdWVcbiAgICAgICAgICAgIHBhcmFtRWxlbWVudC5uYW1lID0gcGFyYW1FbGVtZW50LnFuYW1lO1xuICAgICAgICAgICAgbGV0IHdyYXBwZXIgPSB0aGlzLmZvcm1IZWxwZXJTZXJ2aWNlLmVsZW1lbnRUb0Zvcm1Db250cm9sKFxuICAgICAgICAgICAgICBwYXJhbUVsZW1lbnQsXG4gICAgICAgICAgICAgIFwiU0VBUkNIXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAod3JhcHBlcikge1xuICAgICAgICAgICAgICB0aGlzLnF1ZXJ5Rm9ybUNvbnRyb2xzLnB1c2god3JhcHBlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZm9ybSA9IG5ldyBPYmplY3RGb3JtR3JvdXAoe30pO1xuICAgICAgICAvLyBhZGQgZnVsbHRleHQgd2hlbiBhdmFpbGFibGVcbiAgICAgICAgaWYgKHRoaXMuZnVsbHRleHRGb3JtQ29udHJvbCkge1xuICAgICAgICAgIGZvcm0uYWRkQ29udHJvbChcbiAgICAgICAgICAgIHRoaXMuZnVsbHRleHRGb3JtQ29udHJvbC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWUsXG4gICAgICAgICAgICB0aGlzLmZ1bGx0ZXh0Rm9ybUNvbnRyb2xcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucXVlcnlGb3JtQ29udHJvbHMuZm9yRWFjaChjID0+XG4gICAgICAgICAgZm9ybS5hZGRDb250cm9sKGMuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLmNvbnRyb2xOYW1lLCBjKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIG9ubHkgc2V0dXAgdGhlIGZvcm0gaWYgd2UgYWN0dWFsbHkgaGF2ZSBjb250cm9scyBhcHBsaWVkIHRvIGl0XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnF1ZXJ5Rm9ybSA9IGZvcm07XG4gICAgICAgICAgdGhpcy5xdWVyeUZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAvLyB1cGRhdGUgcXVlcnkgYmFzZWQgb24gdGhlIGZvcm0gdmFsdWVzXG4gICAgICAgICAgICAvL2ZvciAobGV0IGtleSBvZiBPYmplY3Qua2V5cyhmb3JtRGF0YSkpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLnF1ZXJ5Rm9ybS5jb250cm9scykpIHtcbiAgICAgICAgICAgICAgLy9sZXQgdmFsdWUgPSBmb3JtRGF0YVtrZXldO1xuICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmdldFZhbHVlKGtleSk7XG5cbiAgICAgICAgICAgICAgaWYgKGtleSA9PT0gU3RvcmVkUXVlcmllc1NlcnZpY2UuRlVMTFRFWFQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdG9yZWRRdWVyeS50ZXJtID0gdmFsdWUgfHwgXCJcIjtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCB3cmFwcGVyOiBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIgPSB0aGlzLnF1ZXJ5Rm9ybVxuICAgICAgICAgICAgICAgICAgLmNvbnRyb2xzW2tleV0gYXMgT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1FbGVtZW50UmVmOiBhbnkgPVxuICAgICAgICAgICAgICAgICAgd3JhcHBlci5jb250cm9sc1t3cmFwcGVyLl9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZV07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJzOiBTZWFyY2hGaWx0ZXJbXSA9XG4gICAgICAgICAgICAgICAgICBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodmFsdWUpICYmXG4gICAgICAgICAgICAgICAgICAgICFmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5pc05vdFNldFZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gW11cbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0U2VhcmNoRmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0b3JlZFF1ZXJ5LnR5cGVzLFxuICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5pc05vdFNldFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgaWYoZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQudHlwZSA9PT0gJ1RBQkxFJyl7XG4gICAgICAgICAgICAgICAgICBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5lbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmVkUXVlcnkucmVtb3ZlRmlsdGVyKGVsLnFuYW1lKTtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaWx0ZXJzLmZvckVhY2goZiA9PiB0aGlzLl9zdG9yZWRRdWVyeS5hZGRGaWx0ZXIoZikpO1xuICAgICAgICAgICAgICAgIGlmICghZmlsdGVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX3N0b3JlZFF1ZXJ5LnJlbW92ZUZpbHRlcihrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZmV0Y2ggYWdncmVnYXRpb25zIGV2ZXJ5IHRpbWUgdGhlIGZvcm0gZGF0YSBjaGFuZ2VzXG4gICAgICAgICAgICB0aGlzLmFnZ3JlZ2F0ZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIHNldCBmb2N1cyB0byB0aGUgZmlyc3QgaW5wdXQsIG5lZWRzIFRpbWVvdXQgYmVjYXVzZSBmb3JtIG1heSBub3QgaGF2ZSBiZWVuIHJlbmRlcmVkXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKTtcbiAgICAgICAgICAgIGlmIChlbCkge1xuICAgICAgICAgICAgICBlbC5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9ybUVsZW1lbnRzKCk6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICAvLyBmb3IgZm9ybSBmaWVsZHMgd2UgdXNlIHRoZSBxbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHRvIGZldGNoIHRoZSBjb3JyZXNwb25kaW5nIGZvcm0gZWxlbWVudFxuICAgIC8vIGZyb20gb2JqZWN0IGRlZmluaXRpb24gYWx0aG91Z2ggdGhleSBtYXkgYmUgcHJvdmlkZWQsIGJlY2F1c2UgdGhleSBtYXkgaGF2ZVxuICAgIC8vIGNoYW5nZWQgc2luY2UgdGhlIHF1ZXJ5IHdhcyBwZXJzaXN0ZWRcbiAgICBpZiAodGhpcy5fc3RvcmVkUXVlcnkudHlwZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAvLyBjcmVhdGluZyBwYXJhbXMgZm9ybSBvbmx5IG1ha2VzIHNlbnNlIGlmIHdlIGhhdmUgb25lIHNpbmdsZSB0YXJnZXQgdHlwZSAuLi5cbiAgICAgIGxldCBmb3JtRWxlbWVudHMgPSBbXTtcbiAgICAgIGNvbnN0IGVsZW1lbnRGZXRjaFRhc2tzID0gW107XG4gICAgICBlbGVtZW50RmV0Y2hUYXNrcy5wdXNoKFxuICAgICAgICB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0Rm9ybUVsZW1lbnRzRnJvbUZvcm1Nb2RlbChcbiAgICAgICAgICB0aGlzLl9zdG9yZWRRdWVyeS50eXBlc1swXS5xbmFtZSxcbiAgICAgICAgICBcIlNFQVJDSFwiXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICAvLyAuLi4gY29udGV4dGZvbGRlcnR5cGUgbWF5IGFsc28gYmUgcHJvdmlkZWQuIFRoZXkgd2lsbCBiZSBzZXQgdXAgZmlyc3QgdG8gYmVcbiAgICAgIC8vIG9uIHRvcCBvZiB0aGUgZ2VuZXJhdGVkIGZvcm1cbiAgICAgIGlmICh0aGlzLl9zdG9yZWRRdWVyeS5jb250ZXh0Rm9sZGVyVHlwZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGVsZW1lbnRGZXRjaFRhc2tzLnB1c2goXG4gICAgICAgICAgdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldEZvcm1FbGVtZW50c0Zyb21Gb3JtTW9kZWwoXG4gICAgICAgICAgICB0aGlzLl9zdG9yZWRRdWVyeS5jb250ZXh0Rm9sZGVyVHlwZXNbMF0ucW5hbWUsXG4gICAgICAgICAgICBcIlNFQVJDSFwiLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgLy8gZWxlbWVudHMgPSB0aGlzLl9zdG9yZWRRdWVyeS5jb250ZXh0Rm9sZGVyVHlwZXNbMF0uZWxlbWVudHM7XG4gICAgICB9XG4gICAgICByZXR1cm4gZm9ya0pvaW4oZWxlbWVudEZldGNoVGFza3MpLnBpcGUoXG4gICAgICAgIG1hcCgocmVzOiBhbnlbXSkgPT4ge1xuICAgICAgICAgIGZvcm1FbGVtZW50cyA9IHJlcy5sZW5ndGggPT09IDIgPyBbLi4ucmVzWzBdLCAuLi5yZXNbMV1dIDogcmVzWzBdO1xuICAgICAgICAgIHJldHVybiBmb3JtRWxlbWVudHMubWFwKGUgPT4gKHsuLi5lfSkpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFZhbHVlKHFuYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnF1ZXJ5Rm9ybS5jb250cm9sc1txbmFtZV07XG4gICAgcmV0dXJuIGNvbnRyb2wudmFsdWUgJiYgY29udHJvbC52YWx1ZVtxbmFtZV07XG4gIH1cblxuICBsb2FkKCkge1xuICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5zZXRRdWVyeSh0aGlzLl9zdG9yZWRRdWVyeSk7XG4gICAgdGhpcy5vblF1ZXJ5TG9hZGVkLmVtaXQoKTtcbiAgfVxuXG4gIGV4ZWN1dGUoKSB7XG4gICAgdGhpcy5vblF1ZXJ5RXhlY3V0ZS5lbWl0KHtcbiAgICAgIHF1ZXJ5SnNvbjogdGhpcy5fc3RvcmVkUXVlcnkuZ2V0UXVlcnlKc29uKClcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWdncmVnYXRlKCkge1xuICAgIHRoaXMuc2VhcmNoU2VydmljZVxuICAgICAgLmdldFNlYXJjaFN0YXRlKHthZ2dzOiB7dHlwZToge319LCAuLi50aGlzLl9zdG9yZWRRdWVyeS5nZXRRdWVyeUpzb24oKX0pXG4gICAgICAuc3Vic2NyaWJlKChzdGF0ZTogU2VhcmNoU3RhdGUpID0+IHtcbiAgICAgICAgdGhpcy5fc3RvcmVkUXVlcnkuc3RhdGUgPSBzdGF0ZTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwicXVlcnlcIiBjbGFzcz1cImVvLXN0b3JlZC1xdWVyeVwiIFtuZ0NsYXNzXT1cIntoYXNGb3JtOiBxdWVyeUZvcm1Db250cm9scz8ubGVuZ3RoID4gMH1cIj5cblxuICA8ZGl2IGNsYXNzPVwidGl0bGVcIiAqbmdJZj1cIiFfZm9ybU9ubHlcIj57e3F1ZXJ5Lm5hbWV9fTwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicWZvcm1cIj5cblxuICAgIDxkaXYgY2xhc3M9XCJxdWVyeS1mb3JtXCIgW2Zvcm1Hcm91cF09XCJxdWVyeUZvcm1cIiAqbmdJZj1cInF1ZXJ5Rm9ybVwiPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZCBmdWxsdGV4dFwiICpuZ0lmPVwiZnVsbHRleHRGb3JtQ29udHJvbFwiPlxuICAgICAgICA8ZW8tcXVlcnktc2NvcGUtc2VsZWN0IFtzZWxlY3Rpb25dPVwicXVlcnlTY29wZVwiIChzZWxlY3QpPVwic2V0UXVlcnlTY29wZSgkZXZlbnQpXCI+PC9lby1xdWVyeS1zY29wZS1zZWxlY3Q+XG4gICAgICAgIDxlby1mb3JtLWVsZW1lbnQgW2VsZW1lbnRdPVwiZnVsbHRleHRGb3JtQ29udHJvbFwiIFtzaXR1YXRpb25dPVwiJ1NFQVJDSCdcIj48L2VvLWZvcm0tZWxlbWVudD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZFwiICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHF1ZXJ5Rm9ybUNvbnRyb2xzXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwie3NmZTogZWxlbWVudC5jb250cm9sc1tlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZV0uX2VvRm9ybUVsZW1lbnQuc2VsZWN0ZWRmb3JlbnJpY2htZW50fVwiPlxuICAgICAgICA8ZW8tZm9ybS1lbGVtZW50IFtlbGVtZW50XT1cImVsZW1lbnRcIiBbc2l0dWF0aW9uXT1cIidTRUFSQ0gnXCI+PC9lby1mb3JtLWVsZW1lbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RhdGVcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudFwiPnt7cXVlcnkuc3RhdGU/LnRvdGFsQ291bnQgfCBsb2NhbGVEZWNpbWFsfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5lby5zdG9yZWRxdWVyeS5yZXMuY291bnQubGFiZWw8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25zXCIgKm5nSWY9XCIhX2Zvcm1Pbmx5XCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwibG9hZCgpXCIgdHJhbnNsYXRlPmVvLnN0b3JlZHF1ZXJ5LmxvYWQ8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiKHF1ZXJ5Rm9ybSAmJiBxdWVyeUZvcm0uaW52YWxpZCkgfHwgcXVlcnkuc3RhdGU/LmlzRW1wdHlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJleGVjdXRlKClcIiB0cmFuc2xhdGU+ZW8uc3RvcmVkcXVlcnkucnVuPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -198,6 +198,16 @@ export class TreeComponent {
|
|
|
198
198
|
this.visibleNodes.forEach(n => (n.focused = false));
|
|
199
199
|
}
|
|
200
200
|
if (node) {
|
|
201
|
+
const nodes = document.querySelectorAll('eo-tree-node');
|
|
202
|
+
nodes.forEach(n => {
|
|
203
|
+
if (n.querySelector('.label span').textContent === node.name) {
|
|
204
|
+
n.scrollIntoView({
|
|
205
|
+
behavior: "smooth",
|
|
206
|
+
block: "start",
|
|
207
|
+
inline: "nearest"
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
});
|
|
201
211
|
node.focused = true;
|
|
202
212
|
this.focusedNode = node;
|
|
203
213
|
}
|
|
@@ -268,4 +278,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
268
278
|
type: HostListener,
|
|
269
279
|
args: ['keydown', ['$event']]
|
|
270
280
|
}] } });
|
|
271
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQWtCdkUsTUFBTSxPQUFPLGFBQWE7SUEwQnhCLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUF4QlgsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUVwQyxtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFLeEIsWUFBTyxHQUFnQixFQUFFLENBQUM7UUFHMUIsaUJBQVksR0FBRyx1Q0FBdUMsQ0FBQztRQUV2RCxpQkFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQjtRQUVoRCxxRkFBcUY7UUFDM0UseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUxQyxvQkFBZSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7UUFDN0IsQ0FBQyxDQUFBO0lBR0QsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsSUFDSSxnQkFBZ0IsQ0FBQyxLQUFlO1FBQ2xDLElBQUksQ0FB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LFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0ksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBWUgsZ0JBQWdCO3NCQURuQixLQUFLO3VCQUFDLGtCQUFrQjtnQkFPckIsU0FBUztzQkFEWixLQUFLO3VCQUFDLE1BQU07Z0JBVVQsVUFBVTtzQkFEYixLQUFLO3VCQUFDLFlBQVk7Z0JBU25CLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBU3hDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVO2dCQWdCMUIsS0FBSztzQkFESixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSG9zdExpc3RlbmVyLFxuICBmb3J3YXJkUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZywgRWxlbWVudFJlZiwgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJlZU5vZGUsIFRyZWVPcHRpb25zfSBmcm9tICcuL3RyZWUuY29tcG9uZW50LmludGVyZmFjZSc7XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHJlZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBUcmVlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgX3RhYkluZGV4ID0gMDtcblxuICBwcml2YXRlIF9leHBhbmRlZE5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIF9oaWdobGlnaHRlZE5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHNlbGVjdGVkTm9kZXM6IGFueVtdID0gW107XG4gIHByaXZhdGUgdmlzaWJsZU5vZGVzOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIGZvY3VzZWROb2RlOiBUcmVlTm9kZTtcblxuICB0cmVlOiBUcmVlTm9kZVtdO1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFRyZWVPcHRpb25zID0ge307XG4gIEBJbnB1dCgpIGlzRGlzcGxheWVkOiBib29sZWFuO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcbiAgQElucHV0KCkgZW1wdHlNZXNzYWdlID0gJ2VvLmVycm9yLnN0cnVjdHVyZS50cmVlLm5vdC5hdmFpbGFibGUnO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGlvbktleSA9ICcgJzsgLy8gZGVmYXVsdCBpcyBTcGFjZVxuXG4gIC8vIHRoZSBub2RlcyB0aGF0IGFyZSBzZWxlY3RlZC4gSW4gY2FzZSBvZiBgbXVsdGlzZWxlY3RgIHNldCB0byB0cnVlLCB0aGlzIHdpbGwgYmUgYW5cbiAgQE91dHB1dCgpIGV4cGFuZGVkTm9kZXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBASW5wdXQoJ2hpZ2hsaWdodGVkTm9kZXMnKVxuICBzZXQgaGlnaGxpZ2h0ZWROb2Rlcyhub2Rlczogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9oaWdobGlnaHRlZE5vZGVzID0gbm9kZXMgfHwgW107XG4gICAgdGhpcy52aXNpYmxlTm9kZXMuZm9yRWFjaChuID0+IChuLmhpZ2hsaWdodGVkID0gISF0aGlzLl9oaWdobGlnaHRlZE5vZGVzLmZpbmQoaWQgPT4gaWQgPT09IG4uaWQpKSk7XG4gIH1cblxuICBASW5wdXQoJ3RyZWUnKVxuICBzZXQgdHJlZUlucHV0KHRyZWU6IFRyZWVOb2RlW10pIHtcbiAgICAvLyB0aGlzLnRyZWUgPSB0cmVlO1xuICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IFtdO1xuICAgIHRoaXMuX2V4cGFuZGVkTm9kZXMgPSBbXTtcbiAgICB0aGlzLmZvY3VzZWROb2RlID0gbnVsbDtcbiAgICB0aGlzLnVwZGF0ZVRyZWUodHJlZSk7XG4gIH1cblxuICBASW5wdXQoJ3RyZWVVcGRhdGUnKVxuICBzZXQgdHJlZVVwZGF0ZSh0cmVlOiBUcmVlTm9kZVtdKSB7XG4gICAgaWYgKHRyZWUpIHtcbiAgICAgIHRoaXMudXBkYXRlVHJlZSh0cmVlKTtcbiAgICB9XG4gIH1cblxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nLCBbJyRldmVudC50YXJnZXQnXSlcbiAgb25Gb2N1c0luKHRhcmdldDogYW55KSB7XG4gICAgaWYgKCF0aGlzLmZvY3VzZWROb2RlIHx8ICF0aGlzLmZvY3VzZWROb2RlLmZvY3VzZWQpIHtcbiAgICAgIGxldCBub2RlID0gdGhpcy5zZWxlY3RlZE5vZGVzWzBdIHx8IHRoaXMudmlzaWJsZU5vZGVzWzBdO1xuICAgICAgdGhpcy51cGRhdGVGb2N1cyhub2RlKTtcbiAgICB9XG4gIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcbiAgICBvbkZvY3VzT3V0KCkge1xuICAgICAgdGhpcy51cGRhdGVGb2N1cygpO1xuICAgIH1cblxuICBvbkZvY3VzKGV2dCkge1xuICB9XG5cbiAgb25CbHVyKGV2dCkge1xuICB9XG5cbiAgb25Ub2dnbGUoZXZ0KSB7XG5cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd1VwJzoge1xuICAgICAgICB0aGlzLmZvY3VzTm9kZShmYWxzZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQXJyb3dEb3duJzoge1xuICAgICAgICB0aGlzLmZvY3VzTm9kZSh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdBcnJvd1JpZ2h0Jzoge1xuICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKHRoaXMuZm9jdXNlZE5vZGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6IHtcbiAgICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZCh0aGlzLmZvY3VzZWROb2RlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIHRoaXMuc2VsZWN0aW9uS2V5OiB7XG4gICAgICAgIC8vIHRvZ2dsZSBzZWxlY3Rpb24gb2YgdGhlIGZvY3VzZWQgbm9kZVxuICAgICAgICBpZiAodGhpcy5mb2N1c2VkTm9kZS5zZWxlY3RhYmxlKSB7XG4gICAgICAgICAgLy8gdGhpcy5mb2N1c2VkTm9kZS5zZWxlY3RlZCA9ICF0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGVkO1xuICAgICAgICAgIHRoaXMub25Ob2RlU2VsZWN0ZWQodGhpcy5mb2N1c2VkTm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFbnRlcic6IHtcbiAgICAgICAgLy8gdG9nZ2xlIHNlbGVjdGlvbiBvZiB0aGUgZm9jdXNlZCBub2RlXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGFibGUpIHtcbiAgICAgICAgICAvLyB0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGVkID0gIXRoaXMuZm9jdXNlZE5vZGUuc2VsZWN0ZWQ7XG4gICAgICAgICAgdGhpcy5vbk5vZGVTZWxlY3RlZCh0aGlzLmZvY3VzZWROb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoWydBcnJvd1VwJywgJ0Fycm93RG93bicsICdBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCddLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuXG4gIHdyaXRlVmFsdWUoc2VsZWN0ZWROb2RlczogVHJlZU5vZGVbXSk6IHZvaWQge1xuICAgIGxldCBfc2VsZWN0ZWROb2RlcyA9ICFzZWxlY3RlZE5vZGVzIHx8IEFycmF5LmlzQXJyYXkoc2VsZWN0ZWROb2RlcykgPyBzZWxlY3RlZE5vZGVzIHx8IFtdIDogW3NlbGVjdGVkTm9kZXNdO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGggIT09IF9zZWxlY3RlZE5vZGVzLmxlbmd0aCB8fCB0aGlzLnNlbGVjdGVkTm9kZXMuc29tZSgobiwgaSkgPT4gbi5pZCAhPT0gX3NlbGVjdGVkTm9kZXNbaV0uaWQpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBfc2VsZWN0ZWROb2RlcztcbiAgICAgIHRoaXMudXBkYXRlVHJlZSh0aGlzLnRyZWUpO1xuICAgIH1cblxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIG9uTm9kZVNlbGVjdGVkKG5vZGUpIHtcbiAgICAvLyBpZiB0aGUgc2VsZWN0ZWQgbm9kZSBpc24ndCBhbGxvd2VkIHRvIGJlIHNlbGVjdGVkLCB3ZSdsbCBpbnN0ZWFkIHRyeSB0b1xuICAgIC8vIHRvZ2dsZSBleHBhbmRlZCBmbGFnIGZvciBwYXJlbnQgbm9kZXNcbiAgICB0aGlzLm9uU2VsZWN0ZWQuZW1pdChub2RlKTtcbiAgICB0aGlzLnVwZGF0ZUZvY3VzKG5vZGUsIHRoaXMuZm9jdXNlZE5vZGUpO1xuXG4gICAgaWYgKCFub2RlLnNlbGVjdGFibGUpIHtcbiAgICAgIHRoaXMudG9nZ2xlRXhwYW5kZWQobm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuc2VsZWN0ZWQgPSAhbm9kZS5zZWxlY3RlZDtcbiAgICAgIGlmIChub2RlLnNlbGVjdGVkKSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLm11bHRpc2VsZWN0ICYmIHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXNbMF0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMucHVzaChub2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLmRpc2FibGVEZXNlbGVjdGlvbikge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IHRoaXMuc2VsZWN0ZWROb2Rlcy5maWx0ZXIoXG4gICAgICAgICAgICBuID0+IG4uaWQgIT09IG5vZGUuaWRcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vZGUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLm9wdGlvbnMubXVsdGlzZWxlY3QgPyB0aGlzLnNlbGVjdGVkTm9kZXMgOiB0aGlzLnNlbGVjdGVkTm9kZXNbMF0pO1xuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIG9uTm9kZUV4cGFuZGVkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgdGhpcy5jb2xsZWN0VmlzaWJsZU5vZGVzKG5vZGUpO1xuICAgIHRoaXMuZXhwYW5kZWROb2Rlc0NoYW5nZWQuZW1pdCh0aGlzLl9leHBhbmRlZE5vZGVzKTtcbiAgfVxuXG5cbiAgcHVibGljIHRvZ2dsZUV4cGFuZGVkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIG5vZGUuZXhwYW5kZWQgPSAhbm9kZS5leHBhbmRlZDtcbiAgICAgIHRoaXMub25Ob2RlRXhwYW5kZWQobm9kZSk7XG4gICAgfVxuICB9XG5cblxuICAvLyBVcGRhdGUgdGhlIHRyZWUgYWNjb3JkaW5nIHRvIHRoZSBzZWxlY3RlZCBub2Rlc1xuICBwcml2YXRlIHVwZGF0ZVRyZWUodHJlZT86IGFueSkge1xuICAgIGlmICh0cmVlIHx8IHRoaXMudHJlZSkge1xuICAgICAgdGhpcy50cmVlID0gKHRyZWUgfHwgdGhpcy50cmVlKS5tYXAobm9kZSA9PiB0aGlzLnVwZGF0ZVRyZWVOb2RlKG5vZGUsIFtdKSk7XG4gICAgICB0aGlzLmNvbGxlY3RWaXNpYmxlTm9kZXMoKTtcbiAgICB9XG4gIH1cblxuXG4gIC8vIFJlY3Vyc2l2ZSBmdW5jdGlvbiB3YWxraW5nIHRoZSB0cmVlIG5vZGVzIGFuZCBzZXR0aW5nIHRoZSBub2RlcyBgc2VsZWN0ZWRgIGZsYWdzXG4gIHByaXZhdGUgdXBkYXRlVHJlZU5vZGUobm9kZTogVHJlZU5vZGUsIHBhcmVudHM6IFRyZWVOb2RlW10pIHtcbiAgICBub2RlLnNlbGVjdGVkID0gISF0aGlzLnNlbGVjdGVkTm9kZXMuZmluZChuID0+IG5vZGUuaWQgPT09IG4uaWQgfHwgKCFuLmlkICYmIG5vZGUuZGF0YT8udmFsdWUgPT09IG4udmFsdWUpKTtcbiAgICBub2RlLmV4cGFuZGVkID0gdGhpcy5fZXhwYW5kZWROb2Rlcy5sZW5ndGggPyAhIXRoaXMuX2V4cGFuZGVkTm9kZXMuZmluZChpZCA9PiBpZCA9PT0gbm9kZS5pZCkgOiBub2RlLmV4cGFuZGVkO1xuICAgIG5vZGUuaGlnaGxpZ2h0ZWQgPSAhIXRoaXMuX2hpZ2hsaWdodGVkTm9kZXMuZmluZChpZCA9PiBpZCA9PT0gbm9kZS5pZCk7XG4gICAgbm9kZS5mb2N1c2VkID0gdGhpcy5mb2N1c2VkTm9kZSAmJiB0aGlzLmZvY3VzZWROb2RlLmlkID09PSBub2RlLmlkID8gdGhpcy5mb2N1c2VkTm9kZS5mb2N1c2VkIDogZmFsc2U7XG4gICAgLy8gbm9kZS5sZXZlbCA9IHBhcmVudHMubGVuZ3RoO1xuXG4gICAgLy8gZXhwYW5kIGFsbCBwYXJlbnQgbm9kZXMgYXMgd2VsbFxuICAgIGlmIChub2RlLnNlbGVjdGVkICYmIHBhcmVudHMubGVuZ3RoKSB7XG4gICAgICBwYXJlbnRzLmZvckVhY2gocCA9PiAocC5leHBhbmRlZCA9IHRydWUpKTtcbiAgICB9XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaChuID0+IHRoaXMudXBkYXRlVHJlZU5vZGUobiwgcGFyZW50cy5jb25jYXQoW25vZGVdKSkpO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIC8vIENvbGxlY3QgYWxsIHZpc2libGUgbm9kZXMgaW4gdGhlIHJpZ2h0IG9yZGVyIHRvIGJlIHVzZWQgdG8gZmV0Y2ggdGhlIHByZXZpb3VzIG9yXG4gIC8vIG5leHQgbm9kZSB1c2luZyBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICBwcml2YXRlIGNvbGxlY3RWaXNpYmxlTm9kZXMobm9kZT86IFRyZWVOb2RlKSB7XG4gICAgdGhpcy52aXNpYmxlTm9kZXMgPSB0aGlzLmNvbGxlY3RWaXNpYmxlQ2hpbGRyZW4odGhpcy50cmVlKTtcbiAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSB0aGlzLnZpc2libGVOb2Rlcy5maWx0ZXIobiA9PiBuLnNlbGVjdGVkKTtcbiAgfVxuXG4gIC8vIHJlY3Vyc2l2ZSBwYXJ0IG9mIGNvbGxlY3RDaGlsZE5vZGVzKClcbiAgcHJpdmF0ZSBjb2xsZWN0VmlzaWJsZUNoaWxkcmVuKG5vZGVzOiBUcmVlTm9kZVtdID0gW10pIHtcbiAgICBsZXQgZmxhdCA9IFtdO1xuICAgIHRoaXMuX2V4cGFuZGVkTm9kZXMgPSBbXTtcbiAgICBub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgZmxhdC5wdXNoKG5vZGUpO1xuICAgICAgaWYgKG5vZGUuZXhwYW5kZWQpIHtcbiAgICAgICAgdGhpcy5fZXhwYW5kZWROb2Rlcy5wdXNoKG5vZGUuaWQpO1xuICAgICAgICBmbGF0ID0gZmxhdC5jb25jYXQodGhpcy5jb2xsZWN0VmlzaWJsZUNoaWxkcmVuKG5vZGUuY2hpbGRyZW4pKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZmxhdDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRm9jdXMobm9kZT86IFRyZWVOb2RlLCBvbGQ/OiBUcmVlTm9kZSkge1xuICAgIGlmIChvbGQpIHtcbiAgICAgIGlmIChub2RlICE9PSBvbGQpIHtcbiAgICAgICAgb2xkLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpYmxlTm9kZXMuZm9yRWFjaChuID0+IChuLmZvY3VzZWQgPSBmYWxzZSkpO1xuICAgIH1cbiAgICBpZiAobm9kZSkge1xuICAgICAgbm9kZS5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9jdXNlZE5vZGUgPSBub2RlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNOb2RlKG5leHQ/OiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMudmlzaWJsZU5vZGVzLmxlbmd0aCkge1xuICAgICAgbGV0IGluZGV4ID0gMCwgc2hpZnQgPSBuZXh0ID8gMSA6IC0xO1xuICAgICAgY29uc3Qgbm9kZSA9IHRoaXMudmlzaWJsZU5vZGVzLmZpbmQoKG4sIGkpID0+IHtcbiAgICAgICAgaW5kZXggPSBpO1xuICAgICAgICByZXR1cm4gbi5mb2N1c2VkO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG5leHRJZHggPSBub2RlID8gaW5kZXggKyBzaGlmdCA6IDA7XG4gICAgICBjb25zdCBpZHggPSBuZXh0SWR4ID49IHRoaXMudmlzaWJsZU5vZGVzLmxlbmd0aCA/IDAgOiAobmV4dElkeCA8IDAgPyB0aGlzLnZpc2libGVOb2Rlcy5sZW5ndGggLSAxIDogbmV4dElkeCk7XG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzKHRoaXMudmlzaWJsZU5vZGVzW2lkeF0sIG5vZGUpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVvLXRyZWVcIiBlb1J0bEF3YXJlICpuZ0lmPVwidHJlZS5sZW5ndGg7IGVsc2Ugbm9UcmVlc1wiPlxuICA8ZW8tdHJlZS1ub2RlICpuZ0Zvcj1cImxldCBub2RlIG9mIHRyZWVcIiBbbm9kZV09XCJub2RlXCJcbiAgICAgICAgICAgICAgICAob25Ob2RlRXhwYW5kZWRDaGFuZ2VkKT1cInRvZ2dsZUV4cGFuZGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChvbk5vZGVTZWxlY3RlZCk9XCJvbk5vZGVTZWxlY3RlZCgkZXZlbnQpXCI+PC9lby10cmVlLW5vZGU+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNub1RyZWVzPlxuICA8ZGl2IGNsYXNzPVwidHJlZSB0cmVlLXBhbmVsLWVycm9yIGVvLWJvZHkgZXJyb3JcIj5cbiAgICA8ZW8taWNvbiBjbGFzcz1cImVycm9yIGVycm9yX19pY29uXCIgW2ljb25TcmNdPVwiJ2ljX2Vycm9yLnN2ZydcIj48L2VvLWljb24+XG4gICAgPHAgdHJhbnNsYXRlPnt7ZW1wdHlNZXNzYWdlfX08L3A+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQWtCdkUsTUFBTSxPQUFPLGFBQWE7SUEwQnhCLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUF4QlgsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUVwQyxtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFLeEIsWUFBTyxHQUFnQixFQUFFLENBQUM7UUFHMUIsaUJBQVksR0FBRyx1Q0FBdUMsQ0FBQztRQUV2RCxpQkFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQjtRQUVoRCxxRkFBcUY7UUFDM0UseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUxQyxvQkFBZSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7UUFDN0IsQ0FBQyxDQUFBO0lBR0QsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsSUFDSSxnQkFBZ0IsQ0FBQyxLQUFlO1FBQ2xDLElBQUksQ0FB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QkFZQTsyRkRnQmEsYUFBYTtrQkFiekIsU0FBUzsrQkFDRSxTQUFTLGFBR1I7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDOzRCQUM1QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO2lHQUlQLFNBQVM7c0JBQXRDLFdBQVc7dUJBQUMsZUFBZTtnQkFVbkIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0ksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBWUgsZ0JBQWdCO3NCQURuQixLQUFLO3VCQUFDLGtCQUFrQjtnQkFPckIsU0FBUztzQkFEWixLQUFLO3VCQUFDLE1BQU07Z0JBVVQsVUFBVTtzQkFEYixLQUFLO3VCQUFDLFlBQVk7Z0JBU25CLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBU3hDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVO2dCQWdCMUIsS0FBSztzQkFESixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSG9zdExpc3RlbmVyLFxuICBmb3J3YXJkUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZywgRWxlbWVudFJlZiwgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJlZU5vZGUsIFRyZWVPcHRpb25zfSBmcm9tICcuL3RyZWUuY29tcG9uZW50LmludGVyZmFjZSc7XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHJlZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBUcmVlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgX3RhYkluZGV4ID0gMDtcblxuICBwcml2YXRlIF9leHBhbmRlZE5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIF9oaWdobGlnaHRlZE5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHNlbGVjdGVkTm9kZXM6IGFueVtdID0gW107XG4gIHByaXZhdGUgdmlzaWJsZU5vZGVzOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIGZvY3VzZWROb2RlOiBUcmVlTm9kZTtcblxuICB0cmVlOiBUcmVlTm9kZVtdO1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFRyZWVPcHRpb25zID0ge307XG4gIEBJbnB1dCgpIGlzRGlzcGxheWVkOiBib29sZWFuO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcbiAgQElucHV0KCkgZW1wdHlNZXNzYWdlID0gJ2VvLmVycm9yLnN0cnVjdHVyZS50cmVlLm5vdC5hdmFpbGFibGUnO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGlvbktleSA9ICcgJzsgLy8gZGVmYXVsdCBpcyBTcGFjZVxuXG4gIC8vIHRoZSBub2RlcyB0aGF0IGFyZSBzZWxlY3RlZC4gSW4gY2FzZSBvZiBgbXVsdGlzZWxlY3RgIHNldCB0byB0cnVlLCB0aGlzIHdpbGwgYmUgYW5cbiAgQE91dHB1dCgpIGV4cGFuZGVkTm9kZXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBASW5wdXQoJ2hpZ2hsaWdodGVkTm9kZXMnKVxuICBzZXQgaGlnaGxpZ2h0ZWROb2Rlcyhub2Rlczogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9oaWdobGlnaHRlZE5vZGVzID0gbm9kZXMgfHwgW107XG4gICAgdGhpcy52aXNpYmxlTm9kZXMuZm9yRWFjaChuID0+IChuLmhpZ2hsaWdodGVkID0gISF0aGlzLl9oaWdobGlnaHRlZE5vZGVzLmZpbmQoaWQgPT4gaWQgPT09IG4uaWQpKSk7XG4gIH1cblxuICBASW5wdXQoJ3RyZWUnKVxuICBzZXQgdHJlZUlucHV0KHRyZWU6IFRyZWVOb2RlW10pIHtcbiAgICAvLyB0aGlzLnRyZWUgPSB0cmVlO1xuICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IFtdO1xuICAgIHRoaXMuX2V4cGFuZGVkTm9kZXMgPSBbXTtcbiAgICB0aGlzLmZvY3VzZWROb2RlID0gbnVsbDtcbiAgICB0aGlzLnVwZGF0ZVRyZWUodHJlZSk7XG4gIH1cblxuICBASW5wdXQoJ3RyZWVVcGRhdGUnKVxuICBzZXQgdHJlZVVwZGF0ZSh0cmVlOiBUcmVlTm9kZVtdKSB7XG4gICAgaWYgKHRyZWUpIHtcbiAgICAgIHRoaXMudXBkYXRlVHJlZSh0cmVlKTtcbiAgICB9XG4gIH1cblxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nLCBbJyRldmVudC50YXJnZXQnXSlcbiAgb25Gb2N1c0luKHRhcmdldDogYW55KSB7XG4gICAgaWYgKCF0aGlzLmZvY3VzZWROb2RlIHx8ICF0aGlzLmZvY3VzZWROb2RlLmZvY3VzZWQpIHtcbiAgICAgIGxldCBub2RlID0gdGhpcy5zZWxlY3RlZE5vZGVzWzBdIHx8IHRoaXMudmlzaWJsZU5vZGVzWzBdO1xuICAgICAgdGhpcy51cGRhdGVGb2N1cyhub2RlKTtcbiAgICB9XG4gIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcbiAgICBvbkZvY3VzT3V0KCkge1xuICAgICAgdGhpcy51cGRhdGVGb2N1cygpO1xuICAgIH1cblxuICBvbkZvY3VzKGV2dCkge1xuICB9XG5cbiAgb25CbHVyKGV2dCkge1xuICB9XG5cbiAgb25Ub2dnbGUoZXZ0KSB7XG5cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd1VwJzoge1xuICAgICAgICB0aGlzLmZvY3VzTm9kZShmYWxzZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQXJyb3dEb3duJzoge1xuICAgICAgICB0aGlzLmZvY3VzTm9kZSh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdBcnJvd1JpZ2h0Jzoge1xuICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKHRoaXMuZm9jdXNlZE5vZGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6IHtcbiAgICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZCh0aGlzLmZvY3VzZWROb2RlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIHRoaXMuc2VsZWN0aW9uS2V5OiB7XG4gICAgICAgIC8vIHRvZ2dsZSBzZWxlY3Rpb24gb2YgdGhlIGZvY3VzZWQgbm9kZVxuICAgICAgICBpZiAodGhpcy5mb2N1c2VkTm9kZS5zZWxlY3RhYmxlKSB7XG4gICAgICAgICAgLy8gdGhpcy5mb2N1c2VkTm9kZS5zZWxlY3RlZCA9ICF0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGVkO1xuICAgICAgICAgIHRoaXMub25Ob2RlU2VsZWN0ZWQodGhpcy5mb2N1c2VkTm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFbnRlcic6IHtcbiAgICAgICAgLy8gdG9nZ2xlIHNlbGVjdGlvbiBvZiB0aGUgZm9jdXNlZCBub2RlXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGFibGUpIHtcbiAgICAgICAgICAvLyB0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGVkID0gIXRoaXMuZm9jdXNlZE5vZGUuc2VsZWN0ZWQ7XG4gICAgICAgICAgdGhpcy5vbk5vZGVTZWxlY3RlZCh0aGlzLmZvY3VzZWROb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoWydBcnJvd1VwJywgJ0Fycm93RG93bicsICdBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCddLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuXG4gIHdyaXRlVmFsdWUoc2VsZWN0ZWROb2RlczogVHJlZU5vZGVbXSk6IHZvaWQge1xuICAgIGxldCBfc2VsZWN0ZWROb2RlcyA9ICFzZWxlY3RlZE5vZGVzIHx8IEFycmF5LmlzQXJyYXkoc2VsZWN0ZWROb2RlcykgPyBzZWxlY3RlZE5vZGVzIHx8IFtdIDogW3NlbGVjdGVkTm9kZXNdO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGggIT09IF9zZWxlY3RlZE5vZGVzLmxlbmd0aCB8fCB0aGlzLnNlbGVjdGVkTm9kZXMuc29tZSgobiwgaSkgPT4gbi5pZCAhPT0gX3NlbGVjdGVkTm9kZXNbaV0uaWQpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBfc2VsZWN0ZWROb2RlcztcbiAgICAgIHRoaXMudXBkYXRlVHJlZSh0aGlzLnRyZWUpO1xuICAgIH1cblxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIG9uTm9kZVNlbGVjdGVkKG5vZGUpIHtcbiAgICAvLyBpZiB0aGUgc2VsZWN0ZWQgbm9kZSBpc24ndCBhbGxvd2VkIHRvIGJlIHNlbGVjdGVkLCB3ZSdsbCBpbnN0ZWFkIHRyeSB0b1xuICAgIC8vIHRvZ2dsZSBleHBhbmRlZCBmbGFnIGZvciBwYXJlbnQgbm9kZXNcbiAgICB0aGlzLm9uU2VsZWN0ZWQuZW1pdChub2RlKTtcbiAgICB0aGlzLnVwZGF0ZUZvY3VzKG5vZGUsIHRoaXMuZm9jdXNlZE5vZGUpO1xuXG4gICAgaWYgKCFub2RlLnNlbGVjdGFibGUpIHtcbiAgICAgIHRoaXMudG9nZ2xlRXhwYW5kZWQobm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuc2VsZWN0ZWQgPSAhbm9kZS5zZWxlY3RlZDtcbiAgICAgIGlmIChub2RlLnNlbGVjdGVkKSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLm11bHRpc2VsZWN0ICYmIHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXNbMF0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMucHVzaChub2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLmRpc2FibGVEZXNlbGVjdGlvbikge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IHRoaXMuc2VsZWN0ZWROb2Rlcy5maWx0ZXIoXG4gICAgICAgICAgICBuID0+IG4uaWQgIT09IG5vZGUuaWRcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vZGUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLm9wdGlvbnMubXVsdGlzZWxlY3QgPyB0aGlzLnNlbGVjdGVkTm9kZXMgOiB0aGlzLnNlbGVjdGVkTm9kZXNbMF0pO1xuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIG9uTm9kZUV4cGFuZGVkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgdGhpcy5jb2xsZWN0VmlzaWJsZU5vZGVzKG5vZGUpO1xuICAgIHRoaXMuZXhwYW5kZWROb2Rlc0NoYW5nZWQuZW1pdCh0aGlzLl9leHBhbmRlZE5vZGVzKTtcbiAgfVxuXG5cbiAgcHVibGljIHRvZ2dsZUV4cGFuZGVkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIG5vZGUuZXhwYW5kZWQgPSAhbm9kZS5leHBhbmRlZDtcbiAgICAgIHRoaXMub25Ob2RlRXhwYW5kZWQobm9kZSk7XG4gICAgfVxuICB9XG5cblxuICAvLyBVcGRhdGUgdGhlIHRyZWUgYWNjb3JkaW5nIHRvIHRoZSBzZWxlY3RlZCBub2Rlc1xuICBwcml2YXRlIHVwZGF0ZVRyZWUodHJlZT86IGFueSkge1xuICAgIGlmICh0cmVlIHx8IHRoaXMudHJlZSkge1xuICAgICAgdGhpcy50cmVlID0gKHRyZWUgfHwgdGhpcy50cmVlKS5tYXAobm9kZSA9PiB0aGlzLnVwZGF0ZVRyZWVOb2RlKG5vZGUsIFtdKSk7XG4gICAgICB0aGlzLmNvbGxlY3RWaXNpYmxlTm9kZXMoKTtcbiAgICB9XG4gIH1cblxuXG4gIC8vIFJlY3Vyc2l2ZSBmdW5jdGlvbiB3YWxraW5nIHRoZSB0cmVlIG5vZGVzIGFuZCBzZXR0aW5nIHRoZSBub2RlcyBgc2VsZWN0ZWRgIGZsYWdzXG4gIHByaXZhdGUgdXBkYXRlVHJlZU5vZGUobm9kZTogVHJlZU5vZGUsIHBhcmVudHM6IFRyZWVOb2RlW10pIHtcbiAgICBub2RlLnNlbGVjdGVkID0gISF0aGlzLnNlbGVjdGVkTm9kZXMuZmluZChuID0+IG5vZGUuaWQgPT09IG4uaWQgfHwgKCFuLmlkICYmIG5vZGUuZGF0YT8udmFsdWUgPT09IG4udmFsdWUpKTtcbiAgICBub2RlLmV4cGFuZGVkID0gdGhpcy5fZXhwYW5kZWROb2Rlcy5sZW5ndGggPyAhIXRoaXMuX2V4cGFuZGVkTm9kZXMuZmluZChpZCA9PiBpZCA9PT0gbm9kZS5pZCkgOiBub2RlLmV4cGFuZGVkO1xuICAgIG5vZGUuaGlnaGxpZ2h0ZWQgPSAhIXRoaXMuX2hpZ2hsaWdodGVkTm9kZXMuZmluZChpZCA9PiBpZCA9PT0gbm9kZS5pZCk7XG4gICAgbm9kZS5mb2N1c2VkID0gdGhpcy5mb2N1c2VkTm9kZSAmJiB0aGlzLmZvY3VzZWROb2RlLmlkID09PSBub2RlLmlkID8gdGhpcy5mb2N1c2VkTm9kZS5mb2N1c2VkIDogZmFsc2U7XG4gICAgLy8gbm9kZS5sZXZlbCA9IHBhcmVudHMubGVuZ3RoO1xuXG4gICAgLy8gZXhwYW5kIGFsbCBwYXJlbnQgbm9kZXMgYXMgd2VsbFxuICAgIGlmIChub2RlLnNlbGVjdGVkICYmIHBhcmVudHMubGVuZ3RoKSB7XG4gICAgICBwYXJlbnRzLmZvckVhY2gocCA9PiAocC5leHBhbmRlZCA9IHRydWUpKTtcbiAgICB9XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaChuID0+IHRoaXMudXBkYXRlVHJlZU5vZGUobiwgcGFyZW50cy5jb25jYXQoW25vZGVdKSkpO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIC8vIENvbGxlY3QgYWxsIHZpc2libGUgbm9kZXMgaW4gdGhlIHJpZ2h0IG9yZGVyIHRvIGJlIHVzZWQgdG8gZmV0Y2ggdGhlIHByZXZpb3VzIG9yXG4gIC8vIG5leHQgbm9kZSB1c2luZyBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICBwcml2YXRlIGNvbGxlY3RWaXNpYmxlTm9kZXMobm9kZT86IFRyZWVOb2RlKSB7XG4gICAgdGhpcy52aXNpYmxlTm9kZXMgPSB0aGlzLmNvbGxlY3RWaXNpYmxlQ2hpbGRyZW4odGhpcy50cmVlKTtcbiAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSB0aGlzLnZpc2libGVOb2Rlcy5maWx0ZXIobiA9PiBuLnNlbGVjdGVkKTtcbiAgfVxuXG4gIC8vIHJlY3Vyc2l2ZSBwYXJ0IG9mIGNvbGxlY3RDaGlsZE5vZGVzKClcbiAgcHJpdmF0ZSBjb2xsZWN0VmlzaWJsZUNoaWxkcmVuKG5vZGVzOiBUcmVlTm9kZVtdID0gW10pIHtcbiAgICBsZXQgZmxhdCA9IFtdO1xuICAgIHRoaXMuX2V4cGFuZGVkTm9kZXMgPSBbXTtcbiAgICBub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgZmxhdC5wdXNoKG5vZGUpO1xuICAgICAgaWYgKG5vZGUuZXhwYW5kZWQpIHtcbiAgICAgICAgdGhpcy5fZXhwYW5kZWROb2Rlcy5wdXNoKG5vZGUuaWQpO1xuICAgICAgICBmbGF0ID0gZmxhdC5jb25jYXQodGhpcy5jb2xsZWN0VmlzaWJsZUNoaWxkcmVuKG5vZGUuY2hpbGRyZW4pKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZmxhdDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRm9jdXMobm9kZT86IFRyZWVOb2RlLCBvbGQ/OiBUcmVlTm9kZSkge1xuICAgIGlmIChvbGQpIHtcbiAgICAgIGlmIChub2RlICE9PSBvbGQpIHtcbiAgICAgICAgb2xkLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpYmxlTm9kZXMuZm9yRWFjaChuID0+IChuLmZvY3VzZWQgPSBmYWxzZSkpO1xuICAgIH1cbiAgICBpZiAobm9kZSkge1xuICAgICAgY29uc3Qgbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdlby10cmVlLW5vZGUnKTtcbiAgICAgIG5vZGVzLmZvckVhY2gobiA9PiB7XG4gICAgICAgIGlmIChuLnF1ZXJ5U2VsZWN0b3IoJy5sYWJlbCBzcGFuJykudGV4dENvbnRlbnQgPT09IG5vZGUubmFtZSkge1xuICAgICAgICAgIG4uc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICAgICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXG4gICAgICAgICAgICBibG9jazogXCJzdGFydFwiLFxuICAgICAgICAgICAgaW5saW5lOiBcIm5lYXJlc3RcIlxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIG5vZGUuZm9jdXNlZCA9IHRydWU7XG4gICAgICB0aGlzLmZvY3VzZWROb2RlID0gbm9kZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTm9kZShuZXh0PzogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLnZpc2libGVOb2Rlcy5sZW5ndGgpIHtcbiAgICAgIGxldCBpbmRleCA9IDAsIHNoaWZ0ID0gbmV4dCA/IDEgOiAtMTtcbiAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLnZpc2libGVOb2Rlcy5maW5kKChuLCBpKSA9PiB7XG4gICAgICAgIGluZGV4ID0gaTtcbiAgICAgICAgcmV0dXJuIG4uZm9jdXNlZDtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBuZXh0SWR4ID0gbm9kZSA/IGluZGV4ICsgc2hpZnQgOiAwO1xuICAgICAgY29uc3QgaWR4ID0gbmV4dElkeCA+PSB0aGlzLnZpc2libGVOb2Rlcy5sZW5ndGggPyAwIDogKG5leHRJZHggPCAwID8gdGhpcy52aXNpYmxlTm9kZXMubGVuZ3RoIC0gMSA6IG5leHRJZHgpO1xuICAgICAgdGhpcy51cGRhdGVGb2N1cyh0aGlzLnZpc2libGVOb2Rlc1tpZHhdLCBub2RlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJlby10cmVlXCIgZW9SdGxBd2FyZSAqbmdJZj1cInRyZWUubGVuZ3RoOyBlbHNlIG5vVHJlZXNcIj5cbiAgPGVvLXRyZWUtbm9kZSAqbmdGb3I9XCJsZXQgbm9kZSBvZiB0cmVlXCIgW25vZGVdPVwibm9kZVwiXG4gICAgICAgICAgICAgICAgKG9uTm9kZUV4cGFuZGVkQ2hhbmdlZCk9XCJ0b2dnbGVFeHBhbmRlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25Ob2RlU2VsZWN0ZWQpPVwib25Ob2RlU2VsZWN0ZWQoJGV2ZW50KVwiPjwvZW8tdHJlZS1ub2RlPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbm9UcmVlcz5cbiAgPGRpdiBjbGFzcz1cInRyZWUgdHJlZS1wYW5lbC1lcnJvciBlby1ib2R5IGVycm9yXCI+XG4gICAgPGVvLWljb24gY2xhc3M9XCJlcnJvciBlcnJvcl9faWNvblwiIFtpY29uU3JjXT1cIidpY19lcnJvci5zdmcnXCI+PC9lby1pY29uPlxuICAgIDxwIHRyYW5zbGF0ZT57e2VtcHR5TWVzc2FnZX19PC9wPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|