aril 2.0.1-dev.3 → 2.0.1-dev.5

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 (199) hide show
  1. package/boot/bridge/src/mfe-bridge.d.ts +33 -0
  2. package/boot/config/apps/src/interfaces.d.ts +7 -1
  3. package/boot/config/apps/src/route-close.service.d.ts +8 -3
  4. package/boot/config/apps/src/route-permissions.d.ts +2 -2
  5. package/esm2022/boot/bridge/src/mfe-bridge.mjs +18 -1
  6. package/esm2022/boot/config/api/src/interfaces.mjs +3 -2
  7. package/esm2022/boot/config/apps/src/apps.service.mjs +2 -2
  8. package/esm2022/boot/config/apps/src/custom-route-reuse-strategy.class.mjs +4 -4
  9. package/esm2022/boot/config/apps/src/interfaces.mjs +2 -1
  10. package/esm2022/boot/config/apps/src/route-close.service.mjs +11 -4
  11. package/esm2022/boot/config/apps/src/route-permissions.mjs +24 -6
  12. package/esm2022/boot/config/plugins/src/plugins.service.mjs +7 -5
  13. package/esm2022/boot/host/src/bootstrap.mjs +5 -3
  14. package/esm2022/boot/mfe/src/bootstrap.mjs +15 -3
  15. package/esm2022/http/index.mjs +1 -2
  16. package/esm2022/http/src/serviceBase.mjs +4 -4
  17. package/esm2022/http/src/serviceStateMethods.mjs +9 -1
  18. package/esm2022/keycloak/src/auth.interceptor.mjs +5 -2
  19. package/esm2022/selection/aril-selection.mjs +5 -0
  20. package/esm2022/selection/index.mjs +2 -0
  21. package/esm2022/selection/src/interfaces.mjs +2 -0
  22. package/esm2022/selection/src/selection-group.service.mjs +195 -0
  23. package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +2 -2
  24. package/esm2022/theme/layout/index.mjs +4 -2
  25. package/esm2022/theme/layout/service/breadcrumb-publisher.service.mjs +12 -4
  26. package/esm2022/theme/layout/service/interfaces/interfaces.mjs +1 -1
  27. package/esm2022/ui/button/index.mjs +1 -2
  28. package/esm2022/ui/button/src/button.component.mjs +5 -2
  29. package/esm2022/ui/charts/index.mjs +1 -11
  30. package/esm2022/ui/lib/index.mjs +1 -4
  31. package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +9 -5
  32. package/esm2022/ui/multiSelect/src/multi-select.component.mjs +25 -25
  33. package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +2 -2
  34. package/esm2022/ui/selectBox/src/select-box.component.mjs +11 -34
  35. package/esm2022/ui/table/src/table.component.mjs +10 -5
  36. package/esm2022/ui/value/src/value.component.mjs +3 -2
  37. package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +14 -6
  38. package/esm2022/util/activity/aril-util-activity.mjs +5 -0
  39. package/esm2022/util/activity/index.mjs +4 -0
  40. package/esm2022/util/activity/src/activity.constants.mjs +4 -0
  41. package/esm2022/util/activity/src/activity.service.mjs +218 -0
  42. package/esm2022/util/activity/src/activity.types.mjs +2 -0
  43. package/esm2022/util/block/src/block.mjs +9 -25
  44. package/esm2022/util/pub-sub/src/pub-sub.service.mjs +10 -5
  45. package/fesm2022/{aril-app.component-s14ruALV.mjs → aril-app.component-MjG_tPEe.mjs} +2 -1
  46. package/fesm2022/{aril-app.component-s14ruALV.mjs.map → aril-app.component-MjG_tPEe.mjs.map} +1 -1
  47. package/fesm2022/aril-boot-bridge.mjs +17 -0
  48. package/fesm2022/aril-boot-bridge.mjs.map +1 -1
  49. package/fesm2022/aril-boot-config-api.mjs +2 -1
  50. package/fesm2022/aril-boot-config-api.mjs.map +1 -1
  51. package/fesm2022/aril-boot-config-apps.mjs +36 -12
  52. package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
  53. package/fesm2022/aril-boot-config-plugins.mjs +6 -4
  54. package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
  55. package/fesm2022/aril-boot-host.mjs +4 -2
  56. package/fesm2022/aril-boot-host.mjs.map +1 -1
  57. package/fesm2022/{aril-boot-mfe-app.component-AS4MzEo2.mjs → aril-boot-mfe-app.component-DtspQ3J8.mjs} +3 -2
  58. package/fesm2022/{aril-boot-mfe-app.component-AS4MzEo2.mjs.map → aril-boot-mfe-app.component-DtspQ3J8.mjs.map} +1 -1
  59. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-Ui9Cv3UC.mjs → aril-boot-mfe-aril-boot-mfe-lovoFcgw.mjs} +16 -4
  60. package/fesm2022/aril-boot-mfe-aril-boot-mfe-lovoFcgw.mjs.map +1 -0
  61. package/fesm2022/aril-boot-mfe.mjs +2 -1
  62. package/fesm2022/aril-boot-mfe.mjs.map +1 -1
  63. package/fesm2022/aril-http.mjs +11 -7
  64. package/fesm2022/aril-http.mjs.map +1 -1
  65. package/fesm2022/aril-keycloak.mjs +4 -1
  66. package/fesm2022/aril-keycloak.mjs.map +1 -1
  67. package/fesm2022/aril-selection.mjs +202 -0
  68. package/fesm2022/aril-selection.mjs.map +1 -0
  69. package/fesm2022/aril-theme-layout.mjs +14 -66
  70. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  71. package/fesm2022/aril-ui-business-enumPicker.mjs +14 -6
  72. package/fesm2022/aril-ui-business-enumPicker.mjs.map +1 -1
  73. package/fesm2022/aril-ui-button.mjs +5 -17
  74. package/fesm2022/aril-ui-button.mjs.map +1 -1
  75. package/fesm2022/aril-ui-charts.mjs +4 -1302
  76. package/fesm2022/aril-ui-charts.mjs.map +1 -1
  77. package/fesm2022/aril-ui-lib.mjs +10 -98
  78. package/fesm2022/aril-ui-lib.mjs.map +1 -1
  79. package/fesm2022/aril-ui-multiSelect.mjs +24 -24
  80. package/fesm2022/aril-ui-multiSelect.mjs.map +1 -1
  81. package/fesm2022/aril-ui-relativeDateSelector.mjs +1 -1
  82. package/fesm2022/aril-ui-relativeDateSelector.mjs.map +1 -1
  83. package/fesm2022/aril-ui-selectBox.mjs +10 -33
  84. package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
  85. package/fesm2022/aril-ui-table.mjs +9 -4
  86. package/fesm2022/aril-ui-table.mjs.map +1 -1
  87. package/fesm2022/aril-ui-value.mjs +2 -1
  88. package/fesm2022/aril-ui-value.mjs.map +1 -1
  89. package/fesm2022/aril-util-activity.mjs +228 -0
  90. package/fesm2022/aril-util-activity.mjs.map +1 -0
  91. package/fesm2022/aril-util-block.mjs +9 -25
  92. package/fesm2022/aril-util-block.mjs.map +1 -1
  93. package/fesm2022/aril-util-pub-sub.mjs +9 -4
  94. package/fesm2022/aril-util-pub-sub.mjs.map +1 -1
  95. package/fesm2022/aril.mjs +18 -5
  96. package/fesm2022/aril.mjs.map +1 -1
  97. package/http/index.d.ts +0 -1
  98. package/http/src/serviceStateMethods.d.ts +1 -0
  99. package/package.json +210 -234
  100. package/scripts/mf-shared.js +47 -0
  101. package/selection/index.d.ts +1 -0
  102. package/selection/src/interfaces.d.ts +8 -0
  103. package/{theme/layout/service → selection/src}/selection-group.service.d.ts +9 -5
  104. package/theme/layout/index.d.ts +1 -1
  105. package/theme/layout/index.ts +3 -1
  106. package/theme/layout/service/breadcrumb-publisher.service.ts +18 -8
  107. package/theme/layout/service/interfaces/interfaces.d.ts +3 -17
  108. package/theme/layout/service/interfaces/interfaces.ts +6 -18
  109. package/ui/button/index.d.ts +0 -1
  110. package/ui/button/src/button.component.d.ts +2 -0
  111. package/ui/charts/index.d.ts +0 -10
  112. package/ui/lib/index.d.ts +0 -3
  113. package/ui/lib/src/form/form-error-message.directive.d.ts +4 -3
  114. package/ui/multiSelect/src/multi-select.component.d.ts +4 -5
  115. package/ui/selectBox/src/select-box.component.d.ts +2 -7
  116. package/ui/table/src/table.component.d.ts +3 -2
  117. package/util/activity/index.d.ts +3 -0
  118. package/util/activity/src/activity.constants.d.ts +3 -0
  119. package/util/activity/src/activity.service.d.ts +35 -0
  120. package/util/activity/src/activity.types.d.ts +13 -0
  121. package/util/block/src/block.d.ts +4 -10
  122. package/util/pub-sub/src/pub-sub.service.d.ts +2 -2
  123. package/esm2022/http/src/serviceMockBase.mjs +0 -4
  124. package/esm2022/theme/layout/service/selection-group.service.mjs +0 -65
  125. package/esm2022/ui/button/src/split-button.component.mjs +0 -18
  126. package/esm2022/ui/charts/src/amCharts/column/column-chart.component.mjs +0 -124
  127. package/esm2022/ui/charts/src/amCharts/line/line-chart.component.mjs +0 -164
  128. package/esm2022/ui/charts/src/amCharts/pie/pie-chart.component.mjs +0 -116
  129. package/esm2022/ui/charts/src/highCharts/area/area-chart.component.mjs +0 -114
  130. package/esm2022/ui/charts/src/highCharts/bar/bar-chart.component.mjs +0 -100
  131. package/esm2022/ui/charts/src/highCharts/column/column-chart.component.mjs +0 -117
  132. package/esm2022/ui/charts/src/highCharts/heatmap/heatMap-chart.component.mjs +0 -252
  133. package/esm2022/ui/charts/src/highCharts/line/line-chart-series.component.mjs +0 -89
  134. package/esm2022/ui/charts/src/highCharts/line/line-chart.component.mjs +0 -82
  135. package/esm2022/ui/charts/src/highCharts/pie/pie-chart.component.mjs +0 -137
  136. package/esm2022/ui/charts/src/theme/theme.mjs +0 -54
  137. package/esm2022/ui/dxEditor/aril-ui-dxEditor.mjs +0 -5
  138. package/esm2022/ui/dxEditor/index.mjs +0 -2
  139. package/esm2022/ui/dxEditor/src/dx-editor.component.mjs +0 -26
  140. package/esm2022/ui/lib/src/form/form-field-builder.mjs +0 -23
  141. package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +0 -49
  142. package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +0 -25
  143. package/esm2022/ui/overlayPanel/aril-ui-overlayPanel.mjs +0 -5
  144. package/esm2022/ui/overlayPanel/index.mjs +0 -2
  145. package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +0 -20
  146. package/esm2022/ui/tooltip/aril-ui-tooltip.mjs +0 -5
  147. package/esm2022/ui/tooltip/index.mjs +0 -2
  148. package/esm2022/ui/tooltip/src/tooltip-component.mjs +0 -23
  149. package/esm2022/ui/treeTable/aril-ui-treeTable.mjs +0 -5
  150. package/esm2022/ui/treeTable/index.mjs +0 -2
  151. package/esm2022/ui/treeTable/src/tree-table.component.mjs +0 -55
  152. package/esm2022/ui-business/operation-types-dialog/aril-ui-business-operation-types-dialog.mjs +0 -5
  153. package/esm2022/ui-business/operation-types-dialog/index.mjs +0 -2
  154. package/esm2022/ui-business/operation-types-dialog/src/operation-types-dialog.component.mjs +0 -76
  155. package/esm2022/util/unwrap/aril-util-unwrap.mjs +0 -5
  156. package/esm2022/util/unwrap/index.mjs +0 -2
  157. package/esm2022/util/unwrap/src/unwrap-tag.directive.mjs +0 -24
  158. package/fesm2022/aril-boot-mfe-aril-boot-mfe-Ui9Cv3UC.mjs.map +0 -1
  159. package/fesm2022/aril-ui-business-operation-types-dialog.mjs +0 -83
  160. package/fesm2022/aril-ui-business-operation-types-dialog.mjs.map +0 -1
  161. package/fesm2022/aril-ui-dxEditor.mjs +0 -33
  162. package/fesm2022/aril-ui-dxEditor.mjs.map +0 -1
  163. package/fesm2022/aril-ui-overlayPanel.mjs +0 -27
  164. package/fesm2022/aril-ui-overlayPanel.mjs.map +0 -1
  165. package/fesm2022/aril-ui-tooltip.mjs +0 -30
  166. package/fesm2022/aril-ui-tooltip.mjs.map +0 -1
  167. package/fesm2022/aril-ui-treeTable.mjs +0 -62
  168. package/fesm2022/aril-ui-treeTable.mjs.map +0 -1
  169. package/fesm2022/aril-util-unwrap.mjs +0 -31
  170. package/fesm2022/aril-util-unwrap.mjs.map +0 -1
  171. package/http/src/serviceMockBase.d.ts +0 -6
  172. package/theme/layout/service/selection-group.service.ts +0 -73
  173. package/ui/button/src/split-button.component.d.ts +0 -8
  174. package/ui/charts/src/amCharts/column/column-chart.component.d.ts +0 -25
  175. package/ui/charts/src/amCharts/line/line-chart.component.d.ts +0 -26
  176. package/ui/charts/src/amCharts/pie/pie-chart.component.d.ts +0 -24
  177. package/ui/charts/src/highCharts/area/area-chart.component.d.ts +0 -20
  178. package/ui/charts/src/highCharts/bar/bar-chart.component.d.ts +0 -26
  179. package/ui/charts/src/highCharts/column/column-chart.component.d.ts +0 -28
  180. package/ui/charts/src/highCharts/heatmap/heatMap-chart.component.d.ts +0 -32
  181. package/ui/charts/src/highCharts/line/line-chart-series.component.d.ts +0 -21
  182. package/ui/charts/src/highCharts/line/line-chart.component.d.ts +0 -21
  183. package/ui/charts/src/highCharts/pie/pie-chart.component.d.ts +0 -27
  184. package/ui/charts/src/theme/theme.d.ts +0 -5
  185. package/ui/dxEditor/index.d.ts +0 -1
  186. package/ui/dxEditor/src/dx-editor.component.d.ts +0 -11
  187. package/ui/lib/src/form/form-field-builder.d.ts +0 -8
  188. package/ui/lib/src/input/common-input-validators.service.d.ts +0 -20
  189. package/ui/lib/src/input/input-disabled.directive.d.ts +0 -9
  190. package/ui/overlayPanel/index.d.ts +0 -1
  191. package/ui/overlayPanel/src/overlay-panel.component.d.ts +0 -8
  192. package/ui/tooltip/index.d.ts +0 -1
  193. package/ui/tooltip/src/tooltip-component.d.ts +0 -14
  194. package/ui/treeTable/index.d.ts +0 -1
  195. package/ui/treeTable/src/tree-table.component.d.ts +0 -21
  196. package/ui-business/operation-types-dialog/index.d.ts +0 -1
  197. package/ui-business/operation-types-dialog/src/operation-types-dialog.component.d.ts +0 -28
  198. package/util/unwrap/index.d.ts +0 -1
  199. package/util/unwrap/src/unwrap-tag.directive.d.ts +0 -9
@@ -1,19 +1,17 @@
1
- import { Component, effect, input, signal } from '@angular/core';
1
+ import { Component, computed, effect, input } from '@angular/core';
2
2
  import { ReactiveFormsModule } from '@angular/forms';
3
3
  import { MultiSelectModule } from 'primeng/multiselect';
4
- import { firstValueFrom } from 'rxjs';
5
- import { API_CONFIGS } from 'aril/boot/config/api';
6
4
  import { BaseInputComponent, ValueAccessorDirective } from 'aril/ui/lib';
7
5
  import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common/http";
6
+ import * as i1 from "aril/selection";
9
7
  import * as i2 from "@ngneat/transloco";
10
8
  import * as i3 from "aril/ui/lib";
11
9
  import * as i4 from "@angular/forms";
12
10
  import * as i5 from "primeng/multiselect";
13
11
  export class MultiSelectComponent extends BaseInputComponent {
14
- constructor(http, translocoService) {
12
+ constructor(selectionGroupService, translocoService) {
15
13
  super();
16
- this.http = http;
14
+ this.selectionGroupService = selectionGroupService;
17
15
  this.translocoService = translocoService;
18
16
  this.options = input([]);
19
17
  this.optionLabel = input('text');
@@ -27,31 +25,33 @@ export class MultiSelectComponent extends BaseInputComponent {
27
25
  this.tooltipPosition = input('top');
28
26
  this.groupName = input('');
29
27
  this.parentSelectionKey = input(null);
30
- this.selectionItems = signal(null);
31
28
  this.showClear = input(false);
29
+ // Enum item'ları artık merkezi SelectionGroupService cache'inden okunur (localStorage + cross-MFE
30
+ // dedupe). groupName yoksa null döner → template options() input'una düşer. Aynı groupName~parent
31
+ // için tekrar HTTP atılmaz; parentSelectionKey değişiminde stale-response race'ini servis yönetir.
32
+ this.selectionItems = computed(() => {
33
+ const groupName = this.groupName();
34
+ if (!groupName)
35
+ return null;
36
+ const key = `${groupName}~${this.parentSelectionKey() ?? 'ALL'}`;
37
+ const group = this.selectionGroupService.selectionGroups()[key];
38
+ return (group?.selectionItems?.map((item) => ({
39
+ key: item.selectionKey,
40
+ text: item.selectionDisplay,
41
+ parentSelectionKey: item.parentSelectionKey
42
+ })) ?? null);
43
+ });
32
44
  effect(() => {
33
- if (this.groupName() || this.parentSelectionKey())
34
- this.getSelectionItems();
45
+ const groupName = this.groupName();
46
+ if (groupName)
47
+ this.selectionGroupService.fetchEnum(groupName, this.parentSelectionKey() ?? 'ALL');
35
48
  });
36
49
  }
37
- async getSelectionItems() {
38
- const payload = {
39
- groupName: this.groupName(),
40
- parentSelectionKey: this.parentSelectionKey()
41
- };
42
- const hostApi = API_CONFIGS.api.replace(/\/[^\/]+\/v1$/, `/host/v1`);
43
- const selectionGroup = await firstValueFrom(this.http.post(hostApi + '/selection-group/load', payload));
44
- this.selectionItems.set(selectionGroup?.selectionItems.map((item) => ({
45
- key: item.selectionKey,
46
- text: item.selectionDisplay,
47
- parentSelectionKey: item.parentSelectionKey
48
- })));
49
- }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i1.HttpClient }, { token: i2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i1.SelectionGroupService }, { token: i2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
51
51
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: MultiSelectComponent, isStandalone: true, selector: "aril-multi-select[ngModel], aril-multi-select[formControl], aril-multi-select[formControlName]", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, defaultLabel: { classPropertyName: "defaultLabel", publicName: "defaultLabel", isSignal: true, isRequired: false, transformFunction: null }, selectedItemsLabel: { classPropertyName: "selectedItemsLabel", publicName: "selectedItemsLabel", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null }, parentSelectionKey: { classPropertyName: "parentSelectionKey", publicName: "parentSelectionKey", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, hostDirectives: [{ directive: i3.ValueAccessorDirective }], ngImport: i0, template: "<p-multiSelect\r\n\t[options]=\"selectionItems() || options()\"\r\n\t[optionLabel]=\"optionLabel()\"\r\n\t[optionValue]=\"optionValue()\"\r\n\t[defaultLabel]=\"defaultLabel()\"\r\n\t[selectedItemsLabel]=\"selectedItemsLabel()\"\r\n\t[style]=\"style()\"\r\n\t[styleClass]=\"styleClass()\"\r\n\t[tooltip]=\"tooltip()\"\r\n\t[tooltipPosition]=\"tooltipPosition()\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t[appendTo]=\"appendTo()\"\r\n\t[showClear]=\"showClear()\" />\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i5.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }] }); }
52
52
  }
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MultiSelectComponent, decorators: [{
54
54
  type: Component,
55
55
  args: [{ standalone: true, selector: 'aril-multi-select[ngModel], aril-multi-select[formControl], aril-multi-select[formControlName]', imports: [ReactiveFormsModule, MultiSelectModule], hostDirectives: [ValueAccessorDirective], template: "<p-multiSelect\r\n\t[options]=\"selectionItems() || options()\"\r\n\t[optionLabel]=\"optionLabel()\"\r\n\t[optionValue]=\"optionValue()\"\r\n\t[defaultLabel]=\"defaultLabel()\"\r\n\t[selectedItemsLabel]=\"selectedItemsLabel()\"\r\n\t[style]=\"style()\"\r\n\t[styleClass]=\"styleClass()\"\r\n\t[tooltip]=\"tooltip()\"\r\n\t[tooltipPosition]=\"tooltipPosition()\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t[appendTo]=\"appendTo()\"\r\n\t[showClear]=\"showClear()\" />\r\n" }]
56
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.TranslocoService }] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvbXVsdGlTZWxlY3Qvc3JjL211bHRpLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL211bHRpU2VsZWN0L3NyYy9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7QUFXekUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGtCQUFrQjtJQWdCM0QsWUFDUyxJQUFnQixFQUNqQixnQkFBa0M7UUFFekMsS0FBSyxFQUFFLENBQUM7UUFIQSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2pCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFqQjFDLFlBQU8sR0FBRyxLQUFLLENBQUssRUFBRSxDQUFDLENBQUM7UUFDeEIsZ0JBQVcsR0FBRyxLQUFLLENBQVMsTUFBTSxDQUFDLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxLQUFLLENBQVMsS0FBSyxDQUFDLENBQUM7UUFDbkMsaUJBQVksR0FBRyxLQUFLLENBQVMsU0FBUyxDQUFDLENBQUM7UUFDeEMsdUJBQWtCLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsdUNBQXVDO1FBQy9FLGFBQVEsR0FBRyxLQUFLLENBQVMsTUFBTSxDQUFDLENBQUM7UUFDakMsVUFBSyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxQixlQUFVLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLFlBQU8sR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDNUIsb0JBQWUsR0FBRyxLQUFLLENBQU0sS0FBSyxDQUFDLENBQUM7UUFDcEMsY0FBUyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0Qix1QkFBa0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsbUJBQWMsR0FBRyxNQUFNLENBQXlCLElBQUksQ0FBQyxDQUFDO1FBQ3RELGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFPakMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3RSxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCO1FBQ3RCLE1BQU0sT0FBTyxHQUF3QjtZQUNwQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUMzQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7U0FDN0MsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNyRSxNQUFNLGNBQWMsR0FBRyxNQUFNLGNBQWMsQ0FDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQW9CLE9BQU8sR0FBRyx1QkFBdUIsRUFBRSxPQUFPLENBQUMsQ0FDN0UsQ0FBQztRQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUN0QixjQUFjLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3QyxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDdEIsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDM0Isa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtTQUMzQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0gsQ0FBQzs4R0EzQ1csb0JBQW9CO2tHQUFwQixvQkFBb0Isay9EQ3JCakMsd2hCQWNBLDJDRElXLG1CQUFtQix5VEFBRSxpQkFBaUI7OzJGQUdwQyxvQkFBb0I7a0JBUGhDLFNBQVM7aUNBQ0csSUFBSSxZQUNOLGdHQUFnRyxXQUVqRyxDQUFDLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLGtCQUNqQyxDQUFDLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IE11bHRpU2VsZWN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9tdWx0aXNlbGVjdCc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCwgVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJ2FyaWwvdWkvbGliJztcclxuXHJcbmltcG9ydCB7IFNlbGVjdEJveEl0ZW0sIFNlbGVjdGlvbkdyb3VwRFRPLCBTZWxlY3Rpb25SZXF1ZXN0RFRPIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcmlsLW11bHRpLXNlbGVjdFtuZ01vZGVsXSwgYXJpbC1tdWx0aS1zZWxlY3RbZm9ybUNvbnRyb2xdLCBhcmlsLW11bHRpLXNlbGVjdFtmb3JtQ29udHJvbE5hbWVdJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuXHRpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgTXVsdGlTZWxlY3RNb2R1bGVdLFxyXG5cdGhvc3REaXJlY3RpdmVzOiBbVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50IHtcclxuXHRvcHRpb25zID0gaW5wdXQ8W10+KFtdKTtcclxuXHRvcHRpb25MYWJlbCA9IGlucHV0PHN0cmluZz4oJ3RleHQnKTtcclxuXHRvcHRpb25WYWx1ZSA9IGlucHV0PHN0cmluZz4oJ2tleScpO1xyXG5cdGRlZmF1bHRMYWJlbCA9IGlucHV0PHN0cmluZz4oJ1Nlw6dpbml6Jyk7XHJcblx0c2VsZWN0ZWRJdGVtc0xhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7IC8vIGRlZmF1bHQgdmFsdWUgLT4gKHswfSBpdGVtcyBzZWxlY3RlZFxyXG5cdGFwcGVuZFRvID0gaW5wdXQ8c3RyaW5nPignYm9keScpO1xyXG5cdHN0eWxlID0gaW5wdXQ8b2JqZWN0Pih7fSk7XHJcblx0c3R5bGVDbGFzcyA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdHRvb2x0aXAgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHR0b29sdGlwUG9zaXRpb24gPSBpbnB1dDxhbnk+KCd0b3AnKTtcclxuXHRncm91cE5hbWUgPSBpbnB1dCgnJyk7XHJcblx0cGFyZW50U2VsZWN0aW9uS2V5ID0gaW5wdXQobnVsbCk7XHJcblx0c2VsZWN0aW9uSXRlbXMgPSBzaWduYWw8U2VsZWN0Qm94SXRlbVtdIHwgbnVsbD4obnVsbCk7XHJcblx0c2hvd0NsZWFyID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuXHRcdHB1YmxpYyB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlXHJcblx0KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZ3JvdXBOYW1lKCkgfHwgdGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKSkgdGhpcy5nZXRTZWxlY3Rpb25JdGVtcygpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRhc3luYyBnZXRTZWxlY3Rpb25JdGVtcygpIHtcclxuXHRcdGNvbnN0IHBheWxvYWQ6IFNlbGVjdGlvblJlcXVlc3REVE8gPSB7XHJcblx0XHRcdGdyb3VwTmFtZTogdGhpcy5ncm91cE5hbWUoKSxcclxuXHRcdFx0cGFyZW50U2VsZWN0aW9uS2V5OiB0aGlzLnBhcmVudFNlbGVjdGlvbktleSgpXHJcblx0XHR9O1xyXG5cdFx0Y29uc3QgaG9zdEFwaSA9IEFQSV9DT05GSUdTLmFwaS5yZXBsYWNlKC9cXC9bXlxcL10rXFwvdjEkLywgYC9ob3N0L3YxYCk7XHJcblx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG5cdFx0XHR0aGlzLmh0dHAucG9zdDxTZWxlY3Rpb25Hcm91cERUTz4oaG9zdEFwaSArICcvc2VsZWN0aW9uLWdyb3VwL2xvYWQnLCBwYXlsb2FkKVxyXG5cdFx0KTtcclxuXHJcblx0XHR0aGlzLnNlbGVjdGlvbkl0ZW1zLnNldChcclxuXHRcdFx0c2VsZWN0aW9uR3JvdXA/LnNlbGVjdGlvbkl0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcclxuXHRcdFx0XHRrZXk6IGl0ZW0uc2VsZWN0aW9uS2V5LFxyXG5cdFx0XHRcdHRleHQ6IGl0ZW0uc2VsZWN0aW9uRGlzcGxheSxcclxuXHRcdFx0XHRwYXJlbnRTZWxlY3Rpb25LZXk6IGl0ZW0ucGFyZW50U2VsZWN0aW9uS2V5XHJcblx0XHRcdH0pKVxyXG5cdFx0KTtcclxuXHR9XHJcbn1cclxuIiwiPHAtbXVsdGlTZWxlY3RcclxuXHRbb3B0aW9uc109XCJzZWxlY3Rpb25JdGVtcygpIHx8IG9wdGlvbnMoKVwiXHJcblx0W29wdGlvbkxhYmVsXT1cIm9wdGlvbkxhYmVsKClcIlxyXG5cdFtvcHRpb25WYWx1ZV09XCJvcHRpb25WYWx1ZSgpXCJcclxuXHRbZGVmYXVsdExhYmVsXT1cImRlZmF1bHRMYWJlbCgpXCJcclxuXHRbc2VsZWN0ZWRJdGVtc0xhYmVsXT1cInNlbGVjdGVkSXRlbXNMYWJlbCgpXCJcclxuXHRbc3R5bGVdPVwic3R5bGUoKVwiXHJcblx0W3N0eWxlQ2xhc3NdPVwic3R5bGVDbGFzcygpXCJcclxuXHRbdG9vbHRpcF09XCJ0b29sdGlwKClcIlxyXG5cdFt0b29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uKClcIlxyXG5cdFtmb3JtQ29udHJvbF09XCJuZ0NvbnRyb2wuY29udHJvbFwiXHJcblx0KG5nTW9kZWxDaGFuZ2UpPVwibmdDb250cm9sLnZpZXdUb01vZGVsVXBkYXRlKCRldmVudClcIlxyXG5cdFthcHBlbmRUb109XCJhcHBlbmRUbygpXCJcclxuXHRbc2hvd0NsZWFyXT1cInNob3dDbGVhcigpXCIgLz5cclxuIl19
56
+ }], ctorParameters: () => [{ type: i1.SelectionGroupService }, { type: i2.TranslocoService }] });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvbXVsdGlTZWxlY3Qvc3JjL211bHRpLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL211bHRpU2VsZWN0L3NyYy9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUt4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7QUFXekUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGtCQUFrQjtJQWdDM0QsWUFDa0IscUJBQTRDLEVBQ3RELGdCQUFrQztRQUV6QyxLQUFLLEVBQUUsQ0FBQztRQUhTLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDdEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWpDMUMsWUFBTyxHQUFHLEtBQUssQ0FBSyxFQUFFLENBQUMsQ0FBQztRQUN4QixnQkFBVyxHQUFHLEtBQUssQ0FBUyxNQUFNLENBQUMsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLEtBQUssQ0FBUyxLQUFLLENBQUMsQ0FBQztRQUNuQyxpQkFBWSxHQUFHLEtBQUssQ0FBUyxTQUFTLENBQUMsQ0FBQztRQUN4Qyx1QkFBa0IsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyx1Q0FBdUM7UUFDL0UsYUFBUSxHQUFHLEtBQUssQ0FBUyxNQUFNLENBQUMsQ0FBQztRQUNqQyxVQUFLLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLGVBQVUsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDL0IsWUFBTyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUM1QixvQkFBZSxHQUFHLEtBQUssQ0FBTSxLQUFLLENBQUMsQ0FBQztRQUNwQyxjQUFTLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLHVCQUFrQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxjQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRWxDLGtHQUFrRztRQUNsRyxrR0FBa0c7UUFDbEcsbUdBQW1HO1FBQ25HLG1CQUFjLEdBQUcsUUFBUSxDQUF5QixHQUFHLEVBQUU7WUFDdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxTQUFTO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQzVCLE1BQU0sR0FBRyxHQUFHLEdBQUcsU0FBUyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2pFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRSxPQUFPLENBQ04sS0FBSyxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzFDLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDdEIsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQzNCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7YUFDM0MsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUNYLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQU9GLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkMsSUFBSSxTQUFTO2dCQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ3BHLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0F6Q1csb0JBQW9CO2tHQUFwQixvQkFBb0Isay9EQ25CakMsd2hCQWNBLDJDREVXLG1CQUFtQix5VEFBRSxpQkFBaUI7OzJGQUdwQyxvQkFBb0I7a0JBUGhDLFNBQVM7aUNBQ0csSUFBSSxZQUNOLGdHQUFnRyxXQUVqRyxDQUFDLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLGtCQUNqQyxDQUFDLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTXVsdGlTZWxlY3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL211bHRpc2VsZWN0JztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBTZWxlY3Rpb25Hcm91cFNlcnZpY2UgfSBmcm9tICdhcmlsL3NlbGVjdGlvbic7XHJcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCwgVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJ2FyaWwvdWkvbGliJztcclxuXHJcbmltcG9ydCB7IFNlbGVjdEJveEl0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FyaWwtbXVsdGktc2VsZWN0W25nTW9kZWxdLCBhcmlsLW11bHRpLXNlbGVjdFtmb3JtQ29udHJvbF0sIGFyaWwtbXVsdGktc2VsZWN0W2Zvcm1Db250cm9sTmFtZV0nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG5cdGltcG9ydHM6IFtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNdWx0aVNlbGVjdE1vZHVsZV0sXHJcblx0aG9zdERpcmVjdGl2ZXM6IFtWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXRDb21wb25lbnQge1xyXG5cdG9wdGlvbnMgPSBpbnB1dDxbXT4oW10pO1xyXG5cdG9wdGlvbkxhYmVsID0gaW5wdXQ8c3RyaW5nPigndGV4dCcpO1xyXG5cdG9wdGlvblZhbHVlID0gaW5wdXQ8c3RyaW5nPigna2V5Jyk7XHJcblx0ZGVmYXVsdExhYmVsID0gaW5wdXQ8c3RyaW5nPignU2XDp2luaXonKTtcclxuXHRzZWxlY3RlZEl0ZW1zTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCcnKTsgLy8gZGVmYXVsdCB2YWx1ZSAtPiAoezB9IGl0ZW1zIHNlbGVjdGVkXHJcblx0YXBwZW5kVG8gPSBpbnB1dDxzdHJpbmc+KCdib2R5Jyk7XHJcblx0c3R5bGUgPSBpbnB1dDxvYmplY3Q+KHt9KTtcclxuXHRzdHlsZUNsYXNzID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0dG9vbHRpcCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdHRvb2x0aXBQb3NpdGlvbiA9IGlucHV0PGFueT4oJ3RvcCcpO1xyXG5cdGdyb3VwTmFtZSA9IGlucHV0KCcnKTtcclxuXHRwYXJlbnRTZWxlY3Rpb25LZXkgPSBpbnB1dChudWxsKTtcclxuXHRzaG93Q2xlYXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cdC8vIEVudW0gaXRlbSdsYXLEsSBhcnTEsWsgbWVya2V6aSBTZWxlY3Rpb25Hcm91cFNlcnZpY2UgY2FjaGUnaW5kZW4gb2t1bnVyIChsb2NhbFN0b3JhZ2UgKyBjcm9zcy1NRkVcclxuXHQvLyBkZWR1cGUpLiBncm91cE5hbWUgeW9rc2EgbnVsbCBkw7ZuZXIg4oaSIHRlbXBsYXRlIG9wdGlvbnMoKSBpbnB1dCd1bmEgZMO8xZ9lci4gQXluxLEgZ3JvdXBOYW1lfnBhcmVudFxyXG5cdC8vIGnDp2luIHRla3JhciBIVFRQIGF0xLFsbWF6OyBwYXJlbnRTZWxlY3Rpb25LZXkgZGXEn2nFn2ltaW5kZSBzdGFsZS1yZXNwb25zZSByYWNlJ2luaSBzZXJ2aXMgecO2bmV0aXIuXHJcblx0c2VsZWN0aW9uSXRlbXMgPSBjb21wdXRlZDxTZWxlY3RCb3hJdGVtW10gfCBudWxsPigoKSA9PiB7XHJcblx0XHRjb25zdCBncm91cE5hbWUgPSB0aGlzLmdyb3VwTmFtZSgpO1xyXG5cdFx0aWYgKCFncm91cE5hbWUpIHJldHVybiBudWxsO1xyXG5cdFx0Y29uc3Qga2V5ID0gYCR7Z3JvdXBOYW1lfX4ke3RoaXMucGFyZW50U2VsZWN0aW9uS2V5KCkgPz8gJ0FMTCd9YDtcclxuXHRcdGNvbnN0IGdyb3VwID0gdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKClba2V5XTtcclxuXHRcdHJldHVybiAoXHJcblx0XHRcdGdyb3VwPy5zZWxlY3Rpb25JdGVtcz8ubWFwKChpdGVtOiBhbnkpID0+ICh7XHJcblx0XHRcdFx0a2V5OiBpdGVtLnNlbGVjdGlvbktleSxcclxuXHRcdFx0XHR0ZXh0OiBpdGVtLnNlbGVjdGlvbkRpc3BsYXksXHJcblx0XHRcdFx0cGFyZW50U2VsZWN0aW9uS2V5OiBpdGVtLnBhcmVudFNlbGVjdGlvbktleVxyXG5cdFx0XHR9KSkgPz8gbnVsbFxyXG5cdFx0KTtcclxuXHR9KTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IHNlbGVjdGlvbkdyb3VwU2VydmljZTogU2VsZWN0aW9uR3JvdXBTZXJ2aWNlLFxyXG5cdFx0cHVibGljIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2VcclxuXHQpIHtcclxuXHRcdHN1cGVyKCk7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRjb25zdCBncm91cE5hbWUgPSB0aGlzLmdyb3VwTmFtZSgpO1xyXG5cdFx0XHRpZiAoZ3JvdXBOYW1lKSB0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5mZXRjaEVudW0oZ3JvdXBOYW1lLCB0aGlzLnBhcmVudFNlbGVjdGlvbktleSgpID8/ICdBTEwnKTtcclxuXHRcdH0pO1xyXG5cdH1cclxufVxyXG4iLCI8cC1tdWx0aVNlbGVjdFxyXG5cdFtvcHRpb25zXT1cInNlbGVjdGlvbkl0ZW1zKCkgfHwgb3B0aW9ucygpXCJcclxuXHRbb3B0aW9uTGFiZWxdPVwib3B0aW9uTGFiZWwoKVwiXHJcblx0W29wdGlvblZhbHVlXT1cIm9wdGlvblZhbHVlKClcIlxyXG5cdFtkZWZhdWx0TGFiZWxdPVwiZGVmYXVsdExhYmVsKClcIlxyXG5cdFtzZWxlY3RlZEl0ZW1zTGFiZWxdPVwic2VsZWN0ZWRJdGVtc0xhYmVsKClcIlxyXG5cdFtzdHlsZV09XCJzdHlsZSgpXCJcclxuXHRbc3R5bGVDbGFzc109XCJzdHlsZUNsYXNzKClcIlxyXG5cdFt0b29sdGlwXT1cInRvb2x0aXAoKVwiXHJcblx0W3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb24oKVwiXHJcblx0W2Zvcm1Db250cm9sXT1cIm5nQ29udHJvbC5jb250cm9sXCJcclxuXHQobmdNb2RlbENoYW5nZSk9XCJuZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUoJGV2ZW50KVwiXHJcblx0W2FwcGVuZFRvXT1cImFwcGVuZFRvKClcIlxyXG5cdFtzaG93Q2xlYXJdPVwic2hvd0NsZWFyKClcIiAvPlxyXG4iXX0=
@@ -223,7 +223,7 @@ export class RelativeDateSelectorComponent extends BaseInputComponent {
223
223
  return `relativeDateSelector.units.${unitNameMap[unit]}${suffix}`;
224
224
  }
225
225
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: RelativeDateSelectorComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
226
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: RelativeDateSelectorComponent, isStandalone: true, selector: "aril-relative-date-picker[ngModel], aril-relative-date-picker[formControl], aril-relative-date-picker[formControlName]", viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: ["op"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i2.ValueAccessorDirective }], ngImport: i0, template: "<div class=\"relative-date-selector\">\r\n\t<div class=\"input-wrapper flex align-items-center\" (click)=\"onInputClick($event)\">\r\n\t\t<input\r\n\t\t\ttype=\"text\"\r\n\t\t\treadonly\r\n\t\t\t[value]=\"getDisplayValue()\"\r\n\t\t\tclass=\"p-inputtext p-component\"\r\n\t\t\t[class.p-invalid]=\"ngControl.invalid && ngControl.touched\"\r\n\t\t\t[placeholder]=\"translocoService.translate('relativeDateSelector.placeholder')\"\r\n\t\t\t[pTooltip]=\"ngControl.invalid && ngControl.touched ? (ngControl.control.value | inputErrorMessage: ngControl) : ''\"\r\n\t\t\t[tooltipOptions]=\"tooltipOptions\" />\r\n\t\t<div class=\"calendar-icon-wrapper flex align-items-center justify-content-center\" (click)=\"toggleQuickSelect($event)\">\r\n\t\t\t<i class=\"pi pi-calendar calendar-icon\"></i>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<p-overlayPanel\r\n\t\t#op\r\n\t\t[style]=\"{ minWidth: '350px', maxHeight: '600px', overflow: 'visible' }\"\r\n\t\t[dismissable]=\"true\"\r\n\t\t(onHide)=\"showOverlayPanel.set(false)\">\r\n\t\t<p-tabView (onChange)=\"onTabChange($event)\" [activeIndex]=\"activeTabIndex()\">\r\n\t\t\t<p-tabPanel [header]=\"translocoService.translate('relativeDateSelector.absolute')\">\r\n\t\t\t\t<div class=\"flex justify-content-center\">\r\n\t\t\t\t\t<aril-calendar\r\n\t\t\t\t\t\t[(ngModel)]=\"absoluteDate\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onAbsoluteDateChange($event)\"\r\n\t\t\t\t\t\t[inline]=\"true\"\r\n\t\t\t\t\t\t[showTime]=\"true\"\r\n\t\t\t\t\t\t[showSeconds]=\"true\">\r\n\t\t\t\t\t</aril-calendar>\r\n\t\t\t\t</div>\r\n\t\t\t</p-tabPanel>\r\n\r\n\t\t\t<p-tabPanel [header]=\"translocoService.translate('relativeDateSelector.relative')\">\r\n\t\t\t\t<div>\r\n\t\t\t\t\t<div class=\"flex flex-column gap-2 m-2\">\r\n\t\t\t\t\t\t<aril-number\r\n\t\t\t\t\t\t\t[(ngModel)]=\"relativeValue\"\r\n\t\t\t\t\t\t\t(ngModelChange)=\"onRelativeChange()\"\r\n\t\t\t\t\t\t\t[min]=\"1\"\r\n\t\t\t\t\t\t\t[showButtons]=\"true\"\r\n\t\t\t\t\t\t\t[placeholder]=\"translocoService.translate('relativeDateSelector.valuePlaceholder')\">\r\n\t\t\t\t\t\t</aril-number>\r\n\r\n\t\t\t\t\t\t<aril-select-box\r\n\t\t\t\t\t\t\t[(ngModel)]=\"relativeUnit\"\r\n\t\t\t\t\t\t\t(ngModelChange)=\"onRelativeChange()\"\r\n\t\t\t\t\t\t\t[items]=\"relativeUnits\"\r\n\t\t\t\t\t\t\t[itemKey]=\"'value'\"\r\n\t\t\t\t\t\t\t[itemText]=\"'label'\"\r\n\t\t\t\t\t\t\t[placeholder]=\"translocoService.translate('relativeDateSelector.selectUnit')\">\r\n\t\t\t\t\t\t</aril-select-box>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"m-2\">\r\n\t\t\t\t\t\t<small class=\"text-muted\">\r\n\t\t\t\t\t\t\t<strong>{{ translocoService.translate('relativeDateSelector.examples') }}:</strong> {{ translocoService.translate('relativeDateSelector.examplesText') }}\r\n\t\t\t\t\t\t</small>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</p-tabPanel>\r\n\t\t</p-tabView>\r\n\t</p-overlayPanel>\r\n\r\n\t<!-- Quick Select Panel -->\r\n\t@if (showQuickSelect()) {\r\n\t\t<div class=\"quick-select-panel mt-2\">\r\n\t\t\t<div class=\"quick-select-header flex justify-content-between align-items-center p-3\">\r\n\t\t\t\t<span class=\"title\">{{ translocoService.translate('relativeDateSelector.quickSelect') }}</span>\r\n\t\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t\t<i class=\"pi pi-times cursor-pointer\" (click)=\"showQuickSelect.set(false)\"></i>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"quick-select-body p-3\">\r\n\t\t\t\t<!-- Custom Quick Select Inputs -->\r\n\t\t\t\t<div class=\"quick-select-custom mb-3 pb-3\">\r\n\t\t\t\t\t<div class=\"flex gap-2 align-items-center mb-3\">\r\n\t\t\t\t\t\t<aril-select-box\r\n\t\t\t\t\t\t\t[(ngModel)]=\"quickSelectDirection\"\r\n\t\t\t\t\t\t\t[items]=\"quickSelectDirections\"\r\n\t\t\t\t\t\t\t[itemKey]=\"'value'\"\r\n\t\t\t\t\t\t\t[itemText]=\"'label'\">\r\n\t\t\t\t\t\t</aril-select-box>\r\n\r\n\t\t\t\t\t\t<aril-number [(ngModel)]=\"quickSelectValue\" [min]=\"1\" [showButtons]=\"true\"> </aril-number>\r\n\r\n\t\t\t\t\t\t<aril-select-box\r\n\t\t\t\t\t\t\t[(ngModel)]=\"quickSelectUnit\"\r\n\t\t\t\t\t\t\t[items]=\"quickSelectUnits\"\r\n\t\t\t\t\t\t\t[itemKey]=\"'value'\"\r\n\t\t\t\t\t\t\t[itemText]=\"'label'\">\r\n\t\t\t\t\t\t</aril-select-box>\r\n\r\n\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t[label]=\"translocoService.translate('relativeDateSelector.apply')\"\r\n\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t(clickEvent)=\"applyQuickSelectCustom()\"\r\n\t\t\t\t\t\t\t[style]=\"{ 'min-width': '80px' }\">\r\n\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- Commonly Used Options -->\r\n\t\t\t\t<div class=\"quick-select-section\">\r\n\t\t\t\t\t<span class=\"title-section mb-2\">{{ translocoService.translate('relativeDateSelector.commonlyUsed') }}</span>\r\n\t\t\t\t\t<div class=\"quick-select-options\">\r\n\t\t\t\t\t\t@for (option of commonlyUsedOptions; track option.value) {\r\n\t\t\t\t\t\t\t<button type=\"button\" class=\"quick-select-option\" (click)=\"applyQuickSelect(option)\">\r\n\t\t\t\t\t\t\t\t{{ option.label }}\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t}\r\n</div>\r\n", styles: [".relative-date-selector{position:relative}.relative-date-selector .input-wrapper{position:relative;cursor:pointer}.relative-date-selector .input-wrapper input{width:100%;padding-right:3rem;cursor:pointer;transition:all var(--transition-duration) ease}.relative-date-selector .input-wrapper input:hover{border-color:var(--focus-border-color)}.relative-date-selector .input-wrapper input:focus{box-shadow:var(--focus-ring);border-color:var(--focus-border-color)}.relative-date-selector .input-wrapper input.p-invalid{border-color:var(--error-300)}.relative-date-selector .input-wrapper .calendar-icon-wrapper{position:absolute;right:.5rem;width:2rem;height:2rem;background:var(--surface-100);border:1px solid var(--surface-border);border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-duration) ease;z-index:2}.relative-date-selector .input-wrapper .calendar-icon-wrapper:hover{background:var(--surface-200);border-color:var(--primary-color);transform:scale(1.05)}.relative-date-selector .input-wrapper .calendar-icon-wrapper:hover .calendar-icon{color:var(--primary-color)}.relative-date-selector .input-wrapper .calendar-icon-wrapper:active{transform:scale(.98)}.relative-date-selector .input-wrapper .calendar-icon-wrapper .calendar-icon{font-size:.9375rem;color:var(--text-color-secondary);transition:color var(--transition-duration) ease}.relative-date-selector .quick-select-panel{position:absolute;top:100%;right:0;background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;box-shadow:0 4px 20px #00000014;z-index:1000;width:460px;max-height:520px;overflow:hidden;animation:slideDown var(--transition-duration) ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.relative-date-selector .quick-select-panel .quick-select-header{border-bottom:1px solid var(--surface-200);background:var(--surface-100)}.relative-date-selector .quick-select-panel .quick-select-header .title{margin:0;font-size:13px;font-weight:700;color:var(--surface-600)}.relative-date-selector .quick-select-panel .quick-select-header i{cursor:pointer;color:var(--text-color-secondary);font-size:.875rem;transition:all var(--transition-duration) ease}.relative-date-selector .quick-select-panel .quick-select-header i:hover{color:var(--text-color);transform:scale(1.1)}.relative-date-selector .quick-select-panel .quick-select-body{max-height:440px;overflow-y:auto}.relative-date-selector .quick-select-panel .quick-select-custom{border-bottom:1px solid var(--surface-200)}.relative-date-selector .quick-select-panel .quick-select-section .title-section{display:inline-block;font-size:.8rem;font-weight:600;color:var(--text-color-secondary);text-transform:uppercase;letter-spacing:.5px}.relative-date-selector .quick-select-panel .quick-select-options{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.relative-date-selector .quick-select-panel .quick-select-options .quick-select-option{padding:.625rem 1rem;background:var(--surface-100);border:1px solid var(--surface-200);text-align:left;cursor:pointer;border-radius:var(--border-radius);transition:all var(--transition-duration) ease;color:var(--text-color);font-size:.875rem;font-weight:500}.relative-date-selector .quick-select-panel .quick-select-options .quick-select-option:hover{transform:translateY(-1px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: OverlayPanelModule }, { kind: "component", type: i4.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: TabViewModule }, { kind: "component", type: i5.TabView, selector: "p-tabView", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "nextButtonAriaLabel", "prevButtonAriaLabel", "autoHideButtons", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i5.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "component", type: CalendarComponent, selector: "aril-calendar[ngModel], aril-calendar[formControl], aril-calendar[formControlName]", inputs: ["minDate", "maxDate", "inputStyle", "inputStyleClass", "autoZIndex", "inline", "showIcon", "showTime", "showWeek", "showSeconds", "disabledDates", "numberOfMonthToShow", "appendTo", "dataType", "placeholder", "view", "selectionMode", "rangeConfig", "tabindex", "showOnFocus", "timeOnly", "keepInvalid"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }, { kind: "component", type: NumberComponent, selector: "aril-number[ngModel], aril-number[formControl], aril-number[formControlName]", inputs: ["min", "max", "showButtons", "placeholder", "prefix", "locale", "suffix", "maxlength", "showClear", "useGrouping", "maxDigits", "minDigits", "tabindex", "inputStyle", "buttonLayout"] }, { kind: "component", type: SelectBoxComponent, selector: "aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]", inputs: ["itemKey", "itemText", "groupName", "parentSelectionKey", "tabindex", "items", "grouped", "showClearButton", "placeholder", "searchExpr"], outputs: ["onSelectionChanged"] }, { kind: "pipe", type: InputErrorMessagePipe, name: "inputErrorMessage" }] }); }
226
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: RelativeDateSelectorComponent, isStandalone: true, selector: "aril-relative-date-picker[ngModel], aril-relative-date-picker[formControl], aril-relative-date-picker[formControlName]", viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: ["op"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i2.ValueAccessorDirective }], ngImport: i0, template: "<div class=\"relative-date-selector\">\r\n\t<div class=\"input-wrapper flex align-items-center\" (click)=\"onInputClick($event)\">\r\n\t\t<input\r\n\t\t\ttype=\"text\"\r\n\t\t\treadonly\r\n\t\t\t[value]=\"getDisplayValue()\"\r\n\t\t\tclass=\"p-inputtext p-component\"\r\n\t\t\t[class.p-invalid]=\"ngControl.invalid && ngControl.touched\"\r\n\t\t\t[placeholder]=\"translocoService.translate('relativeDateSelector.placeholder')\"\r\n\t\t\t[pTooltip]=\"ngControl.invalid && ngControl.touched ? (ngControl.control.value | inputErrorMessage: ngControl) : ''\"\r\n\t\t\t[tooltipOptions]=\"tooltipOptions\" />\r\n\t\t<div class=\"calendar-icon-wrapper flex align-items-center justify-content-center\" (click)=\"toggleQuickSelect($event)\">\r\n\t\t\t<i class=\"pi pi-calendar calendar-icon\"></i>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<p-overlayPanel\r\n\t\t#op\r\n\t\t[style]=\"{ minWidth: '350px', maxHeight: '600px', overflow: 'visible' }\"\r\n\t\t[dismissable]=\"true\"\r\n\t\t(onHide)=\"showOverlayPanel.set(false)\">\r\n\t\t<p-tabView (onChange)=\"onTabChange($event)\" [activeIndex]=\"activeTabIndex()\">\r\n\t\t\t<p-tabPanel [header]=\"translocoService.translate('relativeDateSelector.absolute')\">\r\n\t\t\t\t<div class=\"flex justify-content-center\">\r\n\t\t\t\t\t<aril-calendar\r\n\t\t\t\t\t\t[(ngModel)]=\"absoluteDate\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onAbsoluteDateChange($event)\"\r\n\t\t\t\t\t\t[inline]=\"true\"\r\n\t\t\t\t\t\t[showTime]=\"true\"\r\n\t\t\t\t\t\t[showSeconds]=\"true\">\r\n\t\t\t\t\t</aril-calendar>\r\n\t\t\t\t</div>\r\n\t\t\t</p-tabPanel>\r\n\r\n\t\t\t<p-tabPanel [header]=\"translocoService.translate('relativeDateSelector.relative')\">\r\n\t\t\t\t<div>\r\n\t\t\t\t\t<div class=\"flex flex-column gap-2 m-2\">\r\n\t\t\t\t\t\t<aril-number\r\n\t\t\t\t\t\t\t[(ngModel)]=\"relativeValue\"\r\n\t\t\t\t\t\t\t(ngModelChange)=\"onRelativeChange()\"\r\n\t\t\t\t\t\t\t[min]=\"1\"\r\n\t\t\t\t\t\t\t[showButtons]=\"true\"\r\n\t\t\t\t\t\t\t[placeholder]=\"translocoService.translate('relativeDateSelector.valuePlaceholder')\">\r\n\t\t\t\t\t\t</aril-number>\r\n\r\n\t\t\t\t\t\t<aril-select-box\r\n\t\t\t\t\t\t\t[(ngModel)]=\"relativeUnit\"\r\n\t\t\t\t\t\t\t(ngModelChange)=\"onRelativeChange()\"\r\n\t\t\t\t\t\t\t[items]=\"relativeUnits\"\r\n\t\t\t\t\t\t\t[itemKey]=\"'value'\"\r\n\t\t\t\t\t\t\t[itemText]=\"'label'\"\r\n\t\t\t\t\t\t\t[placeholder]=\"translocoService.translate('relativeDateSelector.selectUnit')\">\r\n\t\t\t\t\t\t</aril-select-box>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"m-2\">\r\n\t\t\t\t\t\t<small class=\"text-muted\">\r\n\t\t\t\t\t\t\t<strong>{{ translocoService.translate('relativeDateSelector.examples') }}:</strong> {{ translocoService.translate('relativeDateSelector.examplesText') }}\r\n\t\t\t\t\t\t</small>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</p-tabPanel>\r\n\t\t</p-tabView>\r\n\t</p-overlayPanel>\r\n\r\n\t<!-- Quick Select Panel -->\r\n\t@if (showQuickSelect()) {\r\n\t\t<div class=\"quick-select-panel mt-2\">\r\n\t\t\t<div class=\"quick-select-header flex justify-content-between align-items-center p-3\">\r\n\t\t\t\t<span class=\"title\">{{ translocoService.translate('relativeDateSelector.quickSelect') }}</span>\r\n\t\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t\t<i class=\"pi pi-times cursor-pointer\" (click)=\"showQuickSelect.set(false)\"></i>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"quick-select-body p-3\">\r\n\t\t\t\t<!-- Custom Quick Select Inputs -->\r\n\t\t\t\t<div class=\"quick-select-custom mb-3 pb-3\">\r\n\t\t\t\t\t<div class=\"flex gap-2 align-items-center mb-3\">\r\n\t\t\t\t\t\t<aril-select-box\r\n\t\t\t\t\t\t\t[(ngModel)]=\"quickSelectDirection\"\r\n\t\t\t\t\t\t\t[items]=\"quickSelectDirections\"\r\n\t\t\t\t\t\t\t[itemKey]=\"'value'\"\r\n\t\t\t\t\t\t\t[itemText]=\"'label'\">\r\n\t\t\t\t\t\t</aril-select-box>\r\n\r\n\t\t\t\t\t\t<aril-number [(ngModel)]=\"quickSelectValue\" [min]=\"1\" [showButtons]=\"true\"> </aril-number>\r\n\r\n\t\t\t\t\t\t<aril-select-box\r\n\t\t\t\t\t\t\t[(ngModel)]=\"quickSelectUnit\"\r\n\t\t\t\t\t\t\t[items]=\"quickSelectUnits\"\r\n\t\t\t\t\t\t\t[itemKey]=\"'value'\"\r\n\t\t\t\t\t\t\t[itemText]=\"'label'\">\r\n\t\t\t\t\t\t</aril-select-box>\r\n\r\n\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t[label]=\"translocoService.translate('relativeDateSelector.apply')\"\r\n\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t(clickEvent)=\"applyQuickSelectCustom()\"\r\n\t\t\t\t\t\t\t[style]=\"{ 'min-width': '80px' }\">\r\n\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- Commonly Used Options -->\r\n\t\t\t\t<div class=\"quick-select-section\">\r\n\t\t\t\t\t<span class=\"title-section mb-2\">{{ translocoService.translate('relativeDateSelector.commonlyUsed') }}</span>\r\n\t\t\t\t\t<div class=\"quick-select-options\">\r\n\t\t\t\t\t\t@for (option of commonlyUsedOptions; track option.value) {\r\n\t\t\t\t\t\t\t<button type=\"button\" class=\"quick-select-option\" (click)=\"applyQuickSelect(option)\">\r\n\t\t\t\t\t\t\t\t{{ option.label }}\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t}\r\n</div>\r\n", styles: [".relative-date-selector{position:relative}.relative-date-selector .input-wrapper{position:relative;cursor:pointer}.relative-date-selector .input-wrapper input{width:100%;padding-right:3rem;cursor:pointer;transition:all var(--transition-duration) ease}.relative-date-selector .input-wrapper input:hover{border-color:var(--focus-border-color)}.relative-date-selector .input-wrapper input:focus{box-shadow:var(--focus-ring);border-color:var(--focus-border-color)}.relative-date-selector .input-wrapper input.p-invalid{border-color:var(--error-300)}.relative-date-selector .input-wrapper .calendar-icon-wrapper{position:absolute;right:.5rem;width:2rem;height:2rem;background:var(--surface-100);border:1px solid var(--surface-border);border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-duration) ease;z-index:2}.relative-date-selector .input-wrapper .calendar-icon-wrapper:hover{background:var(--surface-200);border-color:var(--primary-color);transform:scale(1.05)}.relative-date-selector .input-wrapper .calendar-icon-wrapper:hover .calendar-icon{color:var(--primary-color)}.relative-date-selector .input-wrapper .calendar-icon-wrapper:active{transform:scale(.98)}.relative-date-selector .input-wrapper .calendar-icon-wrapper .calendar-icon{font-size:.9375rem;color:var(--text-color-secondary);transition:color var(--transition-duration) ease}.relative-date-selector .quick-select-panel{position:absolute;top:100%;right:0;background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;box-shadow:0 4px 20px #00000014;z-index:1000;width:460px;max-height:520px;overflow:hidden;animation:slideDown var(--transition-duration) ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.relative-date-selector .quick-select-panel .quick-select-header{border-bottom:1px solid var(--surface-200);background:var(--surface-100)}.relative-date-selector .quick-select-panel .quick-select-header .title{margin:0;font-size:13px;font-weight:700;color:var(--surface-600)}.relative-date-selector .quick-select-panel .quick-select-header i{cursor:pointer;color:var(--text-color-secondary);font-size:.875rem;transition:all var(--transition-duration) ease}.relative-date-selector .quick-select-panel .quick-select-header i:hover{color:var(--text-color);transform:scale(1.1)}.relative-date-selector .quick-select-panel .quick-select-body{max-height:440px;overflow-y:auto}.relative-date-selector .quick-select-panel .quick-select-custom{border-bottom:1px solid var(--surface-200)}.relative-date-selector .quick-select-panel .quick-select-section .title-section{display:inline-block;font-size:.8rem;font-weight:600;color:var(--text-color-secondary);text-transform:uppercase;letter-spacing:.5px}.relative-date-selector .quick-select-panel .quick-select-options{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.relative-date-selector .quick-select-panel .quick-select-options .quick-select-option{padding:.625rem 1rem;background:var(--surface-100);border:1px solid var(--surface-200);text-align:left;cursor:pointer;border-radius:var(--border-radius);transition:all var(--transition-duration) ease;color:var(--text-color);font-size:.875rem;font-weight:500}.relative-date-selector .quick-select-panel .quick-select-options .quick-select-option:hover{transform:translateY(-1px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: OverlayPanelModule }, { kind: "component", type: i4.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: TabViewModule }, { kind: "component", type: i5.TabView, selector: "p-tabView", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "nextButtonAriaLabel", "prevButtonAriaLabel", "autoHideButtons", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i5.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "component", type: CalendarComponent, selector: "aril-calendar[ngModel], aril-calendar[formControl], aril-calendar[formControlName]", inputs: ["minDate", "maxDate", "inputStyle", "inputStyleClass", "autoZIndex", "inline", "showIcon", "showTime", "showWeek", "showSeconds", "disabledDates", "numberOfMonthToShow", "appendTo", "dataType", "placeholder", "view", "selectionMode", "rangeConfig", "tabindex", "showOnFocus", "timeOnly", "keepInvalid"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }, { kind: "component", type: NumberComponent, selector: "aril-number[ngModel], aril-number[formControl], aril-number[formControlName]", inputs: ["min", "max", "showButtons", "placeholder", "prefix", "locale", "suffix", "maxlength", "showClear", "useGrouping", "maxDigits", "minDigits", "tabindex", "inputStyle", "buttonLayout"] }, { kind: "component", type: SelectBoxComponent, selector: "aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]", inputs: ["itemKey", "itemText", "parentSelectionKey", "tabindex", "items", "grouped", "showClearButton", "placeholder", "searchExpr"], outputs: ["onSelectionChanged"] }, { kind: "pipe", type: InputErrorMessagePipe, name: "inputErrorMessage" }] }); }
227
227
  }
228
228
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: RelativeDateSelectorComponent, decorators: [{
229
229
  type: Component,
@@ -245,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
245
245
  type: ViewChild,
246
246
  args: ['op']
247
247
  }] } });
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpdmUtZGF0ZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL3JlbGF0aXZlRGF0ZVNlbGVjdG9yL3NyYy9yZWxhdGl2ZS1kYXRlLXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvcmVsYXRpdmVEYXRlU2VsZWN0b3Ivc3JjL3JlbGF0aXZlLWRhdGUtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxnQ0FBZ0MsQ0FBQztBQUV4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7O0FBNkIvRyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsa0JBQWtCO0lBeUJwRSxZQUE0QixnQkFBa0M7UUFDN0QsS0FBSyxFQUFFLENBQUM7UUFEbUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXRCOUQsbUJBQWMsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsb0JBQWUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDekMscUJBQWdCLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRTFDLGdCQUFnQjtRQUNoQixpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFFbkMsZ0JBQWdCO1FBQ2hCLGtCQUFhLEdBQWtCLElBQUksQ0FBQztRQUNwQyxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFDbkMsc0JBQWlCLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDO1FBRS9DLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCLDBCQUFxQixHQUE0QyxFQUFFLENBQUM7UUFDcEUscUJBQWdCLEdBQTRDLEVBQUUsQ0FBQztRQUMvRCx3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBRTlDLHNCQUFzQjtRQUN0Qix5QkFBb0IsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7UUFDbEQscUJBQWdCLEdBQWtCLElBQUksQ0FBQztRQUN2QyxvQkFBZSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztRQUsxQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDZCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDRixDQUFDO0lBRU8saUJBQWlCO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDdEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3hELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRWhFLGlCQUFpQjtRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDbEQsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbEMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQ3JDLDhCQUE4QixTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDOUU7WUFDRCxLQUFLLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFFO1NBQ3RCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLHFCQUFxQixHQUFHO1lBQzVCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLENBQUMsSUFBSSxFQUFFO1lBQzFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLENBQUMsTUFBTSxFQUFFO1NBQzVHLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkQsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsOEJBQThCLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hGLEtBQUssRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDLENBQUM7UUFFSiw4QkFBOEI7UUFDOUIsTUFBTSxZQUFZLEdBQUc7WUFDcEIsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLGdCQUFnQixDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3ZELEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMzRCxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUMsSUFBSSxJQUFJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzdGLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDaEcsRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNoRyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUMsSUFBSSxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3pGLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDNUYsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN4RixFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFGLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUYsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRTtTQUN6RixDQUFDO1FBRUYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckQsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMscUNBQXFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN0RixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7U0FDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQXlDO1FBQ3RELElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25CLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMzQixDQUFDO2lCQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEMsQ0FBQztRQUNGLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDMUIsQ0FBQztJQUNGLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFhO1FBQy9CLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsNkRBQTZELENBQUMsQ0FBQztRQUV6RixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDMUMsSUFBSSxTQUFTLElBQUksTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBa0MsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksR0FBRyxTQUFTLENBQUM7WUFDdEMsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBbUI7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUF3QjtRQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JELENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzNGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakYsQ0FBQztJQUNGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUF5QjtRQUN6QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxzQkFBc0I7UUFDckIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMzRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0YsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQWE7UUFDdkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8sc0JBQXNCO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVk7UUFDN0IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDRixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVk7UUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGVBQWU7UUFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFFNUMsSUFBSSxLQUFLLElBQUksSUFBSTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRTdCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQWE7UUFDdkMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUM7Z0JBQ0osTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzFELE9BQU8sTUFBTSxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1lBQzVDLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNoQixPQUFPLE9BQU8sQ0FBQztZQUNoQixDQUFDO1FBQ0YsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2hCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxLQUFhO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFzQixFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQ25HLElBQUksV0FBVyxFQUFFLENBQUM7WUFDakIsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQzFCLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDL0QsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzFDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQ3BELFNBQVMsS0FBSyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FDcEcsQ0FBQztZQUNGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzlGLE9BQU8sR0FBRyxhQUFhLElBQUksTUFBTSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2pELENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxJQUFZLEVBQUUsU0FBaUI7UUFDNUQsTUFBTSxXQUFXLEdBQXlDO1lBQ3pELENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsT0FBTztZQUN4RCxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLG9CQUFvQixDQUFDLE9BQU87WUFDeEQsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxLQUFLO1lBQ3BELENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsb0JBQW9CLENBQUMsSUFBSTtZQUNsRCxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLG9CQUFvQixDQUFDLEtBQUs7WUFDcEQsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxNQUFNO1lBQ3RELENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsS0FBSztTQUNwRCxDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQ1gsU0FBUyxLQUFLLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUM7UUFDeEcsT0FBTyw4QkFBOEIsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ25FLENBQUM7OEdBbFBXLDZCQUE2QjtrR0FBN0IsNkJBQTZCLHlXQy9DMUMscWlLQXNIQSx1MUdEdEZFLFlBQVksOEJBQ1osbUJBQW1CLHNJQUNuQixXQUFXLHNQQUNYLGtCQUFrQixrV0FDbEIsYUFBYSwya0JBQ2IsYUFBYSxxWEFDYixlQUFlLCtCQUNmLGlCQUFpQix3YkFDakIsZUFBZSw4TkFDZixlQUFlLDBUQUNmLGtCQUFrQixxVEFDbEIscUJBQXFCOzsyRkFJViw2QkFBNkI7a0JBdEJ6QyxTQUFTO2lDQUNHLElBQUksWUFFZix3SEFBd0gsV0FHaEg7d0JBQ1IsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLHFCQUFxQjtxQkFDckIsa0JBQ2UsQ0FBQyxzQkFBc0IsQ0FBQztxRkFHdkIsWUFBWTtzQkFBNUIsU0FBUzt1QkFBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBzaWduYWwsIFZpZXdDaGlsZCwgT25Jbml0LCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgT3ZlcmxheVBhbmVsLCBPdmVybGF5UGFuZWxNb2R1bGUgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XHJcbmltcG9ydCB7IFRhYlZpZXdNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYnZpZXcnO1xyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgZm9ybWF0LCBwYXJzZSB9IGZyb20gJ2RhdGUtZm5zJztcclxuXHJcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCwgSW5wdXRFcnJvck1lc3NhZ2VQaXBlLCBWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnYXJpbC91aS9saWInO1xyXG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvY2FsZW5kYXInO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IE51bWJlckNvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvbnVtYmVyJztcclxuaW1wb3J0IHsgU2VsZWN0Qm94Q29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9zZWxlY3RCb3gnO1xyXG5pbXBvcnQgJ2FyaWwvdXRpbC9wcmltaXRpdmUtZXh0ZW5zaW9ucyc7XHJcblxyXG5pbXBvcnQgeyBSZWxhdGl2ZURhdGVVbml0LCBSZWxhdGl2ZURhdGVEaXJlY3Rpb24sIFJlbGF0aXZlRGF0ZVVuaXROYW1lLCBSZWxhdGl2ZURhdGVVbml0U3VmZml4IH0gZnJvbSAnLi9lbnVtJztcclxuXHJcbmludGVyZmFjZSBRdWlja1NlbGVjdE9wdGlvbiB7XHJcblx0bGFiZWw6IHN0cmluZztcclxuXHR2YWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOlxyXG5cdFx0J2FyaWwtcmVsYXRpdmUtZGF0ZS1waWNrZXJbbmdNb2RlbF0sIGFyaWwtcmVsYXRpdmUtZGF0ZS1waWNrZXJbZm9ybUNvbnRyb2xdLCBhcmlsLXJlbGF0aXZlLWRhdGUtcGlja2VyW2Zvcm1Db250cm9sTmFtZV0nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9yZWxhdGl2ZS1kYXRlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9yZWxhdGl2ZS1kYXRlLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0aW1wb3J0czogW1xyXG5cdFx0Q29tbW9uTW9kdWxlLFxyXG5cdFx0UmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuXHRcdEZvcm1zTW9kdWxlLFxyXG5cdFx0T3ZlcmxheVBhbmVsTW9kdWxlLFxyXG5cdFx0VGFiVmlld01vZHVsZSxcclxuXHRcdFRvb2x0aXBNb2R1bGUsXHJcblx0XHRUcmFuc2xvY29Nb2R1bGUsXHJcblx0XHRDYWxlbmRhckNvbXBvbmVudCxcclxuXHRcdEJ1dHRvbkNvbXBvbmVudCxcclxuXHRcdE51bWJlckNvbXBvbmVudCxcclxuXHRcdFNlbGVjdEJveENvbXBvbmVudCxcclxuXHRcdElucHV0RXJyb3JNZXNzYWdlUGlwZVxyXG5cdF0sXHJcblx0aG9zdERpcmVjdGl2ZXM6IFtWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVsYXRpdmVEYXRlU2VsZWN0b3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cdEBWaWV3Q2hpbGQoJ29wJykgb3ZlcmxheVBhbmVsITogT3ZlcmxheVBhbmVsO1xyXG5cclxuXHRhY3RpdmVUYWJJbmRleCA9IHNpZ25hbDxudW1iZXI+KDApO1xyXG5cdHNob3dRdWlja1NlbGVjdCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblx0c2hvd092ZXJsYXlQYW5lbCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cdC8vIEFic29sdXRlIG1vZGVcclxuXHRhYnNvbHV0ZURhdGU6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuXHQvLyBSZWxhdGl2ZSBtb2RlXHJcblx0cmVsYXRpdmVWYWx1ZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblx0cmVsYXRpdmVVbml0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHRyZWxhdGl2ZURpcmVjdGlvbiA9IFJlbGF0aXZlRGF0ZURpcmVjdGlvbi5QYXN0O1xyXG5cclxuXHRyZWxhdGl2ZVVuaXRzOiBhbnlbXSA9IFtdO1xyXG5cdHF1aWNrU2VsZWN0RGlyZWN0aW9uczogQXJyYXk8eyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+ID0gW107XHJcblx0cXVpY2tTZWxlY3RVbml0czogQXJyYXk8eyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+ID0gW107XHJcblx0Y29tbW9ubHlVc2VkT3B0aW9uczogUXVpY2tTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG5cclxuXHQvLyBRdWljayBzZWxlY3QgaW5wdXRzXHJcblx0cXVpY2tTZWxlY3REaXJlY3Rpb24gPSBSZWxhdGl2ZURhdGVEaXJlY3Rpb24uUGFzdDtcclxuXHRxdWlja1NlbGVjdFZhbHVlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHRxdWlja1NlbGVjdFVuaXQgPSBSZWxhdGl2ZURhdGVVbml0Lk1pbnV0ZXM7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlKSB7XHJcblx0XHRzdXBlcigpO1xyXG5cclxuXHRcdHRoaXMuaW5pdGlhbGl6ZU9wdGlvbnMoKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5uZ0NvbnRyb2wuY29udHJvbD8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuXHRcdFx0dGhpcy5vblZhbHVlQ2hhbmdlKHZhbHVlKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnZhbHVlICE9IG51bGwpIHtcclxuXHRcdFx0dGhpcy5vblZhbHVlQ2hhbmdlKHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnZhbHVlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgaW5pdGlhbGl6ZU9wdGlvbnMoKTogdm9pZCB7XHJcblx0XHRjb25zdCB1bml0cyA9IE9iamVjdC52YWx1ZXMoUmVsYXRpdmVEYXRlVW5pdCk7XHJcblx0XHRjb25zdCB1bml0TmFtZXMgPSBPYmplY3QudmFsdWVzKFJlbGF0aXZlRGF0ZVVuaXROYW1lKTtcclxuXHRcdGNvbnN0IGRpcmVjdGlvbnMgPSBPYmplY3QudmFsdWVzKFJlbGF0aXZlRGF0ZURpcmVjdGlvbik7XHJcblx0XHRjb25zdCBkaXJlY3Rpb25TdWZmaXhlcyA9IE9iamVjdC52YWx1ZXMoUmVsYXRpdmVEYXRlVW5pdFN1ZmZpeCk7XHJcblxyXG5cdFx0Ly8gUmVsYXRpdmUgdW5pdHNcclxuXHRcdHRoaXMucmVsYXRpdmVVbml0cyA9IHVuaXRzLmZsYXRNYXAoKGNvZGUsIGluZGV4KSA9PlxyXG5cdFx0XHRkaXJlY3Rpb25zLm1hcCgoZGlyLCBkaXJJbmRleCkgPT4gKHtcclxuXHRcdFx0XHRsYWJlbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZShcclxuXHRcdFx0XHRcdGByZWxhdGl2ZURhdGVTZWxlY3Rvci51bml0cy4ke3VuaXROYW1lc1tpbmRleF19JHtkaXJlY3Rpb25TdWZmaXhlc1tkaXJJbmRleF19YFxyXG5cdFx0XHRcdCksXHJcblx0XHRcdFx0dmFsdWU6IGAke2NvZGV9JHtkaXJ9YFxyXG5cdFx0XHR9KSlcclxuXHRcdCk7XHJcblxyXG5cdFx0Ly8gUXVpY2sgU2VsZWN0IC0gTGFzdC9OZXh0IG9wdGlvbnNcclxuXHRcdHRoaXMucXVpY2tTZWxlY3REaXJlY3Rpb25zID0gW1xyXG5cdFx0XHR7IGxhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdyZWxhdGl2ZURhdGVTZWxlY3Rvci5sYXN0JyksIHZhbHVlOiBSZWxhdGl2ZURhdGVEaXJlY3Rpb24uUGFzdCB9LFxyXG5cdFx0XHR7IGxhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdyZWxhdGl2ZURhdGVTZWxlY3Rvci5uZXh0JyksIHZhbHVlOiBSZWxhdGl2ZURhdGVEaXJlY3Rpb24uRnV0dXJlIH1cclxuXHRcdF07XHJcblxyXG5cdFx0dGhpcy5xdWlja1NlbGVjdFVuaXRzID0gdW5pdHMubWFwKChjb2RlLCBpbmRleCkgPT4gKHtcclxuXHRcdFx0bGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoYHJlbGF0aXZlRGF0ZVNlbGVjdG9yLnVuaXRzLiR7dW5pdE5hbWVzW2luZGV4XX1gKSxcclxuXHRcdFx0dmFsdWU6IGNvZGVcclxuXHRcdH0pKTtcclxuXHJcblx0XHQvLyBDb21tb25seSB1c2VkIHF1aWNrIHNlbGVjdHNcclxuXHRcdGNvbnN0IHF1aWNrT3B0aW9ucyA9IFtcclxuXHRcdFx0eyBrZXk6ICd0b2RheScsIHZhbHVlOiBgbm93LyR7UmVsYXRpdmVEYXRlVW5pdC5EYXlzfWAgfSxcclxuXHRcdFx0eyBrZXk6ICd0aGlzV2VlaycsIHZhbHVlOiBgbm93LyR7UmVsYXRpdmVEYXRlVW5pdC5XZWVrc31gIH0sXHJcblx0XHRcdHsga2V5OiAnbGFzdDFNaW51dGUnLCB2YWx1ZTogYG5vdyR7UmVsYXRpdmVEYXRlRGlyZWN0aW9uLlBhc3R9MSR7UmVsYXRpdmVEYXRlVW5pdC5NaW51dGVzfWAgfSxcclxuXHRcdFx0eyBrZXk6ICdsYXN0MTVNaW51dGVzJywgdmFsdWU6IGBub3cke1JlbGF0aXZlRGF0ZURpcmVjdGlvbi5QYXN0fTE1JHtSZWxhdGl2ZURhdGVVbml0Lk1pbnV0ZXN9YCB9LFxyXG5cdFx0XHR7IGtleTogJ2xhc3QzME1pbnV0ZXMnLCB2YWx1ZTogYG5vdyR7UmVsYXRpdmVEYXRlRGlyZWN0aW9uLlBhc3R9MzAke1JlbGF0aXZlRGF0ZVVuaXQuTWludXRlc31gIH0sXHJcblx0XHRcdHsga2V5OiAnbGFzdDFIb3VyJywgdmFsdWU6IGBub3cke1JlbGF0aXZlRGF0ZURpcmVjdGlvbi5QYXN0fTEke1JlbGF0aXZlRGF0ZVVuaXQuSG91cnN9YCB9LFxyXG5cdFx0XHR7IGtleTogJ2xhc3QyNEhvdXJzJywgdmFsdWU6IGBub3cke1JlbGF0aXZlRGF0ZURpcmVjdGlvbi5QYXN0fTI0JHtSZWxhdGl2ZURhdGVVbml0LkhvdXJzfWAgfSxcclxuXHRcdFx0eyBrZXk6ICdsYXN0N0RheXMnLCB2YWx1ZTogYG5vdyR7UmVsYXRpdmVEYXRlRGlyZWN0aW9uLlBhc3R9NyR7UmVsYXRpdmVEYXRlVW5pdC5EYXlzfWAgfSxcclxuXHRcdFx0eyBrZXk6ICdsYXN0MzBEYXlzJywgdmFsdWU6IGBub3cke1JlbGF0aXZlRGF0ZURpcmVjdGlvbi5QYXN0fTMwJHtSZWxhdGl2ZURhdGVVbml0LkRheXN9YCB9LFxyXG5cdFx0XHR7IGtleTogJ2xhc3Q5MERheXMnLCB2YWx1ZTogYG5vdyR7UmVsYXRpdmVEYXRlRGlyZWN0aW9uLlBhc3R9OTAke1JlbGF0aXZlRGF0ZVVuaXQuRGF5c31gIH0sXHJcblx0XHRcdHsga2V5OiAnbGFzdDFZZWFyJywgdmFsdWU6IGBub3cke1JlbGF0aXZlRGF0ZURpcmVjdGlvbi5QYXN0fTEke1JlbGF0aXZlRGF0ZVVuaXQuWWVhcnN9YCB9XHJcblx0XHRdO1xyXG5cclxuXHRcdHRoaXMuY29tbW9ubHlVc2VkT3B0aW9ucyA9IHF1aWNrT3B0aW9ucy5tYXAoKG9wdCkgPT4gKHtcclxuXHRcdFx0bGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoYHJlbGF0aXZlRGF0ZVNlbGVjdG9yLnF1aWNrT3B0aW9ucy4ke29wdC5rZXl9YCksXHJcblx0XHRcdHZhbHVlOiBvcHQudmFsdWVcclxuXHRcdH0pKTtcclxuXHR9XHJcblxyXG5cdG9uVmFsdWVDaGFuZ2UodmFsdWU6IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuXHRcdGlmICh2YWx1ZSAhPSBudWxsKSB7XHJcblx0XHRcdGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XHJcblx0XHRcdFx0dGhpcy5hY3RpdmVUYWJJbmRleC5zZXQoMCk7XHJcblx0XHRcdFx0dGhpcy5hYnNvbHV0ZURhdGUgPSB2YWx1ZTtcclxuXHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdFx0dGhpcy5hY3RpdmVUYWJJbmRleC5zZXQoMSk7XHJcblx0XHRcdFx0dGhpcy5wYXJzZVJlbGF0aXZlVmFsdWUodmFsdWUpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmFic29sdXRlRGF0ZSA9IG51bGw7XHJcblx0XHRcdHRoaXMucmVsYXRpdmVWYWx1ZSA9IG51bGw7XHJcblx0XHRcdHRoaXMucmVsYXRpdmVVbml0ID0gbnVsbDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHBhcnNlUmVsYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcblx0XHRjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9ebm93XFxzKig/OihbKy1dKVxccyooXFxkKykoW3NtaGR3TXldKSk/XFxzKig/OlxcLyhbc21oZHdNeV0pKT8kLyk7XHJcblxyXG5cdFx0aWYgKG1hdGNoKSB7XHJcblx0XHRcdGNvbnN0IFssIGRpcmVjdGlvbiwgYW1vdW50LCB1bml0XSA9IG1hdGNoO1xyXG5cdFx0XHRpZiAoZGlyZWN0aW9uICYmIGFtb3VudCAmJiB1bml0KSB7XHJcblx0XHRcdFx0dGhpcy5yZWxhdGl2ZURpcmVjdGlvbiA9IGRpcmVjdGlvbiBhcyBSZWxhdGl2ZURhdGVEaXJlY3Rpb247XHJcblx0XHRcdFx0dGhpcy5yZWxhdGl2ZVZhbHVlID0gcGFyc2VJbnQoYW1vdW50LCAxMCk7XHJcblx0XHRcdFx0dGhpcy5yZWxhdGl2ZVVuaXQgPSB1bml0ICsgZGlyZWN0aW9uO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRvbkFic29sdXRlRGF0ZUNoYW5nZShkYXRlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XHJcblx0XHR0aGlzLmFic29sdXRlRGF0ZSA9IGRhdGU7XHJcblx0XHR0aGlzLnVwZGF0ZVZhbHVlKCk7XHJcblx0fVxyXG5cclxuXHRvblJlbGF0aXZlQ2hhbmdlKCk6IHZvaWQge1xyXG5cdFx0dGhpcy51cGRhdGVWYWx1ZSgpO1xyXG5cdH1cclxuXHJcblx0b25UYWJDaGFuZ2UoZXZlbnQ6IHsgaW5kZXg6IG51bWJlciB9KTogdm9pZCB7XHJcblx0XHR0aGlzLmFjdGl2ZVRhYkluZGV4LnNldChldmVudC5pbmRleCk7XHJcblx0fVxyXG5cclxuXHR1cGRhdGVWYWx1ZSgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLmFjdGl2ZVRhYkluZGV4KCkgPT09IDAgJiYgdGhpcy5hYnNvbHV0ZURhdGUgIT0gbnVsbCkge1xyXG5cdFx0XHR0aGlzLm5nQ29udHJvbC5jb250cm9sPy5zZXRWYWx1ZSh0aGlzLmFic29sdXRlRGF0ZSk7XHJcblx0XHR9IGVsc2UgaWYgKHRoaXMuYWN0aXZlVGFiSW5kZXgoKSA9PT0gMSAmJiB0aGlzLnJlbGF0aXZlVmFsdWUgIT0gbnVsbCAmJiB0aGlzLnJlbGF0aXZlVW5pdCkge1xyXG5cdFx0XHRjb25zdCB1bml0ID0gdGhpcy5yZWxhdGl2ZVVuaXQuY2hhckF0KDApO1xyXG5cdFx0XHRjb25zdCBkaXJlY3Rpb24gPSB0aGlzLnJlbGF0aXZlVW5pdC5jaGFyQXQoMSk7XHJcblx0XHRcdHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnNldFZhbHVlKGBub3cke2RpcmVjdGlvbn0ke3RoaXMucmVsYXRpdmVWYWx1ZX0ke3VuaXR9YCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRhcHBseVF1aWNrU2VsZWN0KG9wdGlvbjogUXVpY2tTZWxlY3RPcHRpb24pOiB2b2lkIHtcclxuXHRcdHRoaXMuYXBwbHlSZWxhdGl2ZVZhbHVlKG9wdGlvbi52YWx1ZSk7XHJcblx0fVxyXG5cclxuXHRhcHBseVF1aWNrU2VsZWN0Q3VzdG9tKCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMucXVpY2tTZWxlY3RWYWx1ZSAhPSBudWxsICYmIHRoaXMucXVpY2tTZWxlY3RVbml0KSB7XHJcblx0XHRcdGNvbnN0IHJlbGF0aXZlU3RyaW5nID0gYG5vdyR7dGhpcy5xdWlja1NlbGVjdERpcmVjdGlvbn0ke3RoaXMucXVpY2tTZWxlY3RWYWx1ZX0ke3RoaXMucXVpY2tTZWxlY3RVbml0fWA7XHJcblx0XHRcdHRoaXMuYXBwbHlSZWxhdGl2ZVZhbHVlKHJlbGF0aXZlU3RyaW5nKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYXBwbHlSZWxhdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuXHRcdHRoaXMuYWN0aXZlVGFiSW5kZXguc2V0KDEpO1xyXG5cdFx0dGhpcy5wYXJzZVJlbGF0aXZlVmFsdWUodmFsdWUpO1xyXG5cdFx0dGhpcy5uZ0NvbnRyb2wuY29udHJvbD8uc2V0VmFsdWUodmFsdWUpO1xyXG5cdFx0dGhpcy5jbG9zZVF1aWNrU2VsZWN0UGFuZWxzKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNsb3NlUXVpY2tTZWxlY3RQYW5lbHMoKTogdm9pZCB7XHJcblx0XHR0aGlzLnNob3dRdWlja1NlbGVjdC5zZXQoZmFsc2UpO1xyXG5cdFx0dGhpcy5zaG93T3ZlcmxheVBhbmVsLnNldChmYWxzZSk7XHJcblx0fVxyXG5cclxuXHR0b2dnbGVRdWlja1NlbGVjdChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuXHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cdFx0dGhpcy5zaG93UXVpY2tTZWxlY3QudXBkYXRlKCh2YWx1ZSkgPT4gIXZhbHVlKTtcclxuXHRcdGlmICh0aGlzLnNob3dRdWlja1NlbGVjdCgpKSB7XHJcblx0XHRcdHRoaXMuc2hvd092ZXJsYXlQYW5lbC5zZXQoZmFsc2UpO1xyXG5cdFx0XHR0aGlzLm92ZXJsYXlQYW5lbD8uaGlkZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25JbnB1dENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zaG93UXVpY2tTZWxlY3Quc2V0KGZhbHNlKTtcclxuXHRcdHRoaXMub3ZlcmxheVBhbmVsPy50b2dnbGUoZXZlbnQpO1xyXG5cdH1cclxuXHJcblx0Z2V0RGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XHJcblx0XHRjb25zdCB2YWx1ZSA9IHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnZhbHVlO1xyXG5cclxuXHRcdGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gJyc7XHJcblxyXG5cdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuZm9ybWF0QWJzb2x1dGVEYXRlKHZhbHVlKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5mb3JtYXRSZWxhdGl2ZURhdGUodmFsdWUpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiAnJztcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZm9ybWF0QWJzb2x1dGVEYXRlKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xyXG5cdFx0Y29uc3QgZGF0ZVN0ciA9IHZhbHVlLnRvU3RyaW5nKCk7XHJcblx0XHRpZiAoZGF0ZVN0ci5sZW5ndGggPT09IDE0KSB7XHJcblx0XHRcdHRyeSB7XHJcblx0XHRcdFx0Y29uc3QgZGF0ZSA9IHBhcnNlKGRhdGVTdHIsICd5eXl5TU1kZEhIbW1zcycsIG5ldyBEYXRlKCkpO1xyXG5cdFx0XHRcdHJldHVybiBmb3JtYXQoZGF0ZSwgJ2RkLk1NLnl5eXkgSEg6bW06c3MnKTtcclxuXHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRyZXR1cm4gZGF0ZVN0cjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGRhdGVTdHI7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGZvcm1hdFJlbGF0aXZlRGF0ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IHF1aWNrT3B0aW9uID0gdGhpcy5jb21tb25seVVzZWRPcHRpb25zLmZpbmQoKG9wdDogUXVpY2tTZWxlY3RPcHRpb24pID0+IG9wdC52YWx1ZSA9PT0gdmFsdWUpO1xyXG5cdFx0aWYgKHF1aWNrT3B0aW9uKSB7XHJcblx0XHRcdHJldHVybiBxdWlja09wdGlvbi5sYWJlbDtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9ebm93XFxzKihbKy1dKVxccyooXFxkKykoW3NtaGR3TXldKSQvKTtcclxuXHRcdGlmIChtYXRjaCkge1xyXG5cdFx0XHRjb25zdCBbLCBkaXJlY3Rpb24sIGFtb3VudCwgdW5pdF0gPSBtYXRjaDtcclxuXHRcdFx0Y29uc3QgZGlyZWN0aW9uVGV4dCA9IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoXHJcblx0XHRcdFx0ZGlyZWN0aW9uID09PSBSZWxhdGl2ZURhdGVEaXJlY3Rpb24uUGFzdCA/ICdyZWxhdGl2ZURhdGVTZWxlY3Rvci5sYXN0JyA6ICdyZWxhdGl2ZURhdGVTZWxlY3Rvci5uZXh0J1xyXG5cdFx0XHQpO1xyXG5cdFx0XHRjb25zdCB1bml0VGV4dCA9IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUodGhpcy5nZXRVbml0VHJhbnNsYXRpb25LZXkodW5pdCwgZGlyZWN0aW9uKSk7XHJcblx0XHRcdHJldHVybiBgJHtkaXJlY3Rpb25UZXh0fSAke2Ftb3VudH0gJHt1bml0VGV4dH1gO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB2YWx1ZTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZ2V0VW5pdFRyYW5zbGF0aW9uS2V5KHVuaXQ6IHN0cmluZywgZGlyZWN0aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cdFx0Y29uc3QgdW5pdE5hbWVNYXA6IFJlY29yZDxzdHJpbmcsIFJlbGF0aXZlRGF0ZVVuaXROYW1lPiA9IHtcclxuXHRcdFx0W1JlbGF0aXZlRGF0ZVVuaXQuU2Vjb25kc106IFJlbGF0aXZlRGF0ZVVuaXROYW1lLlNlY29uZHMsXHJcblx0XHRcdFtSZWxhdGl2ZURhdGVVbml0Lk1pbnV0ZXNdOiBSZWxhdGl2ZURhdGVVbml0TmFtZS5NaW51dGVzLFxyXG5cdFx0XHRbUmVsYXRpdmVEYXRlVW5pdC5Ib3Vyc106IFJlbGF0aXZlRGF0ZVVuaXROYW1lLkhvdXJzLFxyXG5cdFx0XHRbUmVsYXRpdmVEYXRlVW5pdC5EYXlzXTogUmVsYXRpdmVEYXRlVW5pdE5hbWUuRGF5cyxcclxuXHRcdFx0W1JlbGF0aXZlRGF0ZVVuaXQuV2Vla3NdOiBSZWxhdGl2ZURhdGVVbml0TmFtZS5XZWVrcyxcclxuXHRcdFx0W1JlbGF0aXZlRGF0ZVVuaXQuTW9udGhzXTogUmVsYXRpdmVEYXRlVW5pdE5hbWUuTW9udGhzLFxyXG5cdFx0XHRbUmVsYXRpdmVEYXRlVW5pdC5ZZWFyc106IFJlbGF0aXZlRGF0ZVVuaXROYW1lLlllYXJzXHJcblx0XHR9O1xyXG5cclxuXHRcdGNvbnN0IHN1ZmZpeCA9XHJcblx0XHRcdGRpcmVjdGlvbiA9PT0gUmVsYXRpdmVEYXRlRGlyZWN0aW9uLlBhc3QgPyBSZWxhdGl2ZURhdGVVbml0U3VmZml4LkFnbyA6IFJlbGF0aXZlRGF0ZVVuaXRTdWZmaXguRnJvbU5vdztcclxuXHRcdHJldHVybiBgcmVsYXRpdmVEYXRlU2VsZWN0b3IudW5pdHMuJHt1bml0TmFtZU1hcFt1bml0XX0ke3N1ZmZpeH1gO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicmVsYXRpdmUtZGF0ZS1zZWxlY3RvclwiPlxyXG5cdDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyIGZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKGNsaWNrKT1cIm9uSW5wdXRDbGljaygkZXZlbnQpXCI+XHJcblx0XHQ8aW5wdXRcclxuXHRcdFx0dHlwZT1cInRleHRcIlxyXG5cdFx0XHRyZWFkb25seVxyXG5cdFx0XHRbdmFsdWVdPVwiZ2V0RGlzcGxheVZhbHVlKClcIlxyXG5cdFx0XHRjbGFzcz1cInAtaW5wdXR0ZXh0IHAtY29tcG9uZW50XCJcclxuXHRcdFx0W2NsYXNzLnAtaW52YWxpZF09XCJuZ0NvbnRyb2wuaW52YWxpZCAmJiBuZ0NvbnRyb2wudG91Y2hlZFwiXHJcblx0XHRcdFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncmVsYXRpdmVEYXRlU2VsZWN0b3IucGxhY2Vob2xkZXInKVwiXHJcblx0XHRcdFtwVG9vbHRpcF09XCJuZ0NvbnRyb2wuaW52YWxpZCAmJiBuZ0NvbnRyb2wudG91Y2hlZCA/IChuZ0NvbnRyb2wuY29udHJvbC52YWx1ZSB8IGlucHV0RXJyb3JNZXNzYWdlOiBuZ0NvbnRyb2wpIDogJydcIlxyXG5cdFx0XHRbdG9vbHRpcE9wdGlvbnNdPVwidG9vbHRpcE9wdGlvbnNcIiAvPlxyXG5cdFx0PGRpdiBjbGFzcz1cImNhbGVuZGFyLWljb24td3JhcHBlciBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgKGNsaWNrKT1cInRvZ2dsZVF1aWNrU2VsZWN0KCRldmVudClcIj5cclxuXHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1jYWxlbmRhciBjYWxlbmRhci1pY29uXCI+PC9pPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcblxyXG5cdDxwLW92ZXJsYXlQYW5lbFxyXG5cdFx0I29wXHJcblx0XHRbc3R5bGVdPVwieyBtaW5XaWR0aDogJzM1MHB4JywgbWF4SGVpZ2h0OiAnNjAwcHgnLCBvdmVyZmxvdzogJ3Zpc2libGUnIH1cIlxyXG5cdFx0W2Rpc21pc3NhYmxlXT1cInRydWVcIlxyXG5cdFx0KG9uSGlkZSk9XCJzaG93T3ZlcmxheVBhbmVsLnNldChmYWxzZSlcIj5cclxuXHRcdDxwLXRhYlZpZXcgKG9uQ2hhbmdlKT1cIm9uVGFiQ2hhbmdlKCRldmVudClcIiBbYWN0aXZlSW5kZXhdPVwiYWN0aXZlVGFiSW5kZXgoKVwiPlxyXG5cdFx0XHQ8cC10YWJQYW5lbCBbaGVhZGVyXT1cInRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdyZWxhdGl2ZURhdGVTZWxlY3Rvci5hYnNvbHV0ZScpXCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG5cdFx0XHRcdFx0PGFyaWwtY2FsZW5kYXJcclxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJhYnNvbHV0ZURhdGVcIlxyXG5cdFx0XHRcdFx0XHQobmdNb2RlbENoYW5nZSk9XCJvbkFic29sdXRlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0W2lubGluZV09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0W3Nob3dUaW1lXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0XHRbc2hvd1NlY29uZHNdPVwidHJ1ZVwiPlxyXG5cdFx0XHRcdFx0PC9hcmlsLWNhbGVuZGFyPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L3AtdGFiUGFuZWw+XHJcblxyXG5cdFx0XHQ8cC10YWJQYW5lbCBbaGVhZGVyXT1cInRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdyZWxhdGl2ZURhdGVTZWxlY3Rvci5yZWxhdGl2ZScpXCI+XHJcblx0XHRcdFx0PGRpdj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0yIG0tMlwiPlxyXG5cdFx0XHRcdFx0XHQ8YXJpbC1udW1iZXJcclxuXHRcdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cInJlbGF0aXZlVmFsdWVcIlxyXG5cdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cIm9uUmVsYXRpdmVDaGFuZ2UoKVwiXHJcblx0XHRcdFx0XHRcdFx0W21pbl09XCIxXCJcclxuXHRcdFx0XHRcdFx0XHRbc2hvd0J1dHRvbnNdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdyZWxhdGl2ZURhdGVTZWxlY3Rvci52YWx1ZVBsYWNlaG9sZGVyJylcIj5cclxuXHRcdFx0XHRcdFx0PC9hcmlsLW51bWJlcj5cclxuXHJcblx0XHRcdFx0XHRcdDxhcmlsLXNlbGVjdC1ib3hcclxuXHRcdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cInJlbGF0aXZlVW5pdFwiXHJcblx0XHRcdFx0XHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwib25SZWxhdGl2ZUNoYW5nZSgpXCJcclxuXHRcdFx0XHRcdFx0XHRbaXRlbXNdPVwicmVsYXRpdmVVbml0c1wiXHJcblx0XHRcdFx0XHRcdFx0W2l0ZW1LZXldPVwiJ3ZhbHVlJ1wiXHJcblx0XHRcdFx0XHRcdFx0W2l0ZW1UZXh0XT1cIidsYWJlbCdcIlxyXG5cdFx0XHRcdFx0XHRcdFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncmVsYXRpdmVEYXRlU2VsZWN0b3Iuc2VsZWN0VW5pdCcpXCI+XHJcblx0XHRcdFx0XHRcdDwvYXJpbC1zZWxlY3QtYm94PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm0tMlwiPlxyXG5cdFx0XHRcdFx0XHQ8c21hbGwgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+XHJcblx0XHRcdFx0XHRcdFx0PHN0cm9uZz57eyB0cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncmVsYXRpdmVEYXRlU2VsZWN0b3IuZXhhbXBsZXMnKSB9fTo8L3N0cm9uZz4ge3sgdHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3JlbGF0aXZlRGF0ZVNlbGVjdG9yLmV4YW1wbGVzVGV4dCcpIH19XHJcblx0XHRcdFx0XHRcdDwvc21hbGw+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9wLXRhYlBhbmVsPlxyXG5cdFx0PC9wLXRhYlZpZXc+XHJcblx0PC9wLW92ZXJsYXlQYW5lbD5cclxuXHJcblx0PCEtLSBRdWljayBTZWxlY3QgUGFuZWwgLS0+XHJcblx0QGlmIChzaG93UXVpY2tTZWxlY3QoKSkge1xyXG5cdFx0PGRpdiBjbGFzcz1cInF1aWNrLXNlbGVjdC1wYW5lbCBtdC0yXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJxdWljay1zZWxlY3QtaGVhZGVyIGZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHAtM1wiPlxyXG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwidGl0bGVcIj57eyB0cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncmVsYXRpdmVEYXRlU2VsZWN0b3IucXVpY2tTZWxlY3QnKSB9fTwvc3Bhbj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktdGltZXMgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic2hvd1F1aWNrU2VsZWN0LnNldChmYWxzZSlcIj48L2k+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwicXVpY2stc2VsZWN0LWJvZHkgcC0zXCI+XHJcblx0XHRcdFx0PCEtLSBDdXN0b20gUXVpY2sgU2VsZWN0IElucHV0cyAtLT5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwicXVpY2stc2VsZWN0LWN1c3RvbSBtYi0zIHBiLTNcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0zXCI+XHJcblx0XHRcdFx0XHRcdDxhcmlsLXNlbGVjdC1ib3hcclxuXHRcdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cInF1aWNrU2VsZWN0RGlyZWN0aW9uXCJcclxuXHRcdFx0XHRcdFx0XHRbaXRlbXNdPVwicXVpY2tTZWxlY3REaXJlY3Rpb25zXCJcclxuXHRcdFx0XHRcdFx0XHRbaXRlbUtleV09XCIndmFsdWUnXCJcclxuXHRcdFx0XHRcdFx0XHRbaXRlbVRleHRdPVwiJ2xhYmVsJ1wiPlxyXG5cdFx0XHRcdFx0XHQ8L2FyaWwtc2VsZWN0LWJveD5cclxuXHJcblx0XHRcdFx0XHRcdDxhcmlsLW51bWJlciBbKG5nTW9kZWwpXT1cInF1aWNrU2VsZWN0VmFsdWVcIiBbbWluXT1cIjFcIiBbc2hvd0J1dHRvbnNdPVwidHJ1ZVwiPiA8L2FyaWwtbnVtYmVyPlxyXG5cclxuXHRcdFx0XHRcdFx0PGFyaWwtc2VsZWN0LWJveFxyXG5cdFx0XHRcdFx0XHRcdFsobmdNb2RlbCldPVwicXVpY2tTZWxlY3RVbml0XCJcclxuXHRcdFx0XHRcdFx0XHRbaXRlbXNdPVwicXVpY2tTZWxlY3RVbml0c1wiXHJcblx0XHRcdFx0XHRcdFx0W2l0ZW1LZXldPVwiJ3ZhbHVlJ1wiXHJcblx0XHRcdFx0XHRcdFx0W2l0ZW1UZXh0XT1cIidsYWJlbCdcIj5cclxuXHRcdFx0XHRcdFx0PC9hcmlsLXNlbGVjdC1ib3g+XHJcblxyXG5cdFx0XHRcdFx0XHQ8YXJpbC1idXR0b25cclxuXHRcdFx0XHRcdFx0XHRbbGFiZWxdPVwidHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3JlbGF0aXZlRGF0ZVNlbGVjdG9yLmFwcGx5JylcIlxyXG5cdFx0XHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiYXBwbHlRdWlja1NlbGVjdEN1c3RvbSgpXCJcclxuXHRcdFx0XHRcdFx0XHRbc3R5bGVdPVwieyAnbWluLXdpZHRoJzogJzgwcHgnIH1cIj5cclxuXHRcdFx0XHRcdFx0PC9hcmlsLWJ1dHRvbj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cclxuXHRcdFx0XHQ8IS0tIENvbW1vbmx5IFVzZWQgT3B0aW9ucyAtLT5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwicXVpY2stc2VsZWN0LXNlY3Rpb25cIj5cclxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwidGl0bGUtc2VjdGlvbiBtYi0yXCI+e3sgdHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3JlbGF0aXZlRGF0ZVNlbGVjdG9yLmNvbW1vbmx5VXNlZCcpIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInF1aWNrLXNlbGVjdC1vcHRpb25zXCI+XHJcblx0XHRcdFx0XHRcdEBmb3IgKG9wdGlvbiBvZiBjb21tb25seVVzZWRPcHRpb25zOyB0cmFjayBvcHRpb24udmFsdWUpIHtcclxuXHRcdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInF1aWNrLXNlbGVjdC1vcHRpb25cIiAoY2xpY2spPVwiYXBwbHlRdWlja1NlbGVjdChvcHRpb24pXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyBvcHRpb24ubGFiZWwgfX1cclxuXHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0fVxyXG48L2Rpdj5cclxuIl19
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpdmUtZGF0ZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL3JlbGF0aXZlRGF0ZVNlbGVjdG9yL3NyYy9yZWxhdGl2ZS1kYXRlLXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvcmVsYXRpdmVEYXRlU2VsZWN0b3Ivc3JjL3JlbGF0aXZlLWRhdGUtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFF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QyxDQUFDLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUM7UUFDeEcsT0FBTyw4QkFBOEIsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ25FLENBQUM7OEdBbFBXLDZCQUE2QjtrR0FBN0IsNkJBQTZCLHlXQy9DMUMscWlLQXNIQSx1MUdEdEZFLFlBQVksOEJBQ1osbUJBQW1CLHNJQUNuQixXQUFXLHNQQUNYLGtCQUFrQixrV0FDbEIsYUFBYSwya0JBQ2IsYUFBYSxxWEFDYixlQUFlLCtCQUNmLGlCQUFpQix3YkFDakIsZUFBZSw4TkFDZixlQUFlLDBUQUNmLGtCQUFrQix3U0FDbEIscUJBQXFCOzsyRkFJViw2QkFBNkI7a0JBdEJ6QyxTQUFTO2lDQUNHLElBQUksWUFFZix3SEFBd0gsV0FHaEg7d0JBQ1IsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLHFCQUFxQjtxQkFDckIsa0JBQ2UsQ0FBQyxzQkFBc0IsQ0FBQztxRkFHdkIsWUFBWTtzQkFBNUIsU0FBUzt1QkFBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBzaWduYWwsIFZpZXdDaGlsZCwgT25Jbml0LCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgT3ZlcmxheVBhbmVsLCBPdmVybGF5UGFuZWxNb2R1bGUgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XHJcbmltcG9ydCB7IFRhYlZpZXdNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYnZpZXcnO1xyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgZm9ybWF0LCBwYXJzZSB9IGZyb20gJ2RhdGUtZm5zJztcclxuXHJcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCwgSW5wdXRFcnJvck1lc3NhZ2VQaXBlLCBWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnYXJpbC91aS9saWInO1xyXG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvY2FsZW5kYXInO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IE51bWJlckNvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvbnVtYmVyJztcclxuaW1wb3J0IHsgU2VsZWN0Qm94Q29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9zZWxlY3RCb3gnO1xyXG5pbXBvcnQgJ2FyaWwvdXRpbC9wcmltaXRpdmUtZXh0ZW5zaW9ucyc7XHJcblxyXG5pbXBvcnQgeyBSZWxhdGl2ZURhdGVVbml0LCBSZWxhdGl2ZURhdGVEaXJlY3Rpb24sIFJlbGF0aXZlRGF0ZVVuaXROYW1lLCBSZWxhdGl2ZURhdGVVbml0U3VmZml4IH0gZnJvbSAnLi9lbnVtJztcclxuXHJcbmludGVyZmFjZSBRdWlja1NlbGVjdE9wdGlvbiB7XHJcblx0bGFiZWw6IHN0cmluZztcclxuXHR2YWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOlxyXG5cdFx0J2FyaWwtcmVsYXRpdmUtZGF0ZS1waWNrZXJbbmdNb2RlbF0sIGFyaWwtcmVsYXRpdmUtZGF0ZS1waWNrZXJbZm9ybUNvbnRyb2xdLCBhcmlsLXJlbGF0aXZlLWRhdGUtcGlja2VyW2Zvcm1Db250cm9sTmFtZV0nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9yZWxhdGl2ZS1kYXRlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9yZWxhdGl2ZS1kYXRlLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0aW1wb3J0czogW1xyXG5cdFx0Q29tbW9uTW9kdWxlLFxyXG5cdFx0UmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuXHRcdEZvcm1zTW9kdWxlLFxyXG5cdFx0T3ZlcmxheVBhbmVsTW9kdWxlLFxyXG5cdFx0VGFiVmlld01vZHVsZSxcclxuXHRcdFRvb2x0aXBNb2R1bGUsXHJcblx0XHRUcmFuc2xvY29Nb2R1bGUsXHJcblx0XHRDYWxlbmRhckNvbXBvbmVudCxcclxuXHRcdEJ1dHRvbkNvbXBvbmVudCxcclxuXHRcdE51bWJlckNvbXBvbmVudCxcclxuXHRcdFNlbGVjdEJveENvbXBvbmVudCxcclxuXHRcdElucHV0RXJyb3JNZXNzYWdlUGlwZVxyXG5cdF0sXHJcblx0aG9zdERpcmVjdGl2ZXM6IFtWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVsYXRpdmVEYXRlU2VsZWN0b3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cdEBWaWV3Q2hpbGQoJ29wJykgb3ZlcmxheVBhbmVsITogT3ZlcmxheVBhbmVsO1xyXG5cclxuXHRhY3RpdmVUYWJJbmRleCA9IHNpZ25hbDxudW1iZXI+KDApO1xyXG5cdHNob3dRdWlja1NlbGVjdCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblx0c2hvd092ZXJsYXlQYW5lbCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cdC8vIEFic29sdXRlIG1vZGVcclxuXHRhYnNvbHV0ZURhdGU6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuXHQvLyBSZWxhdGl2ZSBtb2RlXHJcblx0cmVsYXRpdmVWYWx1ZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblx0cmVsYXRpdmVVbml0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHRyZWxhdGl2ZURpcmVjdGlvbiA9IFJlbGF0aXZlRGF0ZURpcmVjdGlvbi5QYXN0O1xyXG5cclxuXHRyZWxhdGl2ZVVuaXRzOiBhbnlbXSA9IFtdO1xyXG5cdHF1aWNrU2VsZWN0RGlyZWN0aW9uczogQXJyYXk8eyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+ID0gW107XHJcblx0cXVpY2tTZWxlY3RVbml0czogQXJyYXk8eyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+ID0gW107XHJcblx0Y29tbW9ubHlVc2VkT3B0aW9uczogUXVpY2tTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG5cclxuXHQvLyBRdWljayBzZWxlY3QgaW5wdXRzXHJcblx0cXVpY2tTZWxlY3REaXJlY3Rpb24gPSBSZWxhdGl2ZURhdGVEaXJlY3Rpb24uUGFzdDtcclxuXHRxdWlja1NlbGVjdFZhbHVlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHRxdWlja1NlbGVjdFVuaXQgPSBSZWxhdGl2ZURhdGVVbml0Lk1pbnV0ZXM7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlKSB7XHJcblx0XHRzdXBlcigpO1xyXG5cclxuXHRcdHRoaXMuaW5pdGlhbGl6ZU9wdGlvbnMoKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5uZ0NvbnRyb2wuY29udHJvbD8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuXHRcdFx0dGhpcy5vblZhbHVlQ2hhbmdlKHZhbHVlKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnZhbHVlICE9IG51bGwpIHtcclxuXHRcdFx0dGhpcy5vblZhbHVlQ2hhbmdlKHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnZhbHVlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgaW5pdGlhbGl6ZU9wdGlvbnMoKTogdm9pZCB7XHJcblx0XHRjb25zdCB1bml0cyA9IE9iamVjdC52YWx1ZXMoUmVsYXRpdmVEYXRlVW5pdCk7XHJcblx0XHRjb25zdCB1bml0TmFtZXMgPSBPYmplY3QudmFsdWVzKFJlbGF0aXZlRGF0ZVVuaXROYW1lKTtcclxuXHRcdGNvbnN0IGRpcmVjdGlvbnMgPSBPYmplY3QudmFsdWVzKFJlbGF0aXZlRGF0ZURpcmVjdGlvbik7XHJcblx0XHRjb25zdCBkaXJlY3Rpb25TdWZmaXhlcyA9IE9iamVjdC52YWx1ZXMoUmVsYXRpdmVEYXRlVW5pdFN1ZmZpeCk7XHJcblxyXG5cdFx0Ly8gUmVsYXRpdmUgdW5pdHNcclxuXHRcdHRoaXMucmVsYXRpdmVVbml0cyA9IHVuaXRzLmZsYXRNYXAoKGNvZGUsIGluZGV4KSA9PlxyXG5cdFx0XHRkaXJlY3Rpb25zLm1hcCgoZGlyLCBkaXJJbmRleCkgPT4gKHtcclxuXHRcdFx0XHRsYWJlbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZShcclxuXHRcdFx0XHRcdGByZWxhdGl2ZURhdGVTZWxlY3Rvci51bml0cy4ke3VuaXROYW1lc1tpbmRleF19JHtkaXJlY3Rpb25TdWZmaXhlc1tkaXJJbmRleF19YFxyXG5cdFx0XHRcdCksXHJcblx0XHRcdFx0dmFsdWU6IGAke2NvZGV9JHtkaXJ9YFxyXG5cdFx0XHR9KSlcclxuXHRcdCk7XHJcblxyXG5cdFx0Ly8gUXVpY2sgU2VsZWN0IC0gTGFzdC9OZXh0IG9wdGlvbnNcclxuXHRcdHRoaXMucXVpY2tTZWxlY3REaXJlY3Rpb25zID0gW1xyXG5cdFx0XHR7IGxhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdyZWxhdGl2ZURhdGVTZWxlY3Rvci5sYXN0JyksIHZhbHVlOiBSZWxhdGl2ZURhdGVEaXJlY3Rpb24uUGFzdCB9LFxyXG5cdFx0XHR7IGxhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdyZWxhdGl2ZURhdGVTZWxlY3Rvci5uZXh0JyksIHZhbHVlOiBSZWxhdGl2ZURhdGVEaXJlY3Rpb24uRnV0dXJlIH1cclxuXHRcdF07XHJcblxyXG5cdFx0dGhpcy5xdWlja1NlbGVjdFVuaXRzID0gdW5pdHMubWFwKChjb2RlLCBpbmRleCkgPT4gKHtcclxuXHRcdFx0bGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoYHJlbGF0aXZlRGF0ZVNlbGVjdG9yLnVuaXRzLiR7dW5pdE5hbWVzW2luZGV4XX1gKSxcclxuXHRcdFx0dmFsdWU6IGNvZGVcclxuXHRcdH0pKTtcclxuXHJcblx0XHQvLyBDb21tb25seSB1c2VkIHF1aWNrIHNlbGVjdHNcclxuXHRcdGNvbnN0IHF1aWNrT3B0aW9ucyA9IFtcclxuXHRcdFx0eyBrZXk6ICd0b2RheScsIHZhbHVlOiBgbm93LyR7UmVsYXRpdmVEYXRlVW5pdC5EYXlzfWAgfSxcclxuXHRcdFx0eyBrZXk6ICd0aGlzV2VlaycsIHZhbHVlOiBgbm93LyR7UmVsYXRpdmVEYXRlVW5pdC5XZWVrc31gIH0sXHJcblx0XHRcdHsga2V5OiAnbGFzdDFNaW51dGUnLCB2YWx1ZTogYG5vdyR7UmVsYXRpdmVEYXRlRGlyZWN0aW9uLlBhc3R9MSR7UmVsYXRpdmVEYXRlVW5pdC5NaW51dGVzfWAgfSxcclxuXHRcdFx0eyBrZXk6ICdsYXN0MTVNaW51dGVzJywgdmFsdWU6IGBub3cke1JlbGF0aXZlRGF0ZURpcmVjdGlvbi5QYXN0fTE1JHtSZWxhdGl2ZURhdGVVbml0Lk1pbnV0ZXN9YCB9LFxyXG5cdFx0XHR7IGtleTogJ2xhc3QzME1pbnV0ZXMnLCB2YWx1ZTogYG5vdyR7UmVsYXRpdmVEYXRlRGlyZWN0aW9uLlBhc3R9MzAke1JlbGF0aXZlRGF0ZVVuaXQuTWludXRlc31gIH0sXHJcblx0XHRcdHsga2V5OiAnbGFzdDFIb3VyJywgdmFsdWU6IGBub3cke1JlbGF0aXZlRGF0ZURpcmVjdGlvbi5QYXN0fTEke1JlbGF0aXZlRGF0ZVVuaXQuSG91cnN9YCB9LFxyXG5cdFx0XHR7IGtleTogJ2xhc3QyNEhvdXJzJywgdmFsdWU6IGBub3cke1JlbGF0aXZlRGF0ZURpcmVjdGlvbi5QYXN0fTI0JHtSZWxhdGl2ZURhdGVVbml0LkhvdXJzfWAgfSxcclxuXHRcdFx0eyBrZXk6ICdsYXN0N0RheXMnLCB2YWx1ZTogYG5vdyR7UmVsYXRpdmVEYXRlRGlyZWN0aW9uLlBhc3R9NyR7UmVsYXRpdmVEYXRlVW5pdC5EYXlzfWAgfSxcclxuXHRcdFx0eyBrZXk6ICdsYXN0MzBEYXlzJywgdmFsdWU6IGBub3cke1JlbGF0aXZlRGF0ZURpcmVjdGlvbi5QYXN0fTMwJHtSZWxhdGl2ZURhdGVVbml0LkRheXN9YCB9LFxyXG5cdFx0XHR7IGtleTogJ2xhc3Q5MERheXMnLCB2YWx1ZTogYG5vdyR7UmVsYXRpdmVEYXRlRGlyZWN0aW9uLlBhc3R9OTAke1JlbGF0aXZlRGF0ZVVuaXQuRGF5c31gIH0sXHJcblx0XHRcdHsga2V5OiAnbGFzdDFZZWFyJywgdmFsdWU6IGBub3cke1JlbGF0aXZlRGF0ZURpcmVjdGlvbi5QYXN0fTEke1JlbGF0aXZlRGF0ZVVuaXQuWWVhcnN9YCB9XHJcblx0XHRdO1xyXG5cclxuXHRcdHRoaXMuY29tbW9ubHlVc2VkT3B0aW9ucyA9IHF1aWNrT3B0aW9ucy5tYXAoKG9wdCkgPT4gKHtcclxuXHRcdFx0bGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoYHJlbGF0aXZlRGF0ZVNlbGVjdG9yLnF1aWNrT3B0aW9ucy4ke29wdC5rZXl9YCksXHJcblx0XHRcdHZhbHVlOiBvcHQudmFsdWVcclxuXHRcdH0pKTtcclxuXHR9XHJcblxyXG5cdG9uVmFsdWVDaGFuZ2UodmFsdWU6IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuXHRcdGlmICh2YWx1ZSAhPSBudWxsKSB7XHJcblx0XHRcdGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XHJcblx0XHRcdFx0dGhpcy5hY3RpdmVUYWJJbmRleC5zZXQoMCk7XHJcblx0XHRcdFx0dGhpcy5hYnNvbHV0ZURhdGUgPSB2YWx1ZTtcclxuXHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdFx0dGhpcy5hY3RpdmVUYWJJbmRleC5zZXQoMSk7XHJcblx0XHRcdFx0dGhpcy5wYXJzZVJlbGF0aXZlVmFsdWUodmFsdWUpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmFic29sdXRlRGF0ZSA9IG51bGw7XHJcblx0XHRcdHRoaXMucmVsYXRpdmVWYWx1ZSA9IG51bGw7XHJcblx0XHRcdHRoaXMucmVsYXRpdmVVbml0ID0gbnVsbDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHBhcnNlUmVsYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcblx0XHRjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9ebm93XFxzKig/OihbKy1dKVxccyooXFxkKykoW3NtaGR3TXldKSk/XFxzKig/OlxcLyhbc21oZHdNeV0pKT8kLyk7XHJcblxyXG5cdFx0aWYgKG1hdGNoKSB7XHJcblx0XHRcdGNvbnN0IFssIGRpcmVjdGlvbiwgYW1vdW50LCB1bml0XSA9IG1hdGNoO1xyXG5cdFx0XHRpZiAoZGlyZWN0aW9uICYmIGFtb3VudCAmJiB1bml0KSB7XHJcblx0XHRcdFx0dGhpcy5yZWxhdGl2ZURpcmVjdGlvbiA9IGRpcmVjdGlvbiBhcyBSZWxhdGl2ZURhdGVEaXJlY3Rpb247XHJcblx0XHRcdFx0dGhpcy5yZWxhdGl2ZVZhbHVlID0gcGFyc2VJbnQoYW1vdW50LCAxMCk7XHJcblx0XHRcdFx0dGhpcy5yZWxhdGl2ZVVuaXQgPSB1bml0ICsgZGlyZWN0aW9uO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRvbkFic29sdXRlRGF0ZUNoYW5nZShkYXRlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XHJcblx0XHR0aGlzLmFic29sdXRlRGF0ZSA9IGRhdGU7XHJcblx0XHR0aGlzLnVwZGF0ZVZhbHVlKCk7XHJcblx0fVxyXG5cclxuXHRvblJlbGF0aXZlQ2hhbmdlKCk6IHZvaWQge1xyXG5cdFx0dGhpcy51cGRhdGVWYWx1ZSgpO1xyXG5cdH1cclxuXHJcblx0b25UYWJDaGFuZ2UoZXZlbnQ6IHsgaW5kZXg6IG51bWJlciB9KTogdm9pZCB7XHJcblx0XHR0aGlzLmFjdGl2ZVRhYkluZGV4LnNldChldmVudC5pbmRleCk7XHJcblx0fVxyXG5cclxuXHR1cGRhdGVWYWx1ZSgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLmFjdGl2ZVRhYkluZGV4KCkgPT09IDAgJiYgdGhpcy5hYnNvbHV0ZURhdGUgIT0gbnVsbCkge1xyXG5cdFx0XHR0aGlzLm5nQ29udHJvbC5jb250cm9sPy5zZXRWYWx1ZSh0aGlzLmFic29sdXRlRGF0ZSk7XHJcblx0XHR9IGVsc2UgaWYgKHRoaXMuYWN0aXZlVGFiSW5kZXgoKSA9PT0gMSAmJiB0aGlzLnJlbGF0aXZlVmFsdWUgIT0gbnVsbCAmJiB0aGlzLnJlbGF0aXZlVW5pdCkge1xyXG5cdFx0XHRjb25zdCB1bml0ID0gdGhpcy5yZWxhdGl2ZVVuaXQuY2hhckF0KDApO1xyXG5cdFx0XHRjb25zdCBkaXJlY3Rpb24gPSB0aGlzLnJlbGF0aXZlVW5pdC5jaGFyQXQoMSk7XHJcblx0XHRcdHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnNldFZhbHVlKGBub3cke2RpcmVjdGlvbn0ke3RoaXMucmVsYXRpdmVWYWx1ZX0ke3VuaXR9YCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRhcHBseVF1aWNrU2VsZWN0KG9wdGlvbjogUXVpY2tTZWxlY3RPcHRpb24pOiB2b2lkIHtcclxuXHRcdHRoaXMuYXBwbHlSZWxhdGl2ZVZhbHVlKG9wdGlvbi52YWx1ZSk7XHJcblx0fVxyXG5cclxuXHRhcHBseVF1aWNrU2VsZWN0Q3VzdG9tKCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMucXVpY2tTZWxlY3RWYWx1ZSAhPSBudWxsICYmIHRoaXMucXVpY2tTZWxlY3RVbml0KSB7XHJcblx0XHRcdGNvbnN0IHJlbGF0aXZlU3RyaW5nID0gYG5vdyR7dGhpcy5xdWlja1NlbGVjdERpcmVjdGlvbn0ke3RoaXMucXVpY2tTZWxlY3RWYWx1ZX0ke3RoaXMucXVpY2tTZWxlY3RVbml0fWA7XHJcblx0XHRcdHRoaXMuYXBwbHlSZWxhdGl2ZVZhbHVlKHJlbGF0aXZlU3RyaW5nKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYXBwbHlSZWxhdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuXHRcdHRoaXMuYWN0aXZlVGFiSW5kZXguc2V0KDEpO1xyXG5cdFx0dGhpcy5wYXJzZVJlbGF0aXZlVmFsdWUodmFsdWUpO1xyXG5cdFx0dGhpcy5uZ0NvbnRyb2wuY29udHJvbD8uc2V0VmFsdWUodmFsdWUpO1xyXG5cdFx0dGhpcy5jbG9zZVF1aWNrU2VsZWN0UGFuZWxzKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNsb3NlUXVpY2tTZWxlY3RQYW5lbHMoKTogdm9pZCB7XHJcblx0XHR0aGlzLnNob3dRdWlja1NlbGVjdC5zZXQoZmFsc2UpO1xyXG5cdFx0dGhpcy5zaG93T3ZlcmxheVBhbmVsLnNldChmYWxzZSk7XHJcblx0fVxyXG5cclxuXHR0b2dnbGVRdWlja1NlbGVjdChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuXHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cdFx0dGhpcy5zaG93UXVpY2tTZWxlY3QudXBkYXRlKCh2YWx1ZSkgPT4gIXZhbHVlKTtcclxuXHRcdGlmICh0aGlzLnNob3dRdWlja1NlbGVjdCgpKSB7XHJcblx0XHRcdHRoaXMuc2hvd092ZXJsYXlQYW5lbC5zZXQoZmFsc2UpO1xyXG5cdFx0XHR0aGlzLm92ZXJsYXlQYW5lbD8uaGlkZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25JbnB1dENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zaG93UXVpY2tTZWxlY3Quc2V0KGZhbHNlKTtcclxuXHRcdHRoaXMub3ZlcmxheVBhbmVsPy50b2dnbGUoZXZlbnQpO1xyXG5cdH1cclxuXHJcblx0Z2V0RGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XHJcblx0XHRjb25zdCB2YWx1ZSA9IHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnZhbHVlO1xyXG5cclxuXHRcdGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gJyc7XHJcblxyXG5cdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuZm9ybWF0QWJzb2x1dGVEYXRlKHZhbHVlKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5mb3JtYXRSZWxhdGl2ZURhdGUodmFsdWUpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiAnJztcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZm9ybWF0QWJzb2x1dGVEYXRlKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xyXG5cdFx0Y29uc3QgZGF0ZVN0ciA9IHZhbHVlLnRvU3RyaW5nKCk7XHJcblx0XHRpZiAoZGF0ZVN0ci5sZW5ndGggPT09IDE0KSB7XHJcblx0XHRcdHRyeSB7XHJcblx0XHRcdFx0Y29uc3QgZGF0ZSA9IHBhcnNlKGRhdGVTdHIsICd5eXl5TU1kZEhIbW1zcycsIG5ldyBEYXRlKCkpO1xyXG5cdFx0XHRcdHJldHVybiBmb3JtYXQoZGF0ZSwgJ2RkLk1NLnl5eXkgSEg6bW06c3MnKTtcclxuXHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRyZXR1cm4gZGF0ZVN0cjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGRhdGVTdHI7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGZvcm1hdFJlbGF0aXZlRGF0ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IHF1aWNrT3B0aW9uID0gdGhpcy5jb21tb25seVVzZWRPcHRpb25zLmZpbmQoKG9wdDogUXVpY2tTZWxlY3RPcHRpb24pID0+IG9wdC52YWx1ZSA9PT0gdmFsdWUpO1xyXG5cdFx0aWYgKHF1aWNrT3B0aW9uKSB7XHJcblx0XHRcdHJldHVybiBxdWlja09wdGlvbi5sYWJlbDtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9ebm93XFxzKihbKy1dKVxccyooXFxkKykoW3NtaGR3TXldKSQvKTtcclxuXHRcdGlmIChtYXRjaCkge1xyXG5cdFx0XHRjb25zdCBbLCBkaXJlY3Rpb24sIGFtb3VudCwgdW5pdF0gPSBtYXRjaDtcclxuXHRcdFx0Y29uc3QgZGlyZWN0aW9uVGV4dCA9IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoXHJcblx0XHRcdFx0ZGlyZWN0aW9uID09PSBSZWxhdGl2ZURhdGVEaXJlY3Rpb24uUGFzdCA/ICdyZWxhdGl2ZURhdGVTZWxlY3Rvci5sYXN0JyA6ICdyZWxhdGl2ZURhdGVTZWxlY3Rvci5uZXh0J1xyXG5cdFx0XHQpO1xyXG5cdFx0XHRjb25zdCB1bml0VGV4dCA9IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUodGhpcy5nZXRVbml0VHJhbnNsYXRpb25LZXkodW5pdCwgZGlyZWN0aW9uKSk7XHJcblx0XHRcdHJldHVybiBgJHtkaXJlY3Rpb25UZXh0fSAke2Ftb3VudH0gJHt1bml0VGV4dH1gO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB2YWx1ZTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZ2V0VW5pdFRyYW5zbGF0aW9uS2V5KHVuaXQ6IHN0cmluZywgZGlyZWN0aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cdFx0Y29uc3QgdW5pdE5hbWVNYXA6IFJlY29yZDxzdHJpbmcsIFJlbGF0aXZlRGF0ZVVuaXROYW1lPiA9IHtcclxuXHRcdFx0W1JlbGF0aXZlRGF0ZVVuaXQuU2Vjb25kc106IFJlbGF0aXZlRGF0ZVVuaXROYW1lLlNlY29uZHMsXHJcblx0XHRcdFtSZWxhdGl2ZURhdGVVbml0Lk1pbnV0ZXNdOiBSZWxhdGl2ZURhdGVVbml0TmFtZS5NaW51dGVzLFxyXG5cdFx0XHRbUmVsYXRpdmVEYXRlVW5pdC5Ib3Vyc106IFJlbGF0aXZlRGF0ZVVuaXROYW1lLkhvdXJzLFxyXG5cdFx0XHRbUmVsYXRpdmVEYXRlVW5pdC5EYXlzXTogUmVsYXRpdmVEYXRlVW5pdE5hbWUuRGF5cyxcclxuXHRcdFx0W1JlbGF0aXZlRGF0ZVVuaXQuV2Vla3NdOiBSZWxhdGl2ZURhdGVVbml0TmFtZS5XZWVrcyxcclxuXHRcdFx0W1JlbGF0aXZlRGF0ZVVuaXQuTW9udGhzXTogUmVsYXRpdmVEYXRlVW5pdE5hbWUuTW9udGhzLFxyXG5cdFx0XHRbUmVsYXRpdmVEYXRlVW5pdC5ZZWFyc106IFJlbGF0aXZlRGF0ZVVuaXROYW1lLlllYXJzXHJcblx0XHR9O1xyXG5cclxuXHRcdGNvbnN0IHN1ZmZpeCA9XHJcblx0XHRcdGRpcmVjdGlvbiA9PT0gUmVsYXRpdmVEYXRlRGlyZWN0aW9uLlBhc3QgPyBSZWxhdGl2ZURhdGVVbml0U3VmZml4LkFnbyA6IFJlbGF0aXZlRGF0ZVVuaXRTdWZmaXguRnJvbU5vdztcclxuXHRcdHJldHVybiBgcmVsYXRpdmVEYXRlU2VsZWN0b3IudW5pdHMuJHt1bml0TmFtZU1hcFt1bml0XX0ke3N1ZmZpeH1gO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicmVsYXRpdmUtZGF0ZS1zZWxlY3RvclwiPlxyXG5cdDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyIGZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKGNsaWNrKT1cIm9uSW5wdXRDbGljaygkZXZlbnQpXCI+XHJcblx0XHQ8aW5wdXRcclxuXHRcdFx0dHlwZT1cInRleHRcIlxyXG5cdFx0XHRyZWFkb25seVxyXG5cdFx0XHRbdmFsdWVdPVwiZ2V0RGlzcGxheVZhbHVlKClcIlxyXG5cdFx0XHRjbGFzcz1cInAtaW5wdXR0ZXh0IHAtY29tcG9uZW50XCJcclxuXHRcdFx0W2NsYXNzLnAtaW52YWxpZF09XCJuZ0NvbnRyb2wuaW52YWxpZCAmJiBuZ0NvbnRyb2wudG91Y2hlZFwiXHJcblx0XHRcdFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncmVsYXRpdmVEYXRlU2VsZWN0b3IucGxhY2Vob2xkZXInKVwiXHJcblx0XHRcdFtwVG9vbHRpcF09XCJuZ0NvbnRyb2wuaW52YWxpZCAmJiBuZ0NvbnRyb2wudG91Y2hlZCA/IChuZ0NvbnRyb2wuY29udHJvbC52YWx1ZSB8IGlucHV0RXJyb3JNZXNzYWdlOiBuZ0NvbnRyb2wpIDogJydcIlxyXG5cdFx0XHRbdG9vbHRpcE9wdGlvbnNdPVwidG9vbHRpcE9wdGlvbnNcIiAvPlxyXG5cdFx0PGRpdiBjbGFzcz1cImNhbGVuZGFyLWljb24td3JhcHBlciBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgKGNsaWNrKT1cInRvZ2dsZVF1aWNrU2VsZWN0KCRldmVudClcIj5cclxuXHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1jYWxlbmRhciBjYWxlbmRhci1pY29uXCI+PC9pPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcblxyXG5cdDxwLW92ZXJsYXlQYW5lbFxyXG5cdFx0I29wXHJcblx0XHRbc3R5bGVdPVwieyBtaW5XaWR0aDogJzM1MHB4JywgbWF4SGVpZ2h0OiAnNjAwcHgnLCBvdmVyZmxvdzogJ3Zpc2libGUnIH1cIlxyXG5cdFx0W2Rpc21pc3NhYmxlXT1cInRydWVcIlxyXG5cdFx0KG9uSGlkZSk9XCJzaG93T3ZlcmxheVBhbmVsLnNldChmYWxzZSlcIj5cclxuXHRcdDxwLXRhYlZpZXcgKG9uQ2hhbmdlKT1cIm9uVGFiQ2hhbmdlKCRldmVudClcIiBbYWN0aXZlSW5kZXhdPVwiYWN0aXZlVGFiSW5kZXgoKVwiPlxyXG5cdFx0XHQ8cC10YWJQYW5lbCBbaGVhZGVyXT1cInRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdyZWxhdGl2ZURhdGVTZWxlY3Rvci5hYnNvbHV0ZScpXCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG5cdFx0XHRcdFx0PGFyaWwtY2FsZW5kYXJcclxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJhYnNvbHV0ZURhdGVcIlxyXG5cdFx0XHRcdFx0XHQobmdNb2RlbENoYW5nZSk9XCJvbkFic29sdXRlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0W2lubGluZV09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0W3Nob3dUaW1lXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0XHRbc2hvd1NlY29uZHNdPVwidHJ1ZVwiPlxyXG5cdFx0XHRcdFx0PC9hcmlsLWNhbGVuZGFyPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L3AtdGFiUGFuZWw+XHJcblxyXG5cdFx0XHQ8cC10YWJQYW5lbCBbaGVhZGVyXT1cInRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdyZWxhdGl2ZURhdGVTZWxlY3Rvci5yZWxhdGl2ZScpXCI+XHJcblx0XHRcdFx0PGRpdj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0yIG0tMlwiPlxyXG5cdFx0XHRcdFx0XHQ8YXJpbC1udW1iZXJcclxuXHRcdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cInJlbGF0aXZlVmFsdWVcIlxyXG5cdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cIm9uUmVsYXRpdmVDaGFuZ2UoKVwiXHJcblx0XHRcdFx0XHRcdFx0W21pbl09XCIxXCJcclxuXHRcdFx0XHRcdFx0XHRbc2hvd0J1dHRvbnNdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdyZWxhdGl2ZURhdGVTZWxlY3Rvci52YWx1ZVBsYWNlaG9sZGVyJylcIj5cclxuXHRcdFx0XHRcdFx0PC9hcmlsLW51bWJlcj5cclxuXHJcblx0XHRcdFx0XHRcdDxhcmlsLXNlbGVjdC1ib3hcclxuXHRcdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cInJlbGF0aXZlVW5pdFwiXHJcblx0XHRcdFx0XHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwib25SZWxhdGl2ZUNoYW5nZSgpXCJcclxuXHRcdFx0XHRcdFx0XHRbaXRlbXNdPVwicmVsYXRpdmVVbml0c1wiXHJcblx0XHRcdFx0XHRcdFx0W2l0ZW1LZXldPVwiJ3ZhbHVlJ1wiXHJcblx0XHRcdFx0XHRcdFx0W2l0ZW1UZXh0XT1cIidsYWJlbCdcIlxyXG5cdFx0XHRcdFx0XHRcdFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncmVsYXRpdmVEYXRlU2VsZWN0b3Iuc2VsZWN0VW5pdCcpXCI+XHJcblx0XHRcdFx0XHRcdDwvYXJpbC1zZWxlY3QtYm94PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm0tMlwiPlxyXG5cdFx0XHRcdFx0XHQ8c21hbGwgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+XHJcblx0XHRcdFx0XHRcdFx0PHN0cm9uZz57eyB0cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncmVsYXRpdmVEYXRlU2VsZWN0b3IuZXhhbXBsZXMnKSB9fTo8L3N0cm9uZz4ge3sgdHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3JlbGF0aXZlRGF0ZVNlbGVjdG9yLmV4YW1wbGVzVGV4dCcpIH19XHJcblx0XHRcdFx0XHRcdDwvc21hbGw+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9wLXRhYlBhbmVsPlxyXG5cdFx0PC9wLXRhYlZpZXc+XHJcblx0PC9wLW92ZXJsYXlQYW5lbD5cclxuXHJcblx0PCEtLSBRdWljayBTZWxlY3QgUGFuZWwgLS0+XHJcblx0QGlmIChzaG93UXVpY2tTZWxlY3QoKSkge1xyXG5cdFx0PGRpdiBjbGFzcz1cInF1aWNrLXNlbGVjdC1wYW5lbCBtdC0yXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJxdWljay1zZWxlY3QtaGVhZGVyIGZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHAtM1wiPlxyXG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwidGl0bGVcIj57eyB0cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncmVsYXRpdmVEYXRlU2VsZWN0b3IucXVpY2tTZWxlY3QnKSB9fTwvc3Bhbj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktdGltZXMgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic2hvd1F1aWNrU2VsZWN0LnNldChmYWxzZSlcIj48L2k+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwicXVpY2stc2VsZWN0LWJvZHkgcC0zXCI+XHJcblx0XHRcdFx0PCEtLSBDdXN0b20gUXVpY2sgU2VsZWN0IElucHV0cyAtLT5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwicXVpY2stc2VsZWN0LWN1c3RvbSBtYi0zIHBiLTNcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0zXCI+XHJcblx0XHRcdFx0XHRcdDxhcmlsLXNlbGVjdC1ib3hcclxuXHRcdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cInF1aWNrU2VsZWN0RGlyZWN0aW9uXCJcclxuXHRcdFx0XHRcdFx0XHRbaXRlbXNdPVwicXVpY2tTZWxlY3REaXJlY3Rpb25zXCJcclxuXHRcdFx0XHRcdFx0XHRbaXRlbUtleV09XCIndmFsdWUnXCJcclxuXHRcdFx0XHRcdFx0XHRbaXRlbVRleHRdPVwiJ2xhYmVsJ1wiPlxyXG5cdFx0XHRcdFx0XHQ8L2FyaWwtc2VsZWN0LWJveD5cclxuXHJcblx0XHRcdFx0XHRcdDxhcmlsLW51bWJlciBbKG5nTW9kZWwpXT1cInF1aWNrU2VsZWN0VmFsdWVcIiBbbWluXT1cIjFcIiBbc2hvd0J1dHRvbnNdPVwidHJ1ZVwiPiA8L2FyaWwtbnVtYmVyPlxyXG5cclxuXHRcdFx0XHRcdFx0PGFyaWwtc2VsZWN0LWJveFxyXG5cdFx0XHRcdFx0XHRcdFsobmdNb2RlbCldPVwicXVpY2tTZWxlY3RVbml0XCJcclxuXHRcdFx0XHRcdFx0XHRbaXRlbXNdPVwicXVpY2tTZWxlY3RVbml0c1wiXHJcblx0XHRcdFx0XHRcdFx0W2l0ZW1LZXldPVwiJ3ZhbHVlJ1wiXHJcblx0XHRcdFx0XHRcdFx0W2l0ZW1UZXh0XT1cIidsYWJlbCdcIj5cclxuXHRcdFx0XHRcdFx0PC9hcmlsLXNlbGVjdC1ib3g+XHJcblxyXG5cdFx0XHRcdFx0XHQ8YXJpbC1idXR0b25cclxuXHRcdFx0XHRcdFx0XHRbbGFiZWxdPVwidHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3JlbGF0aXZlRGF0ZVNlbGVjdG9yLmFwcGx5JylcIlxyXG5cdFx0XHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiYXBwbHlRdWlja1NlbGVjdEN1c3RvbSgpXCJcclxuXHRcdFx0XHRcdFx0XHRbc3R5bGVdPVwieyAnbWluLXdpZHRoJzogJzgwcHgnIH1cIj5cclxuXHRcdFx0XHRcdFx0PC9hcmlsLWJ1dHRvbj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cclxuXHRcdFx0XHQ8IS0tIENvbW1vbmx5IFVzZWQgT3B0aW9ucyAtLT5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwicXVpY2stc2VsZWN0LXNlY3Rpb25cIj5cclxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwidGl0bGUtc2VjdGlvbiBtYi0yXCI+e3sgdHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3JlbGF0aXZlRGF0ZVNlbGVjdG9yLmNvbW1vbmx5VXNlZCcpIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInF1aWNrLXNlbGVjdC1vcHRpb25zXCI+XHJcblx0XHRcdFx0XHRcdEBmb3IgKG9wdGlvbiBvZiBjb21tb25seVVzZWRPcHRpb25zOyB0cmFjayBvcHRpb24udmFsdWUpIHtcclxuXHRcdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInF1aWNrLXNlbGVjdC1vcHRpb25cIiAoY2xpY2spPVwiYXBwbHlRdWlja1NlbGVjdChvcHRpb24pXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyBvcHRpb24ubGFiZWwgfX1cclxuXHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0fVxyXG48L2Rpdj5cclxuIl19
@@ -1,39 +1,29 @@
1
- import { Component, EventEmitter, Output, effect, input, signal } from '@angular/core';
1
+ import { Component, EventEmitter, Output, input } from '@angular/core';
2
2
  import { ReactiveFormsModule } from '@angular/forms';
3
3
  import { TranslocoModule } from '@ngneat/transloco';
4
4
  import { DxSelectBoxModule } from 'devextreme-angular/ui/select-box';
5
- import { firstValueFrom } from 'rxjs';
6
- import { API_CONFIGS } from 'aril/boot/config/api';
7
5
  import { BaseInputComponent, DXInputErrorMessagePipe, InputErrorMessagePipe, ValueAccessorDirective } from 'aril/ui/lib';
8
6
  import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common/http";
10
- import * as i2 from "@ngneat/transloco";
11
- import * as i3 from "aril/ui/lib";
12
- import * as i4 from "@angular/forms";
13
- import * as i5 from "devextreme-angular/ui/select-box";
7
+ import * as i1 from "@ngneat/transloco";
8
+ import * as i2 from "aril/ui/lib";
9
+ import * as i3 from "@angular/forms";
10
+ import * as i4 from "devextreme-angular/ui/select-box";
14
11
  export class SelectBoxComponent extends BaseInputComponent {
15
- constructor(http, translocoService) {
12
+ constructor(translocoService) {
16
13
  super();
17
- this.http = http;
18
14
  this.translocoService = translocoService;
19
15
  this.itemKey = input('key');
20
16
  this.itemText = input('text');
21
- this.groupName = input('');
22
17
  this.parentSelectionKey = input(null);
23
18
  this.tabindex = input(0);
24
19
  this.items = input.required();
25
20
  this.selectedItemText = '';
26
- this.selectionItems = signal(null);
27
21
  /** * @description when grouped = true, option item structure { key:string, items:[] } */
28
22
  this.grouped = input(false);
29
23
  this.showClearButton = input(true);
30
24
  this.placeholder = input('');
31
25
  this.searchExpr = input('');
32
26
  this.onSelectionChanged = new EventEmitter();
33
- effect(() => {
34
- if (this.groupName() || this.parentSelectionKey())
35
- this.getSelectionItems();
36
- });
37
27
  }
38
28
  setTitle(event) {
39
29
  this.selectedItemText = '';
@@ -42,26 +32,13 @@ export class SelectBoxComponent extends BaseInputComponent {
42
32
  }
43
33
  this.onSelectionChanged.emit(event);
44
34
  }
45
- async getSelectionItems() {
46
- const payload = {
47
- groupName: this.groupName(),
48
- parentSelectionKey: this.parentSelectionKey()
49
- };
50
- const hostApi = API_CONFIGS.api.replace(/\/[^\/]+\/v1$/, `/host/v1`);
51
- const selectionGroup = await firstValueFrom(this.http.post(hostApi + '/selection-group/load', payload));
52
- this.selectionItems.set(selectionGroup?.selectionItems.map((item) => ({
53
- key: item.selectionKey,
54
- text: item.selectionDisplay,
55
- parentSelectionKey: item.parentSelectionKey
56
- })));
57
- }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectBoxComponent, deps: [{ token: i1.HttpClient }, { token: i2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: SelectBoxComponent, isStandalone: true, selector: "aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]", inputs: { itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: false, transformFunction: null }, itemText: { classPropertyName: "itemText", publicName: "itemText", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null }, parentSelectionKey: { classPropertyName: "parentSelectionKey", publicName: "parentSelectionKey", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, grouped: { classPropertyName: "grouped", publicName: "grouped", isSignal: true, isRequired: false, transformFunction: null }, showClearButton: { classPropertyName: "showClearButton", publicName: "showClearButton", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, searchExpr: { classPropertyName: "searchExpr", publicName: "searchExpr", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChanged: "onSelectionChanged" }, providers: [InputErrorMessagePipe], usesInheritance: true, hostDirectives: [{ directive: i3.ValueAccessorDirective }], ngImport: i0, template: "<dx-select-box\r\n\t[items]=\"selectionItems() || items()\"\r\n\t[valueExpr]=\"itemKey()\"\r\n\t[displayExpr]=\"itemText()\"\r\n\t[searchEnabled]=\"true\"\r\n\t[searchExpr]=\"searchExpr()\"\r\n\t[tabIndex]=\"tabindex()\"\r\n\t[grouped]=\"grouped()\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[showClearButton]=\"showClearButton()\"\r\n\t[isValid]=\"ngControl?.control?.valid || ngControl?.control?.pristine || ngControl?.control?.disabled || false\"\r\n\t[validationError]=\"ngControl?.control?.errors | dxInputErrorMessage: ngControl?.control\"\r\n\tvalidationMessagePosition=\"top\"\r\n\t[noDataText]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t(onSelectionChanged)=\"onSelectionChanged.emit($event.selectedItem);setTitle($event.selectedItem)\"\r\n\t[inputAttr]=\"{ 'title': selectedItemText }\">\r\n</dx-select-box>\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: DxSelectBoxModule }, { kind: "component", type: i5.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "pipe", type: DXInputErrorMessagePipe, name: "dxInputErrorMessage" }, { kind: "ngmodule", type: TranslocoModule }] }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectBoxComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: SelectBoxComponent, isStandalone: true, selector: "aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]", inputs: { itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: false, transformFunction: null }, itemText: { classPropertyName: "itemText", publicName: "itemText", isSignal: true, isRequired: false, transformFunction: null }, parentSelectionKey: { classPropertyName: "parentSelectionKey", publicName: "parentSelectionKey", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, grouped: { classPropertyName: "grouped", publicName: "grouped", isSignal: true, isRequired: false, transformFunction: null }, showClearButton: { classPropertyName: "showClearButton", publicName: "showClearButton", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, searchExpr: { classPropertyName: "searchExpr", publicName: "searchExpr", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChanged: "onSelectionChanged" }, providers: [InputErrorMessagePipe], usesInheritance: true, hostDirectives: [{ directive: i2.ValueAccessorDirective }], ngImport: i0, template: "<dx-select-box\r\n\t[items]=\"items()\"\r\n\t[valueExpr]=\"itemKey()\"\r\n\t[displayExpr]=\"itemText()\"\r\n\t[searchEnabled]=\"true\"\r\n\t[searchExpr]=\"searchExpr()\"\r\n\t[tabIndex]=\"tabindex()\"\r\n\t[grouped]=\"grouped()\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[showClearButton]=\"showClearButton()\"\r\n\t[isValid]=\"ngControl?.control?.valid || ngControl?.control?.pristine || ngControl?.control?.disabled || false\"\r\n\t[validationError]=\"ngControl?.control?.errors | dxInputErrorMessage: ngControl?.control\"\r\n\tvalidationMessagePosition=\"top\"\r\n\t[noDataText]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t(onSelectionChanged)=\"onSelectionChanged.emit($event.selectedItem);setTitle($event.selectedItem)\"\r\n\t[inputAttr]=\"{ 'title': selectedItemText }\">\r\n</dx-select-box>\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: DxSelectBoxModule }, { kind: "component", type: i4.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "pipe", type: DXInputErrorMessagePipe, name: "dxInputErrorMessage" }, { kind: "ngmodule", type: TranslocoModule }] }); }
60
37
  }
61
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectBoxComponent, decorators: [{
62
39
  type: Component,
63
- args: [{ standalone: true, selector: 'aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]', imports: [ReactiveFormsModule, DxSelectBoxModule, DXInputErrorMessagePipe, TranslocoModule], providers: [InputErrorMessagePipe], hostDirectives: [ValueAccessorDirective], template: "<dx-select-box\r\n\t[items]=\"selectionItems() || items()\"\r\n\t[valueExpr]=\"itemKey()\"\r\n\t[displayExpr]=\"itemText()\"\r\n\t[searchEnabled]=\"true\"\r\n\t[searchExpr]=\"searchExpr()\"\r\n\t[tabIndex]=\"tabindex()\"\r\n\t[grouped]=\"grouped()\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[showClearButton]=\"showClearButton()\"\r\n\t[isValid]=\"ngControl?.control?.valid || ngControl?.control?.pristine || ngControl?.control?.disabled || false\"\r\n\t[validationError]=\"ngControl?.control?.errors | dxInputErrorMessage: ngControl?.control\"\r\n\tvalidationMessagePosition=\"top\"\r\n\t[noDataText]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t(onSelectionChanged)=\"onSelectionChanged.emit($event.selectedItem);setTitle($event.selectedItem)\"\r\n\t[inputAttr]=\"{ 'title': selectedItemText }\">\r\n</dx-select-box>\r\n" }]
64
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.TranslocoService }], propDecorators: { onSelectionChanged: [{
40
+ args: [{ standalone: true, selector: 'aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]', imports: [ReactiveFormsModule, DxSelectBoxModule, DXInputErrorMessagePipe, TranslocoModule], providers: [InputErrorMessagePipe], hostDirectives: [ValueAccessorDirective], template: "<dx-select-box\r\n\t[items]=\"items()\"\r\n\t[valueExpr]=\"itemKey()\"\r\n\t[displayExpr]=\"itemText()\"\r\n\t[searchEnabled]=\"true\"\r\n\t[searchExpr]=\"searchExpr()\"\r\n\t[tabIndex]=\"tabindex()\"\r\n\t[grouped]=\"grouped()\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[showClearButton]=\"showClearButton()\"\r\n\t[isValid]=\"ngControl?.control?.valid || ngControl?.control?.pristine || ngControl?.control?.disabled || false\"\r\n\t[validationError]=\"ngControl?.control?.errors | dxInputErrorMessage: ngControl?.control\"\r\n\tvalidationMessagePosition=\"top\"\r\n\t[noDataText]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t(onSelectionChanged)=\"onSelectionChanged.emit($event.selectedItem);setTitle($event.selectedItem)\"\r\n\t[inputAttr]=\"{ 'title': selectedItemText }\">\r\n</dx-select-box>\r\n" }]
41
+ }], ctorParameters: () => [{ type: i1.TranslocoService }], propDecorators: { onSelectionChanged: [{
65
42
  type: Output
66
43
  }] } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL3NlbGVjdEJveC9zcmMvc2VsZWN0LWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL3NlbGVjdEJveC9zcmMvc2VsZWN0LWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQ04sa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7O0FBWXJCLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxrQkFBa0I7SUFtQnpELFlBQW9CLElBQWdCLEVBQVMsZ0JBQWtDO1FBQzlFLEtBQUssRUFBRSxDQUFDO1FBRFcsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFTLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFsQi9FLFlBQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixjQUFTLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FB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ci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIGVmZmVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29Nb2R1bGUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBEeFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9zZWxlY3QtYm94JztcclxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEFQSV9DT05GSUdTIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcGknO1xyXG5pbXBvcnQge1xyXG5cdEJhc2VJbnB1dENvbXBvbmVudCxcclxuXHREWElucHV0RXJyb3JNZXNzYWdlUGlwZSxcclxuXHRJbnB1dEVycm9yTWVzc2FnZVBpcGUsXHJcblx0VmFsdWVBY2Nlc3NvckRpcmVjdGl2ZVxyXG59IGZyb20gJ2FyaWwvdWkvbGliJztcclxuXHJcbmltcG9ydCB7IFNlbGVjdEJveEl0ZW0sIFNlbGVjdGlvbkdyb3VwRFRPLCBTZWxlY3Rpb25SZXF1ZXN0RFRPIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcmlsLXNlbGVjdC1ib3hbbmdNb2RlbF0sIGFyaWwtc2VsZWN0LWJveFtmb3JtQ29udHJvbF0sIGFyaWwtc2VsZWN0LWJveFtmb3JtQ29udHJvbE5hbWVdJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWJveC5jb21wb25lbnQuaHRtbCcsXHJcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIER4U2VsZWN0Qm94TW9kdWxlLCBEWElucHV0RXJyb3JNZXNzYWdlUGlwZSwgVHJhbnNsb2NvTW9kdWxlXSxcclxuXHRwcm92aWRlcnM6IFtJbnB1dEVycm9yTWVzc2FnZVBpcGVdLFxyXG5cdGhvc3REaXJlY3RpdmVzOiBbVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdEJveENvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudCB7XHJcblx0aXRlbUtleSA9IGlucHV0KCdrZXknKTtcclxuXHRpdGVtVGV4dCA9IGlucHV0KCd0ZXh0Jyk7XHJcblx0Z3JvdXBOYW1lID0gaW5wdXQoJycpO1xyXG5cdHBhcmVudFNlbGVjdGlvbktleSA9IGlucHV0KG51bGwpO1xyXG5cdHRhYmluZGV4ID0gaW5wdXQ8bnVtYmVyPigwKTtcclxuXHRpdGVtcyA9IGlucHV0LnJlcXVpcmVkPFNlbGVjdEJveEl0ZW1bXT4oKTtcclxuXHRzZWxlY3RlZEl0ZW1UZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcblx0c2VsZWN0aW9uSXRlbXMgPSBzaWduYWw8U2VsZWN0Qm94SXRlbVtdIHwgbnVsbD4obnVsbCk7XHJcblxyXG5cdC8qKiAqIEBkZXNjcmlwdGlvbiB3aGVuIGdyb3VwZWQgPSB0cnVlLCBvcHRpb24gaXRlbSBzdHJ1Y3R1cmUgeyBrZXk6c3RyaW5nLCBpdGVtczpbXSB9ICovXHJcblx0Z3JvdXBlZCA9IGlucHV0KGZhbHNlKTtcclxuXHRzaG93Q2xlYXJCdXR0b24gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdHNlYXJjaEV4cHIgPSBpbnB1dDxzdHJpbmcgfCBzdHJpbmdbXT4oJycpO1xyXG5cclxuXHRAT3V0cHV0KCkgb25TZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RCb3hJdGVtPigpO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHB1YmxpYyB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlKSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZ3JvdXBOYW1lKCkgfHwgdGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKSkgdGhpcy5nZXRTZWxlY3Rpb25JdGVtcygpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRzZXRUaXRsZShldmVudD86IGFueSkge1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW1UZXh0ID0gJyc7XHJcblx0XHRpZiAoZXZlbnQgJiYgZXZlbnRbdGhpcy5pdGVtVGV4dCgpXS5sZW5ndGggPiAyNSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkSXRlbVRleHQgPSBldmVudCA/IGV2ZW50W3RoaXMuaXRlbVRleHQoKV0gOiAnJztcclxuXHRcdH1cclxuXHRcdHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoZXZlbnQpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZ2V0U2VsZWN0aW9uSXRlbXMoKSB7XHJcblx0XHRjb25zdCBwYXlsb2FkOiBTZWxlY3Rpb25SZXF1ZXN0RFRPID0ge1xyXG5cdFx0XHRncm91cE5hbWU6IHRoaXMuZ3JvdXBOYW1lKCksXHJcblx0XHRcdHBhcmVudFNlbGVjdGlvbktleTogdGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKVxyXG5cdFx0fTtcclxuXHRcdGNvbnN0IGhvc3RBcGkgPSBBUElfQ09ORklHUy5hcGkucmVwbGFjZSgvXFwvW15cXC9dK1xcL3YxJC8sIGAvaG9zdC92MWApO1xyXG5cdFx0Y29uc3Qgc2VsZWN0aW9uR3JvdXAgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0dGhpcy5odHRwLnBvc3Q8U2VsZWN0aW9uR3JvdXBEVE8+KGhvc3RBcGkgKyAnL3NlbGVjdGlvbi1ncm91cC9sb2FkJywgcGF5bG9hZClcclxuXHRcdCk7XHJcblxyXG5cdFx0dGhpcy5zZWxlY3Rpb25JdGVtcy5zZXQoXHJcblx0XHRcdHNlbGVjdGlvbkdyb3VwPy5zZWxlY3Rpb25JdGVtcy5tYXAoKGl0ZW0pID0+ICh7XHJcblx0XHRcdFx0a2V5OiBpdGVtLnNlbGVjdGlvbktleSxcclxuXHRcdFx0XHR0ZXh0OiBpdGVtLnNlbGVjdGlvbkRpc3BsYXksXHJcblx0XHRcdFx0cGFyZW50U2VsZWN0aW9uS2V5OiBpdGVtLnBhcmVudFNlbGVjdGlvbktleVxyXG5cdFx0XHR9KSlcclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiIsIjxkeC1zZWxlY3QtYm94XHJcblx0W2l0ZW1zXT1cInNlbGVjdGlvbkl0ZW1zKCkgfHwgaXRlbXMoKVwiXHJcblx0W3ZhbHVlRXhwcl09XCJpdGVtS2V5KClcIlxyXG5cdFtkaXNwbGF5RXhwcl09XCJpdGVtVGV4dCgpXCJcclxuXHRbc2VhcmNoRW5hYmxlZF09XCJ0cnVlXCJcclxuXHRbc2VhcmNoRXhwcl09XCJzZWFyY2hFeHByKClcIlxyXG5cdFt0YWJJbmRleF09XCJ0YWJpbmRleCgpXCJcclxuXHRbZ3JvdXBlZF09XCJncm91cGVkKClcIlxyXG5cdFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuXHRbc2hvd0NsZWFyQnV0dG9uXT1cInNob3dDbGVhckJ1dHRvbigpXCJcclxuXHRbaXNWYWxpZF09XCJuZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbGlkIHx8IG5nQ29udHJvbD8uY29udHJvbD8ucHJpc3RpbmUgfHwgbmdDb250cm9sPy5jb250cm9sPy5kaXNhYmxlZCB8fCBmYWxzZVwiXHJcblx0W3ZhbGlkYXRpb25FcnJvcl09XCJuZ0NvbnRyb2w/LmNvbnRyb2w/LmVycm9ycyB8IGR4SW5wdXRFcnJvck1lc3NhZ2U6IG5nQ29udHJvbD8uY29udHJvbFwiXHJcblx0dmFsaWRhdGlvbk1lc3NhZ2VQb3NpdGlvbj1cInRvcFwiXHJcblx0W25vRGF0YVRleHRdPVwidHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLm5vRGF0YVRvRGlzcGxheScpXCJcclxuXHRbZm9ybUNvbnRyb2xdPVwibmdDb250cm9sLmNvbnRyb2xcIlxyXG5cdChuZ01vZGVsQ2hhbmdlKT1cIm5nQ29udHJvbC52aWV3VG9Nb2RlbFVwZGF0ZSgkZXZlbnQpXCJcclxuXHQob25TZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KCRldmVudC5zZWxlY3RlZEl0ZW0pO3NldFRpdGxlKCRldmVudC5zZWxlY3RlZEl0ZW0pXCJcclxuXHRbaW5wdXRBdHRyXT1cInsgJ3RpdGxlJzogc2VsZWN0ZWRJdGVtVGV4dCB9XCI+XHJcbjwvZHgtc2VsZWN0LWJveD5cclxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL3NlbGVjdEJveC9zcmMvc2VsZWN0LWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL3NlbGVjdEJveC9zcmMvc2VsZWN0LWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFckUsT0FBTyxFQUNOLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBWXJCLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxrQkFBa0I7SUFnQnpELFlBQW1CLGdCQUFrQztRQUNwRCxLQUFLLEVBQUUsQ0FBQztRQURVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFmckQsWUFBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixhQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLHVCQUFrQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxhQUFRLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzVCLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFtQixDQUFDO1FBQzFDLHFCQUFnQixHQUFXLEVBQUUsQ0FBQztRQUU5Qix5RkFBeUY7UUFDekYsWUFBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixvQkFBZSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUN2QyxnQkFBVyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoQyxlQUFVLEdBQUcsS0FBSyxDQUFvQixFQUFFLENBQUMsQ0FBQztRQUVoQyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUlqRSxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVc7UUFDbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdELENBQUM7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7OEdBMUJXLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHE0Q0FIbkIsQ0FBQyxxQkFBcUIsQ0FBQyw2R0NwQm5DLDg1QkFtQkEsMkNEQVcsbUJBQW1CLHlUQUFFLGlCQUFpQiw0cUZBQUUsdUJBQXVCLDJEQUFFLGVBQWU7OzJGQUk5RSxrQkFBa0I7a0JBUjlCLFNBQVM7aUNBQ0csSUFBSSxZQUNOLDBGQUEwRixXQUUzRixDQUFDLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLGVBQWUsQ0FBQyxhQUNoRixDQUFDLHFCQUFxQixDQUFDLGtCQUNsQixDQUFDLHNCQUFzQixDQUFDO3FGQWdCOUIsa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgRHhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvc2VsZWN0LWJveCc7XHJcblxyXG5pbXBvcnQge1xyXG5cdEJhc2VJbnB1dENvbXBvbmVudCxcclxuXHREWElucHV0RXJyb3JNZXNzYWdlUGlwZSxcclxuXHRJbnB1dEVycm9yTWVzc2FnZVBpcGUsXHJcblx0VmFsdWVBY2Nlc3NvckRpcmVjdGl2ZVxyXG59IGZyb20gJ2FyaWwvdWkvbGliJztcclxuXHJcbmltcG9ydCB7IFNlbGVjdEJveEl0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FyaWwtc2VsZWN0LWJveFtuZ01vZGVsXSwgYXJpbC1zZWxlY3QtYm94W2Zvcm1Db250cm9sXSwgYXJpbC1zZWxlY3QtYm94W2Zvcm1Db250cm9sTmFtZV0nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtYm94LmNvbXBvbmVudC5odG1sJyxcclxuXHRpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgRHhTZWxlY3RCb3hNb2R1bGUsIERYSW5wdXRFcnJvck1lc3NhZ2VQaXBlLCBUcmFuc2xvY29Nb2R1bGVdLFxyXG5cdHByb3ZpZGVyczogW0lucHV0RXJyb3JNZXNzYWdlUGlwZV0sXHJcblx0aG9zdERpcmVjdGl2ZXM6IFtWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0Qm94Q29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50IHtcclxuXHRpdGVtS2V5ID0gaW5wdXQoJ2tleScpO1xyXG5cdGl0ZW1UZXh0ID0gaW5wdXQoJ3RleHQnKTtcclxuXHRwYXJlbnRTZWxlY3Rpb25LZXkgPSBpbnB1dChudWxsKTtcclxuXHR0YWJpbmRleCA9IGlucHV0PG51bWJlcj4oMCk7XHJcblx0aXRlbXMgPSBpbnB1dC5yZXF1aXJlZDxTZWxlY3RCb3hJdGVtW10+KCk7XHJcblx0c2VsZWN0ZWRJdGVtVGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG5cdC8qKiAqIEBkZXNjcmlwdGlvbiB3aGVuIGdyb3VwZWQgPSB0cnVlLCBvcHRpb24gaXRlbSBzdHJ1Y3R1cmUgeyBrZXk6c3RyaW5nLCBpdGVtczpbXSB9ICovXHJcblx0Z3JvdXBlZCA9IGlucHV0KGZhbHNlKTtcclxuXHRzaG93Q2xlYXJCdXR0b24gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdHNlYXJjaEV4cHIgPSBpbnB1dDxzdHJpbmcgfCBzdHJpbmdbXT4oJycpO1xyXG5cclxuXHRAT3V0cHV0KCkgb25TZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RCb3hJdGVtPigpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSkge1xyXG5cdFx0c3VwZXIoKTtcclxuXHR9XHJcblxyXG5cdHNldFRpdGxlKGV2ZW50PzogYW55KSB7XHJcblx0XHR0aGlzLnNlbGVjdGVkSXRlbVRleHQgPSAnJztcclxuXHRcdGlmIChldmVudCAmJiBldmVudFt0aGlzLml0ZW1UZXh0KCldLmxlbmd0aCA+IDI1KSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRJdGVtVGV4dCA9IGV2ZW50ID8gZXZlbnRbdGhpcy5pdGVtVGV4dCgpXSA6ICcnO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5vblNlbGVjdGlvbkNoYW5nZWQuZW1pdChldmVudCk7XHJcblx0fVxyXG59XHJcbiIsIjxkeC1zZWxlY3QtYm94XHJcblx0W2l0ZW1zXT1cIml0ZW1zKClcIlxyXG5cdFt2YWx1ZUV4cHJdPVwiaXRlbUtleSgpXCJcclxuXHRbZGlzcGxheUV4cHJdPVwiaXRlbVRleHQoKVwiXHJcblx0W3NlYXJjaEVuYWJsZWRdPVwidHJ1ZVwiXHJcblx0W3NlYXJjaEV4cHJdPVwic2VhcmNoRXhwcigpXCJcclxuXHRbdGFiSW5kZXhdPVwidGFiaW5kZXgoKVwiXHJcblx0W2dyb3VwZWRdPVwiZ3JvdXBlZCgpXCJcclxuXHRbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXHJcblx0W3Nob3dDbGVhckJ1dHRvbl09XCJzaG93Q2xlYXJCdXR0b24oKVwiXHJcblx0W2lzVmFsaWRdPVwibmdDb250cm9sPy5jb250cm9sPy52YWxpZCB8fCBuZ0NvbnRyb2w/LmNvbnRyb2w/LnByaXN0aW5lIHx8IG5nQ29udHJvbD8uY29udHJvbD8uZGlzYWJsZWQgfHwgZmFsc2VcIlxyXG5cdFt2YWxpZGF0aW9uRXJyb3JdPVwibmdDb250cm9sPy5jb250cm9sPy5lcnJvcnMgfCBkeElucHV0RXJyb3JNZXNzYWdlOiBuZ0NvbnRyb2w/LmNvbnRyb2xcIlxyXG5cdHZhbGlkYXRpb25NZXNzYWdlUG9zaXRpb249XCJ0b3BcIlxyXG5cdFtub0RhdGFUZXh0XT1cInRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdtZXNzYWdlcy5ub0RhdGFUb0Rpc3BsYXknKVwiXHJcblx0W2Zvcm1Db250cm9sXT1cIm5nQ29udHJvbC5jb250cm9sXCJcclxuXHQobmdNb2RlbENoYW5nZSk9XCJuZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUoJGV2ZW50KVwiXHJcblx0KG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJvblNlbGVjdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQuc2VsZWN0ZWRJdGVtKTtzZXRUaXRsZSgkZXZlbnQuc2VsZWN0ZWRJdGVtKVwiXHJcblx0W2lucHV0QXR0cl09XCJ7ICd0aXRsZSc6IHNlbGVjdGVkSXRlbVRleHQgfVwiPlxyXG48L2R4LXNlbGVjdC1ib3g+XHJcbiJdfQ==