@eo-sdk/client 11.4.0-rc.3 → 11.4.0-rc.5
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-framework/object-details/object-links/object-links.component.d.ts +5 -23
- package/app/eo-framework/object-details/object-links/object-links.component.d.ts.map +1 -1
- package/assets/_default/i18n/de.json +1 -0
- package/assets/_default/i18n/en.json +4 -3
- package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +3 -3
- package/esm2022/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +2 -2
- package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +17 -163
- package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +2 -2
- package/esm2022/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +2 -2
- package/fesm2022/eo-sdk-client.mjs +21 -163
- package/fesm2022/eo-sdk-client.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -220,11 +220,11 @@ export class ReferenceFinderComponent {
|
|
|
220
220
|
this.searchInput.nativeElement.focus();
|
|
221
221
|
}
|
|
222
222
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ReferenceFinderComponent, deps: [{ token: i1.ReferenceFinderService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
223
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ReferenceFinderComponent, selector: "eo-reference-finder", inputs: { isDisabled: "isDisabled", types: "types", multiselect: "multiselect", contextId: "contextId", exceptionIDs: "exceptionIDs", queryFilters: "queryFilters", currentSelection: "currentSelection", clipboard: "clipboard" }, outputs: { addDmsObjects: "addDmsObjects" }, host: { listeners: { "keydown": "onKey($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "entries", predicate: ["entry"], descendants: true, read: ElementRef }], ngImport: i0, template: "\n<section class=\"reference-finder-search--input\">\n <input #searchInput autofocus tabindex=\"1\" (input)=\"searchTerm$.next($event.target.value)\" class=\"search\" type=\"text\" placeholder=\"{{('eo.search.result.term' | translate)}}\"/>\n</section>\n\n<section class=\"reference-finder--content\" *ngIf=\"!searching; else loading\">\n <div class=\"results\">\n <eo-simple-accordion *ngIf=\"clipboardItems.length && !copyOnly\"\n [header]=\"'eo.clipboard.type.copy' | translate\"\n [selected]=\"
|
|
223
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ReferenceFinderComponent, selector: "eo-reference-finder", inputs: { isDisabled: "isDisabled", types: "types", multiselect: "multiselect", contextId: "contextId", exceptionIDs: "exceptionIDs", queryFilters: "queryFilters", currentSelection: "currentSelection", clipboard: "clipboard" }, outputs: { addDmsObjects: "addDmsObjects" }, host: { listeners: { "keydown": "onKey($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "entries", predicate: ["entry"], descendants: true, read: ElementRef }], ngImport: i0, template: "\n<section class=\"reference-finder-search--input\">\n <input #searchInput autofocus tabindex=\"1\" (input)=\"searchTerm$.next($event.target.value)\" class=\"search\" type=\"text\" placeholder=\"{{('eo.search.result.term' | translate)}}\"/>\n</section>\n\n<section class=\"reference-finder--content\" *ngIf=\"!searching; else loading\">\n <div class=\"results\">\n <eo-simple-accordion *ngIf=\"clipboardItems.length && !copyOnly\"\n [header]=\"'eo.clipboard.type.copy' | translate\"\n [selected]=\"true\"\n (selectChange)=\"clipboardOpen = $event;\"\n class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"clipboardItems.length && copyOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n <div class=\"padding\"></div>\n\n <eo-simple-accordion *ngIf=\"resultList.length && !searchOnly\" [selected]=\"true\" [header]=\"'eo.search.title' | translate\" class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"resultList.length && searchOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n </div>\n\n <div class=\"cta\">\n <div>\n <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectAllEntries()\">{{('eo.cta.button.select.all' | translate)}}</button>\n <button type=\"button\" *ngIf=\"multiselect && !searchOnly\" [disabled]=\"isDisabled\" (click)=\"selectCopiedEntries()\">{{('eo.cta.button.select.copy' | translate)}}</button>\n </div>\n <button type=\"button\" class=\"add\" (click)=\"addItems()\" *ngIf=\"!disableAdd\" [@fadeInOut] [class.active]=\"!disableAdd\" [disabled]=\"disableAdd\" [title]=\"'eo.cta.button.add' | translate\">\n {{('eo.cta.button.add' | translate)}}\n </button>\n </div>\n</section>\n\n<ng-template #loading>\n <div class=\"loader-overlay__mask\">\n <eo-loading-spinner class=\"reference__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</ng-template>\n", styles: [":host{display:contents}.reference-finder-search--input{background-color:var(--color-accent);padding:var(--app-pane-padding);display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"search\"}.reference-finder--content{display:contents;align-self:center;justify-items:center}.search{grid-area:search;width:100%;border:0;box-sizing:border-box;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);border:1px var(--panel-background-grey) solid;box-shadow:0 2px 2px #0003}.search-result--hint{font-size:var(--font-caption)}.results{overflow:auto;height:100%;margin:calc(var(--app-pane-padding) / 2);overflow-x:hidden}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;align-items:center;justify-content:space-between;padding:var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.1)}.add{grid-area:add}.add.active{color:var(--color-white);background-color:var(--color-accent)}.padding{padding:5px}:host ::-webkit-scrollbar{width:5px}:host ::ng-deep .ui-accordion-content{padding:1em 0}.loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}.loader-overlay__mask .reference__loader{margin:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i4.SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "component", type: i5.ReferenceFinderEntryComponent, selector: "eo-reference-finder-entry", inputs: ["list", "multiselect", "marked"], outputs: ["selectReference"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], animations: [fadeInOut] }); }
|
|
224
224
|
}
|
|
225
225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ReferenceFinderComponent, decorators: [{
|
|
226
226
|
type: Component,
|
|
227
|
-
args: [{ selector: 'eo-reference-finder', animations: [fadeInOut], template: "\n<section class=\"reference-finder-search--input\">\n <input #searchInput autofocus tabindex=\"1\" (input)=\"searchTerm$.next($event.target.value)\" class=\"search\" type=\"text\" placeholder=\"{{('eo.search.result.term' | translate)}}\"/>\n</section>\n\n<section class=\"reference-finder--content\" *ngIf=\"!searching; else loading\">\n <div class=\"results\">\n <eo-simple-accordion *ngIf=\"clipboardItems.length && !copyOnly\"\n [header]=\"'eo.clipboard.type.copy' | translate\"\n [selected]=\"
|
|
227
|
+
args: [{ selector: 'eo-reference-finder', animations: [fadeInOut], template: "\n<section class=\"reference-finder-search--input\">\n <input #searchInput autofocus tabindex=\"1\" (input)=\"searchTerm$.next($event.target.value)\" class=\"search\" type=\"text\" placeholder=\"{{('eo.search.result.term' | translate)}}\"/>\n</section>\n\n<section class=\"reference-finder--content\" *ngIf=\"!searching; else loading\">\n <div class=\"results\">\n <eo-simple-accordion *ngIf=\"clipboardItems.length && !copyOnly\"\n [header]=\"'eo.clipboard.type.copy' | translate\"\n [selected]=\"true\"\n (selectChange)=\"clipboardOpen = $event;\"\n class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"clipboardItems.length && copyOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n <div class=\"padding\"></div>\n\n <eo-simple-accordion *ngIf=\"resultList.length && !searchOnly\" [selected]=\"true\" [header]=\"'eo.search.title' | translate\" class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"resultList.length && searchOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n </div>\n\n <div class=\"cta\">\n <div>\n <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectAllEntries()\">{{('eo.cta.button.select.all' | translate)}}</button>\n <button type=\"button\" *ngIf=\"multiselect && !searchOnly\" [disabled]=\"isDisabled\" (click)=\"selectCopiedEntries()\">{{('eo.cta.button.select.copy' | translate)}}</button>\n </div>\n <button type=\"button\" class=\"add\" (click)=\"addItems()\" *ngIf=\"!disableAdd\" [@fadeInOut] [class.active]=\"!disableAdd\" [disabled]=\"disableAdd\" [title]=\"'eo.cta.button.add' | translate\">\n {{('eo.cta.button.add' | translate)}}\n </button>\n </div>\n</section>\n\n<ng-template #loading>\n <div class=\"loader-overlay__mask\">\n <eo-loading-spinner class=\"reference__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</ng-template>\n", styles: [":host{display:contents}.reference-finder-search--input{background-color:var(--color-accent);padding:var(--app-pane-padding);display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"search\"}.reference-finder--content{display:contents;align-self:center;justify-items:center}.search{grid-area:search;width:100%;border:0;box-sizing:border-box;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);border:1px var(--panel-background-grey) solid;box-shadow:0 2px 2px #0003}.search-result--hint{font-size:var(--font-caption)}.results{overflow:auto;height:100%;margin:calc(var(--app-pane-padding) / 2);overflow-x:hidden}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;align-items:center;justify-content:space-between;padding:var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.1)}.add{grid-area:add}.add.active{color:var(--color-white);background-color:var(--color-accent)}.padding{padding:5px}:host ::-webkit-scrollbar{width:5px}:host ::ng-deep .ui-accordion-content{padding:1em 0}.loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}.loader-overlay__mask .reference__loader{margin:auto}\n"] }]
|
|
228
228
|
}], ctorParameters: () => [{ type: i1.ReferenceFinderService }], propDecorators: { entries: [{
|
|
229
229
|
type: ViewChildren,
|
|
230
230
|
args: ['entry', { read: ElementRef }]
|
|
@@ -253,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
253
253
|
type: HostListener,
|
|
254
254
|
args: ['keydown', ['$event']]
|
|
255
255
|
}] } });
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLWZpbmRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2lkLXJlZmVyZW5jZS9yZWZlcmVuY2UtZmluZGVyL3JlZmVyZW5jZS1maW5kZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvZm9ybS1lbGVtZW50cy9pZC1yZWZlcmVuY2UvcmVmZXJlbmNlLWZpbmRlci9yZWZlcmVuY2UtZmluZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBYSxVQUFVLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVsSixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQU1sRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBUTVDLE1BQU0sT0FBTyx3QkFBd0I7SUFlbkMsSUFBSSxVQUFVLENBQUMsSUFBbUI7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFVRCxJQUNJLGdCQUFnQixDQUFDLFNBQTBCO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUNJLFNBQVMsQ0FBQyxTQUFvQjtRQUNoQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxvQ0FBb0MsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckosQ0FBQztJQUlELEtBQUssQ0FBQyxLQUFLO1FBQ1QsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBYTtZQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDL0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNySCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxLQUFLLENBQUM7Z0JBQ1YsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDOUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUM5RSxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDZixLQUFLLEVBQUUsQ0FBQzt3QkFDUixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQ3BFLEtBQUssR0FBRyxDQUFDLENBQUM7NEJBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFBO3dCQUM5QyxDQUFDOzZCQUFNLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQzFFLEtBQUssR0FBRyxDQUFDLENBQUM7NEJBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMzQyxDQUFDOzZCQUFNLENBQUM7NEJBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMvQyxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNwRSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzFFLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO3dCQUNmLEtBQUssRUFBRSxDQUFDO3dCQUNSLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzs0QkFDM0QsS0FBSyxHQUFHLENBQUMsQ0FBQzs0QkFDVixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUE7d0JBQzlDLENBQUM7NkJBQU0sSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7NEJBQ25FLEtBQUssR0FBRyxDQUFDLENBQUM7NEJBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMzQyxDQUFDOzZCQUFNLENBQUM7NEJBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMzQyxDQUFDO29CQUNILENBQUM7eUJBQU0sQ0FBQzt3QkFDTixLQUFLLEdBQUcsQ0FBQyxDQUFDO3dCQUNWLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDM0MsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7YUFDSSxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXO1lBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUMvRSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLEtBQUssQ0FBQztnQkFDVixJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUM5QyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzlFLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO3dCQUNmLEtBQUssRUFBRSxDQUFDO3dCQUNSLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQzNDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7NEJBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTt3QkFDMUMsQ0FBQzs2QkFBTSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQ25ELEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7NEJBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDL0MsQ0FBQzs2QkFBTSxDQUFDOzRCQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDL0MsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7Z0JBQ0QsSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDcEUsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUMxRSxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDZixLQUFLLEVBQUUsQ0FBQzt3QkFDUixJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7NEJBQ3ZDLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7NEJBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQTt3QkFDOUMsQ0FBQzs2QkFBTSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzs0QkFDL0MsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzs0QkFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMzQyxDQUFDOzZCQUFNLENBQUM7NEJBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMzQyxDQUFDO29CQUNILENBQUM7eUJBQU0sQ0FBQzt3QkFDTixLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO3dCQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzNDLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQ0ksSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxlQUFlO1lBQzdELElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxlQUFlLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUMzRCxDQUFDO1FBQ0gsQ0FBQzthQUNJLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVE7WUFDckMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDO1lBQ3hFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQW9CLHNCQUE4QztRQUE5QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBdklsRSxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFFcEMsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsZUFBVSxHQUFvQixFQUFFLENBQUM7UUFFakMsbUJBQWMsR0FBb0IsRUFBRSxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBRXJCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUErQlIsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQWlHbkUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzlELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQztpQkFDcEcsU0FBUyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO2dCQUN4QyxNQUFNLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ2pKLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7b0JBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5SCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUM1QixDQUFDO2dCQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQy9ELENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzdJLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JILENBQUM7SUFFRCxlQUFlLENBQUMsZUFBb0Q7UUFDbEUsTUFBTSxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUMsR0FBRyxlQUFlLENBQUM7UUFDcEMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3JCLENBQUMsSUFBSSxDQUFDLFNBQVM7b0JBQ2IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDN0YsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzFHLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUMxRixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUM7Z0JBQzdELENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUNsRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUM7Z0JBQ3pELENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JJLENBQUM7UUFDRCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBSTtRQUM3QixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqRSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMzQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztZQUN4RixDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLDREQUE0RDtRQUM1RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzhHQW5PVSx3QkFBd0I7a0dBQXhCLHdCQUF3Qiw4aEJBRUwsVUFBVSw2QkNuQjFDLDQvRkF5RUEsb21FRDFEYyxDQUFDLFNBQVMsQ0FBQzs7MkZBRVosd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHFCQUFxQixjQUduQixDQUFDLFNBQVMsQ0FBQzsyRkFJb0IsT0FBTztzQkFBakQsWUFBWTt1QkFBQyxPQUFPLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO2dCQUNmLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFxQmYsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFHRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBU0YsU0FBUztzQkFEWixLQUFLO2dCQUlJLGFBQWE7c0JBQXRCLE1BQU07Z0JBR1AsS0FBSztzQkFESixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIEhvc3RMaXN0ZW5lciwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NsaXBib2FyZCwgU2VhcmNoUmVzdWx0fSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmFkZUluT3V0fSBmcm9tICcuLi9hbmltYXRpb24vcmVmZXJlbmNlLWZpbmRlci5hbmltYXRpb24nO1xuaW1wb3J0IHtcbiAgUmVmZXJlbmNlSXRlbSxcbiAgUmVmZXJlbmNlU2VhcmNoQ291bnRlclxufSBmcm9tICcuLi9pbnRlcmZhY2UvcmVmZXJlbmNlLWZpbmRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHtSZWZlcmVuY2VGaW5kZXJTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3JlZmVyZW5jZS1maW5kZXIuc2VydmljZSc7XG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1yZWZlcmVuY2UtZmluZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZmVyZW5jZS1maW5kZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWZlcmVuY2UtZmluZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtmYWRlSW5PdXRdXG59KVxuZXhwb3J0IGNsYXNzIFJlZmVyZW5jZUZpbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2VudHJ5Jywge3JlYWQ6IEVsZW1lbnRSZWZ9KSBlbnRyaWVzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0Jykgc2VhcmNoSW5wdXQhOiBFbGVtZW50UmVmO1xuXG4gIHNlYXJjaFRlcm0kID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBzZWFyY2hSZXN1bHRDb3VudDogUmVmZXJlbmNlU2VhcmNoQ291bnRlcjtcbiAgc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICByZXN1bHRMaXN0OiBSZWZlcmVuY2VJdGVtW10gPSBbXTtcbiAgcHJpdmF0ZSBfY3VycmVudFNlbGVjdGlvbjogUmVmZXJlbmNlSXRlbVtdO1xuICBjbGlwYm9hcmRJdGVtczogUmVmZXJlbmNlSXRlbVtdID0gW107XG4gIGNsaXBib2FyZE9wZW4gPSB0cnVlO1xuICBfbWFya2VkSXRlbTogUmVmZXJlbmNlSXRlbTtcbiAgc2VhcmNoaW5nID0gZmFsc2U7XG5cbiAgc2V0IG1hcmtlZEl0ZW0oaXRlbTogUmVmZXJlbmNlSXRlbSkge1xuICAgIHRoaXMuX21hcmtlZEl0ZW0gPSBpdGVtO1xuICAgIHRoaXMuc2Nyb2xsSXRlbUludG9WaWV3KHRoaXMuX21hcmtlZEl0ZW0pO1xuICB9XG5cbiAgZ2V0IG1hcmtlZEl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX21hcmtlZEl0ZW07XG4gIH1cblxuICBASW5wdXQoKSBpc0Rpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSB0eXBlczogc3RyaW5nO1xuICBASW5wdXQoKSBtdWx0aXNlbGVjdDogYm9vbGVhbjtcbiAgQElucHV0KCkgY29udGV4dElkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGV4Y2VwdGlvbklEczogc3RyaW5nW107XG5cbiAgQElucHV0KCkgcXVlcnlGaWx0ZXJzOiB7W2ZpZWxkUW5hbWU6IHN0cmluZ106IHtvOiBzdHJpbmcsIHYxOiBhbnksIHYyOiBhbnl9fTtcblxuICBASW5wdXQoKVxuICBzZXQgY3VycmVudFNlbGVjdGlvbihzZWxlY3Rpb246IFJlZmVyZW5jZUl0ZW1bXSkge1xuICAgIHRoaXMuX2N1cnJlbnRTZWxlY3Rpb24gPSBzZWxlY3Rpb247XG4gIH1cbiAgZ2V0IGN1cnJlbnRTZWxlY3Rpb24oKTogUmVmZXJlbmNlSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFNlbGVjdGlvbjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBjbGlwYm9hcmQoY2xpcGJvYXJkOiBDbGlwYm9hcmQpIHtcbiAgICB0aGlzLmNsaXBib2FyZEl0ZW1zID0gdGhpcy5yZWZlcmVuY2VGaW5kZXJTZXJ2aWNlLmdlbmVyYXRlUmVmZXJlbmNlSXRlbXNGcm9tRG1zT2JqZWN0cyhjbGlwYm9hcmQuZWxlbWVudHMsIHRoaXMuY3VycmVudFNlbGVjdGlvbiwgdGhpcy5pc0Rpc2FibGVkKTtcbiAgfVxuICBAT3V0cHV0KCkgYWRkRG1zT2JqZWN0czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXkoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQud2hpY2ggPT09IDQwKSB7IC8vIGFycm93IGRvd25cbiAgICAgIGlmICghdGhpcy5tYXJrZWRJdGVtICYmICh0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCB8fCB0aGlzLnJlc3VsdExpc3QubGVuZ3RoKSkge1xuICAgICAgICB0aGlzLm1hcmtlZEl0ZW0gPSAodGhpcy5jbGlwYm9hcmRJdGVtcy5sZW5ndGggJiYgdGhpcy5jbGlwYm9hcmRPcGVuKSA/IHRoaXMuY2xpcGJvYXJkSXRlbXNbMF0gOiB0aGlzLnJlc3VsdExpc3RbMF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgaW5kZXg7XG4gICAgICAgIGlmICh0aGlzLmNsaXBib2FyZEl0ZW1zICYmIHRoaXMuY2xpcGJvYXJkT3Blbikge1xuICAgICAgICAgIGluZGV4ID0gdGhpcy5jbGlwYm9hcmRJdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSB0aGlzLm1hcmtlZEl0ZW0uaWQpO1xuICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAmJiAhdGhpcy5yZXN1bHRMaXN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgICBpbmRleCA9IDA7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMuY2xpcGJvYXJkSXRlbXNbaW5kZXhdXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSB0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAmJiB0aGlzLnJlc3VsdExpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGluZGV4ID0gMDtcbiAgICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5yZXN1bHRMaXN0W2luZGV4XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMuY2xpcGJvYXJkSXRlbXNbaW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoKGluZGV4ID09PSB1bmRlZmluZWQgfHwgaW5kZXggPT09IC0xKSAmJiB0aGlzLnJlc3VsdExpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgaW5kZXggPSB0aGlzLnJlc3VsdExpc3QuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gdGhpcy5tYXJrZWRJdGVtLmlkKTtcbiAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5yZXN1bHRMaXN0Lmxlbmd0aCAmJiB0aGlzLmNsaXBib2FyZE9wZW4pIHtcbiAgICAgICAgICAgICAgaW5kZXggPSAwO1xuICAgICAgICAgICAgICB0aGlzLm1hcmtlZEl0ZW0gPSB0aGlzLmNsaXBib2FyZEl0ZW1zW2luZGV4XVxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gdGhpcy5yZXN1bHRMaXN0Lmxlbmd0aCAmJiAhdGhpcy5jbGlwYm9hcmRPcGVuKSB7XG4gICAgICAgICAgICAgIGluZGV4ID0gMDtcbiAgICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5yZXN1bHRMaXN0W2luZGV4XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMucmVzdWx0TGlzdFtpbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluZGV4ID0gMDtcbiAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMucmVzdWx0TGlzdFtpbmRleF07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKGV2ZW50LndoaWNoID09PSAzOCkgeyAvLyBhcnJvdyB1cFxuICAgICAgaWYgKCF0aGlzLm1hcmtlZEl0ZW0gJiYgKHRoaXMuY2xpcGJvYXJkSXRlbXMubGVuZ3RoIHx8IHRoaXMucmVzdWx0TGlzdC5sZW5ndGgpKSB7XG4gICAgICAgIHRoaXMubWFya2VkSXRlbSA9ICh0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAmJiB0aGlzLmNsaXBib2FyZE9wZW4pID8gdGhpcy5jbGlwYm9hcmRJdGVtc1swXSA6IHRoaXMucmVzdWx0TGlzdFswXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBpbmRleDtcbiAgICAgICAgaWYgKHRoaXMuY2xpcGJvYXJkSXRlbXMgJiYgdGhpcy5jbGlwYm9hcmRPcGVuKSB7XG4gICAgICAgICAgaW5kZXggPSB0aGlzLmNsaXBib2FyZEl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IHRoaXMubWFya2VkSXRlbS5pZCk7XG4gICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGluZGV4LS07XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xICYmIHRoaXMucmVzdWx0TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgaW5kZXggPSB0aGlzLnJlc3VsdExpc3QubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5yZXN1bHRMaXN0W2luZGV4XVxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gLTEgJiYgIXRoaXMucmVzdWx0TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgaW5kZXggPSB0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMuY2xpcGJvYXJkSXRlbXNbaW5kZXhdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5jbGlwYm9hcmRJdGVtc1tpbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgoaW5kZXggPT09IHVuZGVmaW5lZCB8fCBpbmRleCA9PT0gLTEpICYmIHRoaXMucmVzdWx0TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICBpbmRleCA9IHRoaXMucmVzdWx0TGlzdC5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSB0aGlzLm1hcmtlZEl0ZW0uaWQpO1xuICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAtMSAmJiB0aGlzLmNsaXBib2FyZE9wZW4pIHtcbiAgICAgICAgICAgICAgaW5kZXggPSB0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMuY2xpcGJvYXJkSXRlbXNbaW5kZXhdXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSAtMSAmJiAhdGhpcy5jbGlwYm9hcmRPcGVuKSB7XG4gICAgICAgICAgICAgIGluZGV4ID0gdGhpcy5yZXN1bHRMaXN0Lmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMucmVzdWx0TGlzdFtpbmRleF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLm1hcmtlZEl0ZW0gPSB0aGlzLnJlc3VsdExpc3RbaW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbmRleCA9IHRoaXMucmVzdWx0TGlzdC5sZW5ndGggLSAxO1xuICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5yZXN1bHRMaXN0W2luZGV4XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAoZXZlbnQud2hpY2ggPT09IDEzICYmIGV2ZW50LmN0cmxLZXkpIHsgLy8gY3RybCArIGVudGVyXG4gICAgICBpZiAodGhpcy5tYXJrZWRJdGVtICYmICF0aGlzLm1hcmtlZEl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RSZWZlcmVuY2Uoe2l0ZW06IHRoaXMubWFya2VkSXRlbSwgYWRkOiB0cnVlfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKGV2ZW50LndoaWNoID09PSAxMykgeyAvLyBlbnRlclxuICAgICAgaWYgKHRoaXMubWFya2VkSXRlbSAmJiAhdGhpcy5tYXJrZWRJdGVtLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0UmVmZXJlbmNlKHtpdGVtOiB0aGlzLm1hcmtlZEl0ZW0sIGFkZDogIXRoaXMubXVsdGlzZWxlY3R9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZmVyZW5jZUZpbmRlclNlcnZpY2U6IFJlZmVyZW5jZUZpbmRlclNlcnZpY2UpIHtcbiAgICB0aGlzLnNlYXJjaGluZyA9IHRydWU7XG4gICAgdGhpcy5zZWFyY2hUZXJtJC5waXBlKGRlYm91bmNlVGltZSg1MDApKS5zdWJzY3JpYmUoc2VhcmNoVGVybSA9PiB7XG4gICAgICB0aGlzLnJlZmVyZW5jZUZpbmRlclNlcnZpY2UuZmluZFJlZmVyZW5jZXMoc2VhcmNoVGVybSwgW3RoaXMudHlwZXNdLCB0aGlzLmNvbnRleHRJZCwgdGhpcy5xdWVyeUZpbHRlcnMpXG4gICAgICAgIC5zdWJzY3JpYmUoKHNlYXJjaFJlc3VsdDogU2VhcmNoUmVzdWx0KSA9PiB7XG4gICAgICAgICAgY29uc3QgaGl0cyA9ICh0aGlzLmV4Y2VwdGlvbklEcyAmJiBzZWFyY2hSZXN1bHQuaGl0cykgPyBzZWFyY2hSZXN1bHQuaGl0cy5maWx0ZXIoaGl0ID0+ICF0aGlzLmV4Y2VwdGlvbklEcy5pbmNsdWRlcyhoaXQuaWQpKSA6IHNlYXJjaFJlc3VsdC5oaXRzO1xuICAgICAgICAgIGlmIChoaXRzICYmIGhpdHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmNsaXBib2FyZE9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMucmVzdWx0TGlzdCA9IHRoaXMucmVmZXJlbmNlRmluZGVyU2VydmljZS5nZW5lcmF0ZVJlc3VsdHModGhpcy5jbGlwYm9hcmRJdGVtcywgaGl0cywgdGhpcy5jdXJyZW50U2VsZWN0aW9uLCB0aGlzLnR5cGVzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtJC5uZXh0KCcqJyk7XG4gICAgICAgICAgICB0aGlzLmNsaXBib2FyZE9wZW4gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm1hcmtlZEl0ZW0gPSBudWxsO1xuICAgICAgICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGxvYWRpbmdSZWZlcmVuY2VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucmVzdWx0TGlzdC5sZW5ndGg7XG4gIH1cblxuICBnZXQgZGlzYWJsZUFkZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGg7XG4gIH1cblxuICBnZXQgY29weU9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpcGJvYXJkSXRlbXMubGVuZ3RoICYmICF0aGlzLnJlc3VsdExpc3QubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IHNlYXJjaE9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0TGlzdC5sZW5ndGggJiYgIXRoaXMuY2xpcGJvYXJkSXRlbXMubGVuZ3RoO1xuICB9XG5cbiAgc2VsZWN0QWxsRW50cmllcygpe1xuICAgIFsuLi50aGlzLmNsaXBib2FyZEl0ZW1zLCAuLi50aGlzLnJlc3VsdExpc3RdLmZpbHRlcihpdGVtID0+ICFpdGVtLnNlbGVjdGVkKS5mb3JFYWNoKGl0ZW0gPT4gdGhpcy5zZWxlY3RSZWZlcmVuY2Uoe2l0ZW06IGl0ZW0sIGFkZDogZmFsc2V9KSlcbiAgfVxuXG4gIHNlbGVjdENvcGllZEVudHJpZXMoKSB7XG4gICAgdGhpcy5jbGlwYm9hcmRJdGVtcy5maWx0ZXIoaXRlbSA9PiAhaXRlbS5zZWxlY3RlZCkuZm9yRWFjaChpdGVtID0+IHRoaXMuc2VsZWN0UmVmZXJlbmNlKHtpdGVtOiBpdGVtLCBhZGQ6IGZhbHNlfSkpO1xuICB9XG5cbiAgc2VsZWN0UmVmZXJlbmNlKHNlbGVjdFJlZmVyZW5jZToge2l0ZW06IFJlZmVyZW5jZUl0ZW07IGFkZDogYm9vbGVhbn0pIHtcbiAgICBjb25zdCB7aXRlbSwgYWRkfSA9IHNlbGVjdFJlZmVyZW5jZTtcbiAgICBpZiAoaXRlbSAmJiAhaXRlbS5kaXNhYmxlZCkge1xuICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgIWl0ZW0uY2xpcGJvYXJkXG4gICAgICAgICAgPyAodGhpcy5yZXN1bHRMaXN0ID0gdGhpcy5yZWZlcmVuY2VGaW5kZXJTZXJ2aWNlLnNlbGVjdE9uTXVsdGlzU2VsZWN0KHRoaXMucmVzdWx0TGlzdCwgaXRlbSkpXG4gICAgICAgICAgOiAodGhpcy5jbGlwYm9hcmRJdGVtcyA9IHRoaXMucmVmZXJlbmNlRmluZGVyU2VydmljZS5zZWxlY3RPbk11bHRpc1NlbGVjdCh0aGlzLmNsaXBib2FyZEl0ZW1zLCBpdGVtKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIWl0ZW0uY2xpcGJvYXJkKSB7XG4gICAgICAgICAgdGhpcy5yZXN1bHRMaXN0ID0gdGhpcy5yZWZlcmVuY2VGaW5kZXJTZXJ2aWNlLnNlbGVjdE9uU2luZ2xlU2VsZWN0KHRoaXMucmVzdWx0TGlzdCwgaXRlbSk7XG4gICAgICAgICAgdGhpcy5jbGlwYm9hcmRJdGVtcy5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCA9IGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNsaXBib2FyZEl0ZW1zID0gdGhpcy5yZWZlcmVuY2VGaW5kZXJTZXJ2aWNlLnNlbGVjdE9uU2luZ2xlU2VsZWN0KHRoaXMuY2xpcGJvYXJkSXRlbXMsIGl0ZW0pO1xuICAgICAgICAgIHRoaXMucmVzdWx0TGlzdC5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCA9IGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnJlZmVyZW5jZUZpbmRlclNlcnZpY2UuZ2VuZXJhdGVTZWxldGVjSXRlbXModGhpcy5yZXN1bHRMaXN0LCB0aGlzLmNsaXBib2FyZEl0ZW1zLCB0aGlzLmN1cnJlbnRTZWxlY3Rpb24pO1xuICAgIH1cbiAgICBpZiAoYWRkKSB7XG4gICAgICB0aGlzLmFkZEl0ZW1zKCk7XG4gICAgfVxuICB9XG5cbiAgYWRkSXRlbXMoKSB7XG4gICAgdGhpcy5hZGREbXNPYmplY3RzLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsSXRlbUludG9WaWV3KGl0ZW0pe1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBsZXQgaW5kZXggPSB0aGlzLmNsaXBib2FyZEl0ZW1zLmZpbmRJbmRleChpID0+IGkuaWQgPT09IGl0ZW0uaWQpO1xuICAgICAgaWYgKGluZGV4ID09PSAtMSAmJiB0aGlzLnJlc3VsdExpc3QubGVuZ3RoKSB7XG4gICAgICAgIGluZGV4ID0gdGhpcy5yZXN1bHRMaXN0LmZpbmRJbmRleChpID0+IGkuaWQgPT09IGl0ZW0uaWQpICsgdGhpcy5jbGlwYm9hcmRJdGVtcy5sZW5ndGg7XG4gICAgICB9XG4gICAgICB0aGlzLmVudHJpZXMudG9BcnJheSgpW2luZGV4XS5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KGZhbHNlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZW50cmllcy50b0FycmF5KCkubGVuZ3RoKSB7XG4gICAgICB0aGlzLmVudHJpZXMudG9BcnJheSgpWzBdLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBpbml0aWFsbHkgbG9hZCBldmVyeXRoaW5nIGFuZCBmb2N1cyBpbnRvIHRoZSBzZWFyY2ggZmllbGRcbiAgICB0aGlzLnNlYXJjaFRlcm0kLm5leHQoJyonKTtcbiAgICB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIiwiXG48c2VjdGlvbiBjbGFzcz1cInJlZmVyZW5jZS1maW5kZXItc2VhcmNoLS1pbnB1dFwiPlxuICA8aW5wdXQgI3NlYXJjaElucHV0IGF1dG9mb2N1cyB0YWJpbmRleD1cIjFcIiAoaW5wdXQpPVwic2VhcmNoVGVybSQubmV4dCgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiIGNsYXNzPVwic2VhcmNoXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cInt7KCdlby5zZWFyY2gucmVzdWx0LnRlcm0nIHwgdHJhbnNsYXRlKX19XCIvPlxuPC9zZWN0aW9uPlxuXG48c2VjdGlvbiBjbGFzcz1cInJlZmVyZW5jZS1maW5kZXItLWNvbnRlbnRcIiAqbmdJZj1cIiFzZWFyY2hpbmc7IGVsc2UgbG9hZGluZ1wiPlxuICA8ZGl2IGNsYXNzPVwicmVzdWx0c1wiPlxuICAgIDxlby1zaW1wbGUtYWNjb3JkaW9uICpuZ0lmPVwiY2xpcGJvYXJkSXRlbXMubGVuZ3RoICYmICFjb3B5T25seVwiXG4gICAgW2hlYWRlcl09XCInZW8uY2xpcGJvYXJkLnR5cGUuY29weScgfCB0cmFuc2xhdGVcIlxuICAgIFtzZWxlY3RlZF09XCJjbGlwYm9hcmRPcGVuXCJcbiAgICAoc2VsZWN0Q2hhbmdlKT1cImNsaXBib2FyZE9wZW4gPSAkZXZlbnQ7XCJcbiAgICBjbGFzcz1cInJlc3VsdHMtYWNjb3JkaW9uXCI+XG4gICAgICAgIDxlby1yZWZlcmVuY2UtZmluZGVyLWVudHJ5ICpuZ0Zvcj1cImxldCBsaXN0IG9mIGNsaXBib2FyZEl0ZW1zXCIgI2VudHJ5XG4gICAgICAgICAgW0BmYWRlSW5PdXRdXG4gICAgICAgICAgW2xpc3RdPVwibGlzdFwiXG4gICAgICAgICAgW211bHRpc2VsZWN0XT1cIm11bHRpc2VsZWN0XCJcbiAgICAgICAgICAoc2VsZWN0UmVmZXJlbmNlKT1cInNlbGVjdFJlZmVyZW5jZSgkZXZlbnQpXCJcbiAgICAgICAgICBbbWFya2VkXT1cImxpc3QuaWQgPT09IG1hcmtlZEl0ZW0/LmlkXCJcbiAgICAgICAgPlxuICAgICAgPC9lby1yZWZlcmVuY2UtZmluZGVyLWVudHJ5PlxuICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cblxuICAgIDxzZWN0aW9uICpuZ0lmPVwiY2xpcGJvYXJkSXRlbXMubGVuZ3RoICYmIGNvcHlPbmx5XCI+XG4gICAgICA8ZW8tcmVmZXJlbmNlLWZpbmRlci1lbnRyeSAqbmdGb3I9XCJsZXQgbGlzdCBvZiBjbGlwYm9hcmRJdGVtc1wiICNlbnRyeVxuICAgICAgICBbQGZhZGVJbk91dF1cbiAgICAgICAgW2xpc3RdPVwibGlzdFwiXG4gICAgICAgIFttdWx0aXNlbGVjdF09XCJtdWx0aXNlbGVjdFwiXG4gICAgICAgIChzZWxlY3RSZWZlcmVuY2UpPVwic2VsZWN0UmVmZXJlbmNlKCRldmVudClcIlxuICAgICAgICBbbWFya2VkXT1cImxpc3QuaWQgPT09IG1hcmtlZEl0ZW0/LmlkXCJcbiAgICAgID5cbiAgICAgIDwvZW8tcmVmZXJlbmNlLWZpbmRlci1lbnRyeT5cbiAgICA8L3NlY3Rpb24+XG4gICAgPGRpdiBjbGFzcz1cInBhZGRpbmdcIj48L2Rpdj5cblxuICAgIDxlby1zaW1wbGUtYWNjb3JkaW9uICpuZ0lmPVwicmVzdWx0TGlzdC5sZW5ndGggJiYgIXNlYXJjaE9ubHlcIiBbaGVhZGVyXT1cIidlby5zZWFyY2gudGl0bGUnIHwgdHJhbnNsYXRlXCIgY2xhc3M9XCJyZXN1bHRzLWFjY29yZGlvblwiPlxuICAgICAgPGVvLXJlZmVyZW5jZS1maW5kZXItZW50cnkgKm5nRm9yPVwibGV0IGxpc3Qgb2YgcmVzdWx0TGlzdFwiICNlbnRyeVxuICAgICAgICBbQGZhZGVJbk91dF1cbiAgICAgICAgW2xpc3RdPVwibGlzdFwiXG4gICAgICAgIFttdWx0aXNlbGVjdF09XCJtdWx0aXNlbGVjdFwiXG4gICAgICAgIChzZWxlY3RSZWZlcmVuY2UpPVwic2VsZWN0UmVmZXJlbmNlKCRldmVudClcIlxuICAgICAgICBbbWFya2VkXT1cImxpc3QuaWQgPT09IG1hcmtlZEl0ZW0/LmlkXCJcbiAgICAgID5cbiAgICAgIDwvZW8tcmVmZXJlbmNlLWZpbmRlci1lbnRyeT5cbiAgICA8L2VvLXNpbXBsZS1hY2NvcmRpb24+XG5cbiAgICA8c2VjdGlvbiAqbmdJZj1cInJlc3VsdExpc3QubGVuZ3RoICYmIHNlYXJjaE9ubHlcIj5cbiAgICAgIDxlby1yZWZlcmVuY2UtZmluZGVyLWVudHJ5ICpuZ0Zvcj1cImxldCBsaXN0IG9mIHJlc3VsdExpc3RcIiAjZW50cnlcbiAgICAgICAgW0BmYWRlSW5PdXRdXG4gICAgICAgIFtsaXN0XT1cImxpc3RcIlxuICAgICAgICBbbXVsdGlzZWxlY3RdPVwibXVsdGlzZWxlY3RcIlxuICAgICAgICAoc2VsZWN0UmVmZXJlbmNlKT1cInNlbGVjdFJlZmVyZW5jZSgkZXZlbnQpXCJcbiAgICAgICAgW21hcmtlZF09XCJsaXN0LmlkID09PSBtYXJrZWRJdGVtPy5pZFwiXG4gICAgICA+XG4gICAgICA8L2VvLXJlZmVyZW5jZS1maW5kZXItZW50cnk+XG4gICAgPC9zZWN0aW9uPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY3RhXCI+XG4gICAgPGRpdj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwibXVsdGlzZWxlY3RcIiAoY2xpY2spPVwic2VsZWN0QWxsRW50cmllcygpXCI+e3soJ2VvLmN0YS5idXR0b24uc2VsZWN0LmFsbCcgfCB0cmFuc2xhdGUpfX08L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwibXVsdGlzZWxlY3RcIiAoY2xpY2spPVwic2VsZWN0Q29waWVkRW50cmllcygpXCI+e3soJ2VvLmN0YS5idXR0b24uc2VsZWN0LmNvcHknIHwgdHJhbnNsYXRlKX19PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhZGRcIiAoY2xpY2spPVwiYWRkSXRlbXMoKVwiICpuZ0lmPVwiIWRpc2FibGVBZGRcIiBbQGZhZGVJbk91dF0gIFtjbGFzcy5hY3RpdmVdPVwiIWRpc2FibGVBZGRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZUFkZFwiIFt0aXRsZV09XCInZW8uY3RhLmJ1dHRvbi5hZGQnIHwgdHJhbnNsYXRlXCI+XG4gICAgICB7eygnZW8uY3RhLmJ1dHRvbi5hZGQnIHwgdHJhbnNsYXRlKX19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxkaXYgY2xhc3M9XCJsb2FkZXItb3ZlcmxheV9fbWFza1wiPlxuICAgIDxlby1sb2FkaW5nLXNwaW5uZXIgY2xhc3M9XCJyZWZlcmVuY2VfX2xvYWRlclwiIFtzaXplXT1cIidsYXJnZSdcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLWZpbmRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2lkLXJlZmVyZW5jZS9yZWZlcmVuY2UtZmluZGVyL3JlZmVyZW5jZS1maW5kZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvZm9ybS1lbGVtZW50cy9pZC1yZWZlcmVuY2UvcmVmZXJlbmNlLWZpbmRlci9yZWZlcmVuY2UtZmluZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBYSxVQUFVLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVsSixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQU1sRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBUTVDLE1BQU0sT0FBTyx3QkFBd0I7SUFlbkMsSUFBSSxVQUFVLENBQUMsSUFBbUI7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFVRCxJQUNJLGdCQUFnQixDQUFDLFNBQTBCO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksZ0JBQWdCO1FB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T0FBTztzQkFBakQsWUFBWTt1QkFBQyxPQUFPLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO2dCQUNmLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFxQmYsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFHRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBU0YsU0FBUztzQkFEWixLQUFLO2dCQUlJLGFBQWE7c0JBQXRCLE1BQU07Z0JBR1AsS0FBSztzQkFESixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIEhvc3RMaXN0ZW5lciwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NsaXBib2FyZCwgU2VhcmNoUmVzdWx0fSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmFkZUluT3V0fSBmcm9tICcuLi9hbmltYXRpb24vcmVmZXJlbmNlLWZpbmRlci5hbmltYXRpb24nO1xuaW1wb3J0IHtcbiAgUmVmZXJlbmNlSXRlbSxcbiAgUmVmZXJlbmNlU2VhcmNoQ291bnRlclxufSBmcm9tICcuLi9pbnRlcmZhY2UvcmVmZXJlbmNlLWZpbmRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHtSZWZlcmVuY2VGaW5kZXJTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3JlZmVyZW5jZS1maW5kZXIuc2VydmljZSc7XG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1yZWZlcmVuY2UtZmluZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZmVyZW5jZS1maW5kZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWZlcmVuY2UtZmluZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtmYWRlSW5PdXRdXG59KVxuZXhwb3J0IGNsYXNzIFJlZmVyZW5jZUZpbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2VudHJ5Jywge3JlYWQ6IEVsZW1lbnRSZWZ9KSBlbnRyaWVzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0Jykgc2VhcmNoSW5wdXQhOiBFbGVtZW50UmVmO1xuXG4gIHNlYXJjaFRlcm0kID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBzZWFyY2hSZXN1bHRDb3VudDogUmVmZXJlbmNlU2VhcmNoQ291bnRlcjtcbiAgc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICByZXN1bHRMaXN0OiBSZWZlcmVuY2VJdGVtW10gPSBbXTtcbiAgcHJpdmF0ZSBfY3VycmVudFNlbGVjdGlvbjogUmVmZXJlbmNlSXRlbVtdO1xuICBjbGlwYm9hcmRJdGVtczogUmVmZXJlbmNlSXRlbVtdID0gW107XG4gIGNsaXBib2FyZE9wZW4gPSB0cnVlO1xuICBfbWFya2VkSXRlbTogUmVmZXJlbmNlSXRlbTtcbiAgc2VhcmNoaW5nID0gZmFsc2U7XG5cbiAgc2V0IG1hcmtlZEl0ZW0oaXRlbTogUmVmZXJlbmNlSXRlbSkge1xuICAgIHRoaXMuX21hcmtlZEl0ZW0gPSBpdGVtO1xuICAgIHRoaXMuc2Nyb2xsSXRlbUludG9WaWV3KHRoaXMuX21hcmtlZEl0ZW0pO1xuICB9XG5cbiAgZ2V0IG1hcmtlZEl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX21hcmtlZEl0ZW07XG4gIH1cblxuICBASW5wdXQoKSBpc0Rpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSB0eXBlczogc3RyaW5nO1xuICBASW5wdXQoKSBtdWx0aXNlbGVjdDogYm9vbGVhbjtcbiAgQElucHV0KCkgY29udGV4dElkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGV4Y2VwdGlvbklEczogc3RyaW5nW107XG5cbiAgQElucHV0KCkgcXVlcnlGaWx0ZXJzOiB7W2ZpZWxkUW5hbWU6IHN0cmluZ106IHtvOiBzdHJpbmcsIHYxOiBhbnksIHYyOiBhbnl9fTtcblxuICBASW5wdXQoKVxuICBzZXQgY3VycmVudFNlbGVjdGlvbihzZWxlY3Rpb246IFJlZmVyZW5jZUl0ZW1bXSkge1xuICAgIHRoaXMuX2N1cnJlbnRTZWxlY3Rpb24gPSBzZWxlY3Rpb247XG4gIH1cbiAgZ2V0IGN1cnJlbnRTZWxlY3Rpb24oKTogUmVmZXJlbmNlSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFNlbGVjdGlvbjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBjbGlwYm9hcmQoY2xpcGJvYXJkOiBDbGlwYm9hcmQpIHtcbiAgICB0aGlzLmNsaXBib2FyZEl0ZW1zID0gdGhpcy5yZWZlcmVuY2VGaW5kZXJTZXJ2aWNlLmdlbmVyYXRlUmVmZXJlbmNlSXRlbXNGcm9tRG1zT2JqZWN0cyhjbGlwYm9hcmQuZWxlbWVudHMsIHRoaXMuY3VycmVudFNlbGVjdGlvbiwgdGhpcy5pc0Rpc2FibGVkKTtcbiAgfVxuICBAT3V0cHV0KCkgYWRkRG1zT2JqZWN0czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXkoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQud2hpY2ggPT09IDQwKSB7IC8vIGFycm93IGRvd25cbiAgICAgIGlmICghdGhpcy5tYXJrZWRJdGVtICYmICh0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCB8fCB0aGlzLnJlc3VsdExpc3QubGVuZ3RoKSkge1xuICAgICAgICB0aGlzLm1hcmtlZEl0ZW0gPSAodGhpcy5jbGlwYm9hcmRJdGVtcy5sZW5ndGggJiYgdGhpcy5jbGlwYm9hcmRPcGVuKSA/IHRoaXMuY2xpcGJvYXJkSXRlbXNbMF0gOiB0aGlzLnJlc3VsdExpc3RbMF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgaW5kZXg7XG4gICAgICAgIGlmICh0aGlzLmNsaXBib2FyZEl0ZW1zICYmIHRoaXMuY2xpcGJvYXJkT3Blbikge1xuICAgICAgICAgIGluZGV4ID0gdGhpcy5jbGlwYm9hcmRJdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSB0aGlzLm1hcmtlZEl0ZW0uaWQpO1xuICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAmJiAhdGhpcy5yZXN1bHRMaXN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgICBpbmRleCA9IDA7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMuY2xpcGJvYXJkSXRlbXNbaW5kZXhdXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSB0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAmJiB0aGlzLnJlc3VsdExpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGluZGV4ID0gMDtcbiAgICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5yZXN1bHRMaXN0W2luZGV4XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMuY2xpcGJvYXJkSXRlbXNbaW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoKGluZGV4ID09PSB1bmRlZmluZWQgfHwgaW5kZXggPT09IC0xKSAmJiB0aGlzLnJlc3VsdExpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgaW5kZXggPSB0aGlzLnJlc3VsdExpc3QuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gdGhpcy5tYXJrZWRJdGVtLmlkKTtcbiAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5yZXN1bHRMaXN0Lmxlbmd0aCAmJiB0aGlzLmNsaXBib2FyZE9wZW4pIHtcbiAgICAgICAgICAgICAgaW5kZXggPSAwO1xuICAgICAgICAgICAgICB0aGlzLm1hcmtlZEl0ZW0gPSB0aGlzLmNsaXBib2FyZEl0ZW1zW2luZGV4XVxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gdGhpcy5yZXN1bHRMaXN0Lmxlbmd0aCAmJiAhdGhpcy5jbGlwYm9hcmRPcGVuKSB7XG4gICAgICAgICAgICAgIGluZGV4ID0gMDtcbiAgICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5yZXN1bHRMaXN0W2luZGV4XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMucmVzdWx0TGlzdFtpbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluZGV4ID0gMDtcbiAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMucmVzdWx0TGlzdFtpbmRleF07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKGV2ZW50LndoaWNoID09PSAzOCkgeyAvLyBhcnJvdyB1cFxuICAgICAgaWYgKCF0aGlzLm1hcmtlZEl0ZW0gJiYgKHRoaXMuY2xpcGJvYXJkSXRlbXMubGVuZ3RoIHx8IHRoaXMucmVzdWx0TGlzdC5sZW5ndGgpKSB7XG4gICAgICAgIHRoaXMubWFya2VkSXRlbSA9ICh0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAmJiB0aGlzLmNsaXBib2FyZE9wZW4pID8gdGhpcy5jbGlwYm9hcmRJdGVtc1swXSA6IHRoaXMucmVzdWx0TGlzdFswXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBpbmRleDtcbiAgICAgICAgaWYgKHRoaXMuY2xpcGJvYXJkSXRlbXMgJiYgdGhpcy5jbGlwYm9hcmRPcGVuKSB7XG4gICAgICAgICAgaW5kZXggPSB0aGlzLmNsaXBib2FyZEl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IHRoaXMubWFya2VkSXRlbS5pZCk7XG4gICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGluZGV4LS07XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xICYmIHRoaXMucmVzdWx0TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgaW5kZXggPSB0aGlzLnJlc3VsdExpc3QubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5yZXN1bHRMaXN0W2luZGV4XVxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gLTEgJiYgIXRoaXMucmVzdWx0TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgaW5kZXggPSB0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMuY2xpcGJvYXJkSXRlbXNbaW5kZXhdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5jbGlwYm9hcmRJdGVtc1tpbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgoaW5kZXggPT09IHVuZGVmaW5lZCB8fCBpbmRleCA9PT0gLTEpICYmIHRoaXMucmVzdWx0TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICBpbmRleCA9IHRoaXMucmVzdWx0TGlzdC5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSB0aGlzLm1hcmtlZEl0ZW0uaWQpO1xuICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAtMSAmJiB0aGlzLmNsaXBib2FyZE9wZW4pIHtcbiAgICAgICAgICAgICAgaW5kZXggPSB0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMuY2xpcGJvYXJkSXRlbXNbaW5kZXhdXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSAtMSAmJiAhdGhpcy5jbGlwYm9hcmRPcGVuKSB7XG4gICAgICAgICAgICAgIGluZGV4ID0gdGhpcy5yZXN1bHRMaXN0Lmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMucmVzdWx0TGlzdFtpbmRleF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLm1hcmtlZEl0ZW0gPSB0aGlzLnJlc3VsdExpc3RbaW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbmRleCA9IHRoaXMucmVzdWx0TGlzdC5sZW5ndGggLSAxO1xuICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5yZXN1bHRMaXN0W2luZGV4XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAoZXZlbnQud2hpY2ggPT09IDEzICYmIGV2ZW50LmN0cmxLZXkpIHsgLy8gY3RybCArIGVudGVyXG4gICAgICBpZiAodGhpcy5tYXJrZWRJdGVtICYmICF0aGlzLm1hcmtlZEl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RSZWZlcmVuY2Uoe2l0ZW06IHRoaXMubWFya2VkSXRlbSwgYWRkOiB0cnVlfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKGV2ZW50LndoaWNoID09PSAxMykgeyAvLyBlbnRlclxuICAgICAgaWYgKHRoaXMubWFya2VkSXRlbSAmJiAhdGhpcy5tYXJrZWRJdGVtLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0UmVmZXJlbmNlKHtpdGVtOiB0aGlzLm1hcmtlZEl0ZW0sIGFkZDogIXRoaXMubXVsdGlzZWxlY3R9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZmVyZW5jZUZpbmRlclNlcnZpY2U6IFJlZmVyZW5jZUZpbmRlclNlcnZpY2UpIHtcbiAgICB0aGlzLnNlYXJjaGluZyA9IHRydWU7XG4gICAgdGhpcy5zZWFyY2hUZXJtJC5waXBlKGRlYm91bmNlVGltZSg1MDApKS5zdWJzY3JpYmUoc2VhcmNoVGVybSA9PiB7XG4gICAgICB0aGlzLnJlZmVyZW5jZUZpbmRlclNlcnZpY2UuZmluZFJlZmVyZW5jZXMoc2VhcmNoVGVybSwgW3RoaXMudHlwZXNdLCB0aGlzLmNvbnRleHRJZCwgdGhpcy5xdWVyeUZpbHRlcnMpXG4gICAgICAgIC5zdWJzY3JpYmUoKHNlYXJjaFJlc3VsdDogU2VhcmNoUmVzdWx0KSA9PiB7XG4gICAgICAgICAgY29uc3QgaGl0cyA9ICh0aGlzLmV4Y2VwdGlvbklEcyAmJiBzZWFyY2hSZXN1bHQuaGl0cykgPyBzZWFyY2hSZXN1bHQuaGl0cy5maWx0ZXIoaGl0ID0+ICF0aGlzLmV4Y2VwdGlvbklEcy5pbmNsdWRlcyhoaXQuaWQpKSA6IHNlYXJjaFJlc3VsdC5oaXRzO1xuICAgICAgICAgIGlmIChoaXRzICYmIGhpdHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmNsaXBib2FyZE9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMucmVzdWx0TGlzdCA9IHRoaXMucmVmZXJlbmNlRmluZGVyU2VydmljZS5nZW5lcmF0ZVJlc3VsdHModGhpcy5jbGlwYm9hcmRJdGVtcywgaGl0cywgdGhpcy5jdXJyZW50U2VsZWN0aW9uLCB0aGlzLnR5cGVzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtJC5uZXh0KCcqJyk7XG4gICAgICAgICAgICB0aGlzLmNsaXBib2FyZE9wZW4gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm1hcmtlZEl0ZW0gPSBudWxsO1xuICAgICAgICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGxvYWRpbmdSZWZlcmVuY2VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucmVzdWx0TGlzdC5sZW5ndGg7XG4gIH1cblxuICBnZXQgZGlzYWJsZUFkZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGg7XG4gIH1cblxuICBnZXQgY29weU9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpcGJvYXJkSXRlbXMubGVuZ3RoICYmICF0aGlzLnJlc3VsdExpc3QubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IHNlYXJjaE9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0TGlzdC5sZW5ndGggJiYgIXRoaXMuY2xpcGJvYXJkSXRlbXMubGVuZ3RoO1xuICB9XG5cbiAgc2VsZWN0QWxsRW50cmllcygpe1xuICAgIFsuLi50aGlzLmNsaXBib2FyZEl0ZW1zLCAuLi50aGlzLnJlc3VsdExpc3RdLmZpbHRlcihpdGVtID0+ICFpdGVtLnNlbGVjdGVkKS5mb3JFYWNoKGl0ZW0gPT4gdGhpcy5zZWxlY3RSZWZlcmVuY2Uoe2l0ZW06IGl0ZW0sIGFkZDogZmFsc2V9KSlcbiAgfVxuXG4gIHNlbGVjdENvcGllZEVudHJpZXMoKSB7XG4gICAgdGhpcy5jbGlwYm9hcmRJdGVtcy5maWx0ZXIoaXRlbSA9PiAhaXRlbS5zZWxlY3RlZCkuZm9yRWFjaChpdGVtID0+IHRoaXMuc2VsZWN0UmVmZXJlbmNlKHtpdGVtOiBpdGVtLCBhZGQ6IGZhbHNlfSkpO1xuICB9XG5cbiAgc2VsZWN0UmVmZXJlbmNlKHNlbGVjdFJlZmVyZW5jZToge2l0ZW06IFJlZmVyZW5jZUl0ZW07IGFkZDogYm9vbGVhbn0pIHtcbiAgICBjb25zdCB7aXRlbSwgYWRkfSA9IHNlbGVjdFJlZmVyZW5jZTtcbiAgICBpZiAoaXRlbSAmJiAhaXRlbS5kaXNhYmxlZCkge1xuICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgIWl0ZW0uY2xpcGJvYXJkXG4gICAgICAgICAgPyAodGhpcy5yZXN1bHRMaXN0ID0gdGhpcy5yZWZlcmVuY2VGaW5kZXJTZXJ2aWNlLnNlbGVjdE9uTXVsdGlzU2VsZWN0KHRoaXMucmVzdWx0TGlzdCwgaXRlbSkpXG4gICAgICAgICAgOiAodGhpcy5jbGlwYm9hcmRJdGVtcyA9IHRoaXMucmVmZXJlbmNlRmluZGVyU2VydmljZS5zZWxlY3RPbk11bHRpc1NlbGVjdCh0aGlzLmNsaXBib2FyZEl0ZW1zLCBpdGVtKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIWl0ZW0uY2xpcGJvYXJkKSB7XG4gICAgICAgICAgdGhpcy5yZXN1bHRMaXN0ID0gdGhpcy5yZWZlcmVuY2VGaW5kZXJTZXJ2aWNlLnNlbGVjdE9uU2luZ2xlU2VsZWN0KHRoaXMucmVzdWx0TGlzdCwgaXRlbSk7XG4gICAgICAgICAgdGhpcy5jbGlwYm9hcmRJdGVtcy5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCA9IGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNsaXBib2FyZEl0ZW1zID0gdGhpcy5yZWZlcmVuY2VGaW5kZXJTZXJ2aWNlLnNlbGVjdE9uU2luZ2xlU2VsZWN0KHRoaXMuY2xpcGJvYXJkSXRlbXMsIGl0ZW0pO1xuICAgICAgICAgIHRoaXMucmVzdWx0TGlzdC5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCA9IGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnJlZmVyZW5jZUZpbmRlclNlcnZpY2UuZ2VuZXJhdGVTZWxldGVjSXRlbXModGhpcy5yZXN1bHRMaXN0LCB0aGlzLmNsaXBib2FyZEl0ZW1zLCB0aGlzLmN1cnJlbnRTZWxlY3Rpb24pO1xuICAgIH1cbiAgICBpZiAoYWRkKSB7XG4gICAgICB0aGlzLmFkZEl0ZW1zKCk7XG4gICAgfVxuICB9XG5cbiAgYWRkSXRlbXMoKSB7XG4gICAgdGhpcy5hZGREbXNPYmplY3RzLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsSXRlbUludG9WaWV3KGl0ZW0pe1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBsZXQgaW5kZXggPSB0aGlzLmNsaXBib2FyZEl0ZW1zLmZpbmRJbmRleChpID0+IGkuaWQgPT09IGl0ZW0uaWQpO1xuICAgICAgaWYgKGluZGV4ID09PSAtMSAmJiB0aGlzLnJlc3VsdExpc3QubGVuZ3RoKSB7XG4gICAgICAgIGluZGV4ID0gdGhpcy5yZXN1bHRMaXN0LmZpbmRJbmRleChpID0+IGkuaWQgPT09IGl0ZW0uaWQpICsgdGhpcy5jbGlwYm9hcmRJdGVtcy5sZW5ndGg7XG4gICAgICB9XG4gICAgICB0aGlzLmVudHJpZXMudG9BcnJheSgpW2luZGV4XS5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KGZhbHNlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZW50cmllcy50b0FycmF5KCkubGVuZ3RoKSB7XG4gICAgICB0aGlzLmVudHJpZXMudG9BcnJheSgpWzBdLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBpbml0aWFsbHkgbG9hZCBldmVyeXRoaW5nIGFuZCBmb2N1cyBpbnRvIHRoZSBzZWFyY2ggZmllbGRcbiAgICB0aGlzLnNlYXJjaFRlcm0kLm5leHQoJyonKTtcbiAgICB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIiwiXG48c2VjdGlvbiBjbGFzcz1cInJlZmVyZW5jZS1maW5kZXItc2VhcmNoLS1pbnB1dFwiPlxuICA8aW5wdXQgI3NlYXJjaElucHV0IGF1dG9mb2N1cyB0YWJpbmRleD1cIjFcIiAoaW5wdXQpPVwic2VhcmNoVGVybSQubmV4dCgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiIGNsYXNzPVwic2VhcmNoXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cInt7KCdlby5zZWFyY2gucmVzdWx0LnRlcm0nIHwgdHJhbnNsYXRlKX19XCIvPlxuPC9zZWN0aW9uPlxuXG48c2VjdGlvbiBjbGFzcz1cInJlZmVyZW5jZS1maW5kZXItLWNvbnRlbnRcIiAqbmdJZj1cIiFzZWFyY2hpbmc7IGVsc2UgbG9hZGluZ1wiPlxuICA8ZGl2IGNsYXNzPVwicmVzdWx0c1wiPlxuICAgIDxlby1zaW1wbGUtYWNjb3JkaW9uICpuZ0lmPVwiY2xpcGJvYXJkSXRlbXMubGVuZ3RoICYmICFjb3B5T25seVwiXG4gICAgW2hlYWRlcl09XCInZW8uY2xpcGJvYXJkLnR5cGUuY29weScgfCB0cmFuc2xhdGVcIlxuICAgIFtzZWxlY3RlZF09XCJ0cnVlXCJcbiAgICAoc2VsZWN0Q2hhbmdlKT1cImNsaXBib2FyZE9wZW4gPSAkZXZlbnQ7XCJcbiAgICBjbGFzcz1cInJlc3VsdHMtYWNjb3JkaW9uXCI+XG4gICAgICAgIDxlby1yZWZlcmVuY2UtZmluZGVyLWVudHJ5ICpuZ0Zvcj1cImxldCBsaXN0IG9mIGNsaXBib2FyZEl0ZW1zXCIgI2VudHJ5XG4gICAgICAgICAgW0BmYWRlSW5PdXRdXG4gICAgICAgICAgW2xpc3RdPVwibGlzdFwiXG4gICAgICAgICAgW211bHRpc2VsZWN0XT1cIm11bHRpc2VsZWN0XCJcbiAgICAgICAgICAoc2VsZWN0UmVmZXJlbmNlKT1cInNlbGVjdFJlZmVyZW5jZSgkZXZlbnQpXCJcbiAgICAgICAgICBbbWFya2VkXT1cImxpc3QuaWQgPT09IG1hcmtlZEl0ZW0/LmlkXCJcbiAgICAgICAgPlxuICAgICAgPC9lby1yZWZlcmVuY2UtZmluZGVyLWVudHJ5PlxuICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cblxuICAgIDxzZWN0aW9uICpuZ0lmPVwiY2xpcGJvYXJkSXRlbXMubGVuZ3RoICYmIGNvcHlPbmx5XCI+XG4gICAgICA8ZW8tcmVmZXJlbmNlLWZpbmRlci1lbnRyeSAqbmdGb3I9XCJsZXQgbGlzdCBvZiBjbGlwYm9hcmRJdGVtc1wiICNlbnRyeVxuICAgICAgICBbQGZhZGVJbk91dF1cbiAgICAgICAgW2xpc3RdPVwibGlzdFwiXG4gICAgICAgIFttdWx0aXNlbGVjdF09XCJtdWx0aXNlbGVjdFwiXG4gICAgICAgIChzZWxlY3RSZWZlcmVuY2UpPVwic2VsZWN0UmVmZXJlbmNlKCRldmVudClcIlxuICAgICAgICBbbWFya2VkXT1cImxpc3QuaWQgPT09IG1hcmtlZEl0ZW0/LmlkXCJcbiAgICAgID5cbiAgICAgIDwvZW8tcmVmZXJlbmNlLWZpbmRlci1lbnRyeT5cbiAgICA8L3NlY3Rpb24+XG4gICAgPGRpdiBjbGFzcz1cInBhZGRpbmdcIj48L2Rpdj5cblxuICAgIDxlby1zaW1wbGUtYWNjb3JkaW9uICpuZ0lmPVwicmVzdWx0TGlzdC5sZW5ndGggJiYgIXNlYXJjaE9ubHlcIiBbc2VsZWN0ZWRdPVwidHJ1ZVwiIFtoZWFkZXJdPVwiJ2VvLnNlYXJjaC50aXRsZScgfCB0cmFuc2xhdGVcIiBjbGFzcz1cInJlc3VsdHMtYWNjb3JkaW9uXCI+XG4gICAgICA8ZW8tcmVmZXJlbmNlLWZpbmRlci1lbnRyeSAqbmdGb3I9XCJsZXQgbGlzdCBvZiByZXN1bHRMaXN0XCIgI2VudHJ5XG4gICAgICAgIFtAZmFkZUluT3V0XVxuICAgICAgICBbbGlzdF09XCJsaXN0XCJcbiAgICAgICAgW211bHRpc2VsZWN0XT1cIm11bHRpc2VsZWN0XCJcbiAgICAgICAgKHNlbGVjdFJlZmVyZW5jZSk9XCJzZWxlY3RSZWZlcmVuY2UoJGV2ZW50KVwiXG4gICAgICAgIFttYXJrZWRdPVwibGlzdC5pZCA9PT0gbWFya2VkSXRlbT8uaWRcIlxuICAgICAgPlxuICAgICAgPC9lby1yZWZlcmVuY2UtZmluZGVyLWVudHJ5PlxuICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cblxuICAgIDxzZWN0aW9uICpuZ0lmPVwicmVzdWx0TGlzdC5sZW5ndGggJiYgc2VhcmNoT25seVwiPlxuICAgICAgPGVvLXJlZmVyZW5jZS1maW5kZXItZW50cnkgKm5nRm9yPVwibGV0IGxpc3Qgb2YgcmVzdWx0TGlzdFwiICNlbnRyeVxuICAgICAgICBbQGZhZGVJbk91dF1cbiAgICAgICAgW2xpc3RdPVwibGlzdFwiXG4gICAgICAgIFttdWx0aXNlbGVjdF09XCJtdWx0aXNlbGVjdFwiXG4gICAgICAgIChzZWxlY3RSZWZlcmVuY2UpPVwic2VsZWN0UmVmZXJlbmNlKCRldmVudClcIlxuICAgICAgICBbbWFya2VkXT1cImxpc3QuaWQgPT09IG1hcmtlZEl0ZW0/LmlkXCJcbiAgICAgID5cbiAgICAgIDwvZW8tcmVmZXJlbmNlLWZpbmRlci1lbnRyeT5cbiAgICA8L3NlY3Rpb24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjdGFcIj5cbiAgICA8ZGl2PlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJtdWx0aXNlbGVjdFwiIChjbGljayk9XCJzZWxlY3RBbGxFbnRyaWVzKClcIj57eygnZW8uY3RhLmJ1dHRvbi5zZWxlY3QuYWxsJyB8IHRyYW5zbGF0ZSl9fTwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJtdWx0aXNlbGVjdCAmJiAhc2VhcmNoT25seVwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgKGNsaWNrKT1cInNlbGVjdENvcGllZEVudHJpZXMoKVwiPnt7KCdlby5jdGEuYnV0dG9uLnNlbGVjdC5jb3B5JyB8IHRyYW5zbGF0ZSl9fTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYWRkXCIgKGNsaWNrKT1cImFkZEl0ZW1zKClcIiAqbmdJZj1cIiFkaXNhYmxlQWRkXCIgW0BmYWRlSW5PdXRdICBbY2xhc3MuYWN0aXZlXT1cIiFkaXNhYmxlQWRkXCIgW2Rpc2FibGVkXT1cImRpc2FibGVBZGRcIiBbdGl0bGVdPVwiJ2VvLmN0YS5idXR0b24uYWRkJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAge3soJ2VvLmN0YS5idXR0b24uYWRkJyB8IHRyYW5zbGF0ZSl9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICA8ZGl2IGNsYXNzPVwibG9hZGVyLW92ZXJsYXlfX21hc2tcIj5cbiAgICA8ZW8tbG9hZGluZy1zcGlubmVyIGNsYXNzPVwicmVmZXJlbmNlX19sb2FkZXJcIiBbc2l6ZV09XCInbGFyZ2UnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|