@huntsman-cancer-institute/navigation 15.0.3 → 16.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/badge.component.d.ts +1 -1
- package/components/brand-nav.component.d.ts +1 -1
- package/components/div-nav.component.d.ts +1 -1
- package/components/li-dd-nav.component.d.ts +1 -1
- package/components/li-exp-nav.component.d.ts +1 -1
- package/components/li-nav.component.d.ts +1 -1
- package/components/nav.component.d.ts +1 -1
- package/components/search-list/search-list-controller.component.d.ts +1 -1
- package/components/search-list/search-list.component.d.ts +1 -1
- package/components/search-tree/search-tree-controller.component.d.ts +1 -1
- package/components/search-tree/search-tree.component.d.ts +2 -2
- package/components/template.component.d.ts +1 -1
- package/components/ul-nav.component.d.ts +1 -1
- package/directives/top-margin.directive.d.ts +1 -1
- package/{esm2020 → esm2022}/components/badge.component.mjs +6 -6
- package/{esm2020 → esm2022}/components/brand-nav.component.mjs +6 -6
- package/{esm2020 → esm2022}/components/div-nav.component.mjs +6 -6
- package/{esm2020 → esm2022}/components/li-dd-nav.component.mjs +6 -6
- package/{esm2020 → esm2022}/components/li-exp-nav.component.mjs +6 -6
- package/{esm2020 → esm2022}/components/li-nav.component.mjs +6 -6
- package/{esm2020 → esm2022}/components/nav.component.mjs +5 -5
- package/{esm2020 → esm2022}/components/search-list/search-list-controller.component.mjs +7 -7
- package/{esm2020 → esm2022}/components/search-list/search-list.component.mjs +7 -7
- package/{esm2020 → esm2022}/components/search-tree/search-tree-controller.component.mjs +6 -6
- package/{esm2020 → esm2022}/components/search-tree/search-tree.component.mjs +8 -8
- package/{esm2020 → esm2022}/components/template.component.mjs +6 -6
- package/{esm2020 → esm2022}/components/ul-nav.component.mjs +6 -6
- package/{esm2020 → esm2022}/directives/top-margin.directive.mjs +4 -4
- package/{esm2020 → esm2022}/impl/app-footer.component.mjs +8 -8
- package/{esm2020 → esm2022}/impl/app-header.component.mjs +8 -8
- package/{esm2020 → esm2022}/impl/sidebar.component.mjs +8 -8
- package/{esm2020 → esm2022}/navigation.module.mjs +67 -67
- package/{esm2020 → esm2022}/services/navigation-global.service.mjs +4 -4
- package/{esm2020 → esm2022}/services/navigation.service.mjs +4 -4
- package/{fesm2020 → fesm2022}/huntsman-cancer-institute-navigation.mjs +163 -163
- package/{fesm2020 → fesm2022}/huntsman-cancer-institute-navigation.mjs.map +1 -1
- package/impl/app-footer.component.d.ts +1 -1
- package/impl/app-header.component.d.ts +1 -1
- package/impl/sidebar.component.d.ts +1 -1
- package/navigation.module.d.ts +1 -1
- package/package.json +17 -21
- package/fesm2015/huntsman-cancer-institute-navigation.mjs +0 -6366
- package/fesm2015/huntsman-cancer-institute-navigation.mjs.map +0 -1
- /package/{esm2020 → esm2022}/components/search-list/row-group.mjs +0 -0
- /package/{esm2020 → esm2022}/huntsman-cancer-institute-navigation.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
|
@@ -31,9 +31,8 @@ let SearchTreeControllerComponent = class SearchTreeControllerComponent extends
|
|
|
31
31
|
this.hideElements = config.hideElements;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
SearchTreeControllerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SearchTreeControllerComponent, selector: "hci-search-tree-controller", inputs: { buttonTemplate: "buttonTemplate", hideElements: "hideElements" }, exportAs: ["searchTreeControllerComponent"], usesInheritance: true, ngImport: i0, template: `
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchTreeControllerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SearchTreeControllerComponent, selector: "hci-search-tree-controller", inputs: { buttonTemplate: "buttonTemplate", hideElements: "hideElements" }, exportAs: ["searchTreeControllerComponent"], usesInheritance: true, ngImport: i0, template: `
|
|
37
36
|
<div *ngIf="!hideElements" id="search-title" class="d-flex flex-column">
|
|
38
37
|
<div *ngIf="showTitle" class="d-flex pl-2">
|
|
39
38
|
{{title}}
|
|
@@ -124,12 +123,13 @@ SearchTreeControllerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
|
|
|
124
123
|
</div>
|
|
125
124
|
</div>
|
|
126
125
|
</div>
|
|
127
|
-
`, isInline: true, styles: [".sidebar-container{background-color:#e7e7e7;color:#fff;box-shadow:none;z-index:1000;padding-top:3px;margin-left:-8px;margin-right:-8px;padding-bottom:32px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i3.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i3.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i3.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "component", type: i3.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "directive", type: i4.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i4.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }] });
|
|
126
|
+
`, isInline: true, styles: [".sidebar-container{background-color:#e7e7e7;color:#fff;box-shadow:none;z-index:1000;padding-top:3px;margin-left:-8px;margin-right:-8px;padding-bottom:32px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i3.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i3.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i3.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i3.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "directive", type: i3.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i3.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "directive", type: i4.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i4.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }] }); }
|
|
127
|
+
};
|
|
128
128
|
SearchTreeControllerComponent = __decorate([
|
|
129
129
|
ComponentType("SearchTreeControllerComponent")
|
|
130
130
|
], SearchTreeControllerComponent);
|
|
131
131
|
export { SearchTreeControllerComponent };
|
|
132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchTreeControllerComponent, decorators: [{
|
|
133
133
|
type: Component,
|
|
134
134
|
args: [{ selector: "hci-search-tree-controller", exportAs: "searchTreeControllerComponent", template: `
|
|
135
135
|
<div *ngIf="!hideElements" id="search-title" class="d-flex flex-column">
|
|
@@ -228,4 +228,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
228
228
|
}], hideElements: [{
|
|
229
229
|
type: Input
|
|
230
230
|
}] } });
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXRyZWUtY29udHJvbGxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXZpZ2F0aW9uL3NyYy9jb21wb25lbnRzL3NlYXJjaC10cmVlL3NlYXJjaC10cmVlLWNvbnRyb2xsZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFDOUIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7QUFFOUY7Ozs7R0FJRztBQStHSSxJQUFNLDZCQUE2QixHQUFuQyxNQUFNLDZCQUE4QixTQUFRLDZCQUE2QjtJQUF6RTs7UUFHSSxpQkFBWSxHQUFZLEtBQUssQ0FBQztLQVl4QztJQVZDLFlBQVksQ0FBQyxNQUFNO1FBQ2pCLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0IsSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztTQUM3QztRQUNELElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7U0FDekM7SUFDSCxDQUFDOzsySEFkVSw2QkFBNkI7K0dBQTdCLDZCQUE2QixrTkE3RjlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkZUO0FBRVUsNkJBQTZCO0lBOUd6QyxhQUFhLENBQUMsK0JBQStCLENBQUM7R0E4R2xDLDZCQUE2QixDQWV6QztTQWZZLDZCQUE2Qjs0RkFBN0IsNkJBQTZCO2tCQTdHekMsU0FBUzsrQkFDRSw0QkFBNEIsWUFDNUIsK0JBQStCLFlBYy9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkZUOzhCQUlRLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LCBJbnB1dCwgVGVtcGxhdGVSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tIFwiQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvdXRpbHNcIjtcclxuaW1wb3J0IHtTZWFyY2hMaXN0Q29udHJvbGxlckNvbXBvbmVudH0gZnJvbSBcIi4uL3NlYXJjaC1saXN0L3NlYXJjaC1saXN0LWNvbnRyb2xsZXIuY29tcG9uZW50XCI7XHJcblxyXG4vKipcclxuICogVGhlIHNlYXJjaCB0cmVlIGNvbnRyb2xsZXIgcmVuZGVycyBhcyBhIGhlYWRlciB0byBvbmUgb3IgbW9yZSBzZWFyY2ggdHJlZXMuICBPbmx5IG9uZSBzZWFyY2ggdHJlZSBjYW4gYmUgc2hvd24gYXQgYSB0aW1lLlxyXG4gKiBUaGUgY29udHJvbGxlciBmZWF0dXJlcyB0aGUgYWJpbGl0eSB0byBoYW5kbGUgZmlsdGVyaW5nIGFuZCBzb3J0aW5nLiAgV2l0aG91dCB0aGUgY29udHJvbGxlciwgdGhlIHNlYXJjaCBsaXN0IGNhbiBleGlzdCxcclxuICogYnV0IGl0IGNhbiBvbmx5IGhhbmRsZSBwYWdpbmcgaW50ZXJuYWxseS5cclxuICovXHJcbkBDb21wb25lbnRUeXBlKFwiU2VhcmNoVHJlZUNvbnRyb2xsZXJDb21wb25lbnRcIilcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaGNpLXNlYXJjaC10cmVlLWNvbnRyb2xsZXJcIixcclxuICBleHBvcnRBczogXCJzZWFyY2hUcmVlQ29udHJvbGxlckNvbXBvbmVudFwiLFxyXG4gIHN0eWxlczogW2BcclxuICAgIC5zaWRlYmFyLWNvbnRhaW5lciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFN0U3RTc7XHJcbiAgICAgIGNvbG9yOiAjZmZmIDtcclxuICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgei1pbmRleDogMTAwMDtcclxuICAgICAgcGFkZGluZy10b3A6IDNweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogLThweDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDMycHg7XHJcbiAgICB9XHJcblxyXG4gIGBdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2ICpuZ0lmPVwiIWhpZGVFbGVtZW50c1wiIGlkPVwic2VhcmNoLXRpdGxlXCIgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgPGRpdiAqbmdJZj1cInNob3dUaXRsZVwiIGNsYXNzPVwiZC1mbGV4IHBsLTJcIj5cclxuICAgICAgICB7e3RpdGxlfX1cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IG1sLWF1dG8gbXItMlwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImJ1dHRvblRlbXBsYXRlXCI+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+PC9kaXY+XHJcbiAgICAgICAgICA8YSAoY2xpY2spPVwidG9nZ2xlU2hvd09wdGlvbnMoJGV2ZW50KVwiPjxpIGNsYXNzPVwiZmFzIGZhLWNvZ1wiPjwvaT48L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1vcHRpb25zXCIgW2NsYXNzLmV4cGFuZGVkXT1cInNob3dPcHRpb25zXCIgKm5nSWY9XCJmaWx0ZXJCeUFsbG93ZWRGaWVsZHMubGVuZ3RoID4gMCAmJiBzb3J0QnlBbGxvd2VkRmllbGRzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDx1bCBuZ2JOYXYgI25hdj1cIm5nYk5hdlwiIGNsYXNzPVwibmF2LXRhYnNcIj5cclxuICAgICAgICAgICAgPGxpIG5nYk5hdkl0ZW0gICpuZ0lmPVwiZmlsdGVyQnlBbGxvd2VkRmllbGRzLmxlbmd0aCA+IDFcIj5cclxuICAgICAgICAgICAgICA8YSBuZ2JOYXZMaW5rID4gRmlsdGVyaW5nIDwvYT5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGJvdW5kRmlsdGVyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbS0xXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImZsZXg6IDAgMCA0MCU7XCI+e3tnZXRGaWVsZERpc3BsYXkoZmlsdGVyLmZpZWxkKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW25nTW9kZWxdPVwiZmlsdGVyLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRGaWx0ZXIoJGV2ZW50LCBmaWx0ZXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJhcHBseUZpbHRlcnMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmbGV4OiAxIDEgNjAlO1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xIG0tMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFwcGx5RmlsdGVycygpXCIgY2xhc3M9XCJtbC1hdXRvIG1yLTFcIj48aSBjbGFzcz1cImZhcyBmYS1jaGVjay1jaXJjbGVcIj48L2k+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2V0dXBGaWx0ZXJzKHRydWUpXCIgY2xhc3M9XCJtci0wXCI+PGkgY2xhc3M9XCJmYXMgZmEtdGltZXMtY2lyY2xlXCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSBuZ2JOYXZJdGVtICpuZ0lmPVwic29ydEJ5QWxsb3dlZEZpZWxkcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgPGEgbmdiTmF2TGluayA+IFNvcnRpbmcgPC9hPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzb3J0RmllbGQgb2Ygc29ydEJ5QWxsb3dlZEZpZWxkc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbS0yXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyO1wiIChjbGljayk9XCJzZXRTb3J0KCRldmVudCwgc29ydEZpZWxkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxLjVyZW07XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1NvcnQoc29ydEZpZWxkKSAmJiBpc1NvcnRBc2Moc29ydEZpZWxkKVwiIFtzdHlsZS5jb2xvcl09XCJpc0ZpcnN0U29ydChzb3J0RmllbGQpID8gJ2dyZWVuJyA6ICdpbmhlcml0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhIGZhLWFycm93LWNpcmNsZS11cCBmYS1sZ1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1NvcnQoc29ydEZpZWxkKSAmJiAhaXNTb3J0QXNjKHNvcnRGaWVsZClcIiBbc3R5bGUuY29sb3JdPVwiaXNGaXJzdFNvcnQoc29ydEZpZWxkKSA/ICdncmVlbicgOiAnaW5oZXJpdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYSBmYS1hcnJvdy1jaXJjbGUtZG93biBmYS1sZ1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7Z2V0RmllbGREaXNwbGF5KHNvcnRGaWVsZCl9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPGRpdiBbbmdiTmF2T3V0bGV0XT1cIm5hdlwiID48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbWItMSBnbG9iYWwtc2VhcmNoXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgIDxpbnB1dCBbbmdNb2RlbF09XCJnbG9iYWxTZWFyY2hcIiAoa2V5dXApPVwiZG9HbG9iYWxTZWFyY2goJGV2ZW50KVwiIGNsYXNzPVwibWwtMlwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCIvPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtbC0xIG1yLTFcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFsIGZhLXNlYXJjaFwiPjwvaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggcC0xIHgtYXV0b1wiICpuZ0lmPVwiaGFzVmFsaWRGaWx0ZXJzKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgZmlsdGVyc1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyLnZhbGlkXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiY2xlYXJGaWx0ZXIoZmlsdGVyKVwiIGNsYXNzPVwiZC1mbGV4IHBpbGxcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7ZmlsdGVyLmZpZWxkfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsb3NlLWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lcy1jaXJjbGUgZmEteHNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hMaXN0cy5sZW5ndGggPiAxXCIgY2xhc3M9XCJkLWZsZXggeC1oaWRkZW4gbGlzdC10b2dnbGVcIj5cclxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgW25nTW9kZWxdPVwic2VsZWN0ZWRTZWFyY2hMaXN0XCIgKG5nTW9kZWxDaGFuZ2UpPVwic2V0U2VsZWN0ZWRTZWFyY2hMaXN0KCRldmVudClcIj5cclxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAqbmdGb3I9XCJsZXQgc2VhcmNoTGlzdCBvZiBzZWFyY2hMaXN0c1wiIG1hdC1yYWlzZWQtYnV0dG9uLXRvZ2dsZSBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwic2VhcmNoTGlzdFwiPlxyXG4gICAgICAgICAgICB7e3NlYXJjaExpc3R9fVxyXG4gICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImhpZGVFbGVtZW50c1wiIGNsYXNzPVwic2lkZWJhci1jb250YWluZXJcIj5cclxuICAgICAgPGRpdiBpZD1cInNlYXJjaC10aXRsZVwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHB0LTFcIj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93VGl0bGVcIiBjbGFzcz1cImQtZmxleCBwbC0zXCI+XHJcbiAgICAgICAgICAgIHt7dGl0bGV9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoVHJlZUNvbnRyb2xsZXJDb21wb25lbnQgZXh0ZW5kcyBTZWFyY2hMaXN0Q29udHJvbGxlckNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGJ1dHRvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIGhpZGVFbGVtZW50czogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICB1cGRhdGVDb25maWcoY29uZmlnKSB7XHJcbiAgICBzdXBlci51cGRhdGVDb25maWcoY29uZmlnKTtcclxuXHJcbiAgICBpZiAoY29uZmlnLmJ1dHRvblRlbXBsYXRlKSB7XHJcbiAgICAgIHRoaXMuYnV0dG9uVGVtcGxhdGUgPSBjb25maWcuYnV0dG9uVGVtcGxhdGU7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnLmhpZGVFbGVtZW50cykge1xyXG4gICAgICB0aGlzLmhpZGVFbGVtZW50cyA9IGNvbmZpZy5oaWRlRWxlbWVudHM7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXRyZWUtY29udHJvbGxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXZpZ2F0aW9uL3NyYy9jb21wb25lbnRzL3NlYXJjaC10cmVlL3NlYXJjaC10cmVlLWNvbnRyb2xsZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFDOUIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7QUFFOUY7Ozs7R0FJRztBQStHSSxJQUFNLDZCQUE2QixHQUFuQyxNQUFNLDZCQUE4QixTQUFRLDZCQUE2QjtJQUF6RTs7UUFHSSxpQkFBWSxHQUFZLEtBQUssQ0FBQztLQVl4QztJQVZDLFlBQVksQ0FBQyxNQUFNO1FBQ2pCLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0IsSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztTQUM3QztRQUNELElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7U0FDekM7SUFDSCxDQUFDOytHQWRVLDZCQUE2QjttR0FBN0IsNkJBQTZCLGtOQTdGOUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyRlQ7O0FBRVUsNkJBQTZCO0lBOUd6QyxhQUFhLENBQUMsK0JBQStCLENBQUM7R0E4R2xDLDZCQUE2QixDQWV6QztTQWZZLDZCQUE2Qjs0RkFBN0IsNkJBQTZCO2tCQTdHekMsU0FBUzsrQkFDRSw0QkFBNEIsWUFDNUIsK0JBQStCLFlBYy9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkZUOzhCQUlRLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LCBJbnB1dCwgVGVtcGxhdGVSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tIFwiQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvdXRpbHNcIjtcclxuaW1wb3J0IHtTZWFyY2hMaXN0Q29udHJvbGxlckNvbXBvbmVudH0gZnJvbSBcIi4uL3NlYXJjaC1saXN0L3NlYXJjaC1saXN0LWNvbnRyb2xsZXIuY29tcG9uZW50XCI7XHJcblxyXG4vKipcclxuICogVGhlIHNlYXJjaCB0cmVlIGNvbnRyb2xsZXIgcmVuZGVycyBhcyBhIGhlYWRlciB0byBvbmUgb3IgbW9yZSBzZWFyY2ggdHJlZXMuICBPbmx5IG9uZSBzZWFyY2ggdHJlZSBjYW4gYmUgc2hvd24gYXQgYSB0aW1lLlxyXG4gKiBUaGUgY29udHJvbGxlciBmZWF0dXJlcyB0aGUgYWJpbGl0eSB0byBoYW5kbGUgZmlsdGVyaW5nIGFuZCBzb3J0aW5nLiAgV2l0aG91dCB0aGUgY29udHJvbGxlciwgdGhlIHNlYXJjaCBsaXN0IGNhbiBleGlzdCxcclxuICogYnV0IGl0IGNhbiBvbmx5IGhhbmRsZSBwYWdpbmcgaW50ZXJuYWxseS5cclxuICovXHJcbkBDb21wb25lbnRUeXBlKFwiU2VhcmNoVHJlZUNvbnRyb2xsZXJDb21wb25lbnRcIilcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaGNpLXNlYXJjaC10cmVlLWNvbnRyb2xsZXJcIixcclxuICBleHBvcnRBczogXCJzZWFyY2hUcmVlQ29udHJvbGxlckNvbXBvbmVudFwiLFxyXG4gIHN0eWxlczogW2BcclxuICAgIC5zaWRlYmFyLWNvbnRhaW5lciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFN0U3RTc7XHJcbiAgICAgIGNvbG9yOiAjZmZmIDtcclxuICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgei1pbmRleDogMTAwMDtcclxuICAgICAgcGFkZGluZy10b3A6IDNweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogLThweDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDMycHg7XHJcbiAgICB9XHJcblxyXG4gIGBdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2ICpuZ0lmPVwiIWhpZGVFbGVtZW50c1wiIGlkPVwic2VhcmNoLXRpdGxlXCIgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgPGRpdiAqbmdJZj1cInNob3dUaXRsZVwiIGNsYXNzPVwiZC1mbGV4IHBsLTJcIj5cclxuICAgICAgICB7e3RpdGxlfX1cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IG1sLWF1dG8gbXItMlwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImJ1dHRvblRlbXBsYXRlXCI+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+PC9kaXY+XHJcbiAgICAgICAgICA8YSAoY2xpY2spPVwidG9nZ2xlU2hvd09wdGlvbnMoJGV2ZW50KVwiPjxpIGNsYXNzPVwiZmFzIGZhLWNvZ1wiPjwvaT48L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1vcHRpb25zXCIgW2NsYXNzLmV4cGFuZGVkXT1cInNob3dPcHRpb25zXCIgKm5nSWY9XCJmaWx0ZXJCeUFsbG93ZWRGaWVsZHMubGVuZ3RoID4gMCAmJiBzb3J0QnlBbGxvd2VkRmllbGRzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDx1bCBuZ2JOYXYgI25hdj1cIm5nYk5hdlwiIGNsYXNzPVwibmF2LXRhYnNcIj5cclxuICAgICAgICAgICAgPGxpIG5nYk5hdkl0ZW0gICpuZ0lmPVwiZmlsdGVyQnlBbGxvd2VkRmllbGRzLmxlbmd0aCA+IDFcIj5cclxuICAgICAgICAgICAgICA8YSBuZ2JOYXZMaW5rID4gRmlsdGVyaW5nIDwvYT5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGJvdW5kRmlsdGVyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbS0xXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImZsZXg6IDAgMCA0MCU7XCI+e3tnZXRGaWVsZERpc3BsYXkoZmlsdGVyLmZpZWxkKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW25nTW9kZWxdPVwiZmlsdGVyLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRGaWx0ZXIoJGV2ZW50LCBmaWx0ZXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJhcHBseUZpbHRlcnMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmbGV4OiAxIDEgNjAlO1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xIG0tMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFwcGx5RmlsdGVycygpXCIgY2xhc3M9XCJtbC1hdXRvIG1yLTFcIj48aSBjbGFzcz1cImZhcyBmYS1jaGVjay1jaXJjbGVcIj48L2k+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2V0dXBGaWx0ZXJzKHRydWUpXCIgY2xhc3M9XCJtci0wXCI+PGkgY2xhc3M9XCJmYXMgZmEtdGltZXMtY2lyY2xlXCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSBuZ2JOYXZJdGVtICpuZ0lmPVwic29ydEJ5QWxsb3dlZEZpZWxkcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgPGEgbmdiTmF2TGluayA+IFNvcnRpbmcgPC9hPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzb3J0RmllbGQgb2Ygc29ydEJ5QWxsb3dlZEZpZWxkc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbS0yXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyO1wiIChjbGljayk9XCJzZXRTb3J0KCRldmVudCwgc29ydEZpZWxkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxLjVyZW07XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1NvcnQoc29ydEZpZWxkKSAmJiBpc1NvcnRBc2Moc29ydEZpZWxkKVwiIFtzdHlsZS5jb2xvcl09XCJpc0ZpcnN0U29ydChzb3J0RmllbGQpID8gJ2dyZWVuJyA6ICdpbmhlcml0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhIGZhLWFycm93LWNpcmNsZS11cCBmYS1sZ1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1NvcnQoc29ydEZpZWxkKSAmJiAhaXNTb3J0QXNjKHNvcnRGaWVsZClcIiBbc3R5bGUuY29sb3JdPVwiaXNGaXJzdFNvcnQoc29ydEZpZWxkKSA/ICdncmVlbicgOiAnaW5oZXJpdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYSBmYS1hcnJvdy1jaXJjbGUtZG93biBmYS1sZ1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7Z2V0RmllbGREaXNwbGF5KHNvcnRGaWVsZCl9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPGRpdiBbbmdiTmF2T3V0bGV0XT1cIm5hdlwiID48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbWItMSBnbG9iYWwtc2VhcmNoXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgIDxpbnB1dCBbbmdNb2RlbF09XCJnbG9iYWxTZWFyY2hcIiAoa2V5dXApPVwiZG9HbG9iYWxTZWFyY2goJGV2ZW50KVwiIGNsYXNzPVwibWwtMlwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCIvPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtbC0xIG1yLTFcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFsIGZhLXNlYXJjaFwiPjwvaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggcC0xIHgtYXV0b1wiICpuZ0lmPVwiaGFzVmFsaWRGaWx0ZXJzKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgZmlsdGVyc1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyLnZhbGlkXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiY2xlYXJGaWx0ZXIoZmlsdGVyKVwiIGNsYXNzPVwiZC1mbGV4IHBpbGxcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7ZmlsdGVyLmZpZWxkfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsb3NlLWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lcy1jaXJjbGUgZmEteHNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hMaXN0cy5sZW5ndGggPiAxXCIgY2xhc3M9XCJkLWZsZXggeC1oaWRkZW4gbGlzdC10b2dnbGVcIj5cclxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgW25nTW9kZWxdPVwic2VsZWN0ZWRTZWFyY2hMaXN0XCIgKG5nTW9kZWxDaGFuZ2UpPVwic2V0U2VsZWN0ZWRTZWFyY2hMaXN0KCRldmVudClcIj5cclxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAqbmdGb3I9XCJsZXQgc2VhcmNoTGlzdCBvZiBzZWFyY2hMaXN0c1wiIG1hdC1yYWlzZWQtYnV0dG9uLXRvZ2dsZSBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwic2VhcmNoTGlzdFwiPlxyXG4gICAgICAgICAgICB7e3NlYXJjaExpc3R9fVxyXG4gICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImhpZGVFbGVtZW50c1wiIGNsYXNzPVwic2lkZWJhci1jb250YWluZXJcIj5cclxuICAgICAgPGRpdiBpZD1cInNlYXJjaC10aXRsZVwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHB0LTFcIj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93VGl0bGVcIiBjbGFzcz1cImQtZmxleCBwbC0zXCI+XHJcbiAgICAgICAgICAgIHt7dGl0bGV9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoVHJlZUNvbnRyb2xsZXJDb21wb25lbnQgZXh0ZW5kcyBTZWFyY2hMaXN0Q29udHJvbGxlckNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGJ1dHRvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIGhpZGVFbGVtZW50czogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICB1cGRhdGVDb25maWcoY29uZmlnKSB7XHJcbiAgICBzdXBlci51cGRhdGVDb25maWcoY29uZmlnKTtcclxuXHJcbiAgICBpZiAoY29uZmlnLmJ1dHRvblRlbXBsYXRlKSB7XHJcbiAgICAgIHRoaXMuYnV0dG9uVGVtcGxhdGUgPSBjb25maWcuYnV0dG9uVGVtcGxhdGU7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnLmhpZGVFbGVtZW50cykge1xyXG4gICAgICB0aGlzLmhpZGVFbGVtZW50cyA9IGNvbmZpZy5oaWRlRWxlbWVudHM7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -17,13 +17,13 @@ import { NavComponent } from "../nav.component";
|
|
|
17
17
|
import { NavigationService } from "../../services/navigation.service";
|
|
18
18
|
import { NavigationGlobalService } from "../../services/navigation-global.service";
|
|
19
19
|
import { SearchTreeControllerComponent } from "./search-tree-controller.component";
|
|
20
|
-
import { TreeComponent } from "@
|
|
20
|
+
import { TreeComponent } from "@huntsman-cancer-institute/angular-tree-component";
|
|
21
21
|
import * as i0 from "@angular/core";
|
|
22
22
|
import * as i1 from "../../services/navigation-global.service";
|
|
23
23
|
import * as i2 from "../../services/navigation.service";
|
|
24
24
|
import * as i3 from "@angular/common";
|
|
25
25
|
import * as i4 from "@huntsman-cancer-institute/misc";
|
|
26
|
-
import * as i5 from "@
|
|
26
|
+
import * as i5 from "@huntsman-cancer-institute/angular-tree-component";
|
|
27
27
|
let SearchTreeComponent = class SearchTreeComponent extends NavComponent {
|
|
28
28
|
constructor(elementRef, renderer, resolver, navigationGlobalService, navigationService, changeDetectorRef) {
|
|
29
29
|
super(elementRef, renderer, resolver, navigationService, changeDetectorRef);
|
|
@@ -530,9 +530,8 @@ let SearchTreeComponent = class SearchTreeComponent extends NavComponent {
|
|
|
530
530
|
}
|
|
531
531
|
});
|
|
532
532
|
}
|
|
533
|
-
};
|
|
534
|
-
|
|
535
|
-
SearchTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SearchTreeComponent, selector: "hci-search-tree", inputs: { controller: "controller", boundData: ["data", "boundData"], dataSubject: "dataSubject", externalDataCall: ["dataCall", "externalDataCall"], searchTreeOptions: "searchTreeOptions", itemTemplate: "itemTemplate", loadingSubjects: "loadingSubjects", loading: "loading", route: "route", pageSize: "pageSize", dropdown: "dropdown", busyIcon: "busyIcon", expandTreeNodeIDs: "expandTreeNodeIDs", onClick: "onClick", onNodeMoved: "onNodeMoved", onDataUpdate: "onDataUpdate", sortChildren: "sortChildren" }, outputs: { nodeSelected: "nodeSelected", dataChange: "dataChange" }, viewQueries: [{ propertyName: "treeComponent", first: true, predicate: ["searchTreeControl"], descendants: true }, { propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
533
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchTreeComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ComponentFactoryResolver }, { token: i1.NavigationGlobalService }, { token: i2.NavigationService, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
534
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SearchTreeComponent, selector: "hci-search-tree", inputs: { controller: "controller", boundData: ["data", "boundData"], dataSubject: "dataSubject", externalDataCall: ["dataCall", "externalDataCall"], searchTreeOptions: "searchTreeOptions", itemTemplate: "itemTemplate", loadingSubjects: "loadingSubjects", loading: "loading", route: "route", pageSize: "pageSize", dropdown: "dropdown", busyIcon: "busyIcon", expandTreeNodeIDs: "expandTreeNodeIDs", onClick: "onClick", onNodeMoved: "onNodeMoved", onDataUpdate: "onDataUpdate", sortChildren: "sortChildren" }, outputs: { nodeSelected: "nodeSelected", dataChange: "dataChange" }, viewQueries: [{ propertyName: "treeComponent", first: true, predicate: ["searchTreeControl"], descendants: true }, { propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
536
535
|
<div class="d-flex scrollable treeBox">
|
|
537
536
|
<div class="d-flex flex-column treeBox">
|
|
538
537
|
<hci-busy [busySubjects]="loadingSubjects" parentSelector=".scrollable" [icon]="busyIcon"></hci-busy>
|
|
@@ -559,7 +558,8 @@ SearchTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
|
|
|
559
558
|
<ng-template #defaultTemplate let-data="node.data">
|
|
560
559
|
<span>{{ data.name }}</span>
|
|
561
560
|
</ng-template>
|
|
562
|
-
`, isInline: true, styles: [":host{min-height:0px;display:flex;flex-direction:column;flex-grow:1;flex-shrink:1}.treeBox{min-height:0px;display:flex;flex-direction:column;flex-grow:1;flex-shrink:1}.searchTree{height:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.BusyComponent, selector: "hci-busy", inputs: ["busy", "busySubjects", "getBusySubjects", "parentSelector", "rootClass", "icon", "iconSize", "showIcon", "mxAuto", "myAuto", "text", "template", "config"] }, { kind: "component", type: i5.TreeComponent, selector: "Tree, tree-root", inputs: ["nodes", "options", "focused", "state"], outputs: ["toggleExpanded", "activate", "deactivate", "nodeActivate", "nodeDeactivate", "select", "deselect", "focus", "blur", "updateData", "initialized", "moveNode", "copyNode", "loadNodeChildren", "changeFilter", "event", "stateChange"] }] });
|
|
561
|
+
`, isInline: true, styles: [":host{min-height:0px;display:flex;flex-direction:column;flex-grow:1;flex-shrink:1}.treeBox{min-height:0px;display:flex;flex-direction:column;flex-grow:1;flex-shrink:1}.searchTree{height:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.BusyComponent, selector: "hci-busy", inputs: ["busy", "busySubjects", "getBusySubjects", "parentSelector", "rootClass", "icon", "iconSize", "showIcon", "mxAuto", "myAuto", "text", "template", "config"] }, { kind: "component", type: i5.TreeComponent, selector: "Tree, tree-root", inputs: ["nodes", "options", "focused", "state"], outputs: ["toggleExpanded", "activate", "deactivate", "nodeActivate", "nodeDeactivate", "select", "deselect", "focus", "blur", "updateData", "initialized", "moveNode", "copyNode", "loadNodeChildren", "changeFilter", "event", "stateChange"] }] }); }
|
|
562
|
+
};
|
|
563
563
|
SearchTreeComponent = __decorate([
|
|
564
564
|
ComponentType("SearchTreeComponent"),
|
|
565
565
|
__metadata("design:paramtypes", [ElementRef,
|
|
@@ -570,7 +570,7 @@ SearchTreeComponent = __decorate([
|
|
|
570
570
|
ChangeDetectorRef])
|
|
571
571
|
], SearchTreeComponent);
|
|
572
572
|
export { SearchTreeComponent };
|
|
573
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
573
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchTreeComponent, decorators: [{
|
|
574
574
|
type: Component,
|
|
575
575
|
args: [{ selector: "hci-search-tree", template: `
|
|
576
576
|
<div class="d-flex scrollable treeBox">
|
|
@@ -651,4 +651,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
651
651
|
}], sortChildren: [{
|
|
652
652
|
type: Input
|
|
653
653
|
}] } });
|
|
654
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF2aWdhdGlvbi9zcmMvY29tcG9uZW50cy9zZWFyY2gtdHJlZS9zZWFyY2gtdHJlZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFDdkYsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUErQixXQUFXLEVBQUUsU0FBUyxFQUN2RyxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsZUFBZSxFQUEwQixNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxPQUFPLEVBQTJCLFVBQVUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFhLE1BQU0sNENBQTRDLENBQUM7QUFDMUksT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRS9ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNqRixPQUFPLEVBQUMsYUFBYSxFQUEwQixNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7O0FBeURoRixJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFvQixTQUFRLFlBQVk7SUFtRm5ELFlBQVksVUFBc0IsRUFDdEIsUUFB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QkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUVFLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCxcclxuICBpc0Rldk1vZGUsIE9wdGlvbmFsLCBPdXRwdXQsIFF1ZXJ5TGlzdCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2UsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3R9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7ZGVsYXksIGZpbmFsaXplfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHtOZ2JEcm9wZG93bn0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcblxyXG5pbXBvcnQge0hjaURhdGFEdG8sIEhjaUZpbHRlckR0bywgSGNpR3JpZER0bywgSGNpR3JvdXBpbmdEdG8sIEhjaVBhZ2luZ0R0bywgSGNpU29ydER0b30gZnJvbSBcIkBodW50c21hbi1jYW5jZXItaW5zdGl0dXRlL2hjaS1uZy1ncmlkLWR0b1wiO1xyXG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS91dGlsc1wiO1xyXG5cclxuaW1wb3J0IHtOYXZDb21wb25lbnR9IGZyb20gXCIuLi9uYXYuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TmF2aWdhdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtOYXZpZ2F0aW9uR2xvYmFsU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24tZ2xvYmFsLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTZWFyY2hUcmVlQ29udHJvbGxlckNvbXBvbmVudH0gZnJvbSBcIi4vc2VhcmNoLXRyZWUtY29udHJvbGxlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmVlQ29tcG9uZW50LCBJVHJlZU9wdGlvbnMsIFRyZWVNb2RlbH0gZnJvbSBcIkBjaXJjbG9uL2FuZ3VsYXItdHJlZS1jb21wb25lbnRcIjtcclxuaW1wb3J0IHtJVHJlZU5vZGV9IGZyb20gXCJAY2lyY2xvbi9hbmd1bGFyLXRyZWUtY29tcG9uZW50L2xpYi9kZWZzL2FwaVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnRUeXBlKFwiU2VhcmNoVHJlZUNvbXBvbmVudFwiKVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJoY2ktc2VhcmNoLXRyZWVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBzY3JvbGxhYmxlIHRyZWVCb3hcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiB0cmVlQm94XCI+XHJcbiAgICAgICAgPGhjaS1idXN5IFtidXN5U3ViamVjdHNdPVwibG9hZGluZ1N1YmplY3RzXCIgcGFyZW50U2VsZWN0b3I9XCIuc2Nyb2xsYWJsZVwiIFtpY29uXT1cImJ1c3lJY29uXCI+PC9oY2ktYnVzeT5cclxuICAgICAgICA8dHJlZS1yb290ICNzZWFyY2hUcmVlQ29udHJvbCBbbm9kZXNdPVwidmlld0RhdGFcIiBbb3B0aW9uc109XCJzZWFyY2hUcmVlT3B0aW9uc1wiIChhY3RpdmF0ZSk9XCJvbk5vZGVDbGljaygkZXZlbnQpXCIgKHVwZGF0ZURhdGEpPVwib25VcGRhdGVEYXRhKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgKG1vdmVOb2RlKT1cIm9uTW92ZU5vZGUoJGV2ZW50KVwiIGNsYXNzPVwic2VhcmNoVHJlZVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0cmVlTm9kZVRlbXBsYXRlIGxldC1ub2RlIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHtub2RlOiBub2RlfVwiPiA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC90cmVlLXJvb3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBQYWdpbmcgZm9vdGVyIC0tPlxyXG4gICAgPGRpdiAqbmdJZj1cInBhZ2luZy5wYWdlU2l6ZSA+IDBcIiBjbGFzcz1cImQtZmxleCBmbGV4LXNocmluay0wIHBhZ2luZy1mb290ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gcGwtMyBwci0zXCIgc3R5bGU9XCJtaW4taGVpZ2h0OiAxcmVtOyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlbGVjdGVkUm93R3JvdXBcIj5cclxuICAgICAgICA8ZGl2IChjbGljayk9XCJkb1BhZ2VGaXJzdCgpXCIgY2xhc3M9XCJkLWZsZXggbXQtMSBtYi0xXCIgW2NsYXNzLmRpc2FibGVkXT1cInBhZ2luZy5wYWdlID09PSAwXCI+PGkgY2xhc3M9XCJmYXMgZmEtZmFzdC1iYWNrd2FyZCBmYS14c1wiPjwvaT48L2Rpdj5cclxuICAgICAgICA8ZGl2IChjbGljayk9XCJkb1BhZ2VQcmV2aW91cygpXCIgY2xhc3M9XCJkLWZsZXggbXQtMSBtYi0xXCIgW2NsYXNzLmRpc2FibGVkXT1cInBhZ2luZy5wYWdlID09PSAwXCI+PGkgY2xhc3M9XCJmYXMgZmEtYmFja3dhcmQgZmEteHNcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMC44cmVtO1wiPnt7cGFnaW5nLnBhZ2UgKyAxfX0gb2Yge3twYWdpbmcubnVtUGFnZXN9fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgKGNsaWNrKT1cImRvUGFnZU5leHQoKVwiIGNsYXNzPVwiZC1mbGV4IG10LTEgbWItMVwiIFtjbGFzcy5kaXNhYmxlZF09XCJwYWdpbmcucGFnZSA9PT0gcGFnaW5nLm51bVBhZ2VzIC0gMVwiPjxpIGNsYXNzPVwiZmFzIGZhLWZvcndhcmQgZmEteHNcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPGRpdiAoY2xpY2spPVwiZG9QYWdlTGFzdCgpXCIgY2xhc3M9XCJkLWZsZXggbXQtMSBtYi0xXCIgW2NsYXNzLmRpc2FibGVkXT1cInBhZ2luZy5wYWdlID09PSBwYWdpbmcubnVtUGFnZXMgLSAxXCI+PGkgY2xhc3M9XCJmYXMgZmEtZmFzdC1mb3J3YXJkIGZhLXhzXCI+PC9pPjwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlIGxldC1kYXRhPVwibm9kZS5kYXRhXCI+XHJcbiAgICAgIDxzcGFuPnt7IGRhdGEubmFtZSB9fTwvc3Bhbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgXHJcbiAgICA6aG9zdCB7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICBmbGV4LXNocmluazogMTtcclxuICAgICB9XHJcblxyXG4gICAgIC50cmVlQm94IHtcclxuICAgICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICAgZmxleC1zaHJpbms6IDE7XHJcbiAgICAgfVxyXG5cclxuICAgICAuc2VhcmNoVHJlZSB7XHJcbiAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgfVxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hUcmVlQ29tcG9uZW50IGV4dGVuZHMgTmF2Q29tcG9uZW50IHtcclxuXHJcbiAgQFZpZXdDaGlsZChcInNlYXJjaFRyZWVDb250cm9sXCIsIHtzdGF0aWM6IGZhbHNlfSkgdHJlZUNvbXBvbmVudDogVHJlZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKFwiZGVmYXVsdFRlbXBsYXRlXCIsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlfSkgZGVmYXVsdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvLyBUaGUgZGF0YSB0aGF0IGlzIGFjdHVhbGx5IHJlbmRlcmVkLlxyXG4gIHZpZXdEYXRhOiBhbnlbXTtcclxuXHJcbiAgLy8gQSByZWZlcmVuY2UgdG8gdGhlIHNlYXJjaCBsaXN0IGNvbnRyb2xsZXIgaWYgYXBwbGljYWJsZS5cclxuICBASW5wdXQoKSBjb250cm9sbGVyOiBTZWFyY2hUcmVlQ29udHJvbGxlckNvbXBvbmVudDtcclxuXHJcbiAgLy8gQW4gYXJyYXkgb2YgZGF0YS5cclxuICBASW5wdXQoXCJkYXRhXCIpIGJvdW5kRGF0YTogT2JqZWN0W107XHJcblxyXG4gIC8vIEEgc3ViamVjdCB0aGF0IHJlcHJlc2VudHMgYW4gYXJyYXkgb2YgZGF0YS5cclxuICBASW5wdXQoXCJkYXRhU3ViamVjdFwiKSBkYXRhU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PE9iamVjdFtdPjtcclxuXHJcbiAgLy8gQSBmdW5jdGlvbiB3aGljaCB0YWtlcyBpbiBhIEhjaUdyaWREdG8gYW5kIHJldHVybnMgYSBIY2lEYXRhRHRvIHdoaWNoIHdyYXBzIGFuIGFycmF5IG9mIGRhdGEuXHJcbiAgQElucHV0KFwiZGF0YUNhbGxcIikgZXh0ZXJuYWxEYXRhQ2FsbDogKGR0bzogSGNpR3JpZER0bykgPT4gT2JzZXJ2YWJsZTxIY2lEYXRhRHRvPjtcclxuXHJcbiAgQElucHV0KFwic2VhcmNoVHJlZU9wdGlvbnNcIikgc2VhcmNoVHJlZU9wdGlvbnM6IGFueTtcclxuXHJcbiAgQElucHV0KCkgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvLyBBbiBhcnJheSBvZiBzdWJqZWN0cyB3aXRoIGJvb2xlYW5zIHRvIGNvbnRyb2wgdGhlIGhjaS1idXN5IG92ZXJsYXlpbmcgdGhlIHNlYXJjaC1saXN0LlxyXG4gIEBJbnB1dCgpIGxvYWRpbmdTdWJqZWN0czogU3ViamVjdDxib29sZWFuPltdO1xyXG5cclxuICAvLyBBbiBhcnJheSBvZiBib29sZWFucyB0byBjb250cm9sIHRoZSBoY2ktYnVzeSBvdmVybGF5aW5nIHRoZSBzZWFyY2gtbGlzdC5cclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuW10gPSBbZmFsc2VdO1xyXG5cclxuICAvLyBJZiBjbGlja2luZyBhIHJvdyBjaGFuZ2VzIGEgcm91dGUsIHRoaXMgZnVuY3Rpb24gc3BlY2lmaWVzIHRoZSByb3V0ZSB0byB1c2UuXHJcbiAgQElucHV0KCkgcm91dGU6IChyb3dHcm91cDogYW55LCByb3c6IGFueSkgPT4gYW55W107XHJcblxyXG4gIC8vIFRoZSBwYWdlIHNpemUgb2Ygcm93IGdyb3VwcyBvciByb3dzIGlmIG5vIGdyb3VwaW5nLlxyXG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXI7XHJcblxyXG4gIC8vIEEgcmVmZXJlbmNlIHRvIGEgcGFyZW50IGRyb3Bkb3duIGlmIGFwcGxpY2FibGUuXHJcbiAgQElucHV0KCkgZHJvcGRvd246IE5nYkRyb3Bkb3duO1xyXG5cclxuICAvL1doaWNoIGljb24gdG8gdXNlIGZvciB0aGUgYnVzeSBzcGlubmVyXHJcbiAgQElucHV0KCkgYnVzeUljb246IHN0cmluZyA9IFwiZmFzIGZhLXN5bmMgZmEtc3BpblwiO1xyXG4gIC8vRWl0aGVyIGFuIGFycmF5IG9mIG5vZGUgaWRzIGZvciBleHBhbmRpbmcgb3IgYSBzdHJpbmcgJ2FsbCcgZm9yIGV4cGFuZGluZyB3aG9sZSB0cmVlXHJcbiAgQElucHV0KCkgZXhwYW5kVHJlZU5vZGVJRHM6IHN0cmluZyB8IGFueVtdO1xyXG5cclxuICBASW5wdXQoKSBvbkNsaWNrOiAoY21wdDogU2VhcmNoVHJlZUNvbXBvbmVudCwgdHJlZTogVHJlZUNvbXBvbmVudCwgZXZlbnQ6IGFueSkgPT4gdm9pZDtcclxuXHJcbiAgQElucHV0KCkgb25Ob2RlTW92ZWQ6IChjbXB0OiBTZWFyY2hUcmVlQ29tcG9uZW50LCB0cmVlOiBUcmVlQ29tcG9uZW50LCBldmVudDogYW55KSA9PiB2b2lkO1xyXG5cclxuICBASW5wdXQoKSBvbkRhdGFVcGRhdGU6IChjbXB0OiBTZWFyY2hUcmVlQ29tcG9uZW50LCB0cmVlOiBUcmVlQ29tcG9uZW50LCBldmVudDogYW55KSA9PiB2b2lkO1xyXG5cclxuICBAT3V0cHV0KCkgbm9kZVNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBkYXRhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIFxyXG4gIEBJbnB1dCgpIHNvcnRDaGlsZHJlbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cclxuICAvLyBHcmlkIERUTyBpbmZvIG5lZWRlZCB0byBidWlsZCBleHRlcm5hbCBkYXRhIHJlcXVlc3RzLlxyXG4gIHNvcnRzOiBIY2lTb3J0RHRvW10gPSBbXTtcclxuICBmaWx0ZXJzOiBIY2lGaWx0ZXJEdG9bXSA9IFtdO1xyXG4gIHBhZ2luZzogSGNpUGFnaW5nRHRvID0gbmV3IEhjaVBhZ2luZ0R0bygwLCAtMSk7XHJcbiAgcGFnaW5nU3ViamVjdDogU3ViamVjdDxIY2lQYWdpbmdEdG8+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIY2lQYWdpbmdEdG8+KHRoaXMucGFnaW5nKTtcclxuXHJcbiAgZGVmYXVsdFNlYXJjaFRyZWVPcHRpb25zOiBJVHJlZU9wdGlvbnMgPSB7XHJcbiAgICAgIGlkRmllbGQ6IFwiaWRcIixcclxuICAgICAgZGlzcGxheUZpZWxkOiBcIm5hbWVcIixcclxuICAgICAgY2hpbGRyZW5GaWVsZDogXCJjaGlsZHJlblwiLFxyXG4gICAgICB1c2VWaXJ0dWFsU2Nyb2xsOiB0cnVlLFxyXG4gICAgICBub2RlSGVpZ2h0OiAyMlxyXG4gICAgfTtcclxuXHJcbiAgLy8gQSBkdW1teSBudW1iZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIHNlbGVjdGlvbiBjaGFuZ2VzLiAgRm9yY2VzIHJvdXRlckxpbmtBY3RpdmUgdG8gcmVjaGVjay5cclxuICByb3dSZWZyZXNoOiBudW1iZXIgPSAwO1xyXG5cclxuICBidXN5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGxhc3RTY3JvbGxUb3A6IG51bWJlciA9IC0xO1xyXG4gIGxhc3RTY3JvbGxQb3NpdGlvbjogbnVtYmVyID0gMTtcclxuICBzZXRTY3JvbGxUb3A6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY21wdDogU2VhcmNoVHJlZUNvbXBvbmVudCA9IHRoaXM7XHJcblxyXG4gIGxhc3RFdmVudDogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgICAgICAgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uR2xvYmFsU2VydmljZTogTmF2aWdhdGlvbkdsb2JhbFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZiwgcmVuZGVyZXIsIHJlc29sdmVyLCBuYXZpZ2F0aW9uU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG5cclxuICAgIGlmICghbmF2aWdhdGlvblNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZSA9IG5ldyBOYXZpZ2F0aW9uU2VydmljZShuYXZpZ2F0aW9uR2xvYmFsU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0SWQoKSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuaXNSb290ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zZXRDb25maWcoe30pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT24gaW5pdCwgbGlzdGVuIGZvciBsb2FkaW5nIHN1YmplY3RzIGFuZCBsaXN0ZW4gZm9yIHBhZ2UgY2hhbmdlcy5cclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcblxyXG4gICAgaWYgKHRoaXMubG9hZGluZ1N1YmplY3RzKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZ1N1YmplY3RzWzBdLnN1YnNjcmliZSgoYnVzeTogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIHRoaXMuYnVzeSA9IGJ1c3k7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucGFnaW5nU3ViamVjdC5zdWJzY3JpYmUoKHBhZ2luZzogSGNpUGFnaW5nRHRvKSA9PiB7XHJcbiAgICAgIHRoaXMucGFnaW5nID0gcGFnaW5nO1xyXG4gICAgICB0aGlzLnNldERhdGEoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIHdoZW4gaW5wdXRzIGNoYW5nZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7U2ltcGxlQ2hhbmdlc30gY2hhbmdlc1xyXG4gICAqL1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG5cclxuICAgIHRoaXMucmVmcmVzaFRyZWUoKTtcclxuICB9XHJcblxyXG4gICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICAgaWYgKHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwgJiYgdGhpcy5leHBhbmRUcmVlTm9kZUlEcyApIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICBsZXQgdHJlZU1vZGVsOiBUcmVlTW9kZWwgPSB0aGlzLnRyZWVDb21wb25lbnQudHJlZU1vZGVsO1xyXG4gICAgICAgaWYoQXJyYXkuaXNBcnJheSh0aGlzLmV4cGFuZFRyZWVOb2RlSURzKSkge1xyXG4gICAgICAgICBmb3IobGV0IG5vZGVJZCBvZiB0aGlzLmV4cGFuZFRyZWVOb2RlSURzKSB7XHJcbiAgICAgICAgICAgbGV0IG5vZGU6IElUcmVlTm9kZSA9IHRyZWVNb2RlbC5nZXROb2RlQnlJZChub2RlSWQpO1xyXG4gICAgICAgICAgIGlmKG5vZGUpIHtcclxuICAgICAgICAgICAgIG5vZGUuZXhwYW5kKCk7XHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgICAgICB9IGVsc2UgaWYodHlwZW9mIHRoaXMuZXhwYW5kVHJlZU5vZGVJRHMgPT09IFwic3RyaW5nXCJcclxuICAgICAgICAgJiYgdGhpcy5leHBhbmRUcmVlTm9kZUlEcyA9PT0gXCJhbGxcIikge1xyXG4gICAgICAgICB0cmVlTW9kZWwuZXhwYW5kQWxsKCk7XHJcbiAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICB9XHJcbiAgIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBkYXRhIG9ubHkgd2hlbiB0aGUgY29tcG9uZW50IGhhcyBmdWxseSBpbml0aWFsaXplZCBhbmQgaXMgcmVuZGVyZWQuXHJcbiAgICovXHJcbiAgY2hlY2tJbml0aWFsaXplZCgpIHtcclxuICAgIGlmICh0aGlzLmFmdGVyVmlld0luaXQpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlnKHRoaXMuY29uZmlnKTtcclxuICAgICAgdGhpcy5wb3N0SW5pdCgpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZGF0YVN1YmplY3QpIHtcclxuICAgICAgICAvL01heSBhcyB3ZWxsIG1ha2UgaXQgc3BpbiB3aGlsZSBwcm9jZXNzaW5nLCBhcyB3ZWxsIGFzIGxvYWRpbmcuIE90aGVyd2lzZSBpdCBsb29rcyBmcm96ZW5cclxuICAgICAgICBpZiAodGhpcy5sb2FkaW5nU3ViamVjdHMpIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3RzWzBdLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmRhdGFTdWJqZWN0XHJcbiAgICAgICAgICAucGlwZShkZWxheSgwKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IE9iamVjdFtdKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYm91bmREYXRhID0gZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zZXREYXRhKCk7XHJcblxyXG4gICAgICAgICAgICAvL05vdyBkb25lIGxvYWRpbmdcclxuICAgICAgICAgICAgaWYgKHRoaXMubG9hZGluZ1N1YmplY3RzKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdHNbMF0ubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldERhdGEoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9zdEluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIlNlYXJjaFRyZWVDb21wb25lbnQucG9zdEluaXQ6IFwiICsgdGhpcy5pZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZ2V0UGFyZW50KCkpIHtcclxuICAgICAgdGhpcy5jb250cm9sbGVyID0gPFNlYXJjaFRyZWVDb250cm9sbGVyQ29tcG9uZW50PnRoaXMuZ2V0UGFyZW50KCkuZ2V0Q29tcG9uZW50QnlUeXBlKFwiU2VhcmNoVHJlZUNvbnRyb2xsZXJDb21wb25lbnRcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY29udHJvbGxlcikge1xyXG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiU2VhcmNoVHJlZUNvbXBvbmVudDogdXNpbmcgY29udHJvbGxlclwiKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jb250cm9sbGVyLmFkZFNlYXJjaExpc3QodGhpcy50aXRsZSk7XHJcblxyXG4gICAgICB0aGlzLmNvbnRyb2xsZXIuZmlsdGVyc1N1YmplY3Quc3Vic2NyaWJlKChmaWx0ZXJzOiBIY2lGaWx0ZXJEdG9bXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZmlsdGVycyA9IGZpbHRlcnM7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhKCk7XHJcbiAgICAgICAgdGhpcy5yZXNldFBhZ2luZygpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuY29udHJvbGxlci5zb3J0c1N1YmplY3Quc3Vic2NyaWJlKChzb3J0czogSGNpU29ydER0b1tdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zb3J0cyA9IHNvcnRzO1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YSgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuY29udHJvbGxlci5zZWxlY3RlZFNlYXJjaExpc3RTdWJqZWN0LnN1YnNjcmliZSgodGl0bGU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgY29uc29sZS5kZWJ1ZyhcInNlbGVjdGVkU2VhcmNoTGlzdFN1YmplY3Quc3Vic2NyaWJlOiBcIiArIHRoaXMudGl0bGUgKyBcIiwgXCIgKyB0aXRsZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnRpdGxlICYmIHRpdGxlICYmIHRoaXMudGl0bGUgIT09IHRpdGxlKSB7XHJcbiAgICAgICAgICB2aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmlzaWJsZSkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJkaXNwbGF5XCIsIFwiZmxleFwiKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJkaXNwbGF5XCIsIFwibm9uZVwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucmVmcmVzaFRyZWUoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnJlZnJlc2hUcmVlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGlzIGZ1bmN0aW9uIHdvdWxkIHJlc2V0IHBhZ2luZyBhbmQgZmlyZXNcclxuICAgKi9cclxuICByZXNldFBhZ2luZygpe1xyXG4gICAgdGhpcy5wYWdpbmcuc2V0UGFnZSgwKTtcclxuICAgIHRoaXMucGFnaW5nU3ViamVjdC5uZXh0KHRoaXMucGFnaW5nKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGNvbmZpZyB3aXRoIG9wdGlvbnMgYW5kIHJlLWZldGNoZXMgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBjb25maWdcclxuICAgKi9cclxuICB1cGRhdGVDb25maWcoY29uZmlnKSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcInVwZGF0ZUNvbmZpZ1wiKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcsIGNvbmZpZyk7XHJcblxyXG4gICAgICBpZiAoY29uZmlnLnJvdXRlKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZSA9IGNvbmZpZy5yb3V0ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29uZmlnLnBhZ2VTaXplKSB7XHJcbiAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IGNvbmZpZy5wYWdlU2l6ZTtcclxuICAgICAgICB0aGlzLnBhZ2luZy5zZXRQYWdlU2l6ZShjb25maWcucGFnZVNpemUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb25maWcuZGF0YSkge1xyXG4gICAgICAgIHRoaXMuYm91bmREYXRhID0gY29uZmlnLmRhdGE7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbmZpZy5kYXRhU3ViamVjdCkge1xyXG4gICAgICAgIHRoaXMuZGF0YVN1YmplY3QgPSBjb25maWcuZGF0YVN1YmplY3Q7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbmZpZy5kYXRhQ2FsbCkge1xyXG4gICAgICAgIHRoaXMuZXh0ZXJuYWxEYXRhQ2FsbCA9IGNvbmZpZy5kYXRhQ2FsbDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29uZmlnLnNlYXJjaFRyZWVPcHRpb25zKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hUcmVlT3B0aW9ucyA9IGNvbmZpZy5zZWFyY2hUcmVlT3B0aW9ucztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFRyZWVPcHRpb25zID0gdGhpcy5kZWZhdWx0U2VhcmNoVHJlZU9wdGlvbnM7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbmZpZy5pdGVtVGVtcGxhdGUpIHtcclxuICAgICAgICB0aGlzLml0ZW1UZW1wbGF0ZSA9IGNvbmZpZy5pdGVtVGVtcGxhdGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLml0ZW1UZW1wbGF0ZSkge1xyXG4gICAgICAgIHRoaXMuaXRlbVRlbXBsYXRlID0gdGhpcy5kZWZhdWx0VGVtcGxhdGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjb25maWcubG9hZGluZ1N1YmplY3RzKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdHMgPSBjb25maWcubG9hZGluZ1N1YmplY3RzO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb25maWcub25DbGljaykge1xyXG4gICAgICAgIHRoaXMub25DbGljayA9IGNvbmZpZy5vbkNsaWNrO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb25maWcub25Ob2RlTW92ZWQpIHtcclxuICAgICAgICB0aGlzLm9uTm9kZU1vdmVkID0gY29uZmlnLm9uTm9kZU1vdmVkO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGNvbmZpZy5vbkRhdGFVcGRhdGUpIHtcclxuICAgICAgICB0aGlzLm9uRGF0YVVwZGF0ZSA9IGNvbmZpZy5vbkRhdGFVcGRhdGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYoY29uZmlnLmV4cGFuZFRyZWVOb2RlSURzKSB7XHJcbiAgICAgICAgdGhpcy5leHBhbmRUcmVlTm9kZUlEcyA9IGNvbmZpZy5leHBhbmRUcmVlTm9kZUlEcztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmV4dGVybmFsRGF0YUNhbGwpIHtcclxuICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdHMgPSBbbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSldO1xyXG4gICAgfVxyXG5cclxuICAgIHN1cGVyLnVwZGF0ZUNvbmZpZyhjb25maWcpO1xyXG5cclxuICAgIHRoaXMuc2V0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIHRoZSBkYXRhIGlmIGFuIGFycmF5LCBjYWxscyB0aGUgZGF0YSBpZiBleHRlcm5hbCBjYWxsLlxyXG4gICAqL1xyXG4gIHNldERhdGEoZGF0YT86IE9iamVjdFtdKTogdm9pZCB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcInNldERhdGFcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRhdGEpIHtcclxuICAgICAgdGhpcy5ib3VuZERhdGEgPSBkYXRhO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy5leHRlcm5hbERhdGFDYWxsKSB7XHJcbiAgICAgIGlmICghdGhpcy5idXN5KSB7XHJcbiAgICAgICAgdGhpcy5idXN5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0c1swXS5uZXh0KHRydWUpO1xyXG5cclxuICAgICAgICB0aGlzLmV4dGVybmFsRGF0YUNhbGwobmV3IEhjaUdyaWREdG8odGhpcy5maWx0ZXJzLCB0aGlzLnNvcnRzLCB0aGlzLnBhZ2luZywgbmV3IEhjaUdyb3VwaW5nRHRvKCkpKVxyXG4gICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0c1swXS5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5idXN5ID0gZmFsc2U7XHJcbiAgICAgICAgICB9KSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKGV4dGVybmFsRGF0YTogSGNpRGF0YUR0bykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlRGF0YShleHRlcm5hbERhdGEpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVEYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgdGhlIGRhdGEgYXJyYXkgdGhhdCB0aGUgaW50ZXJmYWNlIHVzZXMgdG8gcmVuZGVyIChyZWdhcmRsZXNzIG9mIHNvdXJjZSkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0hjaURhdGFEdG99IGV4dGVybmFsRGF0YVxyXG4gICAqL1xyXG4gIGdlbmVyYXRlRGF0YShleHRlcm5hbERhdGE/OiBIY2lEYXRhRHRvKTogdm9pZCB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcImdlbmVyYXRlRGF0YVwiKTtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhleHRlcm5hbERhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChleHRlcm5hbERhdGEpIHtcclxuICAgICAgdGhpcy5ib3VuZERhdGEgPSBleHRlcm5hbERhdGEuZGF0YTtcclxuICAgICAgdGhpcy5wYWdpbmcuc2V0RGF0YVNpemUoZXh0ZXJuYWxEYXRhLmdyaWREdG8ucGFnaW5nLmRhdGFTaXplKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSByb3cgZ3JvdXBzLlxyXG4gICAgICB0aGlzLnZpZXdEYXRhID0gW107XHJcblxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYm91bmREYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy52aWV3RGF0YS5wdXNoKHRoaXMuYm91bmREYXRhW2ldKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gQ3JlYXRlIGFuZCBwb3B1bGF0ZSByb3cgZ3JvdXBzLlxyXG4gICAgICB0aGlzLnBvcHVsYXRlRnJvbUJvdW5kRGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlLmVtaXQoT2JqZWN0LmFzc2lnbih7dHlwZTogXCJub25lXCJ9LCB0aGlzLmxhc3RFdmVudCwge3BhZ2luZzogdGhpcy5wYWdpbmcsIG5WaWV3RGF0YTogdGhpcy52aWV3RGF0YS5sZW5ndGh9KSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgdGhlIGRhdGEgaWYgdGhlIGRhdGEgaXMgYW4gYXJyYXkgKG5vdCBleHRlcm5hbCkuXHJcbiAgICovXHJcbiAgcG9wdWxhdGVGcm9tQm91bmREYXRhKCk6IHZvaWQge1xyXG5cclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwicG9wdWxhdGVGcm9tQm91bmREYXRhXCIpO1xyXG4gICAgICBjb25zb2xlLmRlYnVnKHRoaXMuYm91bmREYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuYm91bmREYXRhKSB7XHJcbiAgICAgIHRoaXMudmlld0RhdGEgPSBbXTtcclxuICAgICAgdGhpcy5wYWdpbmcuc2V0UGFnZSgwKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmJvdW5kRGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIkJvdW5kIERhdGEgbGVuZ3RoIGZvdW5kIGFzIDBcIik7XHJcbiAgICAgIHRoaXMucGFnaW5nLnNldFBhZ2UoMCk7XHJcbiAgICAgIHRoaXMucGFnaW5nLnNldE51bVBhZ2VzKDEpO1xyXG4gICAgICB0aGlzLnBhZ2luZy5zZXREYXRhU2l6ZSgwKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcHJlcGFyZWREYXRhID0gdGhpcy5maWx0ZXJUcmVlSW5jbHVkZUNoaWxkcmVuKHRoaXMuYm91bmREYXRhKTtcclxuXHJcbiAgICBpZiAodGhpcy5zb3J0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc29ydERhdGEocHJlcGFyZWREYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBhZ2luZy5zZXREYXRhU2l6ZShwcmVwYXJlZERhdGEubGVuZ3RoKTtcclxuXHJcblxyXG4gICAgaWYgKHRoaXMucGFnaW5nLmdldFBhZ2VTaXplKCkgPiAwKSB7XHJcbiAgICAgIHRoaXMudmlld0RhdGEgPSBbXTtcclxuICAgICAgZm9yICh2YXIgaSA9IHRoaXMucGFnaW5nLmdldFBhZ2UoKSAqIHRoaXMucGFnaW5nLmdldFBhZ2VTaXplKCk7IGkgPCBNYXRoLm1pbihwcmVwYXJlZERhdGEubGVuZ3RoLCAodGhpcy5wYWdpbmcuZ2V0UGFnZSgpICsgMSkgKiB0aGlzLnBhZ2luZy5nZXRQYWdlU2l6ZSgpKTsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy52aWV3RGF0YS5wdXNoKHByZXBhcmVkRGF0YVtpXSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGFnaW5nLnNldERhdGFTaXplKHByZXBhcmVkRGF0YS5sZW5ndGgpO1xyXG4gICAgICB0aGlzLnZpZXdEYXRhID0gcHJlcGFyZWREYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiRmlsdGVyZWQgVHJlZSBEYXRhOlwiKTtcclxuICAgICAgY29uc29sZS5kZWJ1Zyh0aGlzLnZpZXdEYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlZnJlc2hUcmVlKCk7XHJcbiAgfVxyXG4gIFxyXG4gIHNvcnREYXRhKGRhdGE6IGFueSkge1xyXG4gICAgZGF0YS5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdjogbnVtYmVyID0gMDtcclxuXHJcbiAgICAgIGZvciAobGV0IHNvcnQgb2YgdGhpcy5zb3J0cykge1xyXG4gICAgICAgIGlmIChzb3J0LmdldEFzYygpKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy51cHBlcihhW3NvcnQuZ2V0RmllbGQoKV0pIDwgdGhpcy51cHBlcihiW3NvcnQuZ2V0RmllbGQoKV0pKSB7XHJcbiAgICAgICAgICAgIHYgPSAtMTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51cHBlcihhW3NvcnQuZ2V0RmllbGQoKV0pID4gdGhpcy51cHBlcihiW3NvcnQuZ2V0RmllbGQoKV0pKSB7XHJcbiAgICAgICAgICAgIHYgPSAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAodGhpcy51cHBlcihhW3NvcnQuZ2V0RmllbGQoKV0pID4gdGhpcy51cHBlcihiW3NvcnQuZ2V0RmllbGQoKV0pKSB7XHJcbiAgICAgICAgICAgIHYgPSAtMTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51cHBlcihhW3NvcnQuZ2V0RmllbGQoKV0pIDwgdGhpcy51cHBlcihiW3NvcnQuZ2V0RmllbGQoKV0pKSB7XHJcbiAgICAgICAgICAgIHYgPSAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHYgIT0gMCkge1xyXG4gICAgICAgICAgcmV0dXJuIHY7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdjtcclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICAvL1NvcnQgY2hpbGRyZW5cclxuICAgIGlmICh0aGlzLnNvcnRDaGlsZHJlbikge1xyXG4gICAgICBmb3IgKGxldCBjaGlsZCBvZiBkYXRhKSB7XHJcbiAgICAgICAgaWYgKGNoaWxkW3RoaXMuc2VhcmNoVHJlZU9wdGlvbnMuY2hpbGRyZW5GaWVsZF0pIHtcclxuICAgICAgICAgIHRoaXMuc29ydERhdGEoY2hpbGRbdGhpcy5zZWFyY2hUcmVlT3B0aW9ucy5jaGlsZHJlbkZpZWxkXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cHBlcih2YWx1ZTogT2JqZWN0KSB7XHJcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaFRyZWUgKCkge1xyXG4gICAgdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC51cGRhdGUoKTtcclxuICAgIHRoaXMudHJlZUNvbXBvbmVudC5zaXplQ2hhbmdlZCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVjdXJzaXZlIHRyZWUgc2VhcmNoLiAgSXQgd2lsbCBpbmNsdWRlIGNoaWxkcmVuIG5vZGVzIGlmIGEgcGFyZW50IG5vZGUgbWF0Y2hlcyB0aGUgc2VhcmNoIHN0cmluZy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7YW55W119IGRhdGFcclxuICAgKiBAcmV0dXJucyB7YW55W119XHJcbiAgICovXHJcbiAgZmlsdGVyVHJlZUluY2x1ZGVDaGlsZHJlbihkYXRhOiBhbnlbXSk6IGFueVtdIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiZmlsdGVyVHJlZUluY2x1ZGVDaGlsZHJlblwiKTtcclxuICAgIH1cclxuICAgIGxldCBmaWx0ZXJlZERhdGE6IGFueVtdID0gW107XHJcbiAgICBmb3IgKGxldCBjaGlsZCBvZiBkYXRhKSB7XHJcbiAgICAgIGlmICh0aGlzLmluY2x1ZGVOb2RlKGNoaWxkKSkgIHtcclxuICAgICAgICBmaWx0ZXJlZERhdGEucHVzaChjaGlsZCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKGNoaWxkW3RoaXMuc2VhcmNoVHJlZU9wdGlvbnMuY2hpbGRyZW5GaWVsZF0pIHtcclxuICAgICAgICAgIGxldCBmaWx0ZXJlZENoaWxkcmVuID0gdGhpcy5maWx0ZXJUcmVlSW5jbHVkZUNoaWxkcmVuKGNoaWxkW3RoaXMuc2VhcmNoVHJlZU9wdGlvbnMuY2hpbGRyZW5GaWVsZF0pO1xyXG4gICAgICAgICAgaWYgKGZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAvL0NvcHkgdGhlIG5vZGUgYW5kIHJlcGxhY2UgaXRzIGNoaWxkcmVuIHdpdGggdGhlIGZpbHRlcmVkIGNoaWxkcmVuXHJcbiAgICAgICAgICAgIGxldCBub2RlOiBhbnkgPSBPYmplY3QuYXNzaWduKHt9LCBjaGlsZCk7XHJcbiAgICAgICAgICAgIG5vZGVbdGhpcy5zZWFyY2hUcmVlT3B0aW9ucy5jaGlsZHJlbkZpZWxkXSA9IGZpbHRlcmVkQ2hpbGRyZW47XHJcbiAgICAgICAgICAgIGZpbHRlcmVkRGF0YS5wdXNoKG5vZGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbHRlcmVkRGF0YTtcclxuICB9XHJcblxyXG5cclxuICBpbmNsdWRlTm9kZShyb3c6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGluY2x1ZGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIGlmICh0aGlzLmZpbHRlcnMgJiYgdGhpcy5maWx0ZXJzLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgIGZvciAobGV0IGZpbHRlciBvZiB0aGlzLmZpbHRlcnMpIHtcclxuICAgICAgICBpZiAoIWZpbHRlci52YWxpZCB8fCAhZmlsdGVyLmdldFZhbHVlKCkgfHwgZmlsdGVyLmdldFZhbHVlKCkgPT09IFwiXCIpIHtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGZpbHRlci5nZXRGaWVsZCgpLmluZGV4T2YoXCIgb3IgXCIpICE9PSAtMSkge1xyXG4gICAgICAgICAgbGV0IGlubmVySW5jbHVkZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIGZvciAobGV0IGZpZWxkIG9mIGZpbHRlci5nZXRGaWVsZCgpLnNwbGl0KFwiIG9yIFwiKSkge1xyXG4gICAgICAgICAgICBpZiAocm93W2ZpZWxkXSAmJiByb3dbZmllbGRdLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXIuZ2V0VmFsdWUoKS50b0xvd2VyQ2FzZSgpKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICBpbm5lckluY2x1ZGUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKCFpbm5lckluY2x1ZGUpIHtcclxuICAgICAgICAgICAgaW5jbHVkZSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoIXJvd1tmaWx0ZXIuZmllbGRdKSB7XHJcbiAgICAgICAgICAgIGluY2x1ZGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHJvd1tmaWx0ZXIuZmllbGRdLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXIuZ2V0VmFsdWUoKS50b0xvd2VyQ2FzZSgpKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgaW5jbHVkZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW5jbHVkZTtcclxuICB9XHJcbiAgb25VcGRhdGVEYXRhKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9uRGF0YVVwZGF0ZSkge1xyXG4gICAgICB0aGlzLm9uRGF0YVVwZGF0ZSh0aGlzLCB0aGlzLnRyZWVDb21wb25lbnQsIGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTW92ZU5vZGUoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub25Ob2RlTW92ZWQpIHtcclxuICAgICAgdGhpcy5vbk5vZGVNb3ZlZCh0aGlzLCB0aGlzLnRyZWVDb21wb25lbnQsIGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTm9kZUNsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9uQ2xpY2spIHtcclxuICAgICAgdGhpcy5vbkNsaWNrKHRoaXMsIHRoaXMudHJlZUNvbXBvbmVudCwgZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnRyZWVDb21wb25lbnQudHJlZU1vZGVsLmFjdGl2ZU5vZGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5ub2RlU2VsZWN0ZWQuZW1pdCh7XHJcbiAgICAgICAgZXZlbnQ6IGV2ZW50LFxyXG4gICAgICAgIGlkOiB0aGlzLnRyZWVDb21wb25lbnQudHJlZU1vZGVsLmFjdGl2ZU5vZGVzWzBdLmRhdGEuaWQsXHJcbiAgICAgICAgbm9kZTogdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC5hY3RpdmVOb2Rlc1swXVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvIHRvIHRoZSBmaXJzdCBwYWdlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBkb1BhZ2VGaXJzdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5idXN5KSB7XHJcbiAgICAgIHRoaXMucGFnaW5nLnNldFBhZ2UoMCk7XHJcbiAgICAgIHRoaXMucGFnaW5nU3ViamVjdC5uZXh0KHRoaXMucGFnaW5nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvIHRvIHRoZSBwcmV2aW91cyBwYWdlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBkb1BhZ2VQcmV2aW91cygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5idXN5KSB7XHJcbiAgICAgIGlmICh0aGlzLnBhZ2luZy5nZXRQYWdlKCkgPiAwKSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmcuc2V0UGFnZSh0aGlzLnBhZ2luZy5nZXRQYWdlKCkgLSAxKTtcclxuICAgICAgICB0aGlzLnBhZ2luZ1N1YmplY3QubmV4dCh0aGlzLnBhZ2luZyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvIHRvIHRoZSBuZXh0IHBhZ2UuXHJcbiAgICovXHJcbiAgcHVibGljIGRvUGFnZU5leHQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYnVzeSkge1xyXG4gICAgICBpZiAodGhpcy5wYWdpbmcuZ2V0UGFnZSgpIDwgdGhpcy5wYWdpbmcuZ2V0TnVtUGFnZXMoKSAtIDEpIHtcclxuICAgICAgICB0aGlzLnBhZ2luZy5zZXRQYWdlKHRoaXMucGFnaW5nLmdldFBhZ2UoKSArIDEpO1xyXG4gICAgICAgIHRoaXMucGFnaW5nU3ViamVjdC5uZXh0KHRoaXMucGFnaW5nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR28gdG8gdGhlIGxhc3QgcGFnZS5cclxuICAgKi9cclxuICBwdWJsaWMgZG9QYWdlTGFzdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5idXN5KSB7XHJcbiAgICAgIHRoaXMucGFnaW5nLnNldFBhZ2UodGhpcy5wYWdpbmcuZ2V0TnVtUGFnZXMoKSAtIDEpO1xyXG4gICAgICB0aGlzLnBhZ2luZ1N1YmplY3QubmV4dCh0aGlzLnBhZ2luZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9UT0RvIDogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSB1c2VyIHVzZXMgYSBjdXN0b20gZ3JvdXBUZW1wbGF0ZVxyXG4gIC8qKlxyXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBjYXVzZSBTZWFyY2hMaXN0Q29tcG9uZW50IHRvIG5hdmlnYXRlIHRvIGEgcGFnZSBhbmQgaGlnaGxpZ2h0IHRoZSBnaXZlbiBncm91cCBpdGVtLCBvclxyXG4gICAqIHRoZSByb3cgKGluLWNhc2Ugb2Ygbm9uLWdyb3VwZWQgbGlzdClcclxuICAgKiBUaGlzXHJcbiAgICogQHBhcmFtIGdyb3VwSWQgOiBUaGlzIHNob3VsZCBjb250YWluIGEgc3RyaW5nIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IGEgcGFydGljdWxhciBncm91cC1kaXNwbGF5XHJcbiAgICogQHBhcmFtIHJvd0lkIDogVGhpcyBpcyB0aGUgYWN0dWFsIHJvd0lkIGZvciB0aGUgcm93IHRvIGJlIHNlbGVjdGVkLlxyXG4gICAqL1xyXG4gIG5hdmlnYXRlVG9QYWdlQ29udGFpbmluZ0VsZW1lbnQoaWQ6IGFueSl7XHJcblxyXG4gICAgaWYgKHRoaXMuYm91bmREYXRhLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5ib3VuZERhdGEuZm9yRWFjaCgocm93LCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAocm93W1wiaWRcIl0gPT09IGlkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmJ1c3kpIHtcclxuICAgICAgICAgIGxldCBwYWdlID0gTWF0aC5mbG9vcihpbmRleCAvIHRoaXMucGFnaW5nLmdldFBhZ2VTaXplKCkpO1xyXG4gICAgICAgICAgaWYgKHRoaXMucGFnaW5nLmdldE51bVBhZ2VzKCkgLSAxID49IHBhZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmcuc2V0UGFnZShwYWdlKTtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmdTdWJqZWN0Lm5leHQodGhpcy5wYWdpbmcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
654
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF2aWdhdGlvbi9zcmMvY29tcG9uZW50cy9zZWFyY2gtdHJlZS9zZWFyY2gtdHJlZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFDdkYsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUErQixXQUFXLEVBQUUsU0FBUyxFQUN2RyxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsZUFBZSxFQUEwQixNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxPQUFPLEVBQTJCLFVBQVUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFhLE1BQU0sNENBQTRDLENBQUM7QUFDMUksT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRS9ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNqRixPQUFPLEVBQUMsYUFBYSxFQUEwQixNQUFNLG1EQUFtRCxDQUFDOzs7Ozs7O0FBeURsRyxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFvQixTQUFRLFlBQVk7SUFtRm5ELFlBQVksVUFBc0IsRUFDdEIsUUFB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QkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUVFLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCxcclxuICBpc0Rldk1vZGUsIE9wdGlvbmFsLCBPdXRwdXQsIFF1ZXJ5TGlzdCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2UsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3R9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7ZGVsYXksIGZpbmFsaXplfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHtOZ2JEcm9wZG93bn0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcblxyXG5pbXBvcnQge0hjaURhdGFEdG8sIEhjaUZpbHRlckR0bywgSGNpR3JpZER0bywgSGNpR3JvdXBpbmdEdG8sIEhjaVBhZ2luZ0R0bywgSGNpU29ydER0b30gZnJvbSBcIkBodW50c21hbi1jYW5jZXItaW5zdGl0dXRlL2hjaS1uZy1ncmlkLWR0b1wiO1xyXG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS91dGlsc1wiO1xyXG5cclxuaW1wb3J0IHtOYXZDb21wb25lbnR9IGZyb20gXCIuLi9uYXYuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TmF2aWdhdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtOYXZpZ2F0aW9uR2xvYmFsU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24tZ2xvYmFsLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTZWFyY2hUcmVlQ29udHJvbGxlckNvbXBvbmVudH0gZnJvbSBcIi4vc2VhcmNoLXRyZWUtY29udHJvbGxlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmVlQ29tcG9uZW50LCBJVHJlZU9wdGlvbnMsIFRyZWVNb2RlbH0gZnJvbSBcIkBodW50c21hbi1jYW5jZXItaW5zdGl0dXRlL2FuZ3VsYXItdHJlZS1jb21wb25lbnRcIjtcclxuaW1wb3J0IHtJVHJlZU5vZGV9IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9hbmd1bGFyLXRyZWUtY29tcG9uZW50L2xpYi9kZWZzL2FwaVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnRUeXBlKFwiU2VhcmNoVHJlZUNvbXBvbmVudFwiKVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJoY2ktc2VhcmNoLXRyZWVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBzY3JvbGxhYmxlIHRyZWVCb3hcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiB0cmVlQm94XCI+XHJcbiAgICAgICAgPGhjaS1idXN5IFtidXN5U3ViamVjdHNdPVwibG9hZGluZ1N1YmplY3RzXCIgcGFyZW50U2VsZWN0b3I9XCIuc2Nyb2xsYWJsZVwiIFtpY29uXT1cImJ1c3lJY29uXCI+PC9oY2ktYnVzeT5cclxuICAgICAgICA8dHJlZS1yb290ICNzZWFyY2hUcmVlQ29udHJvbCBbbm9kZXNdPVwidmlld0RhdGFcIiBbb3B0aW9uc109XCJzZWFyY2hUcmVlT3B0aW9uc1wiIChhY3RpdmF0ZSk9XCJvbk5vZGVDbGljaygkZXZlbnQpXCIgKHVwZGF0ZURhdGEpPVwib25VcGRhdGVEYXRhKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgKG1vdmVOb2RlKT1cIm9uTW92ZU5vZGUoJGV2ZW50KVwiIGNsYXNzPVwic2VhcmNoVHJlZVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0cmVlTm9kZVRlbXBsYXRlIGxldC1ub2RlIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHtub2RlOiBub2RlfVwiPiA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC90cmVlLXJvb3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBQYWdpbmcgZm9vdGVyIC0tPlxyXG4gICAgPGRpdiAqbmdJZj1cInBhZ2luZy5wYWdlU2l6ZSA+IDBcIiBjbGFzcz1cImQtZmxleCBmbGV4LXNocmluay0wIHBhZ2luZy1mb290ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gcGwtMyBwci0zXCIgc3R5bGU9XCJtaW4taGVpZ2h0OiAxcmVtOyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlbGVjdGVkUm93R3JvdXBcIj5cclxuICAgICAgICA8ZGl2IChjbGljayk9XCJkb1BhZ2VGaXJzdCgpXCIgY2xhc3M9XCJkLWZsZXggbXQtMSBtYi0xXCIgW2NsYXNzLmRpc2FibGVkXT1cInBhZ2luZy5wYWdlID09PSAwXCI+PGkgY2xhc3M9XCJmYXMgZmEtZmFzdC1iYWNrd2FyZCBmYS14c1wiPjwvaT48L2Rpdj5cclxuICAgICAgICA8ZGl2IChjbGljayk9XCJkb1BhZ2VQcmV2aW91cygpXCIgY2xhc3M9XCJkLWZsZXggbXQtMSBtYi0xXCIgW2NsYXNzLmRpc2FibGVkXT1cInBhZ2luZy5wYWdlID09PSAwXCI+PGkgY2xhc3M9XCJmYXMgZmEtYmFja3dhcmQgZmEteHNcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMC44cmVtO1wiPnt7cGFnaW5nLnBhZ2UgKyAxfX0gb2Yge3twYWdpbmcubnVtUGFnZXN9fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgKGNsaWNrKT1cImRvUGFnZU5leHQoKVwiIGNsYXNzPVwiZC1mbGV4IG10LTEgbWItMVwiIFtjbGFzcy5kaXNhYmxlZF09XCJwYWdpbmcucGFnZSA9PT0gcGFnaW5nLm51bVBhZ2VzIC0gMVwiPjxpIGNsYXNzPVwiZmFzIGZhLWZvcndhcmQgZmEteHNcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPGRpdiAoY2xpY2spPVwiZG9QYWdlTGFzdCgpXCIgY2xhc3M9XCJkLWZsZXggbXQtMSBtYi0xXCIgW2NsYXNzLmRpc2FibGVkXT1cInBhZ2luZy5wYWdlID09PSBwYWdpbmcubnVtUGFnZXMgLSAxXCI+PGkgY2xhc3M9XCJmYXMgZmEtZmFzdC1mb3J3YXJkIGZhLXhzXCI+PC9pPjwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlIGxldC1kYXRhPVwibm9kZS5kYXRhXCI+XHJcbiAgICAgIDxzcGFuPnt7IGRhdGEubmFtZSB9fTwvc3Bhbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgXHJcbiAgICA6aG9zdCB7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICBmbGV4LXNocmluazogMTtcclxuICAgICB9XHJcblxyXG4gICAgIC50cmVlQm94IHtcclxuICAgICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICAgZmxleC1zaHJpbms6IDE7XHJcbiAgICAgfVxyXG5cclxuICAgICAuc2VhcmNoVHJlZSB7XHJcbiAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgfVxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hUcmVlQ29tcG9uZW50IGV4dGVuZHMgTmF2Q29tcG9uZW50IHtcclxuXHJcbiAgQFZpZXdDaGlsZChcInNlYXJjaFRyZWVDb250cm9sXCIsIHtzdGF0aWM6IGZhbHNlfSkgdHJlZUNvbXBvbmVudDogVHJlZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKFwiZGVmYXVsdFRlbXBsYXRlXCIsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlfSkgZGVmYXVsdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvLyBUaGUgZGF0YSB0aGF0IGlzIGFjdHVhbGx5IHJlbmRlcmVkLlxyXG4gIHZpZXdEYXRhOiBhbnlbXTtcclxuXHJcbiAgLy8gQSByZWZlcmVuY2UgdG8gdGhlIHNlYXJjaCBsaXN0IGNvbnRyb2xsZXIgaWYgYXBwbGljYWJsZS5cclxuICBASW5wdXQoKSBjb250cm9sbGVyOiBTZWFyY2hUcmVlQ29udHJvbGxlckNvbXBvbmVudDtcclxuXHJcbiAgLy8gQW4gYXJyYXkgb2YgZGF0YS5cclxuICBASW5wdXQoXCJkYXRhXCIpIGJvdW5kRGF0YTogT2JqZWN0W107XHJcblxyXG4gIC8vIEEgc3ViamVjdCB0aGF0IHJlcHJlc2VudHMgYW4gYXJyYXkgb2YgZGF0YS5cclxuICBASW5wdXQoXCJkYXRhU3ViamVjdFwiKSBkYXRhU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PE9iamVjdFtdPjtcclxuXHJcbiAgLy8gQSBmdW5jdGlvbiB3aGljaCB0YWtlcyBpbiBhIEhjaUdyaWREdG8gYW5kIHJldHVybnMgYSBIY2lEYXRhRHRvIHdoaWNoIHdyYXBzIGFuIGFycmF5IG9mIGRhdGEuXHJcbiAgQElucHV0KFwiZGF0YUNhbGxcIikgZXh0ZXJuYWxEYXRhQ2FsbDogKGR0bzogSGNpR3JpZER0bykgPT4gT2JzZXJ2YWJsZTxIY2lEYXRhRHRvPjtcclxuXHJcbiAgQElucHV0KFwic2VhcmNoVHJlZU9wdGlvbnNcIikgc2VhcmNoVHJlZU9wdGlvbnM6IGFueTtcclxuXHJcbiAgQElucHV0KCkgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvLyBBbiBhcnJheSBvZiBzdWJqZWN0cyB3aXRoIGJvb2xlYW5zIHRvIGNvbnRyb2wgdGhlIGhjaS1idXN5IG92ZXJsYXlpbmcgdGhlIHNlYXJjaC1saXN0LlxyXG4gIEBJbnB1dCgpIGxvYWRpbmdTdWJqZWN0czogU3ViamVjdDxib29sZWFuPltdO1xyXG5cclxuICAvLyBBbiBhcnJheSBvZiBib29sZWFucyB0byBjb250cm9sIHRoZSBoY2ktYnVzeSBvdmVybGF5aW5nIHRoZSBzZWFyY2gtbGlzdC5cclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuW10gPSBbZmFsc2VdO1xyXG5cclxuICAvLyBJZiBjbGlja2luZyBhIHJvdyBjaGFuZ2VzIGEgcm91dGUsIHRoaXMgZnVuY3Rpb24gc3BlY2lmaWVzIHRoZSByb3V0ZSB0byB1c2UuXHJcbiAgQElucHV0KCkgcm91dGU6IChyb3dHcm91cDogYW55LCByb3c6IGFueSkgPT4gYW55W107XHJcblxyXG4gIC8vIFRoZSBwYWdlIHNpemUgb2Ygcm93IGdyb3VwcyBvciByb3dzIGlmIG5vIGdyb3VwaW5nLlxyXG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXI7XHJcblxyXG4gIC8vIEEgcmVmZXJlbmNlIHRvIGEgcGFyZW50IGRyb3Bkb3duIGlmIGFwcGxpY2FibGUuXHJcbiAgQElucHV0KCkgZHJvcGRvd246IE5nYkRyb3Bkb3duO1xyXG5cclxuICAvL1doaWNoIGljb24gdG8gdXNlIGZvciB0aGUgYnVzeSBzcGlubmVyXHJcbiAgQElucHV0KCkgYnVzeUljb246IHN0cmluZyA9IFwiZmFzIGZhLXN5bmMgZmEtc3BpblwiO1xyXG4gIC8vRWl0aGVyIGFuIGFycmF5IG9mIG5vZGUgaWRzIGZvciBleHBhbmRpbmcgb3IgYSBzdHJpbmcgJ2FsbCcgZm9yIGV4cGFuZGluZyB3aG9sZSB0cmVlXHJcbiAgQElucHV0KCkgZXhwYW5kVHJlZU5vZGVJRHM6IHN0cmluZyB8IGFueVtdO1xyXG5cclxuICBASW5wdXQoKSBvbkNsaWNrOiAoY21wdDogU2VhcmNoVHJlZUNvbXBvbmVudCwgdHJlZTogVHJlZUNvbXBvbmVudCwgZXZlbnQ6IGFueSkgPT4gdm9pZDtcclxuXHJcbiAgQElucHV0KCkgb25Ob2RlTW92ZWQ6IChjbXB0OiBTZWFyY2hUcmVlQ29tcG9uZW50LCB0cmVlOiBUcmVlQ29tcG9uZW50LCBldmVudDogYW55KSA9PiB2b2lkO1xyXG5cclxuICBASW5wdXQoKSBvbkRhdGFVcGRhdGU6IChjbXB0OiBTZWFyY2hUcmVlQ29tcG9uZW50LCB0cmVlOiBUcmVlQ29tcG9uZW50LCBldmVudDogYW55KSA9PiB2b2lkO1xyXG5cclxuICBAT3V0cHV0KCkgbm9kZVNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBkYXRhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIFxyXG4gIEBJbnB1dCgpIHNvcnRDaGlsZHJlbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cclxuICAvLyBHcmlkIERUTyBpbmZvIG5lZWRlZCB0byBidWlsZCBleHRlcm5hbCBkYXRhIHJlcXVlc3RzLlxyXG4gIHNvcnRzOiBIY2lTb3J0RHRvW10gPSBbXTtcclxuICBmaWx0ZXJzOiBIY2lGaWx0ZXJEdG9bXSA9IFtdO1xyXG4gIHBhZ2luZzogSGNpUGFnaW5nRHRvID0gbmV3IEhjaVBhZ2luZ0R0bygwLCAtMSk7XHJcbiAgcGFnaW5nU3ViamVjdDogU3ViamVjdDxIY2lQYWdpbmdEdG8+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIY2lQYWdpbmdEdG8+KHRoaXMucGFnaW5nKTtcclxuXHJcbiAgZGVmYXVsdFNlYXJjaFRyZWVPcHRpb25zOiBJVHJlZU9wdGlvbnMgPSB7XHJcbiAgICAgIGlkRmllbGQ6IFwiaWRcIixcclxuICAgICAgZGlzcGxheUZpZWxkOiBcIm5hbWVcIixcclxuICAgICAgY2hpbGRyZW5GaWVsZDogXCJjaGlsZHJlblwiLFxyXG4gICAgICB1c2VWaXJ0dWFsU2Nyb2xsOiB0cnVlLFxyXG4gICAgICBub2RlSGVpZ2h0OiAyMlxyXG4gICAgfTtcclxuXHJcbiAgLy8gQSBkdW1teSBudW1iZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIHNlbGVjdGlvbiBjaGFuZ2VzLiAgRm9yY2VzIHJvdXRlckxpbmtBY3RpdmUgdG8gcmVjaGVjay5cclxuICByb3dSZWZyZXNoOiBudW1iZXIgPSAwO1xyXG5cclxuICBidXN5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGxhc3RTY3JvbGxUb3A6IG51bWJlciA9IC0xO1xyXG4gIGxhc3RTY3JvbGxQb3NpdGlvbjogbnVtYmVyID0gMTtcclxuICBzZXRTY3JvbGxUb3A6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY21wdDogU2VhcmNoVHJlZUNvbXBvbmVudCA9IHRoaXM7XHJcblxyXG4gIGxhc3RFdmVudDogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgICAgICAgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uR2xvYmFsU2VydmljZTogTmF2aWdhdGlvbkdsb2JhbFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZiwgcmVuZGVyZXIsIHJlc29sdmVyLCBuYXZpZ2F0aW9uU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG5cclxuICAgIGlmICghbmF2aWdhdGlvblNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZSA9IG5ldyBOYXZpZ2F0aW9uU2VydmljZShuYXZpZ2F0aW9uR2xvYmFsU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0SWQoKSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuaXNSb290ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zZXRDb25maWcoe30pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT24gaW5pdCwgbGlzdGVuIGZvciBsb2FkaW5nIHN1YmplY3RzIGFuZCBsaXN0ZW4gZm9yIHBhZ2UgY2hhbmdlcy5cclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcblxyXG4gICAgaWYgKHRoaXMubG9hZGluZ1N1YmplY3RzKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZ1N1YmplY3RzWzBdLnN1YnNjcmliZSgoYnVzeTogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIHRoaXMuYnVzeSA9IGJ1c3k7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucGFnaW5nU3ViamVjdC5zdWJzY3JpYmUoKHBhZ2luZzogSGNpUGFnaW5nRHRvKSA9PiB7XHJcbiAgICAgIHRoaXMucGFnaW5nID0gcGFnaW5nO1xyXG4gICAgICB0aGlzLnNldERhdGEoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIHdoZW4gaW5wdXRzIGNoYW5nZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7U2ltcGxlQ2hhbmdlc30gY2hhbmdlc1xyXG4gICAqL1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG5cclxuICAgIHRoaXMucmVmcmVzaFRyZWUoKTtcclxuICB9XHJcblxyXG4gICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICAgaWYgKHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwgJiYgdGhpcy5leHBhbmRUcmVlTm9kZUlEcyApIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICBsZXQgdHJlZU1vZGVsOiBUcmVlTW9kZWwgPSB0aGlzLnRyZWVDb21wb25lbnQudHJlZU1vZGVsO1xyXG4gICAgICAgaWYoQXJyYXkuaXNBcnJheSh0aGlzLmV4cGFuZFRyZWVOb2RlSURzKSkge1xyXG4gICAgICAgICBmb3IobGV0IG5vZGVJZCBvZiB0aGlzLmV4cGFuZFRyZWVOb2RlSURzKSB7XHJcbiAgICAgICAgICAgbGV0IG5vZGU6IElUcmVlTm9kZSA9IHRyZWVNb2RlbC5nZXROb2RlQnlJZChub2RlSWQpO1xyXG4gICAgICAgICAgIGlmKG5vZGUpIHtcclxuICAgICAgICAgICAgIG5vZGUuZXhwYW5kKCk7XHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgICAgICB9IGVsc2UgaWYodHlwZW9mIHRoaXMuZXhwYW5kVHJlZU5vZGVJRHMgPT09IFwic3RyaW5nXCJcclxuICAgICAgICAgJiYgdGhpcy5leHBhbmRUcmVlTm9kZUlEcyA9PT0gXCJhbGxcIikge1xyXG4gICAgICAgICB0cmVlTW9kZWwuZXhwYW5kQWxsKCk7XHJcbiAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICB9XHJcbiAgIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBkYXRhIG9ubHkgd2hlbiB0aGUgY29tcG9uZW50IGhhcyBmdWxseSBpbml0aWFsaXplZCBhbmQgaXMgcmVuZGVyZWQuXHJcbiAgICovXHJcbiAgY2hlY2tJbml0aWFsaXplZCgpIHtcclxuICAgIGlmICh0aGlzLmFmdGVyVmlld0luaXQpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlnKHRoaXMuY29uZmlnKTtcclxuICAgICAgdGhpcy5wb3N0SW5pdCgpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZGF0YVN1YmplY3QpIHtcclxuICAgICAgICAvL01heSBhcyB3ZWxsIG1ha2UgaXQgc3BpbiB3aGlsZSBwcm9jZXNzaW5nLCBhcyB3ZWxsIGFzIGxvYWRpbmcuIE90aGVyd2lzZSBpdCBsb29rcyBmcm96ZW5cclxuICAgICAgICBpZiAodGhpcy5sb2FkaW5nU3ViamVjdHMpIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3RzWzBdLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmRhdGFTdWJqZWN0XHJcbiAgICAgICAgICAucGlwZShkZWxheSgwKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IE9iamVjdFtdKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYm91bmREYXRhID0gZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zZXREYXRhKCk7XHJcblxyXG4gICAgICAgICAgICAvL05vdyBkb25lIGxvYWRpbmdcclxuICAgICAgICAgICAgaWYgKHRoaXMubG9hZGluZ1N1YmplY3RzKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdHNbMF0ubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldERhdGEoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9zdEluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIlNlYXJjaFRyZWVDb21wb25lbnQucG9zdEluaXQ6IFwiICsgdGhpcy5pZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZ2V0UGFyZW50KCkpIHtcclxuICAgICAgdGhpcy5jb250cm9sbGVyID0gPFNlYXJjaFRyZWVDb250cm9sbGVyQ29tcG9uZW50PnRoaXMuZ2V0UGFyZW50KCkuZ2V0Q29tcG9uZW50QnlUeXBlKFwiU2VhcmNoVHJlZUNvbnRyb2xsZXJDb21wb25lbnRcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY29udHJvbGxlcikge1xyXG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiU2VhcmNoVHJlZUNvbXBvbmVudDogdXNpbmcgY29udHJvbGxlclwiKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jb250cm9sbGVyLmFkZFNlYXJjaExpc3QodGhpcy50aXRsZSk7XHJcblxyXG4gICAgICB0aGlzLmNvbnRyb2xsZXIuZmlsdGVyc1N1YmplY3Quc3Vic2NyaWJlKChmaWx0ZXJzOiBIY2lGaWx0ZXJEdG9bXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZmlsdGVycyA9IGZpbHRlcnM7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhKCk7XHJcbiAgICAgICAgdGhpcy5yZXNldFBhZ2luZygpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuY29udHJvbGxlci5zb3J0c1N1YmplY3Quc3Vic2NyaWJlKChzb3J0czogSGNpU29ydER0b1tdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zb3J0cyA9IHNvcnRzO1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YSgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuY29udHJvbGxlci5zZWxlY3RlZFNlYXJjaExpc3RTdWJqZWN0LnN1YnNjcmliZSgodGl0bGU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgY29uc29sZS5kZWJ1ZyhcInNlbGVjdGVkU2VhcmNoTGlzdFN1YmplY3Quc3Vic2NyaWJlOiBcIiArIHRoaXMudGl0bGUgKyBcIiwgXCIgKyB0aXRsZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnRpdGxlICYmIHRpdGxlICYmIHRoaXMudGl0bGUgIT09IHRpdGxlKSB7XHJcbiAgICAgICAgICB2aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmlzaWJsZSkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJkaXNwbGF5XCIsIFwiZmxleFwiKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJkaXNwbGF5XCIsIFwibm9uZVwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucmVmcmVzaFRyZWUoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnJlZnJlc2hUcmVlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGlzIGZ1bmN0aW9uIHdvdWxkIHJlc2V0IHBhZ2luZyBhbmQgZmlyZXNcclxuICAgKi9cclxuICByZXNldFBhZ2luZygpe1xyXG4gICAgdGhpcy5wYWdpbmcuc2V0UGFnZSgwKTtcclxuICAgIHRoaXMucGFnaW5nU3ViamVjdC5uZXh0KHRoaXMucGFnaW5nKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGNvbmZpZyB3aXRoIG9wdGlvbnMgYW5kIHJlLWZldGNoZXMgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBjb25maWdcclxuICAgKi9cclxuICB1cGRhdGVDb25maWcoY29uZmlnKSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcInVwZGF0ZUNvbmZpZ1wiKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcsIGNvbmZpZyk7XHJcblxyXG4gICAgICBpZiAoY29uZmlnLnJvdXRlKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZSA9IGNvbmZpZy5yb3V0ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29uZmlnLnBhZ2VTaXplKSB7XHJcbiAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IGNvbmZpZy5wYWdlU2l6ZTtcclxuICAgICAgICB0aGlzLnBhZ2luZy5zZXRQYWdlU2l6ZShjb25maWcucGFnZVNpemUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb25maWcuZGF0YSkge1xyXG4gICAgICAgIHRoaXMuYm91bmREYXRhID0gY29uZmlnLmRhdGE7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbmZpZy5kYXRhU3ViamVjdCkge1xyXG4gICAgICAgIHRoaXMuZGF0YVN1YmplY3QgPSBjb25maWcuZGF0YVN1YmplY3Q7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbmZpZy5kYXRhQ2FsbCkge1xyXG4gICAgICAgIHRoaXMuZXh0ZXJuYWxEYXRhQ2FsbCA9IGNvbmZpZy5kYXRhQ2FsbDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29uZmlnLnNlYXJjaFRyZWVPcHRpb25zKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hUcmVlT3B0aW9ucyA9IGNvbmZpZy5zZWFyY2hUcmVlT3B0aW9ucztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFRyZWVPcHRpb25zID0gdGhpcy5kZWZhdWx0U2VhcmNoVHJlZU9wdGlvbnM7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbmZpZy5pdGVtVGVtcGxhdGUpIHtcclxuICAgICAgICB0aGlzLml0ZW1UZW1wbGF0ZSA9IGNvbmZpZy5pdGVtVGVtcGxhdGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLml0ZW1UZW1wbGF0ZSkge1xyXG4gICAgICAgIHRoaXMuaXRlbVRlbXBsYXRlID0gdGhpcy5kZWZhdWx0VGVtcGxhdGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjb25maWcubG9hZGluZ1N1YmplY3RzKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdHMgPSBjb25maWcubG9hZGluZ1N1YmplY3RzO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb25maWcub25DbGljaykge1xyXG4gICAgICAgIHRoaXMub25DbGljayA9IGNvbmZpZy5vbkNsaWNrO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb25maWcub25Ob2RlTW92ZWQpIHtcclxuICAgICAgICB0aGlzLm9uTm9kZU1vdmVkID0gY29uZmlnLm9uTm9kZU1vdmVkO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGNvbmZpZy5vbkRhdGFVcGRhdGUpIHtcclxuICAgICAgICB0aGlzLm9uRGF0YVVwZGF0ZSA9IGNvbmZpZy5vbkRhdGFVcGRhdGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYoY29uZmlnLmV4cGFuZFRyZWVOb2RlSURzKSB7XHJcbiAgICAgICAgdGhpcy5leHBhbmRUcmVlTm9kZUlEcyA9IGNvbmZpZy5leHBhbmRUcmVlTm9kZUlEcztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmV4dGVybmFsRGF0YUNhbGwpIHtcclxuICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdHMgPSBbbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSldO1xyXG4gICAgfVxyXG5cclxuICAgIHN1cGVyLnVwZGF0ZUNvbmZpZyhjb25maWcpO1xyXG5cclxuICAgIHRoaXMuc2V0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIHRoZSBkYXRhIGlmIGFuIGFycmF5LCBjYWxscyB0aGUgZGF0YSBpZiBleHRlcm5hbCBjYWxsLlxyXG4gICAqL1xyXG4gIHNldERhdGEoZGF0YT86IE9iamVjdFtdKTogdm9pZCB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcInNldERhdGFcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRhdGEpIHtcclxuICAgICAgdGhpcy5ib3VuZERhdGEgPSBkYXRhO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy5leHRlcm5hbERhdGFDYWxsKSB7XHJcbiAgICAgIGlmICghdGhpcy5idXN5KSB7XHJcbiAgICAgICAgdGhpcy5idXN5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0c1swXS5uZXh0KHRydWUpO1xyXG5cclxuICAgICAgICB0aGlzLmV4dGVybmFsRGF0YUNhbGwobmV3IEhjaUdyaWREdG8odGhpcy5maWx0ZXJzLCB0aGlzLnNvcnRzLCB0aGlzLnBhZ2luZywgbmV3IEhjaUdyb3VwaW5nRHRvKCkpKVxyXG4gICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0c1swXS5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5idXN5ID0gZmFsc2U7XHJcbiAgICAgICAgICB9KSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKGV4dGVybmFsRGF0YTogSGNpRGF0YUR0bykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlRGF0YShleHRlcm5hbERhdGEpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVEYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgdGhlIGRhdGEgYXJyYXkgdGhhdCB0aGUgaW50ZXJmYWNlIHVzZXMgdG8gcmVuZGVyIChyZWdhcmRsZXNzIG9mIHNvdXJjZSkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0hjaURhdGFEdG99IGV4dGVybmFsRGF0YVxyXG4gICAqL1xyXG4gIGdlbmVyYXRlRGF0YShleHRlcm5hbERhdGE/OiBIY2lEYXRhRHRvKTogdm9pZCB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcImdlbmVyYXRlRGF0YVwiKTtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhleHRlcm5hbERhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChleHRlcm5hbERhdGEpIHtcclxuICAgICAgdGhpcy5ib3VuZERhdGEgPSBleHRlcm5hbERhdGEuZGF0YTtcclxuICAgICAgdGhpcy5wYWdpbmcuc2V0RGF0YVNpemUoZXh0ZXJuYWxEYXRhLmdyaWREdG8ucGFnaW5nLmRhdGFTaXplKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSByb3cgZ3JvdXBzLlxyXG4gICAgICB0aGlzLnZpZXdEYXRhID0gW107XHJcblxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYm91bmREYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy52aWV3RGF0YS5wdXNoKHRoaXMuYm91bmREYXRhW2ldKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gQ3JlYXRlIGFuZCBwb3B1bGF0ZSByb3cgZ3JvdXBzLlxyXG4gICAgICB0aGlzLnBvcHVsYXRlRnJvbUJvdW5kRGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlLmVtaXQoT2JqZWN0LmFzc2lnbih7dHlwZTogXCJub25lXCJ9LCB0aGlzLmxhc3RFdmVudCwge3BhZ2luZzogdGhpcy5wYWdpbmcsIG5WaWV3RGF0YTogdGhpcy52aWV3RGF0YS5sZW5ndGh9KSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgdGhlIGRhdGEgaWYgdGhlIGRhdGEgaXMgYW4gYXJyYXkgKG5vdCBleHRlcm5hbCkuXHJcbiAgICovXHJcbiAgcG9wdWxhdGVGcm9tQm91bmREYXRhKCk6IHZvaWQge1xyXG5cclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwicG9wdWxhdGVGcm9tQm91bmREYXRhXCIpO1xyXG4gICAgICBjb25zb2xlLmRlYnVnKHRoaXMuYm91bmREYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuYm91bmREYXRhKSB7XHJcbiAgICAgIHRoaXMudmlld0RhdGEgPSBbXTtcclxuICAgICAgdGhpcy5wYWdpbmcuc2V0UGFnZSgwKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmJvdW5kRGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIkJvdW5kIERhdGEgbGVuZ3RoIGZvdW5kIGFzIDBcIik7XHJcbiAgICAgIHRoaXMucGFnaW5nLnNldFBhZ2UoMCk7XHJcbiAgICAgIHRoaXMucGFnaW5nLnNldE51bVBhZ2VzKDEpO1xyXG4gICAgICB0aGlzLnBhZ2luZy5zZXREYXRhU2l6ZSgwKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcHJlcGFyZWREYXRhID0gdGhpcy5maWx0ZXJUcmVlSW5jbHVkZUNoaWxkcmVuKHRoaXMuYm91bmREYXRhKTtcclxuXHJcbiAgICBpZiAodGhpcy5zb3J0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc29ydERhdGEocHJlcGFyZWREYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBhZ2luZy5zZXREYXRhU2l6ZShwcmVwYXJlZERhdGEubGVuZ3RoKTtcclxuXHJcblxyXG4gICAgaWYgKHRoaXMucGFnaW5nLmdldFBhZ2VTaXplKCkgPiAwKSB7XHJcbiAgICAgIHRoaXMudmlld0RhdGEgPSBbXTtcclxuICAgICAgZm9yICh2YXIgaSA9IHRoaXMucGFnaW5nLmdldFBhZ2UoKSAqIHRoaXMucGFnaW5nLmdldFBhZ2VTaXplKCk7IGkgPCBNYXRoLm1pbihwcmVwYXJlZERhdGEubGVuZ3RoLCAodGhpcy5wYWdpbmcuZ2V0UGFnZSgpICsgMSkgKiB0aGlzLnBhZ2luZy5nZXRQYWdlU2l6ZSgpKTsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy52aWV3RGF0YS5wdXNoKHByZXBhcmVkRGF0YVtpXSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGFnaW5nLnNldERhdGFTaXplKHByZXBhcmVkRGF0YS5sZW5ndGgpO1xyXG4gICAgICB0aGlzLnZpZXdEYXRhID0gcHJlcGFyZWREYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiRmlsdGVyZWQgVHJlZSBEYXRhOlwiKTtcclxuICAgICAgY29uc29sZS5kZWJ1Zyh0aGlzLnZpZXdEYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlZnJlc2hUcmVlKCk7XHJcbiAgfVxyXG4gIFxyXG4gIHNvcnREYXRhKGRhdGE6IGFueSkge1xyXG4gICAgZGF0YS5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdjogbnVtYmVyID0gMDtcclxuXHJcbiAgICAgIGZvciAobGV0IHNvcnQgb2YgdGhpcy5zb3J0cykge1xyXG4gICAgICAgIGlmIChzb3J0LmdldEFzYygpKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy51cHBlcihhW3NvcnQuZ2V0RmllbGQoKV0pIDwgdGhpcy51cHBlcihiW3NvcnQuZ2V0RmllbGQoKV0pKSB7XHJcbiAgICAgICAgICAgIHYgPSAtMTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51cHBlcihhW3NvcnQuZ2V0RmllbGQoKV0pID4gdGhpcy51cHBlcihiW3NvcnQuZ2V0RmllbGQoKV0pKSB7XHJcbiAgICAgICAgICAgIHYgPSAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAodGhpcy51cHBlcihhW3NvcnQuZ2V0RmllbGQoKV0pID4gdGhpcy51cHBlcihiW3NvcnQuZ2V0RmllbGQoKV0pKSB7XHJcbiAgICAgICAgICAgIHYgPSAtMTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51cHBlcihhW3NvcnQuZ2V0RmllbGQoKV0pIDwgdGhpcy51cHBlcihiW3NvcnQuZ2V0RmllbGQoKV0pKSB7XHJcbiAgICAgICAgICAgIHYgPSAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHYgIT0gMCkge1xyXG4gICAgICAgICAgcmV0dXJuIHY7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdjtcclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICAvL1NvcnQgY2hpbGRyZW5cclxuICAgIGlmICh0aGlzLnNvcnRDaGlsZHJlbikge1xyXG4gICAgICBmb3IgKGxldCBjaGlsZCBvZiBkYXRhKSB7XHJcbiAgICAgICAgaWYgKGNoaWxkW3RoaXMuc2VhcmNoVHJlZU9wdGlvbnMuY2hpbGRyZW5GaWVsZF0pIHtcclxuICAgICAgICAgIHRoaXMuc29ydERhdGEoY2hpbGRbdGhpcy5zZWFyY2hUcmVlT3B0aW9ucy5jaGlsZHJlbkZpZWxkXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cHBlcih2YWx1ZTogT2JqZWN0KSB7XHJcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaFRyZWUgKCkge1xyXG4gICAgdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC51cGRhdGUoKTtcclxuICAgIHRoaXMudHJlZUNvbXBvbmVudC5zaXplQ2hhbmdlZCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVjdXJzaXZlIHRyZWUgc2VhcmNoLiAgSXQgd2lsbCBpbmNsdWRlIGNoaWxkcmVuIG5vZGVzIGlmIGEgcGFyZW50IG5vZGUgbWF0Y2hlcyB0aGUgc2VhcmNoIHN0cmluZy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7YW55W119IGRhdGFcclxuICAgKiBAcmV0dXJucyB7YW55W119XHJcbiAgICovXHJcbiAgZmlsdGVyVHJlZUluY2x1ZGVDaGlsZHJlbihkYXRhOiBhbnlbXSk6IGFueVtdIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiZmlsdGVyVHJlZUluY2x1ZGVDaGlsZHJlblwiKTtcclxuICAgIH1cclxuICAgIGxldCBmaWx0ZXJlZERhdGE6IGFueVtdID0gW107XHJcbiAgICBmb3IgKGxldCBjaGlsZCBvZiBkYXRhKSB7XHJcbiAgICAgIGlmICh0aGlzLmluY2x1ZGVOb2RlKGNoaWxkKSkgIHtcclxuICAgICAgICBmaWx0ZXJlZERhdGEucHVzaChjaGlsZCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKGNoaWxkW3RoaXMuc2VhcmNoVHJlZU9wdGlvbnMuY2hpbGRyZW5GaWVsZF0pIHtcclxuICAgICAgICAgIGxldCBmaWx0ZXJlZENoaWxkcmVuID0gdGhpcy5maWx0ZXJUcmVlSW5jbHVkZUNoaWxkcmVuKGNoaWxkW3RoaXMuc2VhcmNoVHJlZU9wdGlvbnMuY2hpbGRyZW5GaWVsZF0pO1xyXG4gICAgICAgICAgaWYgKGZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAvL0NvcHkgdGhlIG5vZGUgYW5kIHJlcGxhY2UgaXRzIGNoaWxkcmVuIHdpdGggdGhlIGZpbHRlcmVkIGNoaWxkcmVuXHJcbiAgICAgICAgICAgIGxldCBub2RlOiBhbnkgPSBPYmplY3QuYXNzaWduKHt9LCBjaGlsZCk7XHJcbiAgICAgICAgICAgIG5vZGVbdGhpcy5zZWFyY2hUcmVlT3B0aW9ucy5jaGlsZHJlbkZpZWxkXSA9IGZpbHRlcmVkQ2hpbGRyZW47XHJcbiAgICAgICAgICAgIGZpbHRlcmVkRGF0YS5wdXNoKG5vZGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbHRlcmVkRGF0YTtcclxuICB9XHJcblxyXG5cclxuICBpbmNsdWRlTm9kZShyb3c6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGluY2x1ZGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIGlmICh0aGlzLmZpbHRlcnMgJiYgdGhpcy5maWx0ZXJzLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgIGZvciAobGV0IGZpbHRlciBvZiB0aGlzLmZpbHRlcnMpIHtcclxuICAgICAgICBpZiAoIWZpbHRlci52YWxpZCB8fCAhZmlsdGVyLmdldFZhbHVlKCkgfHwgZmlsdGVyLmdldFZhbHVlKCkgPT09IFwiXCIpIHtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGZpbHRlci5nZXRGaWVsZCgpLmluZGV4T2YoXCIgb3IgXCIpICE9PSAtMSkge1xyXG4gICAgICAgICAgbGV0IGlubmVySW5jbHVkZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIGZvciAobGV0IGZpZWxkIG9mIGZpbHRlci5nZXRGaWVsZCgpLnNwbGl0KFwiIG9yIFwiKSkge1xyXG4gICAgICAgICAgICBpZiAocm93W2ZpZWxkXSAmJiByb3dbZmllbGRdLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXIuZ2V0VmFsdWUoKS50b0xvd2VyQ2FzZSgpKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICBpbm5lckluY2x1ZGUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKCFpbm5lckluY2x1ZGUpIHtcclxuICAgICAgICAgICAgaW5jbHVkZSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoIXJvd1tmaWx0ZXIuZmllbGRdKSB7XHJcbiAgICAgICAgICAgIGluY2x1ZGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHJvd1tmaWx0ZXIuZmllbGRdLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXIuZ2V0VmFsdWUoKS50b0xvd2VyQ2FzZSgpKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgaW5jbHVkZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW5jbHVkZTtcclxuICB9XHJcbiAgb25VcGRhdGVEYXRhKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9uRGF0YVVwZGF0ZSkge1xyXG4gICAgICB0aGlzLm9uRGF0YVVwZGF0ZSh0aGlzLCB0aGlzLnRyZWVDb21wb25lbnQsIGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTW92ZU5vZGUoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub25Ob2RlTW92ZWQpIHtcclxuICAgICAgdGhpcy5vbk5vZGVNb3ZlZCh0aGlzLCB0aGlzLnRyZWVDb21wb25lbnQsIGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTm9kZUNsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9uQ2xpY2spIHtcclxuICAgICAgdGhpcy5vbkNsaWNrKHRoaXMsIHRoaXMudHJlZUNvbXBvbmVudCwgZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnRyZWVDb21wb25lbnQudHJlZU1vZGVsLmFjdGl2ZU5vZGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5ub2RlU2VsZWN0ZWQuZW1pdCh7XHJcbiAgICAgICAgZXZlbnQ6IGV2ZW50LFxyXG4gICAgICAgIGlkOiB0aGlzLnRyZWVDb21wb25lbnQudHJlZU1vZGVsLmFjdGl2ZU5vZGVzWzBdLmRhdGEuaWQsXHJcbiAgICAgICAgbm9kZTogdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC5hY3RpdmVOb2Rlc1swXVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvIHRvIHRoZSBmaXJzdCBwYWdlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBkb1BhZ2VGaXJzdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5idXN5KSB7XHJcbiAgICAgIHRoaXMucGFnaW5nLnNldFBhZ2UoMCk7XHJcbiAgICAgIHRoaXMucGFnaW5nU3ViamVjdC5uZXh0KHRoaXMucGFnaW5nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvIHRvIHRoZSBwcmV2aW91cyBwYWdlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBkb1BhZ2VQcmV2aW91cygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5idXN5KSB7XHJcbiAgICAgIGlmICh0aGlzLnBhZ2luZy5nZXRQYWdlKCkgPiAwKSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmcuc2V0UGFnZSh0aGlzLnBhZ2luZy5nZXRQYWdlKCkgLSAxKTtcclxuICAgICAgICB0aGlzLnBhZ2luZ1N1YmplY3QubmV4dCh0aGlzLnBhZ2luZyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvIHRvIHRoZSBuZXh0IHBhZ2UuXHJcbiAgICovXHJcbiAgcHVibGljIGRvUGFnZU5leHQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYnVzeSkge1xyXG4gICAgICBpZiAodGhpcy5wYWdpbmcuZ2V0UGFnZSgpIDwgdGhpcy5wYWdpbmcuZ2V0TnVtUGFnZXMoKSAtIDEpIHtcclxuICAgICAgICB0aGlzLnBhZ2luZy5zZXRQYWdlKHRoaXMucGFnaW5nLmdldFBhZ2UoKSArIDEpO1xyXG4gICAgICAgIHRoaXMucGFnaW5nU3ViamVjdC5uZXh0KHRoaXMucGFnaW5nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR28gdG8gdGhlIGxhc3QgcGFnZS5cclxuICAgKi9cclxuICBwdWJsaWMgZG9QYWdlTGFzdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5idXN5KSB7XHJcbiAgICAgIHRoaXMucGFnaW5nLnNldFBhZ2UodGhpcy5wYWdpbmcuZ2V0TnVtUGFnZXMoKSAtIDEpO1xyXG4gICAgICB0aGlzLnBhZ2luZ1N1YmplY3QubmV4dCh0aGlzLnBhZ2luZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9UT0RvIDogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSB1c2VyIHVzZXMgYSBjdXN0b20gZ3JvdXBUZW1wbGF0ZVxyXG4gIC8qKlxyXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBjYXVzZSBTZWFyY2hMaXN0Q29tcG9uZW50IHRvIG5hdmlnYXRlIHRvIGEgcGFnZSBhbmQgaGlnaGxpZ2h0IHRoZSBnaXZlbiBncm91cCBpdGVtLCBvclxyXG4gICAqIHRoZSByb3cgKGluLWNhc2Ugb2Ygbm9uLWdyb3VwZWQgbGlzdClcclxuICAgKiBUaGlzXHJcbiAgICogQHBhcmFtIGdyb3VwSWQgOiBUaGlzIHNob3VsZCBjb250YWluIGEgc3RyaW5nIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IGEgcGFydGljdWxhciBncm91cC1kaXNwbGF5XHJcbiAgICogQHBhcmFtIHJvd0lkIDogVGhpcyBpcyB0aGUgYWN0dWFsIHJvd0lkIGZvciB0aGUgcm93IHRvIGJlIHNlbGVjdGVkLlxyXG4gICAqL1xyXG4gIG5hdmlnYXRlVG9QYWdlQ29udGFpbmluZ0VsZW1lbnQoaWQ6IGFueSl7XHJcblxyXG4gICAgaWYgKHRoaXMuYm91bmREYXRhLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5ib3VuZERhdGEuZm9yRWFjaCgocm93LCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAocm93W1wiaWRcIl0gPT09IGlkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmJ1c3kpIHtcclxuICAgICAgICAgIGxldCBwYWdlID0gTWF0aC5mbG9vcihpbmRleCAvIHRoaXMucGFnaW5nLmdldFBhZ2VTaXplKCkpO1xyXG4gICAgICAgICAgaWYgKHRoaXMucGFnaW5nLmdldE51bVBhZ2VzKCkgLSAxID49IHBhZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmcuc2V0UGFnZShwYWdlKTtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmdTdWJqZWN0Lm5leHQodGhpcy5wYWdpbmcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -62,18 +62,18 @@ let TemplateComponent = class TemplateComponent extends NavComponent {
|
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
TemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TemplateComponent, selector: "hci-template", inputs: { template: "template", componentType: "componentType" }, viewQueries: [{ propertyName: "viewContainer", first: true, predicate: ["viewContainer"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: `
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TemplateComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ComponentFactoryResolver }, { token: i1.NavigationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TemplateComponent, selector: "hci-template", inputs: { template: "template", componentType: "componentType" }, viewQueries: [{ propertyName: "viewContainer", first: true, predicate: ["viewContainer"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: `
|
|
68
67
|
<ng-container [ngTemplateOutlet]="template" [ngTemplateOutletContext]="config"></ng-container>
|
|
69
68
|
<ng-container #viewContainer></ng-container>
|
|
70
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
69
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
70
|
+
};
|
|
71
71
|
TemplateComponent = __decorate([
|
|
72
72
|
ComponentType("TemplateComponent"),
|
|
73
73
|
__metadata("design:paramtypes", [ElementRef, Renderer2, ComponentFactoryResolver, NavigationService, ChangeDetectorRef])
|
|
74
74
|
], TemplateComponent);
|
|
75
75
|
export { TemplateComponent };
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TemplateComponent, decorators: [{
|
|
77
77
|
type: Component,
|
|
78
78
|
args: [{
|
|
79
79
|
selector: "hci-template",
|
|
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
90
90
|
type: ViewChild,
|
|
91
91
|
args: ["viewContainer", { read: ViewContainerRef, static: false }]
|
|
92
92
|
}] } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF2aWdhdGlvbi9zcmMvY29tcG9uZW50cy90ZW1wbGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFDMUYsV0FBVyxFQUFRLFNBQVMsRUFBRSxnQkFBZ0IsRUFDL0MsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRWxGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQUVqRTs7Ozs7Ozs7O0dBU0c7QUFTSSxJQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFrQixTQUFRLFlBQVk7SUFTakQsWUFBWSxVQUFzQixFQUFFLFFBQW1CLEVBQUUsUUFBa0MsRUFBRSxpQkFBb0MsRUFBRSxpQkFBb0M7UUFDckssS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFNO1FBQ2QsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQU07UUFDakIsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU87U0FDUjtRQUVELElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7U0FDakM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUU7WUFDeEIsK0NBQStDO1lBQy9DLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3hHO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFMUIsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2pDLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksU0FBUyxFQUFFLEVBQUU7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDOUQ7WUFDRCxLQUFLLElBQUksTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsSUFBSTtvQkFDRixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7b0JBQ2pCLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ3ZGLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUNyQztnQkFBQyxPQUFPLENBQUMsRUFBRSxHQUFFO2FBQ2Y7U0FDRjtJQUNILENBQUM7K0dBbERVLGlCQUFpQjttR0FBakIsaUJBQWlCLGlOQU9RLGdCQUFnQixvREFaMUM7OztHQUdUOztBQUVVLGlCQUFpQjtJQVI3QixhQUFhLENBQUMsbUJBQW1CLENBQUM7cUNBaUJULFVBQVUsRUFBWSxTQUFTLEVBQVksd0JBQXdCLEVBQXFCLGlCQUFpQixFQUFxQixpQkFBaUI7R0FUNUosaUJBQWlCLENBbUQ3QjtTQW5EWSxpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFQN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFOzs7R0FHVDtpQkFDRjtnT0FHVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBSXlFLGFBQWE7c0JBQTNGLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbGVtZW50UmVmLCBJbnB1dCwgaXNEZXZNb2RlLCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZSwgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZiwgVHlwZSwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7Q29tcG9uZW50SW5qZWN0b3IsIENvbXBvbmVudFR5cGV9IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS91dGlsc1wiO1xyXG5cclxuaW1wb3J0IHtOYXZDb21wb25lbnR9IGZyb20gXCIuL25hdi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtOYXZpZ2F0aW9uU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIDxwPlxyXG4gKiAgIFRoaXMgY29tcG9uZW50IG1heSB0YWtlIGEgdGVtcGxhdGUgZGVmaW5lZCBpbiB0aGUgcGFyZW50IGFuZCBkaXNwbGF5IGl0LiAgQW55IGluZm9ybWF0aW9uIGl0IHdpc2hlcyB0byB1c2UgbXVzdCBiZVxyXG4gKiAgIHBhc3NlZCB3aXRoIHRoZSBjb25maWcuXHJcbiAqIDwvcD5cclxuICogPHA+XHJcbiAqICAgIFNlZSBkZW1vL3NyYy9hcHAvdGVtcGxhdGUvdGVtcGxhdGUuY29tcG9uZW50LnRzIGZvciBhbiBpbXBsZW1lbnRhdGlvbiBleGFtcGxlLlxyXG4gKiA8L3A+XHJcbiAqXHJcbiAqL1xyXG5AQ29tcG9uZW50VHlwZShcIlRlbXBsYXRlQ29tcG9uZW50XCIpXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImhjaS10ZW1wbGF0ZVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImNvbmZpZ1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAjdmlld0NvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNvbXBvbmVudCBleHRlbmRzIE5hdkNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIGNvbXBvbmVudFR5cGU6IFR5cGU8YW55PiB8IHN0cmluZztcclxuXHJcbiAgY29tcG9uZW50OiBhbnk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJ2aWV3Q29udGFpbmVyXCIsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiBmYWxzZSB9KSBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIG5hdmlnYXRpb25TZXJ2aWNlOiBOYXZpZ2F0aW9uU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCByZW5kZXJlciwgcmVzb2x2ZXIsIG5hdmlnYXRpb25TZXJ2aWNlLCBjaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBzZXRDb25maWcoY29uZmlnKSB7XHJcbiAgICBzdXBlci5zZXRDb25maWcoY29uZmlnKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNvbmZpZyhjb25maWcpIHtcclxuICAgIGlmICghY29uZmlnKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLnRlbXBsYXRlKSB7XHJcbiAgICAgIHRoaXMudGVtcGxhdGUgPSBjb25maWcudGVtcGxhdGU7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnLmNvbXBvbmVudFR5cGUpIHtcclxuICAgICAgLy8gT25seSBhbGxvdyBjb21wb25lbnQgaWYgdGhlcmUgaXMgbm8gdGVtcGxhdGVcclxuICAgICAgdGhpcy5jb21wb25lbnRUeXBlID0gY29uZmlnLmNvbXBvbmVudFR5cGU7XHJcbiAgICAgIHRoaXMuY29tcG9uZW50ID0gQ29tcG9uZW50SW5qZWN0b3IuZ2V0Q29tcG9uZW50KHRoaXMucmVzb2x2ZXIsIHRoaXMudmlld0NvbnRhaW5lciwgdGhpcy5jb21wb25lbnRUeXBlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldENvbXBvbmVudENvbmZpZygpO1xyXG5cclxuICAgIHN1cGVyLnVwZGF0ZUNvbmZpZyhjb25maWcpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29tcG9uZW50Q29uZmlnKCkge1xyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50ICYmIHRoaXMuY29uZmlnKSB7XHJcbiAgICAgIGxldCBjZmdLZXlzID0gT2JqZWN0LmtleXModGhpcy5jb25maWcpO1xyXG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiY29tcG9uZW50Q29uZmlnOiBcIiArIEpTT04uc3RyaW5naWZ5KGNmZ0tleXMpKTtcclxuICAgICAgfVxyXG4gICAgICBmb3IgKGxldCBjZmdLZXkgb2YgY2ZnS2V5cykge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBsZXQgY2hhbmdlcyA9IHt9O1xyXG4gICAgICAgICAgY2hhbmdlc1tjZmdLZXldID0gbmV3IFNpbXBsZUNoYW5nZSh0aGlzLmNvbXBvbmVudFtjZmdLZXldLCB0aGlzLmNvbmZpZ1tjZmdLZXldLCBmYWxzZSk7XHJcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudC5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7fVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -42,13 +42,13 @@ let UlNavComponent = class UlNavComponent extends NavComponent {
|
|
|
42
42
|
this.ulClass = config.ulClass;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
UlNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UlNavComponent, selector: "hci-ul", inputs: { ulClass: "ulClass" }, viewQueries: [{ propertyName: "containerRefSetter", first: true, predicate: ["containerRef"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UlNavComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ComponentFactoryResolver }, { token: i1.NavigationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UlNavComponent, selector: "hci-ul", inputs: { ulClass: "ulClass" }, viewQueries: [{ propertyName: "containerRefSetter", first: true, predicate: ["containerRef"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
48
47
|
<ul [id]="id + '-ul'" class="hci-ul {{ulClass}}">
|
|
49
48
|
<ng-container #containerRef></ng-container>
|
|
50
49
|
</ul>
|
|
51
|
-
`, isInline: true, styles: [".hci-dic-ul-class{color:#fff;background-color:var(--greywarm-meddark)}\n"] });
|
|
50
|
+
`, isInline: true, styles: [".hci-dic-ul-class{color:#fff;background-color:var(--greywarm-meddark)}\n"] }); }
|
|
51
|
+
};
|
|
52
52
|
UlNavComponent = __decorate([
|
|
53
53
|
ComponentType("UlNavComponent"),
|
|
54
54
|
__metadata("design:paramtypes", [ElementRef,
|
|
@@ -58,7 +58,7 @@ UlNavComponent = __decorate([
|
|
|
58
58
|
ChangeDetectorRef])
|
|
59
59
|
], UlNavComponent);
|
|
60
60
|
export { UlNavComponent };
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UlNavComponent, decorators: [{
|
|
62
62
|
type: Component,
|
|
63
63
|
args: [{ selector: "hci-ul", template: `
|
|
64
64
|
<ul [id]="id + '-ul'" class="hci-ul {{ulClass}}">
|
|
@@ -74,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
74
74
|
static: true
|
|
75
75
|
}]
|
|
76
76
|
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWwtbmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25hdmlnYXRpb24vc3JjL2NvbXBvbmVudHMvdWwtbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQy9GLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUUvRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7OztBQXNCMUQsSUFBTSxjQUFjLEdBQXBCLE1BQU0sY0FBZSxTQUFRLFlBQVk7SUFROUMsWUFDRSxVQUFzQixFQUN0QixRQUFtQixFQUNuQixRQUFrQyxFQUNsQyxpQkFBb0MsRUFDcEMsaUJBQW9DO1FBRXBDLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBYnJFLFlBQU8sR0FBVyxlQUFlLENBQUM7UUFJbkMsY0FBUyxHQUFtQixFQUFFLENBQUM7SUFVdkMsQ0FBQztJQUVELElBR08sa0JBQWtCLENBQUMsWUFBOEI7UUFDdEQsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsU0FBa0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBTTtRQUNkLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFNO1FBQ2pCLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0IsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztTQUMvQjtJQUNILENBQUM7K0dBaERVLGNBQWM7bUdBQWQsY0FBYyw2S0FtQmpCLGdCQUFnQixrRUFsQ3BCOzs7O09BSUM7O0FBV00sY0FBYztJQXBCMUIsYUFBYSxDQUFDLGdCQUFnQixDQUFDO3FDQTZCaEIsVUFBVTtRQUNaLFNBQVM7UUFDVCx3QkFBd0I7UUFDZixpQkFBaUI7UUFDakIsaUJBQWlCO0dBYjNCLGNBQWMsQ0FpRDFCO1NBakRZLGNBQWM7NEZBQWQsY0FBYztrQkFuQjFCLFNBQVM7K0JBRUksUUFBUSxZQUVoQjs7OztPQUlDO2dPQWFJLE9BQU87c0JBQWYsS0FBSztnQkFtQkMsa0JBQWtCO3NCQUh4QixTQUFTO3VCQUFDLGNBQWMsRUFBRTt3QkFDekIsSUFBSSxFQUFFLGdCQUFnQjt3QkFDdEIsTUFBTSxFQUFFLElBQUk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbGVtZW50UmVmLCBJbnB1dCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tIFwiQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvdXRpbHNcIjtcclxuXHJcbmltcG9ydCB7TmF2Q29tcG9uZW50fSBmcm9tIFwiLi9uYXYuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TmF2aWdhdGlvblNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnRUeXBlKFwiVWxOYXZDb21wb25lbnRcIilcclxuQENvbXBvbmVudChcclxuICB7XHJcbiAgICBzZWxlY3RvcjogXCJoY2ktdWxcIixcclxuICAgIHRlbXBsYXRlOlxyXG4gICAgICBgXHJcbiAgICAgICAgPHVsIFtpZF09XCJpZCArICctdWwnXCIgY2xhc3M9XCJoY2ktdWwge3t1bENsYXNzfX1cIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgI2NvbnRhaW5lclJlZj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3VsPlxyXG4gICAgICBgLFxyXG4gICAgc3R5bGVzOiBbXHJcbiAgICAgIGBcclxuICAgICAgICAuaGNpLWRpYy11bC1jbGFzcyB7XHJcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5d2FybS1tZWRkYXJrKTtcclxuICAgICAgICB9XHJcbiAgICAgIGBcclxuICAgIF1cclxuICB9XHJcbilcclxuZXhwb3J0IGNsYXNzIFVsTmF2Q29tcG9uZW50IGV4dGVuZHMgTmF2Q29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgdWxDbGFzczogc3RyaW5nID0gXCJuYXYtY29udGFpbmVyXCI7XHJcblxyXG4gIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgcHJpdmF0ZSBjb250YWluZXI6IE5hdkNvbXBvbmVudFtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCByZW5kZXJlciwgcmVzb2x2ZXIsIG5hdmlnYXRpb25TZXJ2aWNlLCBjaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKFwiY29udGFpbmVyUmVmXCIsIHtcclxuICAgIHJlYWQ6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBzdGF0aWM6IHRydWVcclxuICB9KSBzZXQgY29udGFpbmVyUmVmU2V0dGVyKGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gICAgdGhpcy5jb250YWluZXJSZWYgPSBjb250YWluZXJSZWY7XHJcbiAgICB0aGlzLmNoZWNrSW5pdGlhbGl6ZWQoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrSW5pdGlhbGl6ZWQoKSB7XHJcbiAgICBpZiAodGhpcy5hZnRlclZpZXdJbml0ICYmIHRoaXMuY29udGFpbmVyUmVmKSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUNvbmZpZyh0aGlzLmNvbmZpZyk7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGFpbmVyKGNvbnRhaW5lcj86IHN0cmluZyk6IFZpZXdDb250YWluZXJSZWYge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyUmVmO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29uZmlnKGNvbmZpZyk6IHZvaWQge1xyXG4gICAgc3VwZXIuc2V0Q29uZmlnKGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDb25maWcoY29uZmlnKTogdm9pZCB7XHJcbiAgICBzdXBlci51cGRhdGVDb25maWcoY29uZmlnKTtcclxuXHJcbiAgICBpZiAoY29uZmlnLnVsQ2xhc3MpIHtcclxuICAgICAgdGhpcy51bENsYXNzID0gY29uZmlnLnVsQ2xhc3M7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|