@skyux/tabs 6.16.0 → 7.0.0-alpha.0

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.
Files changed (48) hide show
  1. package/documentation.json +1025 -471
  2. package/esm2020/lib/modules/sectioned-form/sectioned-form-section.component.mjs +5 -5
  3. package/esm2020/lib/modules/sectioned-form/sectioned-form.component.mjs +4 -4
  4. package/esm2020/lib/modules/sectioned-form/sectioned-form.module.mjs +8 -10
  5. package/esm2020/lib/modules/sectioned-form/sectioned-form.service.mjs +3 -3
  6. package/esm2020/lib/modules/shared/sky-tabs-resources.module.mjs +6 -5
  7. package/esm2020/lib/modules/tabs/tab-button.component.mjs +5 -5
  8. package/esm2020/lib/modules/tabs/tab.component.mjs +3 -3
  9. package/esm2020/lib/modules/tabs/tabs.module.mjs +11 -13
  10. package/esm2020/lib/modules/tabs/tabset-adapter.service.mjs +3 -3
  11. package/esm2020/lib/modules/tabs/tabset-nav-button-type.mjs +2 -0
  12. package/esm2020/lib/modules/tabs/tabset-nav-button.component.mjs +132 -89
  13. package/esm2020/lib/modules/tabs/tabset-permalink.service.mjs +3 -3
  14. package/esm2020/lib/modules/tabs/tabset.component.mjs +20 -10
  15. package/esm2020/lib/modules/tabs/tabset.service.mjs +3 -3
  16. package/esm2020/lib/modules/vertical-tabset/vertical-tab-media-query.service.mjs +3 -3
  17. package/esm2020/lib/modules/vertical-tabset/vertical-tab.component.mjs +6 -6
  18. package/esm2020/lib/modules/vertical-tabset/vertical-tabset-adapter.service.mjs +3 -3
  19. package/esm2020/lib/modules/vertical-tabset/vertical-tabset-group.component.mjs +7 -7
  20. package/esm2020/lib/modules/vertical-tabset/vertical-tabset.component.mjs +7 -7
  21. package/esm2020/lib/modules/vertical-tabset/vertical-tabset.module.mjs +11 -13
  22. package/esm2020/lib/modules/vertical-tabset/vertical-tabset.service.mjs +3 -3
  23. package/esm2020/testing/tabs/tab-fixture-tab.mjs +1 -1
  24. package/esm2020/testing/tabs/tabset-fixture.mjs +2 -1
  25. package/fesm2015/skyux-tabs-testing.mjs +1 -0
  26. package/fesm2015/skyux-tabs-testing.mjs.map +1 -1
  27. package/fesm2015/skyux-tabs.mjs +221 -173
  28. package/fesm2015/skyux-tabs.mjs.map +1 -1
  29. package/fesm2020/skyux-tabs-testing.mjs +1 -0
  30. package/fesm2020/skyux-tabs-testing.mjs.map +1 -1
  31. package/fesm2020/skyux-tabs.mjs +219 -173
  32. package/fesm2020/skyux-tabs.mjs.map +1 -1
  33. package/lib/modules/sectioned-form/sectioned-form-section.component.d.ts +1 -1
  34. package/lib/modules/sectioned-form/sectioned-form.component.d.ts +1 -1
  35. package/lib/modules/tabs/tab-button.component.d.ts +1 -1
  36. package/lib/modules/tabs/tab.component.d.ts +1 -1
  37. package/lib/modules/tabs/tabset-nav-button-type.d.ts +4 -0
  38. package/lib/modules/tabs/tabset-nav-button.component.d.ts +34 -21
  39. package/lib/modules/tabs/tabset.component.d.ts +4 -1
  40. package/lib/modules/vertical-tabset/vertical-tab.component.d.ts +1 -1
  41. package/lib/modules/vertical-tabset/vertical-tabset-group.component.d.ts +1 -1
  42. package/lib/modules/vertical-tabset/vertical-tabset.component.d.ts +1 -1
  43. package/package.json +17 -17
  44. package/testing/{skyux-tabs-testing.d.ts → index.d.ts} +0 -0
  45. package/testing/tabs/tab-fixture-tab.d.ts +1 -0
  46. package/testing/tabs/tabset-fixture.d.ts +1 -0
  47. package/skyux-tabs.d.ts +0 -5
  48. package/testing/package.json +0 -10
@@ -1,3 +1,5 @@
1
+ var _SkyTabsetComponent__hasFinishButton;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Input, Output, QueryList, ViewEncapsulation, } from '@angular/core';
2
4
  import { Subject, combineLatest, race } from 'rxjs';
3
5
  import { distinctUntilChanged, takeUntil } from 'rxjs/operators';
@@ -9,11 +11,11 @@ import * as i0 from "@angular/core";
9
11
  import * as i1 from "./tabset-adapter.service";
10
12
  import * as i2 from "./tabset-permalink.service";
11
13
  import * as i3 from "./tabset.service";
12
- import * as i4 from "@skyux/popovers";
13
- import * as i5 from "@skyux/indicators";
14
- import * as i6 from "./tab-button.component";
15
- import * as i7 from "@angular/common";
16
- import * as i8 from "@skyux/theme";
14
+ import * as i4 from "@angular/common";
15
+ import * as i5 from "@skyux/popovers";
16
+ import * as i6 from "@skyux/indicators";
17
+ import * as i7 from "@skyux/theme";
18
+ import * as i8 from "./tab-button.component";
17
19
  import * as i9 from "@skyux/i18n";
18
20
  export class SkyTabsetComponent {
19
21
  constructor(changeDetector, elementRef, adapterService, permalinkService, tabsetService) {
@@ -46,6 +48,7 @@ export class SkyTabsetComponent {
46
48
  this.tabButtons = [];
47
49
  this.ngUnsubscribe = new Subject();
48
50
  this.tabComponentsStateChangeUnsubscribe = new Subject();
51
+ _SkyTabsetComponent__hasFinishButton.set(this, false);
49
52
  }
50
53
  /**
51
54
  * Activates a tab by its `tabIndex` property.
@@ -112,6 +115,12 @@ export class SkyTabsetComponent {
112
115
  get tabDisplayMode() {
113
116
  return this._tabDisplayMode || 'tabs';
114
117
  }
118
+ get hasFinishButton() {
119
+ return __classPrivateFieldGet(this, _SkyTabsetComponent__hasFinishButton, "f");
120
+ }
121
+ set hasFinishButton(value) {
122
+ __classPrivateFieldSet(this, _SkyTabsetComponent__hasFinishButton, value, "f");
123
+ }
115
124
  ngAfterViewInit() {
116
125
  this.initTabComponents();
117
126
  this.listenTabComponentsStructuralChange();
@@ -353,13 +362,14 @@ export class SkyTabsetComponent {
353
362
  }
354
363
  }
355
364
  }
356
- SkyTabsetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.SkyTabsetAdapterService }, { token: i2.SkyTabsetPermalinkService }, { token: i3.SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component });
357
- SkyTabsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyTabsetComponent, selector: "sky-tabset", inputs: { active: "active", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", permalinkId: "permalinkId", tabStyle: "tabStyle" }, outputs: { activeChange: "activeChange", newTab: "newTab", openTab: "openTab", tabIndexesChange: "tabIndexesChange" }, providers: [
365
+ _SkyTabsetComponent__hasFinishButton = new WeakMap();
366
+ SkyTabsetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.SkyTabsetAdapterService }, { token: i2.SkyTabsetPermalinkService }, { token: i3.SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component });
367
+ SkyTabsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabsetComponent, selector: "sky-tabset", inputs: { active: "active", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", permalinkId: "permalinkId", tabStyle: "tabStyle" }, outputs: { activeChange: "activeChange", newTab: "newTab", openTab: "openTab", tabIndexesChange: "tabIndexesChange" }, providers: [
358
368
  SkyTabsetAdapterService,
359
369
  SkyTabsetPermalinkService,
360
370
  SkyTabsetService,
361
- ], queries: [{ propertyName: "tabs", predicate: SkyTabComponent }], ngImport: i0, template: "<div\n class=\"sky-tabset\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngClass]=\"\n 'sky-tabset-mode-' + tabDisplayMode + ' sky-tabset-style-' + tabStyle\n \"\n (window:resize)=\"onWindowResize()\"\n>\n <span class=\"sky-tabset-dropdown\">\n <sky-dropdown *ngIf=\"tabDisplayMode === 'dropdown'\" buttonType=\"tab\">\n <sky-dropdown-button>\n {{ dropdownTriggerButtonText }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item\n *ngFor=\"let tabButton of tabButtons\"\n class=\"sky-tab-dropdown-menu-item\"\n >\n <div\n class=\"sky-tab-dropdown-item\"\n [ngClass]=\"{\n 'sky-tab-dropdown-item-selected': tabButton.active\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </span>\n <span class=\"sky-tabset-tabs\">\n <ng-container *ngFor=\"let tabButton of tabButtons\">\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </ng-container>\n </span>\n <span class=\"sky-tabset-btns\">\n <button\n *ngIf=\"newTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-new sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_add' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onNewTabClick()\"\n >\n <sky-icon icon=\"plus-circle\" size=\"lg\"> </sky-icon>\n </button>\n <button\n *ngIf=\"openTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-open sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_open' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onOpenTabClick()\"\n >\n <sky-icon icon=\"folder-open-o\" size=\"lg\"> </sky-icon>\n </button>\n </span>\n</div>\n<ng-content></ng-content>\n\n<ng-template let-tabButton #tabButtonTemplate>\n <sky-tab-button\n [active]=\"tabButton.active\"\n [ariaControls]=\"tabButton.ariaControls\"\n [buttonHref]=\"tabButton.buttonHref\"\n [buttonId]=\"tabButton.buttonId\"\n [buttonText]=\"tabButton.buttonText\"\n [buttonTextCount]=\"tabButton.buttonTextCount\"\n [closeable]=\"tabButton.closeable\"\n [disabled]=\"tabButton.disabled\"\n [tabStyle]=\"tabStyle\"\n (buttonClick)=\"onTabButtonClick(tabButton)\"\n (closeClick)=\"onTabCloseClick(tabButton)\"\n ></sky-tab-button>\n</ng-template>\n", styles: [".sky-tabset{align-items:center;border-bottom:2px solid #0974a1;display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0 0 0 15px;white-space:nowrap}.sky-tabset.sky-tabset-style-wizard{border-bottom:none;margin-bottom:10px;padding-left:0}.sky-tabset-btns{order:1;padding-left:10px}.sky-tabset-dropdown{order:0;max-width:100%}.sky-tabset-mode-dropdown{line-height:0}.sky-tabset-mode-dropdown .sky-tabset-tabs{visibility:hidden;order:2}.sky-tab-dropdown-menu-item sky-tab-button{display:flex;min-width:300px}.sky-tab-dropdown-menu-item .sky-dropdown-item{margin:0}.sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{width:100%;margin-right:0}.sky-tab-dropdown-menu-item .sky-btn-tab{margin:0;border-radius:0;width:100%;display:flex}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-tab-heading{flex:1 1 auto}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-btn-tab-close{flex:0 1 auto}.sky-tabset-tabs{order:0;white-space:nowrap}.sky-tabset-btn-new,.sky-tabset-btn-open{color:#0974a1}.sky-theme-modern .sky-modal-content .sky-tabset{margin:-10px -30px 30px;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-tabset{border-bottom:1px solid #d2d2d2;overflow:visible}.sky-theme-modern .sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{margin-right:0}\n"], components: [{ type: i4.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "dismissOnBlur", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { type: i4.λ2, selector: "sky-dropdown-button" }, { type: i4.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { type: i4.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }, { type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { type: i6.SkyTabButtonComponent, selector: "sky-tab-button", inputs: ["active", "ariaControls", "buttonHref", "buttonId", "buttonText", "buttonTextCount", "closeable", "disabled", "tabStyle"], outputs: ["buttonClick", "closeClick"] }], directives: [{ type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i8.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }], pipes: { "skyLibResources": i9.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
362
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetComponent, decorators: [{
371
+ ], queries: [{ propertyName: "tabs", predicate: SkyTabComponent }], ngImport: i0, template: "<div\n class=\"sky-tabset\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngClass]=\"\n 'sky-tabset-mode-' + tabDisplayMode + ' sky-tabset-style-' + tabStyle\n \"\n (window:resize)=\"onWindowResize()\"\n>\n <span class=\"sky-tabset-dropdown\">\n <sky-dropdown *ngIf=\"tabDisplayMode === 'dropdown'\" buttonType=\"tab\">\n <sky-dropdown-button>\n {{ dropdownTriggerButtonText }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item\n *ngFor=\"let tabButton of tabButtons\"\n class=\"sky-tab-dropdown-menu-item\"\n >\n <div\n class=\"sky-tab-dropdown-item\"\n [ngClass]=\"{\n 'sky-tab-dropdown-item-selected': tabButton.active\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </span>\n <span class=\"sky-tabset-tabs\">\n <ng-container *ngFor=\"let tabButton of tabButtons\">\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </ng-container>\n </span>\n <span class=\"sky-tabset-btns\">\n <button\n *ngIf=\"newTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-new sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_add' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onNewTabClick()\"\n >\n <sky-icon icon=\"plus-circle\" size=\"lg\"> </sky-icon>\n </button>\n <button\n *ngIf=\"openTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-open sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_open' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onOpenTabClick()\"\n >\n <sky-icon icon=\"folder-open-o\" size=\"lg\"> </sky-icon>\n </button>\n </span>\n</div>\n<ng-content></ng-content>\n\n<ng-template let-tabButton #tabButtonTemplate>\n <sky-tab-button\n [active]=\"tabButton.active\"\n [ariaControls]=\"tabButton.ariaControls\"\n [buttonHref]=\"tabButton.buttonHref\"\n [buttonId]=\"tabButton.buttonId\"\n [buttonText]=\"tabButton.buttonText\"\n [buttonTextCount]=\"tabButton.buttonTextCount\"\n [closeable]=\"tabButton.closeable\"\n [disabled]=\"tabButton.disabled\"\n [tabStyle]=\"tabStyle\"\n (buttonClick)=\"onTabButtonClick(tabButton)\"\n (closeClick)=\"onTabCloseClick(tabButton)\"\n ></sky-tab-button>\n</ng-template>\n", styles: [".sky-tabset{align-items:center;border-bottom:2px solid #0974a1;display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0 0 0 15px;white-space:nowrap}.sky-tabset.sky-tabset-style-wizard{border-bottom:none;margin-bottom:10px;padding-left:0}.sky-tabset-btns{order:1;padding-left:10px}.sky-tabset-dropdown{order:0;max-width:100%}.sky-tabset-mode-dropdown{line-height:0}.sky-tabset-mode-dropdown .sky-tabset-tabs{visibility:hidden;order:2}.sky-tab-dropdown-menu-item sky-tab-button{display:flex;min-width:300px}.sky-tab-dropdown-menu-item .sky-dropdown-item{margin:0}.sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{width:100%;margin-right:0}.sky-tab-dropdown-menu-item .sky-btn-tab{margin:0;border-radius:0;width:100%;display:flex}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-tab-heading{flex:1 1 auto}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-btn-tab-close{flex:0 1 auto}.sky-tabset-tabs{order:0;white-space:nowrap}.sky-tabset-btn-new,.sky-tabset-btn-open{color:#0974a1}.sky-theme-modern .sky-modal-content .sky-tabset{margin:-10px -30px 30px;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-tabset{border-bottom:1px solid #d2d2d2;overflow:visible}.sky-theme-modern .sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{margin-right:0}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.λ2, selector: "sky-dropdown-button" }, { kind: "component", type: i5.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "dismissOnBlur", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { kind: "component", type: i5.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }, { kind: "component", type: i5.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { kind: "component", type: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i7.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "component", type: i8.SkyTabButtonComponent, selector: "sky-tab-button", inputs: ["active", "ariaControls", "buttonHref", "buttonId", "buttonText", "buttonTextCount", "closeable", "disabled", "tabStyle"], outputs: ["buttonClick", "closeClick"] }, { kind: "pipe", type: i9.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
372
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetComponent, decorators: [{
363
373
  type: Component,
364
374
  args: [{ selector: 'sky-tabset', providers: [
365
375
  SkyTabsetAdapterService,
@@ -388,4 +398,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
388
398
  type: ContentChildren,
389
399
  args: [SkyTabComponent]
390
400
  }] } });
391
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy90YWJzL3RhYnNldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdGFicy90YWJzZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUd2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7Ozs7QUE2QnBELE1BQU0sT0FBTyxrQkFBa0I7SUF1SjdCLFlBQ1UsY0FBaUMsRUFDakMsVUFBc0IsRUFDdEIsY0FBdUMsRUFDdkMsZ0JBQTJDLEVBQzNDLGFBQStCO1FBSi9CLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG1CQUFjLEdBQWQsY0FBYyxDQUF5QjtRQUN2QyxxQkFBZ0Is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O1lBQzNDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUM7WUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDOzsrR0FuZFUsa0JBQWtCO21HQUFsQixrQkFBa0Isc1NBUmxCO1FBQ1QsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QixnQkFBZ0I7S0FDakIsK0NBa0lnQixlQUFlLDZCQ3BMbEMsbzhGQStGQTsyRkR6Q2Esa0JBQWtCO2tCQVo5QixTQUFTOytCQUNFLFlBQVksYUFHWDt3QkFDVCx1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsZ0JBQWdCO3FCQUNqQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4T0FPMUIsTUFBTTtzQkFEaEIsS0FBSztnQkF1Q0MsU0FBUztzQkFEZixLQUFLO2dCQVVDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBV0ssV0FBVztzQkFEckIsS0FBSztnQkFtQkssUUFBUTtzQkFEbEIsS0FBSztnQkFhQyxZQUFZO3NCQURsQixNQUFNO2dCQVNBLE1BQU07c0JBRFosTUFBTTtnQkFTQSxPQUFPO3NCQURiLE1BQU07Z0JBUUEsZ0JBQWdCO3NCQUR0QixNQUFNO2dCQWFBLElBQUk7c0JBRFYsZUFBZTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCByYWNlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lUYWJJbmRleCB9IGZyb20gJy4vdGFiLWluZGV4JztcbmltcG9ydCB7IFNreVRhYkNvbXBvbmVudCB9IGZyb20gJy4vdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUYWJzZXRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vdGFic2V0LWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lUYWJzZXRCdXR0b25zRGlzcGxheU1vZGUgfSBmcm9tICcuL3RhYnNldC1idXR0b25zLWRpc3BsYXktbW9kZSc7XG5pbXBvcnQgeyBTa3lUYWJzZXRQZXJtYWxpbmtTZXJ2aWNlIH0gZnJvbSAnLi90YWJzZXQtcGVybWFsaW5rLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5VGFic2V0U3R5bGUgfSBmcm9tICcuL3RhYnNldC1zdHlsZSc7XG5pbXBvcnQgeyBTa3lUYWJzZXRUYWJJbmRleGVzQ2hhbmdlIH0gZnJvbSAnLi90YWJzZXQtdGFiLWluZGV4ZXMtY2hhbmdlJztcbmltcG9ydCB7IFNreVRhYnNldFNlcnZpY2UgfSBmcm9tICcuL3RhYnNldC5zZXJ2aWNlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuaW50ZXJmYWNlIFRhYkJ1dHRvblZpZXdNb2RlbCB7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgYXJpYUNvbnRyb2xzOiBzdHJpbmc7XG4gIGJ1dHRvbkhyZWY6IHN0cmluZztcbiAgYnV0dG9uSWQ6IHN0cmluZztcbiAgYnV0dG9uVGV4dDogc3RyaW5nO1xuICBidXR0b25UZXh0Q291bnQ6IHN0cmluZztcbiAgY2xvc2VhYmxlOiBib29sZWFuO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgdGFiSW5kZXg6IFNreVRhYkluZGV4O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGFic2V0JyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFic2V0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJzZXQuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lUYWJzZXRBZGFwdGVyU2VydmljZSxcbiAgICBTa3lUYWJzZXRQZXJtYWxpbmtTZXJ2aWNlLFxuICAgIFNreVRhYnNldFNlcnZpY2UsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUYWJzZXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQWN0aXZhdGVzIGEgdGFiIGJ5IGl0cyBgdGFiSW5kZXhgIHByb3BlcnR5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhY3RpdmUodmFsdWU6IFNreVRhYkluZGV4KSB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdGhpcy50YWJzZXRTZXJ2aWNlLnRhYkluZGV4ZXNFcXVhbCh2YWx1ZSwgdGhpcy5fYWN0aXZlKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2FjdGl2ZSA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMudGFicykge1xuICAgICAgdGhpcy50YWJzZXRTZXJ2aWNlLnNldEFjdGl2ZVRhYkluZGV4KHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gT24gaW5pdCwgd2FpdCBmb3IgY2hpbGRyZW4gdGFicyB0byByZW5kZXIgYmVmb3JlIGJyb2FkY2FzdGluZyB0aGUgYWN0aXZlIHRhYiBpbmRleC5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy50YWJzZXRTZXJ2aWNlLmlzVmFsaWRUYWJJbmRleCh2YWx1ZSkpIHtcbiAgICAgICAgICAvLyBPbiBpbml0LCB5aWVsZCB0byB0aGUgcGVybWFsaW5rIElELCBpZiBpdCBleGlzdHMuXG4gICAgICAgICAgaWYgKHRoaXMuZ2V0QWN0aXZlVGFiSW5kZXhCeVBlcm1hbGlua0lkKCkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy50YWJzZXRTZXJ2aWNlLnNldEFjdGl2ZVRhYkluZGV4KHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQWN0aXZhdGUgdGhlIGZpcnN0IHRhYiBpZiB0aGUgbmV3IHRhYiBpbmRleCBpcyBpbnZhbGlkLlxuICAgICAgICAgIHRoaXMuX2FjdGl2ZSA9IHRoaXMudGFic2V0U2VydmljZS5hY3RpdmF0ZUZpcnN0VGFiKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlKCk6IFNreVRhYkluZGV4IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBBUklBIGxhYmVsIGZvciB0aGUgdGFic2V0LiBUaGlzIHNldHMgdGhlIHRhYnNldCdzIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGVcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogSWYgdGhlIHRhYnNldCBpbmNsdWRlcyBhIHZpc2libGUgbGFiZWwsIHVzZSBgYXJpYUxhYmVsbGVkQnlgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgSFRNTCBlbGVtZW50IElEICh3aXRob3V0IHRoZSBsZWFkaW5nIGAjYCkgb2YgdGhlIGVsZW1lbnQgdGhhdCBsYWJlbHNcbiAgICogdGhlIHRhYnNldC4gVGhpcyBzZXRzIHRoZSB0YWJzZXQncyBgYXJpYS1sYWJlbGxlZGJ5YCBhdHRyaWJ1dGVcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogSWYgdGhlIHRhYnNldCBkb2VzIG5vdCBpbmNsdWRlIGEgdmlzaWJsZSBsYWJlbCwgdXNlIGBhcmlhTGFiZWxgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXJpYUxhYmVsbGVkQnk6IHN0cmluZztcblxuICAvKipcbiAgICogRGlzdGluZ3Vpc2hlcyBhIHRhYnNldCdzIHVuaXF1ZSBzdGF0ZSBpbiB0aGUgVVJMIGJ5IGdlbmVyYXRpbmcgYSBxdWVyeSBwYXJhbWV0ZXJcbiAgICogdGhhdCBpcyB3cml0dGVuIGFzIGA/PHF1ZXJ5UGFyYW0+LWFjdGl2ZS10YWI9PHNhbml0aXplZC10YWItaGVhZGluZz5gLlxuICAgKiBUaGUgcXVlcnkgcGFyYW1ldGVyJ3MgdmFsdWUgaXMgcGFyc2VkIGF1dG9tYXRpY2FsbHkgZnJvbSB0aGUgc2VsZWN0ZWQgdGFiJ3MgaGVhZGluZyB0ZXh0LFxuICAgKiBidXQgeW91IGNhbiBzdXBwbHkgYSBjdXN0b20gcXVlcnkgcGFyYW1ldGVyIHZhbHVlIGZvciBlYWNoIHRhYiB3aXRoIGl0cyBgcGVybWFsaW5rVmFsdWVgLlxuICAgKiBUaGlzIGlucHV0IG9ubHkgYXBwbGllcyB3aGVuIGB0YWJTdHlsZWAgaXMgYFwidGFic1wiYFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwZXJtYWxpbmtJZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNhbml0aXplZCA9IHRoaXMucGVybWFsaW5rU2VydmljZS51cmxpZnkodmFsdWUpO1xuICAgIHRoaXMuX3Blcm1hbGlua0lkID0gYCR7c2FuaXRpemVkfS1hY3RpdmUtdGFiYDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGVybWFsaW5rSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGVybWFsaW5rSWQgfHwgJyc7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBiZWhhdmlvciBmb3IgYSBzZXJpZXMgb2YgdGFicy5cbiAgICogQGRlZmF1bHQgXCJ0YWJzXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGFiU3R5bGUodmFsdWU6IFNreVRhYnNldFN0eWxlKSB7XG4gICAgdGhpcy5fdGFiU3R5bGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGFiU3R5bGUoKTogU2t5VGFic2V0U3R5bGUge1xuICAgIHJldHVybiB0aGlzLl90YWJTdHlsZSB8fCAndGFicyc7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgYWN0aXZlIHRhYiBjaGFuZ2VzLiBUaGlzIGV2ZW50IGVtaXRzIHRoZSBpbmRleCBvZiB0aGUgYWN0aXZlIHRhYi5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYWN0aXZlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lUYWJJbmRleD4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBjbGljayB0aGUgYnV0dG9uIHRvIGFkZCBhIG5ldyB0YWIuXG4gICAqIFRoZSBuZXcgdGFiIGJ1dHRvbiBpcyBhZGRlZCB0byB0aGUgdGFiIGFyZWEgd2hlbiB5b3Ugc3BlY2lmeSBhIGxpc3RlbmVyIGZvciB0aGlzIGV2ZW50LlxuICAgKiBUaGlzIGV2ZW50IG9ubHkgYXBwbGllcyB3aGVuIGB0YWJTdHlsZWAgaXMgYFwidGFic1wiYC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbmV3VGFiID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIGNsaWNrIHRoZSBidXR0b24gdG8gb3BlbiBhIHRhYi5cbiAgICogVGhlIG9wZW4gdGFiIGJ1dHRvbiBpcyBhZGRlZCB0byB0aGUgdGFiIGFyZWEgd2hlbiB5b3Ugc3BlY2lmeSBhIGxpc3RlbmVyIGZvciB0aGlzIGV2ZW50LlxuICAgKiBUaGlzIGV2ZW50IG9ubHkgYXBwbGllcyB3aGVuIGB0YWJTdHlsZWAgaXMgYFwidGFic1wiYC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3BlblRhYiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiBhbnkgdGFiJ3MgYHRhYkluZGV4YCB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBUaGlzIGV2ZW50IG9ubHkgYXBwbGllcyB3aGVuIGB0YWJTdHlsZWAgaXMgYFwidGFic1wiYC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgdGFiSW5kZXhlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5VGFic2V0VGFiSW5kZXhlc0NoYW5nZT4oKTtcblxuICBwdWJsaWMgc2V0IHRhYkRpc3BsYXlNb2RlKHZhbHVlOiBTa3lUYWJzZXRCdXR0b25zRGlzcGxheU1vZGUpIHtcbiAgICB0aGlzLl90YWJEaXNwbGF5TW9kZSA9IHZhbHVlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRhYkRpc3BsYXlNb2RlKCk6IFNreVRhYnNldEJ1dHRvbnNEaXNwbGF5TW9kZSB7XG4gICAgcmV0dXJuIHRoaXMuX3RhYkRpc3BsYXlNb2RlIHx8ICd0YWJzJztcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5VGFiQ29tcG9uZW50KVxuICBwdWJsaWMgdGFiczogUXVlcnlMaXN0PFNreVRhYkNvbXBvbmVudD47XG5cbiAgcHVibGljIGRyb3Bkb3duVHJpZ2dlckJ1dHRvblRleHQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIGJ5IHRoZSBkZXByZWNhdGVkIHRhYnNldC1uYXYtYnV0dG9uIGNvbXBvbmVudC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgbGFzdEFjdGl2ZVRhYkluZGV4OiBTa3lUYWJJbmRleDtcblxuICBwdWJsaWMgdGFiQnV0dG9uczogVGFiQnV0dG9uVmlld01vZGVsW10gPSBbXTtcblxuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgdGFiQ29tcG9uZW50c1N0YXRlQ2hhbmdlVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgX2FjdGl2ZTogU2t5VGFiSW5kZXg7XG5cbiAgcHJpdmF0ZSBfcGVybWFsaW5rSWQ6IHN0cmluZztcblxuICBwcml2YXRlIF90YWJEaXNwbGF5TW9kZTogU2t5VGFic2V0QnV0dG9uc0Rpc3BsYXlNb2RlO1xuXG4gIHByaXZhdGUgX3RhYlN0eWxlOiBTa3lUYWJzZXRTdHlsZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBhZGFwdGVyU2VydmljZTogU2t5VGFic2V0QWRhcHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJtYWxpbmtTZXJ2aWNlOiBTa3lUYWJzZXRQZXJtYWxpbmtTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGFic2V0U2VydmljZTogU2t5VGFic2V0U2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRUYWJDb21wb25lbnRzKCk7XG4gICAgdGhpcy5saXN0ZW5UYWJDb21wb25lbnRzU3RydWN0dXJhbENoYW5nZSgpO1xuXG4gICAgY29uc3QgaW5pdGlhbFRhYkluZGV4ID0gdGhpcy5nZXRJbml0aWFsVGFiSW5kZXgoKTtcbiAgICB0aGlzLnRhYnNldFNlcnZpY2Uuc2V0QWN0aXZlVGFiSW5kZXgoaW5pdGlhbFRhYkluZGV4KTtcblxuICAgIHRoaXMubGlzdGVuVGFiQnV0dG9uc092ZXJmbG93Q2hhbmdlKCk7XG4gICAgdGhpcy5saXN0ZW5Mb2NhdGlvblBvcFN0YXRlQ2hhbmdlKCk7XG5cbiAgICAvLyBJZiB0aGUgY3VycmVudGx5IGFjdGl2ZSB0YWIgaXMgZ2V0dGluZyB1bnJlZ2lzdGVyZWQsIGFjdGl2YXRlIHRoZSBuZXh0IG9uZS5cbiAgICB0aGlzLnRhYnNldFNlcnZpY2UuYWN0aXZlVGFiVW5yZWdpc3RlcmVkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHRhYikgPT4ge1xuICAgICAgICAvLyBXYWl0IGZvciB0aGUgbmV3IHRhYnMgdG8gcmVuZGVyIGJlZm9yZSBhY3RpdmF0aW5nLlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnRhYnNldFNlcnZpY2UuYWN0aXZhdGVOZWFyZXN0VGFiKHRhYi5hcnJheUluZGV4KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIC8vIExldCB0aGUgdGFic2V0IHJlbmRlciB0aGUgaW5pdGlhbCBhY3RpdmUgaW5kZXggYmVmb3JlIGxpc3RlbmluZyBmb3IgY2hhbmdlcy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubGlzdGVuVGFiQ29tcG9uZW50c1N0YXRlQ2hhbmdlKCk7XG4gICAgICB0aGlzLmxpc3RlbkFjdGl2ZUluZGV4Q2hhbmdlKCk7XG4gICAgICB0aGlzLnBlcm1hbGlua1NlcnZpY2UuaW5pdCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy51bnN1YnNjcmliZVRhYkNvbXBvbmVudHNTdGF0ZUNoYW5nZSgpO1xuICAgIGlmICh0aGlzLnBlcm1hbGlua0lkKSB7XG4gICAgICB0aGlzLnBlcm1hbGlua1NlcnZpY2UuY2xlYXJQYXJhbSh0aGlzLnBlcm1hbGlua0lkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25XaW5kb3dSZXNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5hZGFwdGVyU2VydmljZS5kZXRlY3RPdmVyZmxvdygpO1xuICB9XG5cbiAgcHVibGljIG9uVGFiQ2xvc2VDbGljayh0YWJCdXR0b246IFRhYkJ1dHRvblZpZXdNb2RlbCk6IHZvaWQge1xuICAgIGNvbnN0IHRhYkNvbXBvbmVudCA9IHRoaXMudGFicy5maW5kKCh0YWIpID0+XG4gICAgICB0aGlzLnRhYnNldFNlcnZpY2UudGFiSW5kZXhlc0VxdWFsKHRhYi50YWJJbmRleCwgdGFiQnV0dG9uLnRhYkluZGV4KVxuICAgICk7XG5cbiAgICB0YWJDb21wb25lbnQuY2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG9uVGFiQnV0dG9uQ2xpY2sodGFiQnV0dG9uOiBUYWJCdXR0b25WaWV3TW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLnRhYnNldFNlcnZpY2Uuc2V0QWN0aXZlVGFiSW5kZXgodGFiQnV0dG9uLnRhYkluZGV4KTtcbiAgfVxuXG4gIHB1YmxpYyBvbk5ld1RhYkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMubmV3VGFiLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk9wZW5UYWJDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5UYWIuZW1pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGluaXRpYWwgYWN0aXZlIHRhYiBpbmRleCBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGNyaXRlcmlhLlxuICAgKiAxLiBEb2VzIHRoZSBVUkwgaW5jbHVkZSBhIHF1ZXJ5IHBhcmFtIHRoYXQgcmVmbGVjdHMgdGhpcyB0YWJzZXQncyBhY3RpdmUgdGFiP1xuICAgKiAyLiBEb2VzIG9uZSBvZiB0aGUgdGFiIGNvbXBvbmVudHMgaGF2ZSB0aGVpciBgYWN0aXZlYCBwcm9wZXJ0eSBzZXQgdG8gYHRydWVgP1xuICAgKiAzLiBJcyB0aGUgdGFic2V0IGNvbXBvbmVudCdzIGBhY3RpdmVgIHByb3BlcnR5IHNldCB0byBhIHNwZWNpZmljIHRhYiBpbmRleD9cbiAgICovXG4gIHByaXZhdGUgZ2V0SW5pdGlhbFRhYkluZGV4KCk6IFNreVRhYkluZGV4IHtcbiAgICBsZXQgYWN0aXZlSW5kZXg6IFNreVRhYkluZGV4ID0gdGhpcy5nZXRBY3RpdmVUYWJJbmRleEJ5UGVybWFsaW5rSWQoKTtcbiAgICBpZiAoYWN0aXZlSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgYWN0aXZlSW5kZXggPSB0aGlzLmdldEFjdGl2ZVRhYkNvbXBvbmVudCgpPy50YWJJbmRleDtcbiAgICAgIGlmIChhY3RpdmVJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGFjdGl2ZUluZGV4ID0gdGhpcy5hY3RpdmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGl2ZUluZGV4O1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5BY3RpdmVJbmRleENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYnNldFNlcnZpY2UuYWN0aXZlVGFiSW5kZXhcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoYWN0aXZlSW5kZXgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVUYWJzZXRDb21wb25lbnQoYWN0aXZlSW5kZXgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblRhYkNvbXBvbmVudHNTdHJ1Y3R1cmFsQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMudGFicy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlc2V0VGFiQ29tcG9uZW50cygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5UYWJDb21wb25lbnRzU3RhdGVDaGFuZ2UoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdCh0aGlzLnRhYnMubWFwKCh0YWIpID0+IHRhYi5hY3RpdmVDaGFuZ2UpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbChcbiAgICAgICAgICByYWNlKHRoaXMudGFiQ29tcG9uZW50c1N0YXRlQ2hhbmdlVW5zdWJzY3JpYmUsIHRoaXMubmdVbnN1YnNjcmliZSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIC8vIFdhaXQgZm9yIHRoZSB0YWIgY29tcG9uZW50cyB0byByZW5kZXIgY2hhbmdlcyBiZWZvcmUgZmluZGluZyB0aGUgYWN0aXZlIG9uZS5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdGFiSW5kZXggPSB0aGlzLmdldEFjdGl2ZVRhYkNvbXBvbmVudCgpPy50YWJJbmRleDtcbiAgICAgICAgICB0aGlzLnRhYnNldFNlcnZpY2Uuc2V0QWN0aXZlVGFiSW5kZXgodGFiSW5kZXgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgY29tYmluZUxhdGVzdCh0aGlzLnRhYnMubWFwKCh0YWIpID0+IHRhYi50YWJJbmRleENoYW5nZSkpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgIHJhY2UodGhpcy50YWJDb21wb25lbnRzU3RhdGVDaGFuZ2VVbnN1YnNjcmliZSwgdGhpcy5uZ1Vuc3Vic2NyaWJlKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gRG9uJ3QgZW1pdCB0aGUgZmlyc3QgY2hhbmdlLlxuICAgICAgICBpZiAodGhpcy5sYXN0QWN0aXZlVGFiSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIFdhaXQgZm9yIHRoZSB0YWIgY29tcG9uZW50cyB0byByZW5kZXIgY2hhbmdlcyBiZWZvcmUgdXBkYXRpbmcgdGhlIHZpZXcuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRhYnNldENvbXBvbmVudChcbiAgICAgICAgICAgICAgdGhpcy50YWJzZXRTZXJ2aWNlLmN1cnJlbnRBY3RpdmVUYWJJbmRleCxcbiAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdFRhYkluZGV4Q2hhbmdlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgY29tYmluZUxhdGVzdCh0aGlzLnRhYnMubWFwKCh0YWIpID0+IHRhYi5zdGF0ZUNoYW5nZSkpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgIHJhY2UodGhpcy50YWJDb21wb25lbnRzU3RhdGVDaGFuZ2VVbnN1YnNjcmliZSwgdGhpcy5uZ1Vuc3Vic2NyaWJlKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gV2FpdCBmb3IgdGhlIHRhYiBjb21wb25lbnRzIHRvIHJlbmRlciBjaGFuZ2VzIGJlZm9yZSBmaW5kaW5nIHRoZSBhY3RpdmUgb25lLlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVRhYnNldENvbXBvbmVudChcbiAgICAgICAgICAgIHRoaXMudGFic2V0U2VydmljZS5jdXJyZW50QWN0aXZlVGFiSW5kZXgsXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFRhYkNvbXBvbmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy50YWJzLmZvckVhY2goKHRhYikgPT4gdGFiLmluaXQoKSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0VGFiQ29tcG9uZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlVGFiQ29tcG9uZW50c1N0YXRlQ2hhbmdlKCk7XG4gICAgdGhpcy50YWJzZXRTZXJ2aWNlLnVucmVnaXN0ZXJBbGwoKTtcblxuICAgIC8vIElmIHRoZXJlIGFyZSBubyB0YWIgY29tcG9uZW50cywgZG8gYSBoYXJkIHJlc2V0IG9mIHRoZSB2aWV3LlxuICAgIGlmICh0aGlzLnRhYnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnVwZGF0ZVRhYnNldENvbXBvbmVudCgwLCB0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmluaXRUYWJDb21wb25lbnRzKCk7XG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmdldEFjdGl2ZVRhYkNvbXBvbmVudCgpPy50YWJJbmRleDtcbiAgICB0aGlzLnRhYnNldFNlcnZpY2Uuc2V0QWN0aXZlVGFiSW5kZXgoYWN0aXZlSW5kZXgsIHtcbiAgICAgIGVtaXRDaGFuZ2U6IGZhbHNlLFxuICAgIH0pO1xuICAgIHRoaXMubGlzdGVuVGFiQ29tcG9uZW50c1N0YXRlQ2hhbmdlKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRUYWJJbmRleENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYkluZGV4ZXNDaGFuZ2UuZW1pdCh7XG4gICAgICB0YWJzOiB0aGlzLnRhYnMubWFwKCh0YWIpID0+ICh7XG4gICAgICAgIHRhYkhlYWRpbmc6IHRhYi50YWJIZWFkaW5nLFxuICAgICAgICB0YWJJbmRleDogdGFiLnRhYkluZGV4LFxuICAgICAgfSkpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZVRhYkNvbXBvbmVudHNTdGF0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYkNvbXBvbmVudHNTdGF0ZUNoYW5nZVVuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLnRhYkNvbXBvbmVudHNTdGF0ZUNoYW5nZVVuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy50YWJDb21wb25lbnRzU3RhdGVDaGFuZ2VVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblRhYkJ1dHRvbnNPdmVyZmxvd0NoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLnJlZ2lzdGVyVGFic2V0KHRoaXMuZWxlbWVudFJlZik7XG4gICAgdGhpcy5hZGFwdGVyU2VydmljZS5vdmVyZmxvd0NoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChpc092ZXJmbG93aW5nKSA9PiB7XG4gICAgICAgIHRoaXMudGFiRGlzcGxheU1vZGUgPSBpc092ZXJmbG93aW5nID8gJ2Ryb3Bkb3duJyA6ICd0YWJzJztcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiBmb3IgYmFjay9mb3J3YXJkIGhpc3RvcnkgYnV0dG9uIHByZXNzZXMgdG8gZGV0ZWN0IHF1ZXJ5IHBhcmFtIGNoYW5nZXMgaW4gdGhlIFVSTC5cbiAgICovXG4gIHByaXZhdGUgbGlzdGVuTG9jYXRpb25Qb3BTdGF0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBlcm1hbGlua1NlcnZpY2UucG9wU3RhdGVDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0QWN0aXZlVGFiSW5kZXhCeVBlcm1hbGlua0lkKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aXZlVGFiSW5kZXhCeVBlcm1hbGlua0lkKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gdGhpcy5nZXRBY3RpdmVUYWJJbmRleEJ5UGVybWFsaW5rSWQoKTtcbiAgICB0aGlzLnRhYnNldFNlcnZpY2Uuc2V0QWN0aXZlVGFiSW5kZXgoYWN0aXZlSW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVUYWJJbmRleEJ5UGVybWFsaW5rSWQoKTogU2t5VGFiSW5kZXgge1xuICAgIGlmICh0aGlzLnBlcm1hbGlua0lkKSB7XG4gICAgICBjb25zdCBwYXJhbVZhbHVlID0gdGhpcy5wZXJtYWxpbmtTZXJ2aWNlLmdldFBhcmFtKHRoaXMucGVybWFsaW5rSWQpO1xuICAgICAgaWYgKHBhcmFtVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFicy5maW5kKCh0YWIpID0+IHRhYi5wZXJtYWxpbmtWYWx1ZSA9PT0gcGFyYW1WYWx1ZSlcbiAgICAgICAgICA/LnRhYkluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWN0aXZlVGFiQ29tcG9uZW50KCk6IFNreVRhYkNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMudGFic1xuICAgICAgLnRvQXJyYXkoKVxuICAgICAgLnJldmVyc2UoKVxuICAgICAgLmZpbmQoKHRhYikgPT4gdGFiLmFjdGl2ZSA9PT0gdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRhYkJ1dHRvbnMoYWN0aXZlSW5kZXg6IFNreVRhYkluZGV4KTogVGFiQnV0dG9uVmlld01vZGVsW10ge1xuICAgIHJldHVybiB0aGlzLnRhYnMubWFwKCh0YWIpID0+ICh7XG4gICAgICBhY3RpdmU6IHRoaXMudGFic2V0U2VydmljZS50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCBhY3RpdmVJbmRleCksXG4gICAgICBjbG9zZWFibGU6IHRhYi5jbG9zZWFibGUsXG4gICAgICBhcmlhQ29udHJvbHM6IHRhYi50YWJQYW5lbElkLFxuICAgICAgZGlzYWJsZWQ6IHRhYi5kaXNhYmxlZCxcbiAgICAgIGJ1dHRvbkhyZWY6IHRhYi5kaXNhYmxlZFxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB0aGlzLnBlcm1hbGlua1NlcnZpY2UuZ2V0UGFyYW1IcmVmKFxuICAgICAgICAgICAgdGhpcy5wZXJtYWxpbmtJZCxcbiAgICAgICAgICAgIHRhYi5wZXJtYWxpbmtWYWx1ZVxuICAgICAgICAgICksXG4gICAgICBidXR0b25JZDogdGFiLnRhYkJ1dHRvbklkLFxuICAgICAgYnV0dG9uVGV4dENvdW50OiB0YWIudGFiSGVhZGVyQ291bnQsXG4gICAgICBidXR0b25UZXh0OiB0YWIudGFiSGVhZGluZyxcbiAgICAgIHRhYkluZGV4OiB0YWIudGFiSW5kZXgsXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUYWJCdXR0b25zKGFjdGl2ZUluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIHRoaXMudGFiQnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgIGJ1dHRvbi5hY3RpdmUgPSB0aGlzLnRhYnNldFNlcnZpY2UudGFiSW5kZXhlc0VxdWFsKFxuICAgICAgICBidXR0b24udGFiSW5kZXgsXG4gICAgICAgIGFjdGl2ZUluZGV4XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIFVJIGFuZCBzdGF0ZSBvZiB0aGUgdGFic2V0IGNvbXBvbmVudCBhZnRlciB0aGUgdGFiIGluZGV4IG9yXG4gICAqIHRhYiBjb21wb25lbnRzIGhhdmUgY2hhbmdlZC5cbiAgICogQHBhcmFtIGFjdGl2ZUluZGV4IFRoZSBjdXJyZW50bHkgYWN0aXZlIHRhYiBpbmRleC5cbiAgICogQHBhcmFtIHJlZ2VuZXJhdGVUYWJCdXR0b25zIEluZGljYXRlcyBpZiB0YWIgYnV0dG9uIHZpZXcgbW9kZWxzIHNob3VsZCBiZSByZWdlbmVyYXRlZC5cbiAgICogU2V0dGluZyB0aGlzIHZhbHVlIHRvIGBmYWxzZWAgd2lsbCBzaW1wbHkgdXBkYXRlIHRoZSBleGlzdGluZyB0YWIgYnV0dG9ucy4gU2V0dGluZyB0aGlzIHZhbHVlXG4gICAqIHRvIGB0cnVlYCBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVuIHRoZSB1bmRlcmx5aW5nIHRhYiBjb21wb25lbnRzIGhhdmUgY2hhbmdlZCBhbmQgdGhlIHRhYlxuICAgKiBidXR0b25zIG11c3QgcmVmbGVjdCB0aG9zZSBjaGFuZ2VzLlxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVUYWJzZXRDb21wb25lbnQoXG4gICAgYWN0aXZlSW5kZXg6IFNreVRhYkluZGV4LFxuICAgIHJlZ2VuZXJhdGVUYWJCdXR0b25zID0gZmFsc2VcbiAgKTogdm9pZCB7XG4gICAgLy8gQWN0aXZhdGUvZGVhY3RpdmF0ZSB0YWIgY29tcG9uZW50cy5cbiAgICB0aGlzLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICB0aGlzLnRhYnNldFNlcnZpY2UudGFiSW5kZXhlc0VxdWFsKHRhYi50YWJJbmRleCwgYWN0aXZlSW5kZXgpXG4gICAgICAgID8gdGFiLmFjdGl2YXRlKClcbiAgICAgICAgOiB0YWIuZGVhY3RpdmF0ZSgpO1xuICAgIH0pO1xuXG4gICAgLy8gVXBkYXRlIHRoZSB0YWIgYnV0dG9uIG1vZGVscy5cbiAgICBpZiAocmVnZW5lcmF0ZVRhYkJ1dHRvbnMgfHwgIXRoaXMudGFiQnV0dG9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudGFiQnV0dG9ucyA9IHRoaXMuY3JlYXRlVGFiQnV0dG9ucyhhY3RpdmVJbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlVGFiQnV0dG9ucyhhY3RpdmVJbmRleCk7XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIHRoZSBkcm9wZG93biB0cmlnZ2VyIGJ1dHRvbiB0ZXh0LlxuICAgIHRoaXMuZHJvcGRvd25UcmlnZ2VyQnV0dG9uVGV4dCA9IHRoaXMudGFiQnV0dG9ucy5maW5kKChiKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy50YWJzZXRTZXJ2aWNlLnRhYkluZGV4ZXNFcXVhbChiLnRhYkluZGV4LCBhY3RpdmVJbmRleCk7XG4gICAgfSk/LmJ1dHRvblRleHQ7XG5cbiAgICAvLyBTZXQgdGhlIHF1ZXJ5IHBhcmFtcyBiYXNlZCBvbiBhY3RpdmUgdGFiLlxuICAgIGlmICh0aGlzLnBlcm1hbGlua0lkKSB7XG4gICAgICBjb25zdCBhY3RpdmVUYWJDb21wb25lbnQgPSB0aGlzLnRhYnMuZmluZCgodGFiKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhYnNldFNlcnZpY2UudGFiSW5kZXhlc0VxdWFsKHRhYi50YWJJbmRleCwgYWN0aXZlSW5kZXgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnBlcm1hbGlua1NlcnZpY2Uuc2V0UGFyYW0oXG4gICAgICAgIHRoaXMucGVybWFsaW5rSWQsXG4gICAgICAgIGFjdGl2ZVRhYkNvbXBvbmVudC5wZXJtYWxpbmtWYWx1ZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBXYWl0IGZvciB0YWIgYnV0dG9uIHZpZXcgbW9kZWxzIHRvIHJlbmRlciBiZWZvcmUgZ2F1Z2luZyBkaW1lbnNpb25zLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hZGFwdGVyU2VydmljZS5kZXRlY3RPdmVyZmxvdygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcblxuICAgIC8vIEVtaXQgdGhlIG5ldyBhY3RpdmUgaW5kZXggdmFsdWUgdG8gY29uc3VtZXJzLlxuICAgIGlmICh0aGlzLmxhc3RBY3RpdmVUYWJJbmRleCAhPT0gYWN0aXZlSW5kZXgpIHtcbiAgICAgIHRoaXMubGFzdEFjdGl2ZVRhYkluZGV4ID0gYWN0aXZlSW5kZXg7XG4gICAgICB0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KGFjdGl2ZUluZGV4KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktdGFic2V0XCJcbiAgcm9sZT1cInRhYmxpc3RcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gIFtuZ0NsYXNzXT1cIlxuICAgICdza3ktdGFic2V0LW1vZGUtJyArIHRhYkRpc3BsYXlNb2RlICsgJyBza3ktdGFic2V0LXN0eWxlLScgKyB0YWJTdHlsZVxuICBcIlxuICAod2luZG93OnJlc2l6ZSk9XCJvbldpbmRvd1Jlc2l6ZSgpXCJcbj5cbiAgPHNwYW4gY2xhc3M9XCJza3ktdGFic2V0LWRyb3Bkb3duXCI+XG4gICAgPHNreS1kcm9wZG93biAqbmdJZj1cInRhYkRpc3BsYXlNb2RlID09PSAnZHJvcGRvd24nXCIgYnV0dG9uVHlwZT1cInRhYlwiPlxuICAgICAgPHNreS1kcm9wZG93bi1idXR0b24+XG4gICAgICAgIHt7IGRyb3Bkb3duVHJpZ2dlckJ1dHRvblRleHQgfX1cbiAgICAgIDwvc2t5LWRyb3Bkb3duLWJ1dHRvbj5cbiAgICAgIDxza3ktZHJvcGRvd24tbWVudT5cbiAgICAgICAgPHNreS1kcm9wZG93bi1pdGVtXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHRhYkJ1dHRvbiBvZiB0YWJCdXR0b25zXCJcbiAgICAgICAgICBjbGFzcz1cInNreS10YWItZHJvcGRvd24tbWVudS1pdGVtXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LXRhYi1kcm9wZG93bi1pdGVtXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3NreS10YWItZHJvcGRvd24taXRlbS1zZWxlY3RlZCc6IHRhYkJ1dHRvbi5hY3RpdmVcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICB0YWJCdXR0b25UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHRhYkJ1dHRvblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9za3ktZHJvcGRvd24taXRlbT5cbiAgICAgIDwvc2t5LWRyb3Bkb3duLW1lbnU+XG4gICAgPC9za3ktZHJvcGRvd24+XG4gIDwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJza3ktdGFic2V0LXRhYnNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWJCdXR0b24gb2YgdGFiQnV0dG9uc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIHRhYkJ1dHRvblRlbXBsYXRlO1xuICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICRpbXBsaWNpdDogdGFiQnV0dG9uXG4gICAgICAgICAgfVxuICAgICAgICBcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwic2t5LXRhYnNldC1idG5zXCI+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJuZXdUYWIub2JzZXJ2ZXJzLmxlbmd0aCA+IDBcIlxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4taWNvbiBza3ktdGFic2V0LWJ0bi1uZXcgc2t5LW1hcmdpbi1pbmxpbmUtY29tcGFjdFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X3RhYl9hZGQnIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgJ3NreS1tYXJnaW4taW5saW5lLXNtJzogJ21vZGVybidcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cIm9uTmV3VGFiQ2xpY2soKVwiXG4gICAgPlxuICAgICAgPHNreS1pY29uIGljb249XCJwbHVzLWNpcmNsZVwiIHNpemU9XCJsZ1wiPiA8L3NreS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwib3BlblRhYi5vYnNlcnZlcnMubGVuZ3RoID4gMFwiXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1pY29uIHNreS10YWJzZXQtYnRuLW9wZW4gc2t5LW1hcmdpbi1pbmxpbmUtY29tcGFjdFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X3RhYl9vcGVuJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICdza3ktbWFyZ2luLWlubGluZS1zbSc6ICdtb2Rlcm4nXG4gICAgICB9XCJcbiAgICAgIChjbGljayk9XCJvbk9wZW5UYWJDbGljaygpXCJcbiAgICA+XG4gICAgICA8c2t5LWljb24gaWNvbj1cImZvbGRlci1vcGVuLW9cIiBzaXplPVwibGdcIj4gPC9za3ktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9zcGFuPlxuPC9kaXY+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbjxuZy10ZW1wbGF0ZSBsZXQtdGFiQnV0dG9uICN0YWJCdXR0b25UZW1wbGF0ZT5cbiAgPHNreS10YWItYnV0dG9uXG4gICAgW2FjdGl2ZV09XCJ0YWJCdXR0b24uYWN0aXZlXCJcbiAgICBbYXJpYUNvbnRyb2xzXT1cInRhYkJ1dHRvbi5hcmlhQ29udHJvbHNcIlxuICAgIFtidXR0b25IcmVmXT1cInRhYkJ1dHRvbi5idXR0b25IcmVmXCJcbiAgICBbYnV0dG9uSWRdPVwidGFiQnV0dG9uLmJ1dHRvbklkXCJcbiAgICBbYnV0dG9uVGV4dF09XCJ0YWJCdXR0b24uYnV0dG9uVGV4dFwiXG4gICAgW2J1dHRvblRleHRDb3VudF09XCJ0YWJCdXR0b24uYnV0dG9uVGV4dENvdW50XCJcbiAgICBbY2xvc2VhYmxlXT1cInRhYkJ1dHRvbi5jbG9zZWFibGVcIlxuICAgIFtkaXNhYmxlZF09XCJ0YWJCdXR0b24uZGlzYWJsZWRcIlxuICAgIFt0YWJTdHlsZV09XCJ0YWJTdHlsZVwiXG4gICAgKGJ1dHRvbkNsaWNrKT1cIm9uVGFiQnV0dG9uQ2xpY2sodGFiQnV0dG9uKVwiXG4gICAgKGNsb3NlQ2xpY2spPVwib25UYWJDbG9zZUNsaWNrKHRhYkJ1dHRvbilcIlxuICA+PC9za3ktdGFiLWJ1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
401
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy90YWJzL3RhYnNldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdGFicy90YWJzZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRW5FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7OztBQTZCcEQsTUFBTSxPQUFPLGtCQUFrQjtJQWlLN0IsWUFDVSxjQUFpQyxFQUNqQyxVQUFzQixFQUN0QixjQUF1QyxFQUN2QyxnQkFBMkMsRUFDM0MsYUFBK0I7UUFKL0IsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsbUJBQWMsR0FBZCxjQUFjLENBQXlCO1FBQ3ZDLHFCQUFn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QUU7WUFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVuQyxnREFBZ0Q7UUFDaEQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEtBQUssV0FBVyxFQUFFO1lBQzNDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUM7WUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDOzs7K0dBN2RVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHNTQVJsQjtRQUNULHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsZ0JBQWdCO0tBQ2pCLCtDQTBJZ0IsZUFBZSw2QkM1TGxDLG84RkErRkE7MkZEekNhLGtCQUFrQjtrQkFaOUIsU0FBUzsrQkFDRSxZQUFZLGFBR1g7d0JBQ1QsdUJBQXVCO3dCQUN2Qix5QkFBeUI7d0JBQ3pCLGdCQUFnQjtxQkFDakIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OE9BTzFCLE1BQU07c0JBRGhCLEtBQUs7Z0JBdUNDLFNBQVM7c0JBRGYsS0FBSztnQkFVQyxjQUFjO3NCQURwQixLQUFLO2dCQVdLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBbUJLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBYUMsWUFBWTtzQkFEbEIsTUFBTTtnQkFTQSxNQUFNO3NCQURaLE1BQU07Z0JBU0EsT0FBTztzQkFEYixNQUFNO2dCQVFBLGdCQUFnQjtzQkFEdEIsTUFBTTtnQkFxQkEsSUFBSTtzQkFEVixlQUFlO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIHJhY2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRhYkluZGV4IH0gZnJvbSAnLi90YWItaW5kZXgnO1xuaW1wb3J0IHsgU2t5VGFiQ29tcG9uZW50IH0gZnJvbSAnLi90YWIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRhYnNldEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi90YWJzZXQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVRhYnNldEJ1dHRvbnNEaXNwbGF5TW9kZSB9IGZyb20gJy4vdGFic2V0LWJ1dHRvbnMtZGlzcGxheS1tb2RlJztcbmltcG9ydCB7IFNreVRhYnNldFBlcm1hbGlua1NlcnZpY2UgfSBmcm9tICcuL3RhYnNldC1wZXJtYWxpbmsuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lUYWJzZXRTdHlsZSB9IGZyb20gJy4vdGFic2V0LXN0eWxlJztcbmltcG9ydCB7IFNreVRhYnNldFRhYkluZGV4ZXNDaGFuZ2UgfSBmcm9tICcuL3RhYnNldC10YWItaW5kZXhlcy1jaGFuZ2UnO1xuaW1wb3J0IHsgU2t5VGFic2V0U2VydmljZSB9IGZyb20gJy4vdGFic2V0LnNlcnZpY2UnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5pbnRlcmZhY2UgVGFiQnV0dG9uVmlld01vZGVsIHtcbiAgYWN0aXZlOiBib29sZWFuO1xuICBhcmlhQ29udHJvbHM6IHN0cmluZztcbiAgYnV0dG9uSHJlZjogc3RyaW5nO1xuICBidXR0b25JZDogc3RyaW5nO1xuICBidXR0b25UZXh0OiBzdHJpbmc7XG4gIGJ1dHRvblRleHRDb3VudDogc3RyaW5nO1xuICBjbG9zZWFibGU6IGJvb2xlYW47XG4gIGRpc2FibGVkOiBib29sZWFuO1xuICB0YWJJbmRleDogU2t5VGFiSW5kZXg7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10YWJzZXQnLFxuICBzdHlsZVVybHM6IFsnLi90YWJzZXQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYnNldC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIFNreVRhYnNldEFkYXB0ZXJTZXJ2aWNlLFxuICAgIFNreVRhYnNldFBlcm1hbGlua1NlcnZpY2UsXG4gICAgU2t5VGFic2V0U2VydmljZSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNreVRhYnNldENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgYSB0YWIgYnkgaXRzIGB0YWJJbmRleGAgcHJvcGVydHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFjdGl2ZSh2YWx1ZTogU2t5VGFiSW5kZXgpIHtcbiAgICBpZiAoXG4gICAgICB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLnRhYnNldFNlcnZpY2UudGFiSW5kZXhlc0VxdWFsKHZhbHVlLCB0aGlzLl9hY3RpdmUpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fYWN0aXZlID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy50YWJzKSB7XG4gICAgICB0aGlzLnRhYnNldFNlcnZpY2Uuc2V0QWN0aXZlVGFiSW5kZXgodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPbiBpbml0LCB3YWl0IGZvciBjaGlsZHJlbiB0YWJzIHRvIHJlbmRlciBiZWZvcmUgYnJvYWRjYXN0aW5nIHRoZSBhY3RpdmUgdGFiIGluZGV4LlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnRhYnNldFNlcnZpY2UuaXNWYWxpZFRhYkluZGV4KHZhbHVlKSkge1xuICAgICAgICAgIC8vIE9uIGluaXQsIHlpZWxkIHRvIHRoZSBwZXJtYWxpbmsgSUQsIGlmIGl0IGV4aXN0cy5cbiAgICAgICAgICBpZiAodGhpcy5nZXRBY3RpdmVUYWJJbmRleEJ5UGVybWFsaW5rSWQoKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnRhYnNldFNlcnZpY2Uuc2V0QWN0aXZlVGFiSW5kZXgodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBBY3RpdmF0ZSB0aGUgZmlyc3QgdGFiIGlmIHRoZSBuZXcgdGFiIGluZGV4IGlzIGludmFsaWQuXG4gICAgICAgICAgdGhpcy5fYWN0aXZlID0gdGhpcy50YWJzZXRTZXJ2aWNlLmFjdGl2YXRlRmlyc3RUYWIoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmUoKTogU2t5VGFiSW5kZXgge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmU7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIGFuIEFSSUEgbGFiZWwgZm9yIHRoZSB0YWJzZXQuIFRoaXMgc2V0cyB0aGUgdGFic2V0J3MgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZVxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBJZiB0aGUgdGFic2V0IGluY2x1ZGVzIGEgdmlzaWJsZSBsYWJlbCwgdXNlIGBhcmlhTGFiZWxsZWRCeWAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcmlhTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBIVE1MIGVsZW1lbnQgSUQgKHdpdGhvdXQgdGhlIGxlYWRpbmcgYCNgKSBvZiB0aGUgZWxlbWVudCB0aGF0IGxhYmVsc1xuICAgKiB0aGUgdGFic2V0LiBUaGlzIHNldHMgdGhlIHRhYnNldCdzIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZVxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBJZiB0aGUgdGFic2V0IGRvZXMgbm90IGluY2x1ZGUgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGFyaWFMYWJlbGAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcmlhTGFiZWxsZWRCeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEaXN0aW5ndWlzaGVzIGEgdGFic2V0J3MgdW5pcXVlIHN0YXRlIGluIHRoZSBVUkwgYnkgZ2VuZXJhdGluZyBhIHF1ZXJ5IHBhcmFtZXRlclxuICAgKiB0aGF0IGlzIHdyaXR0ZW4gYXMgYD88cXVlcnlQYXJhbT4tYWN0aXZlLXRhYj08c2FuaXRpemVkLXRhYi1oZWFkaW5nPmAuXG4gICAqIFRoZSBxdWVyeSBwYXJhbWV0ZXIncyB2YWx1ZSBpcyBwYXJzZWQgYXV0b21hdGljYWxseSBmcm9tIHRoZSBzZWxlY3RlZCB0YWIncyBoZWFkaW5nIHRleHQsXG4gICAqIGJ1dCB5b3UgY2FuIHN1cHBseSBhIGN1c3RvbSBxdWVyeSBwYXJhbWV0ZXIgdmFsdWUgZm9yIGVhY2ggdGFiIHdpdGggaXRzIGBwZXJtYWxpbmtWYWx1ZWAuXG4gICAqIFRoaXMgaW5wdXQgb25seSBhcHBsaWVzIHdoZW4gYHRhYlN0eWxlYCBpcyBgXCJ0YWJzXCJgXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBlcm1hbGlua0lkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2FuaXRpemVkID0gdGhpcy5wZXJtYWxpbmtTZXJ2aWNlLnVybGlmeSh2YWx1ZSk7XG4gICAgdGhpcy5fcGVybWFsaW5rSWQgPSBgJHtzYW5pdGl6ZWR9LWFjdGl2ZS10YWJgO1xuICB9XG5cbiAgcHVibGljIGdldCBwZXJtYWxpbmtJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9wZXJtYWxpbmtJZCB8fCAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGJlaGF2aW9yIGZvciBhIHNlcmllcyBvZiB0YWJzLlxuICAgKiBAZGVmYXVsdCBcInRhYnNcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0YWJTdHlsZSh2YWx1ZTogU2t5VGFic2V0U3R5bGUpIHtcbiAgICB0aGlzLl90YWJTdHlsZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCB0YWJTdHlsZSgpOiBTa3lUYWJzZXRTdHlsZSB7XG4gICAgcmV0dXJuIHRoaXMuX3RhYlN0eWxlIHx8ICd0YWJzJztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBhY3RpdmUgdGFiIGNoYW5nZXMuIFRoaXMgZXZlbnQgZW1pdHMgdGhlIGluZGV4IG9mIHRoZSBhY3RpdmUgdGFiLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBhY3RpdmVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVRhYkluZGV4PigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIGNsaWNrIHRoZSBidXR0b24gdG8gYWRkIGEgbmV3IHRhYi5cbiAgICogVGhlIG5ldyB0YWIgYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSB0YWIgYXJlYSB3aGVuIHlvdSBzcGVjaWZ5IGEgbGlzdGVuZXIgZm9yIHRoaXMgZXZlbnQuXG4gICAqIFRoaXMgZXZlbnQgb25seSBhcHBsaWVzIHdoZW4gYHRhYlN0eWxlYCBpcyBgXCJ0YWJzXCJgLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBuZXdUYWIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgY2xpY2sgdGhlIGJ1dHRvbiB0byBvcGVuIGEgdGFiLlxuICAgKiBUaGUgb3BlbiB0YWIgYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSB0YWIgYXJlYSB3aGVuIHlvdSBzcGVjaWZ5IGEgbGlzdGVuZXIgZm9yIHRoaXMgZXZlbnQuXG4gICAqIFRoaXMgZXZlbnQgb25seSBhcHBsaWVzIHdoZW4gYHRhYlN0eWxlYCBpcyBgXCJ0YWJzXCJgLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvcGVuVGFiID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIGFueSB0YWIncyBgdGFiSW5kZXhgIHZhbHVlIGNoYW5nZXMuXG4gICAqIFRoaXMgZXZlbnQgb25seSBhcHBsaWVzIHdoZW4gYHRhYlN0eWxlYCBpcyBgXCJ0YWJzXCJgLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyB0YWJJbmRleGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lUYWJzZXRUYWJJbmRleGVzQ2hhbmdlPigpO1xuXG4gIHB1YmxpYyBzZXQgdGFiRGlzcGxheU1vZGUodmFsdWU6IFNreVRhYnNldEJ1dHRvbnNEaXNwbGF5TW9kZSkge1xuICAgIHRoaXMuX3RhYkRpc3BsYXlNb2RlID0gdmFsdWU7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGFiRGlzcGxheU1vZGUoKTogU2t5VGFic2V0QnV0dG9uc0Rpc3BsYXlNb2RlIHtcbiAgICByZXR1cm4gdGhpcy5fdGFiRGlzcGxheU1vZGUgfHwgJ3RhYnMnO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNGaW5pc2hCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19oYXNGaW5pc2hCdXR0b247XG4gIH1cblxuICBwdWJsaWMgc2V0IGhhc0ZpbmlzaEJ1dHRvbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI19oYXNGaW5pc2hCdXR0b24gPSB2YWx1ZTtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5VGFiQ29tcG9uZW50KVxuICBwdWJsaWMgdGFiczogUXVlcnlMaXN0PFNreVRhYkNvbXBvbmVudD47XG5cbiAgcHVibGljIGRyb3Bkb3duVHJpZ2dlckJ1dHRvblRleHQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIGJ5IHRoZSBkZXByZWNhdGVkIHRhYnNldC1uYXYtYnV0dG9uIGNvbXBvbmVudC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgbGFzdEFjdGl2ZVRhYkluZGV4OiBTa3lUYWJJbmRleDtcblxuICBwdWJsaWMgdGFiQnV0dG9uczogVGFiQnV0dG9uVmlld01vZGVsW10gPSBbXTtcblxuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgdGFiQ29tcG9uZW50c1N0YXRlQ2hhbmdlVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgX2FjdGl2ZTogU2t5VGFiSW5kZXg7XG5cbiAgcHJpdmF0ZSBfcGVybWFsaW5rSWQ6IHN0cmluZztcblxuICBwcml2YXRlIF90YWJEaXNwbGF5TW9kZTogU2t5VGFic2V0QnV0dG9uc0Rpc3BsYXlNb2RlO1xuXG4gIHByaXZhdGUgX3RhYlN0eWxlOiBTa3lUYWJzZXRTdHlsZTtcblxuICAjX2hhc0ZpbmlzaEJ1dHRvbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGFkYXB0ZXJTZXJ2aWNlOiBTa3lUYWJzZXRBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIHBlcm1hbGlua1NlcnZpY2U6IFNreVRhYnNldFBlcm1hbGlua1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0YWJzZXRTZXJ2aWNlOiBTa3lUYWJzZXRTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFRhYkNvbXBvbmVudHMoKTtcbiAgICB0aGlzLmxpc3RlblRhYkNvbXBvbmVudHNTdHJ1Y3R1cmFsQ2hhbmdlKCk7XG5cbiAgICBjb25zdCBpbml0aWFsVGFiSW5kZXggPSB0aGlzLmdldEluaXRpYWxUYWJJbmRleCgpO1xuICAgIHRoaXMudGFic2V0U2VydmljZS5zZXRBY3RpdmVUYWJJbmRleChpbml0aWFsVGFiSW5kZXgpO1xuXG4gICAgdGhpcy5saXN0ZW5UYWJCdXR0b25zT3ZlcmZsb3dDaGFuZ2UoKTtcbiAgICB0aGlzLmxpc3RlbkxvY2F0aW9uUG9wU3RhdGVDaGFuZ2UoKTtcblxuICAgIC8vIElmIHRoZSBjdXJyZW50bHkgYWN0aXZlIHRhYiBpcyBnZXR0aW5nIHVucmVnaXN0ZXJlZCwgYWN0aXZhdGUgdGhlIG5leHQgb25lLlxuICAgIHRoaXMudGFic2V0U2VydmljZS5hY3RpdmVUYWJVbnJlZ2lzdGVyZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgodGFiKSA9PiB7XG4gICAgICAgIC8vIFdhaXQgZm9yIHRoZSBuZXcgdGFicyB0byByZW5kZXIgYmVmb3JlIGFjdGl2YXRpbmcuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMudGFic2V0U2VydmljZS5hY3RpdmF0ZU5lYXJlc3RUYWIodGFiLmFycmF5SW5kZXgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgLy8gTGV0IHRoZSB0YWJzZXQgcmVuZGVyIHRoZSBpbml0aWFsIGFjdGl2ZSBpbmRleCBiZWZvcmUgbGlzdGVuaW5nIGZvciBjaGFuZ2VzLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5saXN0ZW5UYWJDb21wb25lbnRzU3RhdGVDaGFuZ2UoKTtcbiAgICAgIHRoaXMubGlzdGVuQWN0aXZlSW5kZXhDaGFuZ2UoKTtcbiAgICAgIHRoaXMucGVybWFsaW5rU2VydmljZS5pbml0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlVGFiQ29tcG9uZW50c1N0YXRlQ2hhbmdlKCk7XG4gICAgaWYgKHRoaXMucGVybWFsaW5rSWQpIHtcbiAgICAgIHRoaXMucGVybWFsaW5rU2VydmljZS5jbGVhclBhcmFtKHRoaXMucGVybWFsaW5rSWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbldpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLmRldGVjdE92ZXJmbG93KCk7XG4gIH1cblxuICBwdWJsaWMgb25UYWJDbG9zZUNsaWNrKHRhYkJ1dHRvbjogVGFiQnV0dG9uVmlld01vZGVsKTogdm9pZCB7XG4gICAgY29uc3QgdGFiQ29tcG9uZW50ID0gdGhpcy50YWJzLmZpbmQoKHRhYikgPT5cbiAgICAgIHRoaXMudGFic2V0U2VydmljZS50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0YWJCdXR0b24udGFiSW5kZXgpXG4gICAgKTtcblxuICAgIHRhYkNvbXBvbmVudC5jbG9zZS5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25UYWJCdXR0b25DbGljayh0YWJCdXR0b246IFRhYkJ1dHRvblZpZXdNb2RlbCk6IHZvaWQge1xuICAgIHRoaXMudGFic2V0U2VydmljZS5zZXRBY3RpdmVUYWJJbmRleCh0YWJCdXR0b24udGFiSW5kZXgpO1xuICB9XG5cbiAgcHVibGljIG9uTmV3VGFiQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5uZXdUYWIuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG9uT3BlblRhYkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMub3BlblRhYi5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgaW5pdGlhbCBhY3RpdmUgdGFiIGluZGV4IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgY3JpdGVyaWEuXG4gICAqIDEuIERvZXMgdGhlIFVSTCBpbmNsdWRlIGEgcXVlcnkgcGFyYW0gdGhhdCByZWZsZWN0cyB0aGlzIHRhYnNldCdzIGFjdGl2ZSB0YWI/XG4gICAqIDIuIERvZXMgb25lIG9mIHRoZSB0YWIgY29tcG9uZW50cyBoYXZlIHRoZWlyIGBhY3RpdmVgIHByb3BlcnR5IHNldCB0byBgdHJ1ZWA/XG4gICAqIDMuIElzIHRoZSB0YWJzZXQgY29tcG9uZW50J3MgYGFjdGl2ZWAgcHJvcGVydHkgc2V0IHRvIGEgc3BlY2lmaWMgdGFiIGluZGV4P1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRJbml0aWFsVGFiSW5kZXgoKTogU2t5VGFiSW5kZXgge1xuICAgIGxldCBhY3RpdmVJbmRleDogU2t5VGFiSW5kZXggPSB0aGlzLmdldEFjdGl2ZVRhYkluZGV4QnlQZXJtYWxpbmtJZCgpO1xuICAgIGlmIChhY3RpdmVJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBhY3RpdmVJbmRleCA9IHRoaXMuZ2V0QWN0aXZlVGFiQ29tcG9uZW50KCk/LnRhYkluZGV4O1xuICAgICAgaWYgKGFjdGl2ZUluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYWN0aXZlSW5kZXggPSB0aGlzLmFjdGl2ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYWN0aXZlSW5kZXg7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkFjdGl2ZUluZGV4Q2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMudGFic2V0U2VydmljZS5hY3RpdmVUYWJJbmRleFxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChhY3RpdmVJbmRleCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVRhYnNldENvbXBvbmVudChhY3RpdmVJbmRleCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuVGFiQ29tcG9uZW50c1N0cnVjdHVyYWxDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy50YWJzLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRUYWJDb21wb25lbnRzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblRhYkNvbXBvbmVudHNTdGF0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICBjb21iaW5lTGF0ZXN0KHRoaXMudGFicy5tYXAoKHRhYikgPT4gdGFiLmFjdGl2ZUNoYW5nZSkpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgIHJhY2UodGhpcy50YWJDb21wb25lbnRzU3RhdGVDaGFuZ2VVbnN1YnNjcmliZSwgdGhpcy5uZ1Vuc3Vic2NyaWJlKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gV2FpdCBmb3IgdGhlIHRhYiBjb21wb25lbnRzIHRvIHJlbmRlciBjaGFuZ2VzIGJlZm9yZSBmaW5kaW5nIHRoZSBhY3RpdmUgb25lLlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB0YWJJbmRleCA9IHRoaXMuZ2V0QWN0aXZlVGFiQ29tcG9uZW50KCk/LnRhYkluZGV4O1xuICAgICAgICAgIHRoaXMudGFic2V0U2VydmljZS5zZXRBY3RpdmVUYWJJbmRleCh0YWJJbmRleCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICBjb21iaW5lTGF0ZXN0KHRoaXMudGFicy5tYXAoKHRhYikgPT4gdGFiLnRhYkluZGV4Q2hhbmdlKSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgcmFjZSh0aGlzLnRhYkNvbXBvbmVudHNTdGF0ZUNoYW5nZVVuc3Vic2NyaWJlLCB0aGlzLm5nVW5zdWJzY3JpYmUpXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyBEb24ndCBlbWl0IHRoZSBmaXJzdCBjaGFuZ2UuXG4gICAgICAgIGlmICh0aGlzLmxhc3RBY3RpdmVUYWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIHRhYiBjb21wb25lbnRzIHRvIHJlbmRlciBjaGFuZ2VzIGJlZm9yZSB1cGRhdGluZyB0aGUgdmlldy5cbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGFic2V0Q29tcG9uZW50KFxuICAgICAgICAgICAgICB0aGlzLnRhYnNldFNlcnZpY2UuY3VycmVudEFjdGl2ZVRhYkluZGV4LFxuICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5lbWl0VGFiSW5kZXhDaGFuZ2UoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBjb21iaW5lTGF0ZXN0KHRoaXMudGFicy5tYXAoKHRhYikgPT4gdGFiLnN0YXRlQ2hhbmdlKSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgcmFjZSh0aGlzLnRhYkNvbXBvbmVudHNTdGF0ZUNoYW5nZVVuc3Vic2NyaWJlLCB0aGlzLm5nVW5zdWJzY3JpYmUpXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyBXYWl0IGZvciB0aGUgdGFiIGNvbXBvbmVudHMgdG8gcmVuZGVyIGNoYW5nZXMgYmVmb3JlIGZpbmRpbmcgdGhlIGFjdGl2ZSBvbmUuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlVGFic2V0Q29tcG9uZW50KFxuICAgICAgICAgICAgdGhpcy50YWJzZXRTZXJ2aWNlLmN1cnJlbnRBY3RpdmVUYWJJbmRleCxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0VGFiQ29tcG9uZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB0YWIuaW5pdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRUYWJDb21wb25lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmVUYWJDb21wb25lbnRzU3RhdGVDaGFuZ2UoKTtcbiAgICB0aGlzLnRhYnNldFNlcnZpY2UudW5yZWdpc3RlckFsbCgpO1xuXG4gICAgLy8gSWYgdGhlcmUgYXJlIG5vIHRhYiBjb21wb25lbnRzLCBkbyBhIGhhcmQgcmVzZXQgb2YgdGhlIHZpZXcuXG4gICAgaWYgKHRoaXMudGFicy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMudXBkYXRlVGFic2V0Q29tcG9uZW50KDAsIHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdFRhYkNvbXBvbmVudHMoKTtcbiAgICBjb25zdCBhY3RpdmVJbmRleCA9IHRoaXMuZ2V0QWN0aXZlVGFiQ29tcG9uZW50KCk/LnRhYkluZGV4O1xuICAgIHRoaXMudGFic2V0U2VydmljZS5zZXRBY3RpdmVUYWJJbmRleChhY3RpdmVJbmRleCwge1xuICAgICAgZW1pdENoYW5nZTogZmFsc2UsXG4gICAgfSk7XG4gICAgdGhpcy5saXN0ZW5UYWJDb21wb25lbnRzU3RhdGVDaGFuZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFRhYkluZGV4Q2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMudGFiSW5kZXhlc0NoYW5nZS5lbWl0KHtcbiAgICAgIHRhYnM6IHRoaXMudGFicy5tYXAoKHRhYikgPT4gKHtcbiAgICAgICAgdGFiSGVhZGluZzogdGFiLnRhYkhlYWRpbmcsXG4gICAgICAgIHRhYkluZGV4OiB0YWIudGFiSW5kZXgsXG4gICAgICB9KSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVuc3Vic2NyaWJlVGFiQ29tcG9uZW50c1N0YXRlQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMudGFiQ29tcG9uZW50c1N0YXRlQ2hhbmdlVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMudGFiQ29tcG9uZW50c1N0YXRlQ2hhbmdlVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLnRhYkNvbXBvbmVudHNTdGF0ZUNoYW5nZVVuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuVGFiQnV0dG9uc092ZXJmbG93Q2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuYWRhcHRlclNlcnZpY2UucmVnaXN0ZXJUYWJzZXQodGhpcy5lbGVtZW50UmVmKTtcbiAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLm92ZXJmbG93Q2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGlzT3ZlcmZsb3dpbmcpID0+IHtcbiAgICAgICAgdGhpcy50YWJEaXNwbGF5TW9kZSA9IGlzT3ZlcmZsb3dpbmcgPyAnZHJvcGRvd24nIDogJ3RhYnMnO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGZvciBiYWNrL2ZvcndhcmQgaGlzdG9yeSBidXR0b24gcHJlc3NlcyB0byBkZXRlY3QgcXVlcnkgcGFyYW0gY2hhbmdlcyBpbiB0aGUgVVJMLlxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Mb2NhdGlvblBvcFN0YXRlQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMucGVybWFsaW5rU2VydmljZS5wb3BTdGF0ZUNoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRBY3RpdmVUYWJJbmRleEJ5UGVybWFsaW5rSWQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVUYWJJbmRleEJ5UGVybWFsaW5rSWQoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmdldEFjdGl2ZVRhYkluZGV4QnlQZXJtYWxpbmtJZCgpO1xuICAgIHRoaXMudGFic2V0U2VydmljZS5zZXRBY3RpdmVUYWJJbmRleChhY3RpdmVJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIGdldEFjdGl2ZVRhYkluZGV4QnlQZXJtYWxpbmtJZCgpOiBTa3lUYWJJbmRleCB7XG4gICAgaWYgKHRoaXMucGVybWFsaW5rSWQpIHtcbiAgICAgIGNvbnN0IHBhcmFtVmFsdWUgPSB0aGlzLnBlcm1hbGlua1NlcnZpY2UuZ2V0UGFyYW0odGhpcy5wZXJtYWxpbmtJZCk7XG4gICAgICBpZiAocGFyYW1WYWx1ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy50YWJzLmZpbmQoKHRhYikgPT4gdGFiLnBlcm1hbGlua1ZhbHVlID09PSBwYXJhbVZhbHVlKVxuICAgICAgICAgID8udGFiSW5kZXg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVUYWJDb21wb25lbnQoKTogU2t5VGFiQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy50YWJzXG4gICAgICAudG9BcnJheSgpXG4gICAgICAucmV2ZXJzZSgpXG4gICAgICAuZmluZCgodGFiKSA9PiB0YWIuYWN0aXZlID09PSB0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVGFiQnV0dG9ucyhhY3RpdmVJbmRleDogU2t5VGFiSW5kZXgpOiBUYWJCdXR0b25WaWV3TW9kZWxbXSB7XG4gICAgcmV0dXJuIHRoaXMudGFicy5tYXAoKHRhYikgPT4gKHtcbiAgICAgIGFjdGl2ZTogdGhpcy50YWJzZXRTZXJ2aWNlLnRhYkluZGV4ZXNFcXVhbCh0YWIudGFiSW5kZXgsIGFjdGl2ZUluZGV4KSxcbiAgICAgIGNsb3NlYWJsZTogdGFiLmNsb3NlYWJsZSxcbiAgICAgIGFyaWFDb250cm9sczogdGFiLnRhYlBhbmVsSWQsXG4gICAgICBkaXNhYmxlZDogdGFiLmRpc2FibGVkLFxuICAgICAgYnV0dG9uSHJlZjogdGFiLmRpc2FibGVkXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHRoaXMucGVybWFsaW5rU2VydmljZS5nZXRQYXJhbUhyZWYoXG4gICAgICAgICAgICB0aGlzLnBlcm1hbGlua0lkLFxuICAgICAgICAgICAgdGFiLnBlcm1hbGlua1ZhbHVlXG4gICAgICAgICAgKSxcbiAgICAgIGJ1dHRvbklkOiB0YWIudGFiQnV0dG9uSWQsXG4gICAgICBidXR0b25UZXh0Q291bnQ6IHRhYi50YWJIZWFkZXJDb3VudCxcbiAgICAgIGJ1dHRvblRleHQ6IHRhYi50YWJIZWFkaW5nLFxuICAgICAgdGFiSW5kZXg6IHRhYi50YWJJbmRleCxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVRhYkJ1dHRvbnMoYWN0aXZlSW5kZXg6IFNreVRhYkluZGV4KTogdm9pZCB7XG4gICAgdGhpcy50YWJCdXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgYnV0dG9uLmFjdGl2ZSA9IHRoaXMudGFic2V0U2VydmljZS50YWJJbmRleGVzRXF1YWwoXG4gICAgICAgIGJ1dHRvbi50YWJJbmRleCxcbiAgICAgICAgYWN0aXZlSW5kZXhcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgVUkgYW5kIHN0YXRlIG9mIHRoZSB0YWJzZXQgY29tcG9uZW50IGFmdGVyIHRoZSB0YWIgaW5kZXggb3JcbiAgICogdGFiIGNvbXBvbmVudHMgaGF2ZSBjaGFuZ2VkLlxuICAgKiBAcGFyYW0gYWN0aXZlSW5kZXggVGhlIGN1cnJlbnRseSBhY3RpdmUgdGFiIGluZGV4LlxuICAgKiBAcGFyYW0gcmVnZW5lcmF0ZVRhYkJ1dHRvbnMgSW5kaWNhdGVzIGlmIHRhYiBidXR0b24gdmlldyBtb2RlbHMgc2hvdWxkIGJlIHJlZ2VuZXJhdGVkLlxuICAgKiBTZXR0aW5nIHRoaXMgdmFsdWUgdG8gYGZhbHNlYCB3aWxsIHNpbXBseSB1cGRhdGUgdGhlIGV4aXN0aW5nIHRhYiBidXR0b25zLiBTZXR0aW5nIHRoaXMgdmFsdWVcbiAgICogdG8gYHRydWVgIGlzIG9ubHkgbmVjZXNzYXJ5IHdoZW4gdGhlIHVuZGVybHlpbmcgdGFiIGNvbXBvbmVudHMgaGF2ZSBjaGFuZ2VkIGFuZCB0aGUgdGFiXG4gICAqIGJ1dHRvbnMgbXVzdCByZWZsZWN0IHRob3NlIGNoYW5nZXMuXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZVRhYnNldENvbXBvbmVudChcbiAgICBhY3RpdmVJbmRleDogU2t5VGFiSW5kZXgsXG4gICAgcmVnZW5lcmF0ZVRhYkJ1dHRvbnMgPSBmYWxzZVxuICApOiB2b2lkIHtcbiAgICAvLyBBY3RpdmF0ZS9kZWFjdGl2YXRlIHRhYiBjb21wb25lbnRzLlxuICAgIHRoaXMudGFicy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgIHRoaXMudGFic2V0U2VydmljZS50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCBhY3RpdmVJbmRleClcbiAgICAgICAgPyB0YWIuYWN0aXZhdGUoKVxuICAgICAgICA6IHRhYi5kZWFjdGl2YXRlKCk7XG4gICAgfSk7XG5cbiAgICAvLyBVcGRhdGUgdGhlIHRhYiBidXR0b24gbW9kZWxzLlxuICAgIGlmIChyZWdlbmVyYXRlVGFiQnV0dG9ucyB8fCAhdGhpcy50YWJCdXR0b25zLmxlbmd0aCkge1xuICAgICAgdGhpcy50YWJCdXR0b25zID0gdGhpcy5jcmVhdGVUYWJCdXR0b25zKGFjdGl2ZUluZGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVUYWJCdXR0b25zKGFjdGl2ZUluZGV4KTtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGhlIGRyb3Bkb3duIHRyaWdnZXIgYnV0dG9uIHRleHQuXG4gICAgdGhpcy5kcm9wZG93blRyaWdnZXJCdXR0b25UZXh0ID0gdGhpcy50YWJCdXR0b25zLmZpbmQoKGIpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnRhYnNldFNlcnZpY2UudGFiSW5kZXhlc0VxdWFsKGIudGFiSW5kZXgsIGFjdGl2ZUluZGV4KTtcbiAgICB9KT8uYnV0dG9uVGV4dDtcblxuICAgIC8vIFNldCB0aGUgcXVlcnkgcGFyYW1zIGJhc2VkIG9uIGFjdGl2ZSB0YWIuXG4gICAgaWYgKHRoaXMucGVybWFsaW5rSWQpIHtcbiAgICAgIGNvbnN0IGFjdGl2ZVRhYkNvbXBvbmVudCA9IHRoaXMudGFicy5maW5kKCh0YWIpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFic2V0U2VydmljZS50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCBhY3RpdmVJbmRleCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucGVybWFsaW5rU2VydmljZS5zZXRQYXJhbShcbiAgICAgICAgdGhpcy5wZXJtYWxpbmtJZCxcbiAgICAgICAgYWN0aXZlVGFiQ29tcG9uZW50LnBlcm1hbGlua1ZhbHVlXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFdhaXQgZm9yIHRhYiBidXR0b24gdmlldyBtb2RlbHMgdG8gcmVuZGVyIGJlZm9yZSBnYXVnaW5nIGRpbWVuc2lvbnMuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLmRldGVjdE92ZXJmbG93KCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgLy8gRW1pdCB0aGUgbmV3IGFjdGl2ZSBpbmRleCB2YWx1ZSB0byBjb25zdW1lcnMuXG4gICAgaWYgKHRoaXMubGFzdEFjdGl2ZVRhYkluZGV4ICE9PSBhY3RpdmVJbmRleCkge1xuICAgICAgdGhpcy5sYXN0QWN0aXZlVGFiSW5kZXggPSBhY3RpdmVJbmRleDtcbiAgICAgIHRoaXMuYWN0aXZlQ2hhbmdlLmVtaXQoYWN0aXZlSW5kZXgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNreS10YWJzZXRcIlxuICByb2xlPVwidGFibGlzdFwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgW25nQ2xhc3NdPVwiXG4gICAgJ3NreS10YWJzZXQtbW9kZS0nICsgdGFiRGlzcGxheU1vZGUgKyAnIHNreS10YWJzZXQtc3R5bGUtJyArIHRhYlN0eWxlXG4gIFwiXG4gICh3aW5kb3c6cmVzaXplKT1cIm9uV2luZG93UmVzaXplKClcIlxuPlxuICA8c3BhbiBjbGFzcz1cInNreS10YWJzZXQtZHJvcGRvd25cIj5cbiAgICA8c2t5LWRyb3Bkb3duICpuZ0lmPVwidGFiRGlzcGxheU1vZGUgPT09ICdkcm9wZG93bidcIiBidXR0b25UeXBlPVwidGFiXCI+XG4gICAgICA8c2t5LWRyb3Bkb3duLWJ1dHRvbj5cbiAgICAgICAge3sgZHJvcGRvd25UcmlnZ2VyQnV0dG9uVGV4dCB9fVxuICAgICAgPC9za3ktZHJvcGRvd24tYnV0dG9uPlxuICAgICAgPHNreS1kcm9wZG93bi1tZW51PlxuICAgICAgICA8c2t5LWRyb3Bkb3duLWl0ZW1cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFiQnV0dG9uIG9mIHRhYkJ1dHRvbnNcIlxuICAgICAgICAgIGNsYXNzPVwic2t5LXRhYi1kcm9wZG93bi1tZW51LWl0ZW1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJza3ktdGFiLWRyb3Bkb3duLWl0ZW1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnc2t5LXRhYi1kcm9wZG93bi1pdGVtLXNlbGVjdGVkJzogdGFiQnV0dG9uLmFjdGl2ZVxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHRhYkJ1dHRvblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogdGFiQnV0dG9uXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NreS1kcm9wZG93bi1pdGVtPlxuICAgICAgPC9za3ktZHJvcGRvd24tbWVudT5cbiAgICA8L3NreS1kcm9wZG93bj5cbiAgPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cInNreS10YWJzZXQtdGFic1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYkJ1dHRvbiBvZiB0YWJCdXR0b25zXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgdGFiQnV0dG9uVGVtcGxhdGU7XG4gICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgJGltcGxpY2l0OiB0YWJCdXR0b25cbiAgICAgICAgICB9XG4gICAgICAgIFwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJza3ktdGFic2V0LWJ0bnNcIj5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cIm5ld1RhYi5vYnNlcnZlcnMubGVuZ3RoID4gMFwiXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1pY29uIHNreS10YWJzZXQtYnRuLW5ldyBza3ktbWFyZ2luLWlubGluZS1jb21wYWN0XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfdGFiX2FkZCcgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LW1hcmdpbi1pbmxpbmUtc20nOiAnbW9kZXJuJ1xuICAgICAgfVwiXG4gICAgICAoY2xpY2spPVwib25OZXdUYWJDbGljaygpXCJcbiAgICA+XG4gICAgICA8c2t5LWljb24gaWNvbj1cInBsdXMtY2lyY2xlXCIgc2l6ZT1cImxnXCI+IDwvc2t5LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJvcGVuVGFiLm9ic2VydmVycy5sZW5ndGggPiAwXCJcbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWljb24gc2t5LXRhYnNldC1idG4tb3BlbiBza3ktbWFyZ2luLWlubGluZS1jb21wYWN0XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfdGFiX29wZW4nIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgJ3NreS1tYXJnaW4taW5saW5lLXNtJzogJ21vZGVybidcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cIm9uT3BlblRhYkNsaWNrKClcIlxuICAgID5cbiAgICAgIDxza3ktaWNvbiBpY29uPVwiZm9sZGVyLW9wZW4tb1wiIHNpemU9XCJsZ1wiPiA8L3NreS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L3NwYW4+XG48L2Rpdj5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuPG5nLXRlbXBsYXRlIGxldC10YWJCdXR0b24gI3RhYkJ1dHRvblRlbXBsYXRlPlxuICA8c2t5LXRhYi1idXR0b25cbiAgICBbYWN0aXZlXT1cInRhYkJ1dHRvbi5hY3RpdmVcIlxuICAgIFthcmlhQ29udHJvbHNdPVwidGFiQnV0dG9uLmFyaWFDb250cm9sc1wiXG4gICAgW2J1dHRvbkhyZWZdPVwidGFiQnV0dG9uLmJ1dHRvbkhyZWZcIlxuICAgIFtidXR0b25JZF09XCJ0YWJCdXR0b24uYnV0dG9uSWRcIlxuICAgIFtidXR0b25UZXh0XT1cInRhYkJ1dHRvbi5idXR0b25UZXh0XCJcbiAgICBbYnV0dG9uVGV4dENvdW50XT1cInRhYkJ1dHRvbi5idXR0b25UZXh0Q291bnRcIlxuICAgIFtjbG9zZWFibGVdPVwidGFiQnV0dG9uLmNsb3NlYWJsZVwiXG4gICAgW2Rpc2FibGVkXT1cInRhYkJ1dHRvbi5kaXNhYmxlZFwiXG4gICAgW3RhYlN0eWxlXT1cInRhYlN0eWxlXCJcbiAgICAoYnV0dG9uQ2xpY2spPVwib25UYWJCdXR0b25DbGljayh0YWJCdXR0b24pXCJcbiAgICAoY2xvc2VDbGljayk9XCJvblRhYkNsb3NlQ2xpY2sodGFiQnV0dG9uKVwiXG4gID48L3NreS10YWItYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -102,9 +102,9 @@ export class SkyTabsetService {
102
102
  return this.tabIndexesEqual(tabIndex, this.currentActiveTabIndex);
103
103
  }
104
104
  }
105
- SkyTabsetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
106
- SkyTabsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetService });
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetService, decorators: [{
105
+ SkyTabsetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
106
+ SkyTabsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetService });
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetService, decorators: [{
108
108
  type: Injectable
109
109
  }] });
110
110
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdGFicy90YWJzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUs1RDs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFVUywwQkFBcUIsR0FBZ0IsQ0FBQyxDQUFDO1FBRXRDLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQWMsQ0FBQyxDQUFDLENBQUM7UUFFdEQsMkJBQXNCLEdBQzVCLElBQUksT0FBTyxFQUFzQyxDQUFDO1FBRTVDLFNBQUksR0FFTixFQUFFLENBQUM7UUFFRCxlQUFVLEdBQUcsQ0FBQyxDQUFDO0tBbUh4QjtJQXRJQyxJQUFXLHFCQUFxQjtRQUM5QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBZUQ7O09BRUc7SUFDSSxpQkFBaUIsQ0FDdEIsS0FBa0IsRUFDbEIsTUFBTSxHQUFHO1FBQ1AsVUFBVSxFQUFFLElBQUk7S0FDakI7UUFFRCxJQUNFLEtBQUssS0FBSyxTQUFTO1lBQ25CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEVBQ3hEO1lBQ0EsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztZQUNuQywwQkFBMEI7WUFDMUIsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFO2dCQUNyQixJQUFJLENBQUMs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QUMscUJBQXFCLENBQUMsQ0FBQztJQUNwRSxDQUFDOzs2R0F0SVUsZ0JBQWdCO2lIQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreVRhYkluZGV4IH0gZnJvbSAnLi90YWItaW5kZXgnO1xuaW1wb3J0IHsgU2t5VGFic2V0QWN0aXZlVGFiVW5yZWdpc3RlcmVkQXJncyB9IGZyb20gJy4vdGFic2V0LWFjdGl2ZS10YWItdW5yZWdpc3RlcmVkLWFyZ3MnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5VGFic2V0U2VydmljZSB7XG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiVW5yZWdpc3RlcmVkKCk6IE9ic2VydmFibGU8U2t5VGFic2V0QWN0aXZlVGFiVW5yZWdpc3RlcmVkQXJncz4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVUYWJVbnJlZ2lzdGVyZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGl2ZVRhYkluZGV4KCk6IE9ic2VydmFibGU8U2t5VGFiSW5kZXg+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlVGFiSW5kZXguYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgY3VycmVudEFjdGl2ZVRhYkluZGV4OiBTa3lUYWJJbmRleCA9IDA7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlVGFiSW5kZXggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreVRhYkluZGV4PigwKTtcblxuICBwcml2YXRlIF9hY3RpdmVUYWJVbnJlZ2lzdGVyZWQgPVxuICAgIG5ldyBTdWJqZWN0PFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3M+KCk7XG5cbiAgcHJpdmF0ZSB0YWJzOiB7XG4gICAgdGFiSW5kZXg6IFNreVRhYkluZGV4O1xuICB9W10gPSBbXTtcblxuICBwcml2YXRlIHRhYkNvdW50ZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY3RpdmUgdGFiIGJ5IGl0cyB1bmlxdWUgYHRhYkluZGV4YCBwcm9wZXJ0eS5cbiAgICovXG4gIHB1YmxpYyBzZXRBY3RpdmVUYWJJbmRleChcbiAgICB2YWx1ZTogU2t5VGFiSW5kZXgsXG4gICAgY29uZmlnID0ge1xuICAgICAgZW1pdENoYW5nZTogdHJ1ZSxcbiAgICB9XG4gICk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICF0aGlzLnRhYkluZGV4ZXNFcXVhbCh2YWx1ZSwgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXgpXG4gICAgKSB7XG4gICAgICB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleCA9IHZhbHVlO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChjb25maWcuZW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLl9hY3RpdmVUYWJJbmRleC5uZXh0KHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlclRhYih0YWJJbmRleD86IFNreVRhYkluZGV4KTogU2t5VGFiSW5kZXgge1xuICAgIGlmICh0YWJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YWJJbmRleCA9IHRoaXMudGFiQ291bnRlcjtcbiAgICAgIHRoaXMudGFiQ291bnRlcisrO1xuICAgIH1cblxuICAgIHRoaXMudGFicy5wdXNoKHsgdGFiSW5kZXggfSk7XG5cbiAgICByZXR1cm4gdGFiSW5kZXg7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVGFiSW5kZXgoXG4gICAgY3VycmVudFRhYkluZGV4OiBTa3lUYWJJbmRleCxcbiAgICBuZXdUYWJJbmRleDogU2t5VGFiSW5kZXhcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLnRhYnMuZmluZCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCBjdXJyZW50VGFiSW5kZXgpXG4gICAgKTtcbiAgICBmb3VuZC50YWJJbmRleCA9IG5ld1RhYkluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyVGFiKHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy50YWJzLmZpbmRJbmRleCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0YWJJbmRleClcbiAgICApO1xuXG4gICAgLy8gTm90aWZ5IHRoZSB0YWJzZXQgY29tcG9uZW50IHdoZW4gYW4gYWN0aXZlIHRhYiBpcyB1bnJlZ2lzdGVyZWQuXG4gICAgaWYgKHRoaXMuaXNUYWJJbmRleEFjdGl2ZSh0aGlzLnRhYnNbaW5kZXhdLnRhYkluZGV4KSkge1xuICAgICAgdGhpcy5fYWN0aXZlVGFiVW5yZWdpc3RlcmVkLm5leHQoe1xuICAgICAgICBhcnJheUluZGV4OiBpbmRleCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudGFicy5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGFsbCB0YWIgY29tcG9uZW50cyBhdCBvbmNlLlxuICAgKi9cbiAgcHVibGljIHVucmVnaXN0ZXJBbGwoKTogdm9pZCB7XG4gICAgdGhpcy50YWJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIHRhYiBpbmRleGVzIGFuZCByZXR1cm5zIGB0cnVlYCBpZiB0aGV5IGFyZSBlcXVhbC5cbiAgICovXG4gIHB1YmxpYyB0YWJJbmRleGVzRXF1YWwoXG4gICAgdGFiSW5kZXgxOiBTa3lUYWJJbmRleCxcbiAgICB0YWJJbmRleDI6IFNreVRhYkluZGV4XG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0YWJJbmRleDEgPT09IHRhYkluZGV4MiB8fCArdGFiSW5kZXgxID09PSArdGFiSW5kZXgyO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIGlmIGEgcHJvdmlkZWQgdGFiIGluZGV4IGlzIHJlZ2lzdGVyZWQuXG4gICAqL1xuICBwdWJsaWMgaXNWYWxpZFRhYkluZGV4KHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhYnMuc29tZSgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0YWJJbmRleClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlcyB0aGUgZmlyc3QgcmVnaXN0ZXJlZCB0YWIuXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVGaXJzdFRhYigpOiBTa3lUYWJJbmRleCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZmlyc3RUYWJJbmRleCA9IHRoaXMudGFic1swXSAmJiB0aGlzLnRhYnNbMF0udGFiSW5kZXg7XG4gICAgaWYgKGZpcnN0VGFiSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zZXRBY3RpdmVUYWJJbmRleChmaXJzdFRhYkluZGV4KTtcbiAgICAgIHJldHVybiBmaXJzdFRhYkluZGV4O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgdGhlIG5leHQgcmVnaXN0ZXJlZCB0YWIsIG9yIHRoZSBwcmV2aW91cyBvbmUgYmFzZWQgb24gYSBwcm92aWRlZCBhcnJheSBpbmRleC5cbiAgICovXG4gIHB1YmxpYyBhY3RpdmF0ZU5lYXJlc3RUYWIoYXJyYXlJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbmV3QWN0aXZlVGFiID0gdGhpcy50YWJzW2FycmF5SW5kZXhdIHx8IHRoaXMudGFic1thcnJheUluZGV4IC0gMV07XG4gICAgaWYgKG5ld0FjdGl2ZVRhYikge1xuICAgICAgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXggPSBuZXdBY3RpdmVUYWIudGFiSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1RhYkluZGV4QWN0aXZlKHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhYkluZGV4ZXNFcXVhbCh0YWJJbmRleCwgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXgpO1xuICB9XG59XG4iXX0=
@@ -64,9 +64,9 @@ export class SkyVerticalTabMediaQueryService {
64
64
  this.currentSubject.complete();
65
65
  }
66
66
  }
67
- SkyVerticalTabMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyVerticalTabMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
68
- SkyVerticalTabMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyVerticalTabMediaQueryService });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyVerticalTabMediaQueryService, decorators: [{
67
+ SkyVerticalTabMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
68
+ SkyVerticalTabMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabMediaQueryService });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabMediaQueryService, decorators: [{
70
70
  type: Injectable
71
71
  }], ctorParameters: function () { return []; } });
72
72
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFiLW1lZGlhLXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdmVydGljYWwtdGFic2V0L3ZlcnRpY2FsLXRhYi1tZWRpYS1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUF5QixNQUFNLGFBQWEsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7QUFFckQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sK0JBQStCO0lBVzFDO1FBTlEsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FDMUMsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO1FBRU0sYUFBUSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUd4QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQVpELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQVlNLFNBQVMsQ0FBQyxRQUErQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQ25DLElBQUksRUFBRSxDQUFDLFdBQWdDLEVBQUUsRUFBRTtnQkFDekMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3hCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0scUJBQXFCLENBQUMsS0FBYTtRQUN4QyxJQUFJLFVBQStCLENBQUM7UUFFcEMsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQy9ELFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7U0FDckM7YUFBTSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDdEUsVUFBVSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztTQUNyQzthQUFNLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUN0RSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1NBQ3JDO2FBQU07WUFDTCxVQUFVLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSx1QkFBdUIsQ0FDNUIsS0FBYSxFQUNiLFVBQStCO1FBRS9CLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQ25DLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBRW5DLFFBQVEsVUFBVSxFQUFFO1lBQ2xCLEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLE9BQU8sS0FBSyxJQUFJLHFCQUFxQixDQUFDO2FBQ3ZDO1lBQ0QsS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0IsT0FBTyxLQUFLLElBQUkscUJBQXFCLElBQUksS0FBSyxJQUFJLHFCQUFxQixDQUFDO2FBQ3pFO1lBQ0QsS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0IsT0FBTyxLQUFLLElBQUkscUJBQXFCLElBQUksS0FBSyxJQUFJLHFCQUFxQixDQUFDO2FBQ3pFO1lBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ1AsT0FBTyxLQUFLLElBQUkscUJBQXFCLENBQUM7YUFDdkM7U0FDRjtJQUNILENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzs0SEFyRVUsK0JBQStCO2dJQUEvQiwrQkFBK0I7MkZBQS9CLCtCQUErQjtrQkFEM0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreU1lZGlhQnJlYWtwb2ludHMsIFNreU1lZGlhUXVlcnlMaXN0ZW5lciB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVZlcnRpY2FsVGFiTWVkaWFRdWVyeVNlcnZpY2Uge1xuICBwdWJsaWMgZ2V0IGN1cnJlbnQoKTogU2t5TWVkaWFCcmVha3BvaW50cyB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQ7XG4gIH1cblxuICBwcml2YXRlIGN1cnJlbnRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTa3lNZWRpYUJyZWFrcG9pbnRzPihcbiAgICB0aGlzLmN1cnJlbnRcbiAgKTtcblxuICBwcml2YXRlIF9jdXJyZW50ID0gU2t5TWVkaWFCcmVha3BvaW50cy54cztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmN1cnJlbnRTdWJqZWN0Lm5leHQodGhpcy5fY3VycmVudCk7XG4gIH1cblxuICBwdWJsaWMgc3Vic2NyaWJlKGxpc3RlbmVyOiBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdWJqZWN0LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoYnJlYWtwb2ludHM6IFNreU1lZGlhQnJlYWtwb2ludHMpID0+IHtcbiAgICAgICAgbGlzdGVuZXIoYnJlYWtwb2ludHMpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRCcmVha3BvaW50Rm9yV2lkdGgod2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgIGxldCBicmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzO1xuXG4gICAgaWYgKHRoaXMuaXNXaWR0aFdpdGhpbkJyZWFrcGlvbnQod2lkdGgsIFNreU1lZGlhQnJlYWtwb2ludHMueHMpKSB7XG4gICAgICBicmVha3BvaW50ID0gU2t5TWVkaWFCcmVha3BvaW50cy54cztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNXaWR0aFdpdGhpbkJyZWFrcGlvbnQod2lkdGgsIFNreU1lZGlhQnJlYWtwb2ludHMuc20pKSB7XG4gICAgICBicmVha3BvaW50ID0gU2t5TWVkaWFCcmVha3BvaW50cy5zbTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNXaWR0aFdpdGhpbkJyZWFrcGlvbnQod2lkdGgsIFNreU1lZGlhQnJlYWtwb2ludHMubWQpKSB7XG4gICAgICBicmVha3BvaW50ID0gU2t5TWVkaWFCcmVha3BvaW50cy5tZDtcbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWtwb2ludCA9IFNreU1lZGlhQnJlYWtwb2ludHMubGc7XG4gICAgfVxuXG4gICAgdGhpcy5fY3VycmVudCA9IGJyZWFrcG9pbnQ7XG4gICAgdGhpcy5jdXJyZW50U3ViamVjdC5uZXh0KHRoaXMuX2N1cnJlbnQpO1xuICB9XG5cbiAgcHVibGljIGlzV2lkdGhXaXRoaW5CcmVha3Bpb250KFxuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgYnJlYWtwb2ludDogU2t5TWVkaWFCcmVha3BvaW50c1xuICApOiBib29sZWFuIHtcbiAgICBjb25zdCB4c0JyZWFrcG9pbnRNYXhQaXhlbHMgPSA3Njc7XG4gICAgY29uc3Qgc21CcmVha3BvaW50TWluUGl4ZWxzID0gNzY4O1xuICAgIGNvbnN0IHNtQnJlYWtwb2ludE1heFBpeGVscyA9IDk5MTtcbiAgICBjb25zdCBtZEJyZWFrcG9pbnRNaW5QaXhlbHMgPSA5OTI7XG4gICAgY29uc3QgbWRCcmVha3BvaW50TWF4UGl4ZWxzID0gMTE5OTtcbiAgICBjb25zdCBsZ0JyZWFrcG9pbnRNaW5QaXhlbHMgPSAxMjAwO1xuXG4gICAgc3dpdGNoIChicmVha3BvaW50KSB7XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMueHM6IHtcbiAgICAgICAgcmV0dXJuIHdpZHRoIDw9IHhzQnJlYWtwb2ludE1heFBpeGVscztcbiAgICAgIH1cbiAgICAgIGNhc2UgU2t5TWVkaWFCcmVha3BvaW50cy5zbToge1xuICAgICAgICByZXR1cm4gd2lkdGggPj0gc21CcmVha3BvaW50TWluUGl4ZWxzICYmIHdpZHRoIDw9IHNtQnJlYWtwb2ludE1heFBpeGVscztcbiAgICAgIH1cbiAgICAgIGNhc2UgU2t5TWVkaWFCcmVha3BvaW50cy5tZDoge1xuICAgICAgICByZXR1cm4gd2lkdGggPj0gbWRCcmVha3BvaW50TWluUGl4ZWxzICYmIHdpZHRoIDw9IG1kQnJlYWtwb2ludE1heFBpeGVscztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIHdpZHRoID49IGxnQnJlYWtwb2ludE1pblBpeGVscztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRTdWJqZWN0LmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -9,8 +9,8 @@ import * as i0 from "@angular/core";
9
9
  import * as i1 from "./vertical-tabset-adapter.service";
10
10
  import * as i2 from "./vertical-tabset.service";
11
11
  import * as i3 from "./vertical-tab-media-query.service";
12
- import * as i4 from "@skyux/indicators";
13
- import * as i5 from "@angular/common";
12
+ import * as i4 from "@angular/common";
13
+ import * as i5 from "@skyux/indicators";
14
14
  import * as i6 from "@skyux/core";
15
15
  let nextId = 0;
16
16
  export class SkyVerticalTabComponent {
@@ -152,15 +152,15 @@ export class SkyVerticalTabComponent {
152
152
  this.changeRef.markForCheck();
153
153
  }
154
154
  }
155
- SkyVerticalTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyVerticalTabComponent, deps: [{ token: i1.SkyVerticalTabsetAdapterService }, { token: i0.ChangeDetectorRef }, { token: i2.SkyVerticalTabsetService }, { token: i3.SkyVerticalTabMediaQueryService }], target: i0.ɵɵFactoryTarget.Component });
156
- SkyVerticalTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyVerticalTabComponent, selector: "sky-vertical-tab", inputs: { active: "active", ariaControls: "ariaControls", ariaRole: "ariaRole", disabled: "disabled", errorIndicator: "errorIndicator", tabHeaderCount: "tabHeaderCount", tabHeading: "tabHeading", showTabRightArrow: "showTabRightArrow", tabId: "tabId" }, host: { listeners: { "window:resize": "onWindowResize()" } }, providers: [
155
+ SkyVerticalTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabComponent, deps: [{ token: i1.SkyVerticalTabsetAdapterService }, { token: i0.ChangeDetectorRef }, { token: i2.SkyVerticalTabsetService }, { token: i3.SkyVerticalTabMediaQueryService }], target: i0.ɵɵFactoryTarget.Component });
156
+ SkyVerticalTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyVerticalTabComponent, selector: "sky-vertical-tab", inputs: { active: "active", ariaControls: "ariaControls", ariaRole: "ariaRole", disabled: "disabled", errorIndicator: "errorIndicator", tabHeaderCount: "tabHeaderCount", tabHeading: "tabHeading", showTabRightArrow: "showTabRightArrow", tabId: "tabId" }, host: { listeners: { "window:resize": "onWindowResize()" } }, providers: [
157
157
  SkyVerticalTabMediaQueryService,
158
158
  {
159
159
  provide: SkyMediaQueryService,
160
160
  useExisting: SkyVerticalTabMediaQueryService,
161
161
  },
162
- ], viewQueries: [{ propertyName: "tabContent", first: true, predicate: ["tabContentWrapper"], descendants: true }], ngImport: i0, template: "<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"isMobile ? null : ariaControls || tabContentPane.id\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tab-disabled': disabled,\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"activateTab()\"\n (keyup)=\"onTabButtonKeyUp($event)\"\n>\n <div class=\"sky-vertical-tab-display\">\n <div class=\"sky-vertical-tab-heading\">\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n <span\n class=\"sky-vertical-tab-count\"\n *ngIf=\"tabHeaderCount || tabHeaderCount === 0\"\n >\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator\n *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n <sky-icon\n *ngIf=\"showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div #tabContentWrapper>\n <div\n class=\"sky-vertical-tab-content-pane\"\n role=\"tabpanel\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"tabId\"\n [ngClass]=\"{ 'sky-vertical-tab-hidden': !active }\"\n #tabContentPane\n >\n <ng-content></ng-content>\n\n <div></div>\n </div>\n</div>\n", styles: [".sky-vertical-tab{cursor:pointer;padding:7px 0 7px 10px;margin:5px 0 5px 10px;display:flex;text-decoration:none}.sky-vertical-tab:not(.sky-deemphasized){color:#212327}.sky-vertical-tab:hover{background-color:#eeeeef}.sky-vertical-tab:focus-visible{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:#979ba2}.sky-vertical-tab-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tab-disabled{cursor:not-allowed;pointer-events:none}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}:host-context(.sky-theme-modern) .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 10px;margin:10px 0 20px 10px}:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:9px;border-left:1px solid #00b4f1}:host-context(.sky-theme-modern) .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-vertical-tab:focus:active:hover{outline:none;background:none}:host-context(.sky-theme-modern) .sky-vertical-tab:active{border-left:3px solid #00b4f1;color:#212327;padding-left:7px}:host-context(.sky-theme-modern) .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}:host-context(.sky-theme-modern) .sky-vertical-tab-active{background:none;color:#212327;padding-left:7px;border-left:3px solid #1870B8}.sky-theme-modern .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 10px;margin:10px 0 20px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:9px;border-left:1px solid #00b4f1}.sky-theme-modern .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-vertical-tab:focus:active:hover{outline:none;background:none}.sky-theme-modern .sky-vertical-tab:active{border-left:3px solid #00b4f1;color:#212327;padding-left:7px}.sky-theme-modern .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}.sky-theme-modern .sky-vertical-tab-active{background:none;color:#212327;padding-left:7px;border-left:3px solid #1870B8}\n"], components: [{ type: i4.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }, { type: i4.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.λ2, selector: "[skyId]", exportAs: ["skyId"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyVerticalTabComponent, decorators: [{
162
+ ], viewQueries: [{ propertyName: "tabContent", first: true, predicate: ["tabContentWrapper"], descendants: true }], ngImport: i0, template: "<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"isMobile ? null : ariaControls || tabContentPane.id\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tab-disabled': disabled,\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"activateTab()\"\n (keyup)=\"onTabButtonKeyUp($event)\"\n>\n <div class=\"sky-vertical-tab-display\">\n <div class=\"sky-vertical-tab-heading\">\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n <span\n class=\"sky-vertical-tab-count\"\n *ngIf=\"tabHeaderCount || tabHeaderCount === 0\"\n >\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator\n *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n <sky-icon\n *ngIf=\"showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div #tabContentWrapper>\n <div\n class=\"sky-vertical-tab-content-pane\"\n role=\"tabpanel\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"tabId\"\n [ngClass]=\"{ 'sky-vertical-tab-hidden': !active }\"\n #tabContentPane\n >\n <ng-content></ng-content>\n\n <div></div>\n </div>\n</div>\n", styles: [".sky-vertical-tab{cursor:pointer;padding:7px 0 7px 10px;margin:5px 0 5px 10px;display:flex;text-decoration:none}.sky-vertical-tab:not(.sky-deemphasized){color:#212327}.sky-vertical-tab:hover{background-color:#eeeeef}.sky-vertical-tab:focus-visible{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:#979ba2}.sky-vertical-tab-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tab-disabled{cursor:not-allowed;pointer-events:none}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}:host-context(.sky-theme-modern) .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 10px;margin:10px 0 20px 10px}:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:9px;border-left:1px solid #00b4f1}:host-context(.sky-theme-modern) .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-vertical-tab:focus:active:hover{outline:none;background:none}:host-context(.sky-theme-modern) .sky-vertical-tab:active{border-left:3px solid #00b4f1;color:#212327;padding-left:7px}:host-context(.sky-theme-modern) .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}:host-context(.sky-theme-modern) .sky-vertical-tab-active{background:none;color:#212327;padding-left:7px;border-left:3px solid #1870B8}.sky-theme-modern .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 10px;margin:10px 0 20px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:9px;border-left:1px solid #00b4f1}.sky-theme-modern .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-vertical-tab:focus:active:hover{outline:none;background:none}.sky-theme-modern .sky-vertical-tab:active{border-left:3px solid #00b4f1;color:#212327;padding-left:7px}.sky-theme-modern .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}.sky-theme-modern .sky-vertical-tab-active{background:none;color:#212327;padding-left:7px;border-left:3px solid #1870B8}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i6.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i5.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabComponent, decorators: [{
164
164
  type: Component,
165
165
  args: [{ selector: 'sky-vertical-tab', providers: [
166
166
  SkyVerticalTabMediaQueryService,
@@ -40,9 +40,9 @@ export class SkyVerticalTabsetAdapterService {
40
40
  this.renderer.addClass(nativeEl, newClass);
41
41
  }
42
42
  }
43
- SkyVerticalTabsetAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyVerticalTabsetAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
44
- SkyVerticalTabsetAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyVerticalTabsetAdapterService });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyVerticalTabsetAdapterService, decorators: [{
43
+ SkyVerticalTabsetAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
44
+ SkyVerticalTabsetAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetAdapterService });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetAdapterService, decorators: [{
46
46
  type: Injectable
47
47
  }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
48
48
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsVUFBVSxFQUVWLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR2xELE1BQU0sT0FBTywrQkFBK0I7SUFHMUMsWUFBb0IsZUFBaUM7UUFBakMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxRQUFRLENBQUMsVUFBc0I7UUFDcEMsT0FBTyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUM5QyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsT0FBbUI7UUFDM0MsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxrQkFBa0IsQ0FDdkIsT0FBbUIsRUFDbkIsVUFBK0I7UUFFL0IsTUFBTSxRQUFRLEdBQWdCLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFFcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFFbkUsSUFBSSxRQUFnQixDQUFDO1FBRXJCLFFBQVEsVUFBVSxFQUFFO1lBQ2xCLEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLFFBQVEsR0FBRyw2QkFBNkIsQ0FBQztnQkFDekMsTUFBTTthQUNQO1lBQ0QsS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0IsUUFBUSxHQUFHLDZCQUE2QixDQUFDO2dCQUN6QyxNQUFNO2FBQ1A7WUFDRCxLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixRQUFRLEdBQUcsNkJBQTZCLENBQUM7Z0JBQ3pDLE1BQU07YUFDUDtZQUNELE9BQU8sQ0FBQyxDQUFDO2dCQUNQLFFBQVEsR0FBRyw2QkFBNkIsQ0FBQztnQkFDekMsTUFBTTthQUNQO1NBQ0Y7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7NEhBaERVLCtCQUErQjtnSUFBL0IsK0JBQStCOzJGQUEvQiwrQkFBK0I7a0JBRDNDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBSZW5kZXJlcjIsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TWVkaWFCcmVha3BvaW50cyB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVZlcnRpY2FsVGFic2V0QWRhcHRlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIpIHtcbiAgICB0aGlzLnJlbmRlcmVyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGljIGdldFdpZHRoKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiBudW1iZXIge1xuICAgIHJldHVybiBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsVG9Db250ZW50VG9wKGVsZW1lbnQ6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRSZXNwb25zaXZlQ2xhc3MoXG4gICAgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBicmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IG5hdGl2ZUVsOiBIVE1MRWxlbWVudCA9IGVsZW1lbnQubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXIteHMnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXNtJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhuYXRpdmVFbCwgJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1tZCcpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItbGcnKTtcblxuICAgIGxldCBuZXdDbGFzczogc3RyaW5nO1xuXG4gICAgc3dpdGNoIChicmVha3BvaW50KSB7XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMueHM6IHtcbiAgICAgICAgbmV3Q2xhc3MgPSAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXhzJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMuc206IHtcbiAgICAgICAgbmV3Q2xhc3MgPSAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXNtJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMubWQ6IHtcbiAgICAgICAgbmV3Q2xhc3MgPSAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLW1kJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1sZyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobmF0aXZlRWwsIG5ld0NsYXNzKTtcbiAgfVxufVxuIl19
@@ -6,9 +6,9 @@ import { SkyVerticalTabComponent } from './vertical-tab.component';
6
6
  import { SkyVerticalTabsetService } from './vertical-tabset.service';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "./vertical-tabset.service";
9
- import * as i2 from "@skyux/indicators";
10
- import * as i3 from "@angular/common";
11
- import * as i4 from "@skyux/core";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "@skyux/core";
11
+ import * as i4 from "@skyux/indicators";
12
12
  export class SkyVerticalTabsetGroupComponent {
13
13
  constructor(tabService, changeRef) {
14
14
  this.tabService = tabService;
@@ -65,9 +65,9 @@ export class SkyVerticalTabsetGroupComponent {
65
65
  return this.tabs && this.tabs.find((t) => t.active) !== undefined;
66
66
  }
67
67
  }
68
- SkyVerticalTabsetGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyVerticalTabsetGroupComponent, deps: [{ token: i1.SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
69
- SkyVerticalTabsetGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyVerticalTabsetGroupComponent, selector: "sky-vertical-tabset-group", inputs: { disabled: "disabled", groupHeading: "groupHeading", open: "open" }, queries: [{ propertyName: "tabs", predicate: SkyVerticalTabComponent }], ngImport: i0, template: "<div class=\"sky-vertical-tabset-group\">\n <!-- [ngClass] includes font classes for both modern and default styles -->\n <div\n class=\"sky-vertical-tabset-group-header\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-sub-open sky-font-emphasized sky-emphasized':\n subMenuOpen(),\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled,\n 'sky-vertical-tabset-disabled': disabled\n }\"\n [tabIndex]=\"-1\"\n >\n <button\n class=\"sky-padding-even-default\"\n type=\"button\"\n skyId\n [attr.aria-controls]=\"groupContent.id\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggleMenuOpen()\"\n #groupHeadingButton\n >\n {{ groupHeading }}\n <sky-expansion-indicator\n class=\"sky-vertical-tabset-group-expansion-indicator\"\n [direction]=\"open ? 'up' : 'down'\"\n >\n </sky-expansion-indicator>\n </button>\n </div>\n <div\n class=\"sky-vertical-tabset-group-content\"\n role=\"region\"\n skyId\n [attr.labelledby]=\"groupHeadingButton.id\"\n [@skyAnimationSlide]=\"open ? 'down' : 'up'\"\n #groupContent\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sky-vertical-tabset-group{border-bottom:1px solid #e2e3e4;margin:5px 0 5px 5px}.sky-vertical-tabset-group-header button{cursor:pointer;display:flex;justify-content:space-between;border:none;width:100%;text-align:left;background:none}.sky-vertical-tabset-group-content{overflow:hidden;border-top:1px solid #e2e3e4}:host ::ng-deep .sky-vertical-tabset-group-expansion-indicator>button{font-size:14px!important}.sky-vertical-tabset-disabled{cursor:not-allowed;pointer-events:none}:host-context(.sky-theme-modern) .sky-vertical-tabset-group{border:none;margin:10px 0}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-content{border:none;padding-left:25px}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header{position:relative}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}.sky-theme-modern .sky-vertical-tabset-group{border:none;margin:10px 0}.sky-theme-modern .sky-vertical-tabset-group-content{border:none;padding-left:25px}.sky-theme-modern .sky-vertical-tabset-group-header{position:relative}.sky-theme-modern .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}\n"], components: [{ type: i2.λ15, selector: "sky-expansion-indicator", inputs: ["direction"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.λ2, selector: "[skyId]", exportAs: ["skyId"] }], animations: [skyAnimationSlide], changeDetection: i0.ChangeDetectionStrategy.OnPush });
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyVerticalTabsetGroupComponent, decorators: [{
68
+ SkyVerticalTabsetGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetGroupComponent, deps: [{ token: i1.SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
69
+ SkyVerticalTabsetGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyVerticalTabsetGroupComponent, selector: "sky-vertical-tabset-group", inputs: { disabled: "disabled", groupHeading: "groupHeading", open: "open" }, queries: [{ propertyName: "tabs", predicate: SkyVerticalTabComponent }], ngImport: i0, template: "<div class=\"sky-vertical-tabset-group\">\n <!-- [ngClass] includes font classes for both modern and default styles -->\n <div\n class=\"sky-vertical-tabset-group-header\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-sub-open sky-font-emphasized sky-emphasized':\n subMenuOpen(),\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled,\n 'sky-vertical-tabset-disabled': disabled\n }\"\n [tabIndex]=\"-1\"\n >\n <button\n class=\"sky-padding-even-default\"\n type=\"button\"\n skyId\n [attr.aria-controls]=\"groupContent.id\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggleMenuOpen()\"\n #groupHeadingButton\n >\n {{ groupHeading }}\n <sky-expansion-indicator\n class=\"sky-vertical-tabset-group-expansion-indicator\"\n [direction]=\"open ? 'up' : 'down'\"\n >\n </sky-expansion-indicator>\n </button>\n </div>\n <div\n class=\"sky-vertical-tabset-group-content\"\n role=\"region\"\n skyId\n [attr.labelledby]=\"groupHeadingButton.id\"\n [@skyAnimationSlide]=\"open ? 'down' : 'up'\"\n #groupContent\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sky-vertical-tabset-group{border-bottom:1px solid #e2e3e4;margin:5px 0 5px 5px}.sky-vertical-tabset-group-header button{cursor:pointer;display:flex;justify-content:space-between;border:none;width:100%;text-align:left;background:none}.sky-vertical-tabset-group-content{overflow:hidden;border-top:1px solid #e2e3e4}:host ::ng-deep .sky-vertical-tabset-group-expansion-indicator>button{font-size:14px!important}.sky-vertical-tabset-disabled{cursor:not-allowed;pointer-events:none}:host-context(.sky-theme-modern) .sky-vertical-tabset-group{border:none;margin:10px 0}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-content{border:none;padding-left:25px}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header{position:relative}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}.sky-theme-modern .sky-vertical-tabset-group{border:none;margin:10px 0}.sky-theme-modern .sky-vertical-tabset-group-content{border:none;padding-left:25px}.sky-theme-modern .sky-vertical-tabset-group-header{position:relative}.sky-theme-modern .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i4.λ15, selector: "sky-expansion-indicator", inputs: ["direction"] }], animations: [skyAnimationSlide], changeDetection: i0.ChangeDetectionStrategy.OnPush });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetGroupComponent, decorators: [{
71
71
  type: Component,
72
72
  args: [{ selector: 'sky-vertical-tabset-group', changeDetection: ChangeDetectionStrategy.OnPush, animations: [skyAnimationSlide], template: "<div class=\"sky-vertical-tabset-group\">\n <!-- [ngClass] includes font classes for both modern and default styles -->\n <div\n class=\"sky-vertical-tabset-group-header\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-sub-open sky-font-emphasized sky-emphasized':\n subMenuOpen(),\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled,\n 'sky-vertical-tabset-disabled': disabled\n }\"\n [tabIndex]=\"-1\"\n >\n <button\n class=\"sky-padding-even-default\"\n type=\"button\"\n skyId\n [attr.aria-controls]=\"groupContent.id\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggleMenuOpen()\"\n #groupHeadingButton\n >\n {{ groupHeading }}\n <sky-expansion-indicator\n class=\"sky-vertical-tabset-group-expansion-indicator\"\n [direction]=\"open ? 'up' : 'down'\"\n >\n </sky-expansion-indicator>\n </button>\n </div>\n <div\n class=\"sky-vertical-tabset-group-content\"\n role=\"region\"\n skyId\n [attr.labelledby]=\"groupHeadingButton.id\"\n [@skyAnimationSlide]=\"open ? 'down' : 'up'\"\n #groupContent\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sky-vertical-tabset-group{border-bottom:1px solid #e2e3e4;margin:5px 0 5px 5px}.sky-vertical-tabset-group-header button{cursor:pointer;display:flex;justify-content:space-between;border:none;width:100%;text-align:left;background:none}.sky-vertical-tabset-group-content{overflow:hidden;border-top:1px solid #e2e3e4}:host ::ng-deep .sky-vertical-tabset-group-expansion-indicator>button{font-size:14px!important}.sky-vertical-tabset-disabled{cursor:not-allowed;pointer-events:none}:host-context(.sky-theme-modern) .sky-vertical-tabset-group{border:none;margin:10px 0}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-content{border:none;padding-left:25px}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header{position:relative}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}.sky-theme-modern .sky-vertical-tabset-group{border:none;margin:10px 0}.sky-theme-modern .sky-vertical-tabset-group-content{border:none;padding-left:25px}.sky-theme-modern .sky-vertical-tabset-group-header{position:relative}.sky-theme-modern .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}\n"] }]
73
73
  }], ctorParameters: function () { return [{ type: i1.SkyVerticalTabsetService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
@@ -80,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
80
80
  type: ContentChildren,
81
81
  args: [SkyVerticalTabComponent]
82
82
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBU3JFLE1BQU0sT0FBTywrQkFBK0I7SUFvQzFDLFlBQ1UsVUFBb0MsRUFDcEMsU0FBNEI7UUFENUIsZUFBVSxHQUFWLFVBQVUsQ0FBMEI7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFSOUIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXBDLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUU3QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBc0NmLGVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQyxDQUFDLENBQUM7UUFFSyxlQUFVLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLDhGQUE4RjtZQUM5RixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hDLENBQUMsQ0FBQztRQUVLLGNBQVMsR0FBRyxHQUFHLEVBQUU7WUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQyxDQUFDLENBQUM7SUEvQ0MsQ0FBQztJQXpCSjs7O09BR0c7SUFDSCxJQUNXLElBQUksQ0FBQyxLQUFjO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RDLENBQUM7SUFnQk0sUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVTthQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVzthQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVTthQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUN4QjtRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxDQUFDO0lBQ3BFLENBQUM7OzRIQXRFVSwrQkFBK0I7Z0hBQS9CLCtCQUErQixvS0EyQnpCLHVCQUF1Qiw2QkNwRDFDLG1zQ0F5Q0EsazdDRGxCYyxDQUFDLGlCQUFpQixDQUFDOzJGQUVwQiwrQkFBK0I7a0JBUDNDLFNBQVM7K0JBQ0UsMkJBQTJCLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMsaUJBQWlCLENBQUM7K0lBUXhCLFFBQVE7c0JBRGQsS0FBSztnQkFPQyxZQUFZO3NCQURsQixLQUFLO2dCQVFLLElBQUk7c0JBRGQsS0FBSztnQkFVRSxJQUFJO3NCQURYLGVBQWU7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2t5QW5pbWF0aW9uU2xpZGUgfSBmcm9tICdAc2t5dXgvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VmVydGljYWxUYWJDb21wb25lbnQgfSBmcm9tICcuL3ZlcnRpY2FsLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5VmVydGljYWxUYWJzZXRTZXJ2aWNlIH0gZnJvbSAnLi92ZXJ0aWNhbC10YWJzZXQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS12ZXJ0aWNhbC10YWJzZXQtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbc2t5QW5pbWF0aW9uU2xpZGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lWZXJ0aWNhbFRhYnNldEdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgYWJpbGl0eSB0byBleHBhbmQgYW5kIGNvbGxhcHNlIHRoZSBncm91cC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBoZWFkZXIgZm9yIHRoZSBjb2xsYXBzaWJsZSBncm91cCBvZiB0YWJzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdyb3VwSGVhZGluZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29sbGFwc2libGUgZ3JvdXAgaXMgZXhwYW5kZWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG9wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9vcGVuID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmIHRoaXMuX29wZW47XG4gIH1cblxuICBAQ29udGVudENoaWxkcmVuKFNreVZlcnRpY2FsVGFiQ29tcG9uZW50KVxuICBwcml2YXRlIHRhYnM6IFF1ZXJ5TGlzdDxTa3lWZXJ0aWNhbFRhYkNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIG9wZW5CZWZvcmVUYWJzSGlkZGVuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfb3BlbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGFiU2VydmljZTogU2t5VmVydGljYWxUYWJzZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGFiU2VydmljZS5oaWRpbmdUYWJzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUodGhpcy50YWJzSGlkZGVuKTtcblxuICAgIHRoaXMudGFiU2VydmljZS5zaG93aW5nVGFic1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHRoaXMudGFic1Nob3duKTtcblxuICAgIHRoaXMudGFiU2VydmljZS50YWJDbGlja2VkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUodGhpcy50YWJDbGlja2VkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZU1lbnVPcGVuKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJNZW51T3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJzICYmIHRoaXMudGFicy5maW5kKCh0KSA9PiB0LmFjdGl2ZSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyB0YWJDbGlja2VkID0gKCkgPT4ge1xuICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIHB1YmxpYyB0YWJzSGlkZGVuID0gKCkgPT4ge1xuICAgIC8vIHRoaXMgZml4ZXMgYW4gYW5pbWF0aW9uIGJ1ZyB3aXRoIG5nSWYgd2hlbiB0aGUgcGFyZW50IGNvbXBvbmVudCBnb2VzIGZyb20gdmlzaWJsZSB0byBoaWRkZW5cbiAgICB0aGlzLm9wZW5CZWZvcmVUYWJzSGlkZGVuID0gdGhpcy5vcGVuO1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIHB1YmxpYyB0YWJzU2hvd24gPSAoKSA9PiB7XG4gICAgdGhpcy5vcGVuID0gdGhpcy5vcGVuQmVmb3JlVGFic0hpZGRlbjtcbiAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktdmVydGljYWwtdGFic2V0LWdyb3VwXCI+XG4gIDwhLS0gW25nQ2xhc3NdIGluY2x1ZGVzIGZvbnQgY2xhc3NlcyBmb3IgYm90aCBtb2Rlcm4gYW5kIGRlZmF1bHQgc3R5bGVzIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktdmVydGljYWwtdGFic2V0LWdyb3VwLWhlYWRlclwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS12ZXJ0aWNhbC10YWJzZXQtZ3JvdXAtaGVhZGVyLXN1Yi1vcGVuIHNreS1mb250LWVtcGhhc2l6ZWQgc2t5LWVtcGhhc2l6ZWQnOlxuICAgICAgICBzdWJNZW51T3BlbigpLFxuICAgICAgJ3NreS1mb250LWRlZW1waGFzaXplZCc6IGRpc2FibGVkLFxuICAgICAgJ3NreS1kZWVtcGhhc2l6ZWQnOiBkaXNhYmxlZCxcbiAgICAgICdza3ktdmVydGljYWwtdGFic2V0LWRpc2FibGVkJzogZGlzYWJsZWRcbiAgICB9XCJcbiAgICBbdGFiSW5kZXhdPVwiLTFcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJza3ktcGFkZGluZy1ldmVuLWRlZmF1bHRcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBza3lJZFxuICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJncm91cENvbnRlbnQuaWRcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVNZW51T3BlbigpXCJcbiAgICAgICNncm91cEhlYWRpbmdCdXR0b25cbiAgICA+XG4gICAgICB7eyBncm91cEhlYWRpbmcgfX1cbiAgICAgIDxza3ktZXhwYW5zaW9uLWluZGljYXRvclxuICAgICAgICBjbGFzcz1cInNreS12ZXJ0aWNhbC10YWJzZXQtZ3JvdXAtZXhwYW5zaW9uLWluZGljYXRvclwiXG4gICAgICAgIFtkaXJlY3Rpb25dPVwib3BlbiA/ICd1cCcgOiAnZG93bidcIlxuICAgICAgPlxuICAgICAgPC9za3ktZXhwYW5zaW9uLWluZGljYXRvcj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS12ZXJ0aWNhbC10YWJzZXQtZ3JvdXAtY29udGVudFwiXG4gICAgcm9sZT1cInJlZ2lvblwiXG4gICAgc2t5SWRcbiAgICBbYXR0ci5sYWJlbGxlZGJ5XT1cImdyb3VwSGVhZGluZ0J1dHRvbi5pZFwiXG4gICAgW0Bza3lBbmltYXRpb25TbGlkZV09XCJvcGVuID8gJ2Rvd24nIDogJ3VwJ1wiXG4gICAgI2dyb3VwQ29udGVudFxuICA+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBU3JFLE1BQU0sT0FBTywrQkFBK0I7SUFvQzFDLFlBQ1UsVUFBb0MsRUFDcEMsU0FBNEI7UUFENUIsZUFBVSxHQUFWLFVBQVUsQ0FBMEI7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFSOUIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXBDLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUU3QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBc0NmLGVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQyxDQUFDLENBQUM7UUFFSyxlQUFVLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLDhGQUE4RjtZQUM5RixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hDLENBQUMsQ0FBQztRQUVLLGNBQVMsR0FBRyxHQUFHLEVBQUU7WUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQyxDQUFDLENBQUM7SUEvQ0MsQ0FBQztJQXpCSjs7O09BR0c7SUFDSCxJQUNXLElBQUksQ0FBQyxLQUFjO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RDLENBQUM7SUFnQk0sUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVTthQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVzthQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVTthQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUN4QjtRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxDQUFDO0lBQ3BFLENBQUM7OzRIQXRFVSwrQkFBK0I7Z0hBQS9CLCtCQUErQixvS0EyQnpCLHVCQUF1Qiw2QkNwRDFDLG1zQ0F5Q0EsKzlDRGxCYyxDQUFDLGlCQUFpQixDQUFDOzJGQUVwQiwrQkFBK0I7a0JBUDNDLFNBQVM7K0JBQ0UsMkJBQTJCLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMsaUJBQWlCLENBQUM7K0lBUXhCLFFBQVE7c0JBRGQsS0FBSztnQkFPQyxZQUFZO3NCQURsQixLQUFLO2dCQVFLLElBQUk7c0JBRGQsS0FBSztnQkFVRSxJQUFJO3NCQURYLGVBQWU7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2t5QW5pbWF0aW9uU2xpZGUgfSBmcm9tICdAc2t5dXgvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VmVydGljYWxUYWJDb21wb25lbnQgfSBmcm9tICcuL3ZlcnRpY2FsLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5VmVydGljYWxUYWJzZXRTZXJ2aWNlIH0gZnJvbSAnLi92ZXJ0aWNhbC10YWJzZXQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS12ZXJ0aWNhbC10YWJzZXQtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbc2t5QW5pbWF0aW9uU2xpZGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lWZXJ0aWNhbFRhYnNldEdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgYWJpbGl0eSB0byBleHBhbmQgYW5kIGNvbGxhcHNlIHRoZSBncm91cC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBoZWFkZXIgZm9yIHRoZSBjb2xsYXBzaWJsZSBncm91cCBvZiB0YWJzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdyb3VwSGVhZGluZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29sbGFwc2libGUgZ3JvdXAgaXMgZXhwYW5kZWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG9wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9vcGVuID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmIHRoaXMuX29wZW47XG4gIH1cblxuICBAQ29udGVudENoaWxkcmVuKFNreVZlcnRpY2FsVGFiQ29tcG9uZW50KVxuICBwcml2YXRlIHRhYnM6IFF1ZXJ5TGlzdDxTa3lWZXJ0aWNhbFRhYkNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIG9wZW5CZWZvcmVUYWJzSGlkZGVuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfb3BlbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGFiU2VydmljZTogU2t5VmVydGljYWxUYWJzZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGFiU2VydmljZS5oaWRpbmdUYWJzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUodGhpcy50YWJzSGlkZGVuKTtcblxuICAgIHRoaXMudGFiU2VydmljZS5zaG93aW5nVGFic1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHRoaXMudGFic1Nob3duKTtcblxuICAgIHRoaXMudGFiU2VydmljZS50YWJDbGlja2VkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUodGhpcy50YWJDbGlja2VkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZU1lbnVPcGVuKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJNZW51T3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJzICYmIHRoaXMudGFicy5maW5kKCh0KSA9PiB0LmFjdGl2ZSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyB0YWJDbGlja2VkID0gKCkgPT4ge1xuICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIHB1YmxpYyB0YWJzSGlkZGVuID0gKCkgPT4ge1xuICAgIC8vIHRoaXMgZml4ZXMgYW4gYW5pbWF0aW9uIGJ1ZyB3aXRoIG5nSWYgd2hlbiB0aGUgcGFyZW50IGNvbXBvbmVudCBnb2VzIGZyb20gdmlzaWJsZSB0byBoaWRkZW5cbiAgICB0aGlzLm9wZW5CZWZvcmVUYWJzSGlkZGVuID0gdGhpcy5vcGVuO1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIHB1YmxpYyB0YWJzU2hvd24gPSAoKSA9PiB7XG4gICAgdGhpcy5vcGVuID0gdGhpcy5vcGVuQmVmb3JlVGFic0hpZGRlbjtcbiAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktdmVydGljYWwtdGFic2V0LWdyb3VwXCI+XG4gIDwhLS0gW25nQ2xhc3NdIGluY2x1ZGVzIGZvbnQgY2xhc3NlcyBmb3IgYm90aCBtb2Rlcm4gYW5kIGRlZmF1bHQgc3R5bGVzIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktdmVydGljYWwtdGFic2V0LWdyb3VwLWhlYWRlclwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS12ZXJ0aWNhbC10YWJzZXQtZ3JvdXAtaGVhZGVyLXN1Yi1vcGVuIHNreS1mb250LWVtcGhhc2l6ZWQgc2t5LWVtcGhhc2l6ZWQnOlxuICAgICAgICBzdWJNZW51T3BlbigpLFxuICAgICAgJ3NreS1mb250LWRlZW1waGFzaXplZCc6IGRpc2FibGVkLFxuICAgICAgJ3NreS1kZWVtcGhhc2l6ZWQnOiBkaXNhYmxlZCxcbiAgICAgICdza3ktdmVydGljYWwtdGFic2V0LWRpc2FibGVkJzogZGlzYWJsZWRcbiAgICB9XCJcbiAgICBbdGFiSW5kZXhdPVwiLTFcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJza3ktcGFkZGluZy1ldmVuLWRlZmF1bHRcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBza3lJZFxuICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJncm91cENvbnRlbnQuaWRcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVNZW51T3BlbigpXCJcbiAgICAgICNncm91cEhlYWRpbmdCdXR0b25cbiAgICA+XG4gICAgICB7eyBncm91cEhlYWRpbmcgfX1cbiAgICAgIDxza3ktZXhwYW5zaW9uLWluZGljYXRvclxuICAgICAgICBjbGFzcz1cInNreS12ZXJ0aWNhbC10YWJzZXQtZ3JvdXAtZXhwYW5zaW9uLWluZGljYXRvclwiXG4gICAgICAgIFtkaXJlY3Rpb25dPVwib3BlbiA/ICd1cCcgOiAnZG93bidcIlxuICAgICAgPlxuICAgICAgPC9za3ktZXhwYW5zaW9uLWluZGljYXRvcj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS12ZXJ0aWNhbC10YWJzZXQtZ3JvdXAtY29udGVudFwiXG4gICAgcm9sZT1cInJlZ2lvblwiXG4gICAgc2t5SWRcbiAgICBbYXR0ci5sYWJlbGxlZGJ5XT1cImdyb3VwSGVhZGluZ0J1dHRvbi5pZFwiXG4gICAgW0Bza3lBbmltYXRpb25TbGlkZV09XCJvcGVuID8gJ2Rvd24nIDogJ3VwJ1wiXG4gICAgI2dyb3VwQ29udGVudFxuICA+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19