@energycap/components 0.39.6-standalone-components.20240125-1433 → 0.39.6

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 (140) hide show
  1. package/esm2020/lib/components.module.mjs +20 -73
  2. package/esm2020/lib/controls/banner/banner.component.mjs +5 -5
  3. package/esm2020/lib/controls/button/button.component.mjs +5 -6
  4. package/esm2020/lib/controls/button/copy-button.directive.mjs +3 -4
  5. package/esm2020/lib/controls/button/copy-table-button.directive.mjs +3 -4
  6. package/esm2020/lib/controls/checkbox/checkbox.component.mjs +8 -10
  7. package/esm2020/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +4 -4
  8. package/esm2020/lib/controls/combobox/combobox.component.mjs +9 -9
  9. package/esm2020/lib/controls/dropdown/dropdown.component.mjs +8 -6
  10. package/esm2020/lib/controls/file-upload/file-upload.component.mjs +10 -11
  11. package/esm2020/lib/controls/form-control/form-control.component.mjs +4 -4
  12. package/esm2020/lib/controls/form-control-label/form-control-label.component.mjs +4 -5
  13. package/esm2020/lib/controls/form-group/form-group.component.mjs +4 -5
  14. package/esm2020/lib/controls/help-popover/help-popover.component.mjs +6 -7
  15. package/esm2020/lib/controls/item-picker/item-picker.component.mjs +12 -11
  16. package/esm2020/lib/controls/link-button/link-button.component.mjs +3 -3
  17. package/esm2020/lib/controls/menu/menu.component.mjs +8 -9
  18. package/esm2020/lib/controls/navigation/nav-item-active.directive.mjs +3 -4
  19. package/esm2020/lib/controls/numericbox/numericbox.component.mjs +6 -6
  20. package/esm2020/lib/controls/popover/popover.component.mjs +5 -5
  21. package/esm2020/lib/controls/radio-button/radio-button.component.mjs +6 -8
  22. package/esm2020/lib/controls/select/select.component.mjs +6 -8
  23. package/esm2020/lib/controls/tabs/tabs.component.mjs +6 -7
  24. package/esm2020/lib/controls/textbox/textbox.component.mjs +10 -8
  25. package/esm2020/lib/display/app-bar/app-bar.component.mjs +6 -6
  26. package/esm2020/lib/display/avatar/avatar.component.mjs +3 -3
  27. package/esm2020/lib/display/confirm/confirm.component.mjs +12 -12
  28. package/esm2020/lib/display/dialog/dialog-group/dialog-group.component.mjs +5 -5
  29. package/esm2020/lib/display/dialog/dialog.component.mjs +3 -4
  30. package/esm2020/lib/display/hierarchy/hierarchy-base.mjs +7 -2
  31. package/esm2020/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +7 -7
  32. package/esm2020/lib/display/item-display/item-display.component.mjs +7 -8
  33. package/esm2020/lib/display/json-display/json-display.component.mjs +6 -6
  34. package/esm2020/lib/display/resizable/resizable.component.mjs +3 -3
  35. package/esm2020/lib/display/spinner/spinner.component.mjs +3 -3
  36. package/esm2020/lib/display/splash/splash.component.mjs +3 -3
  37. package/esm2020/lib/display/table/resizable-column.component.mjs +3 -3
  38. package/esm2020/lib/display/table/resizable-table.directive.mjs +3 -4
  39. package/esm2020/lib/display/table/searchable-table.component.mjs +9 -7
  40. package/esm2020/lib/display/table/table-detail-row.component.mjs +3 -3
  41. package/esm2020/lib/display/table/table-locked-column.component.mjs +3 -3
  42. package/esm2020/lib/display/table/table-master-header-row.component.mjs +4 -4
  43. package/esm2020/lib/display/table/table-master-row.component.mjs +6 -6
  44. package/esm2020/lib/display/table/table-pagination.component.mjs +6 -6
  45. package/esm2020/lib/display/table/table-selectable-row.component.mjs +6 -6
  46. package/esm2020/lib/display/table/table.component.mjs +5 -5
  47. package/esm2020/lib/display/tags/tags.component.mjs +5 -6
  48. package/esm2020/lib/display/toast/toast/toast.component.mjs +7 -8
  49. package/esm2020/lib/display/toast/toaster/toaster.component.mjs +4 -4
  50. package/esm2020/lib/display/tooltip/tooltip.component.mjs +5 -5
  51. package/esm2020/lib/display/tooltip-directive/tooltip.directive.mjs +3 -4
  52. package/esm2020/lib/display/tour/tour.component.mjs +6 -6
  53. package/esm2020/lib/display/tree/tree.component.mjs +18 -8
  54. package/esm2020/lib/display/view-overlay/view-overlay.component.mjs +7 -8
  55. package/esm2020/lib/shared/directives/click-area-for/click-area-for.directive.mjs +3 -4
  56. package/esm2020/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +3 -4
  57. package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +3 -6
  58. package/esm2020/lib/shared/display/pipes/date-display.pipe.mjs +4 -13
  59. package/esm2020/lib/shared/display/pipes/highlight-text.pipe.mjs +4 -11
  60. package/esm2020/lib/shared/display/pipes/relative-date.pipe.mjs +4 -11
  61. package/esm2020/lib/shared/display/pipes/row-count.pipe.mjs +4 -11
  62. package/esm2020/lib/shared/display/pipes/time-display.pipe.mjs +4 -13
  63. package/esm2020/lib/shared/page/page-title/page-title.component.mjs +5 -5
  64. package/esm2020/lib/shared/page/page-view/page-view.component.mjs +11 -10
  65. package/esm2020/lib/shared/testing/public-mocks.spec.mjs +3 -6
  66. package/esm2020/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +5 -5
  67. package/esm2020/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +5 -6
  68. package/esm2020/public-api.mjs +1 -1
  69. package/fesm2015/energycap-components.mjs +922 -1010
  70. package/fesm2015/energycap-components.mjs.map +1 -1
  71. package/fesm2020/energycap-components.mjs +918 -1006
  72. package/fesm2020/energycap-components.mjs.map +1 -1
  73. package/lib/components.module.d.ts +72 -72
  74. package/lib/controls/banner/banner.component.d.ts +1 -1
  75. package/lib/controls/button/button.component.d.ts +1 -1
  76. package/lib/controls/button/copy-button.directive.d.ts +1 -1
  77. package/lib/controls/button/copy-table-button.directive.d.ts +1 -1
  78. package/lib/controls/checkbox/checkbox.component.d.ts +3 -3
  79. package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +1 -1
  80. package/lib/controls/combobox/combobox.component.d.ts +1 -1
  81. package/lib/controls/dropdown/dropdown.component.d.ts +1 -1
  82. package/lib/controls/file-upload/file-upload.component.d.ts +1 -1
  83. package/lib/controls/form-control/form-control.component.d.ts +1 -1
  84. package/lib/controls/form-control-label/form-control-label.component.d.ts +1 -1
  85. package/lib/controls/form-group/form-group.component.d.ts +1 -1
  86. package/lib/controls/help-popover/help-popover.component.d.ts +1 -1
  87. package/lib/controls/item-picker/item-picker.component.d.ts +1 -1
  88. package/lib/controls/link-button/link-button.component.d.ts +1 -1
  89. package/lib/controls/menu/menu.component.d.ts +1 -1
  90. package/lib/controls/navigation/nav-item-active.directive.d.ts +1 -1
  91. package/lib/controls/numericbox/numericbox.component.d.ts +1 -1
  92. package/lib/controls/popover/popover.component.d.ts +1 -1
  93. package/lib/controls/radio-button/radio-button.component.d.ts +1 -1
  94. package/lib/controls/select/select.component.d.ts +1 -1
  95. package/lib/controls/tabs/tabs.component.d.ts +1 -1
  96. package/lib/controls/textbox/textbox.component.d.ts +1 -1
  97. package/lib/display/app-bar/app-bar.component.d.ts +1 -1
  98. package/lib/display/avatar/avatar.component.d.ts +1 -1
  99. package/lib/display/confirm/confirm.component.d.ts +1 -1
  100. package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +1 -1
  101. package/lib/display/dialog/dialog.component.d.ts +1 -1
  102. package/lib/display/hierarchy/hierarchy-base.d.ts +10 -1
  103. package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +1 -1
  104. package/lib/display/item-display/item-display.component.d.ts +1 -1
  105. package/lib/display/json-display/json-display.component.d.ts +1 -1
  106. package/lib/display/resizable/resizable.component.d.ts +1 -1
  107. package/lib/display/spinner/spinner.component.d.ts +1 -1
  108. package/lib/display/splash/splash.component.d.ts +1 -1
  109. package/lib/display/table/resizable-column.component.d.ts +1 -1
  110. package/lib/display/table/resizable-table.directive.d.ts +1 -1
  111. package/lib/display/table/searchable-table.component.d.ts +1 -1
  112. package/lib/display/table/table-detail-row.component.d.ts +1 -1
  113. package/lib/display/table/table-locked-column.component.d.ts +1 -1
  114. package/lib/display/table/table-master-header-row.component.d.ts +1 -1
  115. package/lib/display/table/table-master-row.component.d.ts +1 -1
  116. package/lib/display/table/table-pagination.component.d.ts +1 -1
  117. package/lib/display/table/table-selectable-row.component.d.ts +1 -1
  118. package/lib/display/table/table.component.d.ts +1 -1
  119. package/lib/display/tags/tags.component.d.ts +1 -1
  120. package/lib/display/toast/toast/toast.component.d.ts +1 -1
  121. package/lib/display/toast/toaster/toaster.component.d.ts +1 -1
  122. package/lib/display/tooltip/tooltip.component.d.ts +1 -1
  123. package/lib/display/tooltip-directive/tooltip.directive.d.ts +1 -1
  124. package/lib/display/tour/tour.component.d.ts +1 -1
  125. package/lib/display/tree/tree.component.d.ts +6 -2
  126. package/lib/display/view-overlay/view-overlay.component.d.ts +1 -1
  127. package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +1 -1
  128. package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +1 -1
  129. package/lib/shared/directives/popup/popup-container.directive.d.ts +1 -1
  130. package/lib/shared/display/pipes/date-display.pipe.d.ts +1 -2
  131. package/lib/shared/display/pipes/highlight-text.pipe.d.ts +1 -2
  132. package/lib/shared/display/pipes/relative-date.pipe.d.ts +1 -2
  133. package/lib/shared/display/pipes/row-count.pipe.d.ts +1 -2
  134. package/lib/shared/display/pipes/time-display.pipe.d.ts +1 -2
  135. package/lib/shared/page/page-title/page-title.component.d.ts +1 -1
  136. package/lib/shared/page/page-view/page-view.component.d.ts +1 -1
  137. package/lib/shared/testing/public-mocks.spec.d.ts +1 -1
  138. package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +1 -1
  139. package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +1 -1
  140. package/package.json +1 -1
@@ -1,9 +1,7 @@
1
- import { DOCUMENT, NgIf } from '@angular/common';
1
+ import { DOCUMENT } from '@angular/common';
2
2
  import { Component, Inject, ViewChild } from '@angular/core';
3
- import { TranslateModule } from '@ngx-translate/core';
4
3
  import { Subject } from 'rxjs';
5
4
  import { takeUntil } from 'rxjs/operators';
6
- import { LinkButtonComponent } from '../../controls/link-button/link-button.component';
7
5
  import * as i0 from "@angular/core";
8
6
  import * as i1 from "./tour.service";
9
7
  import * as i2 from "./../tooltip/tooltip.service";
@@ -11,6 +9,8 @@ import * as i3 from "../../core/telemetry.service";
11
9
  import * as i4 from "../../core/cache.service";
12
10
  import * as i5 from "../dialog/dialog.service";
13
11
  import * as i6 from "@ngx-translate/core";
12
+ import * as i7 from "@angular/common";
13
+ import * as i8 from "../../controls/link-button/link-button.component";
14
14
  export class TourComponent {
15
15
  constructor(tourService, tooltipService, telemetryService, cacheService, dialogService, translateService, document) {
16
16
  this.tourService = tourService;
@@ -369,10 +369,10 @@ export class TourComponent {
369
369
  }
370
370
  }
371
371
  TourComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TourComponent, deps: [{ token: i1.TourService }, { token: i2.TooltipService }, { token: i3.TelemetryService }, { token: i4.CacheService }, { token: i5.DialogService }, { token: i6.TranslateService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
372
- TourComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TourComponent, isStandalone: true, selector: "ec-tour", viewQueries: [{ propertyName: "custom", first: true, predicate: ["tourTooltip"], descendants: true }], ngImport: i0, template: "<ng-template #tourTooltip>\r\n <div *ngIf=\"currentTourStep?.media\"\r\n class=\"mb-3\">\r\n <img id=\"{{currentTourStep?.id + '_media'}}\"\r\n style=\"max-width: 100%;\"\r\n src=\"{{currentTourStep?.media}}\">\r\n </div>\r\n <div class=\"font-color-primary-light px-3 mb-3\"\r\n [innerHtml]=\"currentTourStep?.text | translate\">\r\n </div>\r\n <a *ngIf=\"currentTourStep?.helpLink\" id=\"{{currentTourStep?.id + '_helpLink'}}\" class=\"d-block mb-3 px-3\" target=\"_blank\" href=\"{{currentTourStep?.helpLink}}\" translate>LearnMore_SC</a>\r\n <footer class=\"px-3 mt-3 d-flex\">\r\n <button id=\"{{currentTourStep?.id + '_nextButton'}}\" *ngIf=\"!showDoneButton\" class=\"ml-auto tourAction\" ecLinkButton (click)=\"showNextStep()\" translate>Next_TC</button>\r\n <button id=\"{{currentTourStep?.id + '_doneButton'}}\" *ngIf=\"showDoneButton\" class=\"ml-auto tourAction\" ecLinkButton (click)=\"done()\" translate>Done_TC</button>\r\n </footer>\r\n</ng-template>", styles: [".tourAction{color:var(--ec-tour-action-color, var(--ec-color-brand-green))!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: LinkButtonComponent, selector: "button[ecLinkButton]" }] });
372
+ TourComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TourComponent, selector: "ec-tour", viewQueries: [{ propertyName: "custom", first: true, predicate: ["tourTooltip"], descendants: true }], ngImport: i0, template: "<ng-template #tourTooltip>\r\n <div *ngIf=\"currentTourStep?.media\"\r\n class=\"mb-3\">\r\n <img id=\"{{currentTourStep?.id + '_media'}}\"\r\n style=\"max-width: 100%;\"\r\n src=\"{{currentTourStep?.media}}\">\r\n </div>\r\n <div class=\"font-color-primary-light px-3 mb-3\"\r\n [innerHtml]=\"currentTourStep?.text | translate\">\r\n </div>\r\n <a *ngIf=\"currentTourStep?.helpLink\" id=\"{{currentTourStep?.id + '_helpLink'}}\" class=\"d-block mb-3 px-3\" target=\"_blank\" href=\"{{currentTourStep?.helpLink}}\" translate>LearnMore_SC</a>\r\n <footer class=\"px-3 mt-3 d-flex\">\r\n <button id=\"{{currentTourStep?.id + '_nextButton'}}\" *ngIf=\"!showDoneButton\" class=\"ml-auto tourAction\" ecLinkButton (click)=\"showNextStep()\" translate>Next_TC</button>\r\n <button id=\"{{currentTourStep?.id + '_doneButton'}}\" *ngIf=\"showDoneButton\" class=\"ml-auto tourAction\" ecLinkButton (click)=\"done()\" translate>Done_TC</button>\r\n </footer>\r\n</ng-template>", styles: [".tourAction{color:var(--ec-tour-action-color, var(--ec-color-brand-green))!important}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.LinkButtonComponent, selector: "button[ecLinkButton]" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
373
373
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TourComponent, decorators: [{
374
374
  type: Component,
375
- args: [{ selector: 'ec-tour', standalone: true, imports: [NgIf, TranslateModule, LinkButtonComponent], template: "<ng-template #tourTooltip>\r\n <div *ngIf=\"currentTourStep?.media\"\r\n class=\"mb-3\">\r\n <img id=\"{{currentTourStep?.id + '_media'}}\"\r\n style=\"max-width: 100%;\"\r\n src=\"{{currentTourStep?.media}}\">\r\n </div>\r\n <div class=\"font-color-primary-light px-3 mb-3\"\r\n [innerHtml]=\"currentTourStep?.text | translate\">\r\n </div>\r\n <a *ngIf=\"currentTourStep?.helpLink\" id=\"{{currentTourStep?.id + '_helpLink'}}\" class=\"d-block mb-3 px-3\" target=\"_blank\" href=\"{{currentTourStep?.helpLink}}\" translate>LearnMore_SC</a>\r\n <footer class=\"px-3 mt-3 d-flex\">\r\n <button id=\"{{currentTourStep?.id + '_nextButton'}}\" *ngIf=\"!showDoneButton\" class=\"ml-auto tourAction\" ecLinkButton (click)=\"showNextStep()\" translate>Next_TC</button>\r\n <button id=\"{{currentTourStep?.id + '_doneButton'}}\" *ngIf=\"showDoneButton\" class=\"ml-auto tourAction\" ecLinkButton (click)=\"done()\" translate>Done_TC</button>\r\n </footer>\r\n</ng-template>", styles: [".tourAction{color:var(--ec-tour-action-color, var(--ec-color-brand-green))!important}\n"] }]
375
+ args: [{ selector: 'ec-tour', template: "<ng-template #tourTooltip>\r\n <div *ngIf=\"currentTourStep?.media\"\r\n class=\"mb-3\">\r\n <img id=\"{{currentTourStep?.id + '_media'}}\"\r\n style=\"max-width: 100%;\"\r\n src=\"{{currentTourStep?.media}}\">\r\n </div>\r\n <div class=\"font-color-primary-light px-3 mb-3\"\r\n [innerHtml]=\"currentTourStep?.text | translate\">\r\n </div>\r\n <a *ngIf=\"currentTourStep?.helpLink\" id=\"{{currentTourStep?.id + '_helpLink'}}\" class=\"d-block mb-3 px-3\" target=\"_blank\" href=\"{{currentTourStep?.helpLink}}\" translate>LearnMore_SC</a>\r\n <footer class=\"px-3 mt-3 d-flex\">\r\n <button id=\"{{currentTourStep?.id + '_nextButton'}}\" *ngIf=\"!showDoneButton\" class=\"ml-auto tourAction\" ecLinkButton (click)=\"showNextStep()\" translate>Next_TC</button>\r\n <button id=\"{{currentTourStep?.id + '_doneButton'}}\" *ngIf=\"showDoneButton\" class=\"ml-auto tourAction\" ecLinkButton (click)=\"done()\" translate>Done_TC</button>\r\n </footer>\r\n</ng-template>", styles: [".tourAction{color:var(--ec-tour-action-color, var(--ec-color-brand-green))!important}\n"] }]
376
376
  }], ctorParameters: function () { return [{ type: i1.TourService }, { type: i2.TooltipService }, { type: i3.TelemetryService }, { type: i4.CacheService }, { type: i5.DialogService }, { type: i6.TranslateService }, { type: Document, decorators: [{
377
377
  type: Inject,
378
378
  args: [DOCUMENT]
@@ -380,4 +380,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
380
380
  type: ViewChild,
381
381
  args: ['tourTooltip']
382
382
  }] } });
383
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91ci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b3VyL3RvdXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG91ci90b3VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXVCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQW9CLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7OztBQVN2RixNQUFNLE9BQU8sYUFBYTtJQTRCeEIsWUFDVSxXQUF3QixFQUN4QixjQUE4QixFQUM5QixnQkFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsYUFBNEIsRUFDNUIsZ0JBQWtDLEVBQ2hCLFFBQWtCO1FBTnBDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQTdCOUM7O1dBRUc7UUFDSSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUt2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TyxFQUFFLENBQUM7WUFDWixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssdUJBQXVCO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWdCLENBQUMsRUFBRSxhQUFhLENBQUMsRUFBRTtZQUNuRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWdCLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQTtTQUMvRDtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxjQUFjLENBQUMsUUFBZ0I7UUFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsSUFBSSxPQUFPLEVBQUU7WUFDVixPQUF1QixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OzBHQXRhVSxhQUFhLG9NQW1DZCxRQUFROzhGQW5DUCxhQUFhLDBLQ3RCMUIsMGhDQWVjLGlKREtBLElBQUksNEZBQUUsZUFBZSxtT0FBRSxtQkFBbUI7MkZBRTNDLGFBQWE7a0JBUHpCLFNBQVM7K0JBQ0ksU0FBUyxjQUdQLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsbUJBQW1CLENBQUM7OzBCQXFDcEQsTUFBTTsyQkFBQyxRQUFROzRDQVRlLE1BQU07c0JBQXRDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlLCBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2NhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUZWxlbWV0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90ZWxlbWV0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50LCBUb29sdGlwT3B0aW9ucyB9IGZyb20gJy4vLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBTZXJ2aWNlIH0gZnJvbSAnLi8uLi90b29sdGlwL3Rvb2x0aXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvdXIsIFRvdXJBbmNob3IsIFRvdXJDYWNoZUVudHJ5LCBUb3VyRXZlbnQsIFRvdXJTdGVwIH0gZnJvbSAnLi90b3VyLXR5cGVzJztcclxuaW1wb3J0IHsgVG91clNlcnZpY2UgfSBmcm9tICcuL3RvdXIuc2VydmljZSc7XHJcbmltcG9ydCB7IExpbmtCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb250cm9scy9saW5rLWJ1dHRvbi9saW5rLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2VjLXRvdXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvdXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdG91ci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtOZ0lmLCBUcmFuc2xhdGVNb2R1bGUsIExpbmtCdXR0b25Db21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb3VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKiogQ3VycmVudCB0b3VyIHN0ZXAgYmVpbmcgc2hvd24gdG8gdGhlIHVzZXIuIFRoZSBjdXN0b20gY29udGVudCBpbiB0aGUgdGVtcGxhdGUgaXMgYm91bmQgdG8gcHJvcGVydGllcyBvbiB0aGlzIGFuZCB0aGVyZWZvciBuZWVkcyB0byBiZVxyXG4gICogIGl0cyBvd24gcHJvcGVydHkuIFRoZSBleGl0U3RlcCBpcyBhIHRvdXIgc3RlcCBhbmQgdGhpcyB3aWxsIGhvbGQgdGhhdCBzdGVwIGF0IHRoZSBlbmQgb2YgdGhlIHRvdXIuXHJcbiAgKi9cclxuICBwdWJsaWMgY3VycmVudFRvdXJTdGVwPzogVG91clN0ZXA7XHJcblxyXG4gIC8qKiBVc2VkIHRvIHRlbGwgdGhlIFVJIHRoYXQgdGhlIHN0ZXAgYmVpbmcgc2hvd24gaXMgYW4gZXhpdCBzdGVwLiBUaGlzIHdpbGwgY2hhbmdlIHRoZVxyXG4gICAqICBsaW5rIHRleHQgYW5kIHRoZSBhY3Rpb24gd2hlbiBjbGlja2VkXHJcbiAgICovXHJcbiAgcHVibGljIHNob3dEb25lQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIHRvb2x0aXAgdXNlZCBmb3IgdGhlIHRvdXIgc3RlcHMgKi9cclxuICBwdWJsaWMgdG9vbHRpcD86IFRvb2x0aXBDb21wb25lbnQ7XHJcblxyXG4gIC8qKiBBcnJheSBvZiB0b3VycyBwcm92aWRlZCB3aGVuIHRoZSBzdGFydCB0b3VyIGV2ZW50IHdhcyBkZXRlY3RlZCAqL1xyXG4gIHByaXZhdGUgdG91cnM6IFRvdXJbXSA9IFtdO1xyXG5cclxuICAvLyBDb3VwbGUgaW5kZXhlcyBmb3IgdGhlIGN1cnJlbnQgdG91ci9zdGVwIHN0b3JlZCBmb3IgZWFzaWVyIHJlZmVyZW5jZSB3aGVuIGtub3dpbmcgaWYgd2UgYXJlIGF0IHRoZSBlbmQgb2YgdGhlIHN0ZXBzL3RvdXJzXHJcbiAgcHJpdmF0ZSBjdXJyZW50U3RlcEluZGV4OiBudW1iZXIgPSAtMTtcclxuICBwcml2YXRlIGN1cnJlbnRUb3VySW5kZXg6IG51bWJlciA9IC0xO1xyXG5cclxuICAvKiogVXNlZCB0byBrbm93IGlmIHRoZSByZXN0b3JlIHN0ZXAgc2hvdWxkIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSB0b3VyIGlzIGRpc21pc3NlZCAqL1xyXG4gIHByaXZhdGUgaXNBdXRvU3RhcnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBAVmlld0NoaWxkKCd0b3VyVG9vbHRpcCcpIHB1YmxpYyBjdXN0b20hOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdG91clNlcnZpY2U6IFRvdXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b29sdGlwU2VydmljZTogVG9vbHRpcFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRlbGVtZXRyeVNlcnZpY2U6IFRlbGVtZXRyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvdXJTZXJ2aWNlLmV2ZW50cy5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXHJcbiAgICApLnN1YnNjcmliZShhc3luYyBldmVudCA9PiB7XHJcbiAgICAgIGlmIChldmVudC50b3VyQWN0aW9uID09PSAnc3RhcnQnKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXR1cFRvdXJDb21wb25lbnQoZXZlbnQpO1xyXG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LnRvdXJBY3Rpb24gPT09ICdlbmQnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFRvdXIpIHtcclxuICAgICAgICAgIHRoaXMud3JpdGVDb21wbGV0aW9uS2V5Rm9yQWxsVG91cnMoKTtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuZW5kVG91cigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveWVkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYWxsZWQgd2hlbiBhIHJlc3RvcmUgc3RlcCBoYXMgYmVlbiBjb21wbGV0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgZG9uZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMud3JpdGVDb21wbGV0aW9uS2V5KHRoaXMuY3VycmVudFRvdXIpO1xyXG4gICAgYXdhaXQgdGhpcy5lbmRUb3VyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYWxsZWQgd2hlbiBhIHRvdXIgYmVnaW5zIGFuZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBuZXh0IG9uIHRoZSBjdXJyZW50IHRvdXIgc3RlcC4gSXQgd2lsbCBoYW5kbGUgYW55IGFmdGVyIGNsaWNrIGFjdGlvbnMgYW5kIHRoZW5cclxuICAgKiBmaW5kIHRoZSBuZXh0IHN0ZXAgYW5kIHByZXNlbnQgaXQgdG8gdGhlIHVzZXIgYW5kIHRyYW5zaXRpb24gdG8gYSByZXN0b3JlIHN0ZXAgb3IgbmV3IHRvdXIgaWYgbmVlZGVkLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhc3luYyBzaG93TmV4dFN0ZXAoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBCZWZvcmUgbW92aW5nIHRvIHRoZSBuZXh0IHN0ZXAsIG1ha2Ugc3VyZSB0aGUgY3VycmVudCBzdGVwIGRvZXMgbm90IGhhdmUgYSBjbGljayBhZnRlciBkZWZpbmVkLiBUaGlzIGNvdWxkIGJlIGhpZGluZyBhIG1lbnVcclxuICAgIC8vIHRoYXQgd2FzIG9wZW5lZCBmb3IgdGhlIHNvb24gdG8gYmUgcHJldmlvdXMgc3RlcC5cclxuICAgIGF3YWl0IHRoaXMud2FpdEZvclRpbWVvdXQodGhpcy5oYW5kbGVDbGlja0FmdGVyLmJpbmQodGhpcykpO1xyXG5cclxuICAgIC8vIFJlbW92ZSBhbnkgcHJldmlvdXMgdG9vbHRpcHNcclxuICAgIHRoaXMucmVtb3ZlVG9vbHRpcCgpO1xyXG5cclxuICAgIC8vIEdldCBvdXIgbmV4dCBzdGVwIGluZGV4IHRvIGRpc3BsYXkgdG8gdGhlIHVzZXJcclxuICAgIHRoaXMuY3VycmVudFN0ZXBJbmRleCA9IHRoaXMuZ2V0TmV4dEF2YWlsYWJsZVN0ZXBJbmRleCgpO1xyXG5cclxuICAgIGlmICh0aGlzLmN1cnJlbnRTdGVwSW5kZXggPT09IC0xKSB7XHJcbiAgICAgIC8vIE5vIG1vcmUgc3RlcHMgZm91bmQsIHdlIGVpdGhlciBuZWVkIHRvIGNoZWNrIGZvciB0aGUgZXhpdCBzdGVwIGlmIHRoaXMgaXMgdGhlIGxhc3QgdG91clxyXG4gICAgICAvLyBpbiB0aGUgdG91cnMgYXJyYXkgb3IgYWR2YW5jZSB0byB0aGUgbmV4dCB0b3VyXHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRUb3VySW5kZXggPT09IHRoaXMudG91cnMubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlRXhpdFN0ZXAoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBXcml0ZSB0aGUgY29tcGxldGlvbiBrZXkgZm9yIHRoZSBjdXJyZW50IHRvdXIgYmVmb3JlIHdlIG1vdmUgdG8gdGhlIG5leHRcclxuICAgICAgICB0aGlzLndyaXRlQ29tcGxldGlvbktleSh0aGlzLmN1cnJlbnRUb3VyKTtcclxuXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VG91ckluZGV4Kys7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zaG93TmV4dFRvdXIoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50VG91clN0ZXAgPSB0aGlzLmN1cnJlbnRUb3VyPy5zdGVwc1t0aGlzLmN1cnJlbnRTdGVwSW5kZXhdO1xyXG5cclxuICAgICAgLy8gTm93IHRoYXQgd2UgaGF2ZSBvdXIgY3VycmVudCBzdGVwIGluZGV4LCB0YWtlIGNhcmUgb2YgYW55IGNsaWNrIGJlZm9yZSBlbGVtZW50cyBiZWZvcmUgc2hvd2luZyB0aGVcclxuICAgICAgLy8gdG9vbHRpcC4gVGhpcyBjb3VsZCBiZSBvcGVuaW5nIGEgbWVudSB0byBnZXQgdGhlIHRvb2x0aXAgZWxlbWVudCB2aXNpYmxlLlxyXG4gICAgICBhd2FpdCB0aGlzLndhaXRGb3JUaW1lb3V0KHRoaXMuaGFuZGxlQ2xpY2tCZWZvcmUuYmluZCh0aGlzKSk7XHJcblxyXG4gICAgICAvLyBDbGljayBiZWZvcmVzIGFyZSBkb25lLCBub3cgbGV0J3Mgc2hvdyB0aGUgdG9vbHRpcCBkZWZpbmVkIGluIHRoZSB0b3VyIHN0ZXBcclxuICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLnNob3dTdGVwVG9vbHRpcC5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgc2V0dXBUb3VyQ29tcG9uZW50KGV2ZW50OiBUb3VyRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIEVuZCBhbnkgdG91cnMgdGhhdCBtYXkgaGF2ZSBiZWVuIGluIHByb2dyZXNzIGlmIHRoZSB1c2VyIGtpY2tzIG9mZiBhIG5ldyBvbmVcclxuICAgIGlmICh0aGlzLmN1cnJlbnRUb3VyKSB7XHJcbiAgICAgIHRoaXMud3JpdGVDb21wbGV0aW9uS2V5Rm9yQWxsVG91cnMoKTtcclxuICAgICAgYXdhaXQgdGhpcy5lbmRUb3VyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0F1dG9TdGFydCA9IGV2ZW50LmlzQXV0b1N0YXJ0O1xyXG5cclxuICAgIGlmIChldmVudC5pc0F1dG9TdGFydCkge1xyXG4gICAgICB0aGlzLnRvdXJzID0gdGhpcy5yZW1vdmVDb21wbGV0ZWRUb3VycyhldmVudC50b3Vycyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRvdXJzID0gZXZlbnQudG91cnM7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMudG91cnMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuc2hvd0RvbmVCdXR0b24gPSBmYWxzZTtcclxuXHJcbiAgICAgIHRoaXMuY3VycmVudFRvdXJTdGVwID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLmN1cnJlbnRTdGVwSW5kZXggPSAtMTtcclxuXHJcbiAgICAgIC8vIFByaW1lIHRoZSBpbmRleCBmb3IgdGhlIGZpcnN0IHRvdXJcclxuICAgICAgdGhpcy5jdXJyZW50VG91ckluZGV4ID0gMDtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMuc2hvd05leHRUb3VyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG93cyBhIHRvdXIgYW5kIGVtaXRzIGFuIGV2ZW50IHRoYXQgaXQgd2FzIHN0YXJ0ZWRcclxuICAgKiBAcGFyYW0gdG91clxyXG4gICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgc2hvd05leHRUb3VyKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gVHJhY2sgYSB0b3VyIHN0YXJ0ZWQgZXZlbnQgaWYgdGhlIGNvbnN1bWVyIG9mIHRoZSBsaWJyYXJ5IGhhcyB0ZWxlbWV0cnkgY29uZmlndXJlZFxyXG4gICAgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLnRyYWNrRXZlbnQoJ1RvdXJTdGFydGVkJywgeyB0b3VySWQ6IHRoaXMuY3VycmVudFRvdXIhLmlkIH0pO1xyXG5cclxuICAgIGxldCBjb250aW51ZVRvdXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIGlmICh0aGlzLmlzQXV0b1N0YXJ0ICYmIHRoaXMuY3VycmVudFRvdXJJbmRleCA9PT0gMCAmJiB0aGlzLmN1cnJlbnRUb3VyPy5pbnRyb0RpYWxvZykge1xyXG4gICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VG91ci5pbnRyb0RpYWxvZy5jb250ZW50ISxcclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VyLmludHJvRGlhbG9nLnNpemUgPz8gJ3NtYWxsJyxcclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VyLmludHJvRGlhbG9nLmNvbnRleHQgPz8gdW5kZWZpbmVkLFxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXIuaW50cm9EaWFsb2cub3B0aW9ucyA/PyB1bmRlZmluZWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICBpZiAoIXJlc3VsdC5zYXZlKSB7XHJcbiAgICAgICAgY29udGludWVUb3VyID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMud3JpdGVDb21wbGV0aW9uS2V5Rm9yQWxsVG91cnMoKTtcclxuICAgICAgICAvLyBBZHZhbmNlIHRvIHRoZSBsYXN0IHRvdXIgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGZvciBpdHMgZXhpdCBzdGVwXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VG91ckluZGV4ID0gdGhpcy50b3Vycy5sZW5ndGggLSAxO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlRXhpdFN0ZXAoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb250aW51ZVRvdXIpIHtcclxuICAgICAgdGhpcy5zaG93TmV4dFN0ZXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZW5kVG91cigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIEhhbmRsZSBhbnkgY2xpY2sgYWZ0ZXJzIGZvciB0aGUgYWN0aXZlIHN0ZXAgc2hvd24gYmVmb3JlIHNodXR0aW5nIGl0IGRvd25cclxuICAgIGF3YWl0IHRoaXMud2FpdEZvclRpbWVvdXQodGhpcy5oYW5kbGVDbGlja0FmdGVyLmJpbmQodGhpcykpO1xyXG5cclxuICAgIHRoaXMuY3VycmVudFRvdXJTdGVwID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy50b3VycyA9IFtdO1xyXG5cclxuICAgIHRoaXMucmVtb3ZlVG9vbHRpcCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGxheXMgYSB0b29sdGlwIGZvciB0aGUgY3VycmVudCB0b3VyIHN0ZXBcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHNob3dTdGVwVG9vbHRpcCgpIHtcclxuICAgIC8vIFRyYWNrIGFuIGV2ZW50IGlmIHRoZSBjb25zdW1lciBvZiB0aGUgbGlicmFyeSBoYXMgdGVsZW1ldHJ5IGNvbmZpZ3VyZWRcclxuICAgIHRoaXMudGVsZW1ldHJ5U2VydmljZS50cmFja0V2ZW50KCdUb3VyU3RlcENoYW5nZScsIHsgdG91cklkOiB0aGlzLmN1cnJlbnRUb3VyIS5pZCwgdG91clN0ZXBJZDogdGhpcy5jdXJyZW50VG91clN0ZXAhLmlkIH0pO1xyXG5cclxuICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuY3VycmVudFRvdXJTdGVwIS5hbmNob3IhLnNlbGVjdG9yKTtcclxuXHJcbiAgICBpZiAodG9vbHRpcEVsZW1lbnQpIHtcclxuICAgICAgLy8gRGVmYXVsdCB3aWR0aCBpZiBub25lIHByb3ZpZGVkXHJcbiAgICAgIGxldCBzdGVwV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZCA9IDQzMjtcclxuXHJcbiAgICAgIC8vIENoZWNrIHRoZSBjdXJyZW50IHRvdXIgc3RlcCB3aWR0aCBhbmQgZGVjaWRlIGlmIGl0IG5lZWRzIHRvIGNoYW5nZSBmcm9tIHRoZSBkZWZhdWx0IHZhbHVlXHJcbiAgICAgIC8vIGJhc2VkIG9uIHdoZXRoZXIgdGhlIHN0ZXAgZGVmaW5lZCBpdCBvciBub3RcclxuICAgICAgaWYgKHRoaXMuY3VycmVudFRvdXJTdGVwPy53aWR0aCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1cnJlbnRUb3VyU3RlcC53aWR0aCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgIHN0ZXBXaWR0aCA9IHRoaXMuY3VycmVudFRvdXJTdGVwLndpZHRoO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50VG91clN0ZXAud2lkdGggPT09ICdhdXRvJykge1xyXG4gICAgICAgICAgc3RlcFdpZHRoID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgb3B0aW9uczogVG9vbHRpcE9wdGlvbnMgPSB7XHJcbiAgICAgICAgaWQ6IGAke3RoaXMuY3VycmVudFRvdXI/LmlkfV8ke3RoaXMuY3VycmVudFRvdXJTdGVwIS5pZH1gLFxyXG4gICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMuY3VycmVudFRvdXJTdGVwIS50ZXh0KSxcclxuICAgICAgICB0aXRsZTogdGhpcy5jdXJyZW50VG91clN0ZXAhLnRpdGxlID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5jdXJyZW50VG91clN0ZXAhLnRpdGxlKSA6IHVuZGVmaW5lZCxcclxuICAgICAgICBjdXN0b21Db250ZW50OiB0aGlzLmN1c3RvbSxcclxuICAgICAgICBkaXNtaXNzaWJsZTogdHJ1ZSxcclxuICAgICAgICBtYXhXaWR0aDogdGhpcy5jdXJyZW50VG91clN0ZXA/Lm1heFdpZHRoLFxyXG4gICAgICAgIHdpZHRoOiBzdGVwV2lkdGgsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndmFyKC0tZWMtYmFja2dyb3VuZC1jb2xvci10b3VyKScsXHJcbiAgICAgICAgdGl0bGVDb2xvcjogJ3ZhcigtLWVjLWNvbG9yLXRvdXItdGl0bGUpJ1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgdGhpcy50b29sdGlwID0gdGhpcy50b29sdGlwU2VydmljZS5zaG93KHRvb2x0aXBFbGVtZW50IGFzIEhUTUxFbGVtZW50LCB0aGlzLmN1cnJlbnRUb3VyU3RlcCEuYW5jaG9yPy5wb3NpdGlvbiwgb3B0aW9ucyk7XHJcbiAgICAgIGF3YWl0IHRoaXMud2FpdEZvclRpbWVvdXQodGhpcy5mb2N1c09uTmV4dE9yRG9uZUJ1dHRvbi5iaW5kKHRoaXMpKTtcclxuICAgICAgdGhpcy5zdWJzY3JpYmVUb1Rvb2x0aXBPbkhpZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmliZXMgdG8gdGhlIHRvb2x0aXBzIG9uSGlkZSBldmVudCBlbWl0dGVyIGFuZCByZWFjdHMgaWYgdGhlIHVzZXIgZGlzbWlzc2VzIHRoZSB0b29sdGlwXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhc3luYyBzdWJzY3JpYmVUb1Rvb2x0aXBPbkhpZGUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgdG9vbHRpcFN1YnNjcmlwdGlvbiA9IHRoaXMudG9vbHRpcD8ub25IaWRlLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcclxuICAgICkuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcclxuICAgICAgdG9vbHRpcFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgIHRoaXMud3JpdGVDb21wbGV0aW9uS2V5Rm9yQWxsVG91cnMoKTtcclxuICAgICAgLy8gSWYgdGhpcyBpcyBkaXNtaXNzZWQgZHVyaW5nIGFuIGF1dG8gc3RhcnQgdG91ciB0aGVuIGhhbmRsZSB0aGUgZXhpdCBzdGVwXHJcbiAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGRvbmUgYnV0dG9uIGlzIHNob3duIGFzIHdlbGwsIGlmIHRoZSBkb25lIGlzIHNob3duIHRoZW4gd2UncmUgaW4gdGhlIGV4aXQgc3RlcFxyXG4gICAgICAvLyBhbmQgZGlzbWlzc2luZyBzaG91bGQganVzdCBlbmQgdGhlIHRvdXJcclxuICAgICAgaWYgKHRoaXMuaXNBdXRvU3RhcnQgJiYgIXRoaXMuc2hvd0RvbmVCdXR0b24pIHtcclxuICAgICAgICAvLyBBZHZhbmNlIHRvIHRoZSBsYXN0IHRvdXIgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGZvciBpdHMgZXhpdCBzdGVwXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VG91ckluZGV4ID0gdGhpcy50b3Vycy5sZW5ndGggLSAxO1xyXG5cclxuICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUV4aXRTdGVwKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5lbmRUb3VyKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9vcHMgdGhyb3VnaCB0aGUgY3VycmVudCB0b3VyIHN0ZXBzIHN0YXJ0aW5nIGFmdGVyIHRoZSBjdXJyZW50IHN0ZXAgaW5kZXguIEl0IHdpbGwgdHJ5IHRvIGZpbmQgYSB2aXNpYmxlXHJcbiAgICogc2VsZWN0b3IgYW5kIGlmIHNvIHJldHVybiB0aGUgaW5kZXguXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBwcml2YXRlIGdldE5leHRBdmFpbGFibGVTdGVwSW5kZXgoKTogbnVtYmVyIHtcclxuICAgIGxldCBuZXh0U3RlcEluZGV4OiBudW1iZXIgPSAtMTtcclxuXHJcbiAgICAvLyBMb29rIHRocm91Z2ggdGhlIHN0ZXBzIHN0YXJ0aW5nIHdpdGggdGhlIGN1cnJlbnQgaW5kZXggYW5kIGZpbmQgdGhlIG5leHQgdGhhdCBpcyBhdmFpYWJsZVxyXG4gICAgLy8gZm9yIHRoZSB1c2VyLlxyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gdGhpcy5jdXJyZW50U3RlcEluZGV4ICsgMTsgaSA8IHRoaXMuY3VycmVudFRvdXIhLnN0ZXBzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRUb3VyPy5zdGVwc1tpXS5hbmNob3IgJiYgdGhpcy5zdGVwRWxlbWVudEZvdW5kKHRoaXMuY3VycmVudFRvdXIhLnN0ZXBzW2ldLmFuY2hvciEpKSB7XHJcbiAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV4dFN0ZXBJbmRleDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyeSB0byBmaW5kIHRoZSB0b3VyIHN0ZXAgZWxlbWVudCB0byBrbm93IGlmIGl0IGlzIHZpc2libGUgZm9yIHRoZSB1c2VyLiBDaGVjayBmb3IgdGhlIGNsaWNrQmVmb3JlIGZpcnN0IGlmIGRlZmluZWRcclxuICAgKiBAcGFyYW0gYW5jaG9yXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBwcml2YXRlIHN0ZXBFbGVtZW50Rm91bmQoYW5jaG9yOiBUb3VyQW5jaG9yKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoYW5jaG9yLmNsaWNrQmVmb3JlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYW5jaG9yLmNsaWNrQmVmb3JlKSAhPT0gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYW5jaG9yLnNlbGVjdG9yKSAhPT0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvbWUgdG91ciBzdGVwcyBtYXkgaGF2ZSBhIGNsaWNrIGFmdGVyIGRlZmluZWQuIElmIHNvIGNhbGwgdGhlIGNsaWNrIG1ldGhvZCBvbiB0aGUgaHRtbCBlbGVtZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBoYW5kbGVDbGlja0FmdGVyKCk6IHZvaWQge1xyXG4gICAgbGV0IHNlbGVjdG9yID0gdGhpcy5jdXJyZW50VG91clN0ZXA/LmFuY2hvcj8uY2xpY2tBZnRlcjtcclxuICAgIGlmIChzZWxlY3Rvcikge1xyXG4gICAgICB0aGlzLmNsaWNrRWxlbWVudElmRm91bmQoc2VsZWN0b3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU29tZSB0b3VyIHN0ZXBzIG1heSBoYXZlIGEgY2xpY2sgYmVmb3JlIGRlZmluZWQuIElmIHNvIGNhbGwgdGhlIGNsaWNrIG1ldGhvZCBvbiB0aGUgaHRtbCBlbGVtZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBoYW5kbGVDbGlja0JlZm9yZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRUb3VyU3RlcD8uYW5jaG9yPy5jbGlja0JlZm9yZSkge1xyXG4gICAgICB0aGlzLmNsaWNrRWxlbWVudElmRm91bmQodGhpcy5jdXJyZW50VG91clN0ZXAuYW5jaG9yPy5jbGlja0JlZm9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIENoZWNrcyBmb3IgYW4gZXhpdCBzdGVwIG9uIHRoZSBjdXJyZW50IHRvdXIgYW5kIGlmIGZvdW5kIGRpc3BsYXlzIHRoZSBzdGVwXHJcbiAgKi9cclxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUV4aXRTdGVwKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFRvdXI/LmV4aXRTdGVwKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlVG9vbHRpcCgpO1xyXG5cclxuICAgICAgdGhpcy5zaG93RG9uZUJ1dHRvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuY3VycmVudFRvdXJTdGVwID0gdGhpcy5jdXJyZW50VG91cj8uZXhpdFN0ZXA7XHJcblxyXG4gICAgICBhd2FpdCB0aGlzLndhaXRGb3JUaW1lb3V0KHRoaXMuaGFuZGxlQ2xpY2tCZWZvcmUuYmluZCh0aGlzKSk7XHJcbiAgICAgIGF3YWl0IHRoaXMud2FpdEZvclRpbWVvdXQodGhpcy5zaG93U3RlcFRvb2x0aXAuYmluZCh0aGlzKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcnkgdG8gZmluZCB0aGUgZWxlbWVudCB3aXRoIHRoZSBzZWxlY3RvciBwcm92aWRlZCBhbmQgaWYgc28gY2xpY2sgaXQuIFRoaXMgaXMgaG93IHRvdXIgc3RlcHMgd2lsbCBvcGVuL2Nsb3NlIG1lbnVzIHRvXHJcbiAgICogZ2l2ZSBhIHRvdXIgdG8gdGhlIHVzZXJcclxuICAgKiBAcGFyYW0gc2VsZWN0b3JcclxuICAgKi9cclxuICBwcml2YXRlIGNsaWNrRWxlbWVudElmRm91bmQoc2VsZWN0b3I6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgaWYgKHNlbGVjdG9yICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XHJcbiAgICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgICAgKGVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gYXV0byBzdGFydGluZyB0b3VycyB3ZSB3aWxsIHdhbnQgdG8gcmVtb3ZlIGFueSB0aGF0IGhhdmUgdGhlIGxvY2FsIHN0b3JhZ2Uga2V5IHdyaXR0ZW4gYXMgY29tcGxldGVkIHNvXHJcbiAgICogdGhleSBhcmUgbm90IHByZXNlbnRlZCB0byB0aGUgdXNlciBhZ2Fpbi5cclxuICAgKiBAcGFyYW0gdG91cnNcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlQ29tcGxldGVkVG91cnModG91cnM6IFRvdXJbXSk6IFRvdXJbXSB7XHJcbiAgICByZXR1cm4gdG91cnMuZmlsdGVyKHRvdXIgPT4ge1xyXG4gICAgICBsZXQgY2FjaGVWYWx1ZSA9IHRoaXMuY2FjaGVTZXJ2aWNlLmdldEl0ZW08VG91ckNhY2hlRW50cnk+KHRoaXMubWFrZUNhY2hlS2V5KHRvdXIpKTtcclxuICAgICAgaWYgKGNhY2hlVmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gIWNhY2hlVmFsdWUuY29tcGxldGVkO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdyaXRlcyBhIGtleSB0byBsb2NhbCBzdG9yYWdlIHNvIHRoZSB0b3VyIHdpbGwgbm90IGJlIHNob3duIGFnYWluIGF1dG9tYXRpY2FsbHlcclxuICAgKi9cclxuICBwcml2YXRlIHdyaXRlQ29tcGxldGlvbktleSh0b3VyOiBUb3VyIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAodG91cikge1xyXG4gICAgICB0aGlzLmNhY2hlU2VydmljZS5zZXRJdGVtKHRoaXMubWFrZUNhY2hlS2V5KHRvdXIpLCA8VG91ckNhY2hlRW50cnk+eyBjb21wbGV0ZWQ6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIGRpc21pc3NpbmcgYSB0b3VyIG9yIG9uZSBiZWluZyBkaXNtaXNzZWQgdmlhIGEgbmF2aWdhdGlvbiBldmVudCwgZXRjIHdlIHdpbGwgd2FudCB0byBtYXJrXHJcbiAgICogZXZlcnkgdG91ciBpbiB0aGUgYXJyYXkgYXMgY29tcGxldGVkIHNvIGl0IGRvZXNuJ3QgcmVzdXJmYWNlIHVubGVzcyB0aGUgdXNlciByZXF1ZXN0cyB0aGUgdG91ci5cclxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgbG9vcCBvdmVyIGFsbCBhbmQgd3JpdGUgdGhlIGxvY2FsIHN0b3JhZ2Uga2V5XHJcbiAgICovXHJcbiAgcHJpdmF0ZSB3cml0ZUNvbXBsZXRpb25LZXlGb3JBbGxUb3VycygpOiB2b2lkIHtcclxuICAgIHRoaXMudG91cnMuZm9yRWFjaCh0b3VyID0+IHtcclxuICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXkodG91cik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhY2hlIGtleSB1c2VkIHRvIHNldC9nZXQgdGhlIGNvbXBsZXRpb24gc3RhdHVzIG9mIGEgdG91clxyXG4gICAqIEBwYXJhbSB0b3VyXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBwcml2YXRlIG1ha2VDYWNoZUtleSh0b3VyOiBUb3VyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRvdXJTZXJ2aWNlLmdldENhY2hlS2V5KHRvdXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhIHRvb2x0aXAgZnJvbSB0aGUgdmlldywgdXNlZCB3aGVuIHN3aXRjaGluZyB0b3VyIHN0ZXBzIGFuZCBjbG9zaW5nIGEgdG91clxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlVG9vbHRpcCgpOiB2b2lkIHtcclxuICAgIHRoaXMudG9vbHRpcD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgdG91ciBiYXNlZCBvbiB0aGUgY3VycmVudCBpbmRleFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0IGN1cnJlbnRUb3VyKCk6IFRvdXIgfCB1bmRlZmluZWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFRvdXJJbmRleCA+IC0xICYmIHRoaXMuY3VycmVudFRvdXJJbmRleCA8IHRoaXMudG91cnMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvdXJzW3RoaXMuY3VycmVudFRvdXJJbmRleF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGNsaWNrIGJlZm9yZS9hZnRlciBhbmQgc2hvdyB0b29sdGlwIGZ1bmN0aW9ucyBuZWVkIHRvIGJlIHdyYXBwZWQgaW4gc2V0VGltZW91dCBmb3IgdGhlIFVJXHJcbiAgICogdG8gb3BlcmF0ZSBjb3JyZWN0bHkgYnV0IHNldFRpbWVvdXQgaXMgYW4gYWN0aW9uIHdlIGNhbm5vdCBhd2FpdCBzbyB3ZSdyZSB3cmFwcGluZyBpdCBpbiBhIHByb21pc2UgdG8gcmV0dXJuXHJcbiAgICogc28gdGhlIGZ1bmN0aW9uIGNhbGxzIGNhbiBhd2FpdCB0aGUgYWN0aW9uXHJcbiAgICogQHBhcmFtIGZuXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBwcml2YXRlIHdhaXRGb3JUaW1lb3V0KGZuOiAoKSA9PiB2b2lkKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGZuKCk7XHJcbiAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmluZCB0aGUgXCJuZXh0XCIgb3IgXCJkb25lXCIgYnV0dG9uIGFuZCBmb2N1cyBvbiBpdC5cclxuICAgKlxyXG4gICAqIFRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSwgc28gaWYgd2UgY2Fubm90IGZpbmQgdGhlIG5leHQgYnV0dG9uXHJcbiAgICogd2UgbG9vayBmb3IgdGhlIGRvbmUgYnV0dG9uLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZm9jdXNPbk5leHRPckRvbmVCdXR0b24oKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZm9jdXNPbkVsZW1lbnQoYCMke3RoaXMuY3VycmVudFRvdXJTdGVwIS5pZH1fbmV4dEJ1dHRvbmApKSB7XHJcbiAgICAgIHRoaXMuZm9jdXNPbkVsZW1lbnQoYCMke3RoaXMuY3VycmVudFRvdXJTdGVwIS5pZH1fZG9uZUJ1dHRvbmApXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaW5kIGFuIGVsZW1lbnQgd2l0aCBnaXZlbiBzZWxlY3RvciBhbmQgZm9jdXMgb24gaXQuXHJcbiAgICogUmV0dXJuIGZhbHNlIGlmIGVsZW1lbnQgbm90IGZvdW5kLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZm9jdXNPbkVsZW1lbnQoc2VsZWN0b3I6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XHJcbiAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAoZWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSAjdG91clRvb2x0aXA+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudFRvdXJTdGVwPy5tZWRpYVwiXHJcbiAgICAgICAgIGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgIDxpbWcgaWQ9XCJ7e2N1cnJlbnRUb3VyU3RlcD8uaWQgKyAnX21lZGlhJ319XCJcclxuICAgICAgICAgICAgIHN0eWxlPVwibWF4LXdpZHRoOiAxMDAlO1wiXHJcbiAgICAgICAgICAgICBzcmM9XCJ7e2N1cnJlbnRUb3VyU3RlcD8ubWVkaWF9fVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9udC1jb2xvci1wcmltYXJ5LWxpZ2h0IHB4LTMgbWItM1wiXHJcbiAgICAgICAgIFtpbm5lckh0bWxdPVwiY3VycmVudFRvdXJTdGVwPy50ZXh0IHwgdHJhbnNsYXRlXCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhICpuZ0lmPVwiY3VycmVudFRvdXJTdGVwPy5oZWxwTGlua1wiIGlkPVwie3tjdXJyZW50VG91clN0ZXA/LmlkICsgJ19oZWxwTGluayd9fVwiIGNsYXNzPVwiZC1ibG9jayBtYi0zIHB4LTNcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwie3tjdXJyZW50VG91clN0ZXA/LmhlbHBMaW5rfX1cIiB0cmFuc2xhdGU+TGVhcm5Nb3JlX1NDPC9hPlxyXG4gICAgPGZvb3RlciBjbGFzcz1cInB4LTMgbXQtMyBkLWZsZXhcIj5cclxuICAgICAgICA8YnV0dG9uIGlkPVwie3tjdXJyZW50VG91clN0ZXA/LmlkICsgJ19uZXh0QnV0dG9uJ319XCIgKm5nSWY9XCIhc2hvd0RvbmVCdXR0b25cIiBjbGFzcz1cIm1sLWF1dG8gdG91ckFjdGlvblwiIGVjTGlua0J1dHRvbiAoY2xpY2spPVwic2hvd05leHRTdGVwKClcIiB0cmFuc2xhdGU+TmV4dF9UQzwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gaWQ9XCJ7e2N1cnJlbnRUb3VyU3RlcD8uaWQgKyAnX2RvbmVCdXR0b24nfX1cIiAqbmdJZj1cInNob3dEb25lQnV0dG9uXCIgY2xhc3M9XCJtbC1hdXRvIHRvdXJBY3Rpb25cIiBlY0xpbmtCdXR0b24gKGNsaWNrKT1cImRvbmUoKVwiIHRyYW5zbGF0ZT5Eb25lX1RDPC9idXR0b24+XHJcbiAgICA8L2Zvb3Rlcj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
383
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91ci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b3VyL3RvdXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG91ci90b3VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBZTNDLE1BQU0sT0FBTyxhQUFhO0lBNEJ4QixZQUNVLFdBQXdCLEVBQ3hCLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxZQUEwQixFQUMxQixhQUE0QixFQUM1QixnQkFBa0MsRUFDaEIsUUFBa0I7UUFOcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBN0I5Qzs7V0FFRztRQUNJLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBS3ZDLHFFQUFxRTtRQUM3RCxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTNCLDRIQUE0SDtRQUNwSCxxQkFBZ0IsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FB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SSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZ0IsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZ0IsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFBO1NBQy9EO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGNBQWMsQ0FBQyxRQUFnQjtRQUNyQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxJQUFJLE9BQU8sRUFBRTtZQUNWLE9BQXVCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7MEdBdGFVLGFBQWEsb01BbUNkLFFBQVE7OEZBbkNQLGFBQWEsc0pDbkIxQiwwaENBZWM7MkZESUQsYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxTQUFTOzswQkF1Q2hCLE1BQU07MkJBQUMsUUFBUTs0Q0FUZSxNQUFNO3NCQUF0QyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IENhY2hlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbGVtZXRyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RlbGVtZXRyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQsIFRvb2x0aXBPcHRpb25zIH0gZnJvbSAnLi8uLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbHRpcFNlcnZpY2UgfSBmcm9tICcuLy4uL3Rvb2x0aXAvdG9vbHRpcC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG91ciwgVG91ckFuY2hvciwgVG91ckNhY2hlRW50cnksIFRvdXJFdmVudCwgVG91clN0ZXAgfSBmcm9tICcuL3RvdXItdHlwZXMnO1xyXG5pbXBvcnQgeyBUb3VyU2VydmljZSB9IGZyb20gJy4vdG91ci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtdG91cicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RvdXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RvdXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG91ckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLyoqIEN1cnJlbnQgdG91ciBzdGVwIGJlaW5nIHNob3duIHRvIHRoZSB1c2VyLiBUaGUgY3VzdG9tIGNvbnRlbnQgaW4gdGhlIHRlbXBsYXRlIGlzIGJvdW5kIHRvIHByb3BlcnRpZXMgb24gdGhpcyBhbmQgdGhlcmVmb3IgbmVlZHMgdG8gYmVcclxuICAqICBpdHMgb3duIHByb3BlcnR5LiBUaGUgZXhpdFN0ZXAgaXMgYSB0b3VyIHN0ZXAgYW5kIHRoaXMgd2lsbCBob2xkIHRoYXQgc3RlcCBhdCB0aGUgZW5kIG9mIHRoZSB0b3VyLlxyXG4gICovXHJcbiAgcHVibGljIGN1cnJlbnRUb3VyU3RlcD86IFRvdXJTdGVwO1xyXG5cclxuICAvKiogVXNlZCB0byB0ZWxsIHRoZSBVSSB0aGF0IHRoZSBzdGVwIGJlaW5nIHNob3duIGlzIGFuIGV4aXQgc3RlcC4gVGhpcyB3aWxsIGNoYW5nZSB0aGVcclxuICAgKiAgbGluayB0ZXh0IGFuZCB0aGUgYWN0aW9uIHdoZW4gY2xpY2tlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzaG93RG9uZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSB0b29sdGlwIHVzZWQgZm9yIHRoZSB0b3VyIHN0ZXBzICovXHJcbiAgcHVibGljIHRvb2x0aXA/OiBUb29sdGlwQ29tcG9uZW50O1xyXG5cclxuICAvKiogQXJyYXkgb2YgdG91cnMgcHJvdmlkZWQgd2hlbiB0aGUgc3RhcnQgdG91ciBldmVudCB3YXMgZGV0ZWN0ZWQgKi9cclxuICBwcml2YXRlIHRvdXJzOiBUb3VyW10gPSBbXTtcclxuXHJcbiAgLy8gQ291cGxlIGluZGV4ZXMgZm9yIHRoZSBjdXJyZW50IHRvdXIvc3RlcCBzdG9yZWQgZm9yIGVhc2llciByZWZlcmVuY2Ugd2hlbiBrbm93aW5nIGlmIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBzdGVwcy90b3Vyc1xyXG4gIHByaXZhdGUgY3VycmVudFN0ZXBJbmRleDogbnVtYmVyID0gLTE7XHJcbiAgcHJpdmF0ZSBjdXJyZW50VG91ckluZGV4OiBudW1iZXIgPSAtMTtcclxuXHJcbiAgLyoqIFVzZWQgdG8ga25vdyBpZiB0aGUgcmVzdG9yZSBzdGVwIHNob3VsZCBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgdG91ciBpcyBkaXNtaXNzZWQgKi9cclxuICBwcml2YXRlIGlzQXV0b1N0YXJ0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgndG91clRvb2x0aXAnKSBwdWJsaWMgY3VzdG9tITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRvdXJTZXJ2aWNlOiBUb3VyU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9vbHRpcFNlcnZpY2U6IFRvb2x0aXBTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0ZWxlbWV0cnlTZXJ2aWNlOiBUZWxlbWV0cnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjYWNoZVNlcnZpY2U6IENhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50b3VyU2VydmljZS5ldmVudHMucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxyXG4gICAgKS5zdWJzY3JpYmUoYXN5bmMgZXZlbnQgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQudG91ckFjdGlvbiA9PT0gJ3N0YXJ0Jykge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2V0dXBUb3VyQ29tcG9uZW50KGV2ZW50KTtcclxuICAgICAgfSBlbHNlIGlmIChldmVudC50b3VyQWN0aW9uID09PSAnZW5kJykge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRUb3VyKSB7XHJcbiAgICAgICAgICB0aGlzLndyaXRlQ29tcGxldGlvbktleUZvckFsbFRvdXJzKCk7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmVuZFRvdXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIHdoZW4gYSByZXN0b3JlIHN0ZXAgaGFzIGJlZW4gY29tcGxldGVkXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIGRvbmUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLndyaXRlQ29tcGxldGlvbktleSh0aGlzLmN1cnJlbnRUb3VyKTtcclxuICAgIGF3YWl0IHRoaXMuZW5kVG91cigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIHdoZW4gYSB0b3VyIGJlZ2lucyBhbmQgd2hlbiB0aGUgdXNlciBjbGlja3MgbmV4dCBvbiB0aGUgY3VycmVudCB0b3VyIHN0ZXAuIEl0IHdpbGwgaGFuZGxlIGFueSBhZnRlciBjbGljayBhY3Rpb25zIGFuZCB0aGVuXHJcbiAgICogZmluZCB0aGUgbmV4dCBzdGVwIGFuZCBwcmVzZW50IGl0IHRvIHRoZSB1c2VyIGFuZCB0cmFuc2l0aW9uIHRvIGEgcmVzdG9yZSBzdGVwIG9yIG5ldyB0b3VyIGlmIG5lZWRlZC5cclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgc2hvd05leHRTdGVwKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gQmVmb3JlIG1vdmluZyB0byB0aGUgbmV4dCBzdGVwLCBtYWtlIHN1cmUgdGhlIGN1cnJlbnQgc3RlcCBkb2VzIG5vdCBoYXZlIGEgY2xpY2sgYWZ0ZXIgZGVmaW5lZC4gVGhpcyBjb3VsZCBiZSBoaWRpbmcgYSBtZW51XHJcbiAgICAvLyB0aGF0IHdhcyBvcGVuZWQgZm9yIHRoZSBzb29uIHRvIGJlIHByZXZpb3VzIHN0ZXAuXHJcbiAgICBhd2FpdCB0aGlzLndhaXRGb3JUaW1lb3V0KHRoaXMuaGFuZGxlQ2xpY2tBZnRlci5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICAvLyBSZW1vdmUgYW55IHByZXZpb3VzIHRvb2x0aXBzXHJcbiAgICB0aGlzLnJlbW92ZVRvb2x0aXAoKTtcclxuXHJcbiAgICAvLyBHZXQgb3VyIG5leHQgc3RlcCBpbmRleCB0byBkaXNwbGF5IHRvIHRoZSB1c2VyXHJcbiAgICB0aGlzLmN1cnJlbnRTdGVwSW5kZXggPSB0aGlzLmdldE5leHRBdmFpbGFibGVTdGVwSW5kZXgoKTtcclxuXHJcbiAgICBpZiAodGhpcy5jdXJyZW50U3RlcEluZGV4ID09PSAtMSkge1xyXG4gICAgICAvLyBObyBtb3JlIHN0ZXBzIGZvdW5kLCB3ZSBlaXRoZXIgbmVlZCB0byBjaGVjayBmb3IgdGhlIGV4aXQgc3RlcCBpZiB0aGlzIGlzIHRoZSBsYXN0IHRvdXJcclxuICAgICAgLy8gaW4gdGhlIHRvdXJzIGFycmF5IG9yIGFkdmFuY2UgdG8gdGhlIG5leHQgdG91clxyXG4gICAgICBpZiAodGhpcy5jdXJyZW50VG91ckluZGV4ID09PSB0aGlzLnRvdXJzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUV4aXRTdGVwKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gV3JpdGUgdGhlIGNvbXBsZXRpb24ga2V5IGZvciB0aGUgY3VycmVudCB0b3VyIGJlZm9yZSB3ZSBtb3ZlIHRvIHRoZSBuZXh0XHJcbiAgICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXkodGhpcy5jdXJyZW50VG91cik7XHJcblxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXJJbmRleCsrO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2hvd05leHRUb3VyKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFRvdXJTdGVwID0gdGhpcy5jdXJyZW50VG91cj8uc3RlcHNbdGhpcy5jdXJyZW50U3RlcEluZGV4XTtcclxuXHJcbiAgICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgb3VyIGN1cnJlbnQgc3RlcCBpbmRleCwgdGFrZSBjYXJlIG9mIGFueSBjbGljayBiZWZvcmUgZWxlbWVudHMgYmVmb3JlIHNob3dpbmcgdGhlXHJcbiAgICAgIC8vIHRvb2x0aXAuIFRoaXMgY291bGQgYmUgb3BlbmluZyBhIG1lbnUgdG8gZ2V0IHRoZSB0b29sdGlwIGVsZW1lbnQgdmlzaWJsZS5cclxuICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLmhhbmRsZUNsaWNrQmVmb3JlLmJpbmQodGhpcykpO1xyXG5cclxuICAgICAgLy8gQ2xpY2sgYmVmb3JlcyBhcmUgZG9uZSwgbm93IGxldCdzIHNob3cgdGhlIHRvb2x0aXAgZGVmaW5lZCBpbiB0aGUgdG91ciBzdGVwXHJcbiAgICAgIGF3YWl0IHRoaXMud2FpdEZvclRpbWVvdXQodGhpcy5zaG93U3RlcFRvb2x0aXAuYmluZCh0aGlzKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHNldHVwVG91ckNvbXBvbmVudChldmVudDogVG91ckV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBFbmQgYW55IHRvdXJzIHRoYXQgbWF5IGhhdmUgYmVlbiBpbiBwcm9ncmVzcyBpZiB0aGUgdXNlciBraWNrcyBvZmYgYSBuZXcgb25lXHJcbiAgICBpZiAodGhpcy5jdXJyZW50VG91cikge1xyXG4gICAgICB0aGlzLndyaXRlQ29tcGxldGlvbktleUZvckFsbFRvdXJzKCk7XHJcbiAgICAgIGF3YWl0IHRoaXMuZW5kVG91cigpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNBdXRvU3RhcnQgPSBldmVudC5pc0F1dG9TdGFydDtcclxuXHJcbiAgICBpZiAoZXZlbnQuaXNBdXRvU3RhcnQpIHtcclxuICAgICAgdGhpcy50b3VycyA9IHRoaXMucmVtb3ZlQ29tcGxldGVkVG91cnMoZXZlbnQudG91cnMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50b3VycyA9IGV2ZW50LnRvdXJzO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnRvdXJzLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnNob3dEb25lQnV0dG9uID0gZmFsc2U7XHJcblxyXG4gICAgICB0aGlzLmN1cnJlbnRUb3VyU3RlcCA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5jdXJyZW50U3RlcEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAvLyBQcmltZSB0aGUgaW5kZXggZm9yIHRoZSBmaXJzdCB0b3VyXHJcbiAgICAgIHRoaXMuY3VycmVudFRvdXJJbmRleCA9IDA7XHJcblxyXG4gICAgICBhd2FpdCB0aGlzLnNob3dOZXh0VG91cigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvd3MgYSB0b3VyIGFuZCBlbWl0cyBhbiBldmVudCB0aGF0IGl0IHdhcyBzdGFydGVkXHJcbiAgICogQHBhcmFtIHRvdXJcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHNob3dOZXh0VG91cigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIFRyYWNrIGEgdG91ciBzdGFydGVkIGV2ZW50IGlmIHRoZSBjb25zdW1lciBvZiB0aGUgbGlicmFyeSBoYXMgdGVsZW1ldHJ5IGNvbmZpZ3VyZWRcclxuICAgIHRoaXMudGVsZW1ldHJ5U2VydmljZS50cmFja0V2ZW50KCdUb3VyU3RhcnRlZCcsIHsgdG91cklkOiB0aGlzLmN1cnJlbnRUb3VyIS5pZCB9KTtcclxuXHJcbiAgICBsZXQgY29udGludWVUb3VyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAodGhpcy5pc0F1dG9TdGFydCAmJiB0aGlzLmN1cnJlbnRUb3VySW5kZXggPT09IDAgJiYgdGhpcy5jdXJyZW50VG91cj8uaW50cm9EaWFsb2cpIHtcclxuICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKFxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXIuaW50cm9EaWFsb2cuY29udGVudCEsXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VG91ci5pbnRyb0RpYWxvZy5zaXplID8/ICdzbWFsbCcsXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VG91ci5pbnRyb0RpYWxvZy5jb250ZXh0ID8/IHVuZGVmaW5lZCxcclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VyLmludHJvRGlhbG9nLm9wdGlvbnMgPz8gdW5kZWZpbmVkKS50b1Byb21pc2UoKTtcclxuICAgICAgaWYgKCFyZXN1bHQuc2F2ZSkge1xyXG4gICAgICAgIGNvbnRpbnVlVG91ciA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLndyaXRlQ29tcGxldGlvbktleUZvckFsbFRvdXJzKCk7XHJcbiAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgbGFzdCB0b3VyIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBmb3IgaXRzIGV4aXQgc3RlcFxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXJJbmRleCA9IHRoaXMudG91cnMubGVuZ3RoIC0gMTtcclxuICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUV4aXRTdGVwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29udGludWVUb3VyKSB7XHJcbiAgICAgIHRoaXMuc2hvd05leHRTdGVwKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGVuZFRvdXIoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBIYW5kbGUgYW55IGNsaWNrIGFmdGVycyBmb3IgdGhlIGFjdGl2ZSBzdGVwIHNob3duIGJlZm9yZSBzaHV0dGluZyBpdCBkb3duXHJcbiAgICBhd2FpdCB0aGlzLndhaXRGb3JUaW1lb3V0KHRoaXMuaGFuZGxlQ2xpY2tBZnRlci5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRUb3VyU3RlcCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudG91cnMgPSBbXTtcclxuXHJcbiAgICB0aGlzLnJlbW92ZVRvb2x0aXAoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BsYXlzIGEgdG9vbHRpcCBmb3IgdGhlIGN1cnJlbnQgdG91ciBzdGVwXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhc3luYyBzaG93U3RlcFRvb2x0aXAoKSB7XHJcbiAgICAvLyBUcmFjayBhbiBldmVudCBpZiB0aGUgY29uc3VtZXIgb2YgdGhlIGxpYnJhcnkgaGFzIHRlbGVtZXRyeSBjb25maWd1cmVkXHJcbiAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudHJhY2tFdmVudCgnVG91clN0ZXBDaGFuZ2UnLCB7IHRvdXJJZDogdGhpcy5jdXJyZW50VG91ciEuaWQsIHRvdXJTdGVwSWQ6IHRoaXMuY3VycmVudFRvdXJTdGVwIS5pZCB9KTtcclxuXHJcbiAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmN1cnJlbnRUb3VyU3RlcCEuYW5jaG9yIS5zZWxlY3Rvcik7XHJcblxyXG4gICAgaWYgKHRvb2x0aXBFbGVtZW50KSB7XHJcbiAgICAgIC8vIERlZmF1bHQgd2lkdGggaWYgbm9uZSBwcm92aWRlZFxyXG4gICAgICBsZXQgc3RlcFdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQgPSA0MzI7XHJcblxyXG4gICAgICAvLyBDaGVjayB0aGUgY3VycmVudCB0b3VyIHN0ZXAgd2lkdGggYW5kIGRlY2lkZSBpZiBpdCBuZWVkcyB0byBjaGFuZ2UgZnJvbSB0aGUgZGVmYXVsdCB2YWx1ZVxyXG4gICAgICAvLyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBzdGVwIGRlZmluZWQgaXQgb3Igbm90XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRUb3VyU3RlcD8ud2lkdGggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXJyZW50VG91clN0ZXAud2lkdGggPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICBzdGVwV2lkdGggPSB0aGlzLmN1cnJlbnRUb3VyU3RlcC53aWR0aDtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudFRvdXJTdGVwLndpZHRoID09PSAnYXV0bycpIHtcclxuICAgICAgICAgIHN0ZXBXaWR0aCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IG9wdGlvbnM6IFRvb2x0aXBPcHRpb25zID0ge1xyXG4gICAgICAgIGlkOiBgJHt0aGlzLmN1cnJlbnRUb3VyPy5pZH1fJHt0aGlzLmN1cnJlbnRUb3VyU3RlcCEuaWR9YCxcclxuICAgICAgICB0ZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLmN1cnJlbnRUb3VyU3RlcCEudGV4dCksXHJcbiAgICAgICAgdGl0bGU6IHRoaXMuY3VycmVudFRvdXJTdGVwIS50aXRsZSA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMuY3VycmVudFRvdXJTdGVwIS50aXRsZSkgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgY3VzdG9tQ29udGVudDogdGhpcy5jdXN0b20sXHJcbiAgICAgICAgZGlzbWlzc2libGU6IHRydWUsXHJcbiAgICAgICAgbWF4V2lkdGg6IHRoaXMuY3VycmVudFRvdXJTdGVwPy5tYXhXaWR0aCxcclxuICAgICAgICB3aWR0aDogc3RlcFdpZHRoLFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLWVjLWJhY2tncm91bmQtY29sb3ItdG91ciknLFxyXG4gICAgICAgIHRpdGxlQ29sb3I6ICd2YXIoLS1lYy1jb2xvci10b3VyLXRpdGxlKSdcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHRoaXMudG9vbHRpcCA9IHRoaXMudG9vbHRpcFNlcnZpY2Uuc2hvdyh0b29sdGlwRWxlbWVudCBhcyBIVE1MRWxlbWVudCwgdGhpcy5jdXJyZW50VG91clN0ZXAhLmFuY2hvcj8ucG9zaXRpb24sIG9wdGlvbnMpO1xyXG4gICAgICBhd2FpdCB0aGlzLndhaXRGb3JUaW1lb3V0KHRoaXMuZm9jdXNPbk5leHRPckRvbmVCdXR0b24uYmluZCh0aGlzKSk7XHJcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9Ub29sdGlwT25IaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpYmVzIHRvIHRoZSB0b29sdGlwcyBvbkhpZGUgZXZlbnQgZW1pdHRlciBhbmQgcmVhY3RzIGlmIHRoZSB1c2VyIGRpc21pc3NlcyB0aGUgdG9vbHRpcFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgc3Vic2NyaWJlVG9Ub29sdGlwT25IaWRlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHRvb2x0aXBTdWJzY3JpcHRpb24gPSB0aGlzLnRvb2x0aXA/Lm9uSGlkZS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXHJcbiAgICApLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XHJcbiAgICAgIHRvb2x0aXBTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICB0aGlzLndyaXRlQ29tcGxldGlvbktleUZvckFsbFRvdXJzKCk7XHJcbiAgICAgIC8vIElmIHRoaXMgaXMgZGlzbWlzc2VkIGR1cmluZyBhbiBhdXRvIHN0YXJ0IHRvdXIgdGhlbiBoYW5kbGUgdGhlIGV4aXQgc3RlcFxyXG4gICAgICAvLyBDaGVjayB0aGF0IHRoZSBkb25lIGJ1dHRvbiBpcyBzaG93biBhcyB3ZWxsLCBpZiB0aGUgZG9uZSBpcyBzaG93biB0aGVuIHdlJ3JlIGluIHRoZSBleGl0IHN0ZXBcclxuICAgICAgLy8gYW5kIGRpc21pc3Npbmcgc2hvdWxkIGp1c3QgZW5kIHRoZSB0b3VyXHJcbiAgICAgIGlmICh0aGlzLmlzQXV0b1N0YXJ0ICYmICF0aGlzLnNob3dEb25lQnV0dG9uKSB7XHJcbiAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgbGFzdCB0b3VyIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBmb3IgaXRzIGV4aXQgc3RlcFxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXJJbmRleCA9IHRoaXMudG91cnMubGVuZ3RoIC0gMTtcclxuXHJcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFeGl0U3RlcCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZW5kVG91cigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvb3BzIHRocm91Z2ggdGhlIGN1cnJlbnQgdG91ciBzdGVwcyBzdGFydGluZyBhZnRlciB0aGUgY3VycmVudCBzdGVwIGluZGV4LiBJdCB3aWxsIHRyeSB0byBmaW5kIGEgdmlzaWJsZVxyXG4gICAqIHNlbGVjdG9yIGFuZCBpZiBzbyByZXR1cm4gdGhlIGluZGV4LlxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXROZXh0QXZhaWxhYmxlU3RlcEluZGV4KCk6IG51bWJlciB7XHJcbiAgICBsZXQgbmV4dFN0ZXBJbmRleDogbnVtYmVyID0gLTE7XHJcblxyXG4gICAgLy8gTG9vayB0aHJvdWdoIHRoZSBzdGVwcyBzdGFydGluZyB3aXRoIHRoZSBjdXJyZW50IGluZGV4IGFuZCBmaW5kIHRoZSBuZXh0IHRoYXQgaXMgYXZhaWFibGVcclxuICAgIC8vIGZvciB0aGUgdXNlci5cclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IHRoaXMuY3VycmVudFN0ZXBJbmRleCArIDE7IGkgPCB0aGlzLmN1cnJlbnRUb3VyIS5zdGVwcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAodGhpcy5jdXJyZW50VG91cj8uc3RlcHNbaV0uYW5jaG9yICYmIHRoaXMuc3RlcEVsZW1lbnRGb3VuZCh0aGlzLmN1cnJlbnRUb3VyIS5zdGVwc1tpXS5hbmNob3IhKSkge1xyXG4gICAgICAgIHJldHVybiBpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5leHRTdGVwSW5kZXg7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcnkgdG8gZmluZCB0aGUgdG91ciBzdGVwIGVsZW1lbnQgdG8ga25vdyBpZiBpdCBpcyB2aXNpYmxlIGZvciB0aGUgdXNlci4gQ2hlY2sgZm9yIHRoZSBjbGlja0JlZm9yZSBmaXJzdCBpZiBkZWZpbmVkXHJcbiAgICogQHBhcmFtIGFuY2hvclxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdGVwRWxlbWVudEZvdW5kKGFuY2hvcjogVG91ckFuY2hvcik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGFuY2hvci5jbGlja0JlZm9yZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGFuY2hvci5jbGlja0JlZm9yZSkgIT09IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGFuY2hvci5zZWxlY3RvcikgIT09IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTb21lIHRvdXIgc3RlcHMgbWF5IGhhdmUgYSBjbGljayBhZnRlciBkZWZpbmVkLiBJZiBzbyBjYWxsIHRoZSBjbGljayBtZXRob2Qgb24gdGhlIGh0bWwgZWxlbWVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgaGFuZGxlQ2xpY2tBZnRlcigpOiB2b2lkIHtcclxuICAgIGxldCBzZWxlY3RvciA9IHRoaXMuY3VycmVudFRvdXJTdGVwPy5hbmNob3I/LmNsaWNrQWZ0ZXI7XHJcbiAgICBpZiAoc2VsZWN0b3IpIHtcclxuICAgICAgdGhpcy5jbGlja0VsZW1lbnRJZkZvdW5kKHNlbGVjdG9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvbWUgdG91ciBzdGVwcyBtYXkgaGF2ZSBhIGNsaWNrIGJlZm9yZSBkZWZpbmVkLiBJZiBzbyBjYWxsIHRoZSBjbGljayBtZXRob2Qgb24gdGhlIGh0bWwgZWxlbWVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgaGFuZGxlQ2xpY2tCZWZvcmUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50VG91clN0ZXA/LmFuY2hvcj8uY2xpY2tCZWZvcmUpIHtcclxuICAgICAgdGhpcy5jbGlja0VsZW1lbnRJZkZvdW5kKHRoaXMuY3VycmVudFRvdXJTdGVwLmFuY2hvcj8uY2xpY2tCZWZvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBDaGVja3MgZm9yIGFuIGV4aXQgc3RlcCBvbiB0aGUgY3VycmVudCB0b3VyIGFuZCBpZiBmb3VuZCBkaXNwbGF5cyB0aGUgc3RlcFxyXG4gICovXHJcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVFeGl0U3RlcCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRUb3VyPy5leGl0U3RlcCkge1xyXG4gICAgICB0aGlzLnJlbW92ZVRvb2x0aXAoKTtcclxuXHJcbiAgICAgIHRoaXMuc2hvd0RvbmVCdXR0b24gPSB0cnVlO1xyXG4gICAgICB0aGlzLmN1cnJlbnRUb3VyU3RlcCA9IHRoaXMuY3VycmVudFRvdXI/LmV4aXRTdGVwO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLmhhbmRsZUNsaWNrQmVmb3JlLmJpbmQodGhpcykpO1xyXG4gICAgICBhd2FpdCB0aGlzLndhaXRGb3JUaW1lb3V0KHRoaXMuc2hvd1N0ZXBUb29sdGlwLmJpbmQodGhpcykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJ5IHRvIGZpbmQgdGhlIGVsZW1lbnQgd2l0aCB0aGUgc2VsZWN0b3IgcHJvdmlkZWQgYW5kIGlmIHNvIGNsaWNrIGl0LiBUaGlzIGlzIGhvdyB0b3VyIHN0ZXBzIHdpbGwgb3Blbi9jbG9zZSBtZW51cyB0b1xyXG4gICAqIGdpdmUgYSB0b3VyIHRvIHRoZSB1c2VyXHJcbiAgICogQHBhcmFtIHNlbGVjdG9yXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjbGlja0VsZW1lbnRJZkZvdW5kKHNlbGVjdG9yOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIGlmIChzZWxlY3RvciAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xyXG4gICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgIChlbGVtZW50IGFzIEhUTUxFbGVtZW50KS5jbGljaygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIGF1dG8gc3RhcnRpbmcgdG91cnMgd2Ugd2lsbCB3YW50IHRvIHJlbW92ZSBhbnkgdGhhdCBoYXZlIHRoZSBsb2NhbCBzdG9yYWdlIGtleSB3cml0dGVuIGFzIGNvbXBsZXRlZCBzb1xyXG4gICAqIHRoZXkgYXJlIG5vdCBwcmVzZW50ZWQgdG8gdGhlIHVzZXIgYWdhaW4uXHJcbiAgICogQHBhcmFtIHRvdXJzXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBwcml2YXRlIHJlbW92ZUNvbXBsZXRlZFRvdXJzKHRvdXJzOiBUb3VyW10pOiBUb3VyW10ge1xyXG4gICAgcmV0dXJuIHRvdXJzLmZpbHRlcih0b3VyID0+IHtcclxuICAgICAgbGV0IGNhY2hlVmFsdWUgPSB0aGlzLmNhY2hlU2VydmljZS5nZXRJdGVtPFRvdXJDYWNoZUVudHJ5Pih0aGlzLm1ha2VDYWNoZUtleSh0b3VyKSk7XHJcbiAgICAgIGlmIChjYWNoZVZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuICFjYWNoZVZhbHVlLmNvbXBsZXRlZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXcml0ZXMgYSBrZXkgdG8gbG9jYWwgc3RvcmFnZSBzbyB0aGUgdG91ciB3aWxsIG5vdCBiZSBzaG93biBhZ2FpbiBhdXRvbWF0aWNhbGx5XHJcbiAgICovXHJcbiAgcHJpdmF0ZSB3cml0ZUNvbXBsZXRpb25LZXkodG91cjogVG91ciB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgaWYgKHRvdXIpIHtcclxuICAgICAgdGhpcy5jYWNoZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLm1ha2VDYWNoZUtleSh0b3VyKSwgPFRvdXJDYWNoZUVudHJ5PnsgY29tcGxldGVkOiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBkaXNtaXNzaW5nIGEgdG91ciBvciBvbmUgYmVpbmcgZGlzbWlzc2VkIHZpYSBhIG5hdmlnYXRpb24gZXZlbnQsIGV0YyB3ZSB3aWxsIHdhbnQgdG8gbWFya1xyXG4gICAqIGV2ZXJ5IHRvdXIgaW4gdGhlIGFycmF5IGFzIGNvbXBsZXRlZCBzbyBpdCBkb2Vzbid0IHJlc3VyZmFjZSB1bmxlc3MgdGhlIHVzZXIgcmVxdWVzdHMgdGhlIHRvdXIuXHJcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGxvb3Agb3ZlciBhbGwgYW5kIHdyaXRlIHRoZSBsb2NhbCBzdG9yYWdlIGtleVxyXG4gICAqL1xyXG4gIHByaXZhdGUgd3JpdGVDb21wbGV0aW9uS2V5Rm9yQWxsVG91cnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvdXJzLmZvckVhY2godG91ciA9PiB7XHJcbiAgICAgIHRoaXMud3JpdGVDb21wbGV0aW9uS2V5KHRvdXIpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYWNoZSBrZXkgdXNlZCB0byBzZXQvZ2V0IHRoZSBjb21wbGV0aW9uIHN0YXR1cyBvZiBhIHRvdXJcclxuICAgKiBAcGFyYW0gdG91clxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtYWtlQ2FjaGVLZXkodG91cjogVG91cik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50b3VyU2VydmljZS5nZXRDYWNoZUtleSh0b3VyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgYSB0b29sdGlwIGZyb20gdGhlIHZpZXcsIHVzZWQgd2hlbiBzd2l0Y2hpbmcgdG91ciBzdGVwcyBhbmQgY2xvc2luZyBhIHRvdXJcclxuICAgKi9cclxuICBwcml2YXRlIHJlbW92ZVRvb2x0aXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvb2x0aXA/Lm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHRvdXIgYmFzZWQgb24gdGhlIGN1cnJlbnQgaW5kZXhcclxuICAgKi9cclxuICBwcml2YXRlIGdldCBjdXJyZW50VG91cigpOiBUb3VyIHwgdW5kZWZpbmVkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRUb3VySW5kZXggPiAtMSAmJiB0aGlzLmN1cnJlbnRUb3VySW5kZXggPCB0aGlzLnRvdXJzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy50b3Vyc1t0aGlzLmN1cnJlbnRUb3VySW5kZXhdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBjbGljayBiZWZvcmUvYWZ0ZXIgYW5kIHNob3cgdG9vbHRpcCBmdW5jdGlvbnMgbmVlZCB0byBiZSB3cmFwcGVkIGluIHNldFRpbWVvdXQgZm9yIHRoZSBVSVxyXG4gICAqIHRvIG9wZXJhdGUgY29ycmVjdGx5IGJ1dCBzZXRUaW1lb3V0IGlzIGFuIGFjdGlvbiB3ZSBjYW5ub3QgYXdhaXQgc28gd2UncmUgd3JhcHBpbmcgaXQgaW4gYSBwcm9taXNlIHRvIHJldHVyblxyXG4gICAqIHNvIHRoZSBmdW5jdGlvbiBjYWxscyBjYW4gYXdhaXQgdGhlIGFjdGlvblxyXG4gICAqIEBwYXJhbSBmblxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB3YWl0Rm9yVGltZW91dChmbjogKCkgPT4gdm9pZCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBmbigpO1xyXG4gICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbmQgdGhlIFwibmV4dFwiIG9yIFwiZG9uZVwiIGJ1dHRvbiBhbmQgZm9jdXMgb24gaXQuXHJcbiAgICpcclxuICAgKiBUaGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUsIHNvIGlmIHdlIGNhbm5vdCBmaW5kIHRoZSBuZXh0IGJ1dHRvblxyXG4gICAqIHdlIGxvb2sgZm9yIHRoZSBkb25lIGJ1dHRvbi5cclxuICAgKi9cclxuICBwcml2YXRlIGZvY3VzT25OZXh0T3JEb25lQnV0dG9uKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZvY3VzT25FbGVtZW50KGAjJHt0aGlzLmN1cnJlbnRUb3VyU3RlcCEuaWR9X25leHRCdXR0b25gKSkge1xyXG4gICAgICB0aGlzLmZvY3VzT25FbGVtZW50KGAjJHt0aGlzLmN1cnJlbnRUb3VyU3RlcCEuaWR9X2RvbmVCdXR0b25gKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmluZCBhbiBlbGVtZW50IHdpdGggZ2l2ZW4gc2VsZWN0b3IgYW5kIGZvY3VzIG9uIGl0LlxyXG4gICAqIFJldHVybiBmYWxzZSBpZiBlbGVtZW50IG5vdCBmb3VuZC5cclxuICAgKi9cclxuICBwcml2YXRlIGZvY3VzT25FbGVtZW50KHNlbGVjdG9yOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xyXG4gICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgKGVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI3RvdXJUb29sdGlwPlxyXG4gICAgPGRpdiAqbmdJZj1cImN1cnJlbnRUb3VyU3RlcD8ubWVkaWFcIlxyXG4gICAgICAgICBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICA8aW1nIGlkPVwie3tjdXJyZW50VG91clN0ZXA/LmlkICsgJ19tZWRpYSd9fVwiXHJcbiAgICAgICAgICAgICBzdHlsZT1cIm1heC13aWR0aDogMTAwJTtcIlxyXG4gICAgICAgICAgICAgc3JjPVwie3tjdXJyZW50VG91clN0ZXA/Lm1lZGlhfX1cIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZvbnQtY29sb3ItcHJpbWFyeS1saWdodCBweC0zIG1iLTNcIlxyXG4gICAgICAgICBbaW5uZXJIdG1sXT1cImN1cnJlbnRUb3VyU3RlcD8udGV4dCB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YSAqbmdJZj1cImN1cnJlbnRUb3VyU3RlcD8uaGVscExpbmtcIiBpZD1cInt7Y3VycmVudFRvdXJTdGVwPy5pZCArICdfaGVscExpbmsnfX1cIiBjbGFzcz1cImQtYmxvY2sgbWItMyBweC0zXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cInt7Y3VycmVudFRvdXJTdGVwPy5oZWxwTGlua319XCIgdHJhbnNsYXRlPkxlYXJuTW9yZV9TQzwvYT5cclxuICAgIDxmb290ZXIgY2xhc3M9XCJweC0zIG10LTMgZC1mbGV4XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBpZD1cInt7Y3VycmVudFRvdXJTdGVwPy5pZCArICdfbmV4dEJ1dHRvbid9fVwiICpuZ0lmPVwiIXNob3dEb25lQnV0dG9uXCIgY2xhc3M9XCJtbC1hdXRvIHRvdXJBY3Rpb25cIiBlY0xpbmtCdXR0b24gKGNsaWNrKT1cInNob3dOZXh0U3RlcCgpXCIgdHJhbnNsYXRlPk5leHRfVEM8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGlkPVwie3tjdXJyZW50VG91clN0ZXA/LmlkICsgJ19kb25lQnV0dG9uJ319XCIgKm5nSWY9XCJzaG93RG9uZUJ1dHRvblwiIGNsYXNzPVwibWwtYXV0byB0b3VyQWN0aW9uXCIgZWNMaW5rQnV0dG9uIChjbGljayk9XCJkb25lKClcIiB0cmFuc2xhdGU+RG9uZV9UQzwvYnV0dG9uPlxyXG4gICAgPC9mb290ZXI+XHJcbjwvbmctdGVtcGxhdGU+Il19
@@ -1,12 +1,14 @@
1
1
  import { Component, Input, HostBinding, Output, EventEmitter, ViewChild } from '@angular/core';
2
2
  import { MenuComponent } from '../../controls/menu/menu.component';
3
3
  import { HierarchyTreeComponent } from '../hierarchy/hierarchy-tree/hierarchy-tree.component';
4
- import { Overlay, ViewOverlayComponent } from '../view-overlay/view-overlay.component';
5
- import { TranslateModule } from '@ngx-translate/core';
6
- import { DropdownComponent } from '../../controls/dropdown/dropdown.component';
7
- import { NgIf } from '@angular/common';
4
+ import { Overlay } from '../view-overlay/view-overlay.component';
8
5
  import * as i0 from "@angular/core";
9
- import * as i1 from "@ngx-translate/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "../view-overlay/view-overlay.component";
8
+ import * as i3 from "../../controls/menu/menu.component";
9
+ import * as i4 from "../../controls/dropdown/dropdown.component";
10
+ import * as i5 from "../hierarchy/hierarchy-tree/hierarchy-tree.component";
11
+ import * as i6 from "@ngx-translate/core";
10
12
  export class TreeComponent {
11
13
  /**
12
14
  * The ID of the component, bound to the host element's id attribute and passed
@@ -51,6 +53,8 @@ export class TreeComponent {
51
53
  this.treeSelection = new EventEmitter();
52
54
  /** Emits when a hierarchy tree item is expanded as a hook to load the item's children */
53
55
  this.getTreeItemChildren = new EventEmitter();
56
+ /** Emits when a hierarchy tree item is expanded or collapsed */
57
+ this.treeItemToggled = new EventEmitter();
54
58
  this.templateType = 'label';
55
59
  }
56
60
  /** Emits when a tree item is selected */
@@ -61,6 +65,10 @@ export class TreeComponent {
61
65
  onHierarchyGetItemChildren(item) {
62
66
  this.getTreeItemChildren.emit(item);
63
67
  }
68
+ /** Emits when a hierarchy tree item is expanded or collapsed */
69
+ onHierarchyItemToggled(item) {
70
+ this.treeItemToggled.emit(item);
71
+ }
64
72
  /** Scroll to the tree item that is currently selected. */
65
73
  scrollToSelectedItem() {
66
74
  if (this.menuComponent) {
@@ -72,10 +80,10 @@ export class TreeComponent {
72
80
  }
73
81
  }
74
82
  TreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
75
- TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TreeComponent, isStandalone: true, selector: "ec-tree", inputs: { id: "id", treeTitle: "treeTitle", hideTreeHeader: "hideTreeHeader", treeItems: "treeItems", treeHierarchyHideRootNode: "treeHierarchyHideRootNode", treeHierarchy: "treeHierarchy", treeMenuMaintainSelectedItem: "treeMenuMaintainSelectedItem", customTreeMenuTemplate: "customTreeMenuTemplate", customHierarchyItemTemplate: "customHierarchyItemTemplate", status: "status", type: "type", menuItems: "menuItems", menuStatus: "menuStatus", menuTemplateType: "menuTemplateType", preserveIconSpace: "preserveIconSpace", templateType: "templateType" }, outputs: { treeSelection: "treeSelection", getTreeItemChildren: "getTreeItemChildren" }, host: { properties: { "attr.id": "this.attrId" } }, viewQueries: [{ propertyName: "menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "hierarchyTreeComponent", first: true, predicate: HierarchyTreeComponent, descendants: true }], ngImport: i0, template: "<header *ngIf=\"!hideTreeHeader\"\r\n class=\"flex-shrink d-flex align-items-center\">\r\n <h2 id=\"{{id}}_title\"\r\n class=\"flex-grow mr-2 text-heading-1\">{{treeTitle | translate}}</h2>\r\n <ec-dropdown *ngIf=\"menuItems?.length\"\r\n id=\"{{id}}_dropdown\"\r\n class=\"flex-shrink\"\r\n icon=\"icon-menu\"\r\n [menuTemplateType]=\"menuTemplateType\"\r\n menuPosition=\"left\"\r\n [status]=\"menuStatus\"\r\n [popupFixed]=\"true\"\r\n [showArrow]=\"false\"\r\n [menuMinWidth]=\"240\"\r\n [items]=\"menuItems\">\r\n </ec-dropdown>\r\n</header>\r\n\r\n<div class=\"flex-grow d-flex\"\r\n ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [displayAsMask]=\"true\">\r\n <ng-container *ngIf=\"type === 'menu'\">\r\n <ec-menu [id]=\"id\"\r\n [items]=\"treeItems\"\r\n [templateType]=\"templateType\"\r\n [maintainSelectedItem]=\"treeMenuMaintainSelectedItem\"\r\n [truncateItems]=\"true\"\r\n (selectedChanged)=\"onItemSelected($event)\"\r\n [customMenuTemplate]=\"customTreeMenuTemplate ? customTreeMenuTemplate : undefined\"\r\n [preserveIconSpace]=\"preserveIconSpace\"\r\n class=\"flex-grow\">\r\n </ec-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"type === 'hierarchy'\">\r\n <ec-hierarchy-tree [id]=\"id\"\r\n [rootNode]=\"treeHierarchy\"\r\n [hideRootNode]=\"treeHierarchyHideRootNode\"\r\n (getItemChildren)=\"onHierarchyGetItemChildren($event)\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n [customItemTemplate]=\"customHierarchyItemTemplate\"\r\n class=\"flex-grow d-flex\">\r\n </ec-hierarchy-tree>\r\n </ng-container>\r\n</div>", styles: [":host{display:flex;flex-direction:column}header{height:var(--ec-tree-height-header, 3rem);background-color:var(--ec-tree-background-color, var(--ec-background-color));padding:var(--ec-tree-padding-header, 0 .25rem 0 .5rem);border-bottom:var(--ec-tree-border-bottom-header, var(--ec-border-width) solid var(--ec-border-color))}ec-dropdown.fill{height:var(--ec-tree-height-header, 3rem);width:var(--ec-tree-height-header, 3rem)}ec-menu,ec-hierarchy-tree{--ec-menu-background-color: var(--ec-tree-background-color)}[ecOverlay]{--ec-overlay-background-color: var(--ec-tree-background-color)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropdownComponent, selector: "ec-dropdown", inputs: ["id", "autofocus", "status", "disabled", "label", "icon", "buttonType", "buttonAlignment", "buttonTitle", "tabindex", "showArrow", "items", "menuTemplateType", "menuTitle", "menuHeight", "menuWidth", "menuMinWidth", "menuPosition", "menuFooter", "popupFixed", "buttonCustomTemplate", "pending"], outputs: ["itemSelected", "popupOpened"] }, { kind: "component", type: ViewOverlayComponent, selector: "[ecOverlay]", inputs: ["status", "message", "action", "noDataTemplate", "displayAsMask", "overlayClassList"] }, { kind: "component", type: MenuComponent, selector: "ec-menu", inputs: ["id", "items", "selected", "parent", "templateType", "customMenuTemplate", "title", "showNoItems", "noDataText", "enableKeyNav", "highlightedItem", "maintainSelectedItem", "truncateItems", "preserveIconSpace", "dropdownToggleButton"], outputs: ["selectedChanged", "menuClosed"] }, { kind: "component", type: HierarchyTreeComponent, selector: "ec-hierarchy-tree", inputs: ["id", "hideRootNode", "customItemTemplate"], outputs: ["itemSelected"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
83
+ TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TreeComponent, selector: "ec-tree", inputs: { id: "id", treeTitle: "treeTitle", hideTreeHeader: "hideTreeHeader", treeItems: "treeItems", treeHierarchyHideRootNode: "treeHierarchyHideRootNode", treeHierarchy: "treeHierarchy", treeMenuMaintainSelectedItem: "treeMenuMaintainSelectedItem", customTreeMenuTemplate: "customTreeMenuTemplate", customHierarchyItemTemplate: "customHierarchyItemTemplate", status: "status", type: "type", menuItems: "menuItems", menuStatus: "menuStatus", menuTemplateType: "menuTemplateType", preserveIconSpace: "preserveIconSpace", templateType: "templateType" }, outputs: { treeSelection: "treeSelection", getTreeItemChildren: "getTreeItemChildren", treeItemToggled: "treeItemToggled" }, host: { properties: { "attr.id": "this.attrId" } }, viewQueries: [{ propertyName: "menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "hierarchyTreeComponent", first: true, predicate: HierarchyTreeComponent, descendants: true }], ngImport: i0, template: "<header *ngIf=\"!hideTreeHeader\"\r\n class=\"flex-shrink d-flex align-items-center\">\r\n <h2 id=\"{{id}}_title\"\r\n class=\"flex-grow mr-2 text-heading-1\">{{treeTitle | translate}}</h2>\r\n <ec-dropdown *ngIf=\"menuItems?.length\"\r\n id=\"{{id}}_dropdown\"\r\n class=\"flex-shrink\"\r\n icon=\"icon-menu\"\r\n [menuTemplateType]=\"menuTemplateType\"\r\n menuPosition=\"left\"\r\n [status]=\"menuStatus\"\r\n [popupFixed]=\"true\"\r\n [showArrow]=\"false\"\r\n [menuMinWidth]=\"240\"\r\n [items]=\"menuItems\">\r\n </ec-dropdown>\r\n</header>\r\n\r\n<div class=\"flex-grow d-flex\"\r\n ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [displayAsMask]=\"true\">\r\n <ng-container *ngIf=\"type === 'menu'\">\r\n <ec-menu [id]=\"id\"\r\n [items]=\"treeItems\"\r\n [templateType]=\"templateType\"\r\n [maintainSelectedItem]=\"treeMenuMaintainSelectedItem\"\r\n [truncateItems]=\"true\"\r\n (selectedChanged)=\"onItemSelected($event)\"\r\n [customMenuTemplate]=\"customTreeMenuTemplate ? customTreeMenuTemplate : undefined\"\r\n [preserveIconSpace]=\"preserveIconSpace\"\r\n class=\"flex-grow\">\r\n </ec-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"type === 'hierarchy'\">\r\n <ec-hierarchy-tree [id]=\"id\"\r\n [rootNode]=\"treeHierarchy\"\r\n [hideRootNode]=\"treeHierarchyHideRootNode\"\r\n (getItemChildren)=\"onHierarchyGetItemChildren($event)\"\r\n (itemToggled)=\"onHierarchyItemToggled($event)\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n [customItemTemplate]=\"customHierarchyItemTemplate\"\r\n class=\"flex-grow d-flex\">\r\n </ec-hierarchy-tree>\r\n </ng-container>\r\n</div>", styles: [":host{display:flex;flex-direction:column}header{height:var(--ec-tree-height-header, 3rem);background-color:var(--ec-tree-background-color, var(--ec-background-color));padding:var(--ec-tree-padding-header, 0 .25rem 0 .5rem);border-bottom:var(--ec-tree-border-bottom-header, var(--ec-border-width) solid var(--ec-border-color))}ec-dropdown.fill{height:var(--ec-tree-height-header, 3rem);width:var(--ec-tree-height-header, 3rem)}ec-menu,ec-hierarchy-tree{--ec-menu-background-color: var(--ec-tree-background-color)}[ecOverlay]{--ec-overlay-background-color: var(--ec-tree-background-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ViewOverlayComponent, selector: "[ecOverlay]", inputs: ["status", "message", "action", "noDataTemplate", "displayAsMask", "overlayClassList"] }, { kind: "component", type: i3.MenuComponent, selector: "ec-menu", inputs: ["id", "items", "selected", "parent", "templateType", "customMenuTemplate", "title", "showNoItems", "noDataText", "enableKeyNav", "highlightedItem", "maintainSelectedItem", "truncateItems", "preserveIconSpace", "dropdownToggleButton"], outputs: ["selectedChanged", "menuClosed"] }, { kind: "component", type: i4.DropdownComponent, selector: "ec-dropdown", inputs: ["id", "autofocus", "status", "disabled", "label", "icon", "buttonType", "buttonAlignment", "buttonTitle", "tabindex", "showArrow", "items", "menuTemplateType", "menuTitle", "menuHeight", "menuWidth", "menuMinWidth", "menuPosition", "menuFooter", "popupFixed", "buttonCustomTemplate", "pending"], outputs: ["itemSelected", "popupOpened"] }, { kind: "component", type: i5.HierarchyTreeComponent, selector: "ec-hierarchy-tree", inputs: ["id", "hideRootNode", "customItemTemplate"], outputs: ["itemSelected"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
76
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeComponent, decorators: [{
77
85
  type: Component,
78
- args: [{ selector: 'ec-tree', standalone: true, imports: [NgIf, DropdownComponent, ViewOverlayComponent, MenuComponent, HierarchyTreeComponent, TranslateModule], template: "<header *ngIf=\"!hideTreeHeader\"\r\n class=\"flex-shrink d-flex align-items-center\">\r\n <h2 id=\"{{id}}_title\"\r\n class=\"flex-grow mr-2 text-heading-1\">{{treeTitle | translate}}</h2>\r\n <ec-dropdown *ngIf=\"menuItems?.length\"\r\n id=\"{{id}}_dropdown\"\r\n class=\"flex-shrink\"\r\n icon=\"icon-menu\"\r\n [menuTemplateType]=\"menuTemplateType\"\r\n menuPosition=\"left\"\r\n [status]=\"menuStatus\"\r\n [popupFixed]=\"true\"\r\n [showArrow]=\"false\"\r\n [menuMinWidth]=\"240\"\r\n [items]=\"menuItems\">\r\n </ec-dropdown>\r\n</header>\r\n\r\n<div class=\"flex-grow d-flex\"\r\n ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [displayAsMask]=\"true\">\r\n <ng-container *ngIf=\"type === 'menu'\">\r\n <ec-menu [id]=\"id\"\r\n [items]=\"treeItems\"\r\n [templateType]=\"templateType\"\r\n [maintainSelectedItem]=\"treeMenuMaintainSelectedItem\"\r\n [truncateItems]=\"true\"\r\n (selectedChanged)=\"onItemSelected($event)\"\r\n [customMenuTemplate]=\"customTreeMenuTemplate ? customTreeMenuTemplate : undefined\"\r\n [preserveIconSpace]=\"preserveIconSpace\"\r\n class=\"flex-grow\">\r\n </ec-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"type === 'hierarchy'\">\r\n <ec-hierarchy-tree [id]=\"id\"\r\n [rootNode]=\"treeHierarchy\"\r\n [hideRootNode]=\"treeHierarchyHideRootNode\"\r\n (getItemChildren)=\"onHierarchyGetItemChildren($event)\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n [customItemTemplate]=\"customHierarchyItemTemplate\"\r\n class=\"flex-grow d-flex\">\r\n </ec-hierarchy-tree>\r\n </ng-container>\r\n</div>", styles: [":host{display:flex;flex-direction:column}header{height:var(--ec-tree-height-header, 3rem);background-color:var(--ec-tree-background-color, var(--ec-background-color));padding:var(--ec-tree-padding-header, 0 .25rem 0 .5rem);border-bottom:var(--ec-tree-border-bottom-header, var(--ec-border-width) solid var(--ec-border-color))}ec-dropdown.fill{height:var(--ec-tree-height-header, 3rem);width:var(--ec-tree-height-header, 3rem)}ec-menu,ec-hierarchy-tree{--ec-menu-background-color: var(--ec-tree-background-color)}[ecOverlay]{--ec-overlay-background-color: var(--ec-tree-background-color)}\n"] }]
86
+ args: [{ selector: 'ec-tree', template: "<header *ngIf=\"!hideTreeHeader\"\r\n class=\"flex-shrink d-flex align-items-center\">\r\n <h2 id=\"{{id}}_title\"\r\n class=\"flex-grow mr-2 text-heading-1\">{{treeTitle | translate}}</h2>\r\n <ec-dropdown *ngIf=\"menuItems?.length\"\r\n id=\"{{id}}_dropdown\"\r\n class=\"flex-shrink\"\r\n icon=\"icon-menu\"\r\n [menuTemplateType]=\"menuTemplateType\"\r\n menuPosition=\"left\"\r\n [status]=\"menuStatus\"\r\n [popupFixed]=\"true\"\r\n [showArrow]=\"false\"\r\n [menuMinWidth]=\"240\"\r\n [items]=\"menuItems\">\r\n </ec-dropdown>\r\n</header>\r\n\r\n<div class=\"flex-grow d-flex\"\r\n ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [displayAsMask]=\"true\">\r\n <ng-container *ngIf=\"type === 'menu'\">\r\n <ec-menu [id]=\"id\"\r\n [items]=\"treeItems\"\r\n [templateType]=\"templateType\"\r\n [maintainSelectedItem]=\"treeMenuMaintainSelectedItem\"\r\n [truncateItems]=\"true\"\r\n (selectedChanged)=\"onItemSelected($event)\"\r\n [customMenuTemplate]=\"customTreeMenuTemplate ? customTreeMenuTemplate : undefined\"\r\n [preserveIconSpace]=\"preserveIconSpace\"\r\n class=\"flex-grow\">\r\n </ec-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"type === 'hierarchy'\">\r\n <ec-hierarchy-tree [id]=\"id\"\r\n [rootNode]=\"treeHierarchy\"\r\n [hideRootNode]=\"treeHierarchyHideRootNode\"\r\n (getItemChildren)=\"onHierarchyGetItemChildren($event)\"\r\n (itemToggled)=\"onHierarchyItemToggled($event)\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n [customItemTemplate]=\"customHierarchyItemTemplate\"\r\n class=\"flex-grow d-flex\">\r\n </ec-hierarchy-tree>\r\n </ng-container>\r\n</div>", styles: [":host{display:flex;flex-direction:column}header{height:var(--ec-tree-height-header, 3rem);background-color:var(--ec-tree-background-color, var(--ec-background-color));padding:var(--ec-tree-padding-header, 0 .25rem 0 .5rem);border-bottom:var(--ec-tree-border-bottom-header, var(--ec-border-width) solid var(--ec-border-color))}ec-dropdown.fill{height:var(--ec-tree-height-header, 3rem);width:var(--ec-tree-height-header, 3rem)}ec-menu,ec-hierarchy-tree{--ec-menu-background-color: var(--ec-tree-background-color)}[ecOverlay]{--ec-overlay-background-color: var(--ec-tree-background-color)}\n"] }]
79
87
  }], ctorParameters: function () { return []; }, propDecorators: { attrId: [{
80
88
  type: HostBinding,
81
89
  args: ['attr.id']
@@ -113,6 +121,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
113
121
  type: Output
114
122
  }], getTreeItemChildren: [{
115
123
  type: Output
124
+ }], treeItemToggled: [{
125
+ type: Output
116
126
  }], menuComponent: [{
117
127
  type: ViewChild,
118
128
  args: [MenuComponent]
@@ -122,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
122
132
  }], templateType: [{
123
133
  type: Input
124
134
  }] } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLG9DQUFvQyxDQUFDO0FBRS9GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFXdkMsTUFBTSxPQUFPLGFBQWE7SUFLeEI7OztPQUdHO0lBQ0gsSUFDVyxFQUFFLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQUEsQ0FBQztJQUNGLElBQVcsRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBa0VEO1FBaEZBLGtEQUFrRDtRQUNuQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBYzNDLFFBQUcsR0FBVyxFQUFFLENBQUM7UUFFekIsK0NBQStDO1FBQy9CLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkMsNkNBQTZDO1FBQzdCLG1CQUFjLEdBQWEsS0FBSyxDQUFDO1FBV2pEOzs7O1dBSUc7UUFDYSxpQ0FBNEIsR0FBWSxJQUFJLENBQUM7UUFRN0QsbUJBQW1CO1FBQ0gsV0FBTSxHQUFhLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTFELDhFQUE4RTtRQUM5RCxTQUFJLEdBQWMsV0FBVyxDQUFDO1FBSzlDLGlDQUFpQztRQUNqQixlQUFVLEdBQWEsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUQsNkJBQTZCO1FBQ2IscUJBQWdCLEdBQXNCLGVBQWUsQ0FBQztRQUV0RTs7O1dBR0c7UUFDYSxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFFbkQseURBQXlEO1FBQ3hDLGtCQUFhLEdBQTJDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUYseUZBQXlGO1FBQ3hFLHdCQUFtQixHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBUXZFLGlCQUFZLEdBQXFCLE9BQU8sQ0FBQztJQUV6QyxDQUFDO0lBRWpCLHlDQUF5QztJQUNsQyxjQUFjLENBQUMsSUFBOEI7UUFDbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELCtFQUErRTtJQUN4RSwwQkFBMEIsQ0FBQyxJQUFtQjtRQUNuRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCwwREFBMEQ7SUFDbkQsb0JBQW9CO1FBQ3pCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDM0M7UUFFRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMvQixJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUNwRDtJQUNILENBQUM7OzBHQXZHVSxhQUFhOzhGQUFiLGFBQWEseXlCQTJFYixhQUFhLHlGQUdiLHNCQUFzQixnRENoR25DLCs4REE4Q00sdW9CRDlCUSxJQUFJLDZGQUFFLGlCQUFpQixtWkFBRSxvQkFBb0Isd0pBQUUsYUFBYSxvVkFBRSxzQkFBc0IsOElBQUUsZUFBZTsyRkFFdEcsYUFBYTtrQkFQekIsU0FBUzsrQkFDSSxTQUFTLGNBR1AsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBRSxlQUFlLENBQUM7MEVBS25GLE1BQU07c0JBQXBDLFdBQVc7dUJBQUMsU0FBUztnQkFPWCxFQUFFO3NCQURaLEtBQUs7Z0JBV1UsU0FBUztzQkFBeEIsS0FBSztnQkFHVSxjQUFjO3NCQUE3QixLQUFLO2dCQUdVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBR1UseUJBQXlCO3NCQUF4QyxLQUFLO2dCQUdVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBT1UsNEJBQTRCO3NCQUEzQyxLQUFLO2dCQUdVLHNCQUFzQjtzQkFBckMsS0FBSztnQkFHVSwyQkFBMkI7c0JBQTFDLEtBQUs7Z0JBR1UsTUFBTTtzQkFBckIsS0FBSztnQkFHVSxJQUFJO3NCQUFuQixLQUFLO2dCQUdVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBR1UsVUFBVTtzQkFBekIsS0FBSztnQkFHVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBTVUsaUJBQWlCO3NCQUFoQyxLQUFLO2dCQUdXLGFBQWE7c0JBQTdCLE1BQU07Z0JBR1UsbUJBQW1CO3NCQUFuQyxNQUFNO2dCQUcwQixhQUFhO3NCQUE3QyxTQUFTO3VCQUFDLGFBQWE7Z0JBR2tCLHNCQUFzQjtzQkFBL0QsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBRWpCLFlBQVk7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZywgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCwgTWVudUl0ZW0sIE1lbnVUZW1wbGF0ZVR5cGUgfSBmcm9tICcuLi8uLi9jb250cm9scy9tZW51L21lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSGllcmFyY2h5SXRlbSB9IGZyb20gJy4uL2hpZXJhcmNoeS9oaWVyYXJjaHktYmFzZSc7XHJcbmltcG9ydCB7IEhpZXJhcmNoeVRyZWVDb21wb25lbnQgfSBmcm9tICcuLi9oaWVyYXJjaHkvaGllcmFyY2h5LXRyZWUvaGllcmFyY2h5LXRyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3ZlcmxheSwgVmlld092ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuLi92aWV3LW92ZXJsYXkvdmlldy1vdmVybGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuZXhwb3J0IHR5cGUgVHJlZVR5cGUgPSAnaGllcmFyY2h5JyB8ICdtZW51JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdlYy10cmVlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi90cmVlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3RyZWUuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdJZiwgRHJvcGRvd25Db21wb25lbnQsIFZpZXdPdmVybGF5Q29tcG9uZW50LCBNZW51Q29tcG9uZW50LCBIaWVyYXJjaHlUcmVlQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmVlQ29tcG9uZW50IHtcclxuXHJcbiAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaG9zdCBlbGVtZW50cyBpZCBhdHRyaWJ1dGUgKi9cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBwdWJsaWMgYXR0cklkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIElEIG9mIHRoZSBjb21wb25lbnQsIGJvdW5kIHRvIHRoZSBob3N0IGVsZW1lbnQncyBpZCBhdHRyaWJ1dGUgYW5kIHBhc3NlZFxyXG4gICAqIHRvIGNoaWxkIGNvbXBvbmVudHNcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5faWQgPSB2YWx1ZTtcclxuICAgIHRoaXMuYXR0cklkID0gdmFsdWU7XHJcbiAgfTtcclxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5faWQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2lkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIFRoZSB0cmVlJ3MgdGl0bGUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZVRpdGxlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIEhpZGVzIHRoZSB0cmVlIGhlYWRlciB3aGVuIHNldCB0byB0cnVlICovXHJcbiAgQElucHV0KCkgcHVibGljIGhpZGVUcmVlSGVhZGVyPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogSXRlbXMgdG8gZGlzcGxheSBpbiB0aGUgdHJlZSB3aGVuIHR5cGUgaXMgJ21lbnUnICovXHJcbiAgQElucHV0KCkgcHVibGljIHRyZWVJdGVtcz86IE1lbnVJdGVtW107XHJcblxyXG4gIC8qKiBIaWRlIHRoZSByb290IHRyZWUgaXRlbSB3aGVuIHR5cGUgaXMgJ2hpZXJhcmNoeScgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZUhpZXJhcmNoeUhpZGVSb290Tm9kZT86IGJvb2xlYW47XHJcblxyXG4gIC8qKiBJdGVtcyB0byBkaXNwbGF5IGluIHRoZSB0cmVlIHdoZW4gdHlwZSBpcyAnaGllcmFyY2h5JyAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0cmVlSGllcmFyY2h5PzogSGllcmFyY2h5SXRlbTtcclxuXHJcbiAgLyoqIFVzZWQgd2hlbiB0aGUgdHJlZSBpcyBpbiBtZW51IG1vZGUgdG8gdGVsbCB0aGUgbWVudSBpZiBpdCBzaG91bGQgbWFpbnRhaW4gdGhlIHNlbGVjdGVkIGl0ZW1cclxuICAgKiAgVXNlZnVsIGluIHNpZGUgbmF2IGNvbXBvbmVudHMgd2hlcmUgdGhpcyB0cmVlIGNvbXBvbmVudCBtYXkgZXhpc3QgYWxvbmdzaWRlIG90aGVyIHRyZWVzIG9yIG1lbnVzXHJcbiAgICogIHVzZWQgZm9yIG5hdmlnYXRpb24uIElmIHRoaXMgdHJlZSBpcyBpbiBtZW51IG1vZGUgeW91IHdvdWxkIHdhbnQgdGhpcyBzZXQgdG8gZmFsc2Ugc28gd2hlbiB5b3Ugc2VsZWN0IGFuIGl0ZW1cclxuICAgKiAgZnJvbSBhIHNpYmxpbmcgbmF2aWdhdGlvbiBlbGVtZW50IHRoZSBzZWxlY3Rpb24gd2lsbCBub3QgYmUgbWFpbnRhaW5lZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZU1lbnVNYWludGFpblNlbGVjdGVkSXRlbTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKiBVc2VkIHdoZW4gYSBjdXN0b20gdGVtcGxhdGUgaXMgbmVlZGVkIGZvciB0aGUgbWVudSBpdGVtcyB3aGVuIHRoZSB0cmVlIGlzIGluIG1lbnUgbW9kZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21UcmVlTWVudVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLyoqIFVzZWQgd2hlbiBhIGN1c3RvbSB0ZW1wbGF0ZSBpcyBuZWVkZWQgZm9yIHRoZSBoaWVyYXJjaHkgaXRlbXMgd2hlbiB0aGUgdHJlZSBpcyBpbiBoaWVyYXJjaHkgbW9kZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21IaWVyYXJjaHlJdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvKiogVHJlZSBvdmVybGF5ICovXHJcbiAgQElucHV0KCkgcHVibGljIHN0YXR1cz86IE92ZXJsYXkgPSBuZXcgT3ZlcmxheSgnaGFzRGF0YScpO1xyXG5cclxuICAvKiogRGlzcGxheSB0aGUgdHJlZSBpdGVtcyB3aXRoIGEgTWVudUNvbXBvbmVudCBvciBhIEhpZXJhcmNoeVRyZWVDb21wb25lbnQgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHlwZT86IFRyZWVUeXBlID0gJ2hpZXJhcmNoeSc7XHJcblxyXG4gIC8qKiBJdGVtcyB0byBkaXNwbGF5IGluIHRoZSBkcm9wZG93biBtZW51ICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVJdGVtcz86IE1lbnVJdGVtW107XHJcblxyXG4gIC8qKiBUcmVlIGRyb3Bkb3duIG1lbnUgb3ZlcmxheSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51U3RhdHVzPzogT3ZlcmxheSA9IG5ldyBPdmVybGF5KCdoYXNEYXRhJyk7XHJcblxyXG4gIC8qKiBUaGUgbWVudSBpdGVtIHRlbXBsYXRlICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVUZW1wbGF0ZVR5cGU/OiBNZW51VGVtcGxhdGVUeXBlID0gXCJjaGVja0FuZExhYmVsXCI7XHJcblxyXG4gIC8qKiBcclxuICAgKiBXaGVuIHRydWUsIHRoZSBzcGFjZSBmb3IgdGhlIGljb24gaXMgcHJlc2VydmVkIGZvciBtZW51IGl0ZW1zIHRoYXQgZG8gbm90IGhhdmUgaWNvbnMuXHJcbiAgICogT25seSBhcHBsaWNhYmxlIGZvciBpY29uQW5kTGFiZWwgbWVudXMuIE5vdCBhcHBsaWNhYmxlIHRvIGhpZXJhcmNoeSB0cmVlcy5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgcHJlc2VydmVJY29uU3BhY2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIEVtaXRzIHRoZSBpdGVtIGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtIGluIHRoZSB0cmVlICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyB0cmVlU2VsZWN0aW9uOiBFdmVudEVtaXR0ZXI8TWVudUl0ZW0gfCBIaWVyYXJjaHlJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gYSBoaWVyYXJjaHkgdHJlZSBpdGVtIGlzIGV4cGFuZGVkIGFzIGEgaG9vayB0byBsb2FkIHRoZSBpdGVtJ3MgY2hpbGRyZW4gKi9cclxuICBAT3V0cHV0KCkgcHVibGljIGdldFRyZWVJdGVtQ2hpbGRyZW46IEV2ZW50RW1pdHRlcjxIaWVyYXJjaHlJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgTWVudUNvbXBvbmVudCBpbnN0YW5jZSBpbiB0aGUgdGVtcGxhdGUgKi9cclxuICBAVmlld0NoaWxkKE1lbnVDb21wb25lbnQpIHB1YmxpYyBtZW51Q29tcG9uZW50PzogTWVudUNvbXBvbmVudDtcclxuXHJcbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgSGllcmFyY2h5VHJlZUNvbXBvbmVudCBpbnN0YW5jZSBpbiB0aGUgdGVtcGxhdGUgKi9cclxuICBAVmlld0NoaWxkKEhpZXJhcmNoeVRyZWVDb21wb25lbnQpIHB1YmxpYyBoaWVyYXJjaHlUcmVlQ29tcG9uZW50PzogSGllcmFyY2h5VHJlZUNvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIHRlbXBsYXRlVHlwZTogTWVudVRlbXBsYXRlVHlwZSA9ICdsYWJlbCc7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gYSB0cmVlIGl0ZW0gaXMgc2VsZWN0ZWQgKi9cclxuICBwdWJsaWMgb25JdGVtU2VsZWN0ZWQoaXRlbTogTWVudUl0ZW0gfCBIaWVyYXJjaHlJdGVtKSB7XHJcbiAgICB0aGlzLnRyZWVTZWxlY3Rpb24uZW1pdChpdGVtKTtcclxuICB9XHJcblxyXG4gIC8qKiBFbWl0cyB3aGVuIGEgaGllcmFyY2h5IHRyZWUgaXRlbSBpcyBleHBhbmRlZCB0byBsb2FkIHRoZSBpdGVtJ3MgY2hpbGRyZW4gKi9cclxuICBwdWJsaWMgb25IaWVyYXJjaHlHZXRJdGVtQ2hpbGRyZW4oaXRlbTogSGllcmFyY2h5SXRlbSkge1xyXG4gICAgdGhpcy5nZXRUcmVlSXRlbUNoaWxkcmVuLmVtaXQoaXRlbSk7XHJcbiAgfVxyXG5cclxuICAvKiogU2Nyb2xsIHRvIHRoZSB0cmVlIGl0ZW0gdGhhdCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQuICovXHJcbiAgcHVibGljIHNjcm9sbFRvU2VsZWN0ZWRJdGVtKCkge1xyXG4gICAgaWYgKHRoaXMubWVudUNvbXBvbmVudCkge1xyXG4gICAgICB0aGlzLm1lbnVDb21wb25lbnQuc2Nyb2xsVG9TZWxlY3RlZEl0ZW0oKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oaWVyYXJjaHlUcmVlQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMuaGllcmFyY2h5VHJlZUNvbXBvbmVudC5zY3JvbGxUb1NlbGVjdGVkSXRlbSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyICpuZ0lmPVwiIWhpZGVUcmVlSGVhZGVyXCJcclxuICAgICAgICBjbGFzcz1cImZsZXgtc2hyaW5rIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICA8aDIgaWQ9XCJ7e2lkfX1fdGl0bGVcIlxyXG4gICAgICBjbGFzcz1cImZsZXgtZ3JvdyBtci0yIHRleHQtaGVhZGluZy0xXCI+e3t0cmVlVGl0bGUgfCB0cmFuc2xhdGV9fTwvaDI+XHJcbiAgPGVjLWRyb3Bkb3duICpuZ0lmPVwibWVudUl0ZW1zPy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICBpZD1cInt7aWR9fV9kcm9wZG93blwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmtcIlxyXG4gICAgICAgICAgICAgICBpY29uPVwiaWNvbi1tZW51XCJcclxuICAgICAgICAgICAgICAgW21lbnVUZW1wbGF0ZVR5cGVdPVwibWVudVRlbXBsYXRlVHlwZVwiXHJcbiAgICAgICAgICAgICAgIG1lbnVQb3NpdGlvbj1cImxlZnRcIlxyXG4gICAgICAgICAgICAgICBbc3RhdHVzXT1cIm1lbnVTdGF0dXNcIlxyXG4gICAgICAgICAgICAgICBbcG9wdXBGaXhlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgW3Nob3dBcnJvd109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgIFttZW51TWluV2lkdGhdPVwiMjQwXCJcclxuICAgICAgICAgICAgICAgW2l0ZW1zXT1cIm1lbnVJdGVtc1wiPlxyXG4gIDwvZWMtZHJvcGRvd24+XHJcbjwvaGVhZGVyPlxyXG5cclxuPGRpdiBjbGFzcz1cImZsZXgtZ3JvdyBkLWZsZXhcIlxyXG4gICAgIGVjT3ZlcmxheVxyXG4gICAgIFtzdGF0dXNdPVwic3RhdHVzPy5zdGF0dXNcIlxyXG4gICAgIFttZXNzYWdlXT1cInN0YXR1cz8ubWVzc2FnZVwiXHJcbiAgICAgW2Rpc3BsYXlBc01hc2tdPVwidHJ1ZVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnbWVudSdcIj5cclxuICAgIDxlYy1tZW51IFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICBbaXRlbXNdPVwidHJlZUl0ZW1zXCJcclxuICAgICAgICAgICAgIFt0ZW1wbGF0ZVR5cGVdPVwidGVtcGxhdGVUeXBlXCJcclxuICAgICAgICAgICAgIFttYWludGFpblNlbGVjdGVkSXRlbV09XCJ0cmVlTWVudU1haW50YWluU2VsZWN0ZWRJdGVtXCJcclxuICAgICAgICAgICAgIFt0cnVuY2F0ZUl0ZW1zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlZCk9XCJvbkl0ZW1TZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIFtjdXN0b21NZW51VGVtcGxhdGVdPVwiY3VzdG9tVHJlZU1lbnVUZW1wbGF0ZSA/IGN1c3RvbVRyZWVNZW51VGVtcGxhdGUgOiB1bmRlZmluZWRcIlxyXG4gICAgICAgICAgICAgW3ByZXNlcnZlSWNvblNwYWNlXT1cInByZXNlcnZlSWNvblNwYWNlXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93XCI+XHJcbiAgICA8L2VjLW1lbnU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnaGllcmFyY2h5J1wiPlxyXG4gICAgPGVjLWhpZXJhcmNoeS10cmVlIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3Jvb3ROb2RlXT1cInRyZWVIaWVyYXJjaHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtoaWRlUm9vdE5vZGVdPVwidHJlZUhpZXJhcmNoeUhpZGVSb290Tm9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGdldEl0ZW1DaGlsZHJlbik9XCJvbkhpZXJhcmNoeUdldEl0ZW1DaGlsZHJlbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoaXRlbVNlbGVjdGVkKT1cIm9uSXRlbVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21JdGVtVGVtcGxhdGVdPVwiY3VzdG9tSGllcmFyY2h5SXRlbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3JvdyBkLWZsZXhcIj5cclxuICAgIDwvZWMtaGllcmFyY2h5LXRyZWU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLG9DQUFvQyxDQUFDO0FBRS9GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7QUFTakUsTUFBTSxPQUFPLGFBQWE7SUFLeEI7OztPQUdHO0lBQ0gsSUFDVyxFQUFFLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQUEsQ0FBQztJQUNGLElBQVcsRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBcUVEO1FBbkZBLGtEQUFrRDtRQUNuQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBYzNDLFFBQUcsR0FBVyxFQUFFLENBQUM7UUFFekIsK0NBQStDO1FBQy9CLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkMsNkNBQTZDO1FBQzdCLG1CQUFjLEdBQWEsS0FBSyxDQUFDO1FBV2pEOzs7O1dBSUc7UUFDYSxpQ0FBNEIsR0FBWSxJQUFJLENBQUM7UUFRN0QsbUJBQW1CO1FBQ0gsV0FBTSxHQUFhLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTFELDhFQUE4RTtRQUM5RCxTQUFJLEdBQWMsV0FBVyxDQUFDO1FBSzlDLGlDQUFpQztRQUNqQixlQUFVLEdBQWEsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUQsNkJBQTZCO1FBQ2IscUJBQWdCLEdBQXNCLGVBQWUsQ0FBQztRQUV0RTs7O1dBR0c7UUFDYSxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFFbkQseURBQXlEO1FBQ3hDLGtCQUFhLEdBQTJDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUYseUZBQXlGO1FBQ3hFLHdCQUFtQixHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZGLGdFQUFnRTtRQUMvQyxvQkFBZSxHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQVFoRyxpQkFBWSxHQUFxQixPQUFPLENBQUM7SUFFekMsQ0FBQztJQUVqQix5Q0FBeUM7SUFDbEMsY0FBYyxDQUFDLElBQThCO1FBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCwrRUFBK0U7SUFDeEUsMEJBQTBCLENBQUMsSUFBbUI7UUFDbkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZ0VBQWdFO0lBQ3pELHNCQUFzQixDQUFDLElBQTBCO1FBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCwwREFBMEQ7SUFDbkQsb0JBQW9CO1FBQ3pCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDM0M7UUFFRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMvQixJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUNwRDtJQUNILENBQUM7OzBHQS9HVSxhQUFhOzhGQUFiLGFBQWEseXpCQThFYixhQUFhLHlGQUdiLHNCQUFzQixnREM5Rm5DLDBoRUErQ007MkZEbENPLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsU0FBUzswRUFPWSxNQUFNO3NCQUFwQyxXQUFXO3VCQUFDLFNBQVM7Z0JBT1gsRUFBRTtzQkFEWixLQUFLO2dCQVdVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBR1UsY0FBYztzQkFBN0IsS0FBSztnQkFHVSxTQUFTO3NCQUF4QixLQUFLO2dCQUdVLHlCQUF5QjtzQkFBeEMsS0FBSztnQkFHVSxhQUFhO3NCQUE1QixLQUFLO2dCQU9VLDRCQUE0QjtzQkFBM0MsS0FBSztnQkFHVSxzQkFBc0I7c0JBQXJDLEtBQUs7Z0JBR1UsMkJBQTJCO3NCQUExQyxLQUFLO2dCQUdVLE1BQU07c0JBQXJCLEtBQUs7Z0JBR1UsSUFBSTtzQkFBbkIsS0FBSztnQkFHVSxTQUFTO3NCQUF4QixLQUFLO2dCQUdVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBR1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQU1VLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFHVyxhQUFhO3NCQUE3QixNQUFNO2dCQUdVLG1CQUFtQjtzQkFBbkMsTUFBTTtnQkFHVSxlQUFlO3NCQUEvQixNQUFNO2dCQUcwQixhQUFhO3NCQUE3QyxTQUFTO3VCQUFDLGFBQWE7Z0JBR2tCLHNCQUFzQjtzQkFBL0QsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBRWpCLFlBQVk7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZywgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCwgTWVudUl0ZW0sIE1lbnVUZW1wbGF0ZVR5cGUgfSBmcm9tICcuLi8uLi9jb250cm9scy9tZW51L21lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9nZ2xlZEhpZXJhcmNoeUl0ZW0sIEhpZXJhcmNoeUl0ZW0gfSBmcm9tICcuLi9oaWVyYXJjaHkvaGllcmFyY2h5LWJhc2UnO1xyXG5pbXBvcnQgeyBIaWVyYXJjaHlUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi4vaGllcmFyY2h5L2hpZXJhcmNoeS10cmVlL2hpZXJhcmNoeS10cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICcuLi92aWV3LW92ZXJsYXkvdmlldy1vdmVybGF5LmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgdHlwZSBUcmVlVHlwZSA9ICdoaWVyYXJjaHknIHwgJ21lbnUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy10cmVlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmVlQ29tcG9uZW50IHtcclxuXHJcbiAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaG9zdCBlbGVtZW50cyBpZCBhdHRyaWJ1dGUgKi9cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBwdWJsaWMgYXR0cklkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIElEIG9mIHRoZSBjb21wb25lbnQsIGJvdW5kIHRvIHRoZSBob3N0IGVsZW1lbnQncyBpZCBhdHRyaWJ1dGUgYW5kIHBhc3NlZFxyXG4gICAqIHRvIGNoaWxkIGNvbXBvbmVudHNcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5faWQgPSB2YWx1ZTtcclxuICAgIHRoaXMuYXR0cklkID0gdmFsdWU7XHJcbiAgfTtcclxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5faWQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2lkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIFRoZSB0cmVlJ3MgdGl0bGUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZVRpdGxlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIEhpZGVzIHRoZSB0cmVlIGhlYWRlciB3aGVuIHNldCB0byB0cnVlICovXHJcbiAgQElucHV0KCkgcHVibGljIGhpZGVUcmVlSGVhZGVyPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogSXRlbXMgdG8gZGlzcGxheSBpbiB0aGUgdHJlZSB3aGVuIHR5cGUgaXMgJ21lbnUnICovXHJcbiAgQElucHV0KCkgcHVibGljIHRyZWVJdGVtcz86IE1lbnVJdGVtW107XHJcblxyXG4gIC8qKiBIaWRlIHRoZSByb290IHRyZWUgaXRlbSB3aGVuIHR5cGUgaXMgJ2hpZXJhcmNoeScgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZUhpZXJhcmNoeUhpZGVSb290Tm9kZT86IGJvb2xlYW47XHJcblxyXG4gIC8qKiBJdGVtcyB0byBkaXNwbGF5IGluIHRoZSB0cmVlIHdoZW4gdHlwZSBpcyAnaGllcmFyY2h5JyAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0cmVlSGllcmFyY2h5PzogSGllcmFyY2h5SXRlbTtcclxuXHJcbiAgLyoqIFVzZWQgd2hlbiB0aGUgdHJlZSBpcyBpbiBtZW51IG1vZGUgdG8gdGVsbCB0aGUgbWVudSBpZiBpdCBzaG91bGQgbWFpbnRhaW4gdGhlIHNlbGVjdGVkIGl0ZW1cclxuICAgKiAgVXNlZnVsIGluIHNpZGUgbmF2IGNvbXBvbmVudHMgd2hlcmUgdGhpcyB0cmVlIGNvbXBvbmVudCBtYXkgZXhpc3QgYWxvbmdzaWRlIG90aGVyIHRyZWVzIG9yIG1lbnVzXHJcbiAgICogIHVzZWQgZm9yIG5hdmlnYXRpb24uIElmIHRoaXMgdHJlZSBpcyBpbiBtZW51IG1vZGUgeW91IHdvdWxkIHdhbnQgdGhpcyBzZXQgdG8gZmFsc2Ugc28gd2hlbiB5b3Ugc2VsZWN0IGFuIGl0ZW1cclxuICAgKiAgZnJvbSBhIHNpYmxpbmcgbmF2aWdhdGlvbiBlbGVtZW50IHRoZSBzZWxlY3Rpb24gd2lsbCBub3QgYmUgbWFpbnRhaW5lZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZU1lbnVNYWludGFpblNlbGVjdGVkSXRlbTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKiBVc2VkIHdoZW4gYSBjdXN0b20gdGVtcGxhdGUgaXMgbmVlZGVkIGZvciB0aGUgbWVudSBpdGVtcyB3aGVuIHRoZSB0cmVlIGlzIGluIG1lbnUgbW9kZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21UcmVlTWVudVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLyoqIFVzZWQgd2hlbiBhIGN1c3RvbSB0ZW1wbGF0ZSBpcyBuZWVkZWQgZm9yIHRoZSBoaWVyYXJjaHkgaXRlbXMgd2hlbiB0aGUgdHJlZSBpcyBpbiBoaWVyYXJjaHkgbW9kZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21IaWVyYXJjaHlJdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvKiogVHJlZSBvdmVybGF5ICovXHJcbiAgQElucHV0KCkgcHVibGljIHN0YXR1cz86IE92ZXJsYXkgPSBuZXcgT3ZlcmxheSgnaGFzRGF0YScpO1xyXG5cclxuICAvKiogRGlzcGxheSB0aGUgdHJlZSBpdGVtcyB3aXRoIGEgTWVudUNvbXBvbmVudCBvciBhIEhpZXJhcmNoeVRyZWVDb21wb25lbnQgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHlwZT86IFRyZWVUeXBlID0gJ2hpZXJhcmNoeSc7XHJcblxyXG4gIC8qKiBJdGVtcyB0byBkaXNwbGF5IGluIHRoZSBkcm9wZG93biBtZW51ICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVJdGVtcz86IE1lbnVJdGVtW107XHJcblxyXG4gIC8qKiBUcmVlIGRyb3Bkb3duIG1lbnUgb3ZlcmxheSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51U3RhdHVzPzogT3ZlcmxheSA9IG5ldyBPdmVybGF5KCdoYXNEYXRhJyk7XHJcblxyXG4gIC8qKiBUaGUgbWVudSBpdGVtIHRlbXBsYXRlICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVUZW1wbGF0ZVR5cGU/OiBNZW51VGVtcGxhdGVUeXBlID0gXCJjaGVja0FuZExhYmVsXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gdHJ1ZSwgdGhlIHNwYWNlIGZvciB0aGUgaWNvbiBpcyBwcmVzZXJ2ZWQgZm9yIG1lbnUgaXRlbXMgdGhhdCBkbyBub3QgaGF2ZSBpY29ucy5cclxuICAgKiBPbmx5IGFwcGxpY2FibGUgZm9yIGljb25BbmRMYWJlbCBtZW51cy4gTm90IGFwcGxpY2FibGUgdG8gaGllcmFyY2h5IHRyZWVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwcmVzZXJ2ZUljb25TcGFjZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogRW1pdHMgdGhlIGl0ZW0gY3VycmVudGx5IHNlbGVjdGVkIGl0ZW0gaW4gdGhlIHRyZWUgKi9cclxuICBAT3V0cHV0KCkgcHVibGljIHRyZWVTZWxlY3Rpb246IEV2ZW50RW1pdHRlcjxNZW51SXRlbSB8IEhpZXJhcmNoeUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGhpZXJhcmNoeSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQgYXMgYSBob29rIHRvIGxvYWQgdGhlIGl0ZW0ncyBjaGlsZHJlbiAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgZ2V0VHJlZUl0ZW1DaGlsZHJlbjogRXZlbnRFbWl0dGVyPEhpZXJhcmNoeUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGhpZXJhcmNoeSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyB0cmVlSXRlbVRvZ2dsZWQ6IEV2ZW50RW1pdHRlcjxUb2dnbGVkSGllcmFyY2h5SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRvZ2dsZWRIaWVyYXJjaHlJdGVtPigpO1xyXG5cclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBNZW51Q29tcG9uZW50IGluc3RhbmNlIGluIHRoZSB0ZW1wbGF0ZSAqL1xyXG4gIEBWaWV3Q2hpbGQoTWVudUNvbXBvbmVudCkgcHVibGljIG1lbnVDb21wb25lbnQ/OiBNZW51Q29tcG9uZW50O1xyXG5cclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBIaWVyYXJjaHlUcmVlQ29tcG9uZW50IGluc3RhbmNlIGluIHRoZSB0ZW1wbGF0ZSAqL1xyXG4gIEBWaWV3Q2hpbGQoSGllcmFyY2h5VHJlZUNvbXBvbmVudCkgcHVibGljIGhpZXJhcmNoeVRyZWVDb21wb25lbnQ/OiBIaWVyYXJjaHlUcmVlQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgdGVtcGxhdGVUeXBlOiBNZW51VGVtcGxhdGVUeXBlID0gJ2xhYmVsJztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gYSB0cmVlIGl0ZW0gaXMgc2VsZWN0ZWQgKi9cclxuICBwdWJsaWMgb25JdGVtU2VsZWN0ZWQoaXRlbTogTWVudUl0ZW0gfCBIaWVyYXJjaHlJdGVtKSB7XHJcbiAgICB0aGlzLnRyZWVTZWxlY3Rpb24uZW1pdChpdGVtKTtcclxuICB9XHJcblxyXG4gIC8qKiBFbWl0cyB3aGVuIGEgaGllcmFyY2h5IHRyZWUgaXRlbSBpcyBleHBhbmRlZCB0byBsb2FkIHRoZSBpdGVtJ3MgY2hpbGRyZW4gKi9cclxuICBwdWJsaWMgb25IaWVyYXJjaHlHZXRJdGVtQ2hpbGRyZW4oaXRlbTogSGllcmFyY2h5SXRlbSkge1xyXG4gICAgdGhpcy5nZXRUcmVlSXRlbUNoaWxkcmVuLmVtaXQoaXRlbSk7XHJcbiAgfVxyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGhpZXJhcmNoeSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkICovXHJcbiAgcHVibGljIG9uSGllcmFyY2h5SXRlbVRvZ2dsZWQoaXRlbTogVG9nZ2xlZEhpZXJhcmNoeUl0ZW0pIHtcclxuICAgIHRoaXMudHJlZUl0ZW1Ub2dnbGVkLmVtaXQoaXRlbSk7XHJcbiAgfVxyXG5cclxuICAvKiogU2Nyb2xsIHRvIHRoZSB0cmVlIGl0ZW0gdGhhdCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQuICovXHJcbiAgcHVibGljIHNjcm9sbFRvU2VsZWN0ZWRJdGVtKCkge1xyXG4gICAgaWYgKHRoaXMubWVudUNvbXBvbmVudCkge1xyXG4gICAgICB0aGlzLm1lbnVDb21wb25lbnQuc2Nyb2xsVG9TZWxlY3RlZEl0ZW0oKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oaWVyYXJjaHlUcmVlQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMuaGllcmFyY2h5VHJlZUNvbXBvbmVudC5zY3JvbGxUb1NlbGVjdGVkSXRlbSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyICpuZ0lmPVwiIWhpZGVUcmVlSGVhZGVyXCJcclxuICAgICAgICBjbGFzcz1cImZsZXgtc2hyaW5rIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICA8aDIgaWQ9XCJ7e2lkfX1fdGl0bGVcIlxyXG4gICAgICBjbGFzcz1cImZsZXgtZ3JvdyBtci0yIHRleHQtaGVhZGluZy0xXCI+e3t0cmVlVGl0bGUgfCB0cmFuc2xhdGV9fTwvaDI+XHJcbiAgPGVjLWRyb3Bkb3duICpuZ0lmPVwibWVudUl0ZW1zPy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICBpZD1cInt7aWR9fV9kcm9wZG93blwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmtcIlxyXG4gICAgICAgICAgICAgICBpY29uPVwiaWNvbi1tZW51XCJcclxuICAgICAgICAgICAgICAgW21lbnVUZW1wbGF0ZVR5cGVdPVwibWVudVRlbXBsYXRlVHlwZVwiXHJcbiAgICAgICAgICAgICAgIG1lbnVQb3NpdGlvbj1cImxlZnRcIlxyXG4gICAgICAgICAgICAgICBbc3RhdHVzXT1cIm1lbnVTdGF0dXNcIlxyXG4gICAgICAgICAgICAgICBbcG9wdXBGaXhlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgW3Nob3dBcnJvd109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgIFttZW51TWluV2lkdGhdPVwiMjQwXCJcclxuICAgICAgICAgICAgICAgW2l0ZW1zXT1cIm1lbnVJdGVtc1wiPlxyXG4gIDwvZWMtZHJvcGRvd24+XHJcbjwvaGVhZGVyPlxyXG5cclxuPGRpdiBjbGFzcz1cImZsZXgtZ3JvdyBkLWZsZXhcIlxyXG4gICAgIGVjT3ZlcmxheVxyXG4gICAgIFtzdGF0dXNdPVwic3RhdHVzPy5zdGF0dXNcIlxyXG4gICAgIFttZXNzYWdlXT1cInN0YXR1cz8ubWVzc2FnZVwiXHJcbiAgICAgW2Rpc3BsYXlBc01hc2tdPVwidHJ1ZVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnbWVudSdcIj5cclxuICAgIDxlYy1tZW51IFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICBbaXRlbXNdPVwidHJlZUl0ZW1zXCJcclxuICAgICAgICAgICAgIFt0ZW1wbGF0ZVR5cGVdPVwidGVtcGxhdGVUeXBlXCJcclxuICAgICAgICAgICAgIFttYWludGFpblNlbGVjdGVkSXRlbV09XCJ0cmVlTWVudU1haW50YWluU2VsZWN0ZWRJdGVtXCJcclxuICAgICAgICAgICAgIFt0cnVuY2F0ZUl0ZW1zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlZCk9XCJvbkl0ZW1TZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIFtjdXN0b21NZW51VGVtcGxhdGVdPVwiY3VzdG9tVHJlZU1lbnVUZW1wbGF0ZSA/IGN1c3RvbVRyZWVNZW51VGVtcGxhdGUgOiB1bmRlZmluZWRcIlxyXG4gICAgICAgICAgICAgW3ByZXNlcnZlSWNvblNwYWNlXT1cInByZXNlcnZlSWNvblNwYWNlXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93XCI+XHJcbiAgICA8L2VjLW1lbnU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnaGllcmFyY2h5J1wiPlxyXG4gICAgPGVjLWhpZXJhcmNoeS10cmVlIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3Jvb3ROb2RlXT1cInRyZWVIaWVyYXJjaHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtoaWRlUm9vdE5vZGVdPVwidHJlZUhpZXJhcmNoeUhpZGVSb290Tm9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGdldEl0ZW1DaGlsZHJlbik9XCJvbkhpZXJhcmNoeUdldEl0ZW1DaGlsZHJlbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoaXRlbVRvZ2dsZWQpPVwib25IaWVyYXJjaHlJdGVtVG9nZ2xlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoaXRlbVNlbGVjdGVkKT1cIm9uSXRlbVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21JdGVtVGVtcGxhdGVdPVwiY3VzdG9tSGllcmFyY2h5SXRlbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3JvdyBkLWZsZXhcIj5cclxuICAgIDwvZWMtaGllcmFyY2h5LXRyZWU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==
@@ -1,10 +1,9 @@
1
1
  import { Component, Input } from '@angular/core';
2
- import { TranslateModule } from '@ngx-translate/core';
3
- import { ButtonComponent } from '../../controls/button/button.component';
4
- import { SpinnerComponent } from '../spinner/spinner.component';
5
- import { NgIf, NgClass, NgTemplateOutlet } from '@angular/common';
6
2
  import * as i0 from "@angular/core";
7
- import * as i1 from "@ngx-translate/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../../controls/button/button.component";
5
+ import * as i3 from "../spinner/spinner.component";
6
+ import * as i4 from "@ngx-translate/core";
8
7
  export class Overlay {
9
8
  constructor(status, message) {
10
9
  this.status = 'hasData';
@@ -39,10 +38,10 @@ export class ViewOverlayComponent {
39
38
  }
40
39
  }
41
40
  ViewOverlayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
42
- ViewOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ViewOverlayComponent, isStandalone: true, selector: "[ecOverlay]", inputs: { status: "status", message: "message", action: "action", noDataTemplate: "noDataTemplate", displayAsMask: "displayAsMask", overlayClassList: "overlayClassList" }, ngImport: i0, template: "<!-- Transcluded Content -->\r\n<ng-content *ngIf=\"displayAsMask || (!displayAsMask && status === 'hasData')\"></ng-content>\r\n<!--Used by GI tests to know the overlay status whether we use ngIf or mask version. No visual impact-->\r\n<span [hidden]=\"true\"\r\n\t class=\"overlay-status-{{status}}\"></span>\r\n<!-- Overlay goes last so it is rendered on top of preceding content due to source order -->\r\n<div *ngIf=\"status !== 'hasData'\"\r\n\t class=\"overlay flex-grow {{overlayClassList}}\"\r\n\t [ngClass]=\"{'not-mask': !displayAsMask,\r\n\t\t\t\t'overlay-error': status === 'error',\r\n\t\t\t\t'overlay-nodata': status === 'noData',\r\n\t\t\t\t'overlay-pending': status === 'pending'}\">\r\n\r\n\t<!--Pending Spinner-->\r\n\t<ec-spinner [hidden]=\"status !== 'pending'\"></ec-spinner>\r\n\r\n\t<ng-template [ngIf]=\"status === 'noData' && noDataTemplate\">\r\n\t\t<ng-container *ngTemplateOutlet=\"noDataTemplate\"></ng-container>\r\n\t</ng-template>\r\n\r\n\t<ng-container *ngIf=\"(status === 'noData' && !noDataTemplate) || status !== 'noData'\">\r\n\t\t<!--Status Message-->\r\n\t\t<div id=\"statusMessage\"\r\n\t\t\t class=\"message\"\r\n\t\t\t *ngIf=\"message\"\r\n\t\t\t [ngClass]=\"{'error': status === 'error', 'mt-1': status === 'pending'}\"\r\n\t\t\t [innerHtml]=\"message | translate\">\r\n\t\t</div>\r\n\r\n\t\t<!-- Action -->\r\n\t\t<ec-button type=\"common\"\r\n\t\t\t\t class=\"mt-3\"\r\n\t\t\t\t *ngIf=\"action?.onClick\"\r\n\t\t\t\t [icon]=\"action?.icon\"\r\n\t\t\t\t (clicked)=\"actionClicked($event)\"\r\n\t\t\t\t [label]=\"action?.label\"\r\n\t\t\t\t [hidden]=\"status === 'pending'\">\r\n\t\t</ec-button>\r\n\t</ng-container>\r\n\r\n</div>", styles: [":host{position:relative}:host(.bg-body)>.overlay{background-color:var(--ec-background-color-body)}:host(.bg-body).is-translucent>.overlay{background-color:var(--ec-background-color-overlay)}:host(.bg-content)>.overlay{background-color:var(--ec-background-color)}:host(.bg-content).is-translucent>.overlay{background-color:var(--ec-background-color-overlay)}.overlay{align-items:center;background-color:var(--ec-overlay-background-color, var(--ec-background-color));display:flex;flex-direction:column;justify-content:center;padding:3rem 4rem;z-index:var(--ec-z-index-overlay);position:absolute;inset:0}.overlay.not-mask{position:relative;min-height:100%}.message{color:var(--ec-color-secondary-dark);font-size:var(--ec-font-size-title)}.message.error{color:var(--ec-color-danger);font-size:var(--ec-font-size-title)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SpinnerComponent, selector: "ec-spinner" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "ec-button", inputs: ["id", "disabled", "icon", "label", "badge", "tabindex", "type", "pending", "pendingIcon", "customTemplate", "isSubmit", "autofocus"], outputs: ["clicked"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
41
+ ViewOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ViewOverlayComponent, selector: "[ecOverlay]", inputs: { status: "status", message: "message", action: "action", noDataTemplate: "noDataTemplate", displayAsMask: "displayAsMask", overlayClassList: "overlayClassList" }, ngImport: i0, template: "<!-- Transcluded Content -->\r\n<ng-content *ngIf=\"displayAsMask || (!displayAsMask && status === 'hasData')\"></ng-content>\r\n<!--Used by GI tests to know the overlay status whether we use ngIf or mask version. No visual impact-->\r\n<span [hidden]=\"true\"\r\n\t class=\"overlay-status-{{status}}\"></span>\r\n<!-- Overlay goes last so it is rendered on top of preceding content due to source order -->\r\n<div *ngIf=\"status !== 'hasData'\"\r\n\t class=\"overlay flex-grow {{overlayClassList}}\"\r\n\t [ngClass]=\"{'not-mask': !displayAsMask,\r\n\t\t\t\t'overlay-error': status === 'error',\r\n\t\t\t\t'overlay-nodata': status === 'noData',\r\n\t\t\t\t'overlay-pending': status === 'pending'}\">\r\n\r\n\t<!--Pending Spinner-->\r\n\t<ec-spinner [hidden]=\"status !== 'pending'\"></ec-spinner>\r\n\r\n\t<ng-template [ngIf]=\"status === 'noData' && noDataTemplate\">\r\n\t\t<ng-container *ngTemplateOutlet=\"noDataTemplate\"></ng-container>\r\n\t</ng-template>\r\n\r\n\t<ng-container *ngIf=\"(status === 'noData' && !noDataTemplate) || status !== 'noData'\">\r\n\t\t<!--Status Message-->\r\n\t\t<div id=\"statusMessage\"\r\n\t\t\t class=\"message\"\r\n\t\t\t *ngIf=\"message\"\r\n\t\t\t [ngClass]=\"{'error': status === 'error', 'mt-1': status === 'pending'}\"\r\n\t\t\t [innerHtml]=\"message | translate\">\r\n\t\t</div>\r\n\r\n\t\t<!-- Action -->\r\n\t\t<ec-button type=\"common\"\r\n\t\t\t\t class=\"mt-3\"\r\n\t\t\t\t *ngIf=\"action?.onClick\"\r\n\t\t\t\t [icon]=\"action?.icon\"\r\n\t\t\t\t (clicked)=\"actionClicked($event)\"\r\n\t\t\t\t [label]=\"action?.label\"\r\n\t\t\t\t [hidden]=\"status === 'pending'\">\r\n\t\t</ec-button>\r\n\t</ng-container>\r\n\r\n</div>", styles: [":host{position:relative}:host(.bg-body)>.overlay{background-color:var(--ec-background-color-body)}:host(.bg-body).is-translucent>.overlay{background-color:var(--ec-background-color-overlay)}:host(.bg-content)>.overlay{background-color:var(--ec-background-color)}:host(.bg-content).is-translucent>.overlay{background-color:var(--ec-background-color-overlay)}.overlay{align-items:center;background-color:var(--ec-overlay-background-color, var(--ec-background-color));display:flex;flex-direction:column;justify-content:center;padding:3rem 4rem;z-index:var(--ec-z-index-overlay);position:absolute;inset:0}.overlay.not-mask{position:relative;min-height:100%}.message{color:var(--ec-color-secondary-dark);font-size:var(--ec-font-size-title)}.message.error{color:var(--ec-color-danger);font-size:var(--ec-font-size-title)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "ec-button", inputs: ["id", "disabled", "icon", "label", "badge", "tabindex", "type", "pending", "pendingIcon", "customTemplate", "isSubmit", "autofocus"], outputs: ["clicked"] }, { kind: "component", type: i3.SpinnerComponent, selector: "ec-spinner" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
43
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewOverlayComponent, decorators: [{
44
43
  type: Component,
45
- args: [{ selector: '[ecOverlay]', standalone: true, imports: [NgIf, NgClass, SpinnerComponent, NgTemplateOutlet, ButtonComponent, TranslateModule], template: "<!-- Transcluded Content -->\r\n<ng-content *ngIf=\"displayAsMask || (!displayAsMask && status === 'hasData')\"></ng-content>\r\n<!--Used by GI tests to know the overlay status whether we use ngIf or mask version. No visual impact-->\r\n<span [hidden]=\"true\"\r\n\t class=\"overlay-status-{{status}}\"></span>\r\n<!-- Overlay goes last so it is rendered on top of preceding content due to source order -->\r\n<div *ngIf=\"status !== 'hasData'\"\r\n\t class=\"overlay flex-grow {{overlayClassList}}\"\r\n\t [ngClass]=\"{'not-mask': !displayAsMask,\r\n\t\t\t\t'overlay-error': status === 'error',\r\n\t\t\t\t'overlay-nodata': status === 'noData',\r\n\t\t\t\t'overlay-pending': status === 'pending'}\">\r\n\r\n\t<!--Pending Spinner-->\r\n\t<ec-spinner [hidden]=\"status !== 'pending'\"></ec-spinner>\r\n\r\n\t<ng-template [ngIf]=\"status === 'noData' && noDataTemplate\">\r\n\t\t<ng-container *ngTemplateOutlet=\"noDataTemplate\"></ng-container>\r\n\t</ng-template>\r\n\r\n\t<ng-container *ngIf=\"(status === 'noData' && !noDataTemplate) || status !== 'noData'\">\r\n\t\t<!--Status Message-->\r\n\t\t<div id=\"statusMessage\"\r\n\t\t\t class=\"message\"\r\n\t\t\t *ngIf=\"message\"\r\n\t\t\t [ngClass]=\"{'error': status === 'error', 'mt-1': status === 'pending'}\"\r\n\t\t\t [innerHtml]=\"message | translate\">\r\n\t\t</div>\r\n\r\n\t\t<!-- Action -->\r\n\t\t<ec-button type=\"common\"\r\n\t\t\t\t class=\"mt-3\"\r\n\t\t\t\t *ngIf=\"action?.onClick\"\r\n\t\t\t\t [icon]=\"action?.icon\"\r\n\t\t\t\t (clicked)=\"actionClicked($event)\"\r\n\t\t\t\t [label]=\"action?.label\"\r\n\t\t\t\t [hidden]=\"status === 'pending'\">\r\n\t\t</ec-button>\r\n\t</ng-container>\r\n\r\n</div>", styles: [":host{position:relative}:host(.bg-body)>.overlay{background-color:var(--ec-background-color-body)}:host(.bg-body).is-translucent>.overlay{background-color:var(--ec-background-color-overlay)}:host(.bg-content)>.overlay{background-color:var(--ec-background-color)}:host(.bg-content).is-translucent>.overlay{background-color:var(--ec-background-color-overlay)}.overlay{align-items:center;background-color:var(--ec-overlay-background-color, var(--ec-background-color));display:flex;flex-direction:column;justify-content:center;padding:3rem 4rem;z-index:var(--ec-z-index-overlay);position:absolute;inset:0}.overlay.not-mask{position:relative;min-height:100%}.message{color:var(--ec-color-secondary-dark);font-size:var(--ec-font-size-title)}.message.error{color:var(--ec-color-danger);font-size:var(--ec-font-size-title)}\n"] }]
44
+ args: [{ selector: '[ecOverlay]', template: "<!-- Transcluded Content -->\r\n<ng-content *ngIf=\"displayAsMask || (!displayAsMask && status === 'hasData')\"></ng-content>\r\n<!--Used by GI tests to know the overlay status whether we use ngIf or mask version. No visual impact-->\r\n<span [hidden]=\"true\"\r\n\t class=\"overlay-status-{{status}}\"></span>\r\n<!-- Overlay goes last so it is rendered on top of preceding content due to source order -->\r\n<div *ngIf=\"status !== 'hasData'\"\r\n\t class=\"overlay flex-grow {{overlayClassList}}\"\r\n\t [ngClass]=\"{'not-mask': !displayAsMask,\r\n\t\t\t\t'overlay-error': status === 'error',\r\n\t\t\t\t'overlay-nodata': status === 'noData',\r\n\t\t\t\t'overlay-pending': status === 'pending'}\">\r\n\r\n\t<!--Pending Spinner-->\r\n\t<ec-spinner [hidden]=\"status !== 'pending'\"></ec-spinner>\r\n\r\n\t<ng-template [ngIf]=\"status === 'noData' && noDataTemplate\">\r\n\t\t<ng-container *ngTemplateOutlet=\"noDataTemplate\"></ng-container>\r\n\t</ng-template>\r\n\r\n\t<ng-container *ngIf=\"(status === 'noData' && !noDataTemplate) || status !== 'noData'\">\r\n\t\t<!--Status Message-->\r\n\t\t<div id=\"statusMessage\"\r\n\t\t\t class=\"message\"\r\n\t\t\t *ngIf=\"message\"\r\n\t\t\t [ngClass]=\"{'error': status === 'error', 'mt-1': status === 'pending'}\"\r\n\t\t\t [innerHtml]=\"message | translate\">\r\n\t\t</div>\r\n\r\n\t\t<!-- Action -->\r\n\t\t<ec-button type=\"common\"\r\n\t\t\t\t class=\"mt-3\"\r\n\t\t\t\t *ngIf=\"action?.onClick\"\r\n\t\t\t\t [icon]=\"action?.icon\"\r\n\t\t\t\t (clicked)=\"actionClicked($event)\"\r\n\t\t\t\t [label]=\"action?.label\"\r\n\t\t\t\t [hidden]=\"status === 'pending'\">\r\n\t\t</ec-button>\r\n\t</ng-container>\r\n\r\n</div>", styles: [":host{position:relative}:host(.bg-body)>.overlay{background-color:var(--ec-background-color-body)}:host(.bg-body).is-translucent>.overlay{background-color:var(--ec-background-color-overlay)}:host(.bg-content)>.overlay{background-color:var(--ec-background-color)}:host(.bg-content).is-translucent>.overlay{background-color:var(--ec-background-color-overlay)}.overlay{align-items:center;background-color:var(--ec-overlay-background-color, var(--ec-background-color));display:flex;flex-direction:column;justify-content:center;padding:3rem 4rem;z-index:var(--ec-z-index-overlay);position:absolute;inset:0}.overlay.not-mask{position:relative;min-height:100%}.message{color:var(--ec-color-secondary-dark);font-size:var(--ec-font-size-title)}.message.error{color:var(--ec-color-danger);font-size:var(--ec-font-size-title)}\n"] }]
46
45
  }], propDecorators: { status: [{
47
46
  type: Input
48
47
  }], message: [{
@@ -56,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
56
55
  }], overlayClassList: [{
57
56
  type: Input
58
57
  }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3ZpZXctb3ZlcmxheS92aWV3LW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdmlldy1vdmVybGF5L3ZpZXctb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUc5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUVsRSxNQUFNLE9BQU8sT0FBTztJQVdsQixZQUFZLE1BQWtCLEVBQUUsT0FBZ0I7UUFOaEQsV0FBTSxHQUFlLFNBQVMsQ0FBQztRQUMvQixZQUFPLEdBQVksRUFBRSxDQUFDO1FBTXBCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxTQUFTLENBQUMsTUFBa0IsRUFBRSxPQUFnQixFQUFFLE1BQWdCLEVBQUUsY0FBaUMsRUFBRSxnQkFBeUI7UUFDNUgsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLFNBQVMsQ0FBQztRQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsSUFBSSxTQUFTLENBQUM7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0NBQ0Y7QUFHRDs7R0FFRztBQVFILE1BQU0sT0FBTyxvQkFBb0I7SUFQakM7UUFRVyxXQUFNLEdBQWUsU0FBUyxDQUFDO0tBNkJ6QztJQVpDLFNBQVMsQ0FBQyxNQUFrQixFQUFFLE9BQWdCLEVBQUUsTUFBZ0IsRUFBRSxjQUFpQztRQUNqRyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUksU0FBUyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxJQUFJLFNBQVMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQzs7aUhBN0JVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLG1QQzFDakMseXBEQXdDTSwyMkJEQVEsSUFBSSw2RkFBRSxPQUFPLG9GQUFFLGdCQUFnQix1REFBRSxnQkFBZ0Isb0pBQUUsZUFBZSwwTkFBRSxlQUFlOzJGQUVwRixvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0ksYUFBYSxjQUdYLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQzs4QkFHdkYsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFLRyxhQUFhO3NCQUFyQixLQUFLO2dCQUtHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdkl0ZW0gfSBmcm9tICcuLi8uLi9jb250cm9scy9uYXZpZ2F0aW9uL25hdi1pdGVtJztcclxuaW1wb3J0IHsgRGlzcGxheVN0YXR1cywgVmlld1N0YXR1cyB9IGZyb20gJy4uLy4uL3NoYXJlZC9kaXNwbGF5JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmV4cG9ydCBjbGFzcyBPdmVybGF5IGltcGxlbWVudHMgRGlzcGxheVN0YXR1cyB7XHJcbiAgLyoqICBAZGVwcmVjYXRlZCBEZXByZWNhdGVkIGR1ZSB0byBub0RhdGFUZW1wbGF0ZSBiZWluZyBwcmVmZXJlZCAqL1xyXG4gIGFjdGlvbj86IE5hdkl0ZW07XHJcbiAgbm9EYXRhVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGRpc3BsYXlBc01hc2s/OiBib29sZWFuO1xyXG4gIHN0YXR1czogVmlld1N0YXR1cyA9ICdoYXNEYXRhJztcclxuICBtZXNzYWdlPzogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKiBBZGRpdGlvbiBjc3MgY2xhc3NlcyB0byBhcHBseSB0byB0aGUgLm92ZXJsYXkgZWxlbWVudCAqL1xyXG4gIG92ZXJsYXlDbGFzc0xpc3Q/OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHN0YXR1czogVmlld1N0YXR1cywgbWVzc2FnZT86IHN0cmluZykge1xyXG4gICAgdGhpcy5zZXRTdGF0dXMoc3RhdHVzLCBtZXNzYWdlKTtcclxuICB9XHJcbiAgc2V0U3RhdHVzKHN0YXR1czogVmlld1N0YXR1cywgbWVzc2FnZT86IHN0cmluZywgYWN0aW9uPzogTmF2SXRlbSwgbm9EYXRhVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+LCBvdmVybGF5Q2xhc3NMaXN0Pzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcclxuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2UgfHwgJyc7XHJcbiAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbiB8fCB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLm5vRGF0YVRlbXBsYXRlID0gbm9EYXRhVGVtcGxhdGUgfHwgdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5vdmVybGF5Q2xhc3NMaXN0ID0gb3ZlcmxheUNsYXNzTGlzdCB8fCAnJztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogV3JhcHMgY29udGVudCBpbiBvcmRlciB0byBzaG93IHBlbmRpbmcsIGVycm9yLCBhbmQgbm8gZGF0YSBzdGF0ZXMgd2l0aCBhbiBvcHRpb25hbCBtZXNzYWdlL25vRGF0YVRlbXBsYXRlXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnW2VjT3ZlcmxheV0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi92aWV3LW92ZXJsYXkuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdDbGFzcywgU3Bpbm5lckNvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldCwgQnV0dG9uQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWV3T3ZlcmxheUNvbXBvbmVudCBpbXBsZW1lbnRzIE92ZXJsYXkge1xyXG4gIEBJbnB1dCgpIHN0YXR1czogVmlld1N0YXR1cyA9ICdoYXNEYXRhJztcclxuICBASW5wdXQoKSBtZXNzYWdlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKiogIEBkZXByZWNhdGVkIERlcHJlY2F0ZWQgZHVlIHRvIG5vRGF0YVRlbXBsYXRlIGJlaW5nIHByZWZlcmVkICovXHJcbiAgQElucHV0KCkgYWN0aW9uPzogTmF2SXRlbSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBub0RhdGFUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hc2sgKG5vdCByZW1vdmUpIHRoZSB0cmFuc2NsdWRlZCBjb250ZW50IGZyb20gdGhlIGRvbSB3aGlsZSBub3QgaGFzRGF0YSBzdGF0dXMuXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlzcGxheUFzTWFzaz86IGJvb2xlYW47XHJcblxyXG4gIC8qKiBcclxuICAgKiBBZGRpdGlvbmFsIGNzcyBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSAub3ZlcmxheSBlbGVtZW50IFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG92ZXJsYXlDbGFzc0xpc3Q/OiBzdHJpbmc7XHJcblxyXG4gIHNldFN0YXR1cyhzdGF0dXM6IFZpZXdTdGF0dXMsIG1lc3NhZ2U/OiBzdHJpbmcsIGFjdGlvbj86IE5hdkl0ZW0sIG5vRGF0YVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55Pik6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XHJcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlIHx8ICcnO1xyXG4gICAgdGhpcy5hY3Rpb24gPSBhY3Rpb24gfHwgdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5ub0RhdGFUZW1wbGF0ZSA9IG5vRGF0YVRlbXBsYXRlIHx8IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGFjdGlvbkNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYWN0aW9uICYmIHRoaXMuYWN0aW9uLm9uQ2xpY2spIHtcclxuICAgICAgdGhpcy5hY3Rpb24ub25DbGljayhldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gVHJhbnNjbHVkZWQgQ29udGVudCAtLT5cclxuPG5nLWNvbnRlbnQgKm5nSWY9XCJkaXNwbGF5QXNNYXNrIHx8ICghZGlzcGxheUFzTWFzayAmJiBzdGF0dXMgPT09ICdoYXNEYXRhJylcIj48L25nLWNvbnRlbnQ+XHJcbjwhLS1Vc2VkIGJ5IEdJIHRlc3RzIHRvIGtub3cgdGhlIG92ZXJsYXkgc3RhdHVzIHdoZXRoZXIgd2UgdXNlIG5nSWYgb3IgbWFzayB2ZXJzaW9uLiBObyB2aXN1YWwgaW1wYWN0LS0+XHJcbjxzcGFuIFtoaWRkZW5dPVwidHJ1ZVwiXHJcblx0ICBjbGFzcz1cIm92ZXJsYXktc3RhdHVzLXt7c3RhdHVzfX1cIj48L3NwYW4+XHJcbjwhLS0gT3ZlcmxheSBnb2VzIGxhc3Qgc28gaXQgaXMgcmVuZGVyZWQgb24gdG9wIG9mIHByZWNlZGluZyBjb250ZW50IGR1ZSB0byBzb3VyY2Ugb3JkZXIgLS0+XHJcbjxkaXYgKm5nSWY9XCJzdGF0dXMgIT09ICdoYXNEYXRhJ1wiXHJcblx0IGNsYXNzPVwib3ZlcmxheSBmbGV4LWdyb3cge3tvdmVybGF5Q2xhc3NMaXN0fX1cIlxyXG5cdCBbbmdDbGFzc109XCJ7J25vdC1tYXNrJzogIWRpc3BsYXlBc01hc2ssXHJcblx0XHRcdFx0J292ZXJsYXktZXJyb3InOiBzdGF0dXMgPT09ICdlcnJvcicsXHJcblx0XHRcdFx0J292ZXJsYXktbm9kYXRhJzogc3RhdHVzID09PSAnbm9EYXRhJyxcclxuXHRcdFx0XHQnb3ZlcmxheS1wZW5kaW5nJzogc3RhdHVzID09PSAncGVuZGluZyd9XCI+XHJcblxyXG5cdDwhLS1QZW5kaW5nIFNwaW5uZXItLT5cclxuXHQ8ZWMtc3Bpbm5lciBbaGlkZGVuXT1cInN0YXR1cyAhPT0gJ3BlbmRpbmcnXCI+PC9lYy1zcGlubmVyPlxyXG5cclxuXHQ8bmctdGVtcGxhdGUgW25nSWZdPVwic3RhdHVzID09PSAnbm9EYXRhJyAmJiBub0RhdGFUZW1wbGF0ZVwiPlxyXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5vRGF0YVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIihzdGF0dXMgPT09ICdub0RhdGEnICYmICFub0RhdGFUZW1wbGF0ZSkgfHwgc3RhdHVzICE9PSAnbm9EYXRhJ1wiPlxyXG5cdFx0PCEtLVN0YXR1cyBNZXNzYWdlLS0+XHJcblx0XHQ8ZGl2IGlkPVwic3RhdHVzTWVzc2FnZVwiXHJcblx0XHRcdCBjbGFzcz1cIm1lc3NhZ2VcIlxyXG5cdFx0XHQgKm5nSWY9XCJtZXNzYWdlXCJcclxuXHRcdFx0IFtuZ0NsYXNzXT1cInsnZXJyb3InOiBzdGF0dXMgPT09ICdlcnJvcicsICdtdC0xJzogc3RhdHVzID09PSAncGVuZGluZyd9XCJcclxuXHRcdFx0IFtpbm5lckh0bWxdPVwibWVzc2FnZSB8IHRyYW5zbGF0ZVwiPlxyXG5cdFx0PC9kaXY+XHJcblxyXG5cdFx0PCEtLSBBY3Rpb24gLS0+XHJcblx0XHQ8ZWMtYnV0dG9uIHR5cGU9XCJjb21tb25cIlxyXG5cdFx0XHRcdCAgIGNsYXNzPVwibXQtM1wiXHJcblx0XHRcdFx0ICAgKm5nSWY9XCJhY3Rpb24/Lm9uQ2xpY2tcIlxyXG5cdFx0XHRcdCAgIFtpY29uXT1cImFjdGlvbj8uaWNvblwiXHJcblx0XHRcdFx0ICAgKGNsaWNrZWQpPVwiYWN0aW9uQ2xpY2tlZCgkZXZlbnQpXCJcclxuXHRcdFx0XHQgICBbbGFiZWxdPVwiYWN0aW9uPy5sYWJlbFwiXHJcblx0XHRcdFx0ICAgW2hpZGRlbl09XCJzdGF0dXMgPT09ICdwZW5kaW5nJ1wiPlxyXG5cdFx0PC9lYy1idXR0b24+XHJcblx0PC9uZy1jb250YWluZXI+XHJcblxyXG48L2Rpdj4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3ZpZXctb3ZlcmxheS92aWV3LW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdmlldy1vdmVybGF5L3ZpZXctb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBSTlELE1BQU0sT0FBTyxPQUFPO0lBV2xCLFlBQVksTUFBa0IsRUFBRSxPQUFnQjtRQU5oRCxXQUFNLEdBQWUsU0FBUyxDQUFDO1FBQy9CLFlBQU8sR0FBWSxFQUFFLENBQUM7UUFNcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELFNBQVMsQ0FBQyxNQUFrQixFQUFFLE9BQWdCLEVBQUUsTUFBZ0IsRUFBRSxjQUFpQyxFQUFFLGdCQUF5QjtRQUM1SCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUksU0FBUyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxJQUFJLFNBQVMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLElBQUksRUFBRSxDQUFDO0lBQ2pELENBQUM7Q0FDRjtBQUdEOztHQUVHO0FBTUgsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQU1XLFdBQU0sR0FBZSxTQUFTLENBQUM7S0E2QnpDO0lBWkMsU0FBUyxDQUFDLE1BQWtCLEVBQUUsT0FBZ0IsRUFBRSxNQUFnQixFQUFFLGNBQWlDO1FBQ2pHLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLElBQUksU0FBUyxDQUFDO0lBQ3BELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDOztpSEE3QlUsb0JBQW9CO3FHQUFwQixvQkFBb0IsK05DcENqQyx5cERBd0NNOzJGREpPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxhQUFhOzhCQUtkLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csYUFBYTtzQkFBckIsS0FBSztnQkFLRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZJdGVtIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvbmF2aWdhdGlvbi9uYXYtaXRlbSc7XHJcbmltcG9ydCB7IERpc3BsYXlTdGF0dXMsIFZpZXdTdGF0dXMgfSBmcm9tICcuLi8uLi9zaGFyZWQvZGlzcGxheSc7XHJcblxyXG5leHBvcnQgY2xhc3MgT3ZlcmxheSBpbXBsZW1lbnRzIERpc3BsYXlTdGF0dXMge1xyXG4gIC8qKiAgQGRlcHJlY2F0ZWQgRGVwcmVjYXRlZCBkdWUgdG8gbm9EYXRhVGVtcGxhdGUgYmVpbmcgcHJlZmVyZWQgKi9cclxuICBhY3Rpb24/OiBOYXZJdGVtO1xyXG4gIG5vRGF0YVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICBkaXNwbGF5QXNNYXNrPzogYm9vbGVhbjtcclxuICBzdGF0dXM6IFZpZXdTdGF0dXMgPSAnaGFzRGF0YSc7XHJcbiAgbWVzc2FnZT86IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKiogQWRkaXRpb24gY3NzIGNsYXNzZXMgdG8gYXBwbHkgdG8gdGhlIC5vdmVybGF5IGVsZW1lbnQgKi9cclxuICBvdmVybGF5Q2xhc3NMaXN0Pzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihzdGF0dXM6IFZpZXdTdGF0dXMsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2V0U3RhdHVzKHN0YXR1cywgbWVzc2FnZSk7XHJcbiAgfVxyXG4gIHNldFN0YXR1cyhzdGF0dXM6IFZpZXdTdGF0dXMsIG1lc3NhZ2U/OiBzdHJpbmcsIGFjdGlvbj86IE5hdkl0ZW0sIG5vRGF0YVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55Piwgb3ZlcmxheUNsYXNzTGlzdD86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XHJcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlIHx8ICcnO1xyXG4gICAgdGhpcy5hY3Rpb24gPSBhY3Rpb24gfHwgdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5ub0RhdGFUZW1wbGF0ZSA9IG5vRGF0YVRlbXBsYXRlIHx8IHVuZGVmaW5lZDtcclxuICAgIHRoaXMub3ZlcmxheUNsYXNzTGlzdCA9IG92ZXJsYXlDbGFzc0xpc3QgfHwgJyc7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFdyYXBzIGNvbnRlbnQgaW4gb3JkZXIgdG8gc2hvdyBwZW5kaW5nLCBlcnJvciwgYW5kIG5vIGRhdGEgc3RhdGVzIHdpdGggYW4gb3B0aW9uYWwgbWVzc2FnZS9ub0RhdGFUZW1wbGF0ZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdbZWNPdmVybGF5XScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdmlldy1vdmVybGF5LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFZpZXdPdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgT3ZlcmxheSB7XHJcbiAgQElucHV0KCkgc3RhdHVzOiBWaWV3U3RhdHVzID0gJ2hhc0RhdGEnO1xyXG4gIEBJbnB1dCgpIG1lc3NhZ2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKiAgQGRlcHJlY2F0ZWQgRGVwcmVjYXRlZCBkdWUgdG8gbm9EYXRhVGVtcGxhdGUgYmVpbmcgcHJlZmVyZWQgKi9cclxuICBASW5wdXQoKSBhY3Rpb24/OiBOYXZJdGVtIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIG5vRGF0YVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLyoqXHJcbiAgICogTWFzayAobm90IHJlbW92ZSkgdGhlIHRyYW5zY2x1ZGVkIGNvbnRlbnQgZnJvbSB0aGUgZG9tIHdoaWxlIG5vdCBoYXNEYXRhIHN0YXR1cy5cclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5QXNNYXNrPzogYm9vbGVhbjtcclxuXHJcbiAgLyoqIFxyXG4gICAqIEFkZGl0aW9uYWwgY3NzIGNsYXNzZXMgdG8gYXBwbHkgdG8gdGhlIC5vdmVybGF5IGVsZW1lbnQgXHJcbiAgICovXHJcbiAgQElucHV0KCkgb3ZlcmxheUNsYXNzTGlzdD86IHN0cmluZztcclxuXHJcbiAgc2V0U3RhdHVzKHN0YXR1czogVmlld1N0YXR1cywgbWVzc2FnZT86IHN0cmluZywgYWN0aW9uPzogTmF2SXRlbSwgbm9EYXRhVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcclxuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2UgfHwgJyc7XHJcbiAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbiB8fCB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLm5vRGF0YVRlbXBsYXRlID0gbm9EYXRhVGVtcGxhdGUgfHwgdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgYWN0aW9uQ2xpY2tlZChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hY3Rpb24gJiYgdGhpcy5hY3Rpb24ub25DbGljaykge1xyXG4gICAgICB0aGlzLmFjdGlvbi5vbkNsaWNrKGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPCEtLSBUcmFuc2NsdWRlZCBDb250ZW50IC0tPlxyXG48bmctY29udGVudCAqbmdJZj1cImRpc3BsYXlBc01hc2sgfHwgKCFkaXNwbGF5QXNNYXNrICYmIHN0YXR1cyA9PT0gJ2hhc0RhdGEnKVwiPjwvbmctY29udGVudD5cclxuPCEtLVVzZWQgYnkgR0kgdGVzdHMgdG8ga25vdyB0aGUgb3ZlcmxheSBzdGF0dXMgd2hldGhlciB3ZSB1c2UgbmdJZiBvciBtYXNrIHZlcnNpb24uIE5vIHZpc3VhbCBpbXBhY3QtLT5cclxuPHNwYW4gW2hpZGRlbl09XCJ0cnVlXCJcclxuXHQgIGNsYXNzPVwib3ZlcmxheS1zdGF0dXMte3tzdGF0dXN9fVwiPjwvc3Bhbj5cclxuPCEtLSBPdmVybGF5IGdvZXMgbGFzdCBzbyBpdCBpcyByZW5kZXJlZCBvbiB0b3Agb2YgcHJlY2VkaW5nIGNvbnRlbnQgZHVlIHRvIHNvdXJjZSBvcmRlciAtLT5cclxuPGRpdiAqbmdJZj1cInN0YXR1cyAhPT0gJ2hhc0RhdGEnXCJcclxuXHQgY2xhc3M9XCJvdmVybGF5IGZsZXgtZ3JvdyB7e292ZXJsYXlDbGFzc0xpc3R9fVwiXHJcblx0IFtuZ0NsYXNzXT1cInsnbm90LW1hc2snOiAhZGlzcGxheUFzTWFzayxcclxuXHRcdFx0XHQnb3ZlcmxheS1lcnJvcic6IHN0YXR1cyA9PT0gJ2Vycm9yJyxcclxuXHRcdFx0XHQnb3ZlcmxheS1ub2RhdGEnOiBzdGF0dXMgPT09ICdub0RhdGEnLFxyXG5cdFx0XHRcdCdvdmVybGF5LXBlbmRpbmcnOiBzdGF0dXMgPT09ICdwZW5kaW5nJ31cIj5cclxuXHJcblx0PCEtLVBlbmRpbmcgU3Bpbm5lci0tPlxyXG5cdDxlYy1zcGlubmVyIFtoaWRkZW5dPVwic3RhdHVzICE9PSAncGVuZGluZydcIj48L2VjLXNwaW5uZXI+XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzdGF0dXMgPT09ICdub0RhdGEnICYmIG5vRGF0YVRlbXBsYXRlXCI+XHJcblx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9EYXRhVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHQ8bmctY29udGFpbmVyICpuZ0lmPVwiKHN0YXR1cyA9PT0gJ25vRGF0YScgJiYgIW5vRGF0YVRlbXBsYXRlKSB8fCBzdGF0dXMgIT09ICdub0RhdGEnXCI+XHJcblx0XHQ8IS0tU3RhdHVzIE1lc3NhZ2UtLT5cclxuXHRcdDxkaXYgaWQ9XCJzdGF0dXNNZXNzYWdlXCJcclxuXHRcdFx0IGNsYXNzPVwibWVzc2FnZVwiXHJcblx0XHRcdCAqbmdJZj1cIm1lc3NhZ2VcIlxyXG5cdFx0XHQgW25nQ2xhc3NdPVwieydlcnJvcic6IHN0YXR1cyA9PT0gJ2Vycm9yJywgJ210LTEnOiBzdGF0dXMgPT09ICdwZW5kaW5nJ31cIlxyXG5cdFx0XHQgW2lubmVySHRtbF09XCJtZXNzYWdlIHwgdHJhbnNsYXRlXCI+XHJcblx0XHQ8L2Rpdj5cclxuXHJcblx0XHQ8IS0tIEFjdGlvbiAtLT5cclxuXHRcdDxlYy1idXR0b24gdHlwZT1cImNvbW1vblwiXHJcblx0XHRcdFx0ICAgY2xhc3M9XCJtdC0zXCJcclxuXHRcdFx0XHQgICAqbmdJZj1cImFjdGlvbj8ub25DbGlja1wiXHJcblx0XHRcdFx0ICAgW2ljb25dPVwiYWN0aW9uPy5pY29uXCJcclxuXHRcdFx0XHQgICAoY2xpY2tlZCk9XCJhY3Rpb25DbGlja2VkKCRldmVudClcIlxyXG5cdFx0XHRcdCAgIFtsYWJlbF09XCJhY3Rpb24/LmxhYmVsXCJcclxuXHRcdFx0XHQgICBbaGlkZGVuXT1cInN0YXR1cyA9PT0gJ3BlbmRpbmcnXCI+XHJcblx0XHQ8L2VjLWJ1dHRvbj5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcbjwvZGl2PiJdfQ==
@@ -13,12 +13,11 @@ export class ClickAreaForDirective {
13
13
  }
14
14
  }
15
15
  ClickAreaForDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ClickAreaForDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
- ClickAreaForDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ClickAreaForDirective, isStandalone: true, selector: "[ecClickAreaFor]", inputs: { targetEl: ["ecClickAreaFor", "targetEl"] }, host: { listeners: { "click": "onClick($event)" }, properties: { "class.cursor-pointer": "this.targetEl" } }, ngImport: i0 });
16
+ ClickAreaForDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ClickAreaForDirective, selector: "[ecClickAreaFor]", inputs: { targetEl: ["ecClickAreaFor", "targetEl"] }, host: { listeners: { "click": "onClick($event)" }, properties: { "class.cursor-pointer": "this.targetEl" } }, ngImport: i0 });
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ClickAreaForDirective, decorators: [{
18
18
  type: Directive,
19
19
  args: [{
20
- selector: '[ecClickAreaFor]',
21
- standalone: true
20
+ selector: '[ecClickAreaFor]'
22
21
  }]
23
22
  }], ctorParameters: function () { return []; }, propDecorators: { targetEl: [{
24
23
  type: HostBinding,
@@ -30,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
30
29
  type: HostListener,
31
30
  args: ['click', ['$event']]
32
31
  }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stYXJlYS1mb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC9kaXJlY3RpdmVzL2NsaWNrLWFyZWEtZm9yL2NsaWNrLWFyZWEtZm9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQVVwRixNQUFNLE9BQU8scUJBQXFCO0lBUWhDLGdCQUFlLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsYUFBYSxLQUFLLFVBQVUsQ0FBQztJQUM5RSxDQUFDO0lBRWtDLE9BQU8sQ0FBQyxLQUFZO1FBQ3JELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQzs7a0hBbkJVLHFCQUFxQjtzR0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ25COzBFQUtRLFFBQVE7c0JBRmQsV0FBVzt1QkFBQyxzQkFBc0I7O3NCQUNsQyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFXWSxPQUFPO3NCQUF6QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEhvc3RMaXN0ZW5lciwgSG9zdEJpbmRpbmcsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlja2FibGVFbGVtZW50IHtcclxuICBkaXNwYXRjaEV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQ7XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbZWNDbGlja0FyZWFGb3JdJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIENsaWNrQXJlYUZvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY3Vyc29yLXBvaW50ZXInKVxyXG4gIEBJbnB1dCgnZWNDbGlja0FyZWFGb3InKSBcclxuICBwdWJsaWMgdGFyZ2V0RWw/OiBhbnk7XHJcblxyXG4gIHByaXZhdGUgaXNUYXJnZXRDbGlja2FibGUhOiBib29sZWFuO1xyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlzVGFyZ2V0Q2xpY2thYmxlID0gdHlwZW9mIHRoaXMudGFyZ2V0RWw/LmRpc3BhdGNoRXZlbnQgPT09ICdmdW5jdGlvbic7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pc1RhcmdldENsaWNrYWJsZSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnRhcmdldEVsLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjbGljaycpKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stYXJlYS1mb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC9kaXJlY3RpdmVzL2NsaWNrLWFyZWEtZm9yL2NsaWNrLWFyZWEtZm9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQVNwRixNQUFNLE9BQU8scUJBQXFCO0lBUWhDLGdCQUFlLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsYUFBYSxLQUFLLFVBQVUsQ0FBQztJQUM5RSxDQUFDO0lBRWtDLE9BQU8sQ0FBQyxLQUFZO1FBQ3JELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQzs7a0hBbkJVLHFCQUFxQjtzR0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7MEVBS1EsUUFBUTtzQkFGZCxXQUFXO3VCQUFDLHNCQUFzQjs7c0JBQ2xDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQVdZLE9BQU87c0JBQXpDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgSG9zdExpc3RlbmVyLCBIb3N0QmluZGluZywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaWNrYWJsZUVsZW1lbnQge1xyXG4gIGRpc3BhdGNoRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZDtcclxufVxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZWNDbGlja0FyZWFGb3JdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2xpY2tBcmVhRm9yRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jdXJzb3ItcG9pbnRlcicpXHJcbiAgQElucHV0KCdlY0NsaWNrQXJlYUZvcicpIFxyXG4gIHB1YmxpYyB0YXJnZXRFbD86IGFueTtcclxuXHJcbiAgcHJpdmF0ZSBpc1RhcmdldENsaWNrYWJsZSE6IGJvb2xlYW47XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaXNUYXJnZXRDbGlja2FibGUgPSB0eXBlb2YgdGhpcy50YXJnZXRFbD8uZGlzcGF0Y2hFdmVudCA9PT0gJ2Z1bmN0aW9uJztcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSkgb25DbGljayhldmVudDogRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmlzVGFyZ2V0Q2xpY2thYmxlKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMudGFyZ2V0RWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NsaWNrJykpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -98,15 +98,14 @@ export class IfViewportWidthDirective {
98
98
  }
99
99
  }
100
100
  IfViewportWidthDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IfViewportWidthDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i1.WindowService }], target: i0.ɵɵFactoryTarget.Directive });
101
- IfViewportWidthDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: IfViewportWidthDirective, isStandalone: true, selector: "[ecIfViewportWidth]", inputs: { width: ["ecIfViewportWidth", "width"] }, ngImport: i0 });
101
+ IfViewportWidthDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: IfViewportWidthDirective, selector: "[ecIfViewportWidth]", inputs: { width: ["ecIfViewportWidth", "width"] }, ngImport: i0 });
102
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IfViewportWidthDirective, decorators: [{
103
103
  type: Directive,
104
104
  args: [{
105
- selector: '[ecIfViewportWidth]',
106
- standalone: true
105
+ selector: '[ecIfViewportWidth]'
107
106
  }]
108
107
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i1.WindowService }]; }, propDecorators: { width: [{
109
108
  type: Input,
110
109
  args: ['ecIfViewportWidth']
111
110
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYtdmlld3BvcnQtd2lkdGguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC9kaXJlY3RpdmVzL2lmLXZpZXdwb3J0LXdpZHRoL2lmLXZpZXdwb3J0LXdpZHRoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBeUMsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHekQ7Ozs7R0FJRztBQUtILE1BQU0sT0FBTyx3QkFBd0I7SUFrQ25DLFlBQ1UsYUFBK0IsRUFDL0IsV0FBNkIsRUFDN0IsYUFBNEI7UUFGNUIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWJ0Qzs7V0FFRztRQUNLLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVqRDs7V0FFRztRQUNLLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFNL0IsQ0FBQztJQUVFLFFBQVE7UUFDYixpRkFBaUY7UUFDakYsMkRBQTJEO1FBQzNELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQy9DLE9BQU87U0FDUjtRQUVELGlGQUFpRjtRQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLCtOQUErTixDQUFDLENBQUM7WUFDL08sT0FBTztTQUNSO2FBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUM1QjthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRTtZQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUUsR0FBRyxFQUFFO2dCQUM1RixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQTtTQUNIO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQjtRQUN0QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVcsQ0FBQztRQUVyRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzlELElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3BFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO1NBQ0Y7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO1NBQ0Y7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO1NBQ0Y7SUFFSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxJQUFJO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxJQUFJO1FBQ1YsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDeEI7SUFDSCxDQUFDOztxSEFqSFUsd0JBQXdCO3lHQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7NkpBYW9DLEtBQUs7c0JBQXZDLEtBQUs7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25Jbml0LCBWaWV3Q29udGFpbmVyUmVmLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS93aW5kb3cuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQ29uZGl0aW9uYWxseSBpbmNsdWRlIGNvbnRlbnQgaW4gdGhlIERPTSBiYXNlZCBvbiB0aGUgd2lkdGggb2YgdGhlIHZpZXdwb3J0LiBVc2UgdG8gcHJvZ3JhbW1hdGljYWxseSBpbXBsZW1lbnQgcmVwb25zaXZlIGxheW91dHMgYW5kIHByZXZlbnQgZHVwbGljYXRlIG1hcmt1cCBhbmQgbGlzdGVuZXJzLlxyXG4gKiBJbiBtb3N0IHNjZW5hcmlvcyBDU1MgbWVkaWEgcXVlcmllcyBpcyBzdWZmaWNpZW50IHRvIGhpZGUvc2hvdyBlbGVtZW50cyByZXNwb25zaXZlbHkuIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMgbWVkaWEgcXVlcmllcyB3b3VsZCByZXN1bHQgaW4gZHVwbGljYXRlIG1hcmt1cCBhbmQgbGlzdGVuZXJzXHJcbiAqIHRoYXQgY291bGQgY2F1c2UgdW5kZXNpcmVkIHNpZGUgZWZmZWN0cyBhbmQgaXQgaXMgcHJlZmVycmVkIHRvIHVzIHByb2dyYW1tYXRpYyBlbGVtZW50cyB0byBhY2hpZXZlIHRoZSBsYXlvdXQuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2VjSWZWaWV3cG9ydFdpZHRoXScsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZlZpZXdwb3J0V2lkdGhEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXR7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBtaW4gYW5kLCBvcHRpb25hbGx5LCBtYXggd2lkdGggaW4gcGl4ZWxzIHRoYXQgdGhlIHZpZXdwb3J0IG11c3QgYmUgaW4gb3JkZXIgdG8gaW5jbHVkZSB0aGUgZGlyZWN0aXZlIGFuZCBpdHMgY29udGVudCBpbiB0aGUgRE9NLlxyXG4gICAqIEEgc2luZ2xlIG51bWJlciBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIG1pbiB3aWR0aCwgYnV0IGFuIG9iamVjdCB3aXRoIG1pbiBhbmQgbWF4IG11c3QgYmUgdXNlZCB0byBzZXQgYSBtaW4gYW5kIG1heCB3aWR0aCBvciBqdXN0IGEgbWF4IHdpZHRoLlxyXG4gICAqIFxyXG4gICAqIGBgYGh0bWxcclxuICAgKiA8ZGl2ICplY0lmVmlld3BvcnRXaWR0aD1cIjUwMFwiPkNvbnRlbnQgdG8gcmVuZGVyIGlmIHZpZXdwb3J0IHdpZHRoIGlzID49IDUwMHB4PC9kaXY+XHJcbiAgICogPGRpdiAqZWNJZlZpZXdwb3J0V2lkdGg9XCJ7bWF4OiA4MDB9XCI+Q29udGVudCB0byByZW5kZXIgaWYgdGhlIHZpZXdwb3J0IHdpZHRoIGlzIDw9IDgwMHB4PC9kaXY+XHJcbiAgICogPGRpdiAqZWNJZlZpZXdwb3J0V2lkdGg9XCJ7bWluOiA1MDAsIG1heDogODAwfVwiPkNvbnRlbnQgdG8gcmVuZGVyIGlmIHRoZSB2aWV3cG9ydCB3aWR0aCBpcyBiZXR3ZWVuIDUwMHB4IGFuZCA4MDBweDwvZGl2PlxyXG4gICAqIGBgYFxyXG4gICAqL1xyXG4gIEBJbnB1dCgnZWNJZlZpZXdwb3J0V2lkdGgnKSBwdWJsaWMgd2lkdGghOiBudW1iZXIgfCB7bWluPzogbnVtYmVyOyBtYXg/OiBudW1iZXJ9O1xyXG5cclxuICAvKiogXHJcbiAgICogSWYgZGVmaW5lZCwgdGhlIHdpZHRoIGluIHBpeGVscyB0aGF0IHRoZSB2aWV3cG9ydCBtdXN0IGJlIHRvIGluY2x1ZGUgdGhlIGRpcmVjdGl2ZSBhbmQgaXRzIGNvbnRlbnQgaW4gdGhlIERPTVxyXG4gICAqL1xyXG4gIHByaXZhdGUgbWluV2lkdGg/OiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIGRlZmluZWQsIHRoZSB3aWR0aCBpbiBwaXhlbHMgdGhhdCB0aGUgdmlld3BvcnQgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiB0byBpbmNsdWRlIHRoZSBkaXJlY3RpdmUgYW5kIGl0cyBjb250ZW4gaW4gdGhlIERPTVxyXG4gICAqL1xyXG4gIHByaXZhdGUgbWF4V2lkdGg/OiBudW1iZXI7XHJcblxyXG4gIC8qKiBcclxuICAgKiBVc2VkIHRvIHVuc3Vic2NyaWJlIHdoZW4gdGhlIGRpcmVjdGl2ZSBpcyByZW1vdmVkIGZyb20gdGhlIERPTVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZGVzdHJveWVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogSW50ZXJuYWxseSB0cmFja3Mgd2hldGhlciB0aGUgZGlyZWN0aXZlIGFuZCBpdHMgY29udGVudCBpcyBpbmNsdWRlZCBpbiB0aGUgRE9NXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsIFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PiwgXHJcbiAgICBwcml2YXRlIHdpbmRvd1NlcnZpY2U6IFdpbmRvd1NlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyBXaW5kb3cgbWF5IG5vdCBhdmFpbGFibGUgaWYgdGhpcyBjb2RlIGlzIG5vdCBiZWluZyBydW4gb24gYSBicm93c2VyIHBsYXRmb3JtLiBcclxuICAgIC8vIElmIHRoZXJlIGlzIG5vIHdpbmRvdyBvciBpbm5lcldpZHRoIGFib3J0IGluaXRpYWxpemF0aW9uXHJcbiAgICBpZiAodGhpcy53aW5kb3dTZXJ2aWNlLmlubmVyV2lkdGggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2hlY2sgZm9yIHJlcXVpcmVkIHZhbHVlcy4gSWYgbm9uZSBhcmUgc2V0LCBsb2cgZXJyb3IgYW5kIGFib3J0IGluaXRpYWxpemF0aW9uXHJcbiAgICBpZiAoIXRoaXMud2lkdGgpICB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEEgbWluIG9yIG1heCB3aWR0aCB3YXMgbm90IHByb3ZpZGVkLiBQcm92aWRlIGEgdmFsdWUgZm9yICdtaW4nIG9yICdtYXgnIGJ5IGFzc2lnbmluZyBhIHNpbmdsZSB2YWx1ZSBvciBvYmplY3QgdG8gdGhlIGRpcmVjdGl2ZS4gRS5nLiAqZWNJZlZpZXdwb3J0V2lkdGg9XCI4MDBcIiAoYXNzaWduZWQgdG8gbWluKSBvciAqZWNJZlZpZXdwb3J0V2lkdGg9XCJ7bWluOiA4MDAsIG1heDogMTI4MH1cImApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLndpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICB0aGlzLm1pbldpZHRoID0gdGhpcy53aWR0aDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy53aWR0aCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMubWluV2lkdGggPSB0aGlzLndpZHRoLm1pbjtcclxuICAgICAgdGhpcy5tYXhXaWR0aCA9IHRoaXMud2lkdGgubWF4O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLndpbmRvd1NlcnZpY2UucmVzaXplZCkge1xyXG4gICAgICB0aGlzLndpbmRvd1NlcnZpY2UucmVzaXplZC5waXBlKGRlYm91bmNlVGltZSgxMDApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUoICgpID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVZpc2liaWxpdHkoKTtcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlVmlzaWJpbGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBjdXJyZW50IHZpZXdwb3J0IHdpZHRoIGFuZCBkZXRlcm1pbiBpZiB0aGUgZGlyZWN0aXZlJ3MgY29udGVudCBzaG91bGQgYmVcclxuICAgKiBpbmNsdWRlZCBpbiB0aGUgRE9NIGJhc2VkIG9uIHRoZSBtaW4gYW5kIG1heCB3aWR0aCBzZXR0aW5nc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlVmlzaWJpbGl0eSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHZpZXdwb3J0V2lkdGggPSB0aGlzLndpbmRvd1NlcnZpY2UuaW5uZXJXaWR0aCE7XHJcbiAgICBcclxuICAgIGlmICh0aGlzLm1pbldpZHRoICE9PSB1bmRlZmluZWQgJiYgdGhpcy5tYXhXaWR0aCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh2aWV3cG9ydFdpZHRoID49IHRoaXMubWluV2lkdGggJiYgdmlld3BvcnRXaWR0aCA8PSB0aGlzLm1heFdpZHRoKSB7XHJcbiAgICAgICAgdGhpcy5zaG93KCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5taW5XaWR0aCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh2aWV3cG9ydFdpZHRoID49IHRoaXMubWluV2lkdGgpIHtcclxuICAgICAgICB0aGlzLnNob3coKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLm1heFdpZHRoICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHZpZXdwb3J0V2lkdGggPD0gdGhpcy5tYXhXaWR0aCkge1xyXG4gICAgICAgIHRoaXMuc2hvdygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAgIFxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIHRoZSBkaXJlY3RpdmUncyBjb250ZW50IHRvIHRoZSBET01cclxuICAgKi9cclxuICBwcml2YXRlIHNob3coKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNWaXNpYmxlKSB7XHJcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XHJcbiAgICAgIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSB0aGUgZGlyZWN0aXZlJ3MgY29udGVudCBmcm9tIHRoZSBET01cclxuICAgKi9cclxuICBwcml2YXRlIGhpZGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc1Zpc2libGUpIHtcclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYtdmlld3BvcnQtd2lkdGguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC9kaXJlY3RpdmVzL2lmLXZpZXdwb3J0LXdpZHRoL2lmLXZpZXdwb3J0LXdpZHRoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBeUMsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHekQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyx3QkFBd0I7SUFrQ25DLFlBQ1UsYUFBK0IsRUFDL0IsV0FBNkIsRUFDN0IsYUFBNEI7UUFGNUIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWJ0Qzs7V0FFRztRQUNLLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVqRDs7V0FFRztRQUNLLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFNL0IsQ0FBQztJQUVFLFFBQVE7UUFDYixpRkFBaUY7UUFDakYsMkRBQTJEO1FBQzNELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQy9DLE9BQU87U0FDUjtRQUVELGlGQUFpRjtRQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLCtOQUErTixDQUFDLENBQUM7WUFDL08sT0FBTztTQUNSO2FBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUM1QjthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRTtZQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUUsR0FBRyxFQUFFO2dCQUM1RixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQTtTQUNIO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQjtRQUN0QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVcsQ0FBQztRQUVyRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzlELElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3BFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO1NBQ0Y7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO1NBQ0Y7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO1NBQ0Y7SUFFSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxJQUFJO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxJQUFJO1FBQ1YsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDeEI7SUFDSCxDQUFDOztxSEFqSFUsd0JBQXdCO3lHQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFIcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs2SkFhb0MsS0FBSztzQkFBdkMsS0FBSzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFdpbmRvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3dpbmRvdy5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBDb25kaXRpb25hbGx5IGluY2x1ZGUgY29udGVudCBpbiB0aGUgRE9NIGJhc2VkIG9uIHRoZSB3aWR0aCBvZiB0aGUgdmlld3BvcnQuIFVzZSB0byBwcm9ncmFtbWF0aWNhbGx5IGltcGxlbWVudCByZXBvbnNpdmUgbGF5b3V0cyBhbmQgcHJldmVudCBkdXBsaWNhdGUgbWFya3VwIGFuZCBsaXN0ZW5lcnMuXHJcbiAqIEluIG1vc3Qgc2NlbmFyaW9zIENTUyBtZWRpYSBxdWVyaWVzIGlzIHN1ZmZpY2llbnQgdG8gaGlkZS9zaG93IGVsZW1lbnRzIHJlc3BvbnNpdmVseS4gSG93ZXZlciwgaW4gc29tZSBjYXNlcyBtZWRpYSBxdWVyaWVzIHdvdWxkIHJlc3VsdCBpbiBkdXBsaWNhdGUgbWFya3VwIGFuZCBsaXN0ZW5lcnNcclxuICogdGhhdCBjb3VsZCBjYXVzZSB1bmRlc2lyZWQgc2lkZSBlZmZlY3RzIGFuZCBpdCBpcyBwcmVmZXJyZWQgdG8gdXMgcHJvZ3JhbW1hdGljIGVsZW1lbnRzIHRvIGFjaGlldmUgdGhlIGxheW91dC5cclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2VjSWZWaWV3cG9ydFdpZHRoXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIElmVmlld3BvcnRXaWR0aERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdHtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG1pbiBhbmQsIG9wdGlvbmFsbHksIG1heCB3aWR0aCBpbiBwaXhlbHMgdGhhdCB0aGUgdmlld3BvcnQgbXVzdCBiZSBpbiBvcmRlciB0byBpbmNsdWRlIHRoZSBkaXJlY3RpdmUgYW5kIGl0cyBjb250ZW50IGluIHRoZSBET00uXHJcbiAgICogQSBzaW5nbGUgbnVtYmVyIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgbWluIHdpZHRoLCBidXQgYW4gb2JqZWN0IHdpdGggbWluIGFuZCBtYXggbXVzdCBiZSB1c2VkIHRvIHNldCBhIG1pbiBhbmQgbWF4IHdpZHRoIG9yIGp1c3QgYSBtYXggd2lkdGguXHJcbiAgICogXHJcbiAgICogYGBgaHRtbFxyXG4gICAqIDxkaXYgKmVjSWZWaWV3cG9ydFdpZHRoPVwiNTAwXCI+Q29udGVudCB0byByZW5kZXIgaWYgdmlld3BvcnQgd2lkdGggaXMgPj0gNTAwcHg8L2Rpdj5cclxuICAgKiA8ZGl2ICplY0lmVmlld3BvcnRXaWR0aD1cInttYXg6IDgwMH1cIj5Db250ZW50IHRvIHJlbmRlciBpZiB0aGUgdmlld3BvcnQgd2lkdGggaXMgPD0gODAwcHg8L2Rpdj5cclxuICAgKiA8ZGl2ICplY0lmVmlld3BvcnRXaWR0aD1cInttaW46IDUwMCwgbWF4OiA4MDB9XCI+Q29udGVudCB0byByZW5kZXIgaWYgdGhlIHZpZXdwb3J0IHdpZHRoIGlzIGJldHdlZW4gNTAwcHggYW5kIDgwMHB4PC9kaXY+XHJcbiAgICogYGBgXHJcbiAgICovXHJcbiAgQElucHV0KCdlY0lmVmlld3BvcnRXaWR0aCcpIHB1YmxpYyB3aWR0aCE6IG51bWJlciB8IHttaW4/OiBudW1iZXI7IG1heD86IG51bWJlcn07XHJcblxyXG4gIC8qKiBcclxuICAgKiBJZiBkZWZpbmVkLCB0aGUgd2lkdGggaW4gcGl4ZWxzIHRoYXQgdGhlIHZpZXdwb3J0IG11c3QgYmUgdG8gaW5jbHVkZSB0aGUgZGlyZWN0aXZlIGFuZCBpdHMgY29udGVudCBpbiB0aGUgRE9NXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtaW5XaWR0aD86IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogSWYgZGVmaW5lZCwgdGhlIHdpZHRoIGluIHBpeGVscyB0aGF0IHRoZSB2aWV3cG9ydCBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHRvIGluY2x1ZGUgdGhlIGRpcmVjdGl2ZSBhbmQgaXRzIGNvbnRlbiBpbiB0aGUgRE9NXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtYXhXaWR0aD86IG51bWJlcjtcclxuXHJcbiAgLyoqIFxyXG4gICAqIFVzZWQgdG8gdW5zdWJzY3JpYmUgd2hlbiB0aGUgZGlyZWN0aXZlIGlzIHJlbW92ZWQgZnJvbSB0aGUgRE9NXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAvKipcclxuICAgKiBJbnRlcm5hbGx5IHRyYWNrcyB3aGV0aGVyIHRoZSBkaXJlY3RpdmUgYW5kIGl0cyBjb250ZW50IGlzIGluY2x1ZGVkIGluIHRoZSBET01cclxuICAgKi9cclxuICBwcml2YXRlIGlzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiwgXHJcbiAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LCBcclxuICAgIHByaXZhdGUgd2luZG93U2VydmljZTogV2luZG93U2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIFdpbmRvdyBtYXkgbm90IGF2YWlsYWJsZSBpZiB0aGlzIGNvZGUgaXMgbm90IGJlaW5nIHJ1biBvbiBhIGJyb3dzZXIgcGxhdGZvcm0uIFxyXG4gICAgLy8gSWYgdGhlcmUgaXMgbm8gd2luZG93IG9yIGlubmVyV2lkdGggYWJvcnQgaW5pdGlhbGl6YXRpb25cclxuICAgIGlmICh0aGlzLndpbmRvd1NlcnZpY2UuaW5uZXJXaWR0aCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDaGVjayBmb3IgcmVxdWlyZWQgdmFsdWVzLiBJZiBub25lIGFyZSBzZXQsIGxvZyBlcnJvciBhbmQgYWJvcnQgaW5pdGlhbGl6YXRpb25cclxuICAgIGlmICghdGhpcy53aWR0aCkgIHtcclxuICAgICAgY29uc29sZS5lcnJvcihgQSBtaW4gb3IgbWF4IHdpZHRoIHdhcyBub3QgcHJvdmlkZWQuIFByb3ZpZGUgYSB2YWx1ZSBmb3IgJ21pbicgb3IgJ21heCcgYnkgYXNzaWduaW5nIGEgc2luZ2xlIHZhbHVlIG9yIG9iamVjdCB0byB0aGUgZGlyZWN0aXZlLiBFLmcuICplY0lmVmlld3BvcnRXaWR0aD1cIjgwMFwiIChhc3NpZ25lZCB0byBtaW4pIG9yICplY0lmVmlld3BvcnRXaWR0aD1cInttaW46IDgwMCwgbWF4OiAxMjgwfVwiYCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMud2lkdGggPT09ICdudW1iZXInKSB7XHJcbiAgICAgIHRoaXMubWluV2lkdGggPSB0aGlzLndpZHRoO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLndpZHRoICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5taW5XaWR0aCA9IHRoaXMud2lkdGgubWluO1xyXG4gICAgICB0aGlzLm1heFdpZHRoID0gdGhpcy53aWR0aC5tYXg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMud2luZG93U2VydmljZS5yZXNpemVkKSB7XHJcbiAgICAgIHRoaXMud2luZG93U2VydmljZS5yZXNpemVkLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpLnN1YnNjcmliZSggKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudXBkYXRlVmlzaWJpbGl0eSgpO1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVWaXNpYmlsaXR5KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIGN1cnJlbnQgdmlld3BvcnQgd2lkdGggYW5kIGRldGVybWluIGlmIHRoZSBkaXJlY3RpdmUncyBjb250ZW50IHNob3VsZCBiZVxyXG4gICAqIGluY2x1ZGVkIGluIHRoZSBET00gYmFzZWQgb24gdGhlIG1pbiBhbmQgbWF4IHdpZHRoIHNldHRpbmdzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1cGRhdGVWaXNpYmlsaXR5KCk6IHZvaWQge1xyXG4gICAgY29uc3Qgdmlld3BvcnRXaWR0aCA9IHRoaXMud2luZG93U2VydmljZS5pbm5lcldpZHRoITtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMubWluV2lkdGggIT09IHVuZGVmaW5lZCAmJiB0aGlzLm1heFdpZHRoICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHZpZXdwb3J0V2lkdGggPj0gdGhpcy5taW5XaWR0aCAmJiB2aWV3cG9ydFdpZHRoIDw9IHRoaXMubWF4V2lkdGgpIHtcclxuICAgICAgICB0aGlzLnNob3coKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLm1pbldpZHRoICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHZpZXdwb3J0V2lkdGggPj0gdGhpcy5taW5XaWR0aCkge1xyXG4gICAgICAgIHRoaXMuc2hvdygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubWF4V2lkdGggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAodmlld3BvcnRXaWR0aCA8PSB0aGlzLm1heFdpZHRoKSB7XHJcbiAgICAgICAgdGhpcy5zaG93KCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICAgXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgdGhlIGRpcmVjdGl2ZSdzIGNvbnRlbnQgdG8gdGhlIERPTVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2hvdygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc1Zpc2libGUpIHtcclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcclxuICAgICAgdGhpcy5pc1Zpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBkaXJlY3RpdmUncyBjb250ZW50IGZyb20gdGhlIERPTVxyXG4gICAqL1xyXG4gIHByaXZhdGUgaGlkZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzVmlzaWJsZSkge1xyXG4gICAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcclxuICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19