@eo-sdk/client 11.2.2 → 11.4.0-rc.2
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/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts +2 -0
- package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts.map +1 -1
- package/app/eo-client/object-state/object-state/object-state.component.d.ts.map +1 -1
- package/app/eo-framework/accordion/simple-accordion/simple-accordion.component.d.ts +4 -1
- package/app/eo-framework/accordion/simple-accordion/simple-accordion.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.d.ts +1 -0
- package/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.d.ts.map +1 -1
- package/app/eo-framework/grid/column-configurator/column-configurator.component.d.ts.map +1 -1
- package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts +5 -0
- package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts.map +1 -1
- package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts +13 -10
- package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts.map +1 -1
- package/app/eo-framework/util/services/utilities.service.d.ts +57 -193
- package/app/eo-framework/util/services/utilities.service.d.ts.map +1 -1
- package/assets/_default/i18n/de.json +14 -0
- package/assets/_default/i18n/en.json +14 -0
- package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +8 -3
- package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +8 -8
- package/esm2022/app/eo-client/dashboard/widgets/charts-widget/icharts.mjs +1 -1
- package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +2 -2
- package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +4 -3
- package/esm2022/app/eo-client/settings/settings.component.mjs +1 -1
- package/esm2022/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +9 -3
- package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +2 -2
- package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +6 -3
- package/esm2022/app/eo-framework/grid/column-configurator/column-configurator.component.mjs +4 -1
- package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +1 -1
- package/esm2022/app/eo-framework/object-details/object-details.component.mjs +3 -3
- package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +2 -2
- package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +3 -3
- package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +22 -9
- package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +36 -23
- package/esm2022/app/eo-framework/util/services/utilities.service.mjs +59 -2
- package/fesm2022/eo-sdk-client.mjs +150 -50
- package/fesm2022/eo-sdk-client.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -162,12 +162,12 @@ export class AppAddDialogComponent {
|
|
|
162
162
|
return index;
|
|
163
163
|
}
|
|
164
164
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppAddDialogComponent, deps: [{ token: i1.PrepareService }, { token: i2.Router }, { token: i1.SystemService }, { token: i1.TranslateService }, { token: i3.PendingChangesService }, { token: i4.LocationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
165
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AppAddDialogComponent, selector: "eo-app-add-dialog", outputs: { onClose: "onClose" }, ngImport: i0, template: "<section class=\"autocomplete\">\n <yvc-autocomplete [(ngModel)]=\"selectedNode\" \n #autocomplete\n [autocompleteValues]=\"autocompleteRes\" field=\"label\"\n [forceSelection]=\"true\"\n (suggestionSelect)=\"onSelect($event)\"\n (autocompleteFnc)=\"autocompleteFn($event)\">\n \n <ng-template let-item #chipTemplate>\n <span class=\"ui-autocomplete-token-label\" title=\"{{item.label}} ({{item.location}})\">\n <strong>{{item.label}}</strong>\n <span>{{item.location}}</span>\n </span>\n </ng-template>\n </yvc-autocomplete>\n</section>\n\n<section class=\"type-lists\">\n <section class=\"section location\" *ngIf=\"locationParent\">\n <div class=\"subhead\"><span translate>eo.add.title.location</span><span> \"{{locationParent.title}}\"</span></div>\n <div class=\"type sub\" (click)=\"addToSubfolder()\" *ngIf=\"subfolder\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_new_folder.svg'\"></eo-icon>\n <div>\n <div class=\"label\">{{'eo.add.title.location.subfolder'|translate: ({folder: subfolder.title})}}</div>\n <div class=\"group\">{{subFolderDescription}}</div>\n </div>\n </div>\n <div class=\"type\" *ngFor=\"let type of locationTypes; trackBy: trackByFn\" (click)=\"prepare(type)\">\n <eo-icon [objectType]=\"type\"></eo-icon>\n <div>\n <div class=\"label\">{{type.label}}</div>\n <div class=\"group\">{{type.group}}</div>\n </div>\n </div>\n </section>\n \n <section class=\"section general\" *ngIf=\"rootTypes.length; else noRootTypes\">\n <div class=\"subhead\"><span translate>eo.add.title.location.common</span></div>\n <div class=\"type\" *ngFor=\"let type of rootTypes; trackBy: trackByFn\"\n [ngClass]=\"{context: type.isContextFolder}\"\n (click)=\"prepare(type, true)\">\n <eo-icon [objectType]=\"type\"></eo-icon>\n <div>\n <div class=\"label\">{{type.label}}</div>\n <div class=\"group\">{{type.group}}</div>\n </div>\n </div>\n </section>\n</section>\n\n<ng-template #noRootTypes>\n <div *ngIf=\"!locationParent\">\n <span class=\"empty__root-types\" translate>eo.add.empty.root.types</span>\n </div>\n</ng-template>\n", styles: ["::ng-deep .eo-dialog-content.add--content{max-height:620px;overflow:hidden}:host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}:host ::ng-deep yvc-autocomplete{width:100%}:host ::ng-deep yvc-autocomplete input{border:0;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);box-shadow:0 2px 2px #0003;background-color:#fff;width:100%;box-sizing:border-box}:host .autocomplete{display:flex;background-color:var(--color-accent);padding:var(--app-pane-padding)}:host .type-lists{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;padding:var(--app-pane-padding) 0;overflow-y:auto}:host .type-lists .section{padding:0 var(--app-pane-padding)}:host .type-lists .section .subhead{padding:calc(var(--app-pane-padding) / 2);margin:0;font-weight:var(--font-weight-normal);color:var(--color-accent);font-size:var(--font-subhead)}:host .type-lists .section .type{display:flex;align-items:center;flex-flow:row nowrap;transition:background-color var(--app-default-transition-duration) ease-in-out;-webkit-transition:background-color var(--app-default-transition-duration) ease-in-out;-moz-transition:background-color var(--app-default-transition-duration) ease-in-out;-o-transition:background-color var(--app-default-transition-duration) ease-in-out;padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.06);cursor:pointer}:host .type-lists .section .type.context>div .label{font-weight:var(--font-weight-bold)}:host .type-lists .section .type.context eo-icon{background-color:rgba(var(--color-black-rgb),.15)}:host .type-lists .section .type.sub{padding-top:calc(var(--app-pane-padding) / 2);padding-bottom:calc(var(--app-pane-padding) / 2)}:host .type-lists .section .type.sub>div .label{font-weight:var(--font-weight-bold)}:host .type-lists .section .type eo-icon{flex:0 0 auto;width:18px;height:18px;box-sizing:content-box;padding:2px;border-radius:2px;color:var(--text-color-caption)}:host .type-lists .section .type>div{flex:1 1 auto;padding:0 var(--app-pane-padding)}:host .type-lists .section .type>div .label{color:var(--text-color-body)}:host .type-lists .section .type>div .group{color:var(--text-color-caption);font-size:var(--font-hint)}:host .type-lists .section .type:hover{background-color:var(--panel-background-grey)}:host .type-lists .empty__root-types{padding:8px}\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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i9.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
|
|
165
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AppAddDialogComponent, selector: "eo-app-add-dialog", outputs: { onClose: "onClose" }, ngImport: i0, template: "<section class=\"autocomplete\">\n <yvc-autocomplete [(ngModel)]=\"selectedNode\" \n #autocomplete\n [autocompleteValues]=\"autocompleteRes\" field=\"label\"\n [forceSelection]=\"true\"\n (suggestionSelect)=\"onSelect($event)\"\n (autocompleteFnc)=\"autocompleteFn($event)\">\n \n <ng-template let-item #chipTemplate>\n <span class=\"ui-autocomplete-token-label\" title=\"{{item.label}} ({{item.location}})\">\n <strong>{{item.label}}</strong>\n <span>{{item.location}}</span>\n </span>\n </ng-template>\n </yvc-autocomplete>\n</section>\n\n<section class=\"type-lists\">\n <section class=\"section location\" *ngIf=\"locationParent\">\n <div class=\"subhead\"><span translate>eo.add.title.location</span><span> \"{{locationParent.title}}\"</span></div>\n <div class=\"type sub\" (click)=\"addToSubfolder()\" *ngIf=\"subfolder\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_new_folder.svg'\"></eo-icon>\n <div>\n <div class=\"label\">{{'eo.add.title.location.subfolder'|translate: ({folder: subfolder.title})}}</div>\n <div class=\"group\">{{subFolderDescription}}</div>\n </div>\n </div>\n <div class=\"type\" *ngFor=\"let type of locationTypes; trackBy: trackByFn\" (click)=\"prepare(type)\">\n <eo-icon [objectType]=\"type\"></eo-icon>\n <div>\n <div class=\"label\">{{type.label}}</div>\n <div class=\"group\">{{type.group}}</div>\n </div>\n </div>\n </section>\n \n <section class=\"section general\" *ngIf=\"rootTypes.length; else noRootTypes\">\n <div class=\"subhead\"><span translate>eo.add.title.location.common</span></div>\n <div class=\"type\" *ngFor=\"let type of rootTypes; trackBy: trackByFn\"\n [ngClass]=\"{context: type.isContextFolder}\"\n (click)=\"prepare(type, true)\">\n <eo-icon [objectType]=\"type\"></eo-icon>\n <div tabindex=\"0\" (keydown.enter)=\"prepare(type, true)\">\n <div class=\"label\">{{type.label}}</div>\n <div class=\"group\">{{type.group}}</div>\n </div>\n </div>\n </section>\n</section>\n\n<ng-template #noRootTypes>\n <div *ngIf=\"!locationParent\">\n <span class=\"empty__root-types\" translate>eo.add.empty.root.types</span>\n </div>\n</ng-template>\n", styles: ["::ng-deep .eo-dialog-content.add--content{max-height:620px;overflow:hidden}:host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}:host ::ng-deep yvc-autocomplete{width:100%}:host ::ng-deep yvc-autocomplete input{border:0;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);box-shadow:0 2px 2px #0003;background-color:#fff;width:100%;box-sizing:border-box}:host .autocomplete{display:flex;background-color:var(--color-accent);padding:var(--app-pane-padding)}:host .type-lists{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;padding:var(--app-pane-padding) 0;overflow-y:auto}:host .type-lists .section{padding:0 var(--app-pane-padding)}:host .type-lists .section .subhead{padding:calc(var(--app-pane-padding) / 2);margin:0;font-weight:var(--font-weight-normal);color:var(--color-accent);font-size:var(--font-subhead)}:host .type-lists .section .type{display:flex;align-items:center;flex-flow:row nowrap;transition:background-color var(--app-default-transition-duration) ease-in-out;-webkit-transition:background-color var(--app-default-transition-duration) ease-in-out;-moz-transition:background-color var(--app-default-transition-duration) ease-in-out;-o-transition:background-color var(--app-default-transition-duration) ease-in-out;padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.06);cursor:pointer}:host .type-lists .section .type.context>div:focus{background-color:var(--panel-background-grey)}:host .type-lists .section .type.context>div .label{font-weight:var(--font-weight-bold)}:host .type-lists .section .type.context>div eo-icon{background-color:rgba(var(--color-black-rgb),.15)}:host .type-lists .section .type.sub{padding-top:calc(var(--app-pane-padding) / 2);padding-bottom:calc(var(--app-pane-padding) / 2)}:host .type-lists .section .type.sub>div .label{font-weight:var(--font-weight-bold)}:host .type-lists .section .type eo-icon{flex:0 0 auto;width:18px;height:18px;box-sizing:content-box;padding:2px;border-radius:2px;color:var(--text-color-caption)}:host .type-lists .section .type>div{flex:1 1 auto;padding:0 var(--app-pane-padding)}:host .type-lists .section .type>div:focus{background-color:var(--panel-background-grey)}:host .type-lists .section .type>div .label{color:var(--text-color-body)}:host .type-lists .section .type>div .group{color:var(--text-color-caption);font-size:var(--font-hint)}:host .type-lists .section .type:hover{background-color:var(--panel-background-grey)}:host .type-lists .empty__root-types{padding:8px}\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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i9.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
|
|
166
166
|
}
|
|
167
167
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppAddDialogComponent, decorators: [{
|
|
168
168
|
type: Component,
|
|
169
|
-
args: [{ selector: 'eo-app-add-dialog', template: "<section class=\"autocomplete\">\n <yvc-autocomplete [(ngModel)]=\"selectedNode\" \n #autocomplete\n [autocompleteValues]=\"autocompleteRes\" field=\"label\"\n [forceSelection]=\"true\"\n (suggestionSelect)=\"onSelect($event)\"\n (autocompleteFnc)=\"autocompleteFn($event)\">\n \n <ng-template let-item #chipTemplate>\n <span class=\"ui-autocomplete-token-label\" title=\"{{item.label}} ({{item.location}})\">\n <strong>{{item.label}}</strong>\n <span>{{item.location}}</span>\n </span>\n </ng-template>\n </yvc-autocomplete>\n</section>\n\n<section class=\"type-lists\">\n <section class=\"section location\" *ngIf=\"locationParent\">\n <div class=\"subhead\"><span translate>eo.add.title.location</span><span> \"{{locationParent.title}}\"</span></div>\n <div class=\"type sub\" (click)=\"addToSubfolder()\" *ngIf=\"subfolder\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_new_folder.svg'\"></eo-icon>\n <div>\n <div class=\"label\">{{'eo.add.title.location.subfolder'|translate: ({folder: subfolder.title})}}</div>\n <div class=\"group\">{{subFolderDescription}}</div>\n </div>\n </div>\n <div class=\"type\" *ngFor=\"let type of locationTypes; trackBy: trackByFn\" (click)=\"prepare(type)\">\n <eo-icon [objectType]=\"type\"></eo-icon>\n <div>\n <div class=\"label\">{{type.label}}</div>\n <div class=\"group\">{{type.group}}</div>\n </div>\n </div>\n </section>\n \n <section class=\"section general\" *ngIf=\"rootTypes.length; else noRootTypes\">\n <div class=\"subhead\"><span translate>eo.add.title.location.common</span></div>\n <div class=\"type\" *ngFor=\"let type of rootTypes; trackBy: trackByFn\"\n [ngClass]=\"{context: type.isContextFolder}\"\n (click)=\"prepare(type, true)\">\n <eo-icon [objectType]=\"type\"></eo-icon>\n <div>\n <div class=\"label\">{{type.label}}</div>\n <div class=\"group\">{{type.group}}</div>\n </div>\n </div>\n </section>\n</section>\n\n<ng-template #noRootTypes>\n <div *ngIf=\"!locationParent\">\n <span class=\"empty__root-types\" translate>eo.add.empty.root.types</span>\n </div>\n</ng-template>\n", styles: ["::ng-deep .eo-dialog-content.add--content{max-height:620px;overflow:hidden}:host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}:host ::ng-deep yvc-autocomplete{width:100%}:host ::ng-deep yvc-autocomplete input{border:0;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);box-shadow:0 2px 2px #0003;background-color:#fff;width:100%;box-sizing:border-box}:host .autocomplete{display:flex;background-color:var(--color-accent);padding:var(--app-pane-padding)}:host .type-lists{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;padding:var(--app-pane-padding) 0;overflow-y:auto}:host .type-lists .section{padding:0 var(--app-pane-padding)}:host .type-lists .section .subhead{padding:calc(var(--app-pane-padding) / 2);margin:0;font-weight:var(--font-weight-normal);color:var(--color-accent);font-size:var(--font-subhead)}:host .type-lists .section .type{display:flex;align-items:center;flex-flow:row nowrap;transition:background-color var(--app-default-transition-duration) ease-in-out;-webkit-transition:background-color var(--app-default-transition-duration) ease-in-out;-moz-transition:background-color var(--app-default-transition-duration) ease-in-out;-o-transition:background-color var(--app-default-transition-duration) ease-in-out;padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.06);cursor:pointer}:host .type-lists .section .type.context>div .label{font-weight:var(--font-weight-bold)}:host .type-lists .section .type.context eo-icon{background-color:rgba(var(--color-black-rgb),.15)}:host .type-lists .section .type.sub{padding-top:calc(var(--app-pane-padding) / 2);padding-bottom:calc(var(--app-pane-padding) / 2)}:host .type-lists .section .type.sub>div .label{font-weight:var(--font-weight-bold)}:host .type-lists .section .type eo-icon{flex:0 0 auto;width:18px;height:18px;box-sizing:content-box;padding:2px;border-radius:2px;color:var(--text-color-caption)}:host .type-lists .section .type>div{flex:1 1 auto;padding:0 var(--app-pane-padding)}:host .type-lists .section .type>div .label{color:var(--text-color-body)}:host .type-lists .section .type>div .group{color:var(--text-color-caption);font-size:var(--font-hint)}:host .type-lists .section .type:hover{background-color:var(--panel-background-grey)}:host .type-lists .empty__root-types{padding:8px}\n"] }]
|
|
169
|
+
args: [{ selector: 'eo-app-add-dialog', template: "<section class=\"autocomplete\">\n <yvc-autocomplete [(ngModel)]=\"selectedNode\" \n #autocomplete\n [autocompleteValues]=\"autocompleteRes\" field=\"label\"\n [forceSelection]=\"true\"\n (suggestionSelect)=\"onSelect($event)\"\n (autocompleteFnc)=\"autocompleteFn($event)\">\n \n <ng-template let-item #chipTemplate>\n <span class=\"ui-autocomplete-token-label\" title=\"{{item.label}} ({{item.location}})\">\n <strong>{{item.label}}</strong>\n <span>{{item.location}}</span>\n </span>\n </ng-template>\n </yvc-autocomplete>\n</section>\n\n<section class=\"type-lists\">\n <section class=\"section location\" *ngIf=\"locationParent\">\n <div class=\"subhead\"><span translate>eo.add.title.location</span><span> \"{{locationParent.title}}\"</span></div>\n <div class=\"type sub\" (click)=\"addToSubfolder()\" *ngIf=\"subfolder\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_new_folder.svg'\"></eo-icon>\n <div>\n <div class=\"label\">{{'eo.add.title.location.subfolder'|translate: ({folder: subfolder.title})}}</div>\n <div class=\"group\">{{subFolderDescription}}</div>\n </div>\n </div>\n <div class=\"type\" *ngFor=\"let type of locationTypes; trackBy: trackByFn\" (click)=\"prepare(type)\">\n <eo-icon [objectType]=\"type\"></eo-icon>\n <div>\n <div class=\"label\">{{type.label}}</div>\n <div class=\"group\">{{type.group}}</div>\n </div>\n </div>\n </section>\n \n <section class=\"section general\" *ngIf=\"rootTypes.length; else noRootTypes\">\n <div class=\"subhead\"><span translate>eo.add.title.location.common</span></div>\n <div class=\"type\" *ngFor=\"let type of rootTypes; trackBy: trackByFn\"\n [ngClass]=\"{context: type.isContextFolder}\"\n (click)=\"prepare(type, true)\">\n <eo-icon [objectType]=\"type\"></eo-icon>\n <div tabindex=\"0\" (keydown.enter)=\"prepare(type, true)\">\n <div class=\"label\">{{type.label}}</div>\n <div class=\"group\">{{type.group}}</div>\n </div>\n </div>\n </section>\n</section>\n\n<ng-template #noRootTypes>\n <div *ngIf=\"!locationParent\">\n <span class=\"empty__root-types\" translate>eo.add.empty.root.types</span>\n </div>\n</ng-template>\n", styles: ["::ng-deep .eo-dialog-content.add--content{max-height:620px;overflow:hidden}:host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}:host ::ng-deep yvc-autocomplete{width:100%}:host ::ng-deep yvc-autocomplete input{border:0;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);box-shadow:0 2px 2px #0003;background-color:#fff;width:100%;box-sizing:border-box}:host .autocomplete{display:flex;background-color:var(--color-accent);padding:var(--app-pane-padding)}:host .type-lists{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;padding:var(--app-pane-padding) 0;overflow-y:auto}:host .type-lists .section{padding:0 var(--app-pane-padding)}:host .type-lists .section .subhead{padding:calc(var(--app-pane-padding) / 2);margin:0;font-weight:var(--font-weight-normal);color:var(--color-accent);font-size:var(--font-subhead)}:host .type-lists .section .type{display:flex;align-items:center;flex-flow:row nowrap;transition:background-color var(--app-default-transition-duration) ease-in-out;-webkit-transition:background-color var(--app-default-transition-duration) ease-in-out;-moz-transition:background-color var(--app-default-transition-duration) ease-in-out;-o-transition:background-color var(--app-default-transition-duration) ease-in-out;padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.06);cursor:pointer}:host .type-lists .section .type.context>div:focus{background-color:var(--panel-background-grey)}:host .type-lists .section .type.context>div .label{font-weight:var(--font-weight-bold)}:host .type-lists .section .type.context>div eo-icon{background-color:rgba(var(--color-black-rgb),.15)}:host .type-lists .section .type.sub{padding-top:calc(var(--app-pane-padding) / 2);padding-bottom:calc(var(--app-pane-padding) / 2)}:host .type-lists .section .type.sub>div .label{font-weight:var(--font-weight-bold)}:host .type-lists .section .type eo-icon{flex:0 0 auto;width:18px;height:18px;box-sizing:content-box;padding:2px;border-radius:2px;color:var(--text-color-caption)}:host .type-lists .section .type>div{flex:1 1 auto;padding:0 var(--app-pane-padding)}:host .type-lists .section .type>div:focus{background-color:var(--panel-background-grey)}:host .type-lists .section .type>div .label{color:var(--text-color-body)}:host .type-lists .section .type>div .group{color:var(--text-color-caption);font-size:var(--font-hint)}:host .type-lists .section .type:hover{background-color:var(--panel-background-grey)}:host .type-lists .empty__root-types{padding:8px}\n"] }]
|
|
170
170
|
}], ctorParameters: () => [{ type: i1.PrepareService }, { type: i2.Router }, { type: i1.SystemService }, { type: i1.TranslateService }, { type: i3.PendingChangesService }, { type: i4.LocationService }], propDecorators: { onClose: [{
|
|
171
171
|
type: Output
|
|
172
172
|
}] } });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWFkZC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYXBwLXNoZWxsL2FwcC1iYXIvYXBwLWFkZC9hcHAtYWRkLWRpYWxvZy9hcHAtYWRkLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hcHAtc2hlbGwvYXBwLWJhci9hcHAtYWRkL2FwcC1hZGQtZGlhbG9nL2FwcC1hZGQtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUMsU0FBUyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSWpGLE9BQU8sRUFBYSxLQUFLLEVBQWdDLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7OztBQVE5RSxNQUFNLE9BQU8scUJBQXFCO0lBY2hDLFlBQW9CLGNBQThCLEVBQzlCLE1BQWMsRUFDZCxhQUE0QixFQUM1QixTQUEyQixFQUMzQixjQUFxQyxFQUNyQyxlQUFnQztRQUxoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFqQjFDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZDLGNBQVMsR0FBaUIsRUFBRSxDQUFDO1FBQzdCLGtCQUFhLEdBQWlCLEVBQUUsQ0FBQztJQWVqQyxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQWdCLEVBQUUsVUFBVSxH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QUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWU7YUFDbkUsU0FBUyxDQUFDLENBQUMsR0FBZSxFQUFFLEVBQUU7WUFDN0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQzFCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0FoTFUscUJBQXFCO2tHQUFyQixxQkFBcUIsMEZDZGxDLGt0RUF1REE7OzJGRHpDYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO3FPQU1uQixPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4vLi4vLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7bWVyZ2VNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgT3V0cHV0LCBFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0VvTG9jYXRpb24sIExvY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvbG9jYXRpb24vbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQge09iamVjdFR5cGUsIFV0aWxzLCBQcmVwYXJlU2VydmljZSwgU3lzdGVtU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYXBwLWFkZC1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLWFkZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHAtYWRkLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFwcEFkZERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAT3V0cHV0KCkgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICByb290VHlwZXM6IE9iamVjdFR5cGVbXSA9IFtdO1xuICBsb2NhdGlvblR5cGVzOiBPYmplY3RUeXBlW10gPSBbXTtcbiAgbG9jYXRpb25QYXJlbnQ6IGFueTtcbiAgcHJpdmF0ZSBhY3RpdmVMb2NhdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBzdWJmb2xkZXI6IGFueTtcbiAgc3ViRm9sZGVyRGVzY3JpcHRpb246IHN0cmluZztcbiAgYXV0b2NvbXBsZXRlTGlzdDogYW55O1xuICBhdXRvY29tcGxldGVSZXM6IGFueTtcbiAgc2VsZWN0ZWROb2RlOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwcmVwYXJlU2VydmljZTogUHJlcGFyZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsb2NhdGlvblNlcnZpY2U6IExvY2F0aW9uU2VydmljZSkge1xuICB9XG5cbiAgcHVibGljIHByZXBhcmUodHlwZTogT2JqZWN0VHlwZSwgaXNSb290VHlwZSA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgcGlkID0gbnVsbDtcbiAgICBpZiAoIWlzUm9vdFR5cGUgJiYgdGhpcy5sb2NhdGlvblBhcmVudCkge1xuICAgICAgcGlkID0gdGhpcy5sb2NhdGlvblBhcmVudC5pZDtcbiAgICB9XG5cbiAgICB0aGlzLnByZXBhcmVTZXJ2aWNlXG4gICAgICAuY3JlYXRlUHJlcGFyZWRJdGVtKHBpZCwgdHlwZS5uYW1lKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL3ByZXBhcmUnKTtcbiAgICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYWRkLnByZXBhcmUuZmFpbC50aXRsZScpLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5hZGQucHJlcGFyZS5mYWlsLm1zZycpKVxuICAgICAgKTtcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGF1dG9jb21wbGV0ZUZuKHRlcm06IHN0cmluZyl7XG4gICAgdGhpcy5hdXRvY29tcGxldGVSZXMgPSB0aGlzLmF1dG9jb21wbGV0ZUxpc3QuZmlsdGVyKHR5cGUgPT4ge1xuICAgICAgcmV0dXJuIHR5cGUubGFiZWwudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRlcm0udG9Mb3dlckNhc2UoKSkgIT0gLTE7XG4gICAgfSlcbiAgfVxuXG4gIG9uU2VsZWN0KG5vZGUpIHtcbiAgICBpZihub2RlLmlzU3ViZm9sZGVyKXtcbiAgICAgIHRoaXMuYWRkVG9TdWJmb2xkZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmVwYXJlKG5vZGUudHlwZSwgbm9kZS5pc1Jvb3RUeXBlKTtcbiAgICB9XG4gIH1cblxuICBwcmVwYXJlZEl0ZW1EYXRhKHBheWxvYWQpIHtcbiAgICBjb25zdCB0eXBlRWxlbWVudCA9IHRoaXMuc3lzdGVtU2VydmljZVxuICAgICAgLmdldE9iamVjdFR5cGUodGhpcy5zdWJmb2xkZXIudHlwZSlcbiAgICAgIC5lbGVtZW50c1xuICAgICAgLmZpbHRlcih2YWwgPT4gdGhpcy5zdWJmb2xkZXIuZGF0YSA/IHZhbC5uYW1lID09PSBPYmplY3Qua2V5cyh0aGlzLnN1YmZvbGRlci5kYXRhKVswXSA6IG51bGwpO1xuXG4gICAgaWYgKHR5cGVFbGVtZW50Lmxlbmd0aCAmJiB0eXBlRWxlbWVudFswXS5tdWx0aXNlbGVjdCkge1xuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZCkubWFwKChba2V5LCB2YWx1ZV0pID0+IHBheWxvYWRba2V5XSA9IFt2YWx1ZV0pO1xuICAgIH1cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfVxuXG4gIGFkZFRvU3ViZm9sZGVyKCkge1xuICAgIGlmICh0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHBpZCA9IHRoaXMubG9jYXRpb25QYXJlbnQuaWQ7XG4gICAgY29uc3Qge2RhdGEsIHR5cGV9ID0gdGhpcy5zdWJmb2xkZXI7XG4gICAgY29uc3QgcGF5bG9hZCA9IHRoaXMucHJlcGFyZWRJdGVtRGF0YShkYXRhKTtcblxuICAgIHRoaXMucHJlcGFyZVNlcnZpY2VcbiAgICAgIC5jcmVhdGVQcmVwYXJlZEl0ZW0ocGlkLCB0eXBlID8gdHlwZSA6IG51bGwpXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2VNYXAocmVzID0+IHRoaXMucHJlcGFyZVNlcnZpY2UudXBkYXRlUHJlcGFyZWRJdGVtSW5kZXhEYXRhKHJlcy5pZCwgcGF5bG9hZCkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL3ByZXBhcmUnKTtcbiAgICAgIH0sIFV0aWxzLnRocm93KG51bGwsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmFkZC5wcmVwYXJlLmZhaWwudGl0bGUnKSwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYWRkLnByZXBhcmUuZmFpbC5tc2cnKSkpO1xuICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoUm9vdFR5cGVzKCkge1xuICAgIHRoaXMucHJlcGFyZVNlcnZpY2VcbiAgICAgIC5nZXRQcmVwYXJlUm9vdFR5cGVzKClcbiAgICAgIC5zdWJzY3JpYmUoKHR5cGVzKSA9PiB7XG4gICAgICAgIHRoaXMucm9vdFR5cGVzID0gdGhpcy5zb3J0VHlwZXModHlwZXMpO1xuICAgICAgICB0aGlzLmNyZWF0ZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBdXRvY29tcGxldGVMaXN0KCkge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlTGlzdCA9IHRoaXMucm9vdFR5cGVzLm1hcCh0eXBlID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxhYmVsOiB0eXBlLmxhYmVsLFxuICAgICAgICBsb2NhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYWRkLnRpdGxlLmxvY2F0aW9uLmNvbW1vbicpLFxuICAgICAgICBpc1Jvb3RUeXBlOiB0cnVlLFxuICAgICAgICBpc1N1YmZvbGRlcjogZmFsc2UsXG4gICAgICAgIHR5cGVcbiAgICAgIH07XG4gICAgfSkuY29uY2F0KHRoaXMubG9jYXRpb25UeXBlcy5tYXAodHlwZSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYWJlbDogdHlwZS5sYWJlbCxcbiAgICAgICAgbG9jYXRpb246IGAke3RoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmFkZC50aXRsZS5sb2NhdGlvbicpfSAke3RoaXMubG9jYXRpb25QYXJlbnQudGl0bGV9YCxcbiAgICAgICAgaXNSb290VHlwZTogZmFsc2UsXG4gICAgICAgIGlzU3ViZm9sZGVyOiBmYWxzZSxcbiAgICAgICAgdHlwZVxuICAgICAgfTtcbiAgICB9KSk7XG4gICAgaWYodGhpcy5zdWJmb2xkZXIpIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlTGlzdC5wdXNoKHtcbiAgICAgICAgbGFiZWw6IHRoaXMuc3ViZm9sZGVyLnRpdGxlLFxuICAgICAgICBsb2NhdGlvbjogYCR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYWRkLnRpdGxlLmxvY2F0aW9uJyl9ICR7dGhpcy5sb2NhdGlvblBhcmVudC50aXRsZX1gLFxuICAgICAgICBpc1Jvb3RUeXBlOiBmYWxzZSxcbiAgICAgICAgaXNTdWJmb2xkZXI6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNvcnRUeXBlcyh0eXBlcykge1xuICAgIHJldHVybiB0eXBlcy5zb3J0KChhLCBiKSA9PiB7XG5cbiAgICAgIGlmIChhLmlzQ29udGV4dEZvbGRlciAmJiAhYi5pc0NvbnRleHRGb2xkZXIpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgaWYgKCFhLmlzQ29udGV4dEZvbGRlciAmJiBiLmlzQ29udGV4dEZvbGRlcikge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBVdGlscy5zb3J0VmFsdWVzKCdsYWJlbCcpLmNhbGwodGhpcywgYSwgYik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoQWxsb3dlZENoaWxkVHlwZXMobG9jOiBFb0xvY2F0aW9uKSB7XG4gICAgdGhpcy5wcmVwYXJlU2VydmljZVxuICAgICAgLmdldFByZXBhcmVDaGlsZFR5cGVzKGxvYy5pZClcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICBjb25zdCB7dHlwZXMsIHBhcmVudH0gPSByZXM7XG4gICAgICAgIHRoaXMubG9jYXRpb25QYXJlbnQgPSBVdGlscy50cnVuY2F0ZVN0cmluZyhwYXJlbnQsIDMwKTtcbiAgICAgICAgdGhpcy5sb2NhdGlvblR5cGVzID0gdGhpcy5zb3J0VHlwZXModHlwZXMpO1xuICAgICAgICB0aGlzLmxvY2F0aW9uUGFyZW50LnRpdGxlID0gVXRpbHMudHJ1bmNhdGVTdHJpbmcocGFyZW50Wyd0aXRsZSddLCAzMCk7XG4gICAgICAgIGlmIChsb2Muc3ViRm9sZGVyICYmIHRoaXMuaXNTdWJGb2xkZXJBbGxvd2VkKGxvYy5zdWJGb2xkZXIsIHRoaXMubG9jYXRpb25UeXBlcykpIHtcbiAgICAgICAgICB0aGlzLnN1YmZvbGRlciA9IGxvYy5zdWJGb2xkZXI7XG4gICAgICAgICAgdGhpcy5zdWJGb2xkZXJEZXNjcmlwdGlvbiA9IGxvYy50aXRsZSArICc7ICcgKyB0aGlzLnN1YmZvbGRlci50aXRsZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNyZWF0ZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgaXNTdWJGb2xkZXJBbGxvd2VkKHN1YkZvbGRlcjogYW55LCBsb2NhdGlvblR5cGVzOiBPYmplY3RUeXBlW10pIHtcbiAgICByZXR1cm4gISFsb2NhdGlvblR5cGVzLmZpbmQobHQgPT4gdGhpcy5zeXN0ZW1TZXJ2aWNlLmltcGxlbWVudHNUeXBlKGx0LCBzdWJGb2xkZXIudHlwZSkpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mZXRjaFJvb3RUeXBlcygpO1xuICAgIHRoaXMuYWN0aXZlTG9jYXRpb25TdWJzY3JpcHRpb24gPSB0aGlzLmxvY2F0aW9uU2VydmljZS5hY3RpdmVMb2NhdGlvbiRcbiAgICAgIC5zdWJzY3JpYmUoKGxvYzogRW9Mb2NhdGlvbikgPT4ge1xuICAgICAgICBpZiAobG9jKSB7XG4gICAgICAgICAgdGhpcy5mZXRjaEFsbG93ZWRDaGlsZFR5cGVzKGxvYyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2NhdGlvblR5cGVzID0gW107XG4gICAgICAgICAgdGhpcy5sb2NhdGlvblBhcmVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlTG9jYXRpb25TdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuYWN0aXZlTG9jYXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cImF1dG9jb21wbGV0ZVwiPlxuICA8eXZjLWF1dG9jb21wbGV0ZSBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZVwiIFxuICAjYXV0b2NvbXBsZXRlXG4gICAgW2F1dG9jb21wbGV0ZVZhbHVlc109XCJhdXRvY29tcGxldGVSZXNcIiBmaWVsZD1cImxhYmVsXCJcbiAgICBbZm9yY2VTZWxlY3Rpb25dPVwidHJ1ZVwiXG4gICAgKHN1Z2dlc3Rpb25TZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXG4gICAgKGF1dG9jb21wbGV0ZUZuYyk9XCJhdXRvY29tcGxldGVGbigkZXZlbnQpXCI+XG4gICAgXG4gICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtICNjaGlwVGVtcGxhdGU+XG4gICAgICA8c3BhbiBjbGFzcz1cInVpLWF1dG9jb21wbGV0ZS10b2tlbi1sYWJlbFwiIHRpdGxlPVwie3tpdGVtLmxhYmVsfX0gKHt7aXRlbS5sb2NhdGlvbn19KVwiPlxuICAgICAgICA8c3Ryb25nPnt7aXRlbS5sYWJlbH19PC9zdHJvbmc+XG4gICAgICAgIDxzcGFuPnt7aXRlbS5sb2NhdGlvbn19PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwveXZjLWF1dG9jb21wbGV0ZT5cbjwvc2VjdGlvbj5cblxuPHNlY3Rpb24gY2xhc3M9XCJ0eXBlLWxpc3RzXCI+XG4gIDxzZWN0aW9uIGNsYXNzPVwic2VjdGlvbiBsb2NhdGlvblwiICpuZ0lmPVwibG9jYXRpb25QYXJlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3ViaGVhZFwiPjxzcGFuIHRyYW5zbGF0ZT5lby5hZGQudGl0bGUubG9jYXRpb248L3NwYW4+PHNwYW4+IFwie3tsb2NhdGlvblBhcmVudC50aXRsZX19XCI8L3NwYW4+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInR5cGUgc3ViXCIgKGNsaWNrKT1cImFkZFRvU3ViZm9sZGVyKClcIiAqbmdJZj1cInN1YmZvbGRlclwiPlxuICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY3JlYXRlX25ld19mb2xkZXIuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPnt7J2VvLmFkZC50aXRsZS5sb2NhdGlvbi5zdWJmb2xkZXInfHRyYW5zbGF0ZTogKHtmb2xkZXI6IHN1YmZvbGRlci50aXRsZX0pfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwXCI+e3tzdWJGb2xkZXJEZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidHlwZVwiICpuZ0Zvcj1cImxldCB0eXBlIG9mIGxvY2F0aW9uVHlwZXM7IHRyYWNrQnk6IHRyYWNrQnlGblwiIChjbGljayk9XCJwcmVwYXJlKHR5cGUpXCI+XG4gICAgICA8ZW8taWNvbiBbb2JqZWN0VHlwZV09XCJ0eXBlXCI+PC9lby1pY29uPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+e3t0eXBlLmxhYmVsfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwXCI+e3t0eXBlLmdyb3VwfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG4gIFxuICA8c2VjdGlvbiBjbGFzcz1cInNlY3Rpb24gZ2VuZXJhbFwiICpuZ0lmPVwicm9vdFR5cGVzLmxlbmd0aDsgZWxzZSBub1Jvb3RUeXBlc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzdWJoZWFkXCI+PHNwYW4gdHJhbnNsYXRlPmVvLmFkZC50aXRsZS5sb2NhdGlvbi5jb21tb248L3NwYW4+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidHlwZVwiICpuZ0Zvcj1cImxldCB0eXBlIG9mIHJvb3RUeXBlczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwie2NvbnRleHQ6IHR5cGUuaXNDb250ZXh0Rm9sZGVyfVwiXG4gICAgICAgICAgIChjbGljayk9XCJwcmVwYXJlKHR5cGUsIHRydWUpXCI+XG4gICAgICAgIDxlby1pY29uIFtvYmplY3RUeXBlXT1cInR5cGVcIj48L2VvLWljb24+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+e3t0eXBlLmxhYmVsfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBcIj57e3R5cGUuZ3JvdXB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG48L3NlY3Rpb24+XG5cbjxuZy10ZW1wbGF0ZSAjbm9Sb290VHlwZXM+XG4gIDxkaXYgKm5nSWY9XCIhbG9jYXRpb25QYXJlbnRcIj5cbiAgICA8c3BhbiBjbGFzcz1cImVtcHR5X19yb290LXR5cGVzXCIgdHJhbnNsYXRlPmVvLmFkZC5lbXB0eS5yb290LnR5cGVzPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWFkZC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYXBwLXNoZWxsL2FwcC1iYXIvYXBwLWFkZC9hcHAtYWRkLWRpYWxvZy9hcHAtYWRkLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hcHAtc2hlbGwvYXBwLWJhci9hcHAtYWRkL2FwcC1hZGQtZGlhbG9nL2FwcC1hZGQtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUMsU0FBUyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSWpGLE9BQU8sRUFBYSxLQUFLLEVBQWdDLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7OztBQVE5RSxNQUFNLE9BQU8scUJBQXFCO0lBY2hDLFlBQW9CLGNBQThCLEVBQzlCLE1BQWMsRUFDZCxhQUE0QixFQUM1QixTQUEyQixFQUMzQixjQUFxQyxFQUNyQyxlQUFnQztRQUxoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFqQjFDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZDLGNBQVMsR0FBaUIsRUFBRSxDQUFDO1FBQzdCLGtCQUFhLEdBQWlCLEVBQUUsQ0FBQztJQWVqQyxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQWdCLEVBQUUsVUFBVSxH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QUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWU7YUFDbkUsU0FBUyxDQUFDLENBQUMsR0FBZSxFQUFFLEVBQUU7WUFDN0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQzFCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0FoTFUscUJBQXFCO2tHQUFyQixxQkFBcUIsMEZDZGxDLHl3RUF1REE7OzJGRHpDYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO3FPQU1uQixPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4vLi4vLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7bWVyZ2VNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgT3V0cHV0LCBFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0VvTG9jYXRpb24sIExvY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvbG9jYXRpb24vbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQge09iamVjdFR5cGUsIFV0aWxzLCBQcmVwYXJlU2VydmljZSwgU3lzdGVtU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYXBwLWFkZC1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLWFkZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHAtYWRkLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFwcEFkZERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAT3V0cHV0KCkgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICByb290VHlwZXM6IE9iamVjdFR5cGVbXSA9IFtdO1xuICBsb2NhdGlvblR5cGVzOiBPYmplY3RUeXBlW10gPSBbXTtcbiAgbG9jYXRpb25QYXJlbnQ6IGFueTtcbiAgcHJpdmF0ZSBhY3RpdmVMb2NhdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBzdWJmb2xkZXI6IGFueTtcbiAgc3ViRm9sZGVyRGVzY3JpcHRpb246IHN0cmluZztcbiAgYXV0b2NvbXBsZXRlTGlzdDogYW55O1xuICBhdXRvY29tcGxldGVSZXM6IGFueTtcbiAgc2VsZWN0ZWROb2RlOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwcmVwYXJlU2VydmljZTogUHJlcGFyZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsb2NhdGlvblNlcnZpY2U6IExvY2F0aW9uU2VydmljZSkge1xuICB9XG5cbiAgcHVibGljIHByZXBhcmUodHlwZTogT2JqZWN0VHlwZSwgaXNSb290VHlwZSA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgcGlkID0gbnVsbDtcbiAgICBpZiAoIWlzUm9vdFR5cGUgJiYgdGhpcy5sb2NhdGlvblBhcmVudCkge1xuICAgICAgcGlkID0gdGhpcy5sb2NhdGlvblBhcmVudC5pZDtcbiAgICB9XG5cbiAgICB0aGlzLnByZXBhcmVTZXJ2aWNlXG4gICAgICAuY3JlYXRlUHJlcGFyZWRJdGVtKHBpZCwgdHlwZS5uYW1lKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL3ByZXBhcmUnKTtcbiAgICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYWRkLnByZXBhcmUuZmFpbC50aXRsZScpLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5hZGQucHJlcGFyZS5mYWlsLm1zZycpKVxuICAgICAgKTtcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGF1dG9jb21wbGV0ZUZuKHRlcm06IHN0cmluZyl7XG4gICAgdGhpcy5hdXRvY29tcGxldGVSZXMgPSB0aGlzLmF1dG9jb21wbGV0ZUxpc3QuZmlsdGVyKHR5cGUgPT4ge1xuICAgICAgcmV0dXJuIHR5cGUubGFiZWwudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRlcm0udG9Mb3dlckNhc2UoKSkgIT0gLTE7XG4gICAgfSlcbiAgfVxuXG4gIG9uU2VsZWN0KG5vZGUpIHtcbiAgICBpZihub2RlLmlzU3ViZm9sZGVyKXtcbiAgICAgIHRoaXMuYWRkVG9TdWJmb2xkZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmVwYXJlKG5vZGUudHlwZSwgbm9kZS5pc1Jvb3RUeXBlKTtcbiAgICB9XG4gIH1cblxuICBwcmVwYXJlZEl0ZW1EYXRhKHBheWxvYWQpIHtcbiAgICBjb25zdCB0eXBlRWxlbWVudCA9IHRoaXMuc3lzdGVtU2VydmljZVxuICAgICAgLmdldE9iamVjdFR5cGUodGhpcy5zdWJmb2xkZXIudHlwZSlcbiAgICAgIC5lbGVtZW50c1xuICAgICAgLmZpbHRlcih2YWwgPT4gdGhpcy5zdWJmb2xkZXIuZGF0YSA/IHZhbC5uYW1lID09PSBPYmplY3Qua2V5cyh0aGlzLnN1YmZvbGRlci5kYXRhKVswXSA6IG51bGwpO1xuXG4gICAgaWYgKHR5cGVFbGVtZW50Lmxlbmd0aCAmJiB0eXBlRWxlbWVudFswXS5tdWx0aXNlbGVjdCkge1xuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZCkubWFwKChba2V5LCB2YWx1ZV0pID0+IHBheWxvYWRba2V5XSA9IFt2YWx1ZV0pO1xuICAgIH1cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfVxuXG4gIGFkZFRvU3ViZm9sZGVyKCkge1xuICAgIGlmICh0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHBpZCA9IHRoaXMubG9jYXRpb25QYXJlbnQuaWQ7XG4gICAgY29uc3Qge2RhdGEsIHR5cGV9ID0gdGhpcy5zdWJmb2xkZXI7XG4gICAgY29uc3QgcGF5bG9hZCA9IHRoaXMucHJlcGFyZWRJdGVtRGF0YShkYXRhKTtcblxuICAgIHRoaXMucHJlcGFyZVNlcnZpY2VcbiAgICAgIC5jcmVhdGVQcmVwYXJlZEl0ZW0ocGlkLCB0eXBlID8gdHlwZSA6IG51bGwpXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2VNYXAocmVzID0+IHRoaXMucHJlcGFyZVNlcnZpY2UudXBkYXRlUHJlcGFyZWRJdGVtSW5kZXhEYXRhKHJlcy5pZCwgcGF5bG9hZCkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL3ByZXBhcmUnKTtcbiAgICAgIH0sIFV0aWxzLnRocm93KG51bGwsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmFkZC5wcmVwYXJlLmZhaWwudGl0bGUnKSwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYWRkLnByZXBhcmUuZmFpbC5tc2cnKSkpO1xuICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoUm9vdFR5cGVzKCkge1xuICAgIHRoaXMucHJlcGFyZVNlcnZpY2VcbiAgICAgIC5nZXRQcmVwYXJlUm9vdFR5cGVzKClcbiAgICAgIC5zdWJzY3JpYmUoKHR5cGVzKSA9PiB7XG4gICAgICAgIHRoaXMucm9vdFR5cGVzID0gdGhpcy5zb3J0VHlwZXModHlwZXMpO1xuICAgICAgICB0aGlzLmNyZWF0ZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBdXRvY29tcGxldGVMaXN0KCkge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlTGlzdCA9IHRoaXMucm9vdFR5cGVzLm1hcCh0eXBlID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxhYmVsOiB0eXBlLmxhYmVsLFxuICAgICAgICBsb2NhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYWRkLnRpdGxlLmxvY2F0aW9uLmNvbW1vbicpLFxuICAgICAgICBpc1Jvb3RUeXBlOiB0cnVlLFxuICAgICAgICBpc1N1YmZvbGRlcjogZmFsc2UsXG4gICAgICAgIHR5cGVcbiAgICAgIH07XG4gICAgfSkuY29uY2F0KHRoaXMubG9jYXRpb25UeXBlcy5tYXAodHlwZSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYWJlbDogdHlwZS5sYWJlbCxcbiAgICAgICAgbG9jYXRpb246IGAke3RoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmFkZC50aXRsZS5sb2NhdGlvbicpfSAke3RoaXMubG9jYXRpb25QYXJlbnQudGl0bGV9YCxcbiAgICAgICAgaXNSb290VHlwZTogZmFsc2UsXG4gICAgICAgIGlzU3ViZm9sZGVyOiBmYWxzZSxcbiAgICAgICAgdHlwZVxuICAgICAgfTtcbiAgICB9KSk7XG4gICAgaWYodGhpcy5zdWJmb2xkZXIpIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlTGlzdC5wdXNoKHtcbiAgICAgICAgbGFiZWw6IHRoaXMuc3ViZm9sZGVyLnRpdGxlLFxuICAgICAgICBsb2NhdGlvbjogYCR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYWRkLnRpdGxlLmxvY2F0aW9uJyl9ICR7dGhpcy5sb2NhdGlvblBhcmVudC50aXRsZX1gLFxuICAgICAgICBpc1Jvb3RUeXBlOiBmYWxzZSxcbiAgICAgICAgaXNTdWJmb2xkZXI6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNvcnRUeXBlcyh0eXBlcykge1xuICAgIHJldHVybiB0eXBlcy5zb3J0KChhLCBiKSA9PiB7XG5cbiAgICAgIGlmIChhLmlzQ29udGV4dEZvbGRlciAmJiAhYi5pc0NvbnRleHRGb2xkZXIpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgaWYgKCFhLmlzQ29udGV4dEZvbGRlciAmJiBiLmlzQ29udGV4dEZvbGRlcikge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBVdGlscy5zb3J0VmFsdWVzKCdsYWJlbCcpLmNhbGwodGhpcywgYSwgYik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoQWxsb3dlZENoaWxkVHlwZXMobG9jOiBFb0xvY2F0aW9uKSB7XG4gICAgdGhpcy5wcmVwYXJlU2VydmljZVxuICAgICAgLmdldFByZXBhcmVDaGlsZFR5cGVzKGxvYy5pZClcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICBjb25zdCB7dHlwZXMsIHBhcmVudH0gPSByZXM7XG4gICAgICAgIHRoaXMubG9jYXRpb25QYXJlbnQgPSBVdGlscy50cnVuY2F0ZVN0cmluZyhwYXJlbnQsIDMwKTtcbiAgICAgICAgdGhpcy5sb2NhdGlvblR5cGVzID0gdGhpcy5zb3J0VHlwZXModHlwZXMpO1xuICAgICAgICB0aGlzLmxvY2F0aW9uUGFyZW50LnRpdGxlID0gVXRpbHMudHJ1bmNhdGVTdHJpbmcocGFyZW50Wyd0aXRsZSddLCAzMCk7XG4gICAgICAgIGlmIChsb2Muc3ViRm9sZGVyICYmIHRoaXMuaXNTdWJGb2xkZXJBbGxvd2VkKGxvYy5zdWJGb2xkZXIsIHRoaXMubG9jYXRpb25UeXBlcykpIHtcbiAgICAgICAgICB0aGlzLnN1YmZvbGRlciA9IGxvYy5zdWJGb2xkZXI7XG4gICAgICAgICAgdGhpcy5zdWJGb2xkZXJEZXNjcmlwdGlvbiA9IGxvYy50aXRsZSArICc7ICcgKyB0aGlzLnN1YmZvbGRlci50aXRsZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNyZWF0ZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgaXNTdWJGb2xkZXJBbGxvd2VkKHN1YkZvbGRlcjogYW55LCBsb2NhdGlvblR5cGVzOiBPYmplY3RUeXBlW10pIHtcbiAgICByZXR1cm4gISFsb2NhdGlvblR5cGVzLmZpbmQobHQgPT4gdGhpcy5zeXN0ZW1TZXJ2aWNlLmltcGxlbWVudHNUeXBlKGx0LCBzdWJGb2xkZXIudHlwZSkpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mZXRjaFJvb3RUeXBlcygpO1xuICAgIHRoaXMuYWN0aXZlTG9jYXRpb25TdWJzY3JpcHRpb24gPSB0aGlzLmxvY2F0aW9uU2VydmljZS5hY3RpdmVMb2NhdGlvbiRcbiAgICAgIC5zdWJzY3JpYmUoKGxvYzogRW9Mb2NhdGlvbikgPT4ge1xuICAgICAgICBpZiAobG9jKSB7XG4gICAgICAgICAgdGhpcy5mZXRjaEFsbG93ZWRDaGlsZFR5cGVzKGxvYyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2NhdGlvblR5cGVzID0gW107XG4gICAgICAgICAgdGhpcy5sb2NhdGlvblBhcmVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlTG9jYXRpb25TdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuYWN0aXZlTG9jYXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cImF1dG9jb21wbGV0ZVwiPlxuICA8eXZjLWF1dG9jb21wbGV0ZSBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZVwiIFxuICAjYXV0b2NvbXBsZXRlXG4gICAgW2F1dG9jb21wbGV0ZVZhbHVlc109XCJhdXRvY29tcGxldGVSZXNcIiBmaWVsZD1cImxhYmVsXCJcbiAgICBbZm9yY2VTZWxlY3Rpb25dPVwidHJ1ZVwiXG4gICAgKHN1Z2dlc3Rpb25TZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXG4gICAgKGF1dG9jb21wbGV0ZUZuYyk9XCJhdXRvY29tcGxldGVGbigkZXZlbnQpXCI+XG4gICAgXG4gICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtICNjaGlwVGVtcGxhdGU+XG4gICAgICA8c3BhbiBjbGFzcz1cInVpLWF1dG9jb21wbGV0ZS10b2tlbi1sYWJlbFwiIHRpdGxlPVwie3tpdGVtLmxhYmVsfX0gKHt7aXRlbS5sb2NhdGlvbn19KVwiPlxuICAgICAgICA8c3Ryb25nPnt7aXRlbS5sYWJlbH19PC9zdHJvbmc+XG4gICAgICAgIDxzcGFuPnt7aXRlbS5sb2NhdGlvbn19PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwveXZjLWF1dG9jb21wbGV0ZT5cbjwvc2VjdGlvbj5cblxuPHNlY3Rpb24gY2xhc3M9XCJ0eXBlLWxpc3RzXCI+XG4gIDxzZWN0aW9uIGNsYXNzPVwic2VjdGlvbiBsb2NhdGlvblwiICpuZ0lmPVwibG9jYXRpb25QYXJlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3ViaGVhZFwiPjxzcGFuIHRyYW5zbGF0ZT5lby5hZGQudGl0bGUubG9jYXRpb248L3NwYW4+PHNwYW4+IFwie3tsb2NhdGlvblBhcmVudC50aXRsZX19XCI8L3NwYW4+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInR5cGUgc3ViXCIgKGNsaWNrKT1cImFkZFRvU3ViZm9sZGVyKClcIiAqbmdJZj1cInN1YmZvbGRlclwiPlxuICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY3JlYXRlX25ld19mb2xkZXIuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPnt7J2VvLmFkZC50aXRsZS5sb2NhdGlvbi5zdWJmb2xkZXInfHRyYW5zbGF0ZTogKHtmb2xkZXI6IHN1YmZvbGRlci50aXRsZX0pfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwXCI+e3tzdWJGb2xkZXJEZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidHlwZVwiICpuZ0Zvcj1cImxldCB0eXBlIG9mIGxvY2F0aW9uVHlwZXM7IHRyYWNrQnk6IHRyYWNrQnlGblwiIChjbGljayk9XCJwcmVwYXJlKHR5cGUpXCI+XG4gICAgICA8ZW8taWNvbiBbb2JqZWN0VHlwZV09XCJ0eXBlXCI+PC9lby1pY29uPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+e3t0eXBlLmxhYmVsfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwXCI+e3t0eXBlLmdyb3VwfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG4gIFxuICA8c2VjdGlvbiBjbGFzcz1cInNlY3Rpb24gZ2VuZXJhbFwiICpuZ0lmPVwicm9vdFR5cGVzLmxlbmd0aDsgZWxzZSBub1Jvb3RUeXBlc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzdWJoZWFkXCI+PHNwYW4gdHJhbnNsYXRlPmVvLmFkZC50aXRsZS5sb2NhdGlvbi5jb21tb248L3NwYW4+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidHlwZVwiICpuZ0Zvcj1cImxldCB0eXBlIG9mIHJvb3RUeXBlczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwie2NvbnRleHQ6IHR5cGUuaXNDb250ZXh0Rm9sZGVyfVwiXG4gICAgICAgICAgIChjbGljayk9XCJwcmVwYXJlKHR5cGUsIHRydWUpXCI+XG4gICAgICAgIDxlby1pY29uIFtvYmplY3RUeXBlXT1cInR5cGVcIj48L2VvLWljb24+XG4gICAgICAgIDxkaXYgdGFiaW5kZXg9XCIwXCIgKGtleWRvd24uZW50ZXIpPVwicHJlcGFyZSh0eXBlLCB0cnVlKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPnt7dHlwZS5sYWJlbH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwXCI+e3t0eXBlLmdyb3VwfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9zZWN0aW9uPlxuXG48bmctdGVtcGxhdGUgI25vUm9vdFR5cGVzPlxuICA8ZGl2ICpuZ0lmPVwiIWxvY2F0aW9uUGFyZW50XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJlbXB0eV9fcm9vdC10eXBlc1wiIHRyYW5zbGF0ZT5lby5hZGQuZW1wdHkucm9vdC50eXBlczwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -83,7 +83,7 @@ export class DynamicListComponent {
|
|
|
83
83
|
this.selectedNodes = values.map(v => {
|
|
84
84
|
let node = {};
|
|
85
85
|
node[this.valueField] = v;
|
|
86
|
-
node['value'] =
|
|
86
|
+
node['value'] = v;
|
|
87
87
|
return node;
|
|
88
88
|
});
|
|
89
89
|
}
|
|
@@ -308,4 +308,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
308
308
|
type: Input,
|
|
309
309
|
args: ['listObject']
|
|
310
310
|
}] } });
|
|
311
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2Zvcm0tZWxlbWVudHMvZHluYW1pYy1saXN0L2R5bmFtaWMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBSUwsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDZCxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFzQnhCLE1BQU0sT0FBTyxvQkFBb0I7SUFZL0IsSUFDSSxjQUFjLENBQUMsSUFBYztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUlELElBQ0ksVUFBVSxDQUFDLEVBQU87UUFDcEIsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLElBQUksRUFBRSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN0QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFD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QUFDOzhHQTlSVSxvQkFBb0I7a0dBQXBCLG9CQUFvQix3TkFicEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNuRCxLQUFLLEVBQUUsSUFBSTthQUNaO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiw0T0MzQkgsdzdEQXNDTTs7MkZEVE8sb0JBQW9CO2tCQWpCaEMsU0FBUzsrQkFDRSxpQkFBaUIsYUFHaEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0RBSTBCLGlCQUFpQjtzQkFBM0MsU0FBUzt1QkFBQyxjQUFjO2dCQUNKLGtCQUFrQjtzQkFBdEMsU0FBUzt1QkFBQyxRQUFRO2dCQUVWLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0YsY0FBYztzQkFEakIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBV25CLFVBQVU7c0JBRGIsS0FBSzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIGZvcndhcmRSZWYsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBWYWxpZGF0b3IsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBOR19WQUxJREFUT1JTXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QXV0b0NvbXBsZXRlfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7VHJlZU5vZGV9IGZyb20gJy4uLy4uL3RyZWUvdHJlZS5jb21wb25lbnQuaW50ZXJmYWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1keW5hbWljLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRHluYW1pY0xpc3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEeW5hbWljTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ2F1dG9jb21wbGV0ZScpIGF1dG9Db21wbGV0ZUlucHV0OiBBdXRvQ29tcGxldGU7XG4gIEBWaWV3Q2hpbGQoJ2J1dHRvbicpIGF1dG9Db21wbGV0ZUJ1dHRvbjtcblxuICBASW5wdXQoKSBzaXR1YXRpb246IHN0cmluZztcbiAgQElucHV0KCkgbXVsdGlzZWxlY3Q6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHBpY2tlclRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gIHByaXZhdGUgX2ZpbHRlckZ1bmM6IEZ1bmN0aW9uO1xuXG4gIEBJbnB1dCgnZmlsdGVyRnVuY3Rpb24nKVxuICBzZXQgZmlsdGVyRnVuY3Rpb24oZnVuYzogRnVuY3Rpb24pIHtcbiAgICB0aGlzLl9maWx0ZXJGdW5jID0gZnVuYztcbiAgICBpZiAodGhpcy5fbGlzdCkge1xuICAgICAgdGhpcy5idWlsZFRyZWUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9saXN0OiBhbnk7XG5cbiAgQElucHV0KCdsaXN0T2JqZWN0JylcbiAgc2V0IGxpc3RPYmplY3QobG86IGFueSkge1xuICAgIGlmIChsbykge1xuICAgICAgdGhpcy5fbGlzdCA9IGxvO1xuICAgICAgaWYgKGxvLmNvbmZpZyAmJiBsby5jb25maWcudmFsdWVGaWVsZCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVzKSB7XG4gICAgICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IHRoaXMuc2VsZWN0ZWROb2Rlcy5tYXAoc24gPT4ge1xuICAgICAgICAgICAgICBzbltsby5jb25maWcudmFsdWVGaWVsZF0gPSBzblt0aGlzLnZhbHVlRmllbGRdO1xuICAgICAgICAgICAgICBzblsndmFsdWUnXSA9IHNuW3RoaXMudmFsdWVGaWVsZF07XG4gICAgICAgICAgICAgIHJldHVybiBzbjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXNbbG8uY29uZmlnLnZhbHVlRmllbGRdID0gdGhpcy5zZWxlY3RlZE5vZGVzW3RoaXMudmFsdWVGaWVsZF07XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXNbJ3ZhbHVlJ10gPSB0aGlzLnNlbGVjdGVkTm9kZXNbdGhpcy52YWx1ZUZpZWxkXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZUZpZWxkID0gbG8uY29uZmlnLnZhbHVlRmllbGQ7XG4gICAgICB9XG4gICAgICBpZiAobG8uY29uZmlnICYmIGxvLmNvbmZpZy5kZXNjcmlwdGlvbkZpZWxkKSB7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb25GaWVsZCA9IGxvLmNvbmZpZy5kZXNjcmlwdGlvbkZpZWxkO1xuICAgICAgfVxuICAgICAgaWYgKGxvLmNvbmZpZyAmJiBsby5jb25maWcuc3ViRW50cmllc0ZpZWxkKSB7XG4gICAgICAgIHRoaXMuc3ViRW50cmllc0ZpZWxkID0gbG8uY29uZmlnLnN1YkVudHJpZXNGaWVsZDtcbiAgICAgIH1cbiAgICAgIHRoaXMuYnVpbGRUcmVlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGxpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xpc3Q7XG4gIH1cblxuICB2YWx1ZUZpZWxkID0gJ3ZhbHVlJztcbiAgc3ViRW50cmllc0ZpZWxkID0gJ2VudHJpZXMnO1xuICBkZXNjcmlwdGlvbkZpZWxkID0gJ2Rlc2NyaXB0aW9uJztcbiAgZGlzcGxheSA9IGZhbHNlO1xuICBwcml2YXRlIGRpcnR5ID0gZmFsc2U7XG4gIHByaXZhdGUgaXNWYWxpZCA9IHRydWU7XG4gIHZhbHVlO1xuICB0cmVlOiBUcmVlTm9kZVtdO1xuICBwcml2YXRlIF9zZWxlY3RlZE5vZGVzOiBhbnk7XG4gIHNldCBzZWxlY3RlZE5vZGVzKG46IGFueSkge1xuICAgIGlmIChuICYmICFBcnJheS5pc0FycmF5KG4pKSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUZuKG5bdGhpcy5fbGlzdD8uY29uZmlnPy52YWx1ZUZpZWxkIHx8ICd2YWx1ZSddIHx8IG4ubmFtZSk7XG4gICAgfVxuICAgIHRoaXMuX3NlbGVjdGVkTm9kZXMgPSBzdHJ1Y3R1cmVkQ2xvbmUobik7XG4gIH1cbiAgZ2V0IHNlbGVjdGVkTm9kZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkTm9kZXM7XG4gIH1cbiAgYXV0b2NvbXBsZXRlUmVzO1xuICBhdXRvY29tcGxldGVWYWx1ZXM6IFRyZWVOb2RlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgfHwgbnVsbDtcbiAgICBjb25zdCB2YWx1ZXMgPSAhdGhpcy52YWx1ZSB8fCBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gdGhpcy52YWx1ZSB8fCBbXSA6IFt0aGlzLnZhbHVlXTtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gW107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBudWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSB2YWx1ZXMubWFwKHYgPT4ge1xuICAgICAgICAgIGxldCBub2RlID0ge307XG4gICAgICAgICAgbm9kZVt0aGlzLnZhbHVlRmllbGRdID0gdjtcbiAgICAgICAgICBub2RlWyd2YWx1ZSddID0gdmFsdWU7XG4gICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IG5vZGUgPSB7fTtcbiAgICAgICAgbm9kZVt0aGlzLnZhbHVlRmllbGRdID0gdmFsdWU7XG4gICAgICAgIG5vZGVbJ3ZhbHVlJ10gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gbm9kZTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgbm9kZXMgPSAhdGhpcy5zZWxlY3RlZE5vZGVzIHx8IEFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3RlZE5vZGVzKSA/IHRoaXMuc2VsZWN0ZWROb2RlcyB8fCBbXSA6IFt0aGlzLnNlbGVjdGVkTm9kZXNdO1xuXG4gICAgaWYgKHRoaXMuX2xpc3QgJiYgKG5vZGVzLmxlbmd0aCAhPT0gdmFsdWVzLmxlbmd0aCB8fCBub2Rlcy5zb21lKChuLCBpKSA9PiBuW3RoaXMudmFsdWVGaWVsZF0gIT09IHZhbHVlc1tpXSkpKSB7XG4gICAgICB0aGlzLmJ1aWxkVHJlZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gIH1cblxuICBvbkF1dG9Db21wbGV0ZVNlbGVjdChub2RlPykge1xuICAgIGNvbnN0IHdhc0ludmFsaWQgPSAhdGhpcy5pc1ZhbGlkO1xuICAgIHRoaXMuaXNWYWxpZCA9IHRydWU7XG4gICAgdGhpcy5zZXRGb3JtQ29udHJvbFZhbHVlKHdhc0ludmFsaWQpO1xuICB9XG5cbiAgb25BdXRvQ29tcGxldGVVbnNlbGVjdChub2RlPykge1xuICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IHRoaXMuc2VsZWN0ZWROb2Rlcy5maWx0ZXIoKHNOb2RlKSA9PiBzTm9kZS52YWx1ZSAhPT0gbm9kZS52YWx1ZSk7XG4gICAgdGhpcy5zZXRGb3JtQ29udHJvbFZhbHVlKCk7XG4gIH1cblxuICBvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKGV2dCkge1xuICAgIGlmICghdGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgdGhpcy5kaXNwbGF5ID0gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHdhc0ludmFsaWQgPSAhdGhpcy5pc1ZhbGlkO1xuICAgIHRoaXMuaXNWYWxpZCA9IHRydWU7XG4gICAgdGhpcy5zZXRGb3JtQ29udHJvbFZhbHVlKHdhc0ludmFsaWQpO1xuICB9XG5cbiAgb25DbGVhcigpIHtcbiAgICBpZiAoIXRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYW5kIHByb3BhZ2F0ZXMgdGhlIGZvcm0gY29udHJvbHMgdmFsdWUgYmFzZWQgb24gdGhlIGNvbXBvbmVudHMgaW5uZXIgdmFsdWVzLiBQcm9wYWdhdGVzIG9ubHlcbiAgICogd2hlbiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQuXG4gICAqIEBwYXJhbSBmb3JjZVByb3BhZ2F0aW9uIC0gZm9yY2VzIHByb3BhZ2F0aW9uIGV2ZW4gaWYgdGhlIHZhbHVlIGhhc24ndCBiZWVuIGNoYW5nZWRcbiAgICovXG4gIHByaXZhdGUgc2V0Rm9ybUNvbnRyb2xWYWx1ZShmb3JjZVByb3BhZ2F0aW9uPzogYm9vbGVhbikge1xuICAgIGxldCB2O1xuICAgIGxldCBjaGFuZ2VkOiBib29sZWFuO1xuICAgIGlmICh0aGlzLm11bHRpc2VsZWN0KSB7XG4gICAgICB2ID0gdGhpcy5zZWxlY3RlZE5vZGVzID8gdGhpcy5zZWxlY3RlZE5vZGVzLm1hcCgobm9kZSkgPT4gbm9kZVt0aGlzLnZhbHVlRmllbGRdKSA6IFtdO1xuICAgICAgY2hhbmdlZCA9ICF0aGlzLnZhbHVlIHx8ICEodi5sZW5ndGggPT09IHRoaXMudmFsdWUubGVuZ3RoICYmIHYuZXZlcnkoKHZhbCkgPT4gdGhpcy52YWx1ZS5zb21lKChjdXJWYWwpID0+IGN1clZhbCA9PT0gdmFsKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2ID0gdGhpcy5zZWxlY3RlZE5vZGVzID8gdGhpcy5zZWxlY3RlZE5vZGVzLmRhdGFbdGhpcy52YWx1ZUZpZWxkXSA6IG51bGw7XG4gICAgICBjaGFuZ2VkID0gdiAhPT0gdGhpcy52YWx1ZTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWQgfHwgZm9yY2VQcm9wYWdhdGlvbikge1xuICAgICAgdGhpcy52YWx1ZSA9IHY7XG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkVHJlZSgpIHtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZVZhbHVlcyA9IFtdO1xuICAgIGxldCB0cmVlOiBUcmVlTm9kZVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9saXN0LmVudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuYWRkVHJlZU5vZGUodHJlZSwgdGhpcy5fbGlzdC5lbnRyaWVzW2ldKTtcbiAgICB9XG4gICAgdGhpcy50cmVlID0gdHJlZTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVHJlZU5vZGUocGFyZW50Tm9kZTogVHJlZU5vZGVbXSwgbGlzdEVudHJ5KSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyRnVuY3Rpb24gJiYgIXRoaXMuZmlsdGVyRnVuY3Rpb24obGlzdEVudHJ5KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgbm9kZTogVHJlZU5vZGUgPSB0aGlzLmxpc3RFbnRyeVRvVHJlZU5vZGUobGlzdEVudHJ5KTtcbiAgICBpZiAobm9kZS5zZWxlY3RhYmxlKSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZVZhbHVlcy5wdXNoKG5vZGUpO1xuICAgIH1cbiAgICBpZiAobGlzdEVudHJ5W3RoaXMuc3ViRW50cmllc0ZpZWxkXSkge1xuICAgICAgbm9kZS5jaGlsZHJlbiA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0RW50cnlbdGhpcy5zdWJFbnRyaWVzRmllbGRdLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuYWRkVHJlZU5vZGUobm9kZS5jaGlsZHJlbiwgbGlzdEVudHJ5W3RoaXMuc3ViRW50cmllc0ZpZWxkXVtpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2hlY2tTZWxlY3RlZChub2RlKTtcbiAgICBwYXJlbnROb2RlLnB1c2gobm9kZSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrU2VsZWN0ZWQobm9kZTogVHJlZU5vZGUpIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy52YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBpc1RyZWVOb2RlVmFsdWVJblZhbHVlID0gbm9kZS5kYXRhW3RoaXMudmFsdWVGaWVsZF0gPT09IHRoaXMudmFsdWVbaV07XG4gICAgICAgIGlmIChpc1RyZWVOb2RlVmFsdWVJblZhbHVlKSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlVGhhdEhhc1ZhbHVlID0gdGhpcy5zZWxlY3RlZE5vZGVzLmZpbmQoc04gPT4gc05bdGhpcy52YWx1ZUZpZWxkXSA9PT0gdGhpcy52YWx1ZVtpXSk7XG4gICAgICAgICAgaWYgKCFzZWxlY3RlZE5vZGVUaGF0SGFzVmFsdWUpIHtcbiAgICAgICAgICAgIG5vZGUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVzLnB1c2gobm9kZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNlbGVjdGVkTm9kZVRoYXRIYXNWYWx1ZS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChub2RlLmRhdGFbdGhpcy52YWx1ZUZpZWxkXSA9PT0gdGhpcy52YWx1ZSkge1xuICAgICAgICBub2RlLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gbm9kZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhdXRvY29tcGxldGVGbih0ZXJtOiBzdHJpbmcpIHtcblxuICAgIHRoaXMuYXV0b2NvbXBsZXRlUmVzID0gdGhpcy5hdXRvY29tcGxldGVWYWx1ZXMuZmlsdGVyKChhY05vZGUpID0+IHtcbiAgICAgIGlmICh0aGlzLmZpbHRlckZ1bmN0aW9uICYmICF0aGlzLmZpbHRlckZ1bmN0aW9uKGFjTm9kZS5kYXRhKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVzLmZpbmQoKG5vZGUpID0+IGFjTm9kZS5kYXRhW3RoaXMudmFsdWVGaWVsZF0gPT09IG5vZGUuZGF0YVt0aGlzLnZhbHVlRmllbGRdKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGFjTm9kZS5kYXRhW3RoaXMudmFsdWVGaWVsZF0udG9Mb3dlckNhc2UoKS5pbmRleE9mKHRlcm0udG9Mb3dlckNhc2UoKSkgIT09IC0xIHx8XG4gICAgICAgIChhY05vZGUuZGF0YVt0aGlzLmRlc2NyaXB0aW9uRmllbGRdICYmIGFjTm9kZS5kYXRhW3RoaXMuZGVzY3JpcHRpb25GaWVsZF0udG9Mb3dlckNhc2UoKS5pbmRleE9mKHRlcm0udG9Mb3dlckNhc2UoKSkgIT09IC0xKTtcbiAgICB9KS5zbGljZSgwLCAxMCk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RFbnRyeVRvVHJlZU5vZGUobGlzdEVudHJ5KTogVHJlZU5vZGUge1xuICAgIGxldCBzZWxlY3RhYmxlID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuX2xpc3QgJiYgdGhpcy5fbGlzdC5jb25maWcgJiYgdGhpcy5fbGlzdC5jb25maWcuYWxsZWxlbWVudHNzZWxlY3RhYmxlKSB7XG4gICAgICBzZWxlY3RhYmxlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZWN0YWJsZSA9ICEobGlzdEVudHJ5W3RoaXMuc3ViRW50cmllc0ZpZWxkXSAmJiBsaXN0RW50cnlbdGhpcy5zdWJFbnRyaWVzRmllbGRdLmxlbmd0aCA+IDApO1xuICAgIH1cblxuICAgIGxldCB0cmVlTm9kZSA9IHtcbiAgICAgIGlkOiBsaXN0RW50cnkuaWQgPyBsaXN0RW50cnkuaWQgOiBsaXN0RW50cnlbdGhpcy52YWx1ZUZpZWxkXSxcbiAgICAgIG5hbWU6IGxpc3RFbnRyeVt0aGlzLmRlc2NyaXB0aW9uRmllbGRdID8gbGlzdEVudHJ5W3RoaXMudmFsdWVGaWVsZF0gKyAnICgnICsgbGlzdEVudHJ5W3RoaXMuZGVzY3JpcHRpb25GaWVsZF0gKyAnKScgOiBsaXN0RW50cnlbdGhpcy52YWx1ZUZpZWxkXSxcbiAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgIGV4cGFuZGVkOiBmYWxzZSxcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgIHNlbGVjdGFibGU6IHNlbGVjdGFibGUsXG4gICAgICBkYXRhOiBsaXN0RW50cnlcbiAgICB9O1xuICAgIHRyZWVOb2RlW3RoaXMudmFsdWVGaWVsZF0gPSBsaXN0RW50cnlbdGhpcy52YWx1ZUZpZWxkXTtcbiAgICB0cmVlTm9kZS5kYXRhWyd2YWx1ZSddID0gbGlzdEVudHJ5W3RoaXMudmFsdWVGaWVsZF07XG4gICAgdHJlZU5vZGVbdGhpcy5kZXNjcmlwdGlvbkZpZWxkXSA9IGxpc3RFbnRyeVt0aGlzLmRlc2NyaXB0aW9uRmllbGRdO1xuICAgIHRyZWVOb2RlW3RoaXMuc3ViRW50cmllc0ZpZWxkXSA9IGxpc3RFbnRyeVt0aGlzLnN1YkVudHJpZXNGaWVsZF07XG5cbiAgICByZXR1cm4gdHJlZU5vZGU7XG4gIH1cblxuICBzaG93RGlhbG9nKGV2ZW50PywgZGlzcGxheSA9IHRydWUpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIC8vaWdub3JlIHN5bnRoZXRpemVkIGV2ZW50cyBvbiBlbnRlclxuICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjbGljaycgJiYgZXZlbnQuZGV0YWlsID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5kaXNwbGF5ID0gISFkaXNwbGF5O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuc2l0dWF0aW9uID09PSAnU0VBUkNIJykge1xuICAgICAgdGhpcy5tdWx0aXNlbGVjdCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGM6IFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgIHJldHVybiAodGhpcy5pc1ZhbGlkKSA/IG51bGwgOiB7XG4gICAgICBkeW5hbWljbGlzdDoge1xuICAgICAgICB2YWxpZDogZmFsc2UsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiIsIjxlby1kaWFsb2cgI2xpc3REaWFsb2cgW3RpdGxlXT1cInBpY2tlclRpdGxlXCIgW3Zpc2libGVdPVwiZGlzcGxheVwiIFtuZ0NsYXNzXT1cIntlbXB0eTogIShsaXN0Py5lbnRyaWVzPy5sZW5ndGgpfVwiXG4gIFtzdHlsZUNsYXNzXT1cIidkeW5saXN0LWRpYWxvZydcIiAoaGlkZSk9XCJkaXNwbGF5ID0gZmFsc2VcIj5cblxuICA8ZW8tdHJlZSBbdHJlZV09XCJ0cmVlXCIgKm5nSWY9XCJkaXNwbGF5ICYmIHRyZWVcIiBbaXNEaXNwbGF5ZWRdPVwiZGlzcGxheVwiIFtvcHRpb25zXT1cInttdWx0aXNlbGVjdDogbXVsdGlzZWxlY3R9XCJcbiAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZXNcIiAoa2V5dXAuZW50ZXIpPVwic2hvd0RpYWxvZygkZXZlbnQsIGZhbHNlKVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UcmVlU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+XG4gIDwvZW8tdHJlZT5cblxuICA8ZGl2IGNsYXNzPVwiZW1wdHlcIiAqbmdJZj1cIiEobGlzdD8uZW50cmllcz8ubGVuZ3RoKVwiPlxuICAgIDxkaXYgdHJhbnNsYXRlPmVvLmZvcm0ucHJvcGVydHkuZHluYW1pYy5saXN0LmVtcHR5PC9kaXY+XG4gIDwvZGl2PlxuPC9lby1kaWFsb2c+XG5cbjxkaXYgY2xhc3M9XCJlby1keW5hbWljLWxpc3RcIiBbbmdDbGFzc109XCJ7ZnVsbDogc2VsZWN0ZWROb2RlcyAmJiBzZWxlY3RlZE5vZGVzLmxlbmd0aCA9PT0gYXV0b2NvbXBsZXRlVmFsdWVzLmxlbmd0aH1cIj5cblxuICA8eXZjLWF1dG9jb21wbGV0ZSBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZXNcIiAjYXV0b2NvbXBsZXRlIChzdWdnZXN0aW9uU2VsZWN0KT1cIm9uQXV0b0NvbXBsZXRlU2VsZWN0KCRldmVudClcIlxuICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIChzdWdnZXN0aW9uVW5zZWxlY3QpPVwib25BdXRvQ29tcGxldGVVbnNlbGVjdCgkZXZlbnQpXCIgW2ZvcmNlU2VsZWN0aW9uXT1cInRydWVcIlxuICAgIFthdXRvY29tcGxldGVWYWx1ZXNdPVwiYXV0b2NvbXBsZXRlUmVzXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25UcmVlU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCIgZmllbGQ9XCJ7e3ZhbHVlRmllbGR9fVwiIChhdXRvY29tcGxldGVGbmMpPVwiYXV0b2NvbXBsZXRlRm4oJGV2ZW50KVwiXG4gICAgW211bHRpcGxlXT1cIm11bHRpc2VsZWN0XCI+XG5cbiAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0gI2NoaXBUZW1wbGF0ZT5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7aXRlbVt2YWx1ZUZpZWxkXX19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNhdXRvY29tcGxldGVPcHRpb25UZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7aXRlbVt2YWx1ZUZpZWxkXX19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiIHN0eWxlPVwiZm9udC1zdHlsZTogaXRhbGljOyBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1jYXB0aW9uKVwiPnt7aXRlbVtkZXNjcmlwdGlvbkZpZWxkXX19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3l2Yy1hdXRvY29tcGxldGU+XG5cbiAgPGJ1dHRvbiAjYnV0dG9uIGNsYXNzPVwidWktYnV0dG9uXCIgKm5nSWY9XCIhcmVhZG9ubHlcIiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiAoY2xpY2spPVwic2hvd0RpYWxvZygkZXZlbnQsICRldmVudC5kZXRhaWwpXCJcbiAgICAoa2V5dXAuYXJyb3dEb3duKT1cInNob3dEaWFsb2coJGV2ZW50KVwiIChrZXl1cC5lbnRlcik9XCJzaG93RGlhbG9nKCRldmVudClcIiAoa2V5dXAuc3BhY2UpPVwic2hvd0RpYWxvZygkZXZlbnQpXCI+XG4gICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYXJyb3dfZG93bi5zdmcnXCI+PC9lby1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PiJdfQ==
|
|
311
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2Zvcm0tZWxlbWVudHMvZHluYW1pYy1saXN0L2R5bmFtaWMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBSUwsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDZCxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFzQnhCLE1BQU0sT0FBTyxvQkFBb0I7SUFZL0IsSUFDSSxjQUFjLENBQUMsSUFBYztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUlELElBQ0ksVUFBVSxDQUFDLEVBQU87UUFDcEIsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLElBQUksRUFBRSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN0QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFD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QUFDOzhHQTlSVSxvQkFBb0I7a0dBQXBCLG9CQUFvQix3TkFicEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNuRCxLQUFLLEVBQUUsSUFBSTthQUNaO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiw0T0MzQkgsdzdEQXNDTTs7MkZEVE8sb0JBQW9CO2tCQWpCaEMsU0FBUzsrQkFDRSxpQkFBaUIsYUFHaEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0RBSTBCLGlCQUFpQjtzQkFBM0MsU0FBUzt1QkFBQyxjQUFjO2dCQUNKLGtCQUFrQjtzQkFBdEMsU0FBUzt1QkFBQyxRQUFRO2dCQUVWLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0YsY0FBYztzQkFEakIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBV25CLFVBQVU7c0JBRGIsS0FBSzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIGZvcndhcmRSZWYsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBWYWxpZGF0b3IsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBOR19WQUxJREFUT1JTXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QXV0b0NvbXBsZXRlfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7VHJlZU5vZGV9IGZyb20gJy4uLy4uL3RyZWUvdHJlZS5jb21wb25lbnQuaW50ZXJmYWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1keW5hbWljLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRHluYW1pY0xpc3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEeW5hbWljTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ2F1dG9jb21wbGV0ZScpIGF1dG9Db21wbGV0ZUlucHV0OiBBdXRvQ29tcGxldGU7XG4gIEBWaWV3Q2hpbGQoJ2J1dHRvbicpIGF1dG9Db21wbGV0ZUJ1dHRvbjtcblxuICBASW5wdXQoKSBzaXR1YXRpb246IHN0cmluZztcbiAgQElucHV0KCkgbXVsdGlzZWxlY3Q6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHBpY2tlclRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gIHByaXZhdGUgX2ZpbHRlckZ1bmM6IEZ1bmN0aW9uO1xuXG4gIEBJbnB1dCgnZmlsdGVyRnVuY3Rpb24nKVxuICBzZXQgZmlsdGVyRnVuY3Rpb24oZnVuYzogRnVuY3Rpb24pIHtcbiAgICB0aGlzLl9maWx0ZXJGdW5jID0gZnVuYztcbiAgICBpZiAodGhpcy5fbGlzdCkge1xuICAgICAgdGhpcy5idWlsZFRyZWUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9saXN0OiBhbnk7XG5cbiAgQElucHV0KCdsaXN0T2JqZWN0JylcbiAgc2V0IGxpc3RPYmplY3QobG86IGFueSkge1xuICAgIGlmIChsbykge1xuICAgICAgdGhpcy5fbGlzdCA9IGxvO1xuICAgICAgaWYgKGxvLmNvbmZpZyAmJiBsby5jb25maWcudmFsdWVGaWVsZCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVzKSB7XG4gICAgICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IHRoaXMuc2VsZWN0ZWROb2Rlcy5tYXAoc24gPT4ge1xuICAgICAgICAgICAgICBzbltsby5jb25maWcudmFsdWVGaWVsZF0gPSBzblt0aGlzLnZhbHVlRmllbGRdO1xuICAgICAgICAgICAgICBzblsndmFsdWUnXSA9IHNuW3RoaXMudmFsdWVGaWVsZF07XG4gICAgICAgICAgICAgIHJldHVybiBzbjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXNbbG8uY29uZmlnLnZhbHVlRmllbGRdID0gdGhpcy5zZWxlY3RlZE5vZGVzW3RoaXMudmFsdWVGaWVsZF07XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXNbJ3ZhbHVlJ10gPSB0aGlzLnNlbGVjdGVkTm9kZXNbdGhpcy52YWx1ZUZpZWxkXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZUZpZWxkID0gbG8uY29uZmlnLnZhbHVlRmllbGQ7XG4gICAgICB9XG4gICAgICBpZiAobG8uY29uZmlnICYmIGxvLmNvbmZpZy5kZXNjcmlwdGlvbkZpZWxkKSB7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb25GaWVsZCA9IGxvLmNvbmZpZy5kZXNjcmlwdGlvbkZpZWxkO1xuICAgICAgfVxuICAgICAgaWYgKGxvLmNvbmZpZyAmJiBsby5jb25maWcuc3ViRW50cmllc0ZpZWxkKSB7XG4gICAgICAgIHRoaXMuc3ViRW50cmllc0ZpZWxkID0gbG8uY29uZmlnLnN1YkVudHJpZXNGaWVsZDtcbiAgICAgIH1cbiAgICAgIHRoaXMuYnVpbGRUcmVlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGxpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xpc3Q7XG4gIH1cblxuICB2YWx1ZUZpZWxkID0gJ3ZhbHVlJztcbiAgc3ViRW50cmllc0ZpZWxkID0gJ2VudHJpZXMnO1xuICBkZXNjcmlwdGlvbkZpZWxkID0gJ2Rlc2NyaXB0aW9uJztcbiAgZGlzcGxheSA9IGZhbHNlO1xuICBwcml2YXRlIGRpcnR5ID0gZmFsc2U7XG4gIHByaXZhdGUgaXNWYWxpZCA9IHRydWU7XG4gIHZhbHVlO1xuICB0cmVlOiBUcmVlTm9kZVtdO1xuICBwcml2YXRlIF9zZWxlY3RlZE5vZGVzOiBhbnk7XG4gIHNldCBzZWxlY3RlZE5vZGVzKG46IGFueSkge1xuICAgIGlmIChuICYmICFBcnJheS5pc0FycmF5KG4pKSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUZuKG5bdGhpcy5fbGlzdD8uY29uZmlnPy52YWx1ZUZpZWxkIHx8ICd2YWx1ZSddIHx8IG4ubmFtZSk7XG4gICAgfVxuICAgIHRoaXMuX3NlbGVjdGVkTm9kZXMgPSBzdHJ1Y3R1cmVkQ2xvbmUobik7XG4gIH1cbiAgZ2V0IHNlbGVjdGVkTm9kZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkTm9kZXM7XG4gIH1cbiAgYXV0b2NvbXBsZXRlUmVzO1xuICBhdXRvY29tcGxldGVWYWx1ZXM6IFRyZWVOb2RlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgfHwgbnVsbDtcbiAgICBjb25zdCB2YWx1ZXMgPSAhdGhpcy52YWx1ZSB8fCBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gdGhpcy52YWx1ZSB8fCBbXSA6IFt0aGlzLnZhbHVlXTtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gW107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBudWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSB2YWx1ZXMubWFwKHYgPT4ge1xuICAgICAgICAgIGxldCBub2RlID0ge307XG4gICAgICAgICAgbm9kZVt0aGlzLnZhbHVlRmllbGRdID0gdjtcbiAgICAgICAgICBub2RlWyd2YWx1ZSddID0gdjtcbiAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgbm9kZSA9IHt9O1xuICAgICAgICBub2RlW3RoaXMudmFsdWVGaWVsZF0gPSB2YWx1ZTtcbiAgICAgICAgbm9kZVsndmFsdWUnXSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBub2RlO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBub2RlcyA9ICF0aGlzLnNlbGVjdGVkTm9kZXMgfHwgQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkTm9kZXMpID8gdGhpcy5zZWxlY3RlZE5vZGVzIHx8IFtdIDogW3RoaXMuc2VsZWN0ZWROb2Rlc107XG5cbiAgICBpZiAodGhpcy5fbGlzdCAmJiAobm9kZXMubGVuZ3RoICE9PSB2YWx1ZXMubGVuZ3RoIHx8IG5vZGVzLnNvbWUoKG4sIGkpID0+IG5bdGhpcy52YWx1ZUZpZWxkXSAhPT0gdmFsdWVzW2ldKSkpIHtcbiAgICAgIHRoaXMuYnVpbGRUcmVlKCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIG9uQXV0b0NvbXBsZXRlU2VsZWN0KG5vZGU/KSB7XG4gICAgY29uc3Qgd2FzSW52YWxpZCA9ICF0aGlzLmlzVmFsaWQ7XG4gICAgdGhpcy5pc1ZhbGlkID0gdHJ1ZTtcbiAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUod2FzSW52YWxpZCk7XG4gIH1cblxuICBvbkF1dG9Db21wbGV0ZVVuc2VsZWN0KG5vZGU/KSB7XG4gICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gdGhpcy5zZWxlY3RlZE5vZGVzLmZpbHRlcigoc05vZGUpID0+IHNOb2RlLnZhbHVlICE9PSBub2RlLnZhbHVlKTtcbiAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUoKTtcbiAgfVxuXG4gIG9uVHJlZVNlbGVjdGlvbkNoYW5nZWQoZXZ0KSB7XG4gICAgaWYgKCF0aGlzLm11bHRpc2VsZWN0KSB7XG4gICAgICB0aGlzLmRpc3BsYXkgPSBmYWxzZTtcbiAgICB9XG4gICAgY29uc3Qgd2FzSW52YWxpZCA9ICF0aGlzLmlzVmFsaWQ7XG4gICAgdGhpcy5pc1ZhbGlkID0gdHJ1ZTtcbiAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUod2FzSW52YWxpZCk7XG4gIH1cblxuICBvbkNsZWFyKCkge1xuICAgIGlmICghdGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5zZXRGb3JtQ29udHJvbFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBhbmQgcHJvcGFnYXRlcyB0aGUgZm9ybSBjb250cm9scyB2YWx1ZSBiYXNlZCBvbiB0aGUgY29tcG9uZW50cyBpbm5lciB2YWx1ZXMuIFByb3BhZ2F0ZXMgb25seVxuICAgKiB3aGVuIHRoZSB2YWx1ZSBoYXMgY2hhbmdlZC5cbiAgICogQHBhcmFtIGZvcmNlUHJvcGFnYXRpb24gLSBmb3JjZXMgcHJvcGFnYXRpb24gZXZlbiBpZiB0aGUgdmFsdWUgaGFzbid0IGJlZW4gY2hhbmdlZFxuICAgKi9cbiAgcHJpdmF0ZSBzZXRGb3JtQ29udHJvbFZhbHVlKGZvcmNlUHJvcGFnYXRpb24/OiBib29sZWFuKSB7XG4gICAgbGV0IHY7XG4gICAgbGV0IGNoYW5nZWQ6IGJvb2xlYW47XG4gICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgIHYgPSB0aGlzLnNlbGVjdGVkTm9kZXMgPyB0aGlzLnNlbGVjdGVkTm9kZXMubWFwKChub2RlKSA9PiBub2RlW3RoaXMudmFsdWVGaWVsZF0pIDogW107XG4gICAgICBjaGFuZ2VkID0gIXRoaXMudmFsdWUgfHwgISh2Lmxlbmd0aCA9PT0gdGhpcy52YWx1ZS5sZW5ndGggJiYgdi5ldmVyeSgodmFsKSA9PiB0aGlzLnZhbHVlLnNvbWUoKGN1clZhbCkgPT4gY3VyVmFsID09PSB2YWwpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHYgPSB0aGlzLnNlbGVjdGVkTm9kZXMgPyB0aGlzLnNlbGVjdGVkTm9kZXMuZGF0YVt0aGlzLnZhbHVlRmllbGRdIDogbnVsbDtcbiAgICAgIGNoYW5nZWQgPSB2ICE9PSB0aGlzLnZhbHVlO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZCB8fCBmb3JjZVByb3BhZ2F0aW9uKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdjtcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRUcmVlKCkge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlVmFsdWVzID0gW107XG4gICAgbGV0IHRyZWU6IFRyZWVOb2RlW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2xpc3QuZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5hZGRUcmVlTm9kZSh0cmVlLCB0aGlzLl9saXN0LmVudHJpZXNbaV0pO1xuICAgIH1cbiAgICB0aGlzLnRyZWUgPSB0cmVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRUcmVlTm9kZShwYXJlbnROb2RlOiBUcmVlTm9kZVtdLCBsaXN0RW50cnkpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJGdW5jdGlvbiAmJiAhdGhpcy5maWx0ZXJGdW5jdGlvbihsaXN0RW50cnkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBub2RlOiBUcmVlTm9kZSA9IHRoaXMubGlzdEVudHJ5VG9UcmVlTm9kZShsaXN0RW50cnkpO1xuICAgIGlmIChub2RlLnNlbGVjdGFibGUpIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVmFsdWVzLnB1c2gobm9kZSk7XG4gICAgfVxuICAgIGlmIChsaXN0RW50cnlbdGhpcy5zdWJFbnRyaWVzRmllbGRdKSB7XG4gICAgICBub2RlLmNoaWxkcmVuID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RFbnRyeVt0aGlzLnN1YkVudHJpZXNGaWVsZF0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5hZGRUcmVlTm9kZShub2RlLmNoaWxkcmVuLCBsaXN0RW50cnlbdGhpcy5zdWJFbnRyaWVzRmllbGRdW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkKG5vZGUpO1xuICAgIHBhcmVudE5vZGUucHVzaChub2RlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tTZWxlY3RlZChub2RlOiBUcmVlTm9kZSkge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGlzVHJlZU5vZGVWYWx1ZUluVmFsdWUgPSBub2RlLmRhdGFbdGhpcy52YWx1ZUZpZWxkXSA9PT0gdGhpcy52YWx1ZVtpXTtcbiAgICAgICAgaWYgKGlzVHJlZU5vZGVWYWx1ZUluVmFsdWUpIHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGVUaGF0SGFzVmFsdWUgPSB0aGlzLnNlbGVjdGVkTm9kZXMuZmluZChzTiA9PiBzTlt0aGlzLnZhbHVlRmllbGRdID09PSB0aGlzLnZhbHVlW2ldKTtcbiAgICAgICAgICBpZiAoIXNlbGVjdGVkTm9kZVRoYXRIYXNWYWx1ZSkge1xuICAgICAgICAgICAgbm9kZS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMucHVzaChub2RlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2VsZWN0ZWROb2RlVGhhdEhhc1ZhbHVlLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG5vZGUuZGF0YVt0aGlzLnZhbHVlRmllbGRdID09PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgIG5vZGUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBub2RlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGF1dG9jb21wbGV0ZUZuKHRlcm06IHN0cmluZykge1xuXG4gICAgdGhpcy5hdXRvY29tcGxldGVSZXMgPSB0aGlzLmF1dG9jb21wbGV0ZVZhbHVlcy5maWx0ZXIoKGFjTm9kZSkgPT4ge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyRnVuY3Rpb24gJiYgIXRoaXMuZmlsdGVyRnVuY3Rpb24oYWNOb2RlLmRhdGEpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm11bHRpc2VsZWN0KSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTm9kZXMuZmluZCgobm9kZSkgPT4gYWNOb2RlLmRhdGFbdGhpcy52YWx1ZUZpZWxkXSA9PT0gbm9kZS5kYXRhW3RoaXMudmFsdWVGaWVsZF0pKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNOb2RlLmRhdGFbdGhpcy52YWx1ZUZpZWxkXS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGVybS50b0xvd2VyQ2FzZSgpKSAhPT0gLTEgfHxcbiAgICAgICAgKGFjTm9kZS5kYXRhW3RoaXMuZGVzY3JpcHRpb25GaWVsZF0gJiYgYWNOb2RlLmRhdGFbdGhpcy5kZXNjcmlwdGlvbkZpZWxkXS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGVybS50b0xvd2VyQ2FzZSgpKSAhPT0gLTEpO1xuICAgIH0pLnNsaWNlKDAsIDEwKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdEVudHJ5VG9UcmVlTm9kZShsaXN0RW50cnkpOiBUcmVlTm9kZSB7XG4gICAgbGV0IHNlbGVjdGFibGUgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5fbGlzdCAmJiB0aGlzLl9saXN0LmNvbmZpZyAmJiB0aGlzLl9saXN0LmNvbmZpZy5hbGxlbGVtZW50c3NlbGVjdGFibGUpIHtcbiAgICAgIHNlbGVjdGFibGUgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWxlY3RhYmxlID0gIShsaXN0RW50cnlbdGhpcy5zdWJFbnRyaWVzRmllbGRdICYmIGxpc3RFbnRyeVt0aGlzLnN1YkVudHJpZXNGaWVsZF0ubGVuZ3RoID4gMCk7XG4gICAgfVxuXG4gICAgbGV0IHRyZWVOb2RlID0ge1xuICAgICAgaWQ6IGxpc3RFbnRyeS5pZCA/IGxpc3RFbnRyeS5pZCA6IGxpc3RFbnRyeVt0aGlzLnZhbHVlRmllbGRdLFxuICAgICAgbmFtZTogbGlzdEVudHJ5W3RoaXMuZGVzY3JpcHRpb25GaWVsZF0gPyBsaXN0RW50cnlbdGhpcy52YWx1ZUZpZWxkXSArICcgKCcgKyBsaXN0RW50cnlbdGhpcy5kZXNjcmlwdGlvbkZpZWxkXSArICcpJyA6IGxpc3RFbnRyeVt0aGlzLnZhbHVlRmllbGRdLFxuICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgZXhwYW5kZWQ6IGZhbHNlLFxuICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgc2VsZWN0YWJsZTogc2VsZWN0YWJsZSxcbiAgICAgIGRhdGE6IGxpc3RFbnRyeVxuICAgIH07XG4gICAgdHJlZU5vZGVbdGhpcy52YWx1ZUZpZWxkXSA9IGxpc3RFbnRyeVt0aGlzLnZhbHVlRmllbGRdO1xuICAgIHRyZWVOb2RlLmRhdGFbJ3ZhbHVlJ10gPSBsaXN0RW50cnlbdGhpcy52YWx1ZUZpZWxkXTtcbiAgICB0cmVlTm9kZVt0aGlzLmRlc2NyaXB0aW9uRmllbGRdID0gbGlzdEVudHJ5W3RoaXMuZGVzY3JpcHRpb25GaWVsZF07XG4gICAgdHJlZU5vZGVbdGhpcy5zdWJFbnRyaWVzRmllbGRdID0gbGlzdEVudHJ5W3RoaXMuc3ViRW50cmllc0ZpZWxkXTtcblxuICAgIHJldHVybiB0cmVlTm9kZTtcbiAgfVxuXG4gIHNob3dEaWFsb2coZXZlbnQ/LCBkaXNwbGF5ID0gdHJ1ZSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgLy9pZ25vcmUgc3ludGhldGl6ZWQgZXZlbnRzIG9uIGVudGVyXG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2NsaWNrJyAmJiBldmVudC5kZXRhaWwgPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmRpc3BsYXkgPSAhIWRpc3BsYXk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XG4gICAgICB0aGlzLm11bHRpc2VsZWN0ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoYzogVW50eXBlZEZvcm1Db250cm9sKSB7XG4gICAgcmV0dXJuICh0aGlzLmlzVmFsaWQpID8gbnVsbCA6IHtcbiAgICAgIGR5bmFtaWNsaXN0OiB7XG4gICAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIiwiPGVvLWRpYWxvZyAjbGlzdERpYWxvZyBbdGl0bGVdPVwicGlja2VyVGl0bGVcIiBbdmlzaWJsZV09XCJkaXNwbGF5XCIgW25nQ2xhc3NdPVwie2VtcHR5OiAhKGxpc3Q/LmVudHJpZXM/Lmxlbmd0aCl9XCJcbiAgW3N0eWxlQ2xhc3NdPVwiJ2R5bmxpc3QtZGlhbG9nJ1wiIChoaWRlKT1cImRpc3BsYXkgPSBmYWxzZVwiPlxuXG4gIDxlby10cmVlIFt0cmVlXT1cInRyZWVcIiAqbmdJZj1cImRpc3BsYXkgJiYgdHJlZVwiIFtpc0Rpc3BsYXllZF09XCJkaXNwbGF5XCIgW29wdGlvbnNdPVwie211bHRpc2VsZWN0OiBtdWx0aXNlbGVjdH1cIlxuICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWROb2Rlc1wiIChrZXl1cC5lbnRlcik9XCJzaG93RGlhbG9nKCRldmVudCwgZmFsc2UpXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj5cbiAgPC9lby10cmVlPlxuXG4gIDxkaXYgY2xhc3M9XCJlbXB0eVwiICpuZ0lmPVwiIShsaXN0Py5lbnRyaWVzPy5sZW5ndGgpXCI+XG4gICAgPGRpdiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5keW5hbWljLmxpc3QuZW1wdHk8L2Rpdj5cbiAgPC9kaXY+XG48L2VvLWRpYWxvZz5cblxuPGRpdiBjbGFzcz1cImVvLWR5bmFtaWMtbGlzdFwiIFtuZ0NsYXNzXT1cIntmdWxsOiBzZWxlY3RlZE5vZGVzICYmIHNlbGVjdGVkTm9kZXMubGVuZ3RoID09PSBhdXRvY29tcGxldGVWYWx1ZXMubGVuZ3RofVwiPlxuXG4gIDx5dmMtYXV0b2NvbXBsZXRlIFsobmdNb2RlbCldPVwic2VsZWN0ZWROb2Rlc1wiICNhdXRvY29tcGxldGUgKHN1Z2dlc3Rpb25TZWxlY3QpPVwib25BdXRvQ29tcGxldGVTZWxlY3QoJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgKHN1Z2dlc3Rpb25VbnNlbGVjdCk9XCJvbkF1dG9Db21wbGV0ZVVuc2VsZWN0KCRldmVudClcIiBbZm9yY2VTZWxlY3Rpb25dPVwidHJ1ZVwiXG4gICAgW2F1dG9jb21wbGV0ZVZhbHVlc109XCJhdXRvY29tcGxldGVSZXNcIiAobmdNb2RlbENoYW5nZSk9XCJvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIiBmaWVsZD1cInt7dmFsdWVGaWVsZH19XCIgKGF1dG9jb21wbGV0ZUZuYyk9XCJhdXRvY29tcGxldGVGbigkZXZlbnQpXCJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlzZWxlY3RcIj5cblxuICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSAjY2hpcFRlbXBsYXRlPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tpdGVtW3ZhbHVlRmllbGRdfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2F1dG9jb21wbGV0ZU9wdGlvblRlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tpdGVtW3ZhbHVlRmllbGRdfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCIgc3R5bGU9XCJmb250LXN0eWxlOiBpdGFsaWM7IGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWNhcHRpb24pXCI+e3tpdGVtW2Rlc2NyaXB0aW9uRmllbGRdfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwveXZjLWF1dG9jb21wbGV0ZT5cblxuICA8YnV0dG9uICNidXR0b24gY2xhc3M9XCJ1aS1idXR0b25cIiAqbmdJZj1cIiFyZWFkb25seVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIChjbGljayk9XCJzaG93RGlhbG9nKCRldmVudCwgJGV2ZW50LmRldGFpbClcIlxuICAgIChrZXl1cC5hcnJvd0Rvd24pPVwic2hvd0RpYWxvZygkZXZlbnQpXCIgKGtleXVwLmVudGVyKT1cInNob3dEaWFsb2coJGV2ZW50KVwiIChrZXl1cC5zcGFjZSk9XCJzaG93RGlhbG9nKCRldmVudClcIj5cbiAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hcnJvd19kb3duLnN2ZydcIj48L2VvLWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+Il19
|
|
@@ -172,6 +172,9 @@ export class ReferenceFinderComponent {
|
|
|
172
172
|
selectAllEntries() {
|
|
173
173
|
[...this.clipboardItems, ...this.resultList].filter(item => !item.selected).forEach(item => this.selectReference({ item: item, add: false }));
|
|
174
174
|
}
|
|
175
|
+
selectCopiedEntries() {
|
|
176
|
+
this.clipboardItems.filter(item => !item.selected).forEach(item => this.selectReference({ item: item, add: false }));
|
|
177
|
+
}
|
|
175
178
|
selectReference(selectReference) {
|
|
176
179
|
const { item, add } = selectReference;
|
|
177
180
|
if (item && !item.disabled) {
|
|
@@ -217,11 +220,11 @@ export class ReferenceFinderComponent {
|
|
|
217
220
|
this.searchInput.nativeElement.focus();
|
|
218
221
|
}
|
|
219
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 }); }
|
|
220
|
-
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]=\"clipboardOpen\"\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\" [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 <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectAllEntries()\">{{('eo.cta.button.select.all' | translate)}}</button>\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: [".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:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"results\" \"cta\";align-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{grid-area:results;overflow:scroll;height:330px;margin:var(--app-pane-padding)}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;justify-content:space-between;align-items:center;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:85%;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", "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] }); }
|
|
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]=\"clipboardOpen\"\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\" [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\" (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: [".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:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"results\" \"cta\";align-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{grid-area:results;overflow:scroll;height:330px;margin:var(--app-pane-padding)}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;justify-content:space-between;align-items:center;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:85%;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] }); }
|
|
221
224
|
}
|
|
222
225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ReferenceFinderComponent, decorators: [{
|
|
223
226
|
type: Component,
|
|
224
|
-
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]=\"clipboardOpen\"\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\" [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 <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectAllEntries()\">{{('eo.cta.button.select.all' | translate)}}</button>\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: [".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:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"results\" \"cta\";align-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{grid-area:results;overflow:scroll;height:330px;margin:var(--app-pane-padding)}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;justify-content:space-between;align-items:center;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:85%;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"] }]
|
|
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]=\"clipboardOpen\"\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\" [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\" (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: [".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:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"results\" \"cta\";align-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{grid-area:results;overflow:scroll;height:330px;margin:var(--app-pane-padding)}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;justify-content:space-between;align-items:center;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:85%;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"] }]
|
|
225
228
|
}], ctorParameters: () => [{ type: i1.ReferenceFinderService }], propDecorators: { entries: [{
|
|
226
229
|
type: ViewChildren,
|
|
227
230
|
args: ['entry', { read: ElementRef }]
|
|
@@ -250,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
250
253
|
type: HostListener,
|
|
251
254
|
args: ['keydown', ['$event']]
|
|
252
255
|
}] } });
|
|
253
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLWZpbmRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2lkLXJlZmVyZW5jZS9yZWZlcmVuY2UtZmluZGVyL3JlZmVyZW5jZS1maW5kZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvZm9ybS1lbGVtZW50cy9pZC1yZWZlcmVuY2UvcmVmZXJlbmNlLWZpbmRlci9yZWZlcmVuY2UtZmluZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBYSxVQUFVLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVsSixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQU1sRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBUTVDLE1BQU0sT0FBTyx3QkFBd0I7SUFlbkMsSUFBSSxVQUFVLENBQUMsSUFBbUI7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFVRCxJQUNJLGdCQUFnQixDQUFDLFNBQTBCO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUNJLFNBQVMsQ0FBQyxTQUFvQjtRQUNoQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxvQ0FBb0MsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckosQ0FBQztJQUlELEtBQUssQ0FBQyxLQUFLO1FBQ1QsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBYTtZQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDL0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNySCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxLQUFLLENBQUM7Z0JBQ1YsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDOUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUM5RSxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDZixLQUFLLEVBQUUsQ0FBQzt3QkFDUixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQ3BFLEtBQUssR0FBRyxDQUFDLENBQUM7NEJBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFBO3dCQUM5QyxDQUFDOzZCQUFNLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQzFFLEtBQUssR0FBRyxDQUFDLENBQUM7NEJBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMzQyxDQUFDOzZCQUFNLENBQUM7NEJBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMvQyxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNwRSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzFFLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO3dCQUNmLEtBQUssRUFBRSxDQUFDO3dCQUNSLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzs0QkFDM0QsS0FBSyxHQUFHLENBQUMsQ0FBQzs0QkFDVixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUE7d0JBQzlDLENBQUM7NkJBQU0sSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7NEJBQ25FLEtBQUssR0FBRyxDQUFDLENBQUM7NEJBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMzQyxDQUFDOzZCQUFNLENBQUM7NEJBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMzQyxDQUFDO29CQUNILENBQUM7eUJBQU0sQ0FBQzt3QkFDTixLQUFLLEdBQUcsQ0FBQyxDQUFDO3dCQUNWLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDM0MsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7YUFDSSxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXO1lBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUMvRSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLEtBQUssQ0FBQztnQkFDVixJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUM5QyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzlFLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO3dCQUNmLEtBQUssRUFBRSxDQUFDO3dCQUNSLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQzNDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7NEJBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTt3QkFDMUMsQ0FBQzs2QkFBTSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQ25ELEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7NEJBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDL0MsQ0FBQzs2QkFBTSxDQUFDOzRCQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDL0MsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7Z0JBQ0QsSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDcEUsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUMxRSxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDZixLQUFLLEVBQUUsQ0FBQzt3QkFDUixJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7NEJBQ3ZDLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7NEJBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQTt3QkFDOUMsQ0FBQzs2QkFBTSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzs0QkFDL0MsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzs0QkFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMzQyxDQUFDOzZCQUFNLENBQUM7NEJBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMzQyxDQUFDO29CQUNILENBQUM7eUJBQU0sQ0FBQzt3QkFDTixLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO3dCQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzNDLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQ0ksSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxlQUFlO1lBQzdELElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxlQUFlLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUMzRCxDQUFDO1FBQ0gsQ0FBQzthQUNJLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVE7WUFDckMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDO1lBQ3hFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQW9CLHNCQUE4QztRQUE5QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBdklsRSxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFFcEMsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsZUFBVSxHQUFvQixFQUFFLENBQUM7UUFFakMsbUJBQWMsR0FBb0IsRUFBRSxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBRXJCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUErQlIsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQWlHbkUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzlELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQztpQkFDcEcsU0FBUyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO2dCQUN4QyxNQUFNLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ2pKLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7b0JBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5SCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUM1QixDQUFDO2dCQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQy9ELENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzdJLENBQUM7SUFFRCxlQUFlLENBQUMsZUFBb0Q7UUFDbEUsTUFBTSxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUMsR0FBRyxlQUFlLENBQUM7UUFDcEMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3JCLENBQUMsSUFBSSxDQUFDLFNBQVM7b0JBQ2IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDN0YsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzFHLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUMxRixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUM7Z0JBQzdELENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUNsRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUM7Z0JBQ3pELENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JJLENBQUM7UUFDRCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBSTtRQUM3QixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqRSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMzQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztZQUN4RixDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLDREQUE0RDtRQUM1RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzhHQS9OVSx3QkFBd0I7a0dBQXhCLHdCQUF3Qiw4aEJBRUwsVUFBVSw2QkNuQjFDLHExRkFzRUEsNGxFRHZEYyxDQUFDLFNBQVMsQ0FBQzs7MkZBRVosd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHFCQUFxQixjQUduQixDQUFDLFNBQVMsQ0FBQzsyRkFJb0IsT0FBTztzQkFBakQsWUFBWTt1QkFBQyxPQUFPLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO2dCQUNmLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFxQmYsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFHRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBU0YsU0FBUztzQkFEWixLQUFLO2dCQUlJLGFBQWE7c0JBQXRCLE1BQU07Z0JBR1AsS0FBSztzQkFESixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIEhvc3RMaXN0ZW5lciwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NsaXBib2FyZCwgU2VhcmNoUmVzdWx0fSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmFkZUluT3V0fSBmcm9tICcuLi9hbmltYXRpb24vcmVmZXJlbmNlLWZpbmRlci5hbmltYXRpb24nO1xuaW1wb3J0IHtcbiAgUmVmZXJlbmNlSXRlbSxcbiAgUmVmZXJlbmNlU2VhcmNoQ291bnRlclxufSBmcm9tICcuLi9pbnRlcmZhY2UvcmVmZXJlbmNlLWZpbmRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHtSZWZlcmVuY2VGaW5kZXJTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3JlZmVyZW5jZS1maW5kZXIuc2VydmljZSc7XG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1yZWZlcmVuY2UtZmluZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZmVyZW5jZS1maW5kZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWZlcmVuY2UtZmluZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtmYWRlSW5PdXRdXG59KVxuZXhwb3J0IGNsYXNzIFJlZmVyZW5jZUZpbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2VudHJ5Jywge3JlYWQ6IEVsZW1lbnRSZWZ9KSBlbnRyaWVzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0Jykgc2VhcmNoSW5wdXQhOiBFbGVtZW50UmVmO1xuXG4gIHNlYXJjaFRlcm0kID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBzZWFyY2hSZXN1bHRDb3VudDogUmVmZXJlbmNlU2VhcmNoQ291bnRlcjtcbiAgc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICByZXN1bHRMaXN0OiBSZWZlcmVuY2VJdGVtW10gPSBbXTtcbiAgcHJpdmF0ZSBfY3VycmVudFNlbGVjdGlvbjogUmVmZXJlbmNlSXRlbVtdO1xuICBjbGlwYm9hcmRJdGVtczogUmVmZXJlbmNlSXRlbVtdID0gW107XG4gIGNsaXBib2FyZE9wZW4gPSB0cnVlO1xuICBfbWFya2VkSXRlbTogUmVmZXJlbmNlSXRlbTtcbiAgc2VhcmNoaW5nID0gZmFsc2U7XG5cbiAgc2V0IG1hcmtlZEl0ZW0oaXRlbTogUmVmZXJlbmNlSXRlbSkge1xuICAgIHRoaXMuX21hcmtlZEl0ZW0gPSBpdGVtO1xuICAgIHRoaXMuc2Nyb2xsSXRlbUludG9WaWV3KHRoaXMuX21hcmtlZEl0ZW0pO1xuICB9XG5cbiAgZ2V0IG1hcmtlZEl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX21hcmtlZEl0ZW07XG4gIH1cblxuICBASW5wdXQoKSBpc0Rpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSB0eXBlczogc3RyaW5nO1xuICBASW5wdXQoKSBtdWx0aXNlbGVjdDogYm9vbGVhbjtcbiAgQElucHV0KCkgY29udGV4dElkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGV4Y2VwdGlvbklEczogc3RyaW5nW107XG5cbiAgQElucHV0KCkgcXVlcnlGaWx0ZXJzOiB7W2ZpZWxkUW5hbWU6IHN0cmluZ106IHtvOiBzdHJpbmcsIHYxOiBhbnksIHYyOiBhbnl9fTtcblxuICBASW5wdXQoKVxuICBzZXQgY3VycmVudFNlbGVjdGlvbihzZWxlY3Rpb246IFJlZmVyZW5jZUl0ZW1bXSkge1xuICAgIHRoaXMuX2N1cnJlbnRTZWxlY3Rpb24gPSBzZWxlY3Rpb247XG4gIH1cbiAgZ2V0IGN1cnJlbnRTZWxlY3Rpb24oKTogUmVmZXJlbmNlSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFNlbGVjdGlvbjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBjbGlwYm9hcmQoY2xpcGJvYXJkOiBDbGlwYm9hcmQpIHtcbiAgICB0aGlzLmNsaXBib2FyZEl0ZW1zID0gdGhpcy5yZWZlcmVuY2VGaW5kZXJTZXJ2aWNlLmdlbmVyYXRlUmVmZXJlbmNlSXRlbXNGcm9tRG1zT2JqZWN0cyhjbGlwYm9hcmQuZWxlbWVudHMsIHRoaXMuY3VycmVudFNlbGVjdGlvbiwgdGhpcy5pc0Rpc2FibGVkKTtcbiAgfVxuICBAT3V0cHV0KCkgYWRkRG1zT2JqZWN0czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXkoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQud2hpY2ggPT09IDQwKSB7IC8vIGFycm93IGRvd25cbiAgICAgIGlmICghdGhpcy5tYXJrZWRJdGVtICYmICh0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCB8fCB0aGlzLnJlc3VsdExpc3QubGVuZ3RoKSkge1xuICAgICAgICB0aGlzLm1hcmtlZEl0ZW0gPSAodGhpcy5jbGlwYm9hcmRJdGVtcy5sZW5ndGggJiYgdGhpcy5jbGlwYm9hcmRPcGVuKSA/IHRoaXMuY2xpcGJvYXJkSXRlbXNbMF0gOiB0aGlzLnJlc3VsdExpc3RbMF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgaW5kZXg7XG4gICAgICAgIGlmICh0aGlzLmNsaXBib2FyZEl0ZW1zICYmIHRoaXMuY2xpcGJvYXJkT3Blbikge1xuICAgICAgICAgIGluZGV4ID0gdGhpcy5jbGlwYm9hcmRJdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSB0aGlzLm1hcmtlZEl0ZW0uaWQpO1xuICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAmJiAhdGhpcy5yZXN1bHRMaXN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgICBpbmRleCA9IDA7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMuY2xpcGJvYXJkSXRlbXNbaW5kZXhdXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSB0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAmJiB0aGlzLnJlc3VsdExpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGluZGV4ID0gMDtcbiAgICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5yZXN1bHRMaXN0W2luZGV4XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMuY2xpcGJvYXJkSXRlbXNbaW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoKGluZGV4ID09PSB1bmRlZmluZWQgfHwgaW5kZXggPT09IC0xKSAmJiB0aGlzLnJlc3VsdExpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgaW5kZXggPSB0aGlzLnJlc3VsdExpc3QuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gdGhpcy5tYXJrZWRJdGVtLmlkKTtcbiAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5yZXN1bHRMaXN0Lmxlbmd0aCAmJiB0aGlzLmNsaXBib2FyZE9wZW4pIHtcbiAgICAgICAgICAgICAgaW5kZXggPSAwO1xuICAgICAgICAgICAgICB0aGlzLm1hcmtlZEl0ZW0gPSB0aGlzLmNsaXBib2FyZEl0ZW1zW2luZGV4XVxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gdGhpcy5yZXN1bHRMaXN0Lmxlbmd0aCAmJiAhdGhpcy5jbGlwYm9hcmRPcGVuKSB7XG4gICAgICAgICAgICAgIGluZGV4ID0gMDtcbiAgICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5yZXN1bHRMaXN0W2luZGV4XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMucmVzdWx0TGlzdFtpbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluZGV4ID0gMDtcbiAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMucmVzdWx0TGlzdFtpbmRleF07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKGV2ZW50LndoaWNoID09PSAzOCkgeyAvLyBhcnJvdyB1cFxuICAgICAgaWYgKCF0aGlzLm1hcmtlZEl0ZW0gJiYgKHRoaXMuY2xpcGJvYXJkSXRlbXMubGVuZ3RoIHx8IHRoaXMucmVzdWx0TGlzdC5sZW5ndGgpKSB7XG4gICAgICAgIHRoaXMubWFya2VkSXRlbSA9ICh0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAmJiB0aGlzLmNsaXBib2FyZE9wZW4pID8gdGhpcy5jbGlwYm9hcmRJdGVtc1swXSA6IHRoaXMucmVzdWx0TGlzdFswXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBpbmRleDtcbiAgICAgICAgaWYgKHRoaXMuY2xpcGJvYXJkSXRlbXMgJiYgdGhpcy5jbGlwYm9hcmRPcGVuKSB7XG4gICAgICAgICAgaW5kZXggPSB0aGlzLmNsaXBib2FyZEl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IHRoaXMubWFya2VkSXRlbS5pZCk7XG4gICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGluZGV4LS07XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xICYmIHRoaXMucmVzdWx0TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgaW5kZXggPSB0aGlzLnJlc3VsdExpc3QubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5yZXN1bHRMaXN0W2luZGV4XVxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gLTEgJiYgIXRoaXMucmVzdWx0TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgaW5kZXggPSB0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMuY2xpcGJvYXJkSXRlbXNbaW5kZXhdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5jbGlwYm9hcmRJdGVtc1tpbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgoaW5kZXggPT09IHVuZGVmaW5lZCB8fCBpbmRleCA9PT0gLTEpICYmIHRoaXMucmVzdWx0TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICBpbmRleCA9IHRoaXMucmVzdWx0TGlzdC5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSB0aGlzLm1hcmtlZEl0ZW0uaWQpO1xuICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAtMSAmJiB0aGlzLmNsaXBib2FyZE9wZW4pIHtcbiAgICAgICAgICAgICAgaW5kZXggPSB0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMuY2xpcGJvYXJkSXRlbXNbaW5kZXhdXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSAtMSAmJiAhdGhpcy5jbGlwYm9hcmRPcGVuKSB7XG4gICAgICAgICAgICAgIGluZGV4ID0gdGhpcy5yZXN1bHRMaXN0Lmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgIHRoaXMubWFya2VkSXRlbSA9IHRoaXMucmVzdWx0TGlzdFtpbmRleF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLm1hcmtlZEl0ZW0gPSB0aGlzLnJlc3VsdExpc3RbaW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbmRleCA9IHRoaXMucmVzdWx0TGlzdC5sZW5ndGggLSAxO1xuICAgICAgICAgICAgdGhpcy5tYXJrZWRJdGVtID0gdGhpcy5yZXN1bHRMaXN0W2luZGV4XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAoZXZlbnQud2hpY2ggPT09IDEzICYmIGV2ZW50LmN0cmxLZXkpIHsgLy8gY3RybCArIGVudGVyXG4gICAgICBpZiAodGhpcy5tYXJrZWRJdGVtICYmICF0aGlzLm1hcmtlZEl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RSZWZlcmVuY2Uoe2l0ZW06IHRoaXMubWFya2VkSXRlbSwgYWRkOiB0cnVlfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKGV2ZW50LndoaWNoID09PSAxMykgeyAvLyBlbnRlclxuICAgICAgaWYgKHRoaXMubWFya2VkSXRlbSAmJiAhdGhpcy5tYXJrZWRJdGVtLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0UmVmZXJlbmNlKHtpdGVtOiB0aGlzLm1hcmtlZEl0ZW0sIGFkZDogIXRoaXMubXVsdGlzZWxlY3R9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZmVyZW5jZUZpbmRlclNlcnZpY2U6IFJlZmVyZW5jZUZpbmRlclNlcnZpY2UpIHtcbiAgICB0aGlzLnNlYXJjaGluZyA9IHRydWU7XG4gICAgdGhpcy5zZWFyY2hUZXJtJC5waXBlKGRlYm91bmNlVGltZSg1MDApKS5zdWJzY3JpYmUoc2VhcmNoVGVybSA9PiB7XG4gICAgICB0aGlzLnJlZmVyZW5jZUZpbmRlclNlcnZpY2UuZmluZFJlZmVyZW5jZXMoc2VhcmNoVGVybSwgW3RoaXMudHlwZXNdLCB0aGlzLmNvbnRleHRJZCwgdGhpcy5xdWVyeUZpbHRlcnMpXG4gICAgICAgIC5zdWJzY3JpYmUoKHNlYXJjaFJlc3VsdDogU2VhcmNoUmVzdWx0KSA9PiB7XG4gICAgICAgICAgY29uc3QgaGl0cyA9ICh0aGlzLmV4Y2VwdGlvbklEcyAmJiBzZWFyY2hSZXN1bHQuaGl0cykgPyBzZWFyY2hSZXN1bHQuaGl0cy5maWx0ZXIoaGl0ID0+ICF0aGlzLmV4Y2VwdGlvbklEcy5pbmNsdWRlcyhoaXQuaWQpKSA6IHNlYXJjaFJlc3VsdC5oaXRzO1xuICAgICAgICAgIGlmIChoaXRzICYmIGhpdHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmNsaXBib2FyZE9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMucmVzdWx0TGlzdCA9IHRoaXMucmVmZXJlbmNlRmluZGVyU2VydmljZS5nZW5lcmF0ZVJlc3VsdHModGhpcy5jbGlwYm9hcmRJdGVtcywgaGl0cywgdGhpcy5jdXJyZW50U2VsZWN0aW9uLCB0aGlzLnR5cGVzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtJC5uZXh0KCcqJyk7XG4gICAgICAgICAgICB0aGlzLmNsaXBib2FyZE9wZW4gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm1hcmtlZEl0ZW0gPSBudWxsO1xuICAgICAgICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGxvYWRpbmdSZWZlcmVuY2VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucmVzdWx0TGlzdC5sZW5ndGg7XG4gIH1cblxuICBnZXQgZGlzYWJsZUFkZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGg7XG4gIH1cblxuICBnZXQgY29weU9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpcGJvYXJkSXRlbXMubGVuZ3RoICYmICF0aGlzLnJlc3VsdExpc3QubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IHNlYXJjaE9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0TGlzdC5sZW5ndGggJiYgIXRoaXMuY2xpcGJvYXJkSXRlbXMubGVuZ3RoO1xuICB9XG5cbiAgc2VsZWN0QWxsRW50cmllcygpe1xuICAgIFsuLi50aGlzLmNsaXBib2FyZEl0ZW1zLCAuLi50aGlzLnJlc3VsdExpc3RdLmZpbHRlcihpdGVtID0+ICFpdGVtLnNlbGVjdGVkKS5mb3JFYWNoKGl0ZW0gPT4gdGhpcy5zZWxlY3RSZWZlcmVuY2Uoe2l0ZW06IGl0ZW0sIGFkZDogZmFsc2V9KSlcbiAgfVxuXG4gIHNlbGVjdFJlZmVyZW5jZShzZWxlY3RSZWZlcmVuY2U6IHtpdGVtOiBSZWZlcmVuY2VJdGVtOyBhZGQ6IGJvb2xlYW59KSB7XG4gICAgY29uc3Qge2l0ZW0sIGFkZH0gPSBzZWxlY3RSZWZlcmVuY2U7XG4gICAgaWYgKGl0ZW0gJiYgIWl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpc2VsZWN0KSB7XG4gICAgICAgICFpdGVtLmNsaXBib2FyZFxuICAgICAgICAgID8gKHRoaXMucmVzdWx0TGlzdCA9IHRoaXMucmVmZXJlbmNlRmluZGVyU2VydmljZS5zZWxlY3RPbk11bHRpc1NlbGVjdCh0aGlzLnJlc3VsdExpc3QsIGl0ZW0pKVxuICAgICAgICAgIDogKHRoaXMuY2xpcGJvYXJkSXRlbXMgPSB0aGlzLnJlZmVyZW5jZUZpbmRlclNlcnZpY2Uuc2VsZWN0T25NdWx0aXNTZWxlY3QodGhpcy5jbGlwYm9hcmRJdGVtcywgaXRlbSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFpdGVtLmNsaXBib2FyZCkge1xuICAgICAgICAgIHRoaXMucmVzdWx0TGlzdCA9IHRoaXMucmVmZXJlbmNlRmluZGVyU2VydmljZS5zZWxlY3RPblNpbmdsZVNlbGVjdCh0aGlzLnJlc3VsdExpc3QsIGl0ZW0pO1xuICAgICAgICAgIHRoaXMuY2xpcGJvYXJkSXRlbXMuZm9yRWFjaChpdGVtID0+IGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jbGlwYm9hcmRJdGVtcyA9IHRoaXMucmVmZXJlbmNlRmluZGVyU2VydmljZS5zZWxlY3RPblNpbmdsZVNlbGVjdCh0aGlzLmNsaXBib2FyZEl0ZW1zLCBpdGVtKTtcbiAgICAgICAgICB0aGlzLnJlc3VsdExpc3QuZm9yRWFjaChpdGVtID0+IGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5yZWZlcmVuY2VGaW5kZXJTZXJ2aWNlLmdlbmVyYXRlU2VsZXRlY0l0ZW1zKHRoaXMucmVzdWx0TGlzdCwgdGhpcy5jbGlwYm9hcmRJdGVtcywgdGhpcy5jdXJyZW50U2VsZWN0aW9uKTtcbiAgICB9XG4gICAgaWYgKGFkZCkge1xuICAgICAgdGhpcy5hZGRJdGVtcygpO1xuICAgIH1cbiAgfVxuXG4gIGFkZEl0ZW1zKCkge1xuICAgIHRoaXMuYWRkRG1zT2JqZWN0cy5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbEl0ZW1JbnRvVmlldyhpdGVtKXtcbiAgICBpZiAoaXRlbSkge1xuICAgICAgbGV0IGluZGV4ID0gdGhpcy5jbGlwYm9hcmRJdGVtcy5maW5kSW5kZXgoaSA9PiBpLmlkID09PSBpdGVtLmlkKTtcbiAgICAgIGlmIChpbmRleCA9PT0gLTEgJiYgdGhpcy5yZXN1bHRMaXN0Lmxlbmd0aCkge1xuICAgICAgICBpbmRleCA9IHRoaXMucmVzdWx0TGlzdC5maW5kSW5kZXgoaSA9PiBpLmlkID09PSBpdGVtLmlkKSArIHRoaXMuY2xpcGJvYXJkSXRlbXMubGVuZ3RoO1xuICAgICAgfVxuICAgICAgdGhpcy5lbnRyaWVzLnRvQXJyYXkoKVtpbmRleF0ubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyhmYWxzZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmVudHJpZXMudG9BcnJheSgpLmxlbmd0aCkge1xuICAgICAgdGhpcy5lbnRyaWVzLnRvQXJyYXkoKVswXS5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgLy8gaW5pdGlhbGx5IGxvYWQgZXZlcnl0aGluZyBhbmQgZm9jdXMgaW50byB0aGUgc2VhcmNoIGZpZWxkXG4gICAgdGhpcy5zZWFyY2hUZXJtJC5uZXh0KCcqJyk7XG4gICAgdGhpcy5zZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cbn1cbiIsIlxuPHNlY3Rpb24gY2xhc3M9XCJyZWZlcmVuY2UtZmluZGVyLXNlYXJjaC0taW5wdXRcIj5cbiAgPGlucHV0ICNzZWFyY2hJbnB1dCBhdXRvZm9jdXMgdGFiaW5kZXg9XCIxXCIgKGlucHV0KT1cInNlYXJjaFRlcm0kLm5leHQoJGV2ZW50LnRhcmdldC52YWx1ZSlcIiBjbGFzcz1cInNlYXJjaFwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJ7eygnZW8uc2VhcmNoLnJlc3VsdC50ZXJtJyB8IHRyYW5zbGF0ZSl9fVwiLz5cbjwvc2VjdGlvbj5cblxuPHNlY3Rpb24gY2xhc3M9XCJyZWZlcmVuY2UtZmluZGVyLS1jb250ZW50XCIgKm5nSWY9XCIhc2VhcmNoaW5nOyBlbHNlIGxvYWRpbmdcIj5cbiAgPGRpdiBjbGFzcz1cInJlc3VsdHNcIj5cbiAgICA8ZW8tc2ltcGxlLWFjY29yZGlvbiAqbmdJZj1cImNsaXBib2FyZEl0ZW1zLmxlbmd0aCAmJiAhY29weU9ubHlcIlxuICAgIFtoZWFkZXJdPVwiJ2VvLmNsaXBib2FyZC50eXBlLmNvcHknIHwgdHJhbnNsYXRlXCJcbiAgICBbc2VsZWN0ZWRdPVwiY2xpcGJvYXJkT3BlblwiXG4gICAgKHNlbGVjdENoYW5nZSk9XCJjbGlwYm9hcmRPcGVuID0gJGV2ZW50O1wiXG4gICAgY2xhc3M9XCJyZXN1bHRzLWFjY29yZGlvblwiPlxuICAgICAgICA8ZW8tcmVmZXJlbmNlLWZpbmRlci1lbnRyeSAqbmdGb3I9XCJsZXQgbGlzdCBvZiBjbGlwYm9hcmRJdGVtc1wiICNlbnRyeVxuICAgICAgICAgIFtAZmFkZUluT3V0XVxuICAgICAgICAgIFtsaXN0XT1cImxpc3RcIlxuICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJtdWx0aXNlbGVjdFwiXG4gICAgICAgICAgKHNlbGVjdFJlZmVyZW5jZSk9XCJzZWxlY3RSZWZlcmVuY2UoJGV2ZW50KVwiXG4gICAgICAgICAgW21hcmtlZF09XCJsaXN0LmlkID09PSBtYXJrZWRJdGVtPy5pZFwiXG4gICAgICAgID5cbiAgICAgIDwvZW8tcmVmZXJlbmNlLWZpbmRlci1lbnRyeT5cbiAgICA8L2VvLXNpbXBsZS1hY2NvcmRpb24+XG5cbiAgICA8c2VjdGlvbiAqbmdJZj1cImNsaXBib2FyZEl0ZW1zLmxlbmd0aCAmJiBjb3B5T25seVwiPlxuICAgICAgPGVvLXJlZmVyZW5jZS1maW5kZXItZW50cnkgKm5nRm9yPVwibGV0IGxpc3Qgb2YgY2xpcGJvYXJkSXRlbXNcIiAjZW50cnlcbiAgICAgICAgW0BmYWRlSW5PdXRdXG4gICAgICAgIFtsaXN0XT1cImxpc3RcIlxuICAgICAgICBbbXVsdGlzZWxlY3RdPVwibXVsdGlzZWxlY3RcIlxuICAgICAgICAoc2VsZWN0UmVmZXJlbmNlKT1cInNlbGVjdFJlZmVyZW5jZSgkZXZlbnQpXCJcbiAgICAgICAgW21hcmtlZF09XCJsaXN0LmlkID09PSBtYXJrZWRJdGVtPy5pZFwiXG4gICAgICA+XG4gICAgICA8L2VvLXJlZmVyZW5jZS1maW5kZXItZW50cnk+XG4gICAgPC9zZWN0aW9uPlxuICAgIDxkaXYgY2xhc3M9XCJwYWRkaW5nXCI+PC9kaXY+XG5cbiAgICA8ZW8tc2ltcGxlLWFjY29yZGlvbiAqbmdJZj1cInJlc3VsdExpc3QubGVuZ3RoICYmICFzZWFyY2hPbmx5XCIgW2hlYWRlcl09XCInZW8uc2VhcmNoLnRpdGxlJyB8IHRyYW5zbGF0ZVwiIGNsYXNzPVwicmVzdWx0cy1hY2NvcmRpb25cIj5cbiAgICAgIDxlby1yZWZlcmVuY2UtZmluZGVyLWVudHJ5ICpuZ0Zvcj1cImxldCBsaXN0IG9mIHJlc3VsdExpc3RcIiAjZW50cnlcbiAgICAgICAgW0BmYWRlSW5PdXRdXG4gICAgICAgIFtsaXN0XT1cImxpc3RcIlxuICAgICAgICBbbXVsdGlzZWxlY3RdPVwibXVsdGlzZWxlY3RcIlxuICAgICAgICAoc2VsZWN0UmVmZXJlbmNlKT1cInNlbGVjdFJlZmVyZW5jZSgkZXZlbnQpXCJcbiAgICAgICAgW21hcmtlZF09XCJsaXN0LmlkID09PSBtYXJrZWRJdGVtPy5pZFwiXG4gICAgICA+XG4gICAgICA8L2VvLXJlZmVyZW5jZS1maW5kZXItZW50cnk+XG4gICAgPC9lby1zaW1wbGUtYWNjb3JkaW9uPlxuXG4gICAgPHNlY3Rpb24gKm5nSWY9XCJyZXN1bHRMaXN0Lmxlbmd0aCAmJiBzZWFyY2hPbmx5XCI+XG4gICAgICA8ZW8tcmVmZXJlbmNlLWZpbmRlci1lbnRyeSAqbmdGb3I9XCJsZXQgbGlzdCBvZiByZXN1bHRMaXN0XCIgI2VudHJ5XG4gICAgICAgIFtAZmFkZUluT3V0XVxuICAgICAgICBbbGlzdF09XCJsaXN0XCJcbiAgICAgICAgW211bHRpc2VsZWN0XT1cIm11bHRpc2VsZWN0XCJcbiAgICAgICAgKHNlbGVjdFJlZmVyZW5jZSk9XCJzZWxlY3RSZWZlcmVuY2UoJGV2ZW50KVwiXG4gICAgICAgIFttYXJrZWRdPVwibGlzdC5pZCA9PT0gbWFya2VkSXRlbT8uaWRcIlxuICAgICAgPlxuICAgICAgPC9lby1yZWZlcmVuY2UtZmluZGVyLWVudHJ5PlxuICAgIDwvc2VjdGlvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImN0YVwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwibXVsdGlzZWxlY3RcIiAoY2xpY2spPVwic2VsZWN0QWxsRW50cmllcygpXCI+e3soJ2VvLmN0YS5idXR0b24uc2VsZWN0LmFsbCcgfCB0cmFuc2xhdGUpfX08L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImFkZFwiIChjbGljayk9XCJhZGRJdGVtcygpXCIgKm5nSWY9XCIhZGlzYWJsZUFkZFwiIFtAZmFkZUluT3V0XSAgW2NsYXNzLmFjdGl2ZV09XCIhZGlzYWJsZUFkZFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlQWRkXCIgW3RpdGxlXT1cIidlby5jdGEuYnV0dG9uLmFkZCcgfCB0cmFuc2xhdGVcIj5cbiAgICAgIHt7KCdlby5jdGEuYnV0dG9uLmFkZCcgfCB0cmFuc2xhdGUpfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgPGRpdiBjbGFzcz1cImxvYWRlci1vdmVybGF5X19tYXNrXCI+XG4gICAgPGVvLWxvYWRpbmctc3Bpbm5lciBjbGFzcz1cInJlZmVyZW5jZV9fbG9hZGVyXCIgW3NpemVdPVwiJ2xhcmdlJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLWZpbmRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2lkLXJlZmVyZW5jZS9yZWZlcmVuY2UtZmluZGVyL3JlZmVyZW5jZS1maW5kZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvZm9ybS1lbGVtZW50cy9pZC1yZWZlcmVuY2UvcmVmZXJlbmNlLWZpbmRlci9yZWZlcmVuY2UtZmluZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBYSxVQUFVLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVsSixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQU1sRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBUTVDLE1BQU0sT0FBTyx3QkFBd0I7SUFlbkMsSUFBSSxVQUFVLENBQUMsSUFBbUI7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFVRCxJQUNJLGdCQUFnQixDQUFDLFNBQTBCO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksZ0JBQWdCO1FB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T0FBTztzQkFBakQsWUFBWTt1QkFBQyxPQUFPLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO2dCQUNmLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFxQmYsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFHRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBU0YsU0FBUztzQkFEWixLQUFLO2dCQUlJLGFBQWE7c0JBQXRCLE1BQU07Z0JBR1AsS0FBSztzQkFESixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIEhvc3RMaXN0ZW5lciwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NsaXBib2FyZCwgU2VhcmNoUmVzdWx0fSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmFkZUluT3V0fSBmcm9tICcuLi9hbmltYXRpb24vcmVmZXJlbmNlLWZpbmRlci5hbmltYXRpb24nO1xuaW1wb3J0IHtcbiAgUmVmZXJlbmNlSXRlbSxcbiAgUmVmZXJlbmNlU2VhcmNoQ291bnRlclxufSBmcm9tICcuLi9pbnRlcmZhY2UvcmVmZXJlbmNlLWZpbmRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHtSZWZlcmVuY2VGaW5kZXJTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3JlZmVyZW5jZS1maW5kZXIuc2VydmljZSc7XG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1yZWZlcmVuY2UtZmluZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZmVyZW5jZS1maW5kZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWZlcmVuY2UtZmluZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtmYWRlSW5PdXRdXG59KVxuZXhwb3J0IGNsYXNzIFJlZmVyZW5jZUZpbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2VudHJ5Jywge3JlYWQ6IEVsZW1lbnRSZWZ9KSBlbnRyaWVzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0Jykgc2VhcmNoSW5wdXQhOiBFbGVtZW50UmVmO1xuXG4gIHNlYXJjaFRlcm0kID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBzZWFyY2hSZXN1bHRDb3VudDogUmVmZXJlbmNlU2VhcmNoQ291bnRlcjtcbiAgc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICByZXN1bHRMaXN0OiBSZWZlcmVuY2VJdGVtW10gPSBbXTtcbiAgcHJpdmF0ZSBfY3VycmVudFNlbGVjdGlvbjogUmVmZXJlbmNlSXRlbVtdO1xuICBjbGlwYm9hcmRJdGVtczogUmVmZXJlbmNlSXRlbVtdID0gW107XG4gIGNsaXBib2FyZE9wZW4gPSB0cnVlO1xuICBfbWFya2VkSXRlbTogUmVmZXJlbmNlSXRlbTtcbiAgc2VhcmNoaW5nID0gZmFsc2U7XG5cbiAgc2V0IG1hcmtlZEl0ZW0oaXRlbTogUmVmZXJlbmNlSXRlbSkge1xuICAgIHRoaXMuX21hcmtlZEl0ZW0gPSBpdGVtO1xuICAgIHRoaXMuc2Nyb2xsSXRlbUludG9WaWV3KHRoaXMuX21hcmtlZEl0ZW0pO1xuICB9XG5cbiAgZ2V0IG1hcmtlZEl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX21hcmtlZEl0ZW07XG4gIH1cblxuICBASW5wdXQoKSBpc0Rpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSB0eXBlczogc3RyaW5nO1xuICBASW5wdXQoKSBtdWx0aXNlbGVjdDogYm9vbGVhbjtcbiAgQElucHV0KCkgY29udGV4dElkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGV4Y2VwdGlvbklEczogc3RyaW5nW107XG5cbiAgQElucHV0KCkgcXVlcnlGaWx0ZXJzOiB7W2ZpZWxkUW5hbWU6IHN0cmluZ106IHtvOiBzdHJpbmcsIHYxOiBhbnksIHYyOiBhbnl9fTtcblxuICBASW5wdXQoKVxuICBzZXQgY3VycmVudFNlbGVjdGlvbihzZWxlY3Rpb246IFJlZmVyZW5jZUl0ZW1bXSkge1xuICAgIHRoaXMuX2N1cnJlbnRTZWxlY3Rpb24gPSBzZWxlY3Rpb247XG4gIH1cbiAgZ2V0IGN1cnJlbnRTZWxlY3Rpb24oKTogUmVmZXJlbmNlSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFNlbGVjdGlvbjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBjbGlwYm9hcmQoY2xpcGJvYXJkOiBDbGlwYm9hcmQpIHtcbiAgICB0aGlzLmNsaXBib2FyZEl0ZW1zID0gdGhpcy5yZWZlcmVuY2VGaW5kZXJTZXJ2aWNlLmdlbmVyYXRlUmVmZXJlbmNlSXRlbXNGcm9tRG1zT2JqZWN0cyhjbGlwYm9hcmQuZWxlbWVudHMsIHRoaXMuY3VycmVudFNlbGVjdGlvbiwgdGhpcy5pc0Rpc2FibGVkKTtcbiAgfVxuICBAT3V0cHV0KCkgYWRkRG1zT2JqZWN0czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXkoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQud2hpY2ggPT09IDQwKSB7IC8vIGFycm93IGRvd25cbiAgICAgIGlmICghdGhpcy5tYXJrZWRJdGVtICYmICh0aGlzLmNsaXBib2FyZEl0ZW1zLmxlbmd0aCB8fCB0aGlzLnJlc3VsdExpc3QubGVuZ3RoKSkge1xuICAgICAgICB0aGlzLm1hcmtlZEl0ZW0gPSAodGhpcy5jbGlwYm9hcmRJdGVtcy5sZW5ndGggJiYgdGhpcy5jbGlwYm9hcmRPcGVuKSA/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
|