@ardium-ui/ui 3.2.1 → 3.2.3

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 (131) hide show
  1. package/esm2022/lib/_internal/boolean-component.mjs +4 -4
  2. package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +4 -4
  3. package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +5 -5
  4. package/esm2022/lib/_internal/disablable-component.mjs +4 -4
  5. package/esm2022/lib/_internal/focusable-component.mjs +4 -4
  6. package/esm2022/lib/_internal/ngmodel-component.mjs +4 -4
  7. package/esm2022/lib/_internal/selectable-list-component.mjs +6 -5
  8. package/esm2022/lib/badge/badge.directive.mjs +4 -4
  9. package/esm2022/lib/badge/badge.module.mjs +5 -5
  10. package/esm2022/lib/buttons/_button-base.mjs +4 -4
  11. package/esm2022/lib/buttons/button/button.component.mjs +4 -4
  12. package/esm2022/lib/buttons/button/button.module.mjs +5 -5
  13. package/esm2022/lib/buttons/fab/fab.component.mjs +4 -4
  14. package/esm2022/lib/buttons/fab/fab.module.mjs +5 -5
  15. package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +4 -4
  16. package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +5 -5
  17. package/esm2022/lib/card/card.children.mjs +25 -25
  18. package/esm2022/lib/card/card.component.mjs +7 -7
  19. package/esm2022/lib/card/card.module.mjs +5 -5
  20. package/esm2022/lib/checkbox/checkbox.component.mjs +4 -4
  21. package/esm2022/lib/checkbox/checkbox.module.mjs +5 -5
  22. package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +9 -6
  23. package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +5 -5
  24. package/esm2022/lib/chip/chip.component.mjs +4 -4
  25. package/esm2022/lib/chip/chip.module.mjs +5 -5
  26. package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +4 -4
  27. package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +4 -4
  28. package/esm2022/lib/color/color-display/color-display.component.mjs +4 -4
  29. package/esm2022/lib/color/color-display/color-display.module.mjs +5 -5
  30. package/esm2022/lib/dialog/dialog.component.mjs +4 -4
  31. package/esm2022/lib/dialog/dialog.directives.mjs +4 -4
  32. package/esm2022/lib/dialog/dialog.module.mjs +5 -5
  33. package/esm2022/lib/divider/divider.component.mjs +4 -4
  34. package/esm2022/lib/divider/divider.module.mjs +5 -5
  35. package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +4 -4
  36. package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +5 -5
  37. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +4 -4
  38. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +10 -10
  39. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +5 -5
  40. package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +4 -4
  41. package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +19 -19
  42. package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +5 -5
  43. package/esm2022/lib/file-inputs/file-input-base.mjs +6 -5
  44. package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +4 -4
  45. package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +7 -7
  46. package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +5 -5
  47. package/esm2022/lib/icon/icon.component.mjs +4 -4
  48. package/esm2022/lib/icon/icon.module.mjs +5 -5
  49. package/esm2022/lib/icon/icon.pipe.mjs +4 -4
  50. package/esm2022/lib/inputs/_simple-input-base.mjs +4 -4
  51. package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +4 -4
  52. package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +5 -5
  53. package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +4 -4
  54. package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +10 -10
  55. package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +5 -5
  56. package/esm2022/lib/inputs/input/input.component.mjs +4 -4
  57. package/esm2022/lib/inputs/input/input.directives.mjs +16 -16
  58. package/esm2022/lib/inputs/input/input.module.mjs +5 -5
  59. package/esm2022/lib/inputs/number-input/number-input.component.mjs +5 -5
  60. package/esm2022/lib/inputs/number-input/number-input.directives.mjs +4 -4
  61. package/esm2022/lib/inputs/number-input/number-input.module.mjs +5 -5
  62. package/esm2022/lib/inputs/password-input/password-input.component.mjs +4 -4
  63. package/esm2022/lib/inputs/password-input/password-input.directives.mjs +13 -13
  64. package/esm2022/lib/inputs/password-input/password-input.module.mjs +5 -5
  65. package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +4 -4
  66. package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +10 -10
  67. package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +5 -5
  68. package/esm2022/lib/kbd/kbd.component.mjs +4 -4
  69. package/esm2022/lib/kbd/kbd.directive.mjs +4 -4
  70. package/esm2022/lib/kbd/kbd.module.mjs +5 -5
  71. package/esm2022/lib/kbd/kbd.pipe.mjs +4 -4
  72. package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +4 -4
  73. package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +5 -5
  74. package/esm2022/lib/modal/modal.component.mjs +4 -4
  75. package/esm2022/lib/modal/modal.module.mjs +5 -5
  76. package/esm2022/lib/option/option.component.mjs +4 -4
  77. package/esm2022/lib/option/option.module.mjs +5 -5
  78. package/esm2022/lib/progress-bar/progress-bar.component.mjs +4 -4
  79. package/esm2022/lib/progress-bar/progress-bar.directive.mjs +4 -4
  80. package/esm2022/lib/progress-bar/progress-bar.module.mjs +5 -5
  81. package/esm2022/lib/progress-circle/progress-circle.component.mjs +4 -4
  82. package/esm2022/lib/progress-circle/progress-circle.directive.mjs +4 -4
  83. package/esm2022/lib/progress-circle/progress-circle.module.mjs +5 -5
  84. package/esm2022/lib/radio/radio/radio.component.mjs +6 -5
  85. package/esm2022/lib/radio/radio-group.component.mjs +6 -5
  86. package/esm2022/lib/radio/radio.module.mjs +5 -5
  87. package/esm2022/lib/segment/segment.component.mjs +4 -4
  88. package/esm2022/lib/segment/segment.directives.mjs +4 -4
  89. package/esm2022/lib/segment/segment.module.mjs +5 -5
  90. package/esm2022/lib/select/select.component.mjs +6 -5
  91. package/esm2022/lib/select/select.directive.mjs +46 -46
  92. package/esm2022/lib/select/select.module.mjs +5 -5
  93. package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +4 -4
  94. package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +5 -5
  95. package/esm2022/lib/slider/abstract-slider.mjs +4 -4
  96. package/esm2022/lib/slider/range-slider/range-slider.component.mjs +4 -4
  97. package/esm2022/lib/slider/range-slider/range-slider.module.mjs +5 -5
  98. package/esm2022/lib/slider/slider.component.mjs +4 -4
  99. package/esm2022/lib/slider/slider.directive.mjs +4 -4
  100. package/esm2022/lib/slider/slider.module.mjs +5 -5
  101. package/esm2022/lib/snackbar/snackbar.component.mjs +4 -4
  102. package/esm2022/lib/snackbar/snackbar.service.mjs +4 -4
  103. package/esm2022/lib/spinner/spinner.component.mjs +4 -4
  104. package/esm2022/lib/spinner/spinner.module.mjs +5 -5
  105. package/esm2022/lib/star/star-button/star-button.component.mjs +4 -4
  106. package/esm2022/lib/star/star-button/star-button.module.mjs +5 -5
  107. package/esm2022/lib/star/star-display/star-display.component.mjs +4 -4
  108. package/esm2022/lib/star/star-display/star-display.module.mjs +5 -5
  109. package/esm2022/lib/star/star-input/star-input.component.mjs +4 -4
  110. package/esm2022/lib/star/star-input/star-input.module.mjs +5 -5
  111. package/esm2022/lib/star/star.component.mjs +4 -4
  112. package/esm2022/lib/star/star.module.mjs +5 -5
  113. package/esm2022/lib/statebox/statebox.component.mjs +4 -4
  114. package/esm2022/lib/statebox/statebox.module.mjs +5 -5
  115. package/esm2022/lib/tabber/tab/tab.component.mjs +4 -4
  116. package/esm2022/lib/tabber/tabber.component.mjs +4 -4
  117. package/esm2022/lib/tabber/tabber.module.mjs +5 -5
  118. package/esm2022/lib/table/table.component.mjs +4 -4
  119. package/esm2022/lib/table/table.directives.mjs +16 -16
  120. package/esm2022/lib/table/table.module.mjs +5 -5
  121. package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +4 -4
  122. package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +5 -5
  123. package/esm2022/lib/table-pagination/table-pagination.component.mjs +4 -4
  124. package/esm2022/lib/table-pagination/table-pagination.module.mjs +5 -5
  125. package/esm2022/lib/text-list/text-list.component.mjs +4 -4
  126. package/esm2022/lib/text-list/text-list.module.mjs +5 -5
  127. package/esm2022/lib/text-list/text-list.pipe.mjs +4 -4
  128. package/fesm2022/ardium-ui-ui.mjs +573 -570
  129. package/fesm2022/ardium-ui-ui.mjs.map +1 -1
  130. package/lib/_internal/selectable-list-component.d.ts +1 -1
  131. package/package.json +2 -1
@@ -80,11 +80,11 @@ export class ArdiumTabberComponent {
80
80
  tab.focused.set(false);
81
81
  this.currentFocusedTab.set(null);
82
82
  }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTabberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
84
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: ArdiumTabberComponent, selector: "ard-tabber", inputs: { initialTab: { classPropertyName: "initialTab", publicName: "initialTab", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, stretchTabs: { classPropertyName: "stretchTabs", publicName: "stretchTabs", isSignal: true, isRequired: false, transformFunction: null }, uniformTabWidths: { classPropertyName: "uniformTabWidths", publicName: "uniformTabWidths", isSignal: true, isRequired: false, transformFunction: null }, tabAlignment: { classPropertyName: "tabAlignment", publicName: "tabAlignment", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusEvent: "focus", blurEvent: "blur", changeTab: "changeTab" }, queries: [{ propertyName: "tabs", predicate: ArdiumTabComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"ard-tabber\"\n [ngClass]=\"ngClasses()\"\n>\n <div\n class=\"ard-tabber-tabs\"\n [ngClass]=\"tabContainerClasses()\"\n [style]=\"{ '--ard-_tabber-tabs': tabs().length }\"\n >\n @for (tab of tabs(); track tab) {\n <button\n #focusableElement\n type=\"button\"\n role=\"tab\"\n class=\"ard-tab-button\"\n [id]=\"tab.tabId()\"\n [class.ard-tab-active]=\"tab === currentTab()\"\n [class.ard-tab-focused]=\"tab === currentFocusedTab()\"\n (click)=\"!tab.selected() && onTabClick(tab)\"\n (focus)=\"onTabFocus(tab)\"\n (blur)=\"onTabBlur(tab)\"\n [tabindex]=\"tabIndex()\"\n >\n <div class=\"ard-focus-overlay\"></div>\n {{ tab.label() }}\n </button>\n }\n </div>\n <div\n role=\"tabpanel\"\n class=\"ard-tabber-content\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".ard-tabber ard-tab{display:none}.ard-tabber ard-tab.ard-tab-selected{display:block}.ard-tabber .ard-tabber-tabs.ard-uniform-tab-widths{display:grid;grid-template-columns:repeat(var(--ard-_tabber-tabs),1fr);max-width:max-content}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
83
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTabberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
84
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumTabberComponent, selector: "ard-tabber", inputs: { initialTab: { classPropertyName: "initialTab", publicName: "initialTab", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, stretchTabs: { classPropertyName: "stretchTabs", publicName: "stretchTabs", isSignal: true, isRequired: false, transformFunction: null }, uniformTabWidths: { classPropertyName: "uniformTabWidths", publicName: "uniformTabWidths", isSignal: true, isRequired: false, transformFunction: null }, tabAlignment: { classPropertyName: "tabAlignment", publicName: "tabAlignment", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusEvent: "focus", blurEvent: "blur", changeTab: "changeTab" }, queries: [{ propertyName: "tabs", predicate: ArdiumTabComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"ard-tabber\"\n [ngClass]=\"ngClasses()\"\n>\n <div\n class=\"ard-tabber-tabs\"\n [ngClass]=\"tabContainerClasses()\"\n [style]=\"{ '--ard-_tabber-tabs': tabs().length }\"\n >\n @for (tab of tabs(); track tab) {\n <button\n #focusableElement\n type=\"button\"\n role=\"tab\"\n class=\"ard-tab-button\"\n [id]=\"tab.tabId()\"\n [class.ard-tab-active]=\"tab === currentTab()\"\n [class.ard-tab-focused]=\"tab === currentFocusedTab()\"\n (click)=\"!tab.selected() && onTabClick(tab)\"\n (focus)=\"onTabFocus(tab)\"\n (blur)=\"onTabBlur(tab)\"\n [tabindex]=\"tabIndex()\"\n >\n <div class=\"ard-focus-overlay\"></div>\n {{ tab.label() }}\n </button>\n }\n </div>\n <div\n role=\"tabpanel\"\n class=\"ard-tabber-content\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".ard-tabber ard-tab{display:none}.ard-tabber ard-tab.ard-tab-selected{display:block}.ard-tabber .ard-tabber-tabs.ard-uniform-tab-widths{display:grid;grid-template-columns:repeat(var(--ard-_tabber-tabs),1fr);max-width:max-content}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
85
85
  }
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTabberComponent, decorators: [{
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTabberComponent, decorators: [{
87
87
  type: Component,
88
88
  args: [{ selector: 'ard-tabber', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ard-tabber\"\n [ngClass]=\"ngClasses()\"\n>\n <div\n class=\"ard-tabber-tabs\"\n [ngClass]=\"tabContainerClasses()\"\n [style]=\"{ '--ard-_tabber-tabs': tabs().length }\"\n >\n @for (tab of tabs(); track tab) {\n <button\n #focusableElement\n type=\"button\"\n role=\"tab\"\n class=\"ard-tab-button\"\n [id]=\"tab.tabId()\"\n [class.ard-tab-active]=\"tab === currentTab()\"\n [class.ard-tab-focused]=\"tab === currentFocusedTab()\"\n (click)=\"!tab.selected() && onTabClick(tab)\"\n (focus)=\"onTabFocus(tab)\"\n (blur)=\"onTabBlur(tab)\"\n [tabindex]=\"tabIndex()\"\n >\n <div class=\"ard-focus-overlay\"></div>\n {{ tab.label() }}\n </button>\n }\n </div>\n <div\n role=\"tabpanel\"\n class=\"ard-tabber-content\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".ard-tabber ard-tab{display:none}.ard-tabber ard-tab.ard-tab-selected{display:block}.ard-tabber .ard-tabber-tabs.ard-uniform-tab-widths{display:grid;grid-template-columns:repeat(var(--ard-_tabber-tabs),1fr);max-width:max-content}\n"] }]
89
89
  }] });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvdGFiYmVyL3RhYmJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3RhYmJlci90YWJiZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixlQUFlLEVBQ2YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFTeEQsTUFBTSxPQUFPLHFCQUFxQjtJQVBsQztRQVFxQixjQUFTLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFM0MsU0FBSSxHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLGVBQVUsR0FBRyxNQUFNLENBQTRCLElBQUksQ0FBQyxDQUFDO1FBQ3JELHNCQUFpQixHQUFHLE1BQU0sQ0FBNEIsSUFBSSxDQUFDLENBQUM7UUFFNUQsZUFBVSxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7UUE4RGxELGVBQVUsR0FBRyxNQUFNLENBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRCxjQUFTLEdBQUcsTUFBTSxDQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDOUMsY0FBUyxHQUFHLE1BQU0sRUFBVSxDQUFDO1FBRXRDLGNBQWM7UUFDTCxVQUFLLEdBQUcsS0FBSyxDQUFpQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBELGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxhQUFhLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFN0UsMEJBQTBCO1FBQ2pCLGdCQUFXLEdBQUcsS0FBSyxDQUFlLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVHLHFCQUFnQixHQUFHLEtBQUssQ0FBZSxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RILGlCQUFZLEdBQUcsS0FBSyxDQUFtQixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXBFLHdCQUFtQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDM0M7WUFDRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDOUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRTtTQUNqRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDWixDQUFDO1FBRUYsU0FBUztRQUNBLGFBQVEsR0FBRyxLQUFLLENBQWtCLENBQUMsQ0FBQyxDQUFDO0tBQy9DO0lBcEZDLGtCQUFrQjtRQUNoQixJQUFJLFdBQVcsR0FBOEIsSUFBSSxDQUFDO1FBQ2xELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDOUIsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFDbkIsa0NBQWtDO2dCQUNsQyxJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUNoQixHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUIsQ0FBQztnQkFFRCxXQUFXLEdBQUcsR0FBRyxDQUFDO1lBQ3BCLENBQUM7WUFFRCxHQUFHLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsR0FBRyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztZQUNILEdBQUcsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsVUFBVTtvQkFBRSxPQUFPO2dCQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ3hGLFdBQVcsR0FBRyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1lBRTdELElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUF1QjtRQUNoQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0IsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6QixHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsVUFBVSxDQUFDLEdBQXVCO1FBQ2hDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsU0FBUyxDQUFDLEdBQXVCO1FBQy9CLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQXBFVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixnOUJBR08sa0JBQWtCLGdFQzVCM0QseTVCQW1DQTs7MkZEVmEscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLFlBQVksaUJBR1AsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkcmVuLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XG5pbXBvcnQgeyBPbmVBeGlzQWxpZ25tZW50IH0gZnJvbSAnLi4vdHlwZXMvYWxpZ25tZW50LnR5cGVzJztcbmltcG9ydCB7IENvbXBvbmVudENvbG9yIH0gZnJvbSAnLi4vdHlwZXMvY29sb3JzLnR5cGVzJztcbmltcG9ydCB7IEFyZGl1bVRhYkNvbXBvbmVudCB9IGZyb20gJy4vdGFiL3RhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVJEX1RBQkJFUl9ERUZBVUxUUyB9IGZyb20gJy4vdGFiYmVyLmRlZmF1bHRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJkLXRhYmJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJiZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGFiYmVyLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bVRhYmJlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX0RFRkFVTFRTID0gaW5qZWN0KEFSRF9UQUJCRVJfREVGQVVMVFMpO1xuXG4gIHB1YmxpYyByZWFkb25seSB0YWJzID0gY29udGVudENoaWxkcmVuKEFyZGl1bVRhYkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcblxuICByZWFkb25seSBjdXJyZW50VGFiID0gc2lnbmFsPEFyZGl1bVRhYkNvbXBvbmVudCB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBjdXJyZW50Rm9jdXNlZFRhYiA9IHNpZ25hbDxBcmRpdW1UYWJDb21wb25lbnQgfCBudWxsPihudWxsKTtcblxuICByZWFkb25seSBpbml0aWFsVGFiID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgc2VsZWN0ZWRDbXA6IEFyZGl1bVRhYkNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuICAgIGZvciAoY29uc3QgY21wIG9mIHRoaXMudGFicygpKSB7XG4gICAgICBpZiAoY21wLnNlbGVjdGVkKCkpIHtcbiAgICAgICAgLy8gZW5zdXJlIG9ubHkgb25lIHRhYiBpcyBzZWxlY3RlZFxuICAgICAgICBpZiAoc2VsZWN0ZWRDbXApIHtcbiAgICAgICAgICBjbXAuc2VsZWN0ZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkQ21wID0gY21wO1xuICAgICAgfVxuXG4gICAgICBjbXAuZm9jdXNFdmVudC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzRXZlbnQuZW1pdChjbXAudGFiSWQoKSk7XG4gICAgICB9KTtcbiAgICAgIGNtcC5ibHVyRXZlbnQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5ibHVyRXZlbnQuZW1pdChjbXAudGFiSWQoKSk7XG4gICAgICB9KTtcbiAgICAgIGNtcC5zZWxlY3RlZENoYW5nZS5zdWJzY3JpYmUoaXNTZWxlY3RlZCA9PiB7XG4gICAgICAgIGlmICghaXNTZWxlY3RlZCkgcmV0dXJuO1xuICAgICAgICB0aGlzLmNoYW5nZVRhYi5lbWl0KGNtcC50YWJJZCgpKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghc2VsZWN0ZWRDbXApIHtcbiAgICAgIGNvbnN0IGluaXRpYWxseVNlbGVjdGVkVGFiID0gdGhpcy50YWJzKCkuZmluZCh0YWIgPT4gdGFiLnRhYklkKCkgPT09IHRoaXMuaW5pdGlhbFRhYigpKTtcbiAgICAgIHNlbGVjdGVkQ21wID0gaW5pdGlhbGx5U2VsZWN0ZWRUYWIgPz8gdGhpcy50YWJzKClbMF0gPz8gbnVsbDtcblxuICAgICAgaWYgKHNlbGVjdGVkQ21wKSB7XG4gICAgICAgIHNlbGVjdGVkQ21wLnNlbGVjdGVkLnNldCh0cnVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnRUYWIuc2V0KHNlbGVjdGVkQ21wKTtcbiAgfVxuXG4gIG9uVGFiQ2xpY2sodGFiOiBBcmRpdW1UYWJDb21wb25lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyID0gdGhpcy5jdXJyZW50VGFiKCk7XG4gICAgaWYgKGN1cnIpIHtcbiAgICAgIGN1cnIuc2VsZWN0ZWQuc2V0KGZhbHNlKTtcbiAgICAgIGN1cnIuc2VsZWN0ZWRDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgfVxuICAgIHRoaXMuY3VycmVudFRhYi5zZXQodGFiKTtcblxuICAgIHRhYi5zZWxlY3RlZC5zZXQodHJ1ZSk7XG4gICAgdGFiLnNlbGVjdGVkQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cbiAgb25UYWJGb2N1cyh0YWI6IEFyZGl1bVRhYkNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRhYi5mb2N1c0V2ZW50LmVtaXQoKTtcbiAgICB0YWIuZm9jdXNlZC5zZXQodHJ1ZSk7XG5cbiAgICB0aGlzLmN1cnJlbnRGb2N1c2VkVGFiLnNldCh0YWIpO1xuICB9XG4gIG9uVGFiQmx1cih0YWI6IEFyZGl1bVRhYkNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRhYi5ibHVyRXZlbnQuZW1pdCgpO1xuICAgIHRhYi5mb2N1c2VkLnNldChmYWxzZSk7XG5cbiAgICB0aGlzLmN1cnJlbnRGb2N1c2VkVGFiLnNldChudWxsKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGZvY3VzRXZlbnQgPSBvdXRwdXQ8c3RyaW5nPih7IGFsaWFzOiAnZm9jdXMnIH0pO1xuICByZWFkb25seSBibHVyRXZlbnQgPSBvdXRwdXQ8c3RyaW5nPih7IGFsaWFzOiAnYmx1cicgfSk7XG4gIHJlYWRvbmx5IGNoYW5nZVRhYiA9IG91dHB1dDxzdHJpbmc+KCk7XG5cbiAgLy8hIGFwcGVhcmFuY2VcbiAgcmVhZG9ubHkgY29sb3IgPSBpbnB1dDxDb21wb25lbnRDb2xvcj4odGhpcy5fREVGQVVMVFMuY29sb3IpO1xuXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkKCgpID0+IFtgYXJkLWNvbG9yLSR7dGhpcy5jb2xvcigpfWBdLmpvaW4oJyAnKSk7XG5cbiAgLy8hIHRhYiBjb250YWluZXIgc2V0dGluZ3NcbiAgcmVhZG9ubHkgc3RyZXRjaFRhYnMgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnN0cmV0Y2hUYWJzLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG4gIHJlYWRvbmx5IHVuaWZvcm1UYWJXaWR0aHMgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnVuaWZvcm1UYWJXaWR0aHMsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcbiAgcmVhZG9ubHkgdGFiQWxpZ25tZW50ID0gaW5wdXQ8T25lQXhpc0FsaWdubWVudD4odGhpcy5fREVGQVVMVFMudGFiQWxpZ25tZW50KTtcblxuICByZWFkb25seSB0YWJDb250YWluZXJDbGFzc2VzID0gY29tcHV0ZWQoKCkgPT5cbiAgICBbXG4gICAgICB0aGlzLnVuaWZvcm1UYWJXaWR0aHMoKSAmJiAhdGhpcy5zdHJldGNoVGFicygpID8gJ2FyZC11bmlmb3JtLXRhYi13aWR0aHMnIDogJycsXG4gICAgICB0aGlzLnN0cmV0Y2hUYWJzKCkgPyAnYXJkLXN0cmV0Y2gtdGFicycgOiAnJyxcbiAgICAgIHRoaXMuc3RyZXRjaFRhYnMoKSA/ICcnIDogYGFyZC10YWItYWxpZ24tJHt0aGlzLnRhYkFsaWdubWVudCgpfWAsXG4gICAgXS5qb2luKCcgJylcbiAgKTtcblxuICAvLyEgb3RoZXJcbiAgcmVhZG9ubHkgdGFiSW5kZXggPSBpbnB1dDxudW1iZXIgfCBzdHJpbmc+KDApO1xufVxuIiwiPGRpdlxuICBjbGFzcz1cImFyZC10YWJiZXJcIlxuICBbbmdDbGFzc109XCJuZ0NsYXNzZXMoKVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFyZC10YWJiZXItdGFic1wiXG4gICAgW25nQ2xhc3NdPVwidGFiQ29udGFpbmVyQ2xhc3NlcygpXCJcbiAgICBbc3R5bGVdPVwieyAnLS1hcmQtX3RhYmJlci10YWJzJzogdGFicygpLmxlbmd0aCB9XCJcbiAgPlxuICAgIEBmb3IgKHRhYiBvZiB0YWJzKCk7IHRyYWNrIHRhYikge1xuICAgICAgPGJ1dHRvblxuICAgICAgICAjZm9jdXNhYmxlRWxlbWVudFxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgIGNsYXNzPVwiYXJkLXRhYi1idXR0b25cIlxuICAgICAgICBbaWRdPVwidGFiLnRhYklkKClcIlxuICAgICAgICBbY2xhc3MuYXJkLXRhYi1hY3RpdmVdPVwidGFiID09PSBjdXJyZW50VGFiKClcIlxuICAgICAgICBbY2xhc3MuYXJkLXRhYi1mb2N1c2VkXT1cInRhYiA9PT0gY3VycmVudEZvY3VzZWRUYWIoKVwiXG4gICAgICAgIChjbGljayk9XCIhdGFiLnNlbGVjdGVkKCkgJiYgb25UYWJDbGljayh0YWIpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uVGFiRm9jdXModGFiKVwiXG4gICAgICAgIChibHVyKT1cIm9uVGFiQmx1cih0YWIpXCJcbiAgICAgICAgW3RhYmluZGV4XT1cInRhYkluZGV4KClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvY3VzLW92ZXJsYXlcIj48L2Rpdj5cbiAgICAgICAge3sgdGFiLmxhYmVsKCkgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICByb2xlPVwidGFicGFuZWxcIlxuICAgIGNsYXNzPVwiYXJkLXRhYmJlci1jb250ZW50XCJcbiAgPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvdGFiYmVyL3RhYmJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3RhYmJlci90YWJiZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixlQUFlLEVBQ2YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFTeEQsTUFBTSxPQUFPLHFCQUFxQjtJQVBsQztRQVFxQixjQUFTLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFM0MsU0FBSSxHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLGVBQVUsR0FBRyxNQUFNLENBQTRCLElBQUksQ0FBQyxDQUFDO1FBQ3JELHNCQUFpQixHQUFHLE1BQU0sQ0FBNEIsSUFBSSxDQUFDLENBQUM7UUFFNUQsZUFBVSxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7UUE4RGxELGVBQVUsR0FBRyxNQUFNLENBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRCxjQUFTLEdBQUcsTUFBTSxDQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDOUMsY0FBUyxHQUFHLE1B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Q0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQXBFVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixnOUJBR08sa0JBQWtCLGdFQzVCM0QseTVCQW1DQTs7NEZEVmEscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLFlBQVksaUJBR1AsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkcmVuLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XG5pbXBvcnQgeyBPbmVBeGlzQWxpZ25tZW50IH0gZnJvbSAnLi4vdHlwZXMvYWxpZ25tZW50LnR5cGVzJztcbmltcG9ydCB7IENvbXBvbmVudENvbG9yIH0gZnJvbSAnLi4vdHlwZXMvY29sb3JzLnR5cGVzJztcbmltcG9ydCB7IEFyZGl1bVRhYkNvbXBvbmVudCB9IGZyb20gJy4vdGFiL3RhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVJEX1RBQkJFUl9ERUZBVUxUUyB9IGZyb20gJy4vdGFiYmVyLmRlZmF1bHRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJkLXRhYmJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJiZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGFiYmVyLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bVRhYmJlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX0RFRkFVTFRTID0gaW5qZWN0KEFSRF9UQUJCRVJfREVGQVVMVFMpO1xuXG4gIHB1YmxpYyByZWFkb25seSB0YWJzID0gY29udGVudENoaWxkcmVuKEFyZGl1bVRhYkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcblxuICByZWFkb25seSBjdXJyZW50VGFiID0gc2lnbmFsPEFyZGl1bVRhYkNvbXBvbmVudCB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBjdXJyZW50Rm9jdXNlZFRhYiA9IHNpZ25hbDxBcmRpdW1UYWJDb21wb25lbnQgfCBudWxsPihudWxsKTtcblxuICByZWFkb25seSBpbml0aWFsVGFiID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgc2VsZWN0ZWRDbXA6IEFyZGl1bVRhYkNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuICAgIGZvciAoY29uc3QgY21wIG9mIHRoaXMudGFicygpKSB7XG4gICAgICBpZiAoY21wLnNlbGVjdGVkKCkpIHtcbiAgICAgICAgLy8gZW5zdXJlIG9ubHkgb25lIHRhYiBpcyBzZWxlY3RlZFxuICAgICAgICBpZiAoc2VsZWN0ZWRDbXApIHtcbiAgICAgICAgICBjbXAuc2VsZWN0ZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkQ21wID0gY21wO1xuICAgICAgfVxuXG4gICAgICBjbXAuZm9jdXNFdmVudC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzRXZlbnQuZW1pdChjbXAudGFiSWQoKSk7XG4gICAgICB9KTtcbiAgICAgIGNtcC5ibHVyRXZlbnQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5ibHVyRXZlbnQuZW1pdChjbXAudGFiSWQoKSk7XG4gICAgICB9KTtcbiAgICAgIGNtcC5zZWxlY3RlZENoYW5nZS5zdWJzY3JpYmUoaXNTZWxlY3RlZCA9PiB7XG4gICAgICAgIGlmICghaXNTZWxlY3RlZCkgcmV0dXJuO1xuICAgICAgICB0aGlzLmNoYW5nZVRhYi5lbWl0KGNtcC50YWJJZCgpKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghc2VsZWN0ZWRDbXApIHtcbiAgICAgIGNvbnN0IGluaXRpYWxseVNlbGVjdGVkVGFiID0gdGhpcy50YWJzKCkuZmluZCh0YWIgPT4gdGFiLnRhYklkKCkgPT09IHRoaXMuaW5pdGlhbFRhYigpKTtcbiAgICAgIHNlbGVjdGVkQ21wID0gaW5pdGlhbGx5U2VsZWN0ZWRUYWIgPz8gdGhpcy50YWJzKClbMF0gPz8gbnVsbDtcblxuICAgICAgaWYgKHNlbGVjdGVkQ21wKSB7XG4gICAgICAgIHNlbGVjdGVkQ21wLnNlbGVjdGVkLnNldCh0cnVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnRUYWIuc2V0KHNlbGVjdGVkQ21wKTtcbiAgfVxuXG4gIG9uVGFiQ2xpY2sodGFiOiBBcmRpdW1UYWJDb21wb25lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyID0gdGhpcy5jdXJyZW50VGFiKCk7XG4gICAgaWYgKGN1cnIpIHtcbiAgICAgIGN1cnIuc2VsZWN0ZWQuc2V0KGZhbHNlKTtcbiAgICAgIGN1cnIuc2VsZWN0ZWRDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgfVxuICAgIHRoaXMuY3VycmVudFRhYi5zZXQodGFiKTtcblxuICAgIHRhYi5zZWxlY3RlZC5zZXQodHJ1ZSk7XG4gICAgdGFiLnNlbGVjdGVkQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cbiAgb25UYWJGb2N1cyh0YWI6IEFyZGl1bVRhYkNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRhYi5mb2N1c0V2ZW50LmVtaXQoKTtcbiAgICB0YWIuZm9jdXNlZC5zZXQodHJ1ZSk7XG5cbiAgICB0aGlzLmN1cnJlbnRGb2N1c2VkVGFiLnNldCh0YWIpO1xuICB9XG4gIG9uVGFiQmx1cih0YWI6IEFyZGl1bVRhYkNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRhYi5ibHVyRXZlbnQuZW1pdCgpO1xuICAgIHRhYi5mb2N1c2VkLnNldChmYWxzZSk7XG5cbiAgICB0aGlzLmN1cnJlbnRGb2N1c2VkVGFiLnNldChudWxsKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGZvY3VzRXZlbnQgPSBvdXRwdXQ8c3RyaW5nPih7IGFsaWFzOiAnZm9jdXMnIH0pO1xuICByZWFkb25seSBibHVyRXZlbnQgPSBvdXRwdXQ8c3RyaW5nPih7IGFsaWFzOiAnYmx1cicgfSk7XG4gIHJlYWRvbmx5IGNoYW5nZVRhYiA9IG91dHB1dDxzdHJpbmc+KCk7XG5cbiAgLy8hIGFwcGVhcmFuY2VcbiAgcmVhZG9ubHkgY29sb3IgPSBpbnB1dDxDb21wb25lbnRDb2xvcj4odGhpcy5fREVGQVVMVFMuY29sb3IpO1xuXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkKCgpID0+IFtgYXJkLWNvbG9yLSR7dGhpcy5jb2xvcigpfWBdLmpvaW4oJyAnKSk7XG5cbiAgLy8hIHRhYiBjb250YWluZXIgc2V0dGluZ3NcbiAgcmVhZG9ubHkgc3RyZXRjaFRhYnMgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnN0cmV0Y2hUYWJzLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG4gIHJlYWRvbmx5IHVuaWZvcm1UYWJXaWR0aHMgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnVuaWZvcm1UYWJXaWR0aHMsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcbiAgcmVhZG9ubHkgdGFiQWxpZ25tZW50ID0gaW5wdXQ8T25lQXhpc0FsaWdubWVudD4odGhpcy5fREVGQVVMVFMudGFiQWxpZ25tZW50KTtcblxuICByZWFkb25seSB0YWJDb250YWluZXJDbGFzc2VzID0gY29tcHV0ZWQoKCkgPT5cbiAgICBbXG4gICAgICB0aGlzLnVuaWZvcm1UYWJXaWR0aHMoKSAmJiAhdGhpcy5zdHJldGNoVGFicygpID8gJ2FyZC11bmlmb3JtLXRhYi13aWR0aHMnIDogJycsXG4gICAgICB0aGlzLnN0cmV0Y2hUYWJzKCkgPyAnYXJkLXN0cmV0Y2gtdGFicycgOiAnJyxcbiAgICAgIHRoaXMuc3RyZXRjaFRhYnMoKSA/ICcnIDogYGFyZC10YWItYWxpZ24tJHt0aGlzLnRhYkFsaWdubWVudCgpfWAsXG4gICAgXS5qb2luKCcgJylcbiAgKTtcblxuICAvLyEgb3RoZXJcbiAgcmVhZG9ubHkgdGFiSW5kZXggPSBpbnB1dDxudW1iZXIgfCBzdHJpbmc+KDApO1xufVxuIiwiPGRpdlxuICBjbGFzcz1cImFyZC10YWJiZXJcIlxuICBbbmdDbGFzc109XCJuZ0NsYXNzZXMoKVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFyZC10YWJiZXItdGFic1wiXG4gICAgW25nQ2xhc3NdPVwidGFiQ29udGFpbmVyQ2xhc3NlcygpXCJcbiAgICBbc3R5bGVdPVwieyAnLS1hcmQtX3RhYmJlci10YWJzJzogdGFicygpLmxlbmd0aCB9XCJcbiAgPlxuICAgIEBmb3IgKHRhYiBvZiB0YWJzKCk7IHRyYWNrIHRhYikge1xuICAgICAgPGJ1dHRvblxuICAgICAgICAjZm9jdXNhYmxlRWxlbWVudFxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgIGNsYXNzPVwiYXJkLXRhYi1idXR0b25cIlxuICAgICAgICBbaWRdPVwidGFiLnRhYklkKClcIlxuICAgICAgICBbY2xhc3MuYXJkLXRhYi1hY3RpdmVdPVwidGFiID09PSBjdXJyZW50VGFiKClcIlxuICAgICAgICBbY2xhc3MuYXJkLXRhYi1mb2N1c2VkXT1cInRhYiA9PT0gY3VycmVudEZvY3VzZWRUYWIoKVwiXG4gICAgICAgIChjbGljayk9XCIhdGFiLnNlbGVjdGVkKCkgJiYgb25UYWJDbGljayh0YWIpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uVGFiRm9jdXModGFiKVwiXG4gICAgICAgIChibHVyKT1cIm9uVGFiQmx1cih0YWIpXCJcbiAgICAgICAgW3RhYmluZGV4XT1cInRhYkluZGV4KClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvY3VzLW92ZXJsYXlcIj48L2Rpdj5cbiAgICAgICAge3sgdGFiLmxhYmVsKCkgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICByb2xlPVwidGFicGFuZWxcIlxuICAgIGNsYXNzPVwiYXJkLXRhYmJlci1jb250ZW50XCJcbiAgPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -4,11 +4,11 @@ import { ArdiumTabberComponent } from './tabber.component';
4
4
  import { ArdiumTabComponent } from './tab/tab.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export class ArdiumTabberModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTabberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTabberModule, declarations: [ArdiumTabberComponent, ArdiumTabComponent], imports: [CommonModule], exports: [ArdiumTabberComponent, ArdiumTabComponent] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTabberModule, imports: [CommonModule] }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTabberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTabberModule, declarations: [ArdiumTabberComponent, ArdiumTabComponent], imports: [CommonModule], exports: [ArdiumTabberComponent, ArdiumTabComponent] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTabberModule, imports: [CommonModule] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTabberModule, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTabberModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  declarations: [ArdiumTabberComponent, ArdiumTabComponent],
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
16
16
  exports: [ArdiumTabberComponent, ArdiumTabComponent],
17
17
  }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiYmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvdGFiYmVyL3RhYmJlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBT3pELE1BQU0sT0FBTyxrQkFBa0I7OEdBQWxCLGtCQUFrQjsrR0FBbEIsa0JBQWtCLGlCQUpkLHFCQUFxQixFQUFFLGtCQUFrQixhQUM5QyxZQUFZLGFBQ1oscUJBQXFCLEVBQUUsa0JBQWtCOytHQUV4QyxrQkFBa0IsWUFIbkIsWUFBWTs7MkZBR1gsa0JBQWtCO2tCQUw5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDO29CQUN6RCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDO2lCQUNyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQXJkaXVtVGFiYmVyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJiZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFyZGl1bVRhYkNvbXBvbmVudCB9IGZyb20gJy4vdGFiL3RhYi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtBcmRpdW1UYWJiZXJDb21wb25lbnQsIEFyZGl1bVRhYkNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbQXJkaXVtVGFiYmVyQ29tcG9uZW50LCBBcmRpdW1UYWJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1UYWJiZXJNb2R1bGUge31cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiYmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvdGFiYmVyL3RhYmJlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBT3pELE1BQU0sT0FBTyxrQkFBa0I7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQUpkLHFCQUFxQixFQUFFLGtCQUFrQixhQUM5QyxZQUFZLGFBQ1oscUJBQXFCLEVBQUUsa0JBQWtCO2dIQUV4QyxrQkFBa0IsWUFIbkIsWUFBWTs7NEZBR1gsa0JBQWtCO2tCQUw5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDO29CQUN6RCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDO2lCQUNyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQXJkaXVtVGFiYmVyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJiZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFyZGl1bVRhYkNvbXBvbmVudCB9IGZyb20gJy4vdGFiL3RhYi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtBcmRpdW1UYWJiZXJDb21wb25lbnQsIEFyZGl1bVRhYkNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbQXJkaXVtVGFiYmVyQ29tcG9uZW50LCBBcmRpdW1UYWJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1UYWJiZXJNb2R1bGUge31cbiJdfQ==
@@ -350,10 +350,10 @@ export class ArdiumTableComponent extends _FocusableComponentBase {
350
350
  },
351
351
  };
352
352
  }
353
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTableComponent, deps: [{ token: ARD_TABLE_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
354
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: ArdiumTableComponent, selector: "ard-table", inputs: { rowDisabledFrom: { classPropertyName: "rowDisabledFrom", publicName: "rowDisabledFrom", isSignal: true, isRequired: false, transformFunction: null }, rowBoldFrom: { classPropertyName: "rowBoldFrom", publicName: "rowBoldFrom", isSignal: true, isRequired: false, transformFunction: null }, invertRowDisabled: { classPropertyName: "invertRowDisabled", publicName: "invertRowDisabled", isSignal: true, isRequired: false, transformFunction: null }, invertRowBold: { classPropertyName: "invertRowBold", publicName: "invertRowBold", isSignal: true, isRequired: false, transformFunction: null }, selectableRows: { classPropertyName: "selectableRows", publicName: "selectableRows", isSignal: true, isRequired: false, transformFunction: null }, maxSelectedItems: { classPropertyName: "maxSelectedItems", publicName: "maxSelectedItems", isSignal: true, isRequired: false, transformFunction: null }, clickableRows: { classPropertyName: "clickableRows", publicName: "clickableRows", isSignal: true, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, loadingProgress: { classPropertyName: "loadingProgress", publicName: "loadingProgress", isSignal: true, isRequired: false, transformFunction: null }, loadingProgressBuffer: { classPropertyName: "loadingProgressBuffer", publicName: "loadingProgressBuffer", isSignal: true, isRequired: false, transformFunction: null }, loadingBarMode: { classPropertyName: "loadingBarMode", publicName: "loadingBarMode", isSignal: true, isRequired: false, transformFunction: null }, loadingBarColor: { classPropertyName: "loadingBarColor", publicName: "loadingBarColor", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, headerAlign: { classPropertyName: "headerAlign", publicName: "headerAlign", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, zebra: { classPropertyName: "zebra", publicName: "zebra", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null }, paginated: { classPropertyName: "paginated", publicName: "paginated", isSignal: true, isRequired: false, transformFunction: null }, paginationStrategy: { classPropertyName: "paginationStrategy", publicName: "paginationStrategy", isSignal: true, isRequired: false, transformFunction: null }, paginationOptions: { classPropertyName: "paginationOptions", publicName: "paginationOptions", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: false, transformFunction: null }, paginationColor: { classPropertyName: "paginationColor", publicName: "paginationColor", isSignal: true, isRequired: false, transformFunction: null }, paginationAlign: { classPropertyName: "paginationAlign", publicName: "paginationAlign", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPageText: { classPropertyName: "itemsPerPageText", publicName: "itemsPerPageText", isSignal: true, isRequired: false, transformFunction: null }, currentItemsFormatFn: { classPropertyName: "currentItemsFormatFn", publicName: "currentItemsFormatFn", isSignal: true, isRequired: false, transformFunction: null }, pageFillRemaining: { classPropertyName: "pageFillRemaining", publicName: "pageFillRemaining", isSignal: true, isRequired: false, transformFunction: null }, paginationDisabled: { classPropertyName: "paginationDisabled", publicName: "paginationDisabled", isSignal: true, isRequired: false, transformFunction: null }, useFirstLastButtons: { classPropertyName: "useFirstLastButtons", publicName: "useFirstLastButtons", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPage: { classPropertyName: "itemsPerPage", publicName: "itemsPerPage", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, treatDataSourceAsString: { classPropertyName: "treatDataSourceAsString", publicName: "treatDataSourceAsString", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemsPerPage: "itemsPerPageChange", page: "pageChange", selectedRowsChangeEvent: "selectedRowsChange", failedSelectRowEvent: "failedSelectRow", selectRowEvent: "selectRow", unselectRowEvent: "unselectRow", clickRowEvent: "clickRow" }, queries: [{ propertyName: "checkboxTemplate", first: true, predicate: ArdiumTableCheckboxTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerCheckboxTemplate", first: true, predicate: ArdiumTableHeaderCheckboxTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "captionTemplate", first: true, predicate: ArdiumTableCaptionTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "templateChildren", predicate: ArdiumTableTemplateDirective, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\n class=\"ard-table\"\n [ngClass]=\"ngClasses()\"\n>\n @if (caption()) {\n <caption class=\"ard-table__caption\">\n <div class=\"ard-table__caption-container\">\n <ng-template\n #defaultCaptionTemplate\n let-captionText\n >\n {{ captionText }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"captionTemplate() ?? defaultCaptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: caption() }\"\n />\n </div>\n </caption>\n }\n <thead class=\"ard-table__header\">\n @for (row of headerCells(); track $index) {\n <tr class=\"ard-table__header-row\">\n @for (cell of row; track $index) {\n <th\n class=\"ard-table__header-cell\"\n [ngClass]=\"cell.cell().cellClass\"\n [class.ard-table__checkbox-cell]=\"isHeaderCellCheckbox(cell)\"\n [attr.colspan]=\"cell.colspan()\"\n [attr.rowspan]=\"cell.rowspan()\"\n [scope]=\"cell.colspan() > 1 ? 'colgroup' : 'col'\"\n >\n <div\n class=\"ard-table__cell-container\"\n [class.ard-table__sortable]=\"isHeaderCellSortable(cell)\"\n [style.width]=\"cell.width\"\n [style.minWidth]=\"cell.minWidth\"\n >\n @if (isHeaderCellCheckbox(cell)) {\n <ng-template\n #defaultHeaderCheckboxTemplate\n let-state\n let-onChange=\"onChange\"\n >\n <ard-checkbox\n [tabIndex]=\"isLoading() ? -1 : tabIndex()\"\n [state]=\"state\"\n [color]=\"getHeaderCheckboxColor()\"\n unselectedColor=\"currentColor\"\n (change)=\"onChange()\"\n />\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"headerCheckboxTemplate() ?? defaultHeaderCheckboxTemplate\"\n [ngTemplateOutletContext]=\"getHeaderCheckboxContext()\"\n />\n } @else {\n <ng-template\n #defaultHeaderCellTemplate\n let-content\n let-sortable=\"sortable\"\n let-sortType=\"sortType\"\n let-onTriggerSort=\"onTriggerSort\"\n let-onTriggerResetSort=\"onTriggerResetSort\"\n >\n <div\n class=\"ard-table__header-template-container\"\n [class.ard-sortable]=\"sortable\"\n [class.ard-nonsortable]=\"!sortable\"\n >\n @if (sortable) {\n <button\n type=\"button\"\n class=\"ard-table__header-content-container\"\n (click)=\"onTriggerSort($event)\"\n [tabindex]=\"tabIndex()\"\n (keydown.Esc)=\"onTriggerResetSort($event)\"\n >\n <div class=\"ard-table__header-content\">{{ content }}</div>\n @if (sortType !== null) {\n <div class=\"ard-table__header-sort-icon\">\n @if (sortType === 'ascending') {\n <ard-icon>south</ard-icon>\n } @else if (sortType === 'descending') {\n <ard-icon>north</ard-icon>\n }\n </div>\n }\n </button>\n } @else {\n <div class=\"ard-table__header-content-container\">\n <div class=\"ard-table__header-content\">{{ content }}</div>\n </div>\n }\n </div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"getHeaderTemplate(cell.cell().header) ?? defaultHeaderCellTemplate\"\n [ngTemplateOutletContext]=\"getHeaderContext(cell.cell(), $index)\"\n />\n }\n </div>\n </th>\n }\n </tr>\n }\n <tr class=\"ard-table__progress-bar-row\">\n <th\n class=\"ard-table__progress-bar-cell\"\n colspan=\"9999\"\n >\n @if (isLoading()) {\n <ard-progress-bar\n [value]=\"loadingProgress()\"\n [bufferValue]=\"loadingProgressBuffer()\"\n [mode]=\"loadingBarMode()\"\n [color]=\"loadingBarColor()\"\n variant=\"sharp\"\n hideValue\n />\n }\n </th>\n </tr>\n </thead>\n <tbody class=\"ard-table__body\">\n @for (row of dataRows(); track $index) {\n @if (row.isEmpty()) {\n <tr class=\"ard-table__empty-row\">\n <td\n class=\"ard-table__empty-cell\"\n colspan=\"9999\"\n ></td>\n </tr>\n } @else {\n <tr\n class=\"ard-table__body-row\"\n [class.ard-table__selected-row]=\"row.selected()\"\n [class.ard-table__highlighted-row]=\"row.highlighted()\"\n [class.ard-table__disabled-row]=\"row.disabled()\"\n [class.ard-table__bold-row]=\"row.bold()\"\n (click)=\"onRowClick(row, $event)\"\n (mouseover)=\"onRowMouseOver($event)\"\n (mouseenter)=\"onRowMouseEnter(row.index(), $event)\"\n (mouseleave)=\"onRowMouseLeave(row.index(), $event)\"\n >\n @for (cell of row.data(); track $index) {\n <ng-template #cellTmp>\n <div\n class=\"ard-table__cell-container\"\n [style]=\"getCellStyle(row.dataColumns()[$index])\"\n >\n @if (isCellCheckbox(cell)) {\n <ng-template\n #defaultCheckboxTemplate\n let-isChecked\n let-onChange=\"onChange\"\n let-disabled=\"disabled\"\n >\n <ard-checkbox\n [tabIndex]=\"isLoading() ? -1 : tabIndex()\"\n [selected]=\"isChecked\"\n [color]=\"color()\"\n [disabled]=\"disabled\"\n (change)=\"onChange()\"\n (click)=\"$event.stopPropagation()\"\n />\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"checkboxTemplate() ?? defaultCheckboxTemplate\"\n [ngTemplateOutletContext]=\"getCheckboxContext(row.index())\"\n />\n } @else {\n <ng-template\n #defaultCellTemplate\n let-content\n >\n {{ content }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"getCellTemplate(row.dataColumns()[$index].template) ?? defaultCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: cell }\"\n />\n }\n </div>\n </ng-template>\n @if (!row.dataColumns()[$index].isRowHeader) {\n <td\n class=\"ard-table__body-cell\"\n [ngClass]=\"row.dataColumns()[$index].cellClass\"\n [class.ard-table__checkbox-cell]=\"isCellCheckbox(cell)\"\n >\n <ng-template [ngTemplateOutlet]=\"cellTmp\"></ng-template>\n </td>\n } @else {\n <th\n class=\"ard-table__body-cell ard-table__row-header\"\n scope=\"row\"\n [ngClass]=\"row.dataColumns()[$index].cellClass\"\n [class.ard-table__checkbox-cell]=\"isCellCheckbox(cell)\"\n >\n <ng-template [ngTemplateOutlet]=\"cellTmp\"></ng-template>\n </th>\n }\n }\n </tr>\n }\n }\n </tbody>\n @if (canDisplayPagination()) {\n <tfoot class=\"ard-table__foot\">\n <tr class=\"ard-table__foot-row\">\n <td\n class=\"ard-table__pagination-cell\"\n colspan=\"9999\"\n >\n <ard-table-pagination\n [options]=\"paginationOptions()\"\n [totalItems]=\"totalItems()!\"\n [disabled]=\"paginationDisabled()\"\n [(itemsPerPage)]=\"itemsPerPage\"\n [(page)]=\"page\"\n [align]=\"paginationAlign()\"\n [isLoading]=\"isLoading()\"\n [itemsPerPageText]=\"itemsPerPageText()\"\n [currentItemsFormatFn]=\"currentItemsFormatFn()\"\n />\n </td>\n </tr>\n </tfoot>\n }\n</table>\n", styles: [".ard-table__cell-container,.ard-table__header-template-container{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ArdiumCheckboxComponent, selector: "ard-checkbox", inputs: ["htmlId", "color", "unselectedColor", "state"], outputs: ["stateChange"] }, { kind: "component", type: i3.ArdiumTablePaginationComponent, selector: "ard-table-pagination", inputs: ["totalItems", "options", "itemsPerPage", "page", "color", "align", "compact", "useFirstLastButtons", "isLoading", "itemsPerPageText", "currentItemsFormatFn"], outputs: ["itemsPerPageChange", "pageChange"] }, { kind: "component", type: i4.ArdiumIconComponent, selector: "ard-icon", inputs: ["ariaLabel", "icon", "filled", "weight", "grade", "opticalSize"] }, { kind: "component", type: i5.ArdiumProgressBarComponent, selector: "ard-progress-bar", inputs: ["value", "bufferValue", "color", "variant", "size", "mode", "hideValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
353
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTableComponent, deps: [{ token: ARD_TABLE_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
354
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumTableComponent, selector: "ard-table", inputs: { rowDisabledFrom: { classPropertyName: "rowDisabledFrom", publicName: "rowDisabledFrom", isSignal: true, isRequired: false, transformFunction: null }, rowBoldFrom: { classPropertyName: "rowBoldFrom", publicName: "rowBoldFrom", isSignal: true, isRequired: false, transformFunction: null }, invertRowDisabled: { classPropertyName: "invertRowDisabled", publicName: "invertRowDisabled", isSignal: true, isRequired: false, transformFunction: null }, invertRowBold: { classPropertyName: "invertRowBold", publicName: "invertRowBold", isSignal: true, isRequired: false, transformFunction: null }, selectableRows: { classPropertyName: "selectableRows", publicName: "selectableRows", isSignal: true, isRequired: false, transformFunction: null }, maxSelectedItems: { classPropertyName: "maxSelectedItems", publicName: "maxSelectedItems", isSignal: true, isRequired: false, transformFunction: null }, clickableRows: { classPropertyName: "clickableRows", publicName: "clickableRows", isSignal: true, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, loadingProgress: { classPropertyName: "loadingProgress", publicName: "loadingProgress", isSignal: true, isRequired: false, transformFunction: null }, loadingProgressBuffer: { classPropertyName: "loadingProgressBuffer", publicName: "loadingProgressBuffer", isSignal: true, isRequired: false, transformFunction: null }, loadingBarMode: { classPropertyName: "loadingBarMode", publicName: "loadingBarMode", isSignal: true, isRequired: false, transformFunction: null }, loadingBarColor: { classPropertyName: "loadingBarColor", publicName: "loadingBarColor", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, headerAlign: { classPropertyName: "headerAlign", publicName: "headerAlign", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, zebra: { classPropertyName: "zebra", publicName: "zebra", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null }, paginated: { classPropertyName: "paginated", publicName: "paginated", isSignal: true, isRequired: false, transformFunction: null }, paginationStrategy: { classPropertyName: "paginationStrategy", publicName: "paginationStrategy", isSignal: true, isRequired: false, transformFunction: null }, paginationOptions: { classPropertyName: "paginationOptions", publicName: "paginationOptions", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: false, transformFunction: null }, paginationColor: { classPropertyName: "paginationColor", publicName: "paginationColor", isSignal: true, isRequired: false, transformFunction: null }, paginationAlign: { classPropertyName: "paginationAlign", publicName: "paginationAlign", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPageText: { classPropertyName: "itemsPerPageText", publicName: "itemsPerPageText", isSignal: true, isRequired: false, transformFunction: null }, currentItemsFormatFn: { classPropertyName: "currentItemsFormatFn", publicName: "currentItemsFormatFn", isSignal: true, isRequired: false, transformFunction: null }, pageFillRemaining: { classPropertyName: "pageFillRemaining", publicName: "pageFillRemaining", isSignal: true, isRequired: false, transformFunction: null }, paginationDisabled: { classPropertyName: "paginationDisabled", publicName: "paginationDisabled", isSignal: true, isRequired: false, transformFunction: null }, useFirstLastButtons: { classPropertyName: "useFirstLastButtons", publicName: "useFirstLastButtons", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPage: { classPropertyName: "itemsPerPage", publicName: "itemsPerPage", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, treatDataSourceAsString: { classPropertyName: "treatDataSourceAsString", publicName: "treatDataSourceAsString", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemsPerPage: "itemsPerPageChange", page: "pageChange", selectedRowsChangeEvent: "selectedRowsChange", failedSelectRowEvent: "failedSelectRow", selectRowEvent: "selectRow", unselectRowEvent: "unselectRow", clickRowEvent: "clickRow" }, queries: [{ propertyName: "checkboxTemplate", first: true, predicate: ArdiumTableCheckboxTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerCheckboxTemplate", first: true, predicate: ArdiumTableHeaderCheckboxTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "captionTemplate", first: true, predicate: ArdiumTableCaptionTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "templateChildren", predicate: ArdiumTableTemplateDirective, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\n class=\"ard-table\"\n [ngClass]=\"ngClasses()\"\n>\n @if (caption()) {\n <caption class=\"ard-table__caption\">\n <div class=\"ard-table__caption-container\">\n <ng-template\n #defaultCaptionTemplate\n let-captionText\n >\n {{ captionText }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"captionTemplate() ?? defaultCaptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: caption() }\"\n />\n </div>\n </caption>\n }\n <thead class=\"ard-table__header\">\n @for (row of headerCells(); track $index) {\n <tr class=\"ard-table__header-row\">\n @for (cell of row; track $index) {\n <th\n class=\"ard-table__header-cell\"\n [ngClass]=\"cell.cell().cellClass\"\n [class.ard-table__checkbox-cell]=\"isHeaderCellCheckbox(cell)\"\n [attr.colspan]=\"cell.colspan()\"\n [attr.rowspan]=\"cell.rowspan()\"\n [scope]=\"cell.colspan() > 1 ? 'colgroup' : 'col'\"\n >\n <div\n class=\"ard-table__cell-container\"\n [class.ard-table__sortable]=\"isHeaderCellSortable(cell)\"\n [style.width]=\"cell.width\"\n [style.minWidth]=\"cell.minWidth\"\n >\n @if (isHeaderCellCheckbox(cell)) {\n <ng-template\n #defaultHeaderCheckboxTemplate\n let-state\n let-onChange=\"onChange\"\n >\n <ard-checkbox\n [tabIndex]=\"isLoading() ? -1 : tabIndex()\"\n [state]=\"state\"\n [color]=\"getHeaderCheckboxColor()\"\n unselectedColor=\"currentColor\"\n (change)=\"onChange()\"\n />\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"headerCheckboxTemplate() ?? defaultHeaderCheckboxTemplate\"\n [ngTemplateOutletContext]=\"getHeaderCheckboxContext()\"\n />\n } @else {\n <ng-template\n #defaultHeaderCellTemplate\n let-content\n let-sortable=\"sortable\"\n let-sortType=\"sortType\"\n let-onTriggerSort=\"onTriggerSort\"\n let-onTriggerResetSort=\"onTriggerResetSort\"\n >\n <div\n class=\"ard-table__header-template-container\"\n [class.ard-sortable]=\"sortable\"\n [class.ard-nonsortable]=\"!sortable\"\n >\n @if (sortable) {\n <button\n type=\"button\"\n class=\"ard-table__header-content-container\"\n (click)=\"onTriggerSort($event)\"\n [tabindex]=\"tabIndex()\"\n (keydown.Esc)=\"onTriggerResetSort($event)\"\n >\n <div class=\"ard-table__header-content\">{{ content }}</div>\n @if (sortType !== null) {\n <div class=\"ard-table__header-sort-icon\">\n @if (sortType === 'ascending') {\n <ard-icon>south</ard-icon>\n } @else if (sortType === 'descending') {\n <ard-icon>north</ard-icon>\n }\n </div>\n }\n </button>\n } @else {\n <div class=\"ard-table__header-content-container\">\n <div class=\"ard-table__header-content\">{{ content }}</div>\n </div>\n }\n </div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"getHeaderTemplate(cell.cell().header) ?? defaultHeaderCellTemplate\"\n [ngTemplateOutletContext]=\"getHeaderContext(cell.cell(), $index)\"\n />\n }\n </div>\n </th>\n }\n </tr>\n }\n <tr class=\"ard-table__progress-bar-row\">\n <th\n class=\"ard-table__progress-bar-cell\"\n colspan=\"9999\"\n >\n @if (isLoading()) {\n <ard-progress-bar\n [value]=\"loadingProgress()\"\n [bufferValue]=\"loadingProgressBuffer()\"\n [mode]=\"loadingBarMode()\"\n [color]=\"loadingBarColor()\"\n variant=\"sharp\"\n hideValue\n />\n }\n </th>\n </tr>\n </thead>\n <tbody class=\"ard-table__body\">\n @for (row of dataRows(); track $index) {\n @if (row.isEmpty()) {\n <tr class=\"ard-table__empty-row\">\n <td\n class=\"ard-table__empty-cell\"\n colspan=\"9999\"\n ></td>\n </tr>\n } @else {\n <tr\n class=\"ard-table__body-row\"\n [class.ard-table__selected-row]=\"row.selected()\"\n [class.ard-table__highlighted-row]=\"row.highlighted()\"\n [class.ard-table__disabled-row]=\"row.disabled()\"\n [class.ard-table__bold-row]=\"row.bold()\"\n (click)=\"onRowClick(row, $event)\"\n (mouseover)=\"onRowMouseOver($event)\"\n (mouseenter)=\"onRowMouseEnter(row.index(), $event)\"\n (mouseleave)=\"onRowMouseLeave(row.index(), $event)\"\n >\n @for (cell of row.data(); track $index) {\n <ng-template #cellTmp>\n <div\n class=\"ard-table__cell-container\"\n [style]=\"getCellStyle(row.dataColumns()[$index])\"\n >\n @if (isCellCheckbox(cell)) {\n <ng-template\n #defaultCheckboxTemplate\n let-isChecked\n let-onChange=\"onChange\"\n let-disabled=\"disabled\"\n >\n <ard-checkbox\n [tabIndex]=\"isLoading() ? -1 : tabIndex()\"\n [selected]=\"isChecked\"\n [color]=\"color()\"\n [disabled]=\"disabled\"\n (change)=\"onChange()\"\n (click)=\"$event.stopPropagation()\"\n />\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"checkboxTemplate() ?? defaultCheckboxTemplate\"\n [ngTemplateOutletContext]=\"getCheckboxContext(row.index())\"\n />\n } @else {\n <ng-template\n #defaultCellTemplate\n let-content\n >\n {{ content }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"getCellTemplate(row.dataColumns()[$index].template) ?? defaultCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: cell }\"\n />\n }\n </div>\n </ng-template>\n @if (!row.dataColumns()[$index].isRowHeader) {\n <td\n class=\"ard-table__body-cell\"\n [ngClass]=\"row.dataColumns()[$index].cellClass\"\n [class.ard-table__checkbox-cell]=\"isCellCheckbox(cell)\"\n >\n <ng-template [ngTemplateOutlet]=\"cellTmp\"></ng-template>\n </td>\n } @else {\n <th\n class=\"ard-table__body-cell ard-table__row-header\"\n scope=\"row\"\n [ngClass]=\"row.dataColumns()[$index].cellClass\"\n [class.ard-table__checkbox-cell]=\"isCellCheckbox(cell)\"\n >\n <ng-template [ngTemplateOutlet]=\"cellTmp\"></ng-template>\n </th>\n }\n }\n </tr>\n }\n }\n </tbody>\n @if (canDisplayPagination()) {\n <tfoot class=\"ard-table__foot\">\n <tr class=\"ard-table__foot-row\">\n <td\n class=\"ard-table__pagination-cell\"\n colspan=\"9999\"\n >\n <ard-table-pagination\n [options]=\"paginationOptions()\"\n [totalItems]=\"totalItems()!\"\n [disabled]=\"paginationDisabled()\"\n [(itemsPerPage)]=\"itemsPerPage\"\n [(page)]=\"page\"\n [align]=\"paginationAlign()\"\n [isLoading]=\"isLoading()\"\n [itemsPerPageText]=\"itemsPerPageText()\"\n [currentItemsFormatFn]=\"currentItemsFormatFn()\"\n />\n </td>\n </tr>\n </tfoot>\n }\n</table>\n", styles: [".ard-table__cell-container,.ard-table__header-template-container{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ArdiumCheckboxComponent, selector: "ard-checkbox", inputs: ["htmlId", "color", "unselectedColor", "state"], outputs: ["stateChange"] }, { kind: "component", type: i3.ArdiumTablePaginationComponent, selector: "ard-table-pagination", inputs: ["totalItems", "options", "itemsPerPage", "page", "color", "align", "compact", "useFirstLastButtons", "isLoading", "itemsPerPageText", "currentItemsFormatFn"], outputs: ["itemsPerPageChange", "pageChange"] }, { kind: "component", type: i4.ArdiumIconComponent, selector: "ard-icon", inputs: ["ariaLabel", "icon", "filled", "weight", "grade", "opticalSize"] }, { kind: "component", type: i5.ArdiumProgressBarComponent, selector: "ard-progress-bar", inputs: ["value", "bufferValue", "color", "variant", "size", "mode", "hideValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
355
355
  }
356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTableComponent, decorators: [{
356
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTableComponent, decorators: [{
357
357
  type: Component,
358
358
  args: [{ selector: 'ard-table', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\n class=\"ard-table\"\n [ngClass]=\"ngClasses()\"\n>\n @if (caption()) {\n <caption class=\"ard-table__caption\">\n <div class=\"ard-table__caption-container\">\n <ng-template\n #defaultCaptionTemplate\n let-captionText\n >\n {{ captionText }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"captionTemplate() ?? defaultCaptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: caption() }\"\n />\n </div>\n </caption>\n }\n <thead class=\"ard-table__header\">\n @for (row of headerCells(); track $index) {\n <tr class=\"ard-table__header-row\">\n @for (cell of row; track $index) {\n <th\n class=\"ard-table__header-cell\"\n [ngClass]=\"cell.cell().cellClass\"\n [class.ard-table__checkbox-cell]=\"isHeaderCellCheckbox(cell)\"\n [attr.colspan]=\"cell.colspan()\"\n [attr.rowspan]=\"cell.rowspan()\"\n [scope]=\"cell.colspan() > 1 ? 'colgroup' : 'col'\"\n >\n <div\n class=\"ard-table__cell-container\"\n [class.ard-table__sortable]=\"isHeaderCellSortable(cell)\"\n [style.width]=\"cell.width\"\n [style.minWidth]=\"cell.minWidth\"\n >\n @if (isHeaderCellCheckbox(cell)) {\n <ng-template\n #defaultHeaderCheckboxTemplate\n let-state\n let-onChange=\"onChange\"\n >\n <ard-checkbox\n [tabIndex]=\"isLoading() ? -1 : tabIndex()\"\n [state]=\"state\"\n [color]=\"getHeaderCheckboxColor()\"\n unselectedColor=\"currentColor\"\n (change)=\"onChange()\"\n />\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"headerCheckboxTemplate() ?? defaultHeaderCheckboxTemplate\"\n [ngTemplateOutletContext]=\"getHeaderCheckboxContext()\"\n />\n } @else {\n <ng-template\n #defaultHeaderCellTemplate\n let-content\n let-sortable=\"sortable\"\n let-sortType=\"sortType\"\n let-onTriggerSort=\"onTriggerSort\"\n let-onTriggerResetSort=\"onTriggerResetSort\"\n >\n <div\n class=\"ard-table__header-template-container\"\n [class.ard-sortable]=\"sortable\"\n [class.ard-nonsortable]=\"!sortable\"\n >\n @if (sortable) {\n <button\n type=\"button\"\n class=\"ard-table__header-content-container\"\n (click)=\"onTriggerSort($event)\"\n [tabindex]=\"tabIndex()\"\n (keydown.Esc)=\"onTriggerResetSort($event)\"\n >\n <div class=\"ard-table__header-content\">{{ content }}</div>\n @if (sortType !== null) {\n <div class=\"ard-table__header-sort-icon\">\n @if (sortType === 'ascending') {\n <ard-icon>south</ard-icon>\n } @else if (sortType === 'descending') {\n <ard-icon>north</ard-icon>\n }\n </div>\n }\n </button>\n } @else {\n <div class=\"ard-table__header-content-container\">\n <div class=\"ard-table__header-content\">{{ content }}</div>\n </div>\n }\n </div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"getHeaderTemplate(cell.cell().header) ?? defaultHeaderCellTemplate\"\n [ngTemplateOutletContext]=\"getHeaderContext(cell.cell(), $index)\"\n />\n }\n </div>\n </th>\n }\n </tr>\n }\n <tr class=\"ard-table__progress-bar-row\">\n <th\n class=\"ard-table__progress-bar-cell\"\n colspan=\"9999\"\n >\n @if (isLoading()) {\n <ard-progress-bar\n [value]=\"loadingProgress()\"\n [bufferValue]=\"loadingProgressBuffer()\"\n [mode]=\"loadingBarMode()\"\n [color]=\"loadingBarColor()\"\n variant=\"sharp\"\n hideValue\n />\n }\n </th>\n </tr>\n </thead>\n <tbody class=\"ard-table__body\">\n @for (row of dataRows(); track $index) {\n @if (row.isEmpty()) {\n <tr class=\"ard-table__empty-row\">\n <td\n class=\"ard-table__empty-cell\"\n colspan=\"9999\"\n ></td>\n </tr>\n } @else {\n <tr\n class=\"ard-table__body-row\"\n [class.ard-table__selected-row]=\"row.selected()\"\n [class.ard-table__highlighted-row]=\"row.highlighted()\"\n [class.ard-table__disabled-row]=\"row.disabled()\"\n [class.ard-table__bold-row]=\"row.bold()\"\n (click)=\"onRowClick(row, $event)\"\n (mouseover)=\"onRowMouseOver($event)\"\n (mouseenter)=\"onRowMouseEnter(row.index(), $event)\"\n (mouseleave)=\"onRowMouseLeave(row.index(), $event)\"\n >\n @for (cell of row.data(); track $index) {\n <ng-template #cellTmp>\n <div\n class=\"ard-table__cell-container\"\n [style]=\"getCellStyle(row.dataColumns()[$index])\"\n >\n @if (isCellCheckbox(cell)) {\n <ng-template\n #defaultCheckboxTemplate\n let-isChecked\n let-onChange=\"onChange\"\n let-disabled=\"disabled\"\n >\n <ard-checkbox\n [tabIndex]=\"isLoading() ? -1 : tabIndex()\"\n [selected]=\"isChecked\"\n [color]=\"color()\"\n [disabled]=\"disabled\"\n (change)=\"onChange()\"\n (click)=\"$event.stopPropagation()\"\n />\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"checkboxTemplate() ?? defaultCheckboxTemplate\"\n [ngTemplateOutletContext]=\"getCheckboxContext(row.index())\"\n />\n } @else {\n <ng-template\n #defaultCellTemplate\n let-content\n >\n {{ content }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"getCellTemplate(row.dataColumns()[$index].template) ?? defaultCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: cell }\"\n />\n }\n </div>\n </ng-template>\n @if (!row.dataColumns()[$index].isRowHeader) {\n <td\n class=\"ard-table__body-cell\"\n [ngClass]=\"row.dataColumns()[$index].cellClass\"\n [class.ard-table__checkbox-cell]=\"isCellCheckbox(cell)\"\n >\n <ng-template [ngTemplateOutlet]=\"cellTmp\"></ng-template>\n </td>\n } @else {\n <th\n class=\"ard-table__body-cell ard-table__row-header\"\n scope=\"row\"\n [ngClass]=\"row.dataColumns()[$index].cellClass\"\n [class.ard-table__checkbox-cell]=\"isCellCheckbox(cell)\"\n >\n <ng-template [ngTemplateOutlet]=\"cellTmp\"></ng-template>\n </th>\n }\n }\n </tr>\n }\n }\n </tbody>\n @if (canDisplayPagination()) {\n <tfoot class=\"ard-table__foot\">\n <tr class=\"ard-table__foot-row\">\n <td\n class=\"ard-table__pagination-cell\"\n colspan=\"9999\"\n >\n <ard-table-pagination\n [options]=\"paginationOptions()\"\n [totalItems]=\"totalItems()!\"\n [disabled]=\"paginationDisabled()\"\n [(itemsPerPage)]=\"itemsPerPage\"\n [(page)]=\"page\"\n [align]=\"paginationAlign()\"\n [isLoading]=\"isLoading()\"\n [itemsPerPageText]=\"itemsPerPageText()\"\n [currentItemsFormatFn]=\"currentItemsFormatFn()\"\n />\n </td>\n </tr>\n </tfoot>\n }\n</table>\n", styles: [".ard-table__cell-container,.ard-table__header-template-container{width:100%;height:100%}\n"] }]
359
359
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -364,4 +364,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
364
364
  }], data: [{
365
365
  type: Input
366
366
  }] } });
367
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBR0wsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsWUFBWSxFQUNaLGVBQWUsRUFDZixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHM0QsT0FBTyxFQUFrQixvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdFLE9BQU8sRUFBRSxXQUFXLEVBQWMsZ0JBQWdCLEVBQXdCLE1BQU0sc0JBQXNCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGtCQUFrQixFQUFvQixNQUFNLGtCQUFrQixDQUFDO0FBQ3hFLE9BQU8sRUFDTCxtQ0FBbUMsRUFDbkMsb0NBQW9DLEVBQ3BDLDBDQUEwQyxFQUMxQyw0QkFBNEIsR0FDN0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBRUwsZUFBZSxFQU1mLHVCQUF1QixHQUl4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7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OUIsS0FBSyxFQUFFLGNBQWMsRUFBRSxDQUFDO2dCQUN4QixLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUM7WUFDM0IsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBaUJELGtCQUFrQixDQUFDLEtBQWE7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssS0FBSyxDQUFFLENBQUM7UUFDdkUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLE9BQU87WUFDTCxTQUFTLEVBQUUsUUFBUTtZQUNuQixRQUFRLEVBQUUsUUFBUTtZQUNsQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN6QixRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOzhHQXBYVSxvQkFBb0Isa0JBRVgsa0JBQWtCO2tHQUYzQixvQkFBb0Isc2dMQThLN0Isb0NBQW9DLDJCQUU1QixXQUFXLHNGQU1uQiwwQ0FBMEMsMkJBQ3BDLFdBQVcsK0VBR2pCLG1DQUFtQywyQkFFM0IsV0FBVyxtRUFLcUQsNEJBQTRCLHlGQ3hQeEcsK3VSQTRPQTs7MkZEckxhLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxXQUFXLGlCQUdOLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQUlsQyxNQUFNOzJCQUFDLGtCQUFrQjt5Q0F5SmxDLE9BQU87c0JBRFYsS0FBSztnQkFNRixJQUFJO3NCQURQLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgY29tcHV0ZWQsXG4gIGNvbnRlbnRDaGlsZCxcbiAgY29udGVudENoaWxkcmVuLFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIG91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xuaW1wb3J0IHsgaXNEZWZpbmVkLCBpc051bWJlciB9IGZyb20gJ3NpbXBsZS1ib29sJztcbmltcG9ydCB7IF9Gb2N1c2FibGVDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vX2ludGVybmFsL2ZvY3VzYWJsZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hlY2tib3hTdGF0ZSB9IGZyb20gJy4uL2NoZWNrYm94L2NoZWNrYm94LnR5cGVzJztcbmltcG9ydCB7IFByb2dyZXNzQmFyTW9kZSB9IGZyb20gJy4uL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBDdXJyZW50SXRlbXNGb3JtYXRGbiwgUGFnaW5hdGlvbkFsaWduIH0gZnJvbSAnLi4vdGFibGUtcGFnaW5hdGlvbi90YWJsZS1wYWdpbmF0aW9uLnR5cGVzJztcbmltcG9ydCB7IENvbXBvbmVudENvbG9yLCBTaW1wbGVDb21wb25lbnRDb2xvciB9IGZyb20gJy4uL3R5cGVzL2NvbG9ycy50eXBlcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xuaW1wb3J0IHsgQXJkVGFibGVSb3csIEhlYWRlckNlbGwsIFRhYmxlSXRlbVN0b3JhZ2UsIFRhYmxlSXRlbVN0b3JhZ2VIb3N0IH0gZnJvbSAnLi90YWJsZS1pdGVtLXN0b3JhZ2UnO1xuaW1wb3J0IHsgQVJEX1RBQkxFX0RFRkFVTFRTLCBBcmRUYWJsZURlZmF1bHRzIH0gZnJvbSAnLi90YWJsZS5kZWZhdWx0cyc7XG5pbXBvcnQge1xuICBBcmRpdW1UYWJsZUNhcHRpb25UZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkaXVtVGFibGVDaGVja2JveFRlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRpdW1UYWJsZUhlYWRlckNoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZGl1bVRhYmxlVGVtcGxhdGVEaXJlY3RpdmUsXG59IGZyb20gJy4vdGFibGUuZGlyZWN0aXZlcyc7XG5pbXBvcnQge1xuICBUYWJsZUFsaWduVHlwZSxcbiAgVGFibGVBcHBlYXJhbmNlLFxuICBUYWJsZUNhcHRpb25Db250ZXh0LFxuICBUYWJsZUNoZWNrYm94Q29udGV4dCxcbiAgVGFibGVEYXRhQ29sdW1uLFxuICBUYWJsZUhlYWRlckNoZWNrYm94Q29udGV4dCxcbiAgVGFibGVIZWFkZXJDb250ZXh0LFxuICBUYWJsZVBhZ2luYXRpb25TdHJhdGVneSxcbiAgVGFibGVTdWJoZWFkZXIsXG4gIFRhYmxlU3ViaGVhZGVyQ29udGV4dCxcbiAgVGFibGVWYXJpYW50LFxufSBmcm9tICcuL3RhYmxlLnR5cGVzJztcbmltcG9ydCB7IGlzVGFibGVTdWJoZWFkZXIgfSBmcm9tICcuL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJkLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bVRhYmxlQ29tcG9uZW50IGV4dGVuZHMgX0ZvY3VzYWJsZUNvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBUYWJsZUl0ZW1TdG9yYWdlSG9zdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IEFyZFRhYmxlRGVmYXVsdHM7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQVJEX1RBQkxFX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkVGFibGVEZWZhdWx0cykge1xuICAgIHN1cGVyKGRlZmF1bHRzKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2l0ZW1TdG9yYWdlID0gbmV3IFRhYmxlSXRlbVN0b3JhZ2UodGhpcyk7XG5cbiAgcmVhZG9ubHkgcm93RGlzYWJsZWRGcm9tID0gaW5wdXQ8c3RyaW5nPih0aGlzLl9ERUZBVUxUUy5yb3dEaXNhYmxlZEZyb20pO1xuICByZWFkb25seSByb3dCb2xkRnJvbSA9IGlucHV0PHN0cmluZz4odGhpcy5fREVGQVVMVFMucm93Qm9sZEZyb20pO1xuICByZWFkb25seSBpbnZlcnRSb3dEaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuaW52ZXJ0Um93RGlzYWJsZWQsIHtcbiAgICB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpLFxuICB9KTtcbiAgcmVhZG9ubHkgaW52ZXJ0Um93Qm9sZCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuaW52ZXJ0Um93Qm9sZCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGFibGVSb3dzID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5zZWxlY3RhYmxlUm93cywgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuICByZWFkb25seSBtYXhTZWxlY3RlZEl0ZW1zID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPiwgYW55Pih0aGlzLl9ERUZBVUxUUy5tYXhTZWxlY3RlZEl0ZW1zLCB7XG4gICAgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIHRoaXMuX0RFRkFVTFRTLm1heFNlbGVjdGVkSXRlbXMpLFxuICB9KTtcblxuICByZWFkb25seSBjbGlja2FibGVSb3dzID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jbGlja2FibGVSb3dzLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG5cbiAgcmVhZG9ubHkgY2FwdGlvbiA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHRoaXMuX0RFRkFVTFRTLmNhcHRpb24pO1xuXG4gIHJlYWRvbmx5IGlzTG9hZGluZyA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuaXNMb2FkaW5nLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG4gIHJlYWRvbmx5IGxvYWRpbmdQcm9ncmVzcyA9IGlucHV0PG51bWJlciwgYW55Pih0aGlzLl9ERUZBVUxUUy5sb2FkaW5nUHJvZ3Jlc3MsIHtcbiAgICB0cmFuc2Zvcm06IHYgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgdGhpcy5fREVGQVVMVFMubG9hZGluZ1Byb2dyZXNzKSxcbiAgfSk7XG4gIHJlYWRvbmx5IGxvYWRpbmdQcm9ncmVzc0J1ZmZlciA9IGlucHV0PG51bWJlciwgYW55Pih0aGlzLl9ERUZBVUxUUy5sb2FkaW5nUHJvZ3Jlc3NCdWZmZXIsIHtcbiAgICB0cmFuc2Zvcm06IHYgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgdGhpcy5fREVGQVVMVFMubG9hZGluZ1Byb2dyZXNzQnVmZmVyKSxcbiAgfSk7XG4gIHJlYWRvbmx5IGxvYWRpbmdCYXJNb2RlID0gaW5wdXQ8UHJvZ3Jlc3NCYXJNb2RlPih0aGlzLl9ERUZBVUxUUy5sb2FkaW5nQmFyTW9kZSk7XG4gIHJlYWRvbmx5IGxvYWRpbmdCYXJDb2xvciA9IGlucHV0PENvbXBvbmVudENvbG9yPih0aGlzLl9ERUZBVUxUUy5sb2FkaW5nQmFyQ29sb3IpO1xuXG4gIC8vISBhcHBlYXJhbmNlXG4gIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBpbnB1dDxUYWJsZUFwcGVhcmFuY2U+KHRoaXMuX0RFRkFVTFRTLmFwcGVhcmFuY2UpO1xuICByZWFkb25seSB2YXJpYW50ID0gaW5wdXQ8VGFibGVWYXJpYW50Pih0aGlzLl9ERUZBVUxUUy52YXJpYW50KTtcbiAgcmVhZG9ubHkgY29sb3IgPSBpbnB1dDxDb21wb25lbnRDb2xvcj4odGhpcy5fREVGQVVMVFMuY29sb3IpO1xuICByZWFkb25seSBhbGlnbiA9IGlucHV0PFRhYmxlQWxpZ25UeXBlPih0aGlzLl9ERUZBVUxUUy5hbGlnbik7XG4gIHJlYWRvbmx5IGhlYWRlckFsaWduID0gaW5wdXQ8VGFibGVBbGlnblR5cGU+KHRoaXMuX0RFRkFVTFRTLmhlYWRlckFsaWduKTtcblxuICByZWFkb25seSBjb21wYWN0ID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jb21wYWN0LCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG4gIHJlYWRvbmx5IHplYnJhID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy56ZWJyYSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuICByZWFkb25seSBzdGlja3lIZWFkZXIgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnN0aWNreUhlYWRlciwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgW1xuICAgICAgYGFyZC1hcHBlYXJhbmNlLSR7dGhpcy5hcHBlYXJhbmNlKCl9YCxcbiAgICAgIGBhcmQtdmFyaWFudC0ke3RoaXMudmFyaWFudCgpfWAsXG4gICAgICBgYXJkLWNvbG9yLSR7dGhpcy5jb2xvcigpfWAsXG4gICAgICBgYXJkLWFsaWduLSR7dGhpcy5hbGlnbigpfWAsXG4gICAgICBgYXJkLWhlYWRlci1hbGlnbi0ke3RoaXMuaGVhZGVyQWxpZ24oKX1gLFxuICAgICAgdGhpcy5jb21wYWN0KCkgPyAnYXJkLWNvbXBhY3QnIDogJycsXG4gICAgICB0aGlzLnplYnJhKCkgPyAnYXJkLXplYnJhLXRhYmxlJyA6ICcnLFxuICAgICAgdGhpcy5zZWxlY3RhYmxlUm93cygpID8gJ2FyZC1zZWxlY3RhYmxlLXJvd3MnIDogJycsXG4gICAgICB0aGlzLnN0aWNreUhlYWRlcigpID8gJ2FyZC1zdGlja3ktaGVhZGVyJyA6ICcnLFxuICAgICAgdGhpcy5pc0xvYWRpbmcoKSA/ICdhcmQtdGFibGUtbG9hZGluZycgOiAnJyxcbiAgICBdLmpvaW4oJyAnKVxuICApO1xuXG4gIC8vISBwYWdpbmF0aW9uXG4gIHJlYWRvbmx5IHBhZ2luYXRlZCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMucGFnaW5hdGVkLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG4gIHJlYWRvbmx5IHBhZ2luYXRpb25TdHJhdGVneSA9IGlucHV0PFRhYmxlUGFnaW5hdGlvblN0cmF0ZWd5Pih0aGlzLl9ERUZBVUxUUy5wYWdpbmF0aW9uU3RyYXRlZ3kpO1xuICByZWFkb25seSBwYWdpbmF0aW9uT3B0aW9ucyA9IGlucHV0PFxuICAgIG51bWJlcltdIHwgeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXSxcbiAgICBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W11cbiAgPih0aGlzLl9ERUZBVUxUUy5wYWdpbmF0aW9uT3B0aW9ucywge1xuICAgIHRyYW5zZm9ybTogdiA9PiB7XG4gICAgICByZXR1cm4gdi5maWx0ZXIoZWwgPT4ge1xuICAgICAgICBjb25zdCBvcHQgPSBpc051bWJlcihlbCkgPyBlbCA6IGVsLnZhbHVlO1xuICAgICAgICBpZiAob3B0IDw9IDAgfHwgb3B0ICUgMSAhPT0gMCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBBUkQtTkY1MDUyOiBlYWNoIGl0ZW0gb2YgPGFyZC10YWJsZT4ncyBbcGFnaW5hdGlvbk9wdGlvbnNdIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLiBUaGUgXCIke29wdH1cIiBvcHRpb24gd2lsbCBiZSBpZ25vcmVkLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pIGFzIG51bWJlcltdIHwgeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXTtcbiAgICB9LFxuICB9KTtcbiAgcmVhZG9ubHkgdG90YWxJdGVtcyA9IGlucHV0PE51bGxhYmxlPG51bWJlcj4sIGFueT4odGhpcy5fREVGQVVMVFMudG90YWxJdGVtcywge1xuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy50b3RhbEl0ZW1zKSxcbiAgfSk7XG4gIHJlYWRvbmx5IHBhZ2luYXRpb25Db2xvciA9IGlucHV0PENvbXBvbmVudENvbG9yPih0aGlzLl9ERUZBVUxUUy5wYWdpbmF0aW9uQ29sb3IpO1xuICByZWFkb25seSBwYWdpbmF0aW9uQWxpZ24gPSBpbnB1dDxQYWdpbmF0aW9uQWxpZ24+KHRoaXMuX0RFRkFVTFRTLnBhZ2luYXRpb25BbGlnbik7XG4gIHJlYWRvbmx5IGl0ZW1zUGVyUGFnZVRleHQgPSBpbnB1dDxzdHJpbmc+KHRoaXMuX0RFRkFVTFRTLml0ZW1zUGVyUGFnZVRleHQpO1xuICByZWFkb25seSBjdXJyZW50SXRlbXNGb3JtYXRGbiA9IGlucHV0PEN1cnJlbnRJdGVtc0Zvcm1hdEZuPih0aGlzLl9ERUZBVUxUUy5jdXJyZW50SXRlbXNGb3JtYXRGbik7XG5cbiAgcmVhZG9ubHkgcGFnZUZpbGxSZW1haW5pbmcgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnBhZ2VGaWxsUmVtYWluaW5nLCB7XG4gICAgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSxcbiAgfSk7XG4gIHJlYWRvbmx5IHBhZ2luYXRpb25EaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMucGFnaW5hdGlvbkRpc2FibGVkLCB7XG4gICAgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSxcbiAgfSk7XG4gIHJlYWRvbmx5IHVzZUZpcnN0TGFzdEJ1dHRvbnMgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnVzZUZpcnN0TGFzdEJ1dHRvbnMsIHtcbiAgICB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpLFxuICB9KTtcblxuICByZWFkb25seSBpdGVtc1BlclBhZ2UgPSBtb2RlbDxudW1iZXI+KHRoaXMuX0RFRkFVTFRTLml0ZW1zUGVyUGFnZSk7XG4gIHJlYWRvbmx5IHBhZ2UgPSBtb2RlbDxudW1iZXI+KHRoaXMuX0RFRkFVTFRTLnBhZ2UpO1xuXG4gIHJlYWRvbmx5IGlzRGVmaW5lZFRvdGFsSXRlbXMgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLnBhZ2luYXRpb25TdHJhdGVneSgpICE9PSBUYWJsZVBhZ2luYXRpb25TdHJhdGVneS5Ob29wIHx8IGlzRGVmaW5lZCh0aGlzLnRvdGFsSXRlbXMoKSlcbiAgKTtcbiAgcmVhZG9ubHkgY2FuRGlzcGxheVBhZ2luYXRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBhZ2luYXRlZCgpICYmIHRoaXMuaXNEZWZpbmVkVG90YWxJdGVtcygpKTtcblxuICAvLyEgcHJpbnQgZXJyb3JzIGlmIG5lZWRlZFxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2l0ZW1zUGVyUGFnZSddKSB7XG4gICAgICBjb25zdCBpcHAgPSBjaGFuZ2VzWydpdGVtc1BlclBhZ2UnXS5jdXJyZW50VmFsdWU7XG4gICAgICBjb25zdCBvcHRpb25zID1cbiAgICAgICAgKGNoYW5nZXNbJ3BhZ2luYXRpb25PcHRpb25zJ10/LmN1cnJlbnRWYWx1ZSBhcyBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10pIHx8IHRoaXMucGFnaW5hdGlvbk9wdGlvbnMoKTtcbiAgICAgIGlmICghb3B0aW9ucy5maW5kKHYgPT4gKHR5cGVvZiB2ID09PSAnbnVtYmVyJyA/IHYgPT09IGlwcCA6IHYudmFsdWUgPT09IGlwcCkpKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEFSRC1ORjUwNTE6IHZhbHVlIG9mIFwiJHtpcHB9XCIgaW4gPGFyZC10YWJsZT4ncyBbaXRlbXNQZXJQYWdlXSBkb2VzIG5vdCBhcHBlYXIgaW4gW3BhZ2luYXRpb25PcHRpb25zXSBhcnJheSBbJHtvcHRpb25zXG4gICAgICAgICAgICAgIC5tYXAodiA9PiAodHlwZW9mIHYgPT09ICdudW1iZXInID8gdiA6IHYudmFsdWUpKVxuICAgICAgICAgICAgICAuam9pbignLCAnKX1dYFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3BhZ2UnXSkge1xuICAgICAgY29uc3QgcGFnZSA9IGNoYW5nZXNbJ3BhZ2UnXS5jdXJyZW50VmFsdWUgYXMgbnVtYmVyO1xuICAgICAgaWYgKHBhZ2UgPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBUkQtRlQ1MDUzYTogPGFyZC10YWJsZT4ncyBbcGFnZV0gdXNlcyAxLWluZGV4ZWQgbnVtYmVyaW5nIHN5c3RlbS4gVGhlIHZhbHVlIDAgaXMgbm90IGFjY2VwdGVkLmApO1xuICAgICAgfSBlbHNlIGlmIChwYWdlIDwgMCB8fCBwYWdlICUgMSAhPT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVDUwNTNiOiB2YWx1ZSBvZiA8YXJkLXRhYmxlPidzIFtwYWdlXSBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciwgZ290IFwiJHtwYWdlfVwiLmApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vISBpdGVtIHN0b3JhZ2UgZ2V0dGVyc1xuICByZWFkb25seSBoZWFkZXJDZWxscyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2l0ZW1TdG9yYWdlLmhlYWRlckNlbGxzKCkpO1xuXG4gIHJlYWRvbmx5IGRhdGFSb3dzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1zOiBBcmRUYWJsZVJvd1tdID0gdGhpcy5faXRlbVN0b3JhZ2UucGFnaW5hdGVkSXRlbXMoKTtcblxuICAgIGlmICghdGhpcy5wYWdlRmlsbFJlbWFpbmluZygpKSByZXR1cm4gaXRlbXM7XG4gICAgaWYgKCF0aGlzLmlzRGVmaW5lZFRvdGFsSXRlbXMoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBUkQtRlQ1MDUwOiA8YXJkLXRhYmxlPiByZXF1aXJlcyBbdG90YWxJdGVtc10gdG8gYmUgZGVmaW5lZCB3aGVuIHVzaW5nIFwic2xpY2VcIiBwYWdpbmF0aW9uIHN0cmF0ZWd5LicpO1xuICAgIH1cbiAgICBpZiAodGhpcy5wYWdlKCkgPT09IDEpIHJldHVybiBpdGVtcztcblxuICAgIGNvbnN0IGlwcCA9IHRoaXMuaXRlbXNQZXJQYWdlKCk7XG4gICAgZm9yIChsZXQgaSA9IGl0ZW1zLmxlbmd0aDsgaSA8IGlwcDsgaSsrKSB7XG4gICAgICBpdGVtcy5wdXNoKEFyZFRhYmxlUm93Lm5ld0VtcHR5Q2VsbChpKSk7XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfSk7XG5cbiAgLy8hIGNvbHVtbnMvZGF0YSBzZXR0ZXJzXG4gIEBJbnB1dCgpXG4gIHNldCBjb2x1bW5zKHY6IChUYWJsZURhdGFDb2x1bW4gfCBUYWJsZVN1YmhlYWRlcilbXSkge1xuICAgIHRoaXMuX2l0ZW1TdG9yYWdlLnNldENvbHVtbnModik7XG4gIH1cbiAgcHJpdmF0ZSBfZGF0YTogYW55W10gPSBbXTtcbiAgQElucHV0KClcbiAgc2V0IGRhdGEodjogYW55W10pIHtcbiAgICB0aGlzLl9kYXRhID0gdjtcbiAgICB0aGlzLl9pdGVtU3RvcmFnZS5zZXRJdGVtcyh2KTtcbiAgfVxuICBnZXQgZGF0YSgpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cblxuICByZWFkb25seSB0cmVhdERhdGFTb3VyY2VBc1N0cmluZyA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMudHJlYXREYXRhU291cmNlQXNTdHJpbmcsIHtcbiAgICB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpLFxuICB9KTtcblxuICAvLyEgdGVtcGxhdGVzXG4gIHJlYWRvbmx5IGNoZWNrYm94VGVtcGxhdGUgPSBjb250ZW50Q2hpbGQ8QXJkaXVtVGFibGVDaGVja2JveFRlbXBsYXRlRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZjxUYWJsZUNoZWNrYm94Q29udGV4dD4+KFxuICAgIEFyZGl1bVRhYmxlQ2hlY2tib3hUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICB7XG4gICAgICByZWFkOiBUZW1wbGF0ZVJlZjxUYWJsZUNoZWNrYm94Q29udGV4dD4sXG4gICAgfVxuICApO1xuICByZWFkb25seSBoZWFkZXJDaGVja2JveFRlbXBsYXRlID0gY29udGVudENoaWxkPFxuICAgIEFyZGl1bVRhYmxlSGVhZGVyQ2hlY2tib3hUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBUZW1wbGF0ZVJlZjxUYWJsZUhlYWRlckNoZWNrYm94Q29udGV4dD5cbiAgPihBcmRpdW1UYWJsZUhlYWRlckNoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZjxUYWJsZUhlYWRlckNoZWNrYm94Q29udGV4dD4sXG4gIH0pO1xuICByZWFkb25seSBjYXB0aW9uVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQ8QXJkaXVtVGFibGVDYXB0aW9uVGVtcGxhdGVEaXJlY3RpdmUsIFRlbXBsYXRlUmVmPFRhYmxlQ2FwdGlvbkNvbnRleHQ+PihcbiAgICBBcmRpdW1UYWJsZUNhcHRpb25UZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICB7XG4gICAgICByZWFkOiBUZW1wbGF0ZVJlZjxUYWJsZUNhcHRpb25Db250ZXh0PixcbiAgICB9XG4gICk7XG5cbiAgcHJpdmF0ZSBfaXRlbVRlbXBsYXRlczogUmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4gPSB7fTtcbiAgcmVhZG9ubHkgdGVtcGxhdGVDaGlsZHJlbiA9IGNvbnRlbnRDaGlsZHJlbjxBcmRpdW1UYWJsZVRlbXBsYXRlRGlyZWN0aXZlPihBcmRpdW1UYWJsZVRlbXBsYXRlRGlyZWN0aXZlKTtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgdGVtcGxhdGVzID0gQXJyYXkuZnJvbSh0aGlzLnRlbXBsYXRlQ2hpbGRyZW4oKSk7XG4gICAgZm9yIChjb25zdCBpbnN0YW5jZSBvZiB0ZW1wbGF0ZXMpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBpbnN0YW5jZS5uYW1lKCk7XG4gICAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihuZXcgRXJyb3IoJ0FSRC1GVDUwNTQ6IFthcmQtdGFibGUtdG1wXSByZXF1aXJlcyBhIHZhbHVlIHRvIGJlIHNwZWNpZmllZC4nKSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5faXRlbVRlbXBsYXRlc1tuYW1lXSA9IGluc3RhbmNlLnRlbXBsYXRlO1xuICAgIH1cbiAgfVxuXG4gIGdldEhlYWRlclRlbXBsYXRlKHRtcDogc3RyaW5nIHwgeyB0ZW1wbGF0ZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB9KTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB0bXAgPT09ICdzdHJpbmcnKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLmdldENlbGxUZW1wbGF0ZSh0bXAudGVtcGxhdGUpO1xuICB9XG4gIGdldEhlYWRlckNoZWNrYm94Q29sb3IoKTogU2ltcGxlQ29tcG9uZW50Q29sb3Ige1xuICAgIGlmICh0aGlzLmFwcGVhcmFuY2UoKSA9PT0gVGFibGVBcHBlYXJhbmNlLlN0cm9uZykgcmV0dXJuIFNpbXBsZUNvbXBvbmVudENvbG9yLkN1cnJlbnRDb2xvcjtcbiAgICByZXR1cm4gdGhpcy5jb2xvcigpO1xuICB9XG4gIGdldENlbGxUZW1wbGF0ZSh0bXA/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgLy9yZXR1cm4gdW5kZWZpbmVkXG4gICAgaWYgKCF0bXApIHJldHVybiB1bmRlZmluZWQ7XG4gICAgLy9yZXR1cm4gdGVtcGxhdGUsIGlmIGl0IGlzIG9uZVxuICAgIGlmICh0bXAgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikgcmV0dXJuIHRtcDtcbiAgICAvL2NoZWNrIGlmIHRoZSBuYW1lIGNhbiBiZSBmb3VuZFxuICAgIGlmICghKHRtcCBpbiB0aGlzLl9pdGVtVGVtcGxhdGVzKSkge1xuICAgICAgY29uc29sZS5lcnJvcihuZXcgRXJyb3IoYEFSRC1ORjUwNTU6IDxhcmQtdGFibGU+IGVycm9yOiBjYW5ub3QgZmluZCB0ZW1wbGF0ZSBuYW1lZCBcIiR7dG1wfVwiYCkpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy9yZXR1cm4gdGhlIHRlbXBsYXRlXG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1UZW1wbGF0ZXNbdG1wXTtcbiAgfVxuICBnZXRDZWxsU3R5bGUoY2VsbDogVGFibGVEYXRhQ29sdW1uIHwgVGFibGVTdWJoZWFkZXIpOiBzdHJpbmcge1xuICAgIGlmIChpc1RhYmxlU3ViaGVhZGVyKGNlbGwpKSByZXR1cm4gJ3dpZHRoOnVuc2V0O21pbi13aWR0aDp1bnNldCc7XG4gICAgY29uc3Qgd2lkdGggPSB0eXBlb2YgY2VsbC53aWR0aCA9PT0gJ251bWJlcicgPyBgJHtjZWxsLndpZHRofXB4YCA6IGNlbGwud2lkdGg7XG4gICAgY29uc3QgbWluV2lkdGggPSB0eXBlb2YgY2VsbC5taW5XaWR0aCA9PT0gJ251bWJlcicgPyBgJHtjZWxsLm1pbldpZHRofXB4YCA6IGNlbGwubWluV2lkdGg7XG4gICAgcmV0dXJuIFtgd2lkdGg6JHt3aWR0aCA/PyAndW5zZXQnfWAsIGBtaW4td2lkdGg6JHttaW5XaWR0aCA/PyAndW5zZXQnfWBdLmpvaW4oJzsnKTtcbiAgfVxuXG4gIC8vISBjbGljayAmIGhvdmVyIGhhbmRsZXJzXG4gIG9uQ2hlY2tib3hDbGljayhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVSb3dTZWxlY3RlZChpbmRleCk7XG4gIH1cbiAgb25Sb3dDbGljayhyb3c6IEFyZFRhYmxlUm93LCBldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNsaWNrYWJsZVJvd3MoKSkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLmNsaWNrUm93RXZlbnQuZW1pdChyb3cuaXRlbURhdGEoKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnNlbGVjdGFibGVSb3dzKCkpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy50b2dnbGVSb3dTZWxlY3RlZChyb3cuaW5kZXgoKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG4gIG9uUm93TW91c2VPdmVyKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbiAgb25Sb3dNb3VzZUVudGVyKGluZGV4OiBudW1iZXIsIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGFibGVSb3dzKCkgJiYgIXRoaXMuY2xpY2thYmxlUm93cygpKSByZXR1cm47XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5faXRlbVN0b3JhZ2UuaGlnaGxpZ2h0U2luZ2xlSXRlbShpbmRleCk7XG4gIH1cbiAgb25Sb3dNb3VzZUxlYXZlKGluZGV4OiBudW1iZXIsIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGFibGVSb3dzKCkgJiYgIXRoaXMuY2xpY2thYmxlUm93cygpKSByZXR1cm47XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5faXRlbVN0b3JhZ2UudW5oaWdobGlnaHRJdGVtKGluZGV4KTtcbiAgfVxuXG4gIC8vISBzZWxlY3QgaGFuZGxlcnNcbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIHNlbGVjdGlvbiBzdGF0ZSBvZiBhIHJvdyBpbiB0aGUgdGFibGUuXG4gICAqIEBwYXJhbSBzZWxlY3RlZCBhIGJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyBpZiB0aGUgcm93IGlzIGN1cnJlbnRseSBzZWxlY3RlZC5cbiAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCBvZiB0aGUgcm93IGluIHRoZSB0YWJsZS5cbiAgICovXG4gIHRvZ2dsZVJvd1NlbGVjdGVkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faXRlbVN0b3JhZ2UuaXNJdGVtU2VsZWN0ZWQoaW5kZXgpKSB7XG4gICAgICBjb25zdCB1bnNlbGVjdGVkID0gdGhpcy5faXRlbVN0b3JhZ2UudW5zZWxlY3RJdGVtKGluZGV4KTtcbiAgICAgIGlmICh1bnNlbGVjdGVkLmxlbmd0aCkgdGhpcy51bnNlbGVjdFJvd0V2ZW50LmVtaXQodW5zZWxlY3RlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IFtzZWxlY3RlZCwgZmFpbGVkXSA9IHRoaXMuX2l0ZW1TdG9yYWdlLnNlbGVjdEl0ZW0oaW5kZXgpO1xuICAgICAgaWYgKHNlbGVjdGVkLmxlbmd0aCkgdGhpcy5zZWxlY3RSb3dFdmVudC5lbWl0KHNlbGVjdGVkKTtcbiAgICAgIGlmIChmYWlsZWQubGVuZ3RoKSB0aGlzLmZhaWxlZFNlbGVjdFJvd0V2ZW50LmVtaXQoZmFpbGVkKTtcbiAgICB9XG4gICAgdGhpcy5fZW1pdFNlbGVjdCgpO1xuICB9XG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSBzZWxlY3Rpb24gc3RhdGUgb2YgYWxsIHJvd3MgaW4gdGhlIHRhYmxlLlxuICAgKi9cbiAgdG9nZ2xlQWxsUm93c1NlbGVjdGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pdGVtU3RvcmFnZS5hcmVBbGxTZWxlY3RlZCgpKSB7XG4gICAgICBjb25zdCB1bnNlbGVjdGVkID0gdGhpcy5faXRlbVN0b3JhZ2UudW5zZWxlY3RBbGwoKTtcbiAgICAgIGlmICh1bnNlbGVjdGVkLmxlbmd0aCkgdGhpcy51bnNlbGVjdFJvd0V2ZW50LmVtaXQodW5zZWxlY3RlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IFtzZWxlY3RlZCwgZmFpbGVkXSA9IHRoaXMuX2l0ZW1TdG9yYWdlLnNlbGVjdEFsbCgpO1xuICAgICAgaWYgKHNlbGVjdGVkLmxlbmd0aCkgdGhpcy5zZWxlY3RSb3dFdmVudC5lbWl0KHNlbGVjdGVkKTtcbiAgICAgIGlmIChmYWlsZWQubGVuZ3RoKSB0aGlzLmZhaWxlZFNlbGVjdFJvd0V2ZW50LmVtaXQoZmFpbGVkKTtcbiAgICB9XG4gICAgdGhpcy5fZW1pdFNlbGVjdCgpO1xuICB9XG4gIHByaXZhdGUgX2VtaXRTZWxlY3QoKTogdm9pZCB7XG4gICAgY29uc3QgdiA9IHRoaXMuX2l0ZW1TdG9yYWdlLnZhbHVlKCk7XG4gICAgdGhpcy5zZWxlY3RlZFJvd3NDaGFuZ2VFdmVudC5lbWl0KHYpO1xuICB9XG4gIGlzQ2VsbENoZWNrYm94KGNlbGw6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgY2VsbCA9PT0gJ29iamVjdCcgJiYgJ19hcmRDaGVja2JveCcgaW4gY2VsbCAmJiAnaW5kZXgnIGluIGNlbGw7XG4gIH1cbiAgaXNIZWFkZXJDZWxsQ2hlY2tib3goY2VsbDogSGVhZGVyQ2VsbCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRhdGFDZWxsID0gY2VsbC5jZWxsKCk7XG4gICAgaWYgKGlzVGFibGVTdWJoZWFkZXIoZGF0YUNlbGwpKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHR5cGVvZiBkYXRhQ2VsbC5kYXRhU291cmNlID09PSAnc3RyaW5nJykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBkYXRhQ2VsbC5kYXRhU291cmNlLnR5cGUgPT09ICdjaGVja2JveCc7XG4gIH1cbiAgaXNIZWFkZXJDZWxsU29ydGFibGUoY2VsbDogSGVhZGVyQ2VsbCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRhdGFDZWxsID0gY2VsbC5jZWxsKCk7XG4gICAgaWYgKGlzVGFibGVTdWJoZWFkZXIoZGF0YUNlbGwpKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGRhdGFDZWxsLnNvcnRhYmxlID8/IGZhbHNlO1xuICB9XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRSb3dzQ2hhbmdlRXZlbnQgPSBvdXRwdXQ8YW55W10+KHsgYWxpYXM6ICdzZWxlY3RlZFJvd3NDaGFuZ2UnIH0pO1xuICByZWFkb25seSBmYWlsZWRTZWxlY3RSb3dFdmVudCA9IG91dHB1dDxhbnlbXT4oeyBhbGlhczogJ2ZhaWxlZFNlbGVjdFJvdycgfSk7XG4gIHJlYWRvbmx5IHNlbGVjdFJvd0V2ZW50ID0gb3V0cHV0PGFueVtdPih7IGFsaWFzOiAnc2VsZWN0Um93JyB9KTtcbiAgcmVhZG9ubHkgdW5zZWxlY3RSb3dFdmVudCA9IG91dHB1dDxhbnlbXT4oeyBhbGlhczogJ3Vuc2VsZWN0Um93JyB9KTtcbiAgcmVhZG9ubHkgY2xpY2tSb3dFdmVudCA9IG91dHB1dDxhbnk+KHsgYWxpYXM6ICdjbGlja1JvdycgfSk7XG5cbiAgLy8hIGNvbnRleHRzXG4gIGdldEhlYWRlckNvbnRleHQoY2VsbDogVGFibGVEYXRhQ29sdW1uLCBpbmRleDogbnVtYmVyKTogVGFibGVIZWFkZXJDb250ZXh0IHwgbnVsbDtcbiAgZ2V0SGVhZGVyQ29udGV4dChjZWxsOiBUYWJsZVN1YmhlYWRlciwgaW5kZXg6IG51bWJlcik6IFRhYmxlU3ViaGVhZGVyQ29udGV4dCB8IG51bGw7XG4gIGdldEhlYWRlckNvbnRleHQoY2VsbDogVGFibGVEYXRhQ29sdW1uIHwgVGFibGVTdWJoZWFkZXIsIGluZGV4OiBudW1iZXIpOiBUYWJsZUhlYWRlckNvbnRleHQgfCBUYWJsZVN1YmhlYWRlckNvbnRleHQgfCBudWxsO1xuICBnZXRIZWFkZXJDb250ZXh0KGNlbGw6IFRhYmxlRGF0YUNvbHVtbiB8IFRhYmxlU3ViaGVhZGVyLCBpbmRleDogbnVtYmVyKTogVGFibGVIZWFkZXJDb250ZXh0IHwgVGFibGVTdWJoZWFkZXJDb250ZXh0IHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBjZWxsLmhlYWRlciAhPT0gJ3N0cmluZycpIHJldHVybiBudWxsO1xuICAgIGlmIChpc1RhYmxlU3ViaGVhZGVyKGNlbGwpKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJGltcGxpY2l0OiBjZWxsLmhlYWRlcixcbiAgICAgICAgaGVhZGVyOiBjZWxsLmhlYWRlcixcbiAgICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICRpbXBsaWNpdDogY2VsbC5oZWFkZXIsXG4gICAgICBoZWFkZXI6IGNlbGwuaGVhZGVyLFxuICAgICAgc29ydGFibGU6IGNlbGwuc29ydGFibGUgPz8gZmFsc2UsXG4gICAgICBzb3J0VHlwZTogdGhpcy5faXRlbVN0b3JhZ2UuZ2V0Q29sdW1uU29ydFR5cGUoaW5kZXgpLFxuICAgICAgb25UcmlnZ2VyU29ydDogKCkgPT4gdGhpcy5faXRlbVN0b3JhZ2UudG9nZ2xlQ3VycmVudFNvcnRDb2x1bW4oaW5kZXgpLFxuICAgICAgb25UcmlnZ2VyUmVzZXRTb3J0OiAoZXZlbnQ/OiBFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLl9pdGVtU3RvcmFnZS5yZXNldFNvcnQoKTtcbiAgICAgICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuICByZWFkb25seSBnZXRIZWFkZXJDaGVja2JveENvbnRleHQgPSBjb21wdXRlZDxUYWJsZUhlYWRlckNoZWNrYm94Q29udGV4dD4oKCkgPT4ge1xuICAgIGxldCBzdGF0ZTogQ2hlY2tib3hTdGF0ZSA9IENoZWNrYm94U3RhdGUuVW5zZWxlY3RlZDtcbiAgICBpZiAodGhpcy5faXRlbVN0b3JhZ2UuaXNBbnlJdGVtU2VsZWN0ZWQoKSkge1xuICAgICAgc3RhdGUgPSBDaGVja2JveFN0YXRlLkluZGV0ZXJtaW5hdGU7XG4gICAgICBpZiAodGhpcy5faXRlbVN0b3JhZ2UuYXJlQWxsU2VsZWN0ZWQoKSkge1xuICAgICAgICBzdGF0ZSA9IENoZWNrYm94U3RhdGUuU2VsZWN0ZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAkaW1wbGljaXQ6IHN0YXRlLFxuICAgICAgc3RhdGUsXG4gICAgICBvbkNoYW5nZTogKCkgPT4ge1xuICAgICAgICB0aGlzLnRvZ2dsZUFsbFJvd3NTZWxlY3RlZCgpO1xuICAgICAgfSxcbiAgICB9O1xuICB9KTtcbiAgZ2V0Q2hlY2tib3hDb250ZXh0KGluZGV4OiBudW1iZXIpOiBUYWJsZUNoZWNrYm94Q29udGV4dCB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuX2l0ZW1TdG9yYWdlLml0ZW1zKCkuZmluZCh2ID0+IHYuaW5kZXgoKSA9PT0gaW5kZXgpITtcbiAgICBjb25zdCBzZWxlY3RlZCA9IGl0ZW0uc2VsZWN0ZWQoKTtcbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiBzZWxlY3RlZCxcbiAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZCxcbiAgICAgIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkKCksXG4gICAgICBvbkNoYW5nZTogKCkgPT4ge1xuICAgICAgICB0aGlzLm9uQ2hlY2tib3hDbGljayhpbmRleCk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiIsIjx0YWJsZVxuICBjbGFzcz1cImFyZC10YWJsZVwiXG4gIFtuZ0NsYXNzXT1cIm5nQ2xhc3NlcygpXCJcbj5cbiAgQGlmIChjYXB0aW9uKCkpIHtcbiAgICA8Y2FwdGlvbiBjbGFzcz1cImFyZC10YWJsZV9fY2FwdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFyZC10YWJsZV9fY2FwdGlvbi1jb250YWluZXJcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgI2RlZmF1bHRDYXB0aW9uVGVtcGxhdGVcbiAgICAgICAgICBsZXQtY2FwdGlvblRleHRcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGNhcHRpb25UZXh0IH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FwdGlvblRlbXBsYXRlKCkgPz8gZGVmYXVsdENhcHRpb25UZW1wbGF0ZVwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjYXB0aW9uKCkgfVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2NhcHRpb24+XG4gIH1cbiAgPHRoZWFkIGNsYXNzPVwiYXJkLXRhYmxlX19oZWFkZXJcIj5cbiAgICBAZm9yIChyb3cgb2YgaGVhZGVyQ2VsbHMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8dHIgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1yb3dcIj5cbiAgICAgICAgQGZvciAoY2VsbCBvZiByb3c7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDx0aFxuICAgICAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1jZWxsXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNlbGwuY2VsbCgpLmNlbGxDbGFzc1wiXG4gICAgICAgICAgICBbY2xhc3MuYXJkLXRhYmxlX19jaGVja2JveC1jZWxsXT1cImlzSGVhZGVyQ2VsbENoZWNrYm94KGNlbGwpXCJcbiAgICAgICAgICAgIFthdHRyLmNvbHNwYW5dPVwiY2VsbC5jb2xzcGFuKClcIlxuICAgICAgICAgICAgW2F0dHIucm93c3Bhbl09XCJjZWxsLnJvd3NwYW4oKVwiXG4gICAgICAgICAgICBbc2NvcGVdPVwiY2VsbC5jb2xzcGFuKCkgPiAxID8gJ2NvbGdyb3VwJyA6ICdjb2wnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19jZWxsLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgIFtjbGFzcy5hcmQtdGFibGVfX3NvcnRhYmxlXT1cImlzSGVhZGVyQ2VsbFNvcnRhYmxlKGNlbGwpXCJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNlbGwud2lkdGhcIlxuICAgICAgICAgICAgICBbc3R5bGUubWluV2lkdGhdPVwiY2VsbC5taW5XaWR0aFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEBpZiAoaXNIZWFkZXJDZWxsQ2hlY2tib3goY2VsbCkpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICNkZWZhdWx0SGVhZGVyQ2hlY2tib3hUZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgbGV0LXN0YXRlXG4gICAgICAgICAgICAgICAgICBsZXQtb25DaGFuZ2U9XCJvbkNoYW5nZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGFyZC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiaXNMb2FkaW5nKCkgPyAtMSA6IHRhYkluZGV4KClcIlxuICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiZ2V0SGVhZGVyQ2hlY2tib3hDb2xvcigpXCJcbiAgICAgICAgICAgICAgICAgICAgdW5zZWxlY3RlZENvbG9yPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyQ2hlY2tib3hUZW1wbGF0ZSgpID8/IGRlZmF1bHRIZWFkZXJDaGVja2JveFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRIZWFkZXJDaGVja2JveENvbnRleHQoKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAjZGVmYXVsdEhlYWRlckNlbGxUZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgbGV0LWNvbnRlbnRcbiAgICAgICAgICAgICAgICAgIGxldC1zb3J0YWJsZT1cInNvcnRhYmxlXCJcbiAgICAgICAgICAgICAgICAgIGxldC1zb3J0VHlwZT1cInNvcnRUeXBlXCJcbiAgICAgICAgICAgICAgICAgIGxldC1vblRyaWdnZXJTb3J0PVwib25UcmlnZ2VyU29ydFwiXG4gICAgICAgICAgICAgICAgICBsZXQtb25UcmlnZ2VyUmVzZXRTb3J0PVwib25UcmlnZ2VyUmVzZXRTb3J0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19oZWFkZXItdGVtcGxhdGUtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFyZC1zb3J0YWJsZV09XCJzb3J0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hcmQtbm9uc29ydGFibGVdPVwiIXNvcnRhYmxlXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzb3J0YWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1jb250ZW50LWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25UcmlnZ2VyU29ydCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLkVzYyk9XCJvblRyaWdnZXJSZXNldFNvcnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC10YWJsZV9faGVhZGVyLWNvbnRlbnRcIj57eyBjb250ZW50IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNvcnRUeXBlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1zb3J0LWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNvcnRUeXBlID09PSAnYXNjZW5kaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFyZC1pY29uPnNvdXRoPC9hcmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChzb3J0VHlwZSA9PT0gJ2Rlc2NlbmRpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXJkLWljb24+bm9ydGg8L2FyZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC10YWJsZV9faGVhZGVyLWNvbnRlbnRcIj57eyBjb250ZW50IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdldEhlYWRlclRlbXBsYXRlKGNlbGwuY2VsbCgpLmhlYWRlcikgPz8gZGVmYXVsdEhlYWRlckNlbGxUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0SGVhZGVyQ29udGV4dChjZWxsLmNlbGwoKSwgJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgfVxuICAgICAgPC90cj5cbiAgICB9XG4gICAgPHRyIGNsYXNzPVwiYXJkLXRhYmxlX19wcm9ncmVzcy1iYXItcm93XCI+XG4gICAgICA8dGhcbiAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX3Byb2dyZXNzLWJhci1jZWxsXCJcbiAgICAgICAgY29sc3Bhbj1cIjk5OTlcIlxuICAgICAgPlxuICAgICAgICBAaWYgKGlzTG9hZGluZygpKSB7XG4gICAgICAgICAgPGFyZC1wcm9ncmVzcy1iYXJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJsb2FkaW5nUHJvZ3Jlc3MoKVwiXG4gICAgICAgICAgICBbYnVmZmVyVmFsdWVdPVwibG9hZGluZ1Byb2dyZXNzQnVmZmVyKClcIlxuICAgICAgICAgICAgW21vZGVdPVwibG9hZGluZ0Jhck1vZGUoKVwiXG4gICAgICAgICAgICBbY29sb3JdPVwibG9hZGluZ0JhckNvbG9yKClcIlxuICAgICAgICAgICAgdmFyaWFudD1cInNoYXJwXCJcbiAgICAgICAgICAgIGhpZGVWYWx1ZVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cbiAgPHRib2R5IGNsYXNzPVwiYXJkLXRhYmxlX19ib2R5XCI+XG4gICAgQGZvciAocm93IG9mIGRhdGFSb3dzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgQGlmIChyb3cuaXNFbXB0eSgpKSB7XG4gICAgICAgIDx0ciBjbGFzcz1cImFyZC10YWJsZV9fZW1wdHktcm93XCI+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICBjbGFzcz1cImFyZC10YWJsZV9fZW1wdHktY2VsbFwiXG4gICAgICAgICAgICBjb2xzcGFuPVwiOTk5OVwiXG4gICAgICAgICAgPjwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHRyXG4gICAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX2JvZHktcm93XCJcbiAgICAgICAgICBbY2xhc3MuYXJkLXRhYmxlX19zZWxlY3RlZC1yb3ddPVwicm93LnNlbGVjdGVkKClcIlxuICAgICAgICAgIFtjbGFzcy5hcmQtdGFibGVfX2hpZ2hsaWdodGVkLXJvd109XCJyb3cuaGlnaGxpZ2h0ZWQoKVwiXG4gICAgICAgICAgW2NsYXNzLmFyZC10YWJsZV9fZGlzYWJsZWQtcm93XT1cInJvdy5kaXNhYmxlZCgpXCJcbiAgICAgICAgICBbY2xhc3MuYXJkLXRhYmxlX19ib2xkLXJvd109XCJyb3cuYm9sZCgpXCJcbiAgICAgICAgICAoY2xpY2spPVwib25Sb3dDbGljayhyb3csICRldmVudClcIlxuICAgICAgICAgIChtb3VzZW92ZXIpPVwib25Sb3dNb3VzZU92ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgKG1vdXNlZW50ZXIpPVwib25Sb3dNb3VzZUVudGVyKHJvdy5pbmRleCgpLCAkZXZlbnQpXCJcbiAgICAgICAgICAobW91c2VsZWF2ZSk9XCJvblJvd01vdXNlTGVhdmUocm93LmluZGV4KCksICRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgQGZvciAoY2VsbCBvZiByb3cuZGF0YSgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2VsbFRtcD5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19jZWxsLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgW3N0eWxlXT1cImdldENlbGxTdHlsZShyb3cuZGF0YUNvbHVtbnMoKVskaW5kZXhdKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKGlzQ2VsbENoZWNrYm94KGNlbGwpKSB7XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgI2RlZmF1bHRDaGVja2JveFRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIGxldC1pc0NoZWNrZWRcbiAgICAgICAgICAgICAgICAgICAgbGV0LW9uQ2hhbmdlPVwib25DaGFuZ2VcIlxuICAgICAgICAgICAgICAgICAgICBsZXQtZGlzYWJsZWQ9XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhcmQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiaXNMb2FkaW5nKCkgPyAtMSA6IHRhYkluZGV4KClcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJpc0NoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJjb2xvcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hlY2tib3hUZW1wbGF0ZSgpID8/IGRlZmF1bHRDaGVja2JveFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldENoZWNrYm94Q29udGV4dChyb3cuaW5kZXgoKSlcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAjZGVmYXVsdENlbGxUZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBsZXQtY29udGVudFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBjb250ZW50IH19XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ2V0Q2VsbFRlbXBsYXRlKHJvdy5kYXRhQ29sdW1ucygpWyRpbmRleF0udGVtcGxhdGUpID8/IGRlZmF1bHRDZWxsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNlbGwgfVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgQGlmICghcm93LmRhdGFDb2x1bW5zKClbJGluZGV4XS5pc1Jvd0hlYWRlcikge1xuICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFyZC10YWJsZV9fYm9keS1jZWxsXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJyb3cuZGF0YUNvbHVtbnMoKVskaW5kZXhdLmNlbGxDbGFzc1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFyZC10YWJsZV9fY2hlY2tib3gtY2VsbF09XCJpc0NlbGxDaGVja2JveChjZWxsKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2VsbFRtcFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX2JvZHktY2VsbCBhcmQtdGFibGVfX3Jvdy1oZWFkZXJcIlxuICAgICAgICAgICAgICAgIHNjb3BlPVwicm93XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJyb3cuZGF0YUNvbHVtbnMoKVskaW5kZXhdLmNlbGxDbGFzc1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFyZC10YWJsZV9fY2hlY2tib3gtY2VsbF09XCJpc0NlbGxDaGVja2JveChjZWxsKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2VsbFRtcFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L3RyPlxuICAgICAgfVxuICAgIH1cbiAgPC90Ym9keT5cbiAgQGlmIChjYW5EaXNwbGF5UGFnaW5hdGlvbigpKSB7XG4gICAgPHRmb290IGNsYXNzPVwiYXJkLXRhYmxlX19mb290XCI+XG4gICAgICA8dHIgY2xhc3M9XCJhcmQtdGFibGVfX2Zvb3Qtcm93XCI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19wYWdpbmF0aW9uLWNlbGxcIlxuICAgICAgICAgIGNvbHNwYW49XCI5OTk5XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhcmQtdGFibGUtcGFnaW5hdGlvblxuICAgICAgICAgICAgW29wdGlvbnNdPVwicGFnaW5hdGlvbk9wdGlvbnMoKVwiXG4gICAgICAgICAgICBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zKCkhXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwYWdpbmF0aW9uRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICBbKGl0ZW1zUGVyUGFnZSldPVwiaXRlbXNQZXJQYWdlXCJcbiAgICAgICAgICAgIFsocGFnZSldPVwicGFnZVwiXG4gICAgICAgICAgICBbYWxpZ25dPVwicGFnaW5hdGlvbkFsaWduKClcIlxuICAgICAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmcoKVwiXG4gICAgICAgICAgICBbaXRlbXNQZXJQYWdlVGV4dF09XCJpdGVtc1BlclBhZ2VUZXh0KClcIlxuICAgICAgICAgICAgW2N1cnJlbnRJdGVtc0Zvcm1hdEZuXT1cImN1cnJlbnRJdGVtc0Zvcm1hdEZuKClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvdGZvb3Q+XG4gIH1cbjwvdGFibGU+XG4iXX0=
367
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBR0wsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsWUFBWSxFQUNaLGVBQWUsRUFDZixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHM0QsT0FBTyxFQUFrQixvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdFLE9BQU8sRUFBRSxXQUFXLEVBQWMsZ0JBQWdCLEVBQXdCLE1BQU0sc0JBQXNCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGtCQUFrQixFQUFvQixNQUFNLGtCQUFrQixDQUFDO0FBQ3hFLE9BQU8sRUFDTCxtQ0FBbUMsRUFDbkMsb0NBQW9DLEVBQ3BDLDBDQUEwQyxFQUMxQyw0QkFBNEIsR0FDN0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBRUwsZUFBZSxFQU1mLHVCQUF1QixHQUl4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7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OUIsS0FBSyxFQUFFLGNBQWMsRUFBRSxDQUFDO2dCQUN4QixLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUM7WUFDM0IsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBaUJELGtCQUFrQixDQUFDLEtBQWE7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssS0FBSyxDQUFFLENBQUM7UUFDdkUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLE9BQU87WUFDTCxTQUFTLEVBQUUsUUFBUTtZQUNuQixRQUFRLEVBQUUsUUFBUTtZQUNsQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN6QixRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOytHQXBYVSxvQkFBb0Isa0JBRVgsa0JBQWtCO21HQUYzQixvQkFBb0Isc2dMQThLN0Isb0NBQW9DLDJCQUU1QixXQUFXLHNGQU1uQiwwQ0FBMEMsMkJBQ3BDLFdBQVcsK0VBR2pCLG1DQUFtQywyQkFFM0IsV0FBVyxtRUFLcUQsNEJBQTRCLHlGQ3hQeEcsK3VSQTRPQTs7NEZEckxhLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxXQUFXLGlCQUdOLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQUlsQyxNQUFNOzJCQUFDLGtCQUFrQjt5Q0F5SmxDLE9BQU87c0JBRFYsS0FBSztnQkFNRixJQUFJO3NCQURQLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgY29tcHV0ZWQsXG4gIGNvbnRlbnRDaGlsZCxcbiAgY29udGVudENoaWxkcmVuLFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIG91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xuaW1wb3J0IHsgaXNEZWZpbmVkLCBpc051bWJlciB9IGZyb20gJ3NpbXBsZS1ib29sJztcbmltcG9ydCB7IF9Gb2N1c2FibGVDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vX2ludGVybmFsL2ZvY3VzYWJsZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hlY2tib3hTdGF0ZSB9IGZyb20gJy4uL2NoZWNrYm94L2NoZWNrYm94LnR5cGVzJztcbmltcG9ydCB7IFByb2dyZXNzQmFyTW9kZSB9IGZyb20gJy4uL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBDdXJyZW50SXRlbXNGb3JtYXRGbiwgUGFnaW5hdGlvbkFsaWduIH0gZnJvbSAnLi4vdGFibGUtcGFnaW5hdGlvbi90YWJsZS1wYWdpbmF0aW9uLnR5cGVzJztcbmltcG9ydCB7IENvbXBvbmVudENvbG9yLCBTaW1wbGVDb21wb25lbnRDb2xvciB9IGZyb20gJy4uL3R5cGVzL2NvbG9ycy50eXBlcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xuaW1wb3J0IHsgQXJkVGFibGVSb3csIEhlYWRlckNlbGwsIFRhYmxlSXRlbVN0b3JhZ2UsIFRhYmxlSXRlbVN0b3JhZ2VIb3N0IH0gZnJvbSAnLi90YWJsZS1pdGVtLXN0b3JhZ2UnO1xuaW1wb3J0IHsgQVJEX1RBQkxFX0RFRkFVTFRTLCBBcmRUYWJsZURlZmF1bHRzIH0gZnJvbSAnLi90YWJsZS5kZWZhdWx0cyc7XG5pbXBvcnQge1xuICBBcmRpdW1UYWJsZUNhcHRpb25UZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkaXVtVGFibGVDaGVja2JveFRlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRpdW1UYWJsZUhlYWRlckNoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZGl1bVRhYmxlVGVtcGxhdGVEaXJlY3RpdmUsXG59IGZyb20gJy4vdGFibGUuZGlyZWN0aXZlcyc7XG5pbXBvcnQge1xuICBUYWJsZUFsaWduVHlwZSxcbiAgVGFibGVBcHBlYXJhbmNlLFxuICBUYWJsZUNhcHRpb25Db250ZXh0LFxuICBUYWJsZUNoZWNrYm94Q29udGV4dCxcbiAgVGFibGVEYXRhQ29sdW1uLFxuICBUYWJsZUhlYWRlckNoZWNrYm94Q29udGV4dCxcbiAgVGFibGVIZWFkZXJDb250ZXh0LFxuICBUYWJsZVBhZ2luYXRpb25TdHJhdGVneSxcbiAgVGFibGVTdWJoZWFkZXIsXG4gIFRhYmxlU3ViaGVhZGVyQ29udGV4dCxcbiAgVGFibGVWYXJpYW50LFxufSBmcm9tICcuL3RhYmxlLnR5cGVzJztcbmltcG9ydCB7IGlzVGFibGVTdWJoZWFkZXIgfSBmcm9tICcuL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJkLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bVRhYmxlQ29tcG9uZW50IGV4dGVuZHMgX0ZvY3VzYWJsZUNvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBUYWJsZUl0ZW1TdG9yYWdlSG9zdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IEFyZFRhYmxlRGVmYXVsdHM7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQVJEX1RBQkxFX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkVGFibGVEZWZhdWx0cykge1xuICAgIHN1cGVyKGRlZmF1bHRzKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2l0ZW1TdG9yYWdlID0gbmV3IFRhYmxlSXRlbVN0b3JhZ2UodGhpcyk7XG5cbiAgcmVhZG9ubHkgcm93RGlzYWJsZWRGcm9tID0gaW5wdXQ8c3RyaW5nPih0aGlzLl9ERUZBVUxUUy5yb3dEaXNhYmxlZEZyb20pO1xuICByZWFkb25seSByb3dCb2xkRnJvbSA9IGlucHV0PHN0cmluZz4odGhpcy5fREVGQVVMVFMucm93Qm9sZEZyb20pO1xuICByZWFkb25seSBpbnZlcnRSb3dEaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuaW52ZXJ0Um93RGlzYWJsZWQsIHtcbiAgICB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpLFxuICB9KTtcbiAgcmVhZG9ubHkgaW52ZXJ0Um93Qm9sZCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuaW52ZXJ0Um93Qm9sZCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGFibGVSb3dzID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5zZWxlY3RhYmxlUm93cywgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuICByZWFkb25seSBtYXhTZWxlY3RlZEl0ZW1zID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPiwgYW55Pih0aGlzLl9ERUZBVUxUUy5tYXhTZWxlY3RlZEl0ZW1zLCB7XG4gICAgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIHRoaXMuX0RFRkFVTFRTLm1heFNlbGVjdGVkSXRlbXMpLFxuICB9KTtcblxuICByZWFkb25seSBjbGlja2FibGVSb3dzID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jbGlja2FibGVSb3dzLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG5cbiAgcmVhZG9ubHkgY2FwdGlvbiA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHRoaXMuX0RFRkFVTFRTLmNhcHRpb24pO1xuXG4gIHJlYWRvbmx5IGlzTG9hZGluZyA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuaXNMb2FkaW5nLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG4gIHJlYWRvbmx5IGxvYWRpbmdQcm9ncmVzcyA9IGlucHV0PG51bWJlciwgYW55Pih0aGlzLl9ERUZBVUxUUy5sb2FkaW5nUHJvZ3Jlc3MsIHtcbiAgICB0cmFuc2Zvcm06IHYgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgdGhpcy5fREVGQVVMVFMubG9hZGluZ1Byb2dyZXNzKSxcbiAgfSk7XG4gIHJlYWRvbmx5IGxvYWRpbmdQcm9ncmVzc0J1ZmZlciA9IGlucHV0PG51bWJlciwgYW55Pih0aGlzLl9ERUZBVUxUUy5sb2FkaW5nUHJvZ3Jlc3NCdWZmZXIsIHtcbiAgICB0cmFuc2Zvcm06IHYgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgdGhpcy5fREVGQVVMVFMubG9hZGluZ1Byb2dyZXNzQnVmZmVyKSxcbiAgfSk7XG4gIHJlYWRvbmx5IGxvYWRpbmdCYXJNb2RlID0gaW5wdXQ8UHJvZ3Jlc3NCYXJNb2RlPih0aGlzLl9ERUZBVUxUUy5sb2FkaW5nQmFyTW9kZSk7XG4gIHJlYWRvbmx5IGxvYWRpbmdCYXJDb2xvciA9IGlucHV0PENvbXBvbmVudENvbG9yPih0aGlzLl9ERUZBVUxUUy5sb2FkaW5nQmFyQ29sb3IpO1xuXG4gIC8vISBhcHBlYXJhbmNlXG4gIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBpbnB1dDxUYWJsZUFwcGVhcmFuY2U+KHRoaXMuX0RFRkFVTFRTLmFwcGVhcmFuY2UpO1xuICByZWFkb25seSB2YXJpYW50ID0gaW5wdXQ8VGFibGVWYXJpYW50Pih0aGlzLl9ERUZBVUxUUy52YXJpYW50KTtcbiAgcmVhZG9ubHkgY29sb3IgPSBpbnB1dDxDb21wb25lbnRDb2xvcj4odGhpcy5fREVGQVVMVFMuY29sb3IpO1xuICByZWFkb25seSBhbGlnbiA9IGlucHV0PFRhYmxlQWxpZ25UeXBlPih0aGlzLl9ERUZBVUxUUy5hbGlnbik7XG4gIHJlYWRvbmx5IGhlYWRlckFsaWduID0gaW5wdXQ8VGFibGVBbGlnblR5cGU+KHRoaXMuX0RFRkFVTFRTLmhlYWRlckFsaWduKTtcblxuICByZWFkb25seSBjb21wYWN0ID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jb21wYWN0LCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG4gIHJlYWRvbmx5IHplYnJhID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy56ZWJyYSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuICByZWFkb25seSBzdGlja3lIZWFkZXIgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnN0aWNreUhlYWRlciwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgW1xuICAgICAgYGFyZC1hcHBlYXJhbmNlLSR7dGhpcy5hcHBlYXJhbmNlKCl9YCxcbiAgICAgIGBhcmQtdmFyaWFudC0ke3RoaXMudmFyaWFudCgpfWAsXG4gICAgICBgYXJkLWNvbG9yLSR7dGhpcy5jb2xvcigpfWAsXG4gICAgICBgYXJkLWFsaWduLSR7dGhpcy5hbGlnbigpfWAsXG4gICAgICBgYXJkLWhlYWRlci1hbGlnbi0ke3RoaXMuaGVhZGVyQWxpZ24oKX1gLFxuICAgICAgdGhpcy5jb21wYWN0KCkgPyAnYXJkLWNvbXBhY3QnIDogJycsXG4gICAgICB0aGlzLnplYnJhKCkgPyAnYXJkLXplYnJhLXRhYmxlJyA6ICcnLFxuICAgICAgdGhpcy5zZWxlY3RhYmxlUm93cygpID8gJ2FyZC1zZWxlY3RhYmxlLXJvd3MnIDogJycsXG4gICAgICB0aGlzLnN0aWNreUhlYWRlcigpID8gJ2FyZC1zdGlja3ktaGVhZGVyJyA6ICcnLFxuICAgICAgdGhpcy5pc0xvYWRpbmcoKSA/ICdhcmQtdGFibGUtbG9hZGluZycgOiAnJyxcbiAgICBdLmpvaW4oJyAnKVxuICApO1xuXG4gIC8vISBwYWdpbmF0aW9uXG4gIHJlYWRvbmx5IHBhZ2luYXRlZCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMucGFnaW5hdGVkLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG4gIHJlYWRvbmx5IHBhZ2luYXRpb25TdHJhdGVneSA9IGlucHV0PFRhYmxlUGFnaW5hdGlvblN0cmF0ZWd5Pih0aGlzLl9ERUZBVUxUUy5wYWdpbmF0aW9uU3RyYXRlZ3kpO1xuICByZWFkb25seSBwYWdpbmF0aW9uT3B0aW9ucyA9IGlucHV0PFxuICAgIG51bWJlcltdIHwgeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXSxcbiAgICBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W11cbiAgPih0aGlzLl9ERUZBVUxUUy5wYWdpbmF0aW9uT3B0aW9ucywge1xuICAgIHRyYW5zZm9ybTogdiA9PiB7XG4gICAgICByZXR1cm4gdi5maWx0ZXIoZWwgPT4ge1xuICAgICAgICBjb25zdCBvcHQgPSBpc051bWJlcihlbCkgPyBlbCA6IGVsLnZhbHVlO1xuICAgICAgICBpZiAob3B0IDw9IDAgfHwgb3B0ICUgMSAhPT0gMCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBBUkQtTkY1MDUyOiBlYWNoIGl0ZW0gb2YgPGFyZC10YWJsZT4ncyBbcGFnaW5hdGlvbk9wdGlvbnNdIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLiBUaGUgXCIke29wdH1cIiBvcHRpb24gd2lsbCBiZSBpZ25vcmVkLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pIGFzIG51bWJlcltdIHwgeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXTtcbiAgICB9LFxuICB9KTtcbiAgcmVhZG9ubHkgdG90YWxJdGVtcyA9IGlucHV0PE51bGxhYmxlPG51bWJlcj4sIGFueT4odGhpcy5fREVGQVVMVFMudG90YWxJdGVtcywge1xuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy50b3RhbEl0ZW1zKSxcbiAgfSk7XG4gIHJlYWRvbmx5IHBhZ2luYXRpb25Db2xvciA9IGlucHV0PENvbXBvbmVudENvbG9yPih0aGlzLl9ERUZBVUxUUy5wYWdpbmF0aW9uQ29sb3IpO1xuICByZWFkb25seSBwYWdpbmF0aW9uQWxpZ24gPSBpbnB1dDxQYWdpbmF0aW9uQWxpZ24+KHRoaXMuX0RFRkFVTFRTLnBhZ2luYXRpb25BbGlnbik7XG4gIHJlYWRvbmx5IGl0ZW1zUGVyUGFnZVRleHQgPSBpbnB1dDxzdHJpbmc+KHRoaXMuX0RFRkFVTFRTLml0ZW1zUGVyUGFnZVRleHQpO1xuICByZWFkb25seSBjdXJyZW50SXRlbXNGb3JtYXRGbiA9IGlucHV0PEN1cnJlbnRJdGVtc0Zvcm1hdEZuPih0aGlzLl9ERUZBVUxUUy5jdXJyZW50SXRlbXNGb3JtYXRGbik7XG5cbiAgcmVhZG9ubHkgcGFnZUZpbGxSZW1haW5pbmcgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnBhZ2VGaWxsUmVtYWluaW5nLCB7XG4gICAgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSxcbiAgfSk7XG4gIHJlYWRvbmx5IHBhZ2luYXRpb25EaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMucGFnaW5hdGlvbkRpc2FibGVkLCB7XG4gICAgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSxcbiAgfSk7XG4gIHJlYWRvbmx5IHVzZUZpcnN0TGFzdEJ1dHRvbnMgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnVzZUZpcnN0TGFzdEJ1dHRvbnMsIHtcbiAgICB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpLFxuICB9KTtcblxuICByZWFkb25seSBpdGVtc1BlclBhZ2UgPSBtb2RlbDxudW1iZXI+KHRoaXMuX0RFRkFVTFRTLml0ZW1zUGVyUGFnZSk7XG4gIHJlYWRvbmx5IHBhZ2UgPSBtb2RlbDxudW1iZXI+KHRoaXMuX0RFRkFVTFRTLnBhZ2UpO1xuXG4gIHJlYWRvbmx5IGlzRGVmaW5lZFRvdGFsSXRlbXMgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLnBhZ2luYXRpb25TdHJhdGVneSgpICE9PSBUYWJsZVBhZ2luYXRpb25TdHJhdGVneS5Ob29wIHx8IGlzRGVmaW5lZCh0aGlzLnRvdGFsSXRlbXMoKSlcbiAgKTtcbiAgcmVhZG9ubHkgY2FuRGlzcGxheVBhZ2luYXRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBhZ2luYXRlZCgpICYmIHRoaXMuaXNEZWZpbmVkVG90YWxJdGVtcygpKTtcblxuICAvLyEgcHJpbnQgZXJyb3JzIGlmIG5lZWRlZFxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2l0ZW1zUGVyUGFnZSddKSB7XG4gICAgICBjb25zdCBpcHAgPSBjaGFuZ2VzWydpdGVtc1BlclBhZ2UnXS5jdXJyZW50VmFsdWU7XG4gICAgICBjb25zdCBvcHRpb25zID1cbiAgICAgICAgKGNoYW5nZXNbJ3BhZ2luYXRpb25PcHRpb25zJ10/LmN1cnJlbnRWYWx1ZSBhcyBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10pIHx8IHRoaXMucGFnaW5hdGlvbk9wdGlvbnMoKTtcbiAgICAgIGlmICghb3B0aW9ucy5maW5kKHYgPT4gKHR5cGVvZiB2ID09PSAnbnVtYmVyJyA/IHYgPT09IGlwcCA6IHYudmFsdWUgPT09IGlwcCkpKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEFSRC1ORjUwNTE6IHZhbHVlIG9mIFwiJHtpcHB9XCIgaW4gPGFyZC10YWJsZT4ncyBbaXRlbXNQZXJQYWdlXSBkb2VzIG5vdCBhcHBlYXIgaW4gW3BhZ2luYXRpb25PcHRpb25zXSBhcnJheSBbJHtvcHRpb25zXG4gICAgICAgICAgICAgIC5tYXAodiA9PiAodHlwZW9mIHYgPT09ICdudW1iZXInID8gdiA6IHYudmFsdWUpKVxuICAgICAgICAgICAgICAuam9pbignLCAnKX1dYFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3BhZ2UnXSkge1xuICAgICAgY29uc3QgcGFnZSA9IGNoYW5nZXNbJ3BhZ2UnXS5jdXJyZW50VmFsdWUgYXMgbnVtYmVyO1xuICAgICAgaWYgKHBhZ2UgPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBUkQtRlQ1MDUzYTogPGFyZC10YWJsZT4ncyBbcGFnZV0gdXNlcyAxLWluZGV4ZWQgbnVtYmVyaW5nIHN5c3RlbS4gVGhlIHZhbHVlIDAgaXMgbm90IGFjY2VwdGVkLmApO1xuICAgICAgfSBlbHNlIGlmIChwYWdlIDwgMCB8fCBwYWdlICUgMSAhPT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVDUwNTNiOiB2YWx1ZSBvZiA8YXJkLXRhYmxlPidzIFtwYWdlXSBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciwgZ290IFwiJHtwYWdlfVwiLmApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vISBpdGVtIHN0b3JhZ2UgZ2V0dGVyc1xuICByZWFkb25seSBoZWFkZXJDZWxscyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2l0ZW1TdG9yYWdlLmhlYWRlckNlbGxzKCkpO1xuXG4gIHJlYWRvbmx5IGRhdGFSb3dzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1zOiBBcmRUYWJsZVJvd1tdID0gdGhpcy5faXRlbVN0b3JhZ2UucGFnaW5hdGVkSXRlbXMoKTtcblxuICAgIGlmICghdGhpcy5wYWdlRmlsbFJlbWFpbmluZygpKSByZXR1cm4gaXRlbXM7XG4gICAgaWYgKCF0aGlzLmlzRGVmaW5lZFRvdGFsSXRlbXMoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBUkQtRlQ1MDUwOiA8YXJkLXRhYmxlPiByZXF1aXJlcyBbdG90YWxJdGVtc10gdG8gYmUgZGVmaW5lZCB3aGVuIHVzaW5nIFwic2xpY2VcIiBwYWdpbmF0aW9uIHN0cmF0ZWd5LicpO1xuICAgIH1cbiAgICBpZiAodGhpcy5wYWdlKCkgPT09IDEpIHJldHVybiBpdGVtcztcblxuICAgIGNvbnN0IGlwcCA9IHRoaXMuaXRlbXNQZXJQYWdlKCk7XG4gICAgZm9yIChsZXQgaSA9IGl0ZW1zLmxlbmd0aDsgaSA8IGlwcDsgaSsrKSB7XG4gICAgICBpdGVtcy5wdXNoKEFyZFRhYmxlUm93Lm5ld0VtcHR5Q2VsbChpKSk7XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfSk7XG5cbiAgLy8hIGNvbHVtbnMvZGF0YSBzZXR0ZXJzXG4gIEBJbnB1dCgpXG4gIHNldCBjb2x1bW5zKHY6IChUYWJsZURhdGFDb2x1bW4gfCBUYWJsZVN1YmhlYWRlcilbXSkge1xuICAgIHRoaXMuX2l0ZW1TdG9yYWdlLnNldENvbHVtbnModik7XG4gIH1cbiAgcHJpdmF0ZSBfZGF0YTogYW55W10gPSBbXTtcbiAgQElucHV0KClcbiAgc2V0IGRhdGEodjogYW55W10pIHtcbiAgICB0aGlzLl9kYXRhID0gdjtcbiAgICB0aGlzLl9pdGVtU3RvcmFnZS5zZXRJdGVtcyh2KTtcbiAgfVxuICBnZXQgZGF0YSgpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cblxuICByZWFkb25seSB0cmVhdERhdGFTb3VyY2VBc1N0cmluZyA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMudHJlYXREYXRhU291cmNlQXNTdHJpbmcsIHtcbiAgICB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpLFxuICB9KTtcblxuICAvLyEgdGVtcGxhdGVzXG4gIHJlYWRvbmx5IGNoZWNrYm94VGVtcGxhdGUgPSBjb250ZW50Q2hpbGQ8QXJkaXVtVGFibGVDaGVja2JveFRlbXBsYXRlRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZjxUYWJsZUNoZWNrYm94Q29udGV4dD4+KFxuICAgIEFyZGl1bVRhYmxlQ2hlY2tib3hUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICB7XG4gICAgICByZWFkOiBUZW1wbGF0ZVJlZjxUYWJsZUNoZWNrYm94Q29udGV4dD4sXG4gICAgfVxuICApO1xuICByZWFkb25seSBoZWFkZXJDaGVja2JveFRlbXBsYXRlID0gY29udGVudENoaWxkPFxuICAgIEFyZGl1bVRhYmxlSGVhZGVyQ2hlY2tib3hUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBUZW1wbGF0ZVJlZjxUYWJsZUhlYWRlckNoZWNrYm94Q29udGV4dD5cbiAgPihBcmRpdW1UYWJsZUhlYWRlckNoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZjxUYWJsZUhlYWRlckNoZWNrYm94Q29udGV4dD4sXG4gIH0pO1xuICByZWFkb25seSBjYXB0aW9uVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQ8QXJkaXVtVGFibGVDYXB0aW9uVGVtcGxhdGVEaXJlY3RpdmUsIFRlbXBsYXRlUmVmPFRhYmxlQ2FwdGlvbkNvbnRleHQ+PihcbiAgICBBcmRpdW1UYWJsZUNhcHRpb25UZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICB7XG4gICAgICByZWFkOiBUZW1wbGF0ZVJlZjxUYWJsZUNhcHRpb25Db250ZXh0PixcbiAgICB9XG4gICk7XG5cbiAgcHJpdmF0ZSBfaXRlbVRlbXBsYXRlczogUmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4gPSB7fTtcbiAgcmVhZG9ubHkgdGVtcGxhdGVDaGlsZHJlbiA9IGNvbnRlbnRDaGlsZHJlbjxBcmRpdW1UYWJsZVRlbXBsYXRlRGlyZWN0aXZlPihBcmRpdW1UYWJsZVRlbXBsYXRlRGlyZWN0aXZlKTtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgdGVtcGxhdGVzID0gQXJyYXkuZnJvbSh0aGlzLnRlbXBsYXRlQ2hpbGRyZW4oKSk7XG4gICAgZm9yIChjb25zdCBpbnN0YW5jZSBvZiB0ZW1wbGF0ZXMpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBpbnN0YW5jZS5uYW1lKCk7XG4gICAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihuZXcgRXJyb3IoJ0FSRC1GVDUwNTQ6IFthcmQtdGFibGUtdG1wXSByZXF1aXJlcyBhIHZhbHVlIHRvIGJlIHNwZWNpZmllZC4nKSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5faXRlbVRlbXBsYXRlc1tuYW1lXSA9IGluc3RhbmNlLnRlbXBsYXRlO1xuICAgIH1cbiAgfVxuXG4gIGdldEhlYWRlclRlbXBsYXRlKHRtcDogc3RyaW5nIHwgeyB0ZW1wbGF0ZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB9KTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB0bXAgPT09ICdzdHJpbmcnKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLmdldENlbGxUZW1wbGF0ZSh0bXAudGVtcGxhdGUpO1xuICB9XG4gIGdldEhlYWRlckNoZWNrYm94Q29sb3IoKTogU2ltcGxlQ29tcG9uZW50Q29sb3Ige1xuICAgIGlmICh0aGlzLmFwcGVhcmFuY2UoKSA9PT0gVGFibGVBcHBlYXJhbmNlLlN0cm9uZykgcmV0dXJuIFNpbXBsZUNvbXBvbmVudENvbG9yLkN1cnJlbnRDb2xvcjtcbiAgICByZXR1cm4gdGhpcy5jb2xvcigpO1xuICB9XG4gIGdldENlbGxUZW1wbGF0ZSh0bXA/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgLy9yZXR1cm4gdW5kZWZpbmVkXG4gICAgaWYgKCF0bXApIHJldHVybiB1bmRlZmluZWQ7XG4gICAgLy9yZXR1cm4gdGVtcGxhdGUsIGlmIGl0IGlzIG9uZVxuICAgIGlmICh0bXAgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikgcmV0dXJuIHRtcDtcbiAgICAvL2NoZWNrIGlmIHRoZSBuYW1lIGNhbiBiZSBmb3VuZFxuICAgIGlmICghKHRtcCBpbiB0aGlzLl9pdGVtVGVtcGxhdGVzKSkge1xuICAgICAgY29uc29sZS5lcnJvcihuZXcgRXJyb3IoYEFSRC1ORjUwNTU6IDxhcmQtdGFibGU+IGVycm9yOiBjYW5ub3QgZmluZCB0ZW1wbGF0ZSBuYW1lZCBcIiR7dG1wfVwiYCkpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy9yZXR1cm4gdGhlIHRlbXBsYXRlXG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1UZW1wbGF0ZXNbdG1wXTtcbiAgfVxuICBnZXRDZWxsU3R5bGUoY2VsbDogVGFibGVEYXRhQ29sdW1uIHwgVGFibGVTdWJoZWFkZXIpOiBzdHJpbmcge1xuICAgIGlmIChpc1RhYmxlU3ViaGVhZGVyKGNlbGwpKSByZXR1cm4gJ3dpZHRoOnVuc2V0O21pbi13aWR0aDp1bnNldCc7XG4gICAgY29uc3Qgd2lkdGggPSB0eXBlb2YgY2VsbC53aWR0aCA9PT0gJ251bWJlcicgPyBgJHtjZWxsLndpZHRofXB4YCA6IGNlbGwud2lkdGg7XG4gICAgY29uc3QgbWluV2lkdGggPSB0eXBlb2YgY2VsbC5taW5XaWR0aCA9PT0gJ251bWJlcicgPyBgJHtjZWxsLm1pbldpZHRofXB4YCA6IGNlbGwubWluV2lkdGg7XG4gICAgcmV0dXJuIFtgd2lkdGg6JHt3aWR0aCA/PyAndW5zZXQnfWAsIGBtaW4td2lkdGg6JHttaW5XaWR0aCA/PyAndW5zZXQnfWBdLmpvaW4oJzsnKTtcbiAgfVxuXG4gIC8vISBjbGljayAmIGhvdmVyIGhhbmRsZXJzXG4gIG9uQ2hlY2tib3hDbGljayhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVSb3dTZWxlY3RlZChpbmRleCk7XG4gIH1cbiAgb25Sb3dDbGljayhyb3c6IEFyZFRhYmxlUm93LCBldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNsaWNrYWJsZVJvd3MoKSkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLmNsaWNrUm93RXZlbnQuZW1pdChyb3cuaXRlbURhdGEoKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnNlbGVjdGFibGVSb3dzKCkpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy50b2dnbGVSb3dTZWxlY3RlZChyb3cuaW5kZXgoKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG4gIG9uUm93TW91c2VPdmVyKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbiAgb25Sb3dNb3VzZUVudGVyKGluZGV4OiBudW1iZXIsIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGFibGVSb3dzKCkgJiYgIXRoaXMuY2xpY2thYmxlUm93cygpKSByZXR1cm47XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5faXRlbVN0b3JhZ2UuaGlnaGxpZ2h0U2luZ2xlSXRlbShpbmRleCk7XG4gIH1cbiAgb25Sb3dNb3VzZUxlYXZlKGluZGV4OiBudW1iZXIsIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGFibGVSb3dzKCkgJiYgIXRoaXMuY2xpY2thYmxlUm93cygpKSByZXR1cm47XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5faXRlbVN0b3JhZ2UudW5oaWdobGlnaHRJdGVtKGluZGV4KTtcbiAgfVxuXG4gIC8vISBzZWxlY3QgaGFuZGxlcnNcbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIHNlbGVjdGlvbiBzdGF0ZSBvZiBhIHJvdyBpbiB0aGUgdGFibGUuXG4gICAqIEBwYXJhbSBzZWxlY3RlZCBhIGJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyBpZiB0aGUgcm93IGlzIGN1cnJlbnRseSBzZWxlY3RlZC5cbiAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCBvZiB0aGUgcm93IGluIHRoZSB0YWJsZS5cbiAgICovXG4gIHRvZ2dsZVJvd1NlbGVjdGVkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faXRlbVN0b3JhZ2UuaXNJdGVtU2VsZWN0ZWQoaW5kZXgpKSB7XG4gICAgICBjb25zdCB1bnNlbGVjdGVkID0gdGhpcy5faXRlbVN0b3JhZ2UudW5zZWxlY3RJdGVtKGluZGV4KTtcbiAgICAgIGlmICh1bnNlbGVjdGVkLmxlbmd0aCkgdGhpcy51bnNlbGVjdFJvd0V2ZW50LmVtaXQodW5zZWxlY3RlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IFtzZWxlY3RlZCwgZmFpbGVkXSA9IHRoaXMuX2l0ZW1TdG9yYWdlLnNlbGVjdEl0ZW0oaW5kZXgpO1xuICAgICAgaWYgKHNlbGVjdGVkLmxlbmd0aCkgdGhpcy5zZWxlY3RSb3dFdmVudC5lbWl0KHNlbGVjdGVkKTtcbiAgICAgIGlmIChmYWlsZWQubGVuZ3RoKSB0aGlzLmZhaWxlZFNlbGVjdFJvd0V2ZW50LmVtaXQoZmFpbGVkKTtcbiAgICB9XG4gICAgdGhpcy5fZW1pdFNlbGVjdCgpO1xuICB9XG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSBzZWxlY3Rpb24gc3RhdGUgb2YgYWxsIHJvd3MgaW4gdGhlIHRhYmxlLlxuICAgKi9cbiAgdG9nZ2xlQWxsUm93c1NlbGVjdGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pdGVtU3RvcmFnZS5hcmVBbGxTZWxlY3RlZCgpKSB7XG4gICAgICBjb25zdCB1bnNlbGVjdGVkID0gdGhpcy5faXRlbVN0b3JhZ2UudW5zZWxlY3RBbGwoKTtcbiAgICAgIGlmICh1bnNlbGVjdGVkLmxlbmd0aCkgdGhpcy51bnNlbGVjdFJvd0V2ZW50LmVtaXQodW5zZWxlY3RlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IFtzZWxlY3RlZCwgZmFpbGVkXSA9IHRoaXMuX2l0ZW1TdG9yYWdlLnNlbGVjdEFsbCgpO1xuICAgICAgaWYgKHNlbGVjdGVkLmxlbmd0aCkgdGhpcy5zZWxlY3RSb3dFdmVudC5lbWl0KHNlbGVjdGVkKTtcbiAgICAgIGlmIChmYWlsZWQubGVuZ3RoKSB0aGlzLmZhaWxlZFNlbGVjdFJvd0V2ZW50LmVtaXQoZmFpbGVkKTtcbiAgICB9XG4gICAgdGhpcy5fZW1pdFNlbGVjdCgpO1xuICB9XG4gIHByaXZhdGUgX2VtaXRTZWxlY3QoKTogdm9pZCB7XG4gICAgY29uc3QgdiA9IHRoaXMuX2l0ZW1TdG9yYWdlLnZhbHVlKCk7XG4gICAgdGhpcy5zZWxlY3RlZFJvd3NDaGFuZ2VFdmVudC5lbWl0KHYpO1xuICB9XG4gIGlzQ2VsbENoZWNrYm94KGNlbGw6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgY2VsbCA9PT0gJ29iamVjdCcgJiYgJ19hcmRDaGVja2JveCcgaW4gY2VsbCAmJiAnaW5kZXgnIGluIGNlbGw7XG4gIH1cbiAgaXNIZWFkZXJDZWxsQ2hlY2tib3goY2VsbDogSGVhZGVyQ2VsbCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRhdGFDZWxsID0gY2VsbC5jZWxsKCk7XG4gICAgaWYgKGlzVGFibGVTdWJoZWFkZXIoZGF0YUNlbGwpKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHR5cGVvZiBkYXRhQ2VsbC5kYXRhU291cmNlID09PSAnc3RyaW5nJykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBkYXRhQ2VsbC5kYXRhU291cmNlLnR5cGUgPT09ICdjaGVja2JveCc7XG4gIH1cbiAgaXNIZWFkZXJDZWxsU29ydGFibGUoY2VsbDogSGVhZGVyQ2VsbCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRhdGFDZWxsID0gY2VsbC5jZWxsKCk7XG4gICAgaWYgKGlzVGFibGVTdWJoZWFkZXIoZGF0YUNlbGwpKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGRhdGFDZWxsLnNvcnRhYmxlID8/IGZhbHNlO1xuICB9XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRSb3dzQ2hhbmdlRXZlbnQgPSBvdXRwdXQ8YW55W10+KHsgYWxpYXM6ICdzZWxlY3RlZFJvd3NDaGFuZ2UnIH0pO1xuICByZWFkb25seSBmYWlsZWRTZWxlY3RSb3dFdmVudCA9IG91dHB1dDxhbnlbXT4oeyBhbGlhczogJ2ZhaWxlZFNlbGVjdFJvdycgfSk7XG4gIHJlYWRvbmx5IHNlbGVjdFJvd0V2ZW50ID0gb3V0cHV0PGFueVtdPih7IGFsaWFzOiAnc2VsZWN0Um93JyB9KTtcbiAgcmVhZG9ubHkgdW5zZWxlY3RSb3dFdmVudCA9IG91dHB1dDxhbnlbXT4oeyBhbGlhczogJ3Vuc2VsZWN0Um93JyB9KTtcbiAgcmVhZG9ubHkgY2xpY2tSb3dFdmVudCA9IG91dHB1dDxhbnk+KHsgYWxpYXM6ICdjbGlja1JvdycgfSk7XG5cbiAgLy8hIGNvbnRleHRzXG4gIGdldEhlYWRlckNvbnRleHQoY2VsbDogVGFibGVEYXRhQ29sdW1uLCBpbmRleDogbnVtYmVyKTogVGFibGVIZWFkZXJDb250ZXh0IHwgbnVsbDtcbiAgZ2V0SGVhZGVyQ29udGV4dChjZWxsOiBUYWJsZVN1YmhlYWRlciwgaW5kZXg6IG51bWJlcik6IFRhYmxlU3ViaGVhZGVyQ29udGV4dCB8IG51bGw7XG4gIGdldEhlYWRlckNvbnRleHQoY2VsbDogVGFibGVEYXRhQ29sdW1uIHwgVGFibGVTdWJoZWFkZXIsIGluZGV4OiBudW1iZXIpOiBUYWJsZUhlYWRlckNvbnRleHQgfCBUYWJsZVN1YmhlYWRlckNvbnRleHQgfCBudWxsO1xuICBnZXRIZWFkZXJDb250ZXh0KGNlbGw6IFRhYmxlRGF0YUNvbHVtbiB8IFRhYmxlU3ViaGVhZGVyLCBpbmRleDogbnVtYmVyKTogVGFibGVIZWFkZXJDb250ZXh0IHwgVGFibGVTdWJoZWFkZXJDb250ZXh0IHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBjZWxsLmhlYWRlciAhPT0gJ3N0cmluZycpIHJldHVybiBudWxsO1xuICAgIGlmIChpc1RhYmxlU3ViaGVhZGVyKGNlbGwpKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJGltcGxpY2l0OiBjZWxsLmhlYWRlcixcbiAgICAgICAgaGVhZGVyOiBjZWxsLmhlYWRlcixcbiAgICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICRpbXBsaWNpdDogY2VsbC5oZWFkZXIsXG4gICAgICBoZWFkZXI6IGNlbGwuaGVhZGVyLFxuICAgICAgc29ydGFibGU6IGNlbGwuc29ydGFibGUgPz8gZmFsc2UsXG4gICAgICBzb3J0VHlwZTogdGhpcy5faXRlbVN0b3JhZ2UuZ2V0Q29sdW1uU29ydFR5cGUoaW5kZXgpLFxuICAgICAgb25UcmlnZ2VyU29ydDogKCkgPT4gdGhpcy5faXRlbVN0b3JhZ2UudG9nZ2xlQ3VycmVudFNvcnRDb2x1bW4oaW5kZXgpLFxuICAgICAgb25UcmlnZ2VyUmVzZXRTb3J0OiAoZXZlbnQ/OiBFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLl9pdGVtU3RvcmFnZS5yZXNldFNvcnQoKTtcbiAgICAgICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuICByZWFkb25seSBnZXRIZWFkZXJDaGVja2JveENvbnRleHQgPSBjb21wdXRlZDxUYWJsZUhlYWRlckNoZWNrYm94Q29udGV4dD4oKCkgPT4ge1xuICAgIGxldCBzdGF0ZTogQ2hlY2tib3hTdGF0ZSA9IENoZWNrYm94U3RhdGUuVW5zZWxlY3RlZDtcbiAgICBpZiAodGhpcy5faXRlbVN0b3JhZ2UuaXNBbnlJdGVtU2VsZWN0ZWQoKSkge1xuICAgICAgc3RhdGUgPSBDaGVja2JveFN0YXRlLkluZGV0ZXJtaW5hdGU7XG4gICAgICBpZiAodGhpcy5faXRlbVN0b3JhZ2UuYXJlQWxsU2VsZWN0ZWQoKSkge1xuICAgICAgICBzdGF0ZSA9IENoZWNrYm94U3RhdGUuU2VsZWN0ZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAkaW1wbGljaXQ6IHN0YXRlLFxuICAgICAgc3RhdGUsXG4gICAgICBvbkNoYW5nZTogKCkgPT4ge1xuICAgICAgICB0aGlzLnRvZ2dsZUFsbFJvd3NTZWxlY3RlZCgpO1xuICAgICAgfSxcbiAgICB9O1xuICB9KTtcbiAgZ2V0Q2hlY2tib3hDb250ZXh0KGluZGV4OiBudW1iZXIpOiBUYWJsZUNoZWNrYm94Q29udGV4dCB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuX2l0ZW1TdG9yYWdlLml0ZW1zKCkuZmluZCh2ID0+IHYuaW5kZXgoKSA9PT0gaW5kZXgpITtcbiAgICBjb25zdCBzZWxlY3RlZCA9IGl0ZW0uc2VsZWN0ZWQoKTtcbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiBzZWxlY3RlZCxcbiAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZCxcbiAgICAgIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkKCksXG4gICAgICBvbkNoYW5nZTogKCkgPT4ge1xuICAgICAgICB0aGlzLm9uQ2hlY2tib3hDbGljayhpbmRleCk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiIsIjx0YWJsZVxuICBjbGFzcz1cImFyZC10YWJsZVwiXG4gIFtuZ0NsYXNzXT1cIm5nQ2xhc3NlcygpXCJcbj5cbiAgQGlmIChjYXB0aW9uKCkpIHtcbiAgICA8Y2FwdGlvbiBjbGFzcz1cImFyZC10YWJsZV9fY2FwdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFyZC10YWJsZV9fY2FwdGlvbi1jb250YWluZXJcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgI2RlZmF1bHRDYXB0aW9uVGVtcGxhdGVcbiAgICAgICAgICBsZXQtY2FwdGlvblRleHRcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGNhcHRpb25UZXh0IH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FwdGlvblRlbXBsYXRlKCkgPz8gZGVmYXVsdENhcHRpb25UZW1wbGF0ZVwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjYXB0aW9uKCkgfVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2NhcHRpb24+XG4gIH1cbiAgPHRoZWFkIGNsYXNzPVwiYXJkLXRhYmxlX19oZWFkZXJcIj5cbiAgICBAZm9yIChyb3cgb2YgaGVhZGVyQ2VsbHMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8dHIgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1yb3dcIj5cbiAgICAgICAgQGZvciAoY2VsbCBvZiByb3c7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDx0aFxuICAgICAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1jZWxsXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNlbGwuY2VsbCgpLmNlbGxDbGFzc1wiXG4gICAgICAgICAgICBbY2xhc3MuYXJkLXRhYmxlX19jaGVja2JveC1jZWxsXT1cImlzSGVhZGVyQ2VsbENoZWNrYm94KGNlbGwpXCJcbiAgICAgICAgICAgIFthdHRyLmNvbHNwYW5dPVwiY2VsbC5jb2xzcGFuKClcIlxuICAgICAgICAgICAgW2F0dHIucm93c3Bhbl09XCJjZWxsLnJvd3NwYW4oKVwiXG4gICAgICAgICAgICBbc2NvcGVdPVwiY2VsbC5jb2xzcGFuKCkgPiAxID8gJ2NvbGdyb3VwJyA6ICdjb2wnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19jZWxsLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgIFtjbGFzcy5hcmQtdGFibGVfX3NvcnRhYmxlXT1cImlzSGVhZGVyQ2VsbFNvcnRhYmxlKGNlbGwpXCJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNlbGwud2lkdGhcIlxuICAgICAgICAgICAgICBbc3R5bGUubWluV2lkdGhdPVwiY2VsbC5taW5XaWR0aFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEBpZiAoaXNIZWFkZXJDZWxsQ2hlY2tib3goY2VsbCkpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICNkZWZhdWx0SGVhZGVyQ2hlY2tib3hUZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgbGV0LXN0YXRlXG4gICAgICAgICAgICAgICAgICBsZXQtb25DaGFuZ2U9XCJvbkNoYW5nZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGFyZC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiaXNMb2FkaW5nKCkgPyAtMSA6IHRhYkluZGV4KClcIlxuICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiZ2V0SGVhZGVyQ2hlY2tib3hDb2xvcigpXCJcbiAgICAgICAgICAgICAgICAgICAgdW5zZWxlY3RlZENvbG9yPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyQ2hlY2tib3hUZW1wbGF0ZSgpID8/IGRlZmF1bHRIZWFkZXJDaGVja2JveFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRIZWFkZXJDaGVja2JveENvbnRleHQoKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAjZGVmYXVsdEhlYWRlckNlbGxUZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgbGV0LWNvbnRlbnRcbiAgICAgICAgICAgICAgICAgIGxldC1zb3J0YWJsZT1cInNvcnRhYmxlXCJcbiAgICAgICAgICAgICAgICAgIGxldC1zb3J0VHlwZT1cInNvcnRUeXBlXCJcbiAgICAgICAgICAgICAgICAgIGxldC1vblRyaWdnZXJTb3J0PVwib25UcmlnZ2VyU29ydFwiXG4gICAgICAgICAgICAgICAgICBsZXQtb25UcmlnZ2VyUmVzZXRTb3J0PVwib25UcmlnZ2VyUmVzZXRTb3J0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19oZWFkZXItdGVtcGxhdGUtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFyZC1zb3J0YWJsZV09XCJzb3J0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hcmQtbm9uc29ydGFibGVdPVwiIXNvcnRhYmxlXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzb3J0YWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1jb250ZW50LWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25UcmlnZ2VyU29ydCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLkVzYyk9XCJvblRyaWdnZXJSZXNldFNvcnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC10YWJsZV9faGVhZGVyLWNvbnRlbnRcIj57eyBjb250ZW50IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNvcnRUeXBlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1zb3J0LWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNvcnRUeXBlID09PSAnYXNjZW5kaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFyZC1pY29uPnNvdXRoPC9hcmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChzb3J0VHlwZSA9PT0gJ2Rlc2NlbmRpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXJkLWljb24+bm9ydGg8L2FyZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC10YWJsZV9faGVhZGVyLWNvbnRlbnRcIj57eyBjb250ZW50IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdldEhlYWRlclRlbXBsYXRlKGNlbGwuY2VsbCgpLmhlYWRlcikgPz8gZGVmYXVsdEhlYWRlckNlbGxUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0SGVhZGVyQ29udGV4dChjZWxsLmNlbGwoKSwgJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgfVxuICAgICAgPC90cj5cbiAgICB9XG4gICAgPHRyIGNsYXNzPVwiYXJkLXRhYmxlX19wcm9ncmVzcy1iYXItcm93XCI+XG4gICAgICA8dGhcbiAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX3Byb2dyZXNzLWJhci1jZWxsXCJcbiAgICAgICAgY29sc3Bhbj1cIjk5OTlcIlxuICAgICAgPlxuICAgICAgICBAaWYgKGlzTG9hZGluZygpKSB7XG4gICAgICAgICAgPGFyZC1wcm9ncmVzcy1iYXJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJsb2FkaW5nUHJvZ3Jlc3MoKVwiXG4gICAgICAgICAgICBbYnVmZmVyVmFsdWVdPVwibG9hZGluZ1Byb2dyZXNzQnVmZmVyKClcIlxuICAgICAgICAgICAgW21vZGVdPVwibG9hZGluZ0Jhck1vZGUoKVwiXG4gICAgICAgICAgICBbY29sb3JdPVwibG9hZGluZ0JhckNvbG9yKClcIlxuICAgICAgICAgICAgdmFyaWFudD1cInNoYXJwXCJcbiAgICAgICAgICAgIGhpZGVWYWx1ZVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cbiAgPHRib2R5IGNsYXNzPVwiYXJkLXRhYmxlX19ib2R5XCI+XG4gICAgQGZvciAocm93IG9mIGRhdGFSb3dzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgQGlmIChyb3cuaXNFbXB0eSgpKSB7XG4gICAgICAgIDx0ciBjbGFzcz1cImFyZC10YWJsZV9fZW1wdHktcm93XCI+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICBjbGFzcz1cImFyZC10YWJsZV9fZW1wdHktY2VsbFwiXG4gICAgICAgICAgICBjb2xzcGFuPVwiOTk5OVwiXG4gICAgICAgICAgPjwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHRyXG4gICAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX2JvZHktcm93XCJcbiAgICAgICAgICBbY2xhc3MuYXJkLXRhYmxlX19zZWxlY3RlZC1yb3ddPVwicm93LnNlbGVjdGVkKClcIlxuICAgICAgICAgIFtjbGFzcy5hcmQtdGFibGVfX2hpZ2hsaWdodGVkLXJvd109XCJyb3cuaGlnaGxpZ2h0ZWQoKVwiXG4gICAgICAgICAgW2NsYXNzLmFyZC10YWJsZV9fZGlzYWJsZWQtcm93XT1cInJvdy5kaXNhYmxlZCgpXCJcbiAgICAgICAgICBbY2xhc3MuYXJkLXRhYmxlX19ib2xkLXJvd109XCJyb3cuYm9sZCgpXCJcbiAgICAgICAgICAoY2xpY2spPVwib25Sb3dDbGljayhyb3csICRldmVudClcIlxuICAgICAgICAgIChtb3VzZW92ZXIpPVwib25Sb3dNb3VzZU92ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgKG1vdXNlZW50ZXIpPVwib25Sb3dNb3VzZUVudGVyKHJvdy5pbmRleCgpLCAkZXZlbnQpXCJcbiAgICAgICAgICAobW91c2VsZWF2ZSk9XCJvblJvd01vdXNlTGVhdmUocm93LmluZGV4KCksICRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgQGZvciAoY2VsbCBvZiByb3cuZGF0YSgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2VsbFRtcD5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19jZWxsLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgW3N0eWxlXT1cImdldENlbGxTdHlsZShyb3cuZGF0YUNvbHVtbnMoKVskaW5kZXhdKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKGlzQ2VsbENoZWNrYm94KGNlbGwpKSB7XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgI2RlZmF1bHRDaGVja2JveFRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIGxldC1pc0NoZWNrZWRcbiAgICAgICAgICAgICAgICAgICAgbGV0LW9uQ2hhbmdlPVwib25DaGFuZ2VcIlxuICAgICAgICAgICAgICAgICAgICBsZXQtZGlzYWJsZWQ9XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhcmQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiaXNMb2FkaW5nKCkgPyAtMSA6IHRhYkluZGV4KClcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJpc0NoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJjb2xvcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hlY2tib3hUZW1wbGF0ZSgpID8/IGRlZmF1bHRDaGVja2JveFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldENoZWNrYm94Q29udGV4dChyb3cuaW5kZXgoKSlcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAjZGVmYXVsdENlbGxUZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBsZXQtY29udGVudFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBjb250ZW50IH19XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ2V0Q2VsbFRlbXBsYXRlKHJvdy5kYXRhQ29sdW1ucygpWyRpbmRleF0udGVtcGxhdGUpID8/IGRlZmF1bHRDZWxsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNlbGwgfVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgQGlmICghcm93LmRhdGFDb2x1bW5zKClbJGluZGV4XS5pc1Jvd0hlYWRlcikge1xuICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFyZC10YWJsZV9fYm9keS1jZWxsXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJyb3cuZGF0YUNvbHVtbnMoKVskaW5kZXhdLmNlbGxDbGFzc1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFyZC10YWJsZV9fY2hlY2tib3gtY2VsbF09XCJpc0NlbGxDaGVja2JveChjZWxsKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2VsbFRtcFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX2JvZHktY2VsbCBhcmQtdGFibGVfX3Jvdy1oZWFkZXJcIlxuICAgICAgICAgICAgICAgIHNjb3BlPVwicm93XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJyb3cuZGF0YUNvbHVtbnMoKVskaW5kZXhdLmNlbGxDbGFzc1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFyZC10YWJsZV9fY2hlY2tib3gtY2VsbF09XCJpc0NlbGxDaGVja2JveChjZWxsKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2VsbFRtcFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L3RyPlxuICAgICAgfVxuICAgIH1cbiAgPC90Ym9keT5cbiAgQGlmIChjYW5EaXNwbGF5UGFnaW5hdGlvbigpKSB7XG4gICAgPHRmb290IGNsYXNzPVwiYXJkLXRhYmxlX19mb290XCI+XG4gICAgICA8dHIgY2xhc3M9XCJhcmQtdGFibGVfX2Zvb3Qtcm93XCI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19wYWdpbmF0aW9uLWNlbGxcIlxuICAgICAgICAgIGNvbHNwYW49XCI5OTk5XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhcmQtdGFibGUtcGFnaW5hdGlvblxuICAgICAgICAgICAgW29wdGlvbnNdPVwicGFnaW5hdGlvbk9wdGlvbnMoKVwiXG4gICAgICAgICAgICBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zKCkhXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwYWdpbmF0aW9uRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICBbKGl0ZW1zUGVyUGFnZSldPVwiaXRlbXNQZXJQYWdlXCJcbiAgICAgICAgICAgIFsocGFnZSldPVwicGFnZVwiXG4gICAgICAgICAgICBbYWxpZ25dPVwicGFnaW5hdGlvbkFsaWduKClcIlxuICAgICAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmcoKVwiXG4gICAgICAgICAgICBbaXRlbXNQZXJQYWdlVGV4dF09XCJpdGVtc1BlclBhZ2VUZXh0KClcIlxuICAgICAgICAgICAgW2N1cnJlbnRJdGVtc0Zvcm1hdEZuXT1cImN1cnJlbnRJdGVtc0Zvcm1hdEZuKClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvdGZvb3Q+XG4gIH1cbjwvdGFibGU+XG4iXX0=
@@ -5,10 +5,10 @@ export class ArdiumTableTemplateDirective {
5
5
  this.template = template;
6
6
  this.name = input.required({ alias: 'ard-table-tmp' });
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTableTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.2", type: ArdiumTableTemplateDirective, selector: "ard-table > ng-template[ard-table-tmp]", inputs: { name: { classPropertyName: "name", publicName: "ard-table-tmp", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTableTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: ArdiumTableTemplateDirective, selector: "ard-table > ng-template[ard-table-tmp]", inputs: { name: { classPropertyName: "name", publicName: "ard-table-tmp", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTableTemplateDirective, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTableTemplateDirective, decorators: [{
12
12
  type: Directive,
13
13
  args: [{ selector: 'ard-table > ng-template[ard-table-tmp]' }]
14
14
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
@@ -16,10 +16,10 @@ export class ArdiumTableCheckboxTemplateDirective {
16
16
  constructor(template) {
17
17
  this.template = template;
18
18
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTableCheckboxTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
20
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: ArdiumTableCheckboxTemplateDirective, selector: "ard-table > ng-template[ard-table-checkbox-tmp]", ngImport: i0 }); }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTableCheckboxTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
20
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ArdiumTableCheckboxTemplateDirective, selector: "ard-table > ng-template[ard-table-checkbox-tmp]", ngImport: i0 }); }
21
21
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTableCheckboxTemplateDirective, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTableCheckboxTemplateDirective, decorators: [{
23
23
  type: Directive,
24
24
  args: [{ selector: 'ard-table > ng-template[ard-table-checkbox-tmp]' }]
25
25
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
@@ -27,10 +27,10 @@ export class ArdiumTableHeaderCheckboxTemplateDirective {
27
27
  constructor(template) {
28
28
  this.template = template;
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTableHeaderCheckboxTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
31
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: ArdiumTableHeaderCheckboxTemplateDirective, selector: "ard-table > ng-template[ard-table-header-checkbox-tmp]", ngImport: i0 }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTableHeaderCheckboxTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ArdiumTableHeaderCheckboxTemplateDirective, selector: "ard-table > ng-template[ard-table-header-checkbox-tmp]", ngImport: i0 }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTableHeaderCheckboxTemplateDirective, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTableHeaderCheckboxTemplateDirective, decorators: [{
34
34
  type: Directive,
35
35
  args: [{
36
36
  selector: 'ard-table > ng-template[ard-table-header-checkbox-tmp]',
@@ -40,10 +40,10 @@ export class ArdiumTableCaptionTemplateDirective {
40
40
  constructor(template) {
41
41
  this.template = template;
42
42
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTableCaptionTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
44
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: ArdiumTableCaptionTemplateDirective, selector: "ard-table > ng-template[ard-table-caption-tmp]", ngImport: i0 }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTableCaptionTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
44
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ArdiumTableCaptionTemplateDirective, selector: "ard-table > ng-template[ard-table-caption-tmp]", ngImport: i0 }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTableCaptionTemplateDirective, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTableCaptionTemplateDirective, decorators: [{
47
47
  type: Directive,
48
48
  args: [{ selector: 'ard-table > ng-template[ard-table-caption-tmp]' }]
49
49
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
@@ -52,11 +52,11 @@ export class ArdiumTablePaginationTemplateDirective {
52
52
  constructor(template) {
53
53
  this.template = template;
54
54
  }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTablePaginationTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
56
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: ArdiumTablePaginationTemplateDirective, selector: "ard-table > ng-template[ard-table-pagination-tmp]", ngImport: i0 }); }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTablePaginationTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
56
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ArdiumTablePaginationTemplateDirective, selector: "ard-table > ng-template[ard-table-pagination-tmp]", ngImport: i0 }); }
57
57
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTablePaginationTemplateDirective, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumTablePaginationTemplateDirective, decorators: [{
59
59
  type: Directive,
60
60
  args: [{ selector: 'ard-table > ng-template[ard-table-pagination-tmp]' }]
61
61
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGlyZWN0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvdGFibGUvdGFibGUuZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNOUQsTUFBTSxPQUFPLDRCQUE0QjtJQUd2QyxZQUFtQixRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUZwQyxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBbUIsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUU3QixDQUFDOzhHQUh0Qyw0QkFBNEI7a0dBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx3Q0FBd0MsRUFBRTs7QUFRakUsTUFBTSxPQUFPLG9DQUFvQztJQUMvQyxZQUFtQixRQUEyQztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFtQztJQUFHLENBQUM7OEdBRHZELG9DQUFvQztrR0FBcEMsb0NBQW9DOzsyRkFBcEMsb0NBQW9DO2tCQURoRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGlEQUFpRCxFQUFFOztBQVExRSxNQUFNLE9BQU8sMENBQTBDO0lBQ3JELFlBQW1CLFFBQTJDO1FBQTNDLGFBQVEsR0FBUixRQUFRLENBQW1DO0lBQUcsQ0FBQzs4R0FEdkQsMENBQTBDO2tHQUExQywwQ0FBMEM7OzJGQUExQywwQ0FBMEM7a0JBSHRELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdEQUF3RDtpQkFDbkU7O0FBTUQsTUFBTSxPQUFPLG1DQUFtQztJQUM5QyxZQUFtQixRQUEwQztRQUExQyxhQUFRLEdBQVIsUUFBUSxDQUFrQztJQUFHLENBQUM7OEdBRHRELG1DQUFtQztrR0FBbkMsbUNBQW1DOzsyRkFBbkMsbUNBQW1DO2tCQUQvQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGdEQUFnRCxFQUFFOztBQUt6RSxlQUFlO0FBRWYsTUFBTSxPQUFPLHNDQUFzQztJQUNqRCxZQUFtQixRQUF3QztRQUF4QyxhQUFRLEdBQVIsUUFBUSxDQUFnQztJQUFHLENBQUM7OEdBRHBELHNDQUFzQztrR0FBdEMsc0NBQXNDOzsyRkFBdEMsc0NBQXNDO2tCQURsRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG1EQUFtRCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhZ2luYXRpb25Db250ZXh0IH0gZnJvbSAnLi4vX2ludGVybmFsL21vZGVscy9wYWdpbmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vdHlwZXMvdXRpbGl0eS50eXBlcyc7XG5pbXBvcnQgeyBUYWJsZUNhcHRpb25Db250ZXh0LCBUYWJsZUNoZWNrYm94Q29udGV4dCB9IGZyb20gJy4vdGFibGUudHlwZXMnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdhcmQtdGFibGUgPiBuZy10ZW1wbGF0ZVthcmQtdGFibGUtdG1wXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1UYWJsZVRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgcmVhZG9ubHkgbmFtZSA9IGlucHV0LnJlcXVpcmVkPE51bGxhYmxlPHN0cmluZz4+KHsgYWxpYXM6ICdhcmQtdGFibGUtdG1wJyB9KTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2FyZC10YWJsZSA+IG5nLXRlbXBsYXRlW2FyZC10YWJsZS1jaGVja2JveC10bXBdJyB9KVxuZXhwb3J0IGNsYXNzIEFyZGl1bVRhYmxlQ2hlY2tib3hUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8VGFibGVDaGVja2JveENvbnRleHQ+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhcmQtdGFibGUgPiBuZy10ZW1wbGF0ZVthcmQtdGFibGUtaGVhZGVyLWNoZWNrYm94LXRtcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1UYWJsZUhlYWRlckNoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPFRhYmxlQ2hlY2tib3hDb250ZXh0Pikge31cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLXRhYmxlID4gbmctdGVtcGxhdGVbYXJkLXRhYmxlLWNhcHRpb24tdG1wXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1UYWJsZUNhcHRpb25UZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8VGFibGVDYXB0aW9uQ29udGV4dD4pIHt9XG59XG5cbi8vISBwYWdpbmF0aW9uc1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLXRhYmxlID4gbmctdGVtcGxhdGVbYXJkLXRhYmxlLXBhZ2luYXRpb24tdG1wXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1UYWJsZVBhZ2luYXRpb25UZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8UGFnaW5hdGlvbkNvbnRleHQ+KSB7fVxufVxuIl19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGlyZWN0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvdGFibGUvdGFibGUuZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNOUQsTUFBTSxPQUFPLDRCQUE0QjtJQUd2QyxZQUFtQixRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUZwQyxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBbUIsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUU3QixDQUFDOytHQUh0Qyw0QkFBNEI7bUdBQTVCLDRCQUE0Qjs7NEZBQTVCLDRCQUE0QjtrQkFEeEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx3Q0FBd0MsRUFBRTs7QUFRakUsTUFBTSxPQUFPLG9DQUFvQztJQUMvQyxZQUFtQixRQUEyQztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFtQztJQUFHLENBQUM7K0dBRHZELG9DQUFvQzttR0FBcEMsb0NBQW9DOzs0RkFBcEMsb0NBQW9DO2tCQURoRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGlEQUFpRCxFQUFFOztBQVExRSxNQUFNLE9BQU8sMENBQTBDO0lBQ3JELFlBQW1CLFFBQTJDO1FBQTNDLGFBQVEsR0FBUixRQUFRLENBQW1DO0lBQUcsQ0FBQzsrR0FEdkQsMENBQTBDO21HQUExQywwQ0FBMEM7OzRGQUExQywwQ0FBMEM7a0JBSHRELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdEQUF3RDtpQkFDbkU7O0FBTUQsTUFBTSxPQUFPLG1DQUFtQztJQUM5QyxZQUFtQixRQUEwQztRQUExQyxhQUFRLEdBQVIsUUFBUSxDQUFrQztJQUFHLENBQUM7K0dBRHRELG1DQUFtQzttR0FBbkMsbUNBQW1DOzs0RkFBbkMsbUNBQW1DO2tCQUQvQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGdEQUFnRCxFQUFFOztBQUt6RSxlQUFlO0FBRWYsTUFBTSxPQUFPLHNDQUFzQztJQUNqRCxZQUFtQixRQUF3QztRQUF4QyxhQUFRLEdBQVIsUUFBUSxDQUFnQztJQUFHLENBQUM7K0dBRHBELHNDQUFzQzttR0FBdEMsc0NBQXNDOzs0RkFBdEMsc0NBQXNDO2tCQURsRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG1EQUFtRCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhZ2luYXRpb25Db250ZXh0IH0gZnJvbSAnLi4vX2ludGVybmFsL21vZGVscy9wYWdpbmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vdHlwZXMvdXRpbGl0eS50eXBlcyc7XG5pbXBvcnQgeyBUYWJsZUNhcHRpb25Db250ZXh0LCBUYWJsZUNoZWNrYm94Q29udGV4dCB9IGZyb20gJy4vdGFibGUudHlwZXMnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdhcmQtdGFibGUgPiBuZy10ZW1wbGF0ZVthcmQtdGFibGUtdG1wXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1UYWJsZVRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgcmVhZG9ubHkgbmFtZSA9IGlucHV0LnJlcXVpcmVkPE51bGxhYmxlPHN0cmluZz4+KHsgYWxpYXM6ICdhcmQtdGFibGUtdG1wJyB9KTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2FyZC10YWJsZSA+IG5nLXRlbXBsYXRlW2FyZC10YWJsZS1jaGVja2JveC10bXBdJyB9KVxuZXhwb3J0IGNsYXNzIEFyZGl1bVRhYmxlQ2hlY2tib3hUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8VGFibGVDaGVja2JveENvbnRleHQ+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhcmQtdGFibGUgPiBuZy10ZW1wbGF0ZVthcmQtdGFibGUtaGVhZGVyLWNoZWNrYm94LXRtcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1UYWJsZUhlYWRlckNoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPFRhYmxlQ2hlY2tib3hDb250ZXh0Pikge31cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLXRhYmxlID4gbmctdGVtcGxhdGVbYXJkLXRhYmxlLWNhcHRpb24tdG1wXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1UYWJsZUNhcHRpb25UZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8VGFibGVDYXB0aW9uQ29udGV4dD4pIHt9XG59XG5cbi8vISBwYWdpbmF0aW9uc1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLXRhYmxlID4gbmctdGVtcGxhdGVbYXJkLXRhYmxlLXBhZ2luYXRpb24tdG1wXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1UYWJsZVBhZ2luYXRpb25UZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8UGFnaW5hdGlvbkNvbnRleHQ+KSB7fVxufVxuIl19