@ecodev/natural 55.9.0 → 56.0.2

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 (151) hide show
  1. package/esm2022/lib/classes/abstract-controller.mjs +3 -3
  2. package/esm2022/lib/classes/abstract-detail.mjs +5 -5
  3. package/esm2022/lib/classes/abstract-editable-list.mjs +4 -4
  4. package/esm2022/lib/classes/abstract-list.mjs +5 -5
  5. package/esm2022/lib/classes/abstract-navigable-list.mjs +12 -12
  6. package/esm2022/lib/classes/apollo-utils.mjs +3 -2
  7. package/esm2022/lib/classes/data-source.mjs +1 -1
  8. package/esm2022/lib/classes/query-variable-manager-utils.mjs +1 -1
  9. package/esm2022/lib/classes/query-variable-manager.mjs +3 -3
  10. package/esm2022/lib/classes/signing.mjs +1 -1
  11. package/esm2022/lib/classes/utility.mjs +1 -1
  12. package/esm2022/lib/classes/validators.mjs +2 -2
  13. package/esm2022/lib/directives/http-prefix.directive.mjs +5 -5
  14. package/esm2022/lib/modules/alert/alert.service.mjs +5 -5
  15. package/esm2022/lib/modules/alert/confirm.component.mjs +6 -6
  16. package/esm2022/lib/modules/avatar/component/avatar.component.mjs +39 -43
  17. package/esm2022/lib/modules/avatar/service/avatar.service.mjs +4 -4
  18. package/esm2022/lib/modules/avatar/service/md5.mjs +1 -1
  19. package/esm2022/lib/modules/avatar/sources/gravatar.mjs +1 -1
  20. package/esm2022/lib/modules/avatar/sources/initials.mjs +1 -1
  21. package/esm2022/lib/modules/columns-picker/columns-picker.component.mjs +10 -10
  22. package/esm2022/lib/modules/common/directives/linkable-tab.directive.mjs +6 -6
  23. package/esm2022/lib/modules/common/directives/src-density.directive.mjs +5 -5
  24. package/esm2022/lib/modules/common/pipes/capitalize.pipe.mjs +4 -4
  25. package/esm2022/lib/modules/common/pipes/ellipsis.pipe.mjs +3 -3
  26. package/esm2022/lib/modules/common/pipes/enum.pipe.mjs +4 -4
  27. package/esm2022/lib/modules/common/pipes/swiss-date.pipe.mjs +3 -3
  28. package/esm2022/lib/modules/common/pipes/time-ago.pipe.mjs +6 -6
  29. package/esm2022/lib/modules/common/services/memory-storage.mjs +4 -4
  30. package/esm2022/lib/modules/common/services/seo.service.mjs +7 -7
  31. package/esm2022/lib/modules/detail-header/detail-header.component.mjs +7 -9
  32. package/esm2022/lib/modules/dialog-trigger/dialog-trigger.component.mjs +5 -5
  33. package/esm2022/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +6 -6
  34. package/esm2022/lib/modules/dropdown-components/type-boolean/type-boolean.component.mjs +8 -9
  35. package/esm2022/lib/modules/dropdown-components/type-date/type-date.component.mjs +10 -13
  36. package/esm2022/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +7 -9
  37. package/esm2022/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +6 -8
  38. package/esm2022/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +5 -8
  39. package/esm2022/lib/modules/dropdown-components/type-number/type-number.component.mjs +8 -18
  40. package/esm2022/lib/modules/dropdown-components/type-options/type-options.component.mjs +8 -10
  41. package/esm2022/lib/modules/dropdown-components/type-select/type-select.component.mjs +11 -21
  42. package/esm2022/lib/modules/dropdown-components/type-text/type-text.component.mjs +8 -10
  43. package/esm2022/lib/modules/dropdown-components/types.mjs +1 -1
  44. package/esm2022/lib/modules/dropdown-components/utils.mjs +1 -1
  45. package/esm2022/lib/modules/file/abstract-file.mjs +6 -6
  46. package/esm2022/lib/modules/file/component/file.component.mjs +10 -10
  47. package/esm2022/lib/modules/file/file-drop.directive.mjs +4 -4
  48. package/esm2022/lib/modules/file/file-select.directive.mjs +3 -3
  49. package/esm2022/lib/modules/file/file.service.mjs +6 -6
  50. package/esm2022/lib/modules/file/utils.mjs +1 -1
  51. package/esm2022/lib/modules/fixed-button/fixed-button.component.mjs +5 -5
  52. package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +7 -9
  53. package/esm2022/lib/modules/hierarchic-selector/classes/flat-node.mjs +1 -1
  54. package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-configuration.mjs +1 -1
  55. package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.mjs +1 -1
  56. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +17 -17
  57. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +5 -5
  58. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +7 -7
  59. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +4 -4
  60. package/esm2022/lib/modules/icon/icon.directive.mjs +6 -6
  61. package/esm2022/lib/modules/logger/error-handler.mjs +6 -6
  62. package/esm2022/lib/modules/logger/error.module.mjs +1 -1
  63. package/esm2022/lib/modules/matomo/matomo.service.mjs +6 -6
  64. package/esm2022/lib/modules/panels/abstract-panel.mjs +5 -5
  65. package/esm2022/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.mjs +1 -1
  66. package/esm2022/lib/modules/panels/panels.component.mjs +5 -5
  67. package/esm2022/lib/modules/panels/panels.service.mjs +7 -7
  68. package/esm2022/lib/modules/panels/panels.urlmatcher.mjs +2 -2
  69. package/esm2022/lib/modules/panels/types.mjs +1 -1
  70. package/esm2022/lib/modules/relations/relations.component.mjs +16 -16
  71. package/esm2022/lib/modules/search/classes/graphql-doctrine.mjs +2 -2
  72. package/esm2022/lib/modules/search/classes/graphql-doctrine.types.mjs +1 -1
  73. package/esm2022/lib/modules/search/classes/transformers.mjs +1 -1
  74. package/esm2022/lib/modules/search/classes/url.mjs +9 -9
  75. package/esm2022/lib/modules/search/classes/utils.mjs +1 -1
  76. package/esm2022/lib/modules/search/dropdown-container/dropdown-container.component.mjs +8 -10
  77. package/esm2022/lib/modules/search/dropdown-container/dropdown.service.mjs +5 -5
  78. package/esm2022/lib/modules/search/facet-selector/facet-selector.component.mjs +8 -10
  79. package/esm2022/lib/modules/search/group/group.component.mjs +5 -7
  80. package/esm2022/lib/modules/search/input/input.component.mjs +34 -37
  81. package/esm2022/lib/modules/search/search/search.component.mjs +7 -7
  82. package/esm2022/lib/modules/search/types/dropdown-component.mjs +1 -1
  83. package/esm2022/lib/modules/search/types/facet.mjs +1 -1
  84. package/esm2022/lib/modules/search/types/values.mjs +1 -1
  85. package/esm2022/lib/modules/select/abstract-select.component.mjs +6 -6
  86. package/esm2022/lib/modules/select/select/select.component.mjs +12 -10
  87. package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +7 -7
  88. package/esm2022/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +11 -14
  89. package/esm2022/lib/modules/sidenav/sidenav/sidenav.component.mjs +5 -5
  90. package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +6 -6
  91. package/esm2022/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +5 -5
  92. package/esm2022/lib/modules/sidenav/sidenav-stack.service.mjs +4 -4
  93. package/esm2022/lib/modules/sidenav/sidenav.service.mjs +6 -6
  94. package/esm2022/lib/modules/stamp/stamp.component.mjs +5 -7
  95. package/esm2022/lib/modules/table-button/table-button.component.mjs +7 -9
  96. package/esm2022/lib/services/abstract-model.service.mjs +4 -4
  97. package/esm2022/lib/services/debounce.service.mjs +29 -10
  98. package/esm2022/lib/services/enum.service.mjs +6 -6
  99. package/esm2022/lib/services/link-mutation.service.mjs +6 -6
  100. package/esm2022/lib/services/persistence.service.mjs +10 -6
  101. package/esm2022/lib/services/swiss-parsing-date-adapter.service.mjs +4 -4
  102. package/esm2022/lib/types/types.mjs +1 -1
  103. package/esm2022/public-api.mjs +2 -3
  104. package/fesm2022/ecodev-natural.mjs +499 -495
  105. package/fesm2022/ecodev-natural.mjs.map +1 -1
  106. package/lib/classes/abstract-editable-list.d.ts +1 -1
  107. package/lib/classes/abstract-list.d.ts +2 -2
  108. package/lib/classes/data-source.d.ts +2 -2
  109. package/lib/classes/query-variable-manager.d.ts +7 -7
  110. package/lib/classes/utility.d.ts +1 -1
  111. package/lib/modules/alert/confirm.component.d.ts +2 -2
  112. package/lib/modules/columns-picker/columns-picker.component.d.ts +1 -1
  113. package/lib/modules/common/services/seo.service.d.ts +4 -4
  114. package/lib/modules/dialog-trigger/dialog-trigger.component.d.ts +2 -2
  115. package/lib/modules/dropdown-components/type-boolean/type-boolean.component.d.ts +2 -2
  116. package/lib/modules/dropdown-components/type-date/type-date.component.d.ts +2 -2
  117. package/lib/modules/dropdown-components/type-date-range/type-date-range.component.d.ts +2 -2
  118. package/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.d.ts +6 -6
  119. package/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.d.ts +2 -2
  120. package/lib/modules/dropdown-components/type-number/type-number.component.d.ts +2 -2
  121. package/lib/modules/dropdown-components/type-options/type-options.component.d.ts +4 -4
  122. package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +2 -2
  123. package/lib/modules/dropdown-components/types.d.ts +4 -4
  124. package/lib/modules/file/abstract-file.d.ts +4 -4
  125. package/lib/modules/file/component/file.component.d.ts +1 -1
  126. package/lib/modules/hierarchic-selector/classes/hierarchic-configuration.d.ts +4 -4
  127. package/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.d.ts +3 -3
  128. package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +4 -4
  129. package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.d.ts +1 -3
  130. package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.d.ts +4 -4
  131. package/lib/modules/icon/icon.directive.d.ts +3 -5
  132. package/lib/modules/logger/error-handler.d.ts +4 -4
  133. package/lib/modules/panels/types.d.ts +14 -16
  134. package/lib/modules/relations/relations.component.d.ts +1 -1
  135. package/lib/modules/search/classes/graphql-doctrine.types.d.ts +37 -41
  136. package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +2 -2
  137. package/lib/modules/search/dropdown-container/dropdown.service.d.ts +2 -2
  138. package/lib/modules/search/facet-selector/facet-selector.component.d.ts +2 -2
  139. package/lib/modules/search/input/input.component.d.ts +1 -1
  140. package/lib/modules/search/types/dropdown-component.d.ts +2 -2
  141. package/lib/modules/search/types/facet.d.ts +7 -7
  142. package/lib/modules/search/types/values.d.ts +6 -6
  143. package/lib/modules/select/select/select.component.d.ts +1 -1
  144. package/lib/services/abstract-model.service.d.ts +7 -13
  145. package/lib/services/debounce.service.d.ts +10 -2
  146. package/lib/services/enum.service.d.ts +2 -2
  147. package/lib/services/link-mutation.service.d.ts +2 -2
  148. package/lib/types/types.d.ts +1 -3
  149. package/package.json +10 -10
  150. package/public-api.d.ts +0 -1
  151. package/src/lib/_natural.theme.scss +5 -2
@@ -73,24 +73,24 @@ export class NaturalRelationsComponent extends NaturalAbstractController {
73
73
  set filter(filter) {
74
74
  this.variablesManager.set('relations-filter', { filter: filter });
75
75
  }
76
- ngOnInit() {
77
- this.pagination();
78
- // Force disabled if cannot update object
79
- if (this.main && this.main.permissions) {
80
- this.disabled = this.disabled || !this.main.permissions.update;
81
- }
82
- }
83
76
  ngOnChanges() {
84
77
  if (this.service) {
85
78
  this.queryItems();
86
79
  }
87
- if (this.disabled && this.displayedColumns.indexOf('unlink') > -1) {
80
+ if (this.disabled && this.displayedColumns.includes('unlink')) {
88
81
  this.displayedColumns.pop();
89
82
  }
90
- else if (!this.disabled && this.displayedColumns.indexOf('unlink') === -1) {
83
+ else if (!this.disabled && !this.displayedColumns.includes('unlink')) {
91
84
  this.displayedColumns.push('unlink');
92
85
  }
93
86
  }
87
+ ngOnInit() {
88
+ this.pagination();
89
+ // Force disabled if cannot update object
90
+ if (this.main && this.main.permissions) {
91
+ this.disabled = this.disabled || !this.main.permissions.update;
92
+ }
93
+ }
94
94
  /**
95
95
  * Unlink action
96
96
  * Refetch result to display it in table
@@ -149,7 +149,7 @@ export class NaturalRelationsComponent extends NaturalAbstractController {
149
149
  .open(hierarchicConfig)
150
150
  .afterClosed()
151
151
  .subscribe(result => {
152
- if (result && result.hierarchicSelection !== undefined) {
152
+ if (result?.hierarchicSelection !== undefined) {
153
153
  const selection = result.hierarchicSelection[selectAtKey];
154
154
  if (selection.length) {
155
155
  this.addRelations(selection);
@@ -178,10 +178,10 @@ export class NaturalRelationsComponent extends NaturalAbstractController {
178
178
  }
179
179
  return this.hierarchicSelectorConfig.filter(c => !!c.selectableAtKey)[0].selectableAtKey;
180
180
  }
181
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NaturalRelationsComponent, deps: [{ token: i1.NaturalLinkMutationService }, { token: i2.NaturalHierarchicSelectorDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
182
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: NaturalRelationsComponent, isStandalone: true, selector: "natural-relations", inputs: { service: "service", placeholder: "placeholder", autocompleteSelectorFilter: "autocompleteSelectorFilter", displayWith: "displayWith", disabled: "disabled", main: "main", hierarchicSelectorFilters: "hierarchicSelectorFilters", hierarchicSelectorConfig: "hierarchicSelectorConfig", otherName: "otherName", filter: "filter" }, outputs: { selectionChange: "selectionChange" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "select", first: true, predicate: NaturalSelectComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"body\">\n <ng-template #defaultNameCell let-item=\"item\">\n {{ getDisplayFn()(item) }}\n </ng-template>\n\n <table *ngIf=\"dataSource\" [dataSource]=\"dataSource\" class=\"natural-row-click\" mat-table>\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row style=\"display: none\"></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns\" mat-row></tr>\n\n <ng-container matColumnDef=\"name\">\n <th *matHeaderCellDef i18n mat-header-cell>Titre</th>\n <td *matCellDef=\"let item\" mat-cell>\n <ng-template\n [ngTemplateOutletContext]=\"{item: item}\"\n [ngTemplateOutlet]=\"itemTemplate ? itemTemplate : defaultNameCell\"\n ></ng-template>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"unlink\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let element\" mat-cell>\n <button\n *ngIf=\"!disabled\"\n (click)=\"removeRelation(element)\"\n [disabled]=\"removing.has(element)\"\n color=\"warn\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Dissocier\"\n >\n <mat-icon naturalIcon=\"link_off\"></mat-icon>\n </button>\n </td>\n </ng-container>\n </table>\n\n <mat-paginator\n (page)=\"pagination($event)\"\n *ngIf=\"dataSource?.data && (dataSource?.data?.length || 0) > (dataSource?.data?.pageSize || 0)\"\n [length]=\"dataSource?.data?.length || 0\"\n [pageIndex]=\"dataSource?.data?.pageIndex || 0\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageSize]=\"dataSource?.data?.pageSize || 0\"\n ></mat-paginator>\n\n <div *ngIf=\"!loading && dataSource?.data?.length === 0\" class=\"margin-v mat-body\">\n <span i18n>Aucun r\u00E9sultat</span>\n </div>\n\n <mat-progress-spinner *ngIf=\"loading\" [diameter]=\"40\" class=\"loading\" mode=\"indeterminate\"></mat-progress-spinner>\n</div>\n\n<natural-select\n (selectionChange)=\"addRelations([$event])\"\n *ngIf=\"!hierarchicSelectorConfig && service && !disabled\"\n [displayWith]=\"$any(getDisplayFn())\"\n [filter]=\"autocompleteSelectorFilter\"\n [placeholder]=\"placeholder\"\n [service]=\"service\"\n [showIcon]=\"false\"\n></natural-select>\n\n<div *ngIf=\"hierarchicSelectorConfig && !disabled\">\n <button (click)=\"openNaturalHierarchicSelector()\" color=\"primary\" mat-flat-button>{{ placeholder }}</button>\n</div>\n", styles: [":host{display:flex;flex-direction:column}:host>*:not(:last-child){margin-bottom:20px}:host .body{display:flex;flex-direction:column}:host .loading{margin:20px auto}:host .mat-column-unlink{width:2.5em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i8.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: NaturalSelectComponent, selector: "natural-select", inputs: ["service", "optionRequired", "searchField", "searchOperator", "filter", "disabled"] }] }); }
181
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalRelationsComponent, deps: [{ token: i1.NaturalLinkMutationService }, { token: i2.NaturalHierarchicSelectorDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
182
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalRelationsComponent, isStandalone: true, selector: "natural-relations", inputs: { service: "service", placeholder: "placeholder", autocompleteSelectorFilter: "autocompleteSelectorFilter", displayWith: "displayWith", disabled: "disabled", main: "main", hierarchicSelectorFilters: "hierarchicSelectorFilters", hierarchicSelectorConfig: "hierarchicSelectorConfig", otherName: "otherName", filter: "filter" }, outputs: { selectionChange: "selectionChange" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "select", first: true, predicate: NaturalSelectComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"body\">\n <ng-template #defaultNameCell let-item=\"item\">\n {{ getDisplayFn()(item) }}\n </ng-template>\n\n @if (dataSource) {\n <table [dataSource]=\"dataSource\" class=\"natural-row-click\" mat-table>\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row style=\"display: none\"></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns\" mat-row></tr>\n\n <ng-container matColumnDef=\"name\">\n <th *matHeaderCellDef i18n mat-header-cell>Titre</th>\n <td *matCellDef=\"let item\" mat-cell>\n <ng-template\n [ngTemplateOutletContext]=\"{item: item}\"\n [ngTemplateOutlet]=\"itemTemplate ? itemTemplate : defaultNameCell\"\n />\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"unlink\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let element\" mat-cell>\n @if (!disabled) {\n <button\n (click)=\"removeRelation(element)\"\n [disabled]=\"removing.has(element)\"\n color=\"warn\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Dissocier\"\n >\n <mat-icon naturalIcon=\"link_off\" />\n </button>\n }\n </td>\n </ng-container>\n </table>\n }\n\n @if (dataSource?.data && (dataSource?.data?.length || 0) > (dataSource?.data?.pageSize || 0)) {\n <mat-paginator\n (page)=\"pagination($event)\"\n [length]=\"dataSource?.data?.length || 0\"\n [pageIndex]=\"dataSource?.data?.pageIndex || 0\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageSize]=\"dataSource?.data?.pageSize || 0\"\n />\n }\n\n @if (!loading && dataSource?.data?.length === 0) {\n <div class=\"margin-v mat-body\">\n <span i18n>Aucun r\u00E9sultat</span>\n </div>\n }\n\n @if (loading) {\n <mat-progress-spinner [diameter]=\"40\" class=\"loading\" mode=\"indeterminate\" />\n }\n</div>\n\n@if (!hierarchicSelectorConfig && service && !disabled) {\n <natural-select\n (selectionChange)=\"addRelations([$event])\"\n [displayWith]=\"$any(getDisplayFn())\"\n [filter]=\"autocompleteSelectorFilter\"\n [placeholder]=\"placeholder\"\n [service]=\"service\"\n [showIcon]=\"false\"\n />\n}\n\n@if (hierarchicSelectorConfig && !disabled) {\n <div>\n <button (click)=\"openNaturalHierarchicSelector()\" color=\"primary\" mat-flat-button>{{ placeholder }}</button>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>*:not(:last-child){margin-bottom:20px}:host .body{display:flex;flex-direction:column}:host .loading{margin:20px auto}:host .mat-column-unlink{width:2.5em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i8.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: NaturalSelectComponent, selector: "natural-select", inputs: ["service", "optionRequired", "searchField", "searchOperator", "filter", "disabled"] }] }); }
183
183
  }
184
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NaturalRelationsComponent, decorators: [{
184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalRelationsComponent, decorators: [{
185
185
  type: Component,
186
186
  args: [{ selector: 'natural-relations', standalone: true, imports: [
187
187
  CommonModule,
@@ -193,8 +193,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
193
193
  MatPaginatorModule,
194
194
  MatProgressSpinnerModule,
195
195
  NaturalSelectComponent,
196
- ], template: "<div class=\"body\">\n <ng-template #defaultNameCell let-item=\"item\">\n {{ getDisplayFn()(item) }}\n </ng-template>\n\n <table *ngIf=\"dataSource\" [dataSource]=\"dataSource\" class=\"natural-row-click\" mat-table>\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row style=\"display: none\"></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns\" mat-row></tr>\n\n <ng-container matColumnDef=\"name\">\n <th *matHeaderCellDef i18n mat-header-cell>Titre</th>\n <td *matCellDef=\"let item\" mat-cell>\n <ng-template\n [ngTemplateOutletContext]=\"{item: item}\"\n [ngTemplateOutlet]=\"itemTemplate ? itemTemplate : defaultNameCell\"\n ></ng-template>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"unlink\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let element\" mat-cell>\n <button\n *ngIf=\"!disabled\"\n (click)=\"removeRelation(element)\"\n [disabled]=\"removing.has(element)\"\n color=\"warn\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Dissocier\"\n >\n <mat-icon naturalIcon=\"link_off\"></mat-icon>\n </button>\n </td>\n </ng-container>\n </table>\n\n <mat-paginator\n (page)=\"pagination($event)\"\n *ngIf=\"dataSource?.data && (dataSource?.data?.length || 0) > (dataSource?.data?.pageSize || 0)\"\n [length]=\"dataSource?.data?.length || 0\"\n [pageIndex]=\"dataSource?.data?.pageIndex || 0\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageSize]=\"dataSource?.data?.pageSize || 0\"\n ></mat-paginator>\n\n <div *ngIf=\"!loading && dataSource?.data?.length === 0\" class=\"margin-v mat-body\">\n <span i18n>Aucun r\u00E9sultat</span>\n </div>\n\n <mat-progress-spinner *ngIf=\"loading\" [diameter]=\"40\" class=\"loading\" mode=\"indeterminate\"></mat-progress-spinner>\n</div>\n\n<natural-select\n (selectionChange)=\"addRelations([$event])\"\n *ngIf=\"!hierarchicSelectorConfig && service && !disabled\"\n [displayWith]=\"$any(getDisplayFn())\"\n [filter]=\"autocompleteSelectorFilter\"\n [placeholder]=\"placeholder\"\n [service]=\"service\"\n [showIcon]=\"false\"\n></natural-select>\n\n<div *ngIf=\"hierarchicSelectorConfig && !disabled\">\n <button (click)=\"openNaturalHierarchicSelector()\" color=\"primary\" mat-flat-button>{{ placeholder }}</button>\n</div>\n", styles: [":host{display:flex;flex-direction:column}:host>*:not(:last-child){margin-bottom:20px}:host .body{display:flex;flex-direction:column}:host .loading{margin:20px auto}:host .mat-column-unlink{width:2.5em}\n"] }]
197
- }], ctorParameters: function () { return [{ type: i1.NaturalLinkMutationService }, { type: i2.NaturalHierarchicSelectorDialogService }]; }, propDecorators: { select: [{
196
+ ], template: "<div class=\"body\">\n <ng-template #defaultNameCell let-item=\"item\">\n {{ getDisplayFn()(item) }}\n </ng-template>\n\n @if (dataSource) {\n <table [dataSource]=\"dataSource\" class=\"natural-row-click\" mat-table>\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row style=\"display: none\"></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns\" mat-row></tr>\n\n <ng-container matColumnDef=\"name\">\n <th *matHeaderCellDef i18n mat-header-cell>Titre</th>\n <td *matCellDef=\"let item\" mat-cell>\n <ng-template\n [ngTemplateOutletContext]=\"{item: item}\"\n [ngTemplateOutlet]=\"itemTemplate ? itemTemplate : defaultNameCell\"\n />\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"unlink\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let element\" mat-cell>\n @if (!disabled) {\n <button\n (click)=\"removeRelation(element)\"\n [disabled]=\"removing.has(element)\"\n color=\"warn\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Dissocier\"\n >\n <mat-icon naturalIcon=\"link_off\" />\n </button>\n }\n </td>\n </ng-container>\n </table>\n }\n\n @if (dataSource?.data && (dataSource?.data?.length || 0) > (dataSource?.data?.pageSize || 0)) {\n <mat-paginator\n (page)=\"pagination($event)\"\n [length]=\"dataSource?.data?.length || 0\"\n [pageIndex]=\"dataSource?.data?.pageIndex || 0\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageSize]=\"dataSource?.data?.pageSize || 0\"\n />\n }\n\n @if (!loading && dataSource?.data?.length === 0) {\n <div class=\"margin-v mat-body\">\n <span i18n>Aucun r\u00E9sultat</span>\n </div>\n }\n\n @if (loading) {\n <mat-progress-spinner [diameter]=\"40\" class=\"loading\" mode=\"indeterminate\" />\n }\n</div>\n\n@if (!hierarchicSelectorConfig && service && !disabled) {\n <natural-select\n (selectionChange)=\"addRelations([$event])\"\n [displayWith]=\"$any(getDisplayFn())\"\n [filter]=\"autocompleteSelectorFilter\"\n [placeholder]=\"placeholder\"\n [service]=\"service\"\n [showIcon]=\"false\"\n />\n}\n\n@if (hierarchicSelectorConfig && !disabled) {\n <div>\n <button (click)=\"openNaturalHierarchicSelector()\" color=\"primary\" mat-flat-button>{{ placeholder }}</button>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>*:not(:last-child){margin-bottom:20px}:host .body{display:flex;flex-direction:column}:host .loading{margin:20px auto}:host .mat-column-unlink{width:2.5em}\n"] }]
197
+ }], ctorParameters: () => [{ type: i1.NaturalLinkMutationService }, { type: i2.NaturalHierarchicSelectorDialogService }], propDecorators: { select: [{
198
198
  type: ViewChild,
199
199
  args: [NaturalSelectComponent]
200
200
  }], itemTemplate: [{
@@ -224,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
224
224
  }], filter: [{
225
225
  type: Input
226
226
  }] } });
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3JlbGF0aW9ucy9yZWxhdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvcmVsYXRpb25zL3JlbGF0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBWSxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzFFLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxpQkFBaUIsRUFBZ0IsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsNEJBQTRCLEVBQWtDLE1BQU0sc0NBQXNDLENBQUM7QUFNbkgsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUs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WUFBWTt3QkFDWixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLHNCQUFzQjtxQkFDekI7c0tBbUIwQyxNQUFNO3NCQUFoRCxTQUFTO3VCQUFDLHNCQUFzQjtnQkFDQyxZQUFZO3NCQUE3QyxZQUFZO3VCQUFDLFdBQVc7Z0JBRVQsT0FBTztzQkFBdEIsS0FBSztnQkFLVSxXQUFXO3NCQUExQixLQUFLO2dCQUtVLDBCQUEwQjtzQkFBekMsS0FBSztnQkFLVSxXQUFXO3NCQUExQixLQUFLO2dCQUtVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBSzBCLElBQUk7c0JBQW5DLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUtHLGVBQWU7c0JBQXhDLE1BQU07Z0JBS1MseUJBQXlCO3NCQUF4QyxLQUFLO2dCQUtVLHdCQUF3QjtzQkFBdkMsS0FBSztnQkFLVSxTQUFTO3NCQUF4QixLQUFLO2dCQXdDSyxNQUFNO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGFnZUV2ZW50LCBNYXRQYWdpbmF0b3JNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQge2ZvcmtKb2luLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtOYXR1cmFsQWJzdHJhY3RDb250cm9sbGVyfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Fic3RyYWN0LWNvbnRyb2xsZXInO1xuaW1wb3J0IHtOYXR1cmFsRGF0YVNvdXJjZSwgUGFnaW5hdGVkRGF0YX0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9kYXRhLXNvdXJjZSc7XG5pbXBvcnQge05hdHVyYWxRdWVyeVZhcmlhYmxlc01hbmFnZXIsIFBhZ2luYXRpb25JbnB1dCwgUXVlcnlWYXJpYWJsZXN9IGZyb20gJy4uLy4uL2NsYXNzZXMvcXVlcnktdmFyaWFibGUtbWFuYWdlcic7XG5pbXBvcnQge0hpZXJhcmNoaWNGaWx0ZXJzQ29uZmlndXJhdGlvbn0gZnJvbSAnLi4vLi4vbW9kdWxlcy9oaWVyYXJjaGljLXNlbGVjdG9yL2NsYXNzZXMvaGllcmFyY2hpYy1maWx0ZXJzLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHtMaW5rYWJsZU9iamVjdCwgTmF0dXJhbExpbmtNdXRhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpbmstbXV0YXRpb24uc2VydmljZSc7XG5pbXBvcnQge05hdHVyYWxIaWVyYXJjaGljQ29uZmlndXJhdGlvbn0gZnJvbSAnLi4vaGllcmFyY2hpYy1zZWxlY3Rvci9jbGFzc2VzL2hpZXJhcmNoaWMtY29uZmlndXJhdGlvbic7XG5pbXBvcnQge0hpZXJhcmNoaWNEaWFsb2dDb25maWd9IGZyb20gJy4uL2hpZXJhcmNoaWMtc2VsZWN0b3IvaGllcmFyY2hpYy1zZWxlY3Rvci1kaWFsb2cvaGllcmFyY2hpYy1zZWxlY3Rvci1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7TmF0dXJhbEhpZXJhcmNoaWNTZWxlY3RvckRpYWxvZ1NlcnZpY2V9IGZyb20gJy4uL2hpZXJhcmNoaWMtc2VsZWN0b3IvaGllcmFyY2hpYy1zZWxlY3Rvci1kaWFsb2cvaGllcmFyY2hpYy1zZWxlY3Rvci1kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQge05hdHVyYWxTZWxlY3RDb21wb25lbnR9IGZyb20gJy4uL3NlbGVjdC9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQge2ZpbmFsaXplLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0TW9kZWxTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hYnN0cmFjdC1tb2RlbC5zZXJ2aWNlJztcbmltcG9ydCB7RXh0cmFjdFRhbGxPbmUsIEV4dHJhY3RWYWxsfSBmcm9tICcuLi8uLi90eXBlcy90eXBlcyc7XG5pbXBvcnQge01hdFByb2dyZXNzU3Bpbm5lck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQge05hdHVyYWxJY29uRGlyZWN0aXZlfSBmcm9tICcuLi9pY29uL2ljb24uZGlyZWN0aXZlJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdFRvb2x0aXBNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge01hdFRhYmxlTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBDdXN0b20gdGVtcGxhdGUgdXNhZ2UgOlxuICogPG5hdHVyYWwtcmVsYXRpb25zIFttYWluXT1cIm93bmVyXCIgW3NlcnZpY2VdPVwic3ZjXCIgW2ZpbHRlcl09XCJ7fVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGFuIGl0ZW1cIj5cbiAqICAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XG4gKiAgICAgICAgIDxzcGFuPnt7IGl0ZW0ueHh4IH19PC9zcGFuPlxuICogICAgIDwvbmctdGVtcGxhdGU+XG4gKiA8L25hdHVyYWwtcmVsYXRpb25zPlxuICovXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1yZWxhdGlvbnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWxhdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3JlbGF0aW9ucy5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE5hdHVyYWxJY29uRGlyZWN0aXZlLFxuICAgICAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXG4gICAgICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICAgICAgTmF0dXJhbFNlbGVjdENvbXBvbmVudCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsUmVsYXRpb25zQ29tcG9uZW50PFxuICAgICAgICBUU2VydmljZSBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdE1vZGVsU2VydmljZTxcbiAgICAgICAgICAgIHVua25vd24sXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBQYWdpbmF0ZWREYXRhPExpbmthYmxlT2JqZWN0PixcbiAgICAgICAgICAgIFF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICAgICAgdW5rbm93bixcbiAgICAgICAgICAgIGFueSxcbiAgICAgICAgICAgIHVua25vd24sXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICB1bmtub3duLFxuICAgICAgICAgICAgYW55XG4gICAgICAgID4sXG4gICAgPlxuICAgIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0Q29udHJvbGxlclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveVxue1xuICAgIEBWaWV3Q2hpbGQoTmF0dXJhbFNlbGVjdENvbXBvbmVudCkgcHJpdmF0ZSBzZWxlY3Q/OiBOYXR1cmFsU2VsZWN0Q29tcG9uZW50PFRTZXJ2aWNlPjtcbiAgICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmKSBwdWJsaWMgaXRlbVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgc2VydmljZT86IFRTZXJ2aWNlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHBsYWNlaG9sZGVyIHVzZWQgaW4gdGhlIGJ1dHRvbiB0byBhZGQgYSBuZXcgcmVsYXRpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEZpbHRlciBmb3IgYXV0b2NvbXBsZXRlIHNlbGVjdG9yXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGF1dG9jb21wbGV0ZVNlbGVjdG9yRmlsdGVyPzogRXh0cmFjdFZhbGw8VFNlcnZpY2U+WydmaWx0ZXInXSB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB0byBjdXN0b21pemUgdGhlIHJlbmRlcmluZyBvZiB0aGUgc2VsZWN0ZWQgaXRlbSBhcyB0ZXh0IGluIGlucHV0XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRpc3BsYXlXaXRoPzogKGl0ZW06IEV4dHJhY3RUYWxsT25lPFRTZXJ2aWNlPiB8IG51bGwpID0+IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHJlbGF0aW9ucyBjYW4gYmUgY2hhbmdlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG1haW4gb2JqZWN0IHRvIHdoaWNoIGFsbCByZWxhdGlvbnMgYmVsb25nIHRvXG4gICAgICovXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHB1YmxpYyBtYWluITogTGlua2FibGVPYmplY3QgJiB7cGVybWlzc2lvbnM/OiB7dXBkYXRlOiBib29sZWFufX07XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhZnRlciByZWxhdGlvbnMgd2VyZSBzdWNjZXNzZnVsbHkgYWRkZWQgb24gdGhlIHNlcnZlclxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogRmlsdGVycyBmb3IgaGllcmFyY2hpYyBzZWxlY3RvclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoaWVyYXJjaGljU2VsZWN0b3JGaWx0ZXJzPzogSGllcmFyY2hpY0ZpbHRlcnNDb25maWd1cmF0aW9uIHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gaW4gY2FzZSB3ZSBwcmVmZXIgaGllcmFyY2hpYyBzZWxlY3Rpb24gb3ZlciBhdXRvY29tcGxldGUgc2VsZWN0aW9uXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGhpZXJhcmNoaWNTZWxlY3RvckNvbmZpZz86IE5hdHVyYWxIaWVyYXJjaGljQ29uZmlndXJhdGlvbltdO1xuXG4gICAgLyoqXG4gICAgICogTGluayBtdXRhdGlvbiBzZW1hbnRpY1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvdGhlck5hbWU/OiBzdHJpbmcgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTGlzdGluZyBzZXJ2aWNlIGluc3RhbmNlXG4gICAgICovXG4gICAgcHVibGljIGRhdGFTb3VyY2U/OiBOYXR1cmFsRGF0YVNvdXJjZTxQYWdpbmF0ZWREYXRhPExpbmthYmxlT2JqZWN0Pj47XG4gICAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFRhYmxlIGNvbHVtbnNcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzcGxheWVkQ29sdW1ucyA9IFsnbmFtZSddO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHBhZ2VTaXplT3B0aW9ucyA9IFs1LCAyNSwgNTAsIDEwMF07XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlZmF1bHRQYWdpbmF0aW9uID0ge1xuICAgICAgICBwYWdlSW5kZXg6IDAsXG4gICAgICAgIHBhZ2VTaXplOiAyNSxcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogT2JzZXJ2YWJsZSB2YXJpYWJsZXMvb3B0aW9ucyBmb3IgbGlzdGluZyBzZXJ2aWNlIHVzYWdlIGFuZCBhcG9sbG8gd2F0Y2hRdWVyeVxuICAgICAqL1xuICAgIHByaXZhdGUgdmFyaWFibGVzTWFuYWdlcjogTmF0dXJhbFF1ZXJ5VmFyaWFibGVzTWFuYWdlcjxRdWVyeVZhcmlhYmxlcz4gPSBuZXcgTmF0dXJhbFF1ZXJ5VmFyaWFibGVzTWFuYWdlcigpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHJlbW92aW5nID0gbmV3IFNldDxMaW5rYWJsZU9iamVjdD4oKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBsaW5rTXV0YXRpb25TZXJ2aWNlOiBOYXR1cmFsTGlua011dGF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBoaWVyYXJjaGljU2VsZWN0b3JEaWFsb2c6IE5hdHVyYWxIaWVyYXJjaGljU2VsZWN0b3JEaWFsb2dTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBmaWx0ZXIgdXNlZCB0byBmaWx0ZXIgcmVsYXRpb25zXG4gICAgICpcbiAgICAgKiBTbyBpZiB0aGUgcmVsYXRpb25zIGFyZSBmcm9tIG9uZSBhY3Rpb24gLT4gdG8gbWFueSBvYmplY3RpdmVzLCB0aGVuIHRoZSBmaWx0ZXIgbXVzdCBmaWx0ZXJcbiAgICAgKiB0aGUgb2JqZWN0aXZlcyB0aGF0IGhhdmUgaW5kZWVkIGEgcmVsYXRpb24gdG8gdGhlIHBhcnRpY3VsYXIgYWN0aW9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBmaWx0ZXIoZmlsdGVyOiBFeHRyYWN0VmFsbDxUU2VydmljZT5bJ2ZpbHRlciddKSB7XG4gICAgICAgIHRoaXMudmFyaWFibGVzTWFuYWdlci5zZXQoJ3JlbGF0aW9ucy1maWx0ZXInLCB7ZmlsdGVyOiBmaWx0ZXJ9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbigpO1xuXG4gICAgICAgIC8vIEZvcmNlIGRpc2FibGVkIGlmIGNhbm5vdCB1cGRhdGUgb2JqZWN0XG4gICAgICAgIGlmICh0aGlzLm1haW4gJiYgdGhpcy5tYWluLnBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5tYWluLnBlcm1pc3Npb25zLnVwZGF0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5xdWVyeUl0ZW1zKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCAmJiB0aGlzLmRpc3BsYXllZENvbHVtbnMuaW5kZXhPZigndW5saW5rJykgPiAtMSkge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnBvcCgpO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmRpc2FibGVkICYmIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5pbmRleE9mKCd1bmxpbmsnKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKCd1bmxpbmsnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVubGluayBhY3Rpb25cbiAgICAgKiBSZWZldGNoIHJlc3VsdCB0byBkaXNwbGF5IGl0IGluIHRhYmxlXG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZVJlbGF0aW9uKHJlbGF0aW9uOiBMaW5rYWJsZU9iamVjdCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92aW5nLmFkZChyZWxhdGlvbik7XG5cbiAgICAgICAgdGhpcy5saW5rTXV0YXRpb25TZXJ2aWNlXG4gICAgICAgICAgICAudW5saW5rKHRoaXMubWFpbiwgcmVsYXRpb24sIHRoaXMub3RoZXJOYW1lKVxuICAgICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5yZW1vdmluZy5kZWxldGUocmVsYXRpb24pKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5kYXRhU291cmNlPy5yZW1vdmUocmVsYXRpb24pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMaW5rIGFjdGlvblxuICAgICAqIFJlZmV0Y2ggcmVzdWx0IHRvIGRpc3BsYXkgaXQgaW4gdGFibGVcbiAgICAgKiBUT0RPIDogY291bGQgbWF5YmUgdXNlIFwidXBkYXRlXCIgYXR0cmlidXRlIG9mIGFwb2xsby5tdXRhdGUgZnVuY3Rpb24gdG8gdXBkYXRlIHRhYmxlIGZhc3RlciAoYnV0IGhhcmQgdG8gZG8gaXQgaGVyZSlcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkUmVsYXRpb25zKHJlbGF0aW9uczogKExpbmthYmxlT2JqZWN0IHwgRXh0cmFjdFRhbGxPbmU8VFNlcnZpY2U+IHwgc3RyaW5nIHwgbnVsbClbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBvYnNlcnZhYmxlcyA9IHJlbGF0aW9uc1xuICAgICAgICAgICAgLmZpbHRlcigocmVsYXRpb24pOiByZWxhdGlvbiBpcyBMaW5rYWJsZU9iamVjdCA9PiAhIXJlbGF0aW9uICYmIHR5cGVvZiByZWxhdGlvbiA9PT0gJ29iamVjdCcpXG4gICAgICAgICAgICAubWFwKHJlbGF0aW9uID0+IHRoaXMubGlua011dGF0aW9uU2VydmljZS5saW5rKHRoaXMubWFpbiwgcmVsYXRpb24sIHRoaXMub3RoZXJOYW1lKSk7XG5cbiAgICAgICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdD8uY2xlYXIoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHBhZ2luYXRpb24oZXZlbnQ/OiBQYWdlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgbGV0IHBhZ2luYXRpb246IFBhZ2luYXRpb25JbnB1dCB8IG51bGwgPSBudWxsO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudCAmJlxuICAgICAgICAgICAgKGV2ZW50LnBhZ2VJbmRleCAhPT0gdGhpcy5kZWZhdWx0UGFnaW5hdGlvbi5wYWdlSW5kZXggfHwgZXZlbnQucGFnZVNpemUgIT09IHRoaXMuZGVmYXVsdFBhZ2luYXRpb24ucGFnZVNpemUpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcGFnaW5hdGlvbiA9IHtcbiAgICAgICAgICAgICAgICBwYWdlSW5kZXg6IGV2ZW50LnBhZ2VJbmRleCxcbiAgICAgICAgICAgICAgICBwYWdlU2l6ZTogZXZlbnQucGFnZVNpemUsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YXJpYWJsZXNNYW5hZ2VyLnNldCgncGFnaW5hdGlvbicsIHtwYWdpbmF0aW9uOiBwYWdpbmF0aW9uID8gcGFnaW5hdGlvbiA6IHRoaXMuZGVmYXVsdFBhZ2luYXRpb259KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGlzcGxheUZuKCk6IChpdGVtOiBFeHRyYWN0VGFsbE9uZTxUU2VydmljZT4gfCBudWxsKSA9PiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5V2l0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheVdpdGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKGl0ZW06IGFueSkgPT4gKGl0ZW0gPyBpdGVtLmZ1bGxOYW1lIHx8IGl0ZW0ubmFtZSA6ICcnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3Blbk5hdHVyYWxIaWVyYXJjaGljU2VsZWN0b3IoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdEF0S2V5ID0gdGhpcy5nZXRTZWxlY3RLZXkoKTtcblxuICAgICAgICBpZiAoIXNlbGVjdEF0S2V5IHx8ICF0aGlzLmhpZXJhcmNoaWNTZWxlY3RvckNvbmZpZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB7fTtcblxuICAgICAgICBjb25zdCBoaWVyYXJjaGljQ29uZmlnOiBIaWVyYXJjaGljRGlhbG9nQ29uZmlnID0ge1xuICAgICAgICAgICAgaGllcmFyY2hpY0NvbmZpZzogdGhpcy5oaWVyYXJjaGljU2VsZWN0b3JDb25maWcsXG4gICAgICAgICAgICBoaWVyYXJjaGljU2VsZWN0aW9uOiBzZWxlY3RlZCxcbiAgICAgICAgICAgIGhpZXJhcmNoaWNGaWx0ZXJzOiB0aGlzLmhpZXJhcmNoaWNTZWxlY3RvckZpbHRlcnMsXG4gICAgICAgICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmhpZXJhcmNoaWNTZWxlY3RvckRpYWxvZ1xuICAgICAgICAgICAgLm9wZW4oaGllcmFyY2hpY0NvbmZpZylcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuaGllcmFyY2hpY1NlbGVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHJlc3VsdC5oaWVyYXJjaGljU2VsZWN0aW9uW3NlbGVjdEF0S2V5XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkUmVsYXRpb25zKHNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgbGlzdCBmcm9tIGRhdGFiYXNlXG4gICAgICovXG4gICAgcHJpdmF0ZSBxdWVyeUl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgcXVlcnlSZWYgPSB0aGlzLnNlcnZpY2Uud2F0Y2hBbGwodGhpcy52YXJpYWJsZXNNYW5hZ2VyKS5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICB0YXAoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSksXG4gICAgICAgICAgICAgICAgY29tcGxldGU6ICgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSksXG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE5hdHVyYWxEYXRhU291cmNlKHF1ZXJ5UmVmKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdEtleSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIXRoaXMuaGllcmFyY2hpY1NlbGVjdG9yQ29uZmlnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5oaWVyYXJjaGljU2VsZWN0b3JDb25maWcuZmlsdGVyKGMgPT4gISFjLnNlbGVjdGFibGVBdEtleSlbMF0uc2VsZWN0YWJsZUF0S2V5O1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJib2R5XCI+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TmFtZUNlbGwgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgIHt7IGdldERpc3BsYXlGbigpKGl0ZW0pIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDx0YWJsZSAqbmdJZj1cImRhdGFTb3VyY2VcIiBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgY2xhc3M9XCJuYXR1cmFsLXJvdy1jbGlja1wiIG1hdC10YWJsZT5cbiAgICAgICAgPHRyICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCIgbWF0LWhlYWRlci1yb3cgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+PC90cj5cbiAgICAgICAgPHRyICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zXCIgbWF0LXJvdz48L3RyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibmFtZVwiPlxuICAgICAgICAgICAgPHRoICptYXRIZWFkZXJDZWxsRGVmIGkxOG4gbWF0LWhlYWRlci1jZWxsPlRpdHJlPC90aD5cbiAgICAgICAgICAgIDx0ZCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgbWF0LWNlbGw+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbX1cIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtVGVtcGxhdGUgPyBpdGVtVGVtcGxhdGUgOiBkZWZhdWx0TmFtZUNlbGxcIlxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ1bmxpbmtcIj5cbiAgICAgICAgICAgIDx0aCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyLWNlbGw+PC90aD5cbiAgICAgICAgICAgIDx0ZCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCIgbWF0LWNlbGw+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVSZWxhdGlvbihlbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZW1vdmluZy5oYXMoZWxlbWVudClcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cIndhcm5cIlxuICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgaTE4bi1tYXRUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJEaXNzb2NpZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIG5hdHVyYWxJY29uPVwibGlua19vZmZcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90YWJsZT5cblxuICAgIDxtYXQtcGFnaW5hdG9yXG4gICAgICAgIChwYWdlKT1cInBhZ2luYXRpb24oJGV2ZW50KVwiXG4gICAgICAgICpuZ0lmPVwiZGF0YVNvdXJjZT8uZGF0YSAmJiAoZGF0YVNvdXJjZT8uZGF0YT8ubGVuZ3RoIHx8IDApID4gKGRhdGFTb3VyY2U/LmRhdGE/LnBhZ2VTaXplIHx8IDApXCJcbiAgICAgICAgW2xlbmd0aF09XCJkYXRhU291cmNlPy5kYXRhPy5sZW5ndGggfHwgMFwiXG4gICAgICAgIFtwYWdlSW5kZXhdPVwiZGF0YVNvdXJjZT8uZGF0YT8ucGFnZUluZGV4IHx8IDBcIlxuICAgICAgICBbcGFnZVNpemVPcHRpb25zXT1cInBhZ2VTaXplT3B0aW9uc1wiXG4gICAgICAgIFtwYWdlU2l6ZV09XCJkYXRhU291cmNlPy5kYXRhPy5wYWdlU2l6ZSB8fCAwXCJcbiAgICA+PC9tYXQtcGFnaW5hdG9yPlxuXG4gICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmIGRhdGFTb3VyY2U/LmRhdGE/Lmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwibWFyZ2luLXYgbWF0LWJvZHlcIj5cbiAgICAgICAgPHNwYW4gaTE4bj5BdWN1biByw6lzdWx0YXQ8L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgKm5nSWY9XCJsb2FkaW5nXCIgW2RpYW1ldGVyXT1cIjQwXCIgY2xhc3M9XCJsb2FkaW5nXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuPC9kaXY+XG5cbjxuYXR1cmFsLXNlbGVjdFxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiYWRkUmVsYXRpb25zKFskZXZlbnRdKVwiXG4gICAgKm5nSWY9XCIhaGllcmFyY2hpY1NlbGVjdG9yQ29uZmlnICYmIHNlcnZpY2UgJiYgIWRpc2FibGVkXCJcbiAgICBbZGlzcGxheVdpdGhdPVwiJGFueShnZXREaXNwbGF5Rm4oKSlcIlxuICAgIFtmaWx0ZXJdPVwiYXV0b2NvbXBsZXRlU2VsZWN0b3JGaWx0ZXJcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW3NlcnZpY2VdPVwic2VydmljZVwiXG4gICAgW3Nob3dJY29uXT1cImZhbHNlXCJcbj48L25hdHVyYWwtc2VsZWN0PlxuXG48ZGl2ICpuZ0lmPVwiaGllcmFyY2hpY1NlbGVjdG9yQ29uZmlnICYmICFkaXNhYmxlZFwiPlxuICAgIDxidXR0b24gKGNsaWNrKT1cIm9wZW5OYXR1cmFsSGllcmFyY2hpY1NlbGVjdG9yKClcIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtZmxhdC1idXR0b24+e3sgcGxhY2Vob2xkZXIgfX08L2J1dHRvbj5cbjwvZGl2PlxuIl19
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3JlbGF0aW9ucy9yZWxhdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvcmVsYXRpb25zL3JlbGF0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBWSxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzFFLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxpQkFBaUIsRUFBZ0IsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsNEJBQTRCLEVBQWtDLE1BQU0sc0NBQXNDLENBQUM7QUFNbkgsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUs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T0FDeEIsc0JBQXNCOzsyRkFHakIseUJBQXlCO2tCQWpCckMsU0FBUzsrQkFDSSxtQkFBbUIsY0FHakIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixzQkFBc0I7cUJBQ3pCO29KQW1CMEMsTUFBTTtzQkFBaEQsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBQ0MsWUFBWTtzQkFBN0MsWUFBWTt1QkFBQyxXQUFXO2dCQUVULE9BQU87c0JBQXRCLEtBQUs7Z0JBS1UsV0FBVztzQkFBMUIsS0FBSztnQkFLVSwwQkFBMEI7c0JBQXpDLEtBQUs7Z0JBS1UsV0FBVztzQkFBMUIsS0FBSztnQkFLVSxRQUFRO3NCQUF2QixLQUFLO2dCQUswQixJQUFJO3NCQUFuQyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFLRyxlQUFlO3NCQUF4QyxNQUFNO2dCQUtTLHlCQUF5QjtzQkFBeEMsS0FBSztnQkFLVSx3QkFBd0I7c0JBQXZDLEtBQUs7Z0JBS1UsU0FBUztzQkFBeEIsS0FBSztnQkF3Q0ssTUFBTTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BhZ2VFdmVudCwgTWF0UGFnaW5hdG9yTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHtmb3JrSm9pbiwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0Q29udHJvbGxlcn0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9hYnN0cmFjdC1jb250cm9sbGVyJztcbmltcG9ydCB7TmF0dXJhbERhdGFTb3VyY2UsIFBhZ2luYXRlZERhdGF9IGZyb20gJy4uLy4uL2NsYXNzZXMvZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtOYXR1cmFsUXVlcnlWYXJpYWJsZXNNYW5hZ2VyLCBQYWdpbmF0aW9uSW5wdXQsIFF1ZXJ5VmFyaWFibGVzfSBmcm9tICcuLi8uLi9jbGFzc2VzL3F1ZXJ5LXZhcmlhYmxlLW1hbmFnZXInO1xuaW1wb3J0IHtIaWVyYXJjaGljRmlsdGVyc0NvbmZpZ3VyYXRpb259IGZyb20gJy4uLy4uL21vZHVsZXMvaGllcmFyY2hpYy1zZWxlY3Rvci9jbGFzc2VzL2hpZXJhcmNoaWMtZmlsdGVycy1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7TGlua2FibGVPYmplY3QsIE5hdHVyYWxMaW5rTXV0YXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9saW5rLW11dGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtOYXR1cmFsSGllcmFyY2hpY0NvbmZpZ3VyYXRpb259IGZyb20gJy4uL2hpZXJhcmNoaWMtc2VsZWN0b3IvY2xhc3Nlcy9oaWVyYXJjaGljLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHtIaWVyYXJjaGljRGlhbG9nQ29uZmlnfSBmcm9tICcuLi9oaWVyYXJjaGljLXNlbGVjdG9yL2hpZXJhcmNoaWMtc2VsZWN0b3ItZGlhbG9nL2hpZXJhcmNoaWMtc2VsZWN0b3ItZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQge05hdHVyYWxIaWVyYXJjaGljU2VsZWN0b3JEaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi9oaWVyYXJjaGljLXNlbGVjdG9yL2hpZXJhcmNoaWMtc2VsZWN0b3ItZGlhbG9nL2hpZXJhcmNoaWMtc2VsZWN0b3ItZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHtOYXR1cmFsU2VsZWN0Q29tcG9uZW50fSBmcm9tICcuLi9zZWxlY3Qvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtmaW5hbGl6ZSwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge05hdHVyYWxBYnN0cmFjdE1vZGVsU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWJzdHJhY3QtbW9kZWwuc2VydmljZSc7XG5pbXBvcnQge0V4dHJhY3RUYWxsT25lLCBFeHRyYWN0VmFsbH0gZnJvbSAnLi4vLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHtNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHtOYXR1cmFsSWNvbkRpcmVjdGl2ZX0gZnJvbSAnLi4vaWNvbi9pY29uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtNYXRUb29sdGlwTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRUYWJsZU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogQ3VzdG9tIHRlbXBsYXRlIHVzYWdlIDpcbiAqIDxuYXR1cmFsLXJlbGF0aW9ucyBbbWFpbl09XCJvd25lclwiIFtzZXJ2aWNlXT1cInN2Y1wiIFtmaWx0ZXJdPVwie31cIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhbiBpdGVtXCI+XG4gKiAgICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxuICogICAgICAgICA8c3Bhbj57eyBpdGVtLnh4eCB9fTwvc3Bhbj5cbiAqICAgICA8L25nLXRlbXBsYXRlPlxuICogPC9uYXR1cmFsLXJlbGF0aW9ucz5cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtcmVsYXRpb25zJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmVsYXRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yZWxhdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBOYXR1cmFsSWNvbkRpcmVjdGl2ZSxcbiAgICAgICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxuICAgICAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgICAgIE5hdHVyYWxTZWxlY3RDb21wb25lbnQsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFJlbGF0aW9uc0NvbXBvbmVudDxcbiAgICAgICAgVFNlcnZpY2UgZXh0ZW5kcyBOYXR1cmFsQWJzdHJhY3RNb2RlbFNlcnZpY2U8XG4gICAgICAgICAgICB1bmtub3duLFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgUGFnaW5hdGVkRGF0YTxMaW5rYWJsZU9iamVjdD4sXG4gICAgICAgICAgICBRdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgICAgIHVua25vd24sXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICB1bmtub3duLFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgdW5rbm93bixcbiAgICAgICAgICAgIGFueVxuICAgICAgICA+LFxuICAgID5cbiAgICBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdENvbnRyb2xsZXJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgICBAVmlld0NoaWxkKE5hdHVyYWxTZWxlY3RDb21wb25lbnQpIHByaXZhdGUgc2VsZWN0PzogTmF0dXJhbFNlbGVjdENvbXBvbmVudDxUU2VydmljZT47XG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgcHVibGljIGl0ZW1UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gICAgQElucHV0KCkgcHVibGljIHNlcnZpY2U/OiBUU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBwbGFjZWhvbGRlciB1c2VkIGluIHRoZSBidXR0b24gdG8gYWRkIGEgbmV3IHJlbGF0aW9uXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgZm9yIGF1dG9jb21wbGV0ZSBzZWxlY3RvclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhdXRvY29tcGxldGVTZWxlY3RvckZpbHRlcj86IEV4dHJhY3RWYWxsPFRTZXJ2aWNlPlsnZmlsdGVyJ10gfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdG8gY3VzdG9taXplIHRoZSByZW5kZXJpbmcgb2YgdGhlIHNlbGVjdGVkIGl0ZW0gYXMgdGV4dCBpbiBpbnB1dFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5V2l0aD86IChpdGVtOiBFeHRyYWN0VGFsbE9uZTxUU2VydmljZT4gfCBudWxsKSA9PiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSByZWxhdGlvbnMgY2FuIGJlIGNoYW5nZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBtYWluIG9iamVjdCB0byB3aGljaCBhbGwgcmVsYXRpb25zIGJlbG9uZyB0b1xuICAgICAqL1xuICAgIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgbWFpbiE6IExpbmthYmxlT2JqZWN0ICYge3Blcm1pc3Npb25zPzoge3VwZGF0ZTogYm9vbGVhbn19O1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYWZ0ZXIgcmVsYXRpb25zIHdlcmUgc3VjY2Vzc2Z1bGx5IGFkZGVkIG9uIHRoZSBzZXJ2ZXJcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEZpbHRlcnMgZm9yIGhpZXJhcmNoaWMgc2VsZWN0b3JcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaGllcmFyY2hpY1NlbGVjdG9yRmlsdGVycz86IEhpZXJhcmNoaWNGaWx0ZXJzQ29uZmlndXJhdGlvbiB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGluIGNhc2Ugd2UgcHJlZmVyIGhpZXJhcmNoaWMgc2VsZWN0aW9uIG92ZXIgYXV0b2NvbXBsZXRlIHNlbGVjdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoaWVyYXJjaGljU2VsZWN0b3JDb25maWc/OiBOYXR1cmFsSGllcmFyY2hpY0NvbmZpZ3VyYXRpb25bXTtcblxuICAgIC8qKlxuICAgICAqIExpbmsgbXV0YXRpb24gc2VtYW50aWNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgb3RoZXJOYW1lPzogc3RyaW5nIHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIExpc3Rpbmcgc2VydmljZSBpbnN0YW5jZVxuICAgICAqL1xuICAgIHB1YmxpYyBkYXRhU291cmNlPzogTmF0dXJhbERhdGFTb3VyY2U8UGFnaW5hdGVkRGF0YTxMaW5rYWJsZU9iamVjdD4+O1xuICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUYWJsZSBjb2x1bW5zXG4gICAgICovXG4gICAgcHVibGljIGRpc3BsYXllZENvbHVtbnMgPSBbJ25hbWUnXTtcblxuICAgIHB1YmxpYyByZWFkb25seSBwYWdlU2l6ZU9wdGlvbnMgPSBbNSwgMjUsIDUwLCAxMDBdO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0UGFnaW5hdGlvbiA9IHtcbiAgICAgICAgcGFnZUluZGV4OiAwLFxuICAgICAgICBwYWdlU2l6ZTogMjUsXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIE9ic2VydmFibGUgdmFyaWFibGVzL29wdGlvbnMgZm9yIGxpc3Rpbmcgc2VydmljZSB1c2FnZSBhbmQgYXBvbGxvIHdhdGNoUXVlcnlcbiAgICAgKi9cbiAgICBwcml2YXRlIHZhcmlhYmxlc01hbmFnZXIgPSBuZXcgTmF0dXJhbFF1ZXJ5VmFyaWFibGVzTWFuYWdlcjxRdWVyeVZhcmlhYmxlcz4oKTtcblxuICAgIHB1YmxpYyByZWFkb25seSByZW1vdmluZyA9IG5ldyBTZXQ8TGlua2FibGVPYmplY3Q+KCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua011dGF0aW9uU2VydmljZTogTmF0dXJhbExpbmtNdXRhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaGllcmFyY2hpY1NlbGVjdG9yRGlhbG9nOiBOYXR1cmFsSGllcmFyY2hpY1NlbGVjdG9yRGlhbG9nU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZmlsdGVyIHVzZWQgdG8gZmlsdGVyIHJlbGF0aW9uc1xuICAgICAqXG4gICAgICogU28gaWYgdGhlIHJlbGF0aW9ucyBhcmUgZnJvbSBvbmUgYWN0aW9uIC0+IHRvIG1hbnkgb2JqZWN0aXZlcywgdGhlbiB0aGUgZmlsdGVyIG11c3QgZmlsdGVyXG4gICAgICogdGhlIG9iamVjdGl2ZXMgdGhhdCBoYXZlIGluZGVlZCBhIHJlbGF0aW9uIHRvIHRoZSBwYXJ0aWN1bGFyIGFjdGlvbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgZmlsdGVyKGZpbHRlcjogRXh0cmFjdFZhbGw8VFNlcnZpY2U+WydmaWx0ZXInXSkge1xuICAgICAgICB0aGlzLnZhcmlhYmxlc01hbmFnZXIuc2V0KCdyZWxhdGlvbnMtZmlsdGVyJywge2ZpbHRlcjogZmlsdGVyfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5SXRlbXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkICYmIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5pbmNsdWRlcygndW5saW5rJykpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wb3AoKTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLmluY2x1ZGVzKCd1bmxpbmsnKSkge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goJ3VubGluaycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24oKTtcblxuICAgICAgICAvLyBGb3JjZSBkaXNhYmxlZCBpZiBjYW5ub3QgdXBkYXRlIG9iamVjdFxuICAgICAgICBpZiAodGhpcy5tYWluICYmIHRoaXMubWFpbi5wZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgfHwgIXRoaXMubWFpbi5wZXJtaXNzaW9ucy51cGRhdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVbmxpbmsgYWN0aW9uXG4gICAgICogUmVmZXRjaCByZXN1bHQgdG8gZGlzcGxheSBpdCBpbiB0YWJsZVxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVSZWxhdGlvbihyZWxhdGlvbjogTGlua2FibGVPYmplY3QpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmluZy5hZGQocmVsYXRpb24pO1xuXG4gICAgICAgIHRoaXMubGlua011dGF0aW9uU2VydmljZVxuICAgICAgICAgICAgLnVubGluayh0aGlzLm1haW4sIHJlbGF0aW9uLCB0aGlzLm90aGVyTmFtZSlcbiAgICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMucmVtb3ZpbmcuZGVsZXRlKHJlbGF0aW9uKSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZGF0YVNvdXJjZT8ucmVtb3ZlKHJlbGF0aW9uKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTGluayBhY3Rpb25cbiAgICAgKiBSZWZldGNoIHJlc3VsdCB0byBkaXNwbGF5IGl0IGluIHRhYmxlXG4gICAgICogVE9ETyA6IGNvdWxkIG1heWJlIHVzZSBcInVwZGF0ZVwiIGF0dHJpYnV0ZSBvZiBhcG9sbG8ubXV0YXRlIGZ1bmN0aW9uIHRvIHVwZGF0ZSB0YWJsZSBmYXN0ZXIgKGJ1dCBoYXJkIHRvIGRvIGl0IGhlcmUpXG4gICAgICovXG4gICAgcHVibGljIGFkZFJlbGF0aW9ucyhyZWxhdGlvbnM6IChMaW5rYWJsZU9iamVjdCB8IEV4dHJhY3RUYWxsT25lPFRTZXJ2aWNlPiB8IHN0cmluZyB8IG51bGwpW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSByZWxhdGlvbnNcbiAgICAgICAgICAgIC5maWx0ZXIoKHJlbGF0aW9uKTogcmVsYXRpb24gaXMgTGlua2FibGVPYmplY3QgPT4gISFyZWxhdGlvbiAmJiB0eXBlb2YgcmVsYXRpb24gPT09ICdvYmplY3QnKVxuICAgICAgICAgICAgLm1hcChyZWxhdGlvbiA9PiB0aGlzLmxpbmtNdXRhdGlvblNlcnZpY2UubGluayh0aGlzLm1haW4sIHJlbGF0aW9uLCB0aGlzLm90aGVyTmFtZSkpO1xuXG4gICAgICAgIGZvcmtKb2luKG9ic2VydmFibGVzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Q/LmNsZWFyKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBwYWdpbmF0aW9uKGV2ZW50PzogUGFnZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGxldCBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uSW5wdXQgfCBudWxsID0gbnVsbDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQgJiZcbiAgICAgICAgICAgIChldmVudC5wYWdlSW5kZXggIT09IHRoaXMuZGVmYXVsdFBhZ2luYXRpb24ucGFnZUluZGV4IHx8IGV2ZW50LnBhZ2VTaXplICE9PSB0aGlzLmRlZmF1bHRQYWdpbmF0aW9uLnBhZ2VTaXplKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHBhZ2luYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgcGFnZUluZGV4OiBldmVudC5wYWdlSW5kZXgsXG4gICAgICAgICAgICAgICAgcGFnZVNpemU6IGV2ZW50LnBhZ2VTaXplLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFyaWFibGVzTWFuYWdlci5zZXQoJ3BhZ2luYXRpb24nLCB7cGFnaW5hdGlvbjogcGFnaW5hdGlvbiA/IHBhZ2luYXRpb24gOiB0aGlzLmRlZmF1bHRQYWdpbmF0aW9ufSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERpc3BsYXlGbigpOiAoaXRlbTogRXh0cmFjdFRhbGxPbmU8VFNlcnZpY2U+IHwgbnVsbCkgPT4gc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheVdpdGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlXaXRoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChpdGVtOiBhbnkpID0+IChpdGVtID8gaXRlbS5mdWxsTmFtZSB8fCBpdGVtLm5hbWUgOiAnJyk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5OYXR1cmFsSGllcmFyY2hpY1NlbGVjdG9yKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RBdEtleSA9IHRoaXMuZ2V0U2VsZWN0S2V5KCk7XG5cbiAgICAgICAgaWYgKCFzZWxlY3RBdEtleSB8fCAhdGhpcy5oaWVyYXJjaGljU2VsZWN0b3JDb25maWcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0ge307XG5cbiAgICAgICAgY29uc3QgaGllcmFyY2hpY0NvbmZpZzogSGllcmFyY2hpY0RpYWxvZ0NvbmZpZyA9IHtcbiAgICAgICAgICAgIGhpZXJhcmNoaWNDb25maWc6IHRoaXMuaGllcmFyY2hpY1NlbGVjdG9yQ29uZmlnLFxuICAgICAgICAgICAgaGllcmFyY2hpY1NlbGVjdGlvbjogc2VsZWN0ZWQsXG4gICAgICAgICAgICBoaWVyYXJjaGljRmlsdGVyczogdGhpcy5oaWVyYXJjaGljU2VsZWN0b3JGaWx0ZXJzLFxuICAgICAgICAgICAgbXVsdGlwbGU6IHRydWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5oaWVyYXJjaGljU2VsZWN0b3JEaWFsb2dcbiAgICAgICAgICAgIC5vcGVuKGhpZXJhcmNoaWNDb25maWcpXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ/LmhpZXJhcmNoaWNTZWxlY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSByZXN1bHQuaGllcmFyY2hpY1NlbGVjdGlvbltzZWxlY3RBdEtleV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFJlbGF0aW9ucyhzZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGxpc3QgZnJvbSBkYXRhYmFzZVxuICAgICAqL1xuICAgIHByaXZhdGUgcXVlcnlJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IHF1ZXJ5UmVmID0gdGhpcy5zZXJ2aWNlLndhdGNoQWxsKHRoaXMudmFyaWFibGVzTWFuYWdlcikucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgdGFwKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAoKSA9PiAodGhpcy5sb2FkaW5nID0gZmFsc2UpLFxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiAodGhpcy5sb2FkaW5nID0gZmFsc2UpLFxuICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiAodGhpcy5sb2FkaW5nID0gZmFsc2UpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBOYXR1cmFsRGF0YVNvdXJjZShxdWVyeVJlZik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3RLZXkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCF0aGlzLmhpZXJhcmNoaWNTZWxlY3RvckNvbmZpZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaGllcmFyY2hpY1NlbGVjdG9yQ29uZmlnLmZpbHRlcihjID0+ICEhYy5zZWxlY3RhYmxlQXRLZXkpWzBdLnNlbGVjdGFibGVBdEtleTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYm9keVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdE5hbWVDZWxsIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgICAgICB7eyBnZXREaXNwbGF5Rm4oKShpdGVtKSB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICBAaWYgKGRhdGFTb3VyY2UpIHtcbiAgICAgICAgPHRhYmxlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBjbGFzcz1cIm5hdHVyYWwtcm93LWNsaWNrXCIgbWF0LXRhYmxlPlxuICAgICAgICAgICAgPHRyICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCIgbWF0LWhlYWRlci1yb3cgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+PC90cj5cbiAgICAgICAgICAgIDx0ciAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1uc1wiIG1hdC1yb3c+PC90cj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJuYW1lXCI+XG4gICAgICAgICAgICAgICAgPHRoICptYXRIZWFkZXJDZWxsRGVmIGkxOG4gbWF0LWhlYWRlci1jZWxsPlRpdHJlPC90aD5cbiAgICAgICAgICAgICAgICA8dGQgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIG1hdC1jZWxsPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlID8gaXRlbVRlbXBsYXRlIDogZGVmYXVsdE5hbWVDZWxsXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidW5saW5rXCI+XG4gICAgICAgICAgICAgICAgPHRoICptYXRIZWFkZXJDZWxsRGVmIG1hdC1oZWFkZXItY2VsbD48L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCIgbWF0LWNlbGw+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVJlbGF0aW9uKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicmVtb3ZpbmcuaGFzKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cIndhcm5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkxOG4tbWF0VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJEaXNzb2NpZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBuYXR1cmFsSWNvbj1cImxpbmtfb2ZmXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3RhYmxlPlxuICAgIH1cblxuICAgIEBpZiAoZGF0YVNvdXJjZT8uZGF0YSAmJiAoZGF0YVNvdXJjZT8uZGF0YT8ubGVuZ3RoIHx8IDApID4gKGRhdGFTb3VyY2U/LmRhdGE/LnBhZ2VTaXplIHx8IDApKSB7XG4gICAgICAgIDxtYXQtcGFnaW5hdG9yXG4gICAgICAgICAgICAocGFnZSk9XCJwYWdpbmF0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgW2xlbmd0aF09XCJkYXRhU291cmNlPy5kYXRhPy5sZW5ndGggfHwgMFwiXG4gICAgICAgICAgICBbcGFnZUluZGV4XT1cImRhdGFTb3VyY2U/LmRhdGE/LnBhZ2VJbmRleCB8fCAwXCJcbiAgICAgICAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCJcbiAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJkYXRhU291cmNlPy5kYXRhPy5wYWdlU2l6ZSB8fCAwXCJcbiAgICAgICAgLz5cbiAgICB9XG5cbiAgICBAaWYgKCFsb2FkaW5nICYmIGRhdGFTb3VyY2U/LmRhdGE/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibWFyZ2luLXYgbWF0LWJvZHlcIj5cbiAgICAgICAgICAgIDxzcGFuIGkxOG4+QXVjdW4gcsOpc3VsdGF0PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICBAaWYgKGxvYWRpbmcpIHtcbiAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyIFtkaWFtZXRlcl09XCI0MFwiIGNsYXNzPVwibG9hZGluZ1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCIgLz5cbiAgICB9XG48L2Rpdj5cblxuQGlmICghaGllcmFyY2hpY1NlbGVjdG9yQ29uZmlnICYmIHNlcnZpY2UgJiYgIWRpc2FibGVkKSB7XG4gICAgPG5hdHVyYWwtc2VsZWN0XG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiYWRkUmVsYXRpb25zKFskZXZlbnRdKVwiXG4gICAgICAgIFtkaXNwbGF5V2l0aF09XCIkYW55KGdldERpc3BsYXlGbigpKVwiXG4gICAgICAgIFtmaWx0ZXJdPVwiYXV0b2NvbXBsZXRlU2VsZWN0b3JGaWx0ZXJcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbc2VydmljZV09XCJzZXJ2aWNlXCJcbiAgICAgICAgW3Nob3dJY29uXT1cImZhbHNlXCJcbiAgICAvPlxufVxuXG5AaWYgKGhpZXJhcmNoaWNTZWxlY3RvckNvbmZpZyAmJiAhZGlzYWJsZWQpIHtcbiAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvcGVuTmF0dXJhbEhpZXJhcmNoaWNTZWxlY3RvcigpXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0LWZsYXQtYnV0dG9uPnt7IHBsYWNlaG9sZGVyIH19PC9idXR0b24+XG4gICAgPC9kaXY+XG59XG4iXX0=
@@ -99,7 +99,7 @@ function wrapWithFieldName(field, condition) {
99
99
  return result;
100
100
  }
101
101
  function transformSelection(facet, selection) {
102
- const newSelection = facet && facet.transform ? facet.transform(selection) : selection;
102
+ const newSelection = facet?.transform ? facet.transform(selection) : selection;
103
103
  return isDateFacet(facet) ? replaceToday(newSelection) : selection;
104
104
  }
105
105
  function isInvertedFlag(facet) {
@@ -108,4 +108,4 @@ function isInvertedFlag(facet) {
108
108
  function isDateFacet(facet) {
109
109
  return !!facet && 'component' in facet && facet.component === TypeDateComponent;
110
110
  }
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1kb2N0cmluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9jbGFzc2VzL2dyYXBocWwtZG9jdHJpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQU1ILGVBQWUsR0FDbEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsU0FBUyxFQUFFLHFCQUFxQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ3pELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsaUJBQWlCLEVBQXdCLE1BQU0seURBQXlELENBQUM7QUFFakgsTUFBTSxVQUFVLHVCQUF1QixDQUNuQyxNQUFrQyxFQUNsQyxVQUEwQztJQUUxQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRW5DLE1BQU0sTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUMxQixJQUFJLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3hDLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ3JCO0lBRUQsS0FBSyxNQUFNLGVBQWUsSUFBSSxVQUFVLEVBQUU7UUFDdEMsTUFBTSxLQUFLLEdBQWdCLEVBQUUsQ0FBQztRQUM5QixNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXhFLEtBQUssTUFBTSxTQUFTLElBQUksZUFBZSxFQUFFO1lBQ3JDLE1BQU0sS0FBSyxHQUFHLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN2RCxNQUFNLG9CQUFvQixHQUFHLGtCQUFrQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMs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QUFpQixDQUFDO0FBQ3BGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Ryb3Bkb3duRmFjZXQsIEZhY2V0LCBGbGFnRmFjZXQsIE5hdHVyYWxTZWFyY2hGYWNldHN9IGZyb20gJy4uL3R5cGVzL2ZhY2V0JztcbmltcG9ydCB7TmF0dXJhbFNlYXJjaFNlbGVjdGlvbiwgTmF0dXJhbFNlYXJjaFNlbGVjdGlvbnN9IGZyb20gJy4uL3R5cGVzL3ZhbHVlcyc7XG5pbXBvcnQge1xuICAgIEZpbHRlcixcbiAgICBGaWx0ZXJHcm91cCxcbiAgICBGaWx0ZXJHcm91cENvbmRpdGlvbixcbiAgICBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkLFxuICAgIEpvaW5PbixcbiAgICBMb2dpY2FsT3BlcmF0b3IsXG59IGZyb20gJy4vZ3JhcGhxbC1kb2N0cmluZS50eXBlcyc7XG5pbXBvcnQge2RlZXBDbG9uZSwgZ2V0RmFjZXRGcm9tU2VsZWN0aW9ufSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7cmVwbGFjZVRvZGF5fSBmcm9tICcuL3RyYW5zZm9ybWVycyc7XG5pbXBvcnQge1R5cGVEYXRlQ29tcG9uZW50LCBUeXBlRGF0ZUNvbmZpZ3VyYXRpb259IGZyb20gJy4uLy4uL2Ryb3Bkb3duLWNvbXBvbmVudHMvdHlwZS1kYXRlL3R5cGUtZGF0ZS5jb21wb25lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9HcmFwaFFMRG9jdHJpbmVGaWx0ZXIoXG4gICAgZmFjZXRzOiBOYXR1cmFsU2VhcmNoRmFjZXRzIHwgbnVsbCxcbiAgICBzZWxlY3Rpb25zOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9ucyB8IG51bGwsXG4pOiBGaWx0ZXIge1xuICAgIHNlbGVjdGlvbnMgPSBkZWVwQ2xvbmUoc2VsZWN0aW9ucyk7XG5cbiAgICBjb25zdCBmaWx0ZXI6IEZpbHRlciA9IHt9O1xuICAgIGlmICghc2VsZWN0aW9ucyB8fCBzZWxlY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBzZWxlY3Rpb25zID0gW1tdXTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGdyb3VwU2VsZWN0aW9ucyBvZiBzZWxlY3Rpb25zKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwOiBGaWx0ZXJHcm91cCA9IHt9O1xuICAgICAgICBjb25zdCBuZWVkZWRJbnZlcnNlZEZsYWdzID0gZmFjZXRzID8gZmFjZXRzLmZpbHRlcihpc0ludmVydGVkRmxhZykgOiBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHNlbGVjdGlvbiBvZiBncm91cFNlbGVjdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZhY2V0ID0gZ2V0RmFjZXRGcm9tU2VsZWN0aW9uKGZhY2V0cywgc2VsZWN0aW9uKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkU2VsZWN0aW9uID0gdHJhbnNmb3JtU2VsZWN0aW9uKGZhY2V0LCBzZWxlY3Rpb24pO1xuXG4gICAgICAgICAgICAvLyBTa2lwIGludmVydGVkIGZsYWcgYW5kIHJlbW92ZSBpdCBmcm9tIG5lZWRlZCBpbnZlcnRlZCBmbGFnc1xuICAgICAgICAgICAgaWYgKGlzSW52ZXJ0ZWRGbGFnKGZhY2V0KSkge1xuICAgICAgICAgICAgICAgIG5lZWRlZEludmVyc2VkRmxhZ3Muc3BsaWNlKG5lZWRlZEludmVyc2VkRmxhZ3MuaW5kZXhPZihmYWNldCksIDEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhcHBseUpvaW5BbmRDb25kaXRpb24oZ3JvdXAsIHRyYW5zZm9ybWVkU2VsZWN0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgZmFjZXQgb2YgbmVlZGVkSW52ZXJzZWRGbGFncykge1xuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRTZWxlY3Rpb24gPSB0cmFuc2Zvcm1TZWxlY3Rpb24oZmFjZXQsIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogZmFjZXQuZmllbGQsXG4gICAgICAgICAgICAgICAgbmFtZTogZmFjZXQubmFtZSxcbiAgICAgICAgICAgICAgICBjb25kaXRpb246IGRlZXBDbG9uZShmYWNldC5jb25kaXRpb24pLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBhcHBseUpvaW5BbmRDb25kaXRpb24oZ3JvdXAsIHRyYW5zZm9ybWVkU2VsZWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFkZEdyb3VwVG9GaWx0ZXIoZmlsdGVyLCBncm91cCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlcjtcbn1cblxuZnVuY3Rpb24gYXBwbHlKb2luQW5kQ29uZGl0aW9uKGdyb3VwOiBGaWx0ZXJHcm91cCwgc2VsZWN0aW9uOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uKTogdm9pZCB7XG4gICAgLy8gQXBwbHkgam9pbiwgdGhlbiBhcHBseSBvcGVyYXRvciBvbiB0aGF0IGpvaW4sIGlmIGZpZWxkIG5hbWUgaGFzIGEgJy4nXG4gICAgY29uc3QgW2pvaW5lZFJlbGF0aW9uLCBqb2luZWRGaWVsZF0gPSBzZWxlY3Rpb24uZmllbGQuc3BsaXQoJy4nKTtcbiAgICBsZXQgY29udGFpbmVyO1xuICAgIGxldCB3cmFwcGVkQ29uZGl0aW9uO1xuICAgIGlmIChqb2luZWRGaWVsZCkge1xuICAgICAgICBjb250YWluZXIgPSBhZGRKb2luVG9Hcm91cChncm91cCwgam9pbmVkUmVsYXRpb24pO1xuICAgICAgICB3cmFwcGVkQ29uZGl0aW9uID0gd3JhcFdpdGhGaWVsZE5hbWUoam9pbmVkRmllbGQsIHNlbGVjdGlvbi5jb25kaXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRhaW5lciA9IGdyb3VwO1xuICAgICAgICB3cmFwcGVkQ29uZGl0aW9uID0gd3JhcFdpdGhGaWVsZE5hbWUoc2VsZWN0aW9uLmZpZWxkLCBzZWxlY3Rpb24uY29uZGl0aW9uKTtcbiAgICB9XG5cbiAgICBhZGRDb25kaXRpb25Ub0NvbnRhaW5lcihjb250YWluZXIsIHdyYXBwZWRDb25kaXRpb24pO1xufVxuXG4vKipcbiAqIE9ubHkgYWRkIGpvaW4gaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdHNcbiAqL1xuZnVuY3Rpb24gYWRkSm9pblRvR3JvdXAoZ3JvdXA6IEZpbHRlckdyb3VwLCBqb2luZWRSZWxhdGlvbjogc3RyaW5nKTogSm9pbk9uIHtcbiAgICBpZiAoIWdyb3VwLmpvaW5zKSB7XG4gICAgICAgIGdyb3VwLmpvaW5zID0ge307XG4gICAgfVxuXG4gICAgaWYgKCFncm91cC5qb2luc1tqb2luZWRSZWxhdGlvbl0pIHtcbiAgICAgICAgZ3JvdXAuam9pbnNbam9pbmVkUmVsYXRpb25dID0ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwLmpvaW5zW2pvaW5lZFJlbGF0aW9uXTtcbn1cblxuLyoqXG4gKiBPbmx5IGFkZCBjb25kaXRpb24gdG8gZ3JvdXAgb3Igam9pbiBpZiBpdCdzIHZhbGlkXG4gKi9cbmZ1bmN0aW9uIGFkZENvbmRpdGlvblRvQ29udGFpbmVyKGNvbnRhaW5lcjogRmlsdGVyR3JvdXAgfCBKb2luT24sIGNvbmRpdGlvbjogRmlsdGVyR3JvdXBDb25kaXRpb24pOiB2b2lkIHtcbiAgICBpZiAoIWNvbmRpdGlvbikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFjb250YWluZXIuY29uZGl0aW9ucykge1xuICAgICAgICBjb250YWluZXIuY29uZGl0aW9ucyA9IFtdO1xuICAgIH1cblxuICAgIGNvbnRhaW5lci5jb25kaXRpb25zLnB1c2goY29uZGl0aW9uKTtcbn1cblxuLyoqXG4gKiBPbmx5IGFkZCB0aGUgZ3JvdXAgaWYgdGhlcmUgaXMgc29tZXRoaW5nIG1lYW5pbmdmdWxcbiAqL1xuZnVuY3Rpb24gYWRkR3JvdXBUb0ZpbHRlcihmaWx0ZXI6IEZpbHRlciwgZ3JvdXA6IEZpbHRlckdyb3VwKTogdm9pZCB7XG4gICAgaWYgKGdyb3VwLmNvbmRpdGlvbnMgfHwgZ3JvdXAuam9pbnMpIHtcbiAgICAgICAgaWYgKCFmaWx0ZXIuZ3JvdXBzKSB7XG4gICAgICAgICAgICBmaWx0ZXIuZ3JvdXBzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICBmaWx0ZXIuZ3JvdXBzLnB1c2goZ3JvdXApO1xuXG4gICAgICAgIGlmIChmaWx0ZXIuZ3JvdXBzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGdyb3VwLmdyb3VwTG9naWMgPSBMb2dpY2FsT3BlcmF0b3IuT1I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIHdyYXBXaXRoRmllbGROYW1lKGZpZWxkOiBzdHJpbmcsIGNvbmRpdGlvbjogRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZCk6IEZpbHRlckdyb3VwQ29uZGl0aW9uIHtcbiAgICBjb25zdCByZXN1bHQ6IEZpbHRlckdyb3VwQ29uZGl0aW9uID0ge307XG5cbiAgICAvLyBXZSBhc3N1bWUgYSBjdXN0b20gb3BlcmF0b3IgXCJzZWFyY2hcIlxuICAgIGlmIChmaWVsZCA9PT0gJ3NlYXJjaCcgJiYgY29uZGl0aW9uLmxpa2UpIHtcbiAgICAgICAgcmV0dXJuIHtjdXN0b206IHtzZWFyY2g6IHt2YWx1ZTogY29uZGl0aW9uLmxpa2UudmFsdWV9fX07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W2ZpZWxkXSA9IGNvbmRpdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1TZWxlY3Rpb24oZmFjZXQ6IEZhY2V0IHwgbnVsbCwgc2VsZWN0aW9uOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uKTogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbiB7XG4gICAgY29uc3QgbmV3U2VsZWN0aW9uID0gZmFjZXQgJiYgZmFjZXQudHJhbnNmb3JtID8gZmFjZXQudHJhbnNmb3JtKHNlbGVjdGlvbikgOiBzZWxlY3Rpb247XG5cbiAgICByZXR1cm4gaXNEYXRlRmFjZXQoZmFjZXQpID8gcmVwbGFjZVRvZGF5KG5ld1NlbGVjdGlvbikgOiBzZWxlY3Rpb247XG59XG5cbmZ1bmN0aW9uIGlzSW52ZXJ0ZWRGbGFnKGZhY2V0OiBGYWNldCB8IG51bGwpOiBmYWNldCBpcyBGbGFnRmFjZXQ8RmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZD4ge1xuICAgIHJldHVybiAoISFmYWNldCAmJiAnaW52ZXJzZWQnIGluIGZhY2V0ICYmIGZhY2V0LmludmVyc2VkKSB8fCBmYWxzZTtcbn1cblxuZnVuY3Rpb24gaXNEYXRlRmFjZXQoZmFjZXQ6IEZhY2V0IHwgbnVsbCk6IGZhY2V0IGlzIERyb3Bkb3duRmFjZXQ8VHlwZURhdGVDb25maWd1cmF0aW9uPiB7XG4gICAgcmV0dXJuICEhZmFjZXQgJiYgJ2NvbXBvbmVudCcgaW4gZmFjZXQgJiYgZmFjZXQuY29tcG9uZW50ID09PSBUeXBlRGF0ZUNvbXBvbmVudDtcbn1cbiJdfQ==
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1kb2N0cmluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9jbGFzc2VzL2dyYXBocWwtZG9jdHJpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQU1ILGVBQWUsR0FDbEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsU0FBUyxFQUFFLHFCQUFxQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ3pELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsaUJBQWlCLEVBQXdCLE1BQU0seURBQXlELENBQUM7QUFFakgsTUFBTSxVQUFVLHVCQUF1QixDQUNuQyxNQUFrQyxFQUNsQyxVQUEwQztJQUUxQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRW5DLE1BQU0sTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUMxQixJQUFJLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekMsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELEtBQUssTUFBTSxlQUFlLElBQUksVUFBVSxFQUFFLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQWdCLEVBQUUsQ0FBQztRQUM5QixNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXhFLEtBQUssTUFBTSxTQUFTLElBQUksZUFBZSxFQUFFLENBQUM7WUFDdEMsTUFBTSxLQUFLLEdBQUcscUJBQXFCLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sb0JBQW9CLEdBQUcsa0JBQWtCLENBQUMs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SUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQztBQUN2RSxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsS0FBbUI7SUFDcEMsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLFdBQVcsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyxpQkFBaUIsQ0FBQztBQUNwRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEcm9wZG93bkZhY2V0LCBGYWNldCwgRmxhZ0ZhY2V0LCBOYXR1cmFsU2VhcmNoRmFjZXRzfSBmcm9tICcuLi90eXBlcy9mYWNldCc7XG5pbXBvcnQge05hdHVyYWxTZWFyY2hTZWxlY3Rpb24sIE5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zfSBmcm9tICcuLi90eXBlcy92YWx1ZXMnO1xuaW1wb3J0IHtcbiAgICBGaWx0ZXIsXG4gICAgRmlsdGVyR3JvdXAsXG4gICAgRmlsdGVyR3JvdXBDb25kaXRpb24sXG4gICAgRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZCxcbiAgICBKb2luT24sXG4gICAgTG9naWNhbE9wZXJhdG9yLFxufSBmcm9tICcuL2dyYXBocWwtZG9jdHJpbmUudHlwZXMnO1xuaW1wb3J0IHtkZWVwQ2xvbmUsIGdldEZhY2V0RnJvbVNlbGVjdGlvbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge3JlcGxhY2VUb2RheX0gZnJvbSAnLi90cmFuc2Zvcm1lcnMnO1xuaW1wb3J0IHtUeXBlRGF0ZUNvbXBvbmVudCwgVHlwZURhdGVDb25maWd1cmF0aW9ufSBmcm9tICcuLi8uLi9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtZGF0ZS90eXBlLWRhdGUuY29tcG9uZW50JztcblxuZXhwb3J0IGZ1bmN0aW9uIHRvR3JhcGhRTERvY3RyaW5lRmlsdGVyKFxuICAgIGZhY2V0czogTmF0dXJhbFNlYXJjaEZhY2V0cyB8IG51bGwsXG4gICAgc2VsZWN0aW9uczogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMgfCBudWxsLFxuKTogRmlsdGVyIHtcbiAgICBzZWxlY3Rpb25zID0gZGVlcENsb25lKHNlbGVjdGlvbnMpO1xuXG4gICAgY29uc3QgZmlsdGVyOiBGaWx0ZXIgPSB7fTtcbiAgICBpZiAoIXNlbGVjdGlvbnMgfHwgc2VsZWN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgc2VsZWN0aW9ucyA9IFtbXV07XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBncm91cFNlbGVjdGlvbnMgb2Ygc2VsZWN0aW9ucykge1xuICAgICAgICBjb25zdCBncm91cDogRmlsdGVyR3JvdXAgPSB7fTtcbiAgICAgICAgY29uc3QgbmVlZGVkSW52ZXJzZWRGbGFncyA9IGZhY2V0cyA/IGZhY2V0cy5maWx0ZXIoaXNJbnZlcnRlZEZsYWcpIDogW107XG5cbiAgICAgICAgZm9yIChjb25zdCBzZWxlY3Rpb24gb2YgZ3JvdXBTZWxlY3Rpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBmYWNldCA9IGdldEZhY2V0RnJvbVNlbGVjdGlvbihmYWNldHMsIHNlbGVjdGlvbik7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZFNlbGVjdGlvbiA9IHRyYW5zZm9ybVNlbGVjdGlvbihmYWNldCwgc2VsZWN0aW9uKTtcblxuICAgICAgICAgICAgLy8gU2tpcCBpbnZlcnRlZCBmbGFnIGFuZCByZW1vdmUgaXQgZnJvbSBuZWVkZWQgaW52ZXJ0ZWQgZmxhZ3NcbiAgICAgICAgICAgIGlmIChpc0ludmVydGVkRmxhZyhmYWNldCkpIHtcbiAgICAgICAgICAgICAgICBuZWVkZWRJbnZlcnNlZEZsYWdzLnNwbGljZShuZWVkZWRJbnZlcnNlZEZsYWdzLmluZGV4T2YoZmFjZXQpLCAxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYXBwbHlKb2luQW5kQ29uZGl0aW9uKGdyb3VwLCB0cmFuc2Zvcm1lZFNlbGVjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGZhY2V0IG9mIG5lZWRlZEludmVyc2VkRmxhZ3MpIHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkU2VsZWN0aW9uID0gdHJhbnNmb3JtU2VsZWN0aW9uKGZhY2V0LCB7XG4gICAgICAgICAgICAgICAgZmllbGQ6IGZhY2V0LmZpZWxkLFxuICAgICAgICAgICAgICAgIG5hbWU6IGZhY2V0Lm5hbWUsXG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiBkZWVwQ2xvbmUoZmFjZXQuY29uZGl0aW9uKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYXBwbHlKb2luQW5kQ29uZGl0aW9uKGdyb3VwLCB0cmFuc2Zvcm1lZFNlbGVjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBhZGRHcm91cFRvRmlsdGVyKGZpbHRlciwgZ3JvdXApO1xuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXI7XG59XG5cbmZ1bmN0aW9uIGFwcGx5Sm9pbkFuZENvbmRpdGlvbihncm91cDogRmlsdGVyR3JvdXAsIHNlbGVjdGlvbjogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbik6IHZvaWQge1xuICAgIC8vIEFwcGx5IGpvaW4sIHRoZW4gYXBwbHkgb3BlcmF0b3Igb24gdGhhdCBqb2luLCBpZiBmaWVsZCBuYW1lIGhhcyBhICcuJ1xuICAgIGNvbnN0IFtqb2luZWRSZWxhdGlvbiwgam9pbmVkRmllbGRdID0gc2VsZWN0aW9uLmZpZWxkLnNwbGl0KCcuJyk7XG4gICAgbGV0IGNvbnRhaW5lcjtcbiAgICBsZXQgd3JhcHBlZENvbmRpdGlvbjtcbiAgICBpZiAoam9pbmVkRmllbGQpIHtcbiAgICAgICAgY29udGFpbmVyID0gYWRkSm9pblRvR3JvdXAoZ3JvdXAsIGpvaW5lZFJlbGF0aW9uKTtcbiAgICAgICAgd3JhcHBlZENvbmRpdGlvbiA9IHdyYXBXaXRoRmllbGROYW1lKGpvaW5lZEZpZWxkLCBzZWxlY3Rpb24uY29uZGl0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb250YWluZXIgPSBncm91cDtcbiAgICAgICAgd3JhcHBlZENvbmRpdGlvbiA9IHdyYXBXaXRoRmllbGROYW1lKHNlbGVjdGlvbi5maWVsZCwgc2VsZWN0aW9uLmNvbmRpdGlvbik7XG4gICAgfVxuXG4gICAgYWRkQ29uZGl0aW9uVG9Db250YWluZXIoY29udGFpbmVyLCB3cmFwcGVkQ29uZGl0aW9uKTtcbn1cblxuLyoqXG4gKiBPbmx5IGFkZCBqb2luIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3RzXG4gKi9cbmZ1bmN0aW9uIGFkZEpvaW5Ub0dyb3VwKGdyb3VwOiBGaWx0ZXJHcm91cCwgam9pbmVkUmVsYXRpb246IHN0cmluZyk6IEpvaW5PbiB7XG4gICAgaWYgKCFncm91cC5qb2lucykge1xuICAgICAgICBncm91cC5qb2lucyA9IHt9O1xuICAgIH1cblxuICAgIGlmICghZ3JvdXAuam9pbnNbam9pbmVkUmVsYXRpb25dKSB7XG4gICAgICAgIGdyb3VwLmpvaW5zW2pvaW5lZFJlbGF0aW9uXSA9IHt9O1xuICAgIH1cblxuICAgIHJldHVybiBncm91cC5qb2luc1tqb2luZWRSZWxhdGlvbl07XG59XG5cbi8qKlxuICogT25seSBhZGQgY29uZGl0aW9uIHRvIGdyb3VwIG9yIGpvaW4gaWYgaXQncyB2YWxpZFxuICovXG5mdW5jdGlvbiBhZGRDb25kaXRpb25Ub0NvbnRhaW5lcihjb250YWluZXI6IEZpbHRlckdyb3VwIHwgSm9pbk9uLCBjb25kaXRpb246IEZpbHRlckdyb3VwQ29uZGl0aW9uKTogdm9pZCB7XG4gICAgaWYgKCFjb25kaXRpb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghY29udGFpbmVyLmNvbmRpdGlvbnMpIHtcbiAgICAgICAgY29udGFpbmVyLmNvbmRpdGlvbnMgPSBbXTtcbiAgICB9XG5cbiAgICBjb250YWluZXIuY29uZGl0aW9ucy5wdXNoKGNvbmRpdGlvbik7XG59XG5cbi8qKlxuICogT25seSBhZGQgdGhlIGdyb3VwIGlmIHRoZXJlIGlzIHNvbWV0aGluZyBtZWFuaW5nZnVsXG4gKi9cbmZ1bmN0aW9uIGFkZEdyb3VwVG9GaWx0ZXIoZmlsdGVyOiBGaWx0ZXIsIGdyb3VwOiBGaWx0ZXJHcm91cCk6IHZvaWQge1xuICAgIGlmIChncm91cC5jb25kaXRpb25zIHx8IGdyb3VwLmpvaW5zKSB7XG4gICAgICAgIGlmICghZmlsdGVyLmdyb3Vwcykge1xuICAgICAgICAgICAgZmlsdGVyLmdyb3VwcyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgZmlsdGVyLmdyb3Vwcy5wdXNoKGdyb3VwKTtcblxuICAgICAgICBpZiAoZmlsdGVyLmdyb3Vwcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBncm91cC5ncm91cExvZ2ljID0gTG9naWNhbE9wZXJhdG9yLk9SO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiB3cmFwV2l0aEZpZWxkTmFtZShmaWVsZDogc3RyaW5nLCBjb25kaXRpb246IEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQpOiBGaWx0ZXJHcm91cENvbmRpdGlvbiB7XG4gICAgY29uc3QgcmVzdWx0OiBGaWx0ZXJHcm91cENvbmRpdGlvbiA9IHt9O1xuXG4gICAgLy8gV2UgYXNzdW1lIGEgY3VzdG9tIG9wZXJhdG9yIFwic2VhcmNoXCJcbiAgICBpZiAoZmllbGQgPT09ICdzZWFyY2gnICYmIGNvbmRpdGlvbi5saWtlKSB7XG4gICAgICAgIHJldHVybiB7Y3VzdG9tOiB7c2VhcmNoOiB7dmFsdWU6IGNvbmRpdGlvbi5saWtlLnZhbHVlfX19O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdFtmaWVsZF0gPSBjb25kaXRpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtU2VsZWN0aW9uKGZhY2V0OiBGYWNldCB8IG51bGwsIHNlbGVjdGlvbjogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbik6IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb24ge1xuICAgIGNvbnN0IG5ld1NlbGVjdGlvbiA9IGZhY2V0Py50cmFuc2Zvcm0gPyBmYWNldC50cmFuc2Zvcm0oc2VsZWN0aW9uKSA6IHNlbGVjdGlvbjtcblxuICAgIHJldHVybiBpc0RhdGVGYWNldChmYWNldCkgPyByZXBsYWNlVG9kYXkobmV3U2VsZWN0aW9uKSA6IHNlbGVjdGlvbjtcbn1cblxuZnVuY3Rpb24gaXNJbnZlcnRlZEZsYWcoZmFjZXQ6IEZhY2V0IHwgbnVsbCk6IGZhY2V0IGlzIEZsYWdGYWNldDxGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkPiB7XG4gICAgcmV0dXJuICghIWZhY2V0ICYmICdpbnZlcnNlZCcgaW4gZmFjZXQgJiYgZmFjZXQuaW52ZXJzZWQpIHx8IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBpc0RhdGVGYWNldChmYWNldDogRmFjZXQgfCBudWxsKTogZmFjZXQgaXMgRHJvcGRvd25GYWNldDxUeXBlRGF0ZUNvbmZpZ3VyYXRpb24+IHtcbiAgICByZXR1cm4gISFmYWNldCAmJiAnY29tcG9uZW50JyBpbiBmYWNldCAmJiBmYWNldC5jb21wb25lbnQgPT09IFR5cGVEYXRlQ29tcG9uZW50O1xufVxuIl19
@@ -11,4 +11,4 @@ export var JoinType;
11
11
  JoinType["innerJoin"] = "innerJoin";
12
12
  JoinType["leftJoin"] = "leftJoin";
13
13
  })(JoinType || (JoinType = {}));
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1kb2N0cmluZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9jbGFzc2VzL2dyYXBocWwtZG9jdHJpbmUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOERBQThEO0FBK0I5RCw0Q0FBNEM7QUFDNUMsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN2Qiw4QkFBVyxDQUFBO0lBQ1gsNEJBQVMsQ0FBQTtBQUNiLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQUVELCtCQUErQjtBQUMvQixNQUFNLENBQU4sSUFBWSxRQUdYO0FBSEQsV0FBWSxRQUFRO0lBQ2hCLG1DQUF1QixDQUFBO0lBQ3ZCLGlDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFIVyxRQUFRLEtBQVIsUUFBUSxRQUduQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEJhc2ljOyBsb29zZWx5IHR5cGVkIHN0cnVjdHVyZSBmb3IgZ3JhcGhxbC1kb2N0cmluZSBmaWx0ZXJzXG5cbmltcG9ydCB7TGl0ZXJhbH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlciB7XG4gICAgZ3JvdXBzPzogQXJyYXk8RmlsdGVyR3JvdXA+IHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJHcm91cCB7XG4gICAgLy8gVGhlIGxvZ2ljIG9wZXJhdG9yIHRvIGJlIHVzZWQgdG8gYXBwZW5kIHRoaXMgZ3JvdXBcbiAgICBncm91cExvZ2ljPzogTG9naWNhbE9wZXJhdG9yIHwgbnVsbDtcbiAgICAvLyBUaGUgbG9naWMgb3BlcmF0b3IgdG8gYmUgdXNlZCB3aXRoaW4gYWxsIGNvbmRpdGlvbnMgaW4gdGhpcyBncm91cFxuICAgIGNvbmRpdGlvbnNMb2dpYz86IExvZ2ljYWxPcGVyYXRvciB8IG51bGw7XG4gICAgLy8gT3B0aW9uYWwgam9pbnMgdG8gZWl0aGVyIGZpbHRlciB0aGUgcXVlcnkgb3IgZmV0Y2ggcmVsYXRlZCBvYmplY3RzIGZyb20gREIgaW4gYSBzaW5nbGUgcXVlcnlcbiAgICBqb2lucz86IEZpbHRlckdyb3VwSm9pbiB8IG51bGw7XG4gICAgLy8gQ29uZGl0aW9ucyB0byBiZSBhcHBsaWVkIG9uIGZpZWxkc1xuICAgIGNvbmRpdGlvbnM/OiBBcnJheTxGaWx0ZXJHcm91cENvbmRpdGlvbj4gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckdyb3VwSm9pbiB7XG4gICAgW2tleTogc3RyaW5nXTogSm9pbk9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEpvaW5PbiB7XG4gICAgdHlwZT86IEpvaW5UeXBlIHwgbnVsbDtcbiAgICAvLyBPcHRpb25hbCBqb2lucyB0byBlaXRoZXIgZmlsdGVyIHRoZSBxdWVyeSBvciBmZXRjaCByZWxhdGVkIG9iamVjdHMgZnJvbSBEQiBpbiBhIHNpbmdsZSBxdWVyeVxuICAgIGpvaW5zPzogRmlsdGVyR3JvdXBKb2luIHwgbnVsbDtcbiAgICAvLyBDb25kaXRpb25zIHRvIGJlIGFwcGxpZWQgb24gZmllbGRzXG4gICAgY29uZGl0aW9ucz86IEFycmF5PEZpbHRlckdyb3VwQ29uZGl0aW9uPiB8IG51bGw7XG59XG5cbi8vIExvZ2ljYWwgb3BlcmF0b3IgdG8gYmUgdXNlZCBpbiBjb25kaXRpb25zXG5leHBvcnQgZW51bSBMb2dpY2FsT3BlcmF0b3Ige1xuICAgIEFORCA9ICdBTkQnLFxuICAgIE9SID0gJ09SJyxcbn1cblxuLy8gSm9pbiB0eXBlcyB0byBiZSB1c2VkIGluIERRTFxuZXhwb3J0IGVudW0gSm9pblR5cGUge1xuICAgIGlubmVySm9pbiA9ICdpbm5lckpvaW4nLFxuICAgIGxlZnRKb2luID0gJ2xlZnRKb2luJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJHcm91cENvbmRpdGlvbiB7XG4gICAgW2tleTogc3RyaW5nXTogRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkIHtcbiAgICBiZXR3ZWVuPzogQmV0d2Vlbk9wZXJhdG9yIHwgbnVsbDtcbiAgICBlcXVhbD86IEVxdWFsT3BlcmF0b3IgfCBudWxsO1xuICAgIGdyZWF0ZXI/OiBHcmVhdGVyT3BlcmF0b3IgfCBudWxsO1xuICAgIGdyZWF0ZXJPckVxdWFsPzogR3JlYXRlck9yRXF1YWxPcGVyYXRvciB8IG51bGw7XG4gICAgaW4/OiBJbk9wZXJhdG9yIHwgbnVsbDtcbiAgICBsZXNzPzogTGVzc09wZXJhdG9yIHwgbnVsbDtcbiAgICBsZXNzT3JFcXVhbD86IExlc3NPckVxdWFsT3BlcmF0b3IgfCBudWxsO1xuICAgIGxpa2U/OiBMaWtlT3BlcmF0b3IgfCBudWxsO1xuICAgIG51bGw/OiBOdWxsT3BlcmF0b3IgfCBudWxsO1xuXG4gICAgLy8gRm9yIHJlbGF0aW9uc1xuICAgIGhhdmU/OiBIYXZlT3BlcmF0b3IgfCBudWxsO1xuICAgIGVtcHR5PzogRW1wdHlPcGVyYXRvciB8IG51bGw7XG5cbiAgICAvLyBBbGxvdyBhbnl0aGluZyBlbHNlIGZvciBjdXN0b20gb3BlcmF0b3JzXG4gICAgW2tleTogc3RyaW5nXTogTGl0ZXJhbCB8IHVuZGVmaW5lZCB8IG51bGw7XG59XG5cbmV4cG9ydCB0eXBlIFNjYWxhciA9IG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW47XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGF2ZU9wZXJhdG9yIHtcbiAgICB2YWx1ZXM6IEFycmF5PHN0cmluZz47XG4gICAgbm90PzogYm9vbGVhbiB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1wdHlPcGVyYXRvciB7XG4gICAgbm90PzogYm9vbGVhbiB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmV0d2Vlbk9wZXJhdG9yIHtcbiAgICBmcm9tOiBTY2FsYXI7XG4gICAgdG86IFNjYWxhcjtcbiAgICBub3Q/OiBib29sZWFuIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcXVhbE9wZXJhdG9yIHtcbiAgICB2YWx1ZTogU2NhbGFyO1xuICAgIG5vdD86IGJvb2xlYW4gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyZWF0ZXJPcGVyYXRvciB7XG4gICAgdmFsdWU6IFNjYWxhcjtcbiAgICBub3Q/OiBib29sZWFuIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmVhdGVyT3JFcXVhbE9wZXJhdG9yIHtcbiAgICB2YWx1ZTogU2NhbGFyO1xuICAgIG5vdD86IGJvb2xlYW4gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluT3BlcmF0b3Ige1xuICAgIHZhbHVlczogQXJyYXk8U2NhbGFyPjtcbiAgICBub3Q/OiBib29sZWFuIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZXNzT3BlcmF0b3Ige1xuICAgIHZhbHVlOiBTY2FsYXI7XG4gICAgbm90PzogYm9vbGVhbiB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGVzc09yRXF1YWxPcGVyYXRvciB7XG4gICAgdmFsdWU6IFNjYWxhcjtcbiAgICBub3Q/OiBib29sZWFuIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaWtlT3BlcmF0b3Ige1xuICAgIHZhbHVlOiBTY2FsYXI7XG4gICAgbm90PzogYm9vbGVhbiB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTnVsbE9wZXJhdG9yIHtcbiAgICBub3Q/OiBib29sZWFuIHwgbnVsbDtcbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1kb2N0cmluZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9jbGFzc2VzL2dyYXBocWwtZG9jdHJpbmUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOERBQThEO0FBNkI5RCw0Q0FBNEM7QUFDNUMsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN2Qiw4QkFBVyxDQUFBO0lBQ1gsNEJBQVMsQ0FBQTtBQUNiLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQUVELCtCQUErQjtBQUMvQixNQUFNLENBQU4sSUFBWSxRQUdYO0FBSEQsV0FBWSxRQUFRO0lBQ2hCLG1DQUF1QixDQUFBO0lBQ3ZCLGlDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFIVyxRQUFRLEtBQVIsUUFBUSxRQUduQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEJhc2ljOyBsb29zZWx5IHR5cGVkIHN0cnVjdHVyZSBmb3IgZ3JhcGhxbC1kb2N0cmluZSBmaWx0ZXJzXG5cbmltcG9ydCB7TGl0ZXJhbH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBGaWx0ZXIgPSB7XG4gICAgZ3JvdXBzPzogRmlsdGVyR3JvdXBbXSB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJHcm91cCA9IHtcbiAgICAvLyBUaGUgbG9naWMgb3BlcmF0b3IgdG8gYmUgdXNlZCB0byBhcHBlbmQgdGhpcyBncm91cFxuICAgIGdyb3VwTG9naWM/OiBMb2dpY2FsT3BlcmF0b3IgfCBudWxsO1xuICAgIC8vIFRoZSBsb2dpYyBvcGVyYXRvciB0byBiZSB1c2VkIHdpdGhpbiBhbGwgY29uZGl0aW9ucyBpbiB0aGlzIGdyb3VwXG4gICAgY29uZGl0aW9uc0xvZ2ljPzogTG9naWNhbE9wZXJhdG9yIHwgbnVsbDtcbiAgICAvLyBPcHRpb25hbCBqb2lucyB0byBlaXRoZXIgZmlsdGVyIHRoZSBxdWVyeSBvciBmZXRjaCByZWxhdGVkIG9iamVjdHMgZnJvbSBEQiBpbiBhIHNpbmdsZSBxdWVyeVxuICAgIGpvaW5zPzogRmlsdGVyR3JvdXBKb2luIHwgbnVsbDtcbiAgICAvLyBDb25kaXRpb25zIHRvIGJlIGFwcGxpZWQgb24gZmllbGRzXG4gICAgY29uZGl0aW9ucz86IEZpbHRlckdyb3VwQ29uZGl0aW9uW10gfCBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgRmlsdGVyR3JvdXBKb2luID0gUmVjb3JkPHN0cmluZywgSm9pbk9uPjtcblxuZXhwb3J0IHR5cGUgSm9pbk9uID0ge1xuICAgIHR5cGU/OiBKb2luVHlwZSB8IG51bGw7XG4gICAgLy8gT3B0aW9uYWwgam9pbnMgdG8gZWl0aGVyIGZpbHRlciB0aGUgcXVlcnkgb3IgZmV0Y2ggcmVsYXRlZCBvYmplY3RzIGZyb20gREIgaW4gYSBzaW5nbGUgcXVlcnlcbiAgICBqb2lucz86IEZpbHRlckdyb3VwSm9pbiB8IG51bGw7XG4gICAgLy8gQ29uZGl0aW9ucyB0byBiZSBhcHBsaWVkIG9uIGZpZWxkc1xuICAgIGNvbmRpdGlvbnM/OiBGaWx0ZXJHcm91cENvbmRpdGlvbltdIHwgbnVsbDtcbn07XG5cbi8vIExvZ2ljYWwgb3BlcmF0b3IgdG8gYmUgdXNlZCBpbiBjb25kaXRpb25zXG5leHBvcnQgZW51bSBMb2dpY2FsT3BlcmF0b3Ige1xuICAgIEFORCA9ICdBTkQnLFxuICAgIE9SID0gJ09SJyxcbn1cblxuLy8gSm9pbiB0eXBlcyB0byBiZSB1c2VkIGluIERRTFxuZXhwb3J0IGVudW0gSm9pblR5cGUge1xuICAgIGlubmVySm9pbiA9ICdpbm5lckpvaW4nLFxuICAgIGxlZnRKb2luID0gJ2xlZnRKb2luJyxcbn1cblxuZXhwb3J0IHR5cGUgRmlsdGVyR3JvdXBDb25kaXRpb24gPSBSZWNvcmQ8c3RyaW5nLCBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkPjtcblxuZXhwb3J0IHR5cGUgRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZCA9IHtcbiAgICBiZXR3ZWVuPzogQmV0d2Vlbk9wZXJhdG9yIHwgbnVsbDtcbiAgICBlcXVhbD86IEVxdWFsT3BlcmF0b3IgfCBudWxsO1xuICAgIGdyZWF0ZXI/OiBHcmVhdGVyT3BlcmF0b3IgfCBudWxsO1xuICAgIGdyZWF0ZXJPckVxdWFsPzogR3JlYXRlck9yRXF1YWxPcGVyYXRvciB8IG51bGw7XG4gICAgaW4/OiBJbk9wZXJhdG9yIHwgbnVsbDtcbiAgICBsZXNzPzogTGVzc09wZXJhdG9yIHwgbnVsbDtcbiAgICBsZXNzT3JFcXVhbD86IExlc3NPckVxdWFsT3BlcmF0b3IgfCBudWxsO1xuICAgIGxpa2U/OiBMaWtlT3BlcmF0b3IgfCBudWxsO1xuICAgIG51bGw/OiBOdWxsT3BlcmF0b3IgfCBudWxsO1xuXG4gICAgLy8gRm9yIHJlbGF0aW9uc1xuICAgIGhhdmU/OiBIYXZlT3BlcmF0b3IgfCBudWxsO1xuICAgIGVtcHR5PzogRW1wdHlPcGVyYXRvciB8IG51bGw7XG5cbiAgICAvLyBBbGxvdyBhbnl0aGluZyBlbHNlIGZvciBjdXN0b20gb3BlcmF0b3JzXG4gICAgW2tleTogc3RyaW5nXTogTGl0ZXJhbCB8IHVuZGVmaW5lZCB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBTY2FsYXIgPSBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuO1xuXG5leHBvcnQgdHlwZSBIYXZlT3BlcmF0b3IgPSB7XG4gICAgdmFsdWVzOiBzdHJpbmdbXTtcbiAgICBub3Q/OiBib29sZWFuIHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIEVtcHR5T3BlcmF0b3IgPSB7XG4gICAgbm90PzogYm9vbGVhbiB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBCZXR3ZWVuT3BlcmF0b3IgPSB7XG4gICAgZnJvbTogU2NhbGFyO1xuICAgIHRvOiBTY2FsYXI7XG4gICAgbm90PzogYm9vbGVhbiB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBFcXVhbE9wZXJhdG9yID0ge1xuICAgIHZhbHVlOiBTY2FsYXI7XG4gICAgbm90PzogYm9vbGVhbiB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBHcmVhdGVyT3BlcmF0b3IgPSB7XG4gICAgdmFsdWU6IFNjYWxhcjtcbiAgICBub3Q/OiBib29sZWFuIHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIEdyZWF0ZXJPckVxdWFsT3BlcmF0b3IgPSB7XG4gICAgdmFsdWU6IFNjYWxhcjtcbiAgICBub3Q/OiBib29sZWFuIHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIEluT3BlcmF0b3IgPSB7XG4gICAgdmFsdWVzOiBTY2FsYXJbXTtcbiAgICBub3Q/OiBib29sZWFuIHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIExlc3NPcGVyYXRvciA9IHtcbiAgICB2YWx1ZTogU2NhbGFyO1xuICAgIG5vdD86IGJvb2xlYW4gfCBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgTGVzc09yRXF1YWxPcGVyYXRvciA9IHtcbiAgICB2YWx1ZTogU2NhbGFyO1xuICAgIG5vdD86IGJvb2xlYW4gfCBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgTGlrZU9wZXJhdG9yID0ge1xuICAgIHZhbHVlOiBTY2FsYXI7XG4gICAgbm90PzogYm9vbGVhbiB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBOdWxsT3BlcmF0b3IgPSB7XG4gICAgbm90PzogYm9vbGVhbiB8IG51bGw7XG59O1xuIl19
@@ -139,4 +139,4 @@ export function replaceToday(selection) {
139
139
  }
140
140
  return selection;
141
141
  }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2VhcmNoL2NsYXNzZXMvdHJhbnNmb3JtZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxTQUFpQztJQUN0RCxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO1FBQzFCLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztLQUMvRTtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxTQUFpQztJQUN4RCxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO1FBQzFCLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0tBQ3pFO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLFNBQWlDO0lBQ3hELElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7UUFDMUIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDekU7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsU0FBaUM7SUFDcEUsT0FBTywwQkFBMEIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFNBQWlDO0lBQ25FLE9BQU8sMEJBQTBCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUMvQixTQUFpQyxFQUNqQyxTQUEyQjtJQUUzQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV4RCxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLG9FQUFvRSxDQUFDLENBQUM7S0FDekY7SUFFRCxTQUFTLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkUsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXhDLE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxTQUFpQztJQUMxRCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3hCLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVsQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNqQyxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckMsNEVBQTRFO0lBQzVFLGdIQUFnSDtJQUNoSCw2R0FBNkc7SUFDN0csbUhBQW1IO0lBQ25ILGlIQUFpSDtJQUNqSCxzRUFBc0U7SUFDdEUsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUN0QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNyQyxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxLQUFLLE9BQU8sRUFBRTtZQUMxQyxPQUFPLFNBQVMsQ0FBQyxXQUFXLENBQUM7WUFDN0IsU0FBUyxDQUFDLElBQUksR0FBRyxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUMsQ0FBQztTQUN4QzthQUFNLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxLQUFLLEtBQUssT0FBTyxFQUFFO1lBQzdDLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUN6QixTQUFTLENBQUMsY0FBYyxHQUFHLEVBQUMsS0FBSyxFQUFFLFVBQVUsRUFBQyxDQUFDO1NBQ2xEO0tBQ0o7SUFFRCxLQUFLLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRTtRQUN6QixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEMsSUFBSSxRQUFRLElBQUksT0FBTyxJQUFJLFFBQVEsRUFBRTtZQUNqQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEtBQUssT0FBTyxFQUFFO2dCQUM1QixRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzthQUMxQjtpQkFBTSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEtBQUssVUFBVSxFQUFFO2dCQUN0QyxRQUFRLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQzthQUM3QjtTQUNKO0tBQ0o7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOYXR1cmFsU2VhcmNoU2VsZWN0aW9ufSBmcm9tICcuLi90eXBlcy92YWx1ZXMnO1xuaW1wb3J0IHtmb3JtYXRJc29EYXRlfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3V0aWxpdHknO1xuXG4vKipcbiAqIFdyYXAgdGhlIHNlYXJjaGVkIHZhbHVlIGJ5IGAlYCBTUUwgd2lsZGNhcmRcbiAqXG4gKiBTbzpcbiAqXG4gKiAgICAge2ZpZWxkOiAnbXlGaWVsZE5hbWUnLCBjb25kaXRpb246IHtsaWtlOiB7dmFsdWU6ICdmb28nfX19XG4gKlxuICogd2lsbCBiZWNvbWVcbiAqXG4gKiAgICAge2ZpZWxkOiAnbXlGaWVsZE5hbWUnLCBjb25kaXRpb246IHtsaWtlOiB7dmFsdWU6ICclZm9vJSd9fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXBMaWtlKHNlbGVjdGlvbjogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbik6IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb24ge1xuICAgIGlmIChzZWxlY3Rpb24uY29uZGl0aW9uLmxpa2UpIHtcbiAgICAgICAgc2VsZWN0aW9uLmNvbmRpdGlvbi5saWtlLnZhbHVlID0gJyUnICsgc2VsZWN0aW9uLmNvbmRpdGlvbi5saWtlLnZhbHVlICsgJyUnO1xuICAgIH1cblxuICAgIHJldHVybiBzZWxlY3Rpb247XG59XG5cbi8qKlxuICogU2VhcmNoIGJ5IHByZWZpeCB1c2luZyBgJScgU1FMIHdpbGRjYXJkXG4gKlxuICogU286XG4gKlxuICogICAgIHtmaWVsZDogJ215RmllbGROYW1lJywgY29uZGl0aW9uOiB7bGlrZToge3ZhbHVlOiAnZm9vJ319fVxuICpcbiAqIHdpbGwgYmVjb21lXG4gKlxuICogICAgIHtmaWVsZDogJ215RmllbGROYW1lJywgY29uZGl0aW9uOiB7bGlrZToge3ZhbHVlOiAnZm9vJSd9fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXBQcmVmaXgoc2VsZWN0aW9uOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uKTogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbiB7XG4gICAgaWYgKHNlbGVjdGlvbi5jb25kaXRpb24ubGlrZSkge1xuICAgICAgICBzZWxlY3Rpb24uY29uZGl0aW9uLmxpa2UudmFsdWUgPSBzZWxlY3Rpb24uY29uZGl0aW9uLmxpa2UudmFsdWUgKyAnJSc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBTZWFyY2ggYnkgc3VmZml4IHVzaW5nIGAlJyBTUUwgd2lsZGNhcmRcbiAqXG4gKiBTbzpcbiAqXG4gKiAgICAge2ZpZWxkOiAnbXlGaWVsZE5hbWUnLCBjb25kaXRpb246IHtsaWtlOiB7dmFsdWU6ICdmb28nfX19XG4gKlxuICogd2lsbCBiZWNvbWVcbiAqXG4gKiAgICAge2ZpZWxkOiAnbXlGaWVsZE5hbWUnLCBjb25kaXRpb246IHtsaWtlOiB7dmFsdWU6ICclZm9vJ319fVxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JhcFN1ZmZpeChzZWxlY3Rpb246IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb24pOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uIHtcbiAgICBpZiAoc2VsZWN0aW9uLmNvbmRpdGlvbi5saWtlKSB7XG4gICAgICAgIHNlbGVjdGlvbi5jb25kaXRpb24ubGlrZS52YWx1ZSA9ICclJyArIHNlbGVjdGlvbi5jb25kaXRpb24ubGlrZS52YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xufVxuXG4vKipcbiAqIFJlcGxhY2UgdGhlIG9wZXJhdG9yIG5hbWUgKHVzdWFsbHkgXCJsaWtlXCIsIFwiaW5cIiBvciBcImJldHdlZW5cIikgd2l0aCB0aGVcbiAqIGF0dHJpYnV0ZSBcImZpZWxkXCIgb3IgXCJuYW1lXCIgZGVmaW5lZCBpbiB0aGUgY29uZmlndXJhdGlvblxuICpcbiAqIFNvOlxuICpcbiAqICAgICB7ZmllbGQ6ICdteUZpZWxkTmFtZScsIGNvbmRpdGlvbjoge2luOiB7dmFsdWVzOiBbMSwgMiwgM119fX1cbiAqXG4gKiB3aWxsIGJlY29tZVxuICpcbiAqICAgICB7ZmllbGQ6ICdteUZpZWxkTmFtZScsIGNvbmRpdGlvbjoge215RmllbGROYW1lOiB7dmFsdWVzOiBbMSwgMiwgM119fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VPcGVyYXRvckJ5RmllbGQoc2VsZWN0aW9uOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uKTogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbiB7XG4gICAgcmV0dXJuIHJlcGxhY2VPcGVyYXRvckJ5QXR0cmlidXRlKHNlbGVjdGlvbiwgJ2ZpZWxkJyk7XG59XG5cbi8qKlxuICogUmVwbGFjZSB0aGUgb3BlcmF0b3IgbmFtZSAodXN1YWxseSBcImxpa2VcIiwgXCJpblwiIG9yIFwiYmV0d2VlblwiKSB3aXRoIHRoZVxuICogZmllbGQgXCJuYW1lXCIgZGVmaW5lZCBpbiB0aGUgY29uZmlndXJhdGlvblxuICpcbiAqIFNvOlxuICpcbiAqICAgICB7ZmllbGQ6ICdteUZpZWxkTmFtZScsIG5hbWU6J215Q29uZmlnTmFtZScsIGNvbmRpdGlvbjoge2luOiB7dmFsdWVzOiBbMSwgMiwgM119fX1cbiAqXG4gKiB3aWxsIGJlY29tZVxuICpcbiAqICAgICB7ZmllbGQ6ICdteUZpZWxkTmFtZScsICBuYW1lOidteUNvbmZpZ05hbWUnLCBjb25kaXRpb246IHtteUNvbmZpZ05hbWU6IHt2YWx1ZXM6IFsxLCAyLCAzXX19fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZU9wZXJhdG9yQnlOYW1lKHNlbGVjdGlvbjogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbik6IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb24ge1xuICAgIHJldHVybiByZXBsYWNlT3BlcmF0b3JCeUF0dHJpYnV0ZShzZWxlY3Rpb24sICduYW1lJyk7XG59XG5cbmZ1bmN0aW9uIHJlcGxhY2VPcGVyYXRvckJ5QXR0cmlidXRlKFxuICAgIHNlbGVjdGlvbjogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbixcbiAgICBhdHRyaWJ1dGU6ICduYW1lJyB8ICdmaWVsZCcsXG4pOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uIHtcbiAgICBjb25zdCBvbGRPcGVyYXRvciA9IE9iamVjdC5rZXlzKHNlbGVjdGlvbi5jb25kaXRpb24pWzBdO1xuXG4gICAgY29uc3QgYXR0cmlidXRlVmFsdWUgPSBzZWxlY3Rpb25bYXR0cmlidXRlXTtcbiAgICBpZiAoIWF0dHJpYnV0ZVZhbHVlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQXR0cmlidXRlIGNhbm5vdCBiZSBlbXB0eS4gTW9zdCBsaWtlbHkgdGhlIGNvbmZpZ3VyYXRpb24gd2FzIHdyb25nJyk7XG4gICAgfVxuXG4gICAgc2VsZWN0aW9uLmNvbmRpdGlvblthdHRyaWJ1dGVWYWx1ZV0gPSBzZWxlY3Rpb24uY29uZGl0aW9uW29sZE9wZXJhdG9yXTtcbiAgICBkZWxldGUgc2VsZWN0aW9uLmNvbmRpdGlvbltvbGRPcGVyYXRvcl07XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xufVxuXG4vKipcbiAqIFJlcGxhY2UgYFwidG9kYXlcImAgYW5kIGBcInRvbW9ycm93XCJgIGJ5IHRoZWlyIHJlYWwgdmFsdWUgcmlnaHQgbm93LlxuICpcbiAqIFRoaXMgdHJhbnNmb3JtZXIgaXMgYXBwbGllZCBhdXRvbWF0aWNhbGx5IGFuZCBzaG91bGQgKipub3QqKiBiZSBwYXJ0XG4gKiBvZiBOYXR1cmFsIHB1YmxpYyBBUEkuXG4gKlxuICogU286XG4gKlxuICogICAgIHtmaWVsZDogJ215RmllbGROYW1lJywgY29uZGl0aW9uOiB7Z3JlYXRlcjoge3ZhbHVlOiAndG9kYXknfX19XG4gKlxuICogd2lsbCBiZWNvbWVcbiAqXG4gKiAgICAge2ZpZWxkOiAnbXlGaWVsZE5hbWUnLCBjb25kaXRpb246IHtncmVhdGVyOiB7dmFsdWU6ICcyMDIzLTAxLTAzJ319fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZVRvZGF5KHNlbGVjdGlvbjogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbik6IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb24ge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHRvZGF5ID0gZm9ybWF0SXNvRGF0ZShkYXRlKTtcblxuICAgIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIDEpO1xuICAgIGNvbnN0IHRvbW9ycm93ID0gZm9ybWF0SXNvRGF0ZShkYXRlKTtcblxuICAgIC8vIFRyYW5zcGFyZW50bHkgYWRhcHQgZXhjbHVzaXZlL2luY2x1c2l2ZSByYW5nZXMgZm9yIHNwZWNpYWwgXCJ0b2RheVwiIHZhbHVlLlxuICAgIC8vIElkZWFsbHkgdGhpcyBzaG91bGQgYmUgZG9uZSBpbiBgVHlwZURhdGVDb21wb25lbnRgLCBsaWtlIGl0IGlzIGRvbmUgZm9yIHJlYWwgZGF0ZSB2YWx1ZXMuIEJ1dCB1bmZvcnR1bmF0ZWx5IElcbiAgICAvLyBjb3VsZCBub3QgZmluZCBhIHJlYXNvbmFibGUgd2F5IHRvIGRvIHRoYXQgd2hpbGUgc3RpbGwgYmVpbmcgYWJsZSB0byByZWxvYWQgYSBjb2hlcmVudCBHVUkgd2l0aG91dCBzaG93aW5nXG4gICAgLy8gXCJEZW1haW5cIiBzb21ld2hlcmUgaW4gdGhlIEdVSS4gQW5kIHRoYXQgaXMgc29tZXRoaW5nIHdlIHdhbnQgdG8gYXZvaWQsIHdlIG9ubHkgd2FudCB0byBzaG93IGVpdGhlciBcIkF1am91cmQnaHVpXCJcbiAgICAvLyBvciBhIHJlYWwgZGF0ZS4gT3RoZXJ3aXNlLCB0aGUgaHVtYW4gd291bGQgc3RhcnQgdGhpbmtpbmcgd2l0aCBcIkRlbWFpblwiLCBhbmQgaXQgd291bGQgdGhlbiBuZWVkIHRvIGJlIHByb3Blcmx5XG4gICAgLy8gc3VwcG9ydGVkIHdoaWNoIG92ZXIvY29tcGxleGlmeSB0aGUgY29kZSwgdGhlIEdVSSBhbmQgdGhlIHdvcmtmbG93LlxuICAgIGNvbnN0IGNvbmRpdGlvbiA9IHNlbGVjdGlvbi5jb25kaXRpb247XG4gICAgaWYgKE9iamVjdC5rZXlzKGNvbmRpdGlvbikubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGlmIChjb25kaXRpb24ubGVzc09yRXF1YWw/LnZhbHVlID09PSAndG9kYXknKSB7XG4gICAgICAgICAgICBkZWxldGUgY29uZGl0aW9uLmxlc3NPckVxdWFsO1xuICAgICAgICAgICAgY29uZGl0aW9uLmxlc3MgPSB7dmFsdWU6ICd0b21vcnJvdyd9O1xuICAgICAgICB9IGVsc2UgaWYgKGNvbmRpdGlvbi5ncmVhdGVyPy52YWx1ZSA9PT0gJ3RvZGF5Jykge1xuICAgICAgICAgICAgZGVsZXRlIGNvbmRpdGlvbi5ncmVhdGVyO1xuICAgICAgICAgICAgY29uZGl0aW9uLmdyZWF0ZXJPckVxdWFsID0ge3ZhbHVlOiAndG9tb3Jyb3cnfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IGluIGNvbmRpdGlvbikge1xuICAgICAgICBjb25zdCBvcGVyYXRvciA9IGNvbmRpdGlvbltrZXldO1xuICAgICAgICBpZiAob3BlcmF0b3IgJiYgJ3ZhbHVlJyBpbiBvcGVyYXRvcikge1xuICAgICAgICAgICAgaWYgKG9wZXJhdG9yLnZhbHVlID09PSAndG9kYXknKSB7XG4gICAgICAgICAgICAgICAgb3BlcmF0b3IudmFsdWUgPSB0b2RheTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAob3BlcmF0b3IudmFsdWUgPT09ICd0b21vcnJvdycpIHtcbiAgICAgICAgICAgICAgICBvcGVyYXRvci52YWx1ZSA9IHRvbW9ycm93O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbn1cbiJdfQ==
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2VhcmNoL2NsYXNzZXMvdHJhbnNmb3JtZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxTQUFpQztJQUN0RCxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsU0FBaUM7SUFDeEQsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQzFFLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsU0FBaUM7SUFDeEQsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzFFLENBQUM7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Q29udGVudCI6WyJpbXBvcnQge05hdHVyYWxTZWFyY2hTZWxlY3Rpb259IGZyb20gJy4uL3R5cGVzL3ZhbHVlcyc7XG5pbXBvcnQge2Zvcm1hdElzb0RhdGV9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvdXRpbGl0eSc7XG5cbi8qKlxuICogV3JhcCB0aGUgc2VhcmNoZWQgdmFsdWUgYnkgYCVgIFNRTCB3aWxkY2FyZFxuICpcbiAqIFNvOlxuICpcbiAqICAgICB7ZmllbGQ6ICdteUZpZWxkTmFtZScsIGNvbmRpdGlvbjoge2xpa2U6IHt2YWx1ZTogJ2Zvbyd9fX1cbiAqXG4gKiB3aWxsIGJlY29tZVxuICpcbiAqICAgICB7ZmllbGQ6ICdteUZpZWxkTmFtZScsIGNvbmRpdGlvbjoge2xpa2U6IHt2YWx1ZTogJyVmb28lJ319fVxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JhcExpa2Uoc2VsZWN0aW9uOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uKTogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbiB7XG4gICAgaWYgKHNlbGVjdGlvbi5jb25kaXRpb24ubGlrZSkge1xuICAgICAgICBzZWxlY3Rpb24uY29uZGl0aW9uLmxpa2UudmFsdWUgPSAnJScgKyBzZWxlY3Rpb24uY29uZGl0aW9uLmxpa2UudmFsdWUgKyAnJSc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBTZWFyY2ggYnkgcHJlZml4IHVzaW5nIGAlJyBTUUwgd2lsZGNhcmRcbiAqXG4gKiBTbzpcbiAqXG4gKiAgICAge2ZpZWxkOiAnbXlGaWVsZE5hbWUnLCBjb25kaXRpb246IHtsaWtlOiB7dmFsdWU6ICdmb28nfX19XG4gKlxuICogd2lsbCBiZWNvbWVcbiAqXG4gKiAgICAge2ZpZWxkOiAnbXlGaWVsZE5hbWUnLCBjb25kaXRpb246IHtsaWtlOiB7dmFsdWU6ICdmb28lJ319fVxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JhcFByZWZpeChzZWxlY3Rpb246IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb24pOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uIHtcbiAgICBpZiAoc2VsZWN0aW9uLmNvbmRpdGlvbi5saWtlKSB7XG4gICAgICAgIHNlbGVjdGlvbi5jb25kaXRpb24ubGlrZS52YWx1ZSA9IHNlbGVjdGlvbi5jb25kaXRpb24ubGlrZS52YWx1ZSArICclJztcbiAgICB9XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xufVxuXG4vKipcbiAqIFNlYXJjaCBieSBzdWZmaXggdXNpbmcgYCUnIFNRTCB3aWxkY2FyZFxuICpcbiAqIFNvOlxuICpcbiAqICAgICB7ZmllbGQ6ICdteUZpZWxkTmFtZScsIGNvbmRpdGlvbjoge2xpa2U6IHt2YWx1ZTogJ2Zvbyd9fX1cbiAqXG4gKiB3aWxsIGJlY29tZVxuICpcbiAqICAgICB7ZmllbGQ6ICdteUZpZWxkTmFtZScsIGNvbmRpdGlvbjoge2xpa2U6IHt2YWx1ZTogJyVmb28nfX19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3cmFwU3VmZml4KHNlbGVjdGlvbjogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbik6IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb24ge1xuICAgIGlmIChzZWxlY3Rpb24uY29uZGl0aW9uLmxpa2UpIHtcbiAgICAgICAgc2VsZWN0aW9uLmNvbmRpdGlvbi5saWtlLnZhbHVlID0gJyUnICsgc2VsZWN0aW9uLmNvbmRpdGlvbi5saWtlLnZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBzZWxlY3Rpb247XG59XG5cbi8qKlxuICogUmVwbGFjZSB0aGUgb3BlcmF0b3IgbmFtZSAodXN1YWxseSBcImxpa2VcIiwgXCJpblwiIG9yIFwiYmV0d2VlblwiKSB3aXRoIHRoZVxuICogYXR0cmlidXRlIFwiZmllbGRcIiBvciBcIm5hbWVcIiBkZWZpbmVkIGluIHRoZSBjb25maWd1cmF0aW9uXG4gKlxuICogU286XG4gKlxuICogICAgIHtmaWVsZDogJ215RmllbGROYW1lJywgY29uZGl0aW9uOiB7aW46IHt2YWx1ZXM6IFsxLCAyLCAzXX19fVxuICpcbiAqIHdpbGwgYmVjb21lXG4gKlxuICogICAgIHtmaWVsZDogJ215RmllbGROYW1lJywgY29uZGl0aW9uOiB7bXlGaWVsZE5hbWU6IHt2YWx1ZXM6IFsxLCAyLCAzXX19fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZU9wZXJhdG9yQnlGaWVsZChzZWxlY3Rpb246IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb24pOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uIHtcbiAgICByZXR1cm4gcmVwbGFjZU9wZXJhdG9yQnlBdHRyaWJ1dGUoc2VsZWN0aW9uLCAnZmllbGQnKTtcbn1cblxuLyoqXG4gKiBSZXBsYWNlIHRoZSBvcGVyYXRvciBuYW1lICh1c3VhbGx5IFwibGlrZVwiLCBcImluXCIgb3IgXCJiZXR3ZWVuXCIpIHdpdGggdGhlXG4gKiBmaWVsZCBcIm5hbWVcIiBkZWZpbmVkIGluIHRoZSBjb25maWd1cmF0aW9uXG4gKlxuICogU286XG4gKlxuICogICAgIHtmaWVsZDogJ215RmllbGROYW1lJywgbmFtZTonbXlDb25maWdOYW1lJywgY29uZGl0aW9uOiB7aW46IHt2YWx1ZXM6IFsxLCAyLCAzXX19fVxuICpcbiAqIHdpbGwgYmVjb21lXG4gKlxuICogICAgIHtmaWVsZDogJ215RmllbGROYW1lJywgIG5hbWU6J215Q29uZmlnTmFtZScsIGNvbmRpdGlvbjoge215Q29uZmlnTmFtZToge3ZhbHVlczogWzEsIDIsIDNdfX19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlT3BlcmF0b3JCeU5hbWUoc2VsZWN0aW9uOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uKTogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbiB7XG4gICAgcmV0dXJuIHJlcGxhY2VPcGVyYXRvckJ5QXR0cmlidXRlKHNlbGVjdGlvbiwgJ25hbWUnKTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZU9wZXJhdG9yQnlBdHRyaWJ1dGUoXG4gICAgc2VsZWN0aW9uOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uLFxuICAgIGF0dHJpYnV0ZTogJ25hbWUnIHwgJ2ZpZWxkJyxcbik6IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb24ge1xuICAgIGNvbnN0IG9sZE9wZXJhdG9yID0gT2JqZWN0LmtleXMoc2VsZWN0aW9uLmNvbmRpdGlvbilbMF07XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZSA9IHNlbGVjdGlvblthdHRyaWJ1dGVdO1xuICAgIGlmICghYXR0cmlidXRlVmFsdWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRyaWJ1dGUgY2Fubm90IGJlIGVtcHR5LiBNb3N0IGxpa2VseSB0aGUgY29uZmlndXJhdGlvbiB3YXMgd3JvbmcnKTtcbiAgICB9XG5cbiAgICBzZWxlY3Rpb24uY29uZGl0aW9uW2F0dHJpYnV0ZVZhbHVlXSA9IHNlbGVjdGlvbi5jb25kaXRpb25bb2xkT3BlcmF0b3JdO1xuICAgIGRlbGV0ZSBzZWxlY3Rpb24uY29uZGl0aW9uW29sZE9wZXJhdG9yXTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG59XG5cbi8qKlxuICogUmVwbGFjZSBgXCJ0b2RheVwiYCBhbmQgYFwidG9tb3Jyb3dcImAgYnkgdGhlaXIgcmVhbCB2YWx1ZSByaWdodCBub3cuXG4gKlxuICogVGhpcyB0cmFuc2Zvcm1lciBpcyBhcHBsaWVkIGF1dG9tYXRpY2FsbHkgYW5kIHNob3VsZCAqKm5vdCoqIGJlIHBhcnRcbiAqIG9mIE5hdHVyYWwgcHVibGljIEFQSS5cbiAqXG4gKiBTbzpcbiAqXG4gKiAgICAge2ZpZWxkOiAnbXlGaWVsZE5hbWUnLCBjb25kaXRpb246IHtncmVhdGVyOiB7dmFsdWU6ICd0b2RheSd9fX1cbiAqXG4gKiB3aWxsIGJlY29tZVxuICpcbiAqICAgICB7ZmllbGQ6ICdteUZpZWxkTmFtZScsIGNvbmRpdGlvbjoge2dyZWF0ZXI6IHt2YWx1ZTogJzIwMjMtMDEtMDMnfX19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlVG9kYXkoc2VsZWN0aW9uOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uKTogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbiB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgdG9kYXkgPSBmb3JtYXRJc29EYXRlKGRhdGUpO1xuXG4gICAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgMSk7XG4gICAgY29uc3QgdG9tb3Jyb3cgPSBmb3JtYXRJc29EYXRlKGRhdGUpO1xuXG4gICAgLy8gVHJhbnNwYXJlbnRseSBhZGFwdCBleGNsdXNpdmUvaW5jbHVzaXZlIHJhbmdlcyBmb3Igc3BlY2lhbCBcInRvZGF5XCIgdmFsdWUuXG4gICAgLy8gSWRlYWxseSB0aGlzIHNob3VsZCBiZSBkb25lIGluIGBUeXBlRGF0ZUNvbXBvbmVudGAsIGxpa2UgaXQgaXMgZG9uZSBmb3IgcmVhbCBkYXRlIHZhbHVlcy4gQnV0IHVuZm9ydHVuYXRlbHkgSVxuICAgIC8vIGNvdWxkIG5vdCBmaW5kIGEgcmVhc29uYWJsZSB3YXkgdG8gZG8gdGhhdCB3aGlsZSBzdGlsbCBiZWluZyBhYmxlIHRvIHJlbG9hZCBhIGNvaGVyZW50IEdVSSB3aXRob3V0IHNob3dpbmdcbiAgICAvLyBcIkRlbWFpblwiIHNvbWV3aGVyZSBpbiB0aGUgR1VJLiBBbmQgdGhhdCBpcyBzb21ldGhpbmcgd2Ugd2FudCB0byBhdm9pZCwgd2Ugb25seSB3YW50IHRvIHNob3cgZWl0aGVyIFwiQXVqb3VyZCdodWlcIlxuICAgIC8vIG9yIGEgcmVhbCBkYXRlLiBPdGhlcndpc2UsIHRoZSBodW1hbiB3b3VsZCBzdGFydCB0aGlua2luZyB3aXRoIFwiRGVtYWluXCIsIGFuZCBpdCB3b3VsZCB0aGVuIG5lZWQgdG8gYmUgcHJvcGVybHlcbiAgICAvLyBzdXBwb3J0ZWQgd2hpY2ggb3Zlci9jb21wbGV4aWZ5IHRoZSBjb2RlLCB0aGUgR1VJIGFuZCB0aGUgd29ya2Zsb3cuXG4gICAgY29uc3QgY29uZGl0aW9uID0gc2VsZWN0aW9uLmNvbmRpdGlvbjtcbiAgICBpZiAoT2JqZWN0LmtleXMoY29uZGl0aW9uKS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgaWYgKGNvbmRpdGlvbi5sZXNzT3JFcXVhbD8udmFsdWUgPT09ICd0b2RheScpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBjb25kaXRpb24ubGVzc09yRXF1YWw7XG4gICAgICAgICAgICBjb25kaXRpb24ubGVzcyA9IHt2YWx1ZTogJ3RvbW9ycm93J307XG4gICAgICAgIH0gZWxzZSBpZiAoY29uZGl0aW9uLmdyZWF0ZXI/LnZhbHVlID09PSAndG9kYXknKSB7XG4gICAgICAgICAgICBkZWxldGUgY29uZGl0aW9uLmdyZWF0ZXI7XG4gICAgICAgICAgICBjb25kaXRpb24uZ3JlYXRlck9yRXF1YWwgPSB7dmFsdWU6ICd0b21vcnJvdyd9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gY29uZGl0aW9uKSB7XG4gICAgICAgIGNvbnN0IG9wZXJhdG9yID0gY29uZGl0aW9uW2tleV07XG4gICAgICAgIGlmIChvcGVyYXRvciAmJiAndmFsdWUnIGluIG9wZXJhdG9yKSB7XG4gICAgICAgICAgICBpZiAob3BlcmF0b3IudmFsdWUgPT09ICd0b2RheScpIHtcbiAgICAgICAgICAgICAgICBvcGVyYXRvci52YWx1ZSA9IHRvZGF5O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRvci52YWx1ZSA9PT0gJ3RvbW9ycm93Jykge1xuICAgICAgICAgICAgICAgIG9wZXJhdG9yLnZhbHVlID0gdG9tb3Jyb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xufVxuIl19
@@ -5,14 +5,14 @@ import { deepClone } from './utils';
5
5
  * The string can be parsed back with `fromUrl()`
6
6
  */
7
7
  export function toUrl(selections) {
8
- if (!selections || !selections.length) {
8
+ if (!selections?.length) {
9
9
  return null;
10
10
  }
11
11
  const s = deepClone(selections);
12
12
  for (const a of s) {
13
13
  for (const b of a) {
14
- b['f'] = b.field;
15
- b['c'] = b.condition;
14
+ b.f = b.field;
15
+ b.c = b.condition;
16
16
  delete b.field;
17
17
  delete b.condition;
18
18
  }
@@ -24,16 +24,16 @@ export function toUrl(selections) {
24
24
  * Parse a string, probably coming from URL, into a selection
25
25
  */
26
26
  export function fromUrl(selections) {
27
- if (!selections || !selections.length) {
27
+ if (!selections?.length) {
28
28
  return [[]];
29
29
  }
30
30
  const result = JSON.parse(selections);
31
31
  for (const a of result) {
32
32
  for (const b of a) {
33
- b.field = b['f'];
34
- b.condition = b['c'];
35
- delete b['f'];
36
- delete b['c'];
33
+ b.field = b.f;
34
+ b.condition = b.c;
35
+ delete b.f;
36
+ delete b.c;
37
37
  }
38
38
  }
39
39
  if (result.length === 0) {
@@ -50,4 +50,4 @@ export function toNavigationParameters(selections) {
50
50
  const value = toUrl(selections);
51
51
  return value ? { ns: JSON.stringify(value) } : {};
52
52
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2VhcmNoL2NsYXNzZXMvdXJsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFJbEM7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsVUFBMEM7SUFDNUQsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7UUFDbkMsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNmLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2QsQ0FBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDN0IsQ0FBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFFbEMsT0FBUSxDQUFhLENBQUMsS0FBSyxDQUFDO1lBQzVCLE9BQVEsQ0FBYSxDQUFDLFNBQVMsQ0FBQztTQUNuQztLQUNKO0lBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVqQyxPQUFPLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQzdDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxPQUFPLENBQUMsVUFBeUI7SUFDN0MsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7UUFDbkMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ2Y7SUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBNEIsQ0FBQztJQUVqRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRTtRQUNwQixLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNmLENBQUMsQ0FBQyxLQUFLLEdBQUksQ0FBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxTQUFTLEdBQUksQ0FBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRWxDLE9BQVEsQ0FBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLE9BQVEsQ0FBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzlCO0tBQ0o7SUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDbkI7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxVQUFtQztJQUN0RSxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFaEMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05hdHVyYWxTZWFyY2hTZWxlY3Rpb25zfSBmcm9tICcuLi90eXBlcy92YWx1ZXMnO1xuaW1wb3J0IHtkZWVwQ2xvbmV9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtMaXRlcmFsfSBmcm9tICcuLi8uLi8uLi90eXBlcy90eXBlcyc7XG5pbXBvcnQge1BhcmFtc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuLyoqXG4gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzZWxlY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCBpbiBVUkwuXG4gKlxuICogVGhlIHN0cmluZyBjYW4gYmUgcGFyc2VkIGJhY2sgd2l0aCBgZnJvbVVybCgpYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Vcmwoc2VsZWN0aW9uczogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMgfCBudWxsKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCFzZWxlY3Rpb25zIHx8ICFzZWxlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBzID0gZGVlcENsb25lKHNlbGVjdGlvbnMpO1xuICAgIGZvciAoY29uc3QgYSBvZiBzKSB7XG4gICAgICAgIGZvciAoY29uc3QgYiBvZiBhKSB7XG4gICAgICAgICAgICAoYiBhcyBMaXRlcmFsKVsnZiddID0gYi5maWVsZDtcbiAgICAgICAgICAgIChiIGFzIExpdGVyYWwpWydjJ10gPSBiLmNvbmRpdGlvbjtcblxuICAgICAgICAgICAgZGVsZXRlIChiIGFzIExpdGVyYWwpLmZpZWxkO1xuICAgICAgICAgICAgZGVsZXRlIChiIGFzIExpdGVyYWwpLmNvbmRpdGlvbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IEpTT04uc3RyaW5naWZ5KHMpO1xuXG4gICAgcmV0dXJuIHJlc3VsdCA9PT0gJ1tbXV0nID8gbnVsbCA6IHJlc3VsdDtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIHN0cmluZywgcHJvYmFibHkgY29taW5nIGZyb20gVVJMLCBpbnRvIGEgc2VsZWN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tVXJsKHNlbGVjdGlvbnM6IHN0cmluZyB8IG51bGwpOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9ucyB7XG4gICAgaWYgKCFzZWxlY3Rpb25zIHx8ICFzZWxlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW1tdXTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBKU09OLnBhcnNlKHNlbGVjdGlvbnMpIGFzIE5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zO1xuXG4gICAgZm9yIChjb25zdCBhIG9mIHJlc3VsdCkge1xuICAgICAgICBmb3IgKGNvbnN0IGIgb2YgYSkge1xuICAgICAgICAgICAgYi5maWVsZCA9IChiIGFzIExpdGVyYWwpWydmJ107XG4gICAgICAgICAgICBiLmNvbmRpdGlvbiA9IChiIGFzIExpdGVyYWwpWydjJ107XG5cbiAgICAgICAgICAgIGRlbGV0ZSAoYiBhcyBMaXRlcmFsKVsnZiddO1xuICAgICAgICAgICAgZGVsZXRlIChiIGFzIExpdGVyYWwpWydjJ107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVzdWx0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXN1bHQucHVzaChbXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBzZWFyY2ggc2VsZWN0aW9uIHRvIG5hdmlnYXRpb24gcGFyYW1ldGVycyB0byBiZSB1c2VkIGluIFVSTC5cbiAqXG4gKiBUaGlzIGlzIHR5cGljYWxseSB1c2VmdWwgdG8gY3JhZnQgVVJMIHRvIHByZS1maWx0ZXJlZCBsaXN0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvTmF2aWdhdGlvblBhcmFtZXRlcnMoc2VsZWN0aW9uczogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMpOiBQYXJhbXMge1xuICAgIGNvbnN0IHZhbHVlID0gdG9Vcmwoc2VsZWN0aW9ucyk7XG5cbiAgICByZXR1cm4gdmFsdWUgPyB7bnM6IEpTT04uc3RyaW5naWZ5KHZhbHVlKX0gOiB7fTtcbn1cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2VhcmNoL2NsYXNzZXMvdXJsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFJbEM7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsVUFBMEM7SUFDNUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEIsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNmLENBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUMxQixDQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFFL0IsT0FBUSxDQUFhLENBQUMsS0FBSyxDQUFDO1lBQzVCLE9BQVEsQ0FBYSxDQUFDLFNBQVMsQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFakMsT0FBTyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUM3QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLFVBQXlCO0lBQzdDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDdEIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBNEIsQ0FBQztJQUVqRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEIsQ0FBQyxDQUFDLEtBQUssR0FBSSxDQUFhLENBQUMsQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxTQUFTLEdBQUksQ0FBYSxDQUFDLENBQUMsQ0FBQztZQUUvQixPQUFRLENBQWEsQ0FBQyxDQUFDLENBQUM7WUFDeEIsT0FBUSxDQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFVBQW1DO0lBQ3RFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVoQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmF0dXJhbFNlYXJjaFNlbGVjdGlvbnN9IGZyb20gJy4uL3R5cGVzL3ZhbHVlcyc7XG5pbXBvcnQge2RlZXBDbG9uZX0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge0xpdGVyYWx9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3R5cGVzJztcbmltcG9ydCB7UGFyYW1zfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG4vKipcbiAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHNlbGVjdGlvbiB0aGF0IGNhbiBiZSB1c2VkIGluIFVSTC5cbiAqXG4gKiBUaGUgc3RyaW5nIGNhbiBiZSBwYXJzZWQgYmFjayB3aXRoIGBmcm9tVXJsKClgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1VybChzZWxlY3Rpb25zOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9ucyB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIXNlbGVjdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBzID0gZGVlcENsb25lKHNlbGVjdGlvbnMpO1xuICAgIGZvciAoY29uc3QgYSBvZiBzKSB7XG4gICAgICAgIGZvciAoY29uc3QgYiBvZiBhKSB7XG4gICAgICAgICAgICAoYiBhcyBMaXRlcmFsKS5mID0gYi5maWVsZDtcbiAgICAgICAgICAgIChiIGFzIExpdGVyYWwpLmMgPSBiLmNvbmRpdGlvbjtcblxuICAgICAgICAgICAgZGVsZXRlIChiIGFzIExpdGVyYWwpLmZpZWxkO1xuICAgICAgICAgICAgZGVsZXRlIChiIGFzIExpdGVyYWwpLmNvbmRpdGlvbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IEpTT04uc3RyaW5naWZ5KHMpO1xuXG4gICAgcmV0dXJuIHJlc3VsdCA9PT0gJ1tbXV0nID8gbnVsbCA6IHJlc3VsdDtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIHN0cmluZywgcHJvYmFibHkgY29taW5nIGZyb20gVVJMLCBpbnRvIGEgc2VsZWN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tVXJsKHNlbGVjdGlvbnM6IHN0cmluZyB8IG51bGwpOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9ucyB7XG4gICAgaWYgKCFzZWxlY3Rpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtbXV07XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZShzZWxlY3Rpb25zKSBhcyBOYXR1cmFsU2VhcmNoU2VsZWN0aW9ucztcblxuICAgIGZvciAoY29uc3QgYSBvZiByZXN1bHQpIHtcbiAgICAgICAgZm9yIChjb25zdCBiIG9mIGEpIHtcbiAgICAgICAgICAgIGIuZmllbGQgPSAoYiBhcyBMaXRlcmFsKS5mO1xuICAgICAgICAgICAgYi5jb25kaXRpb24gPSAoYiBhcyBMaXRlcmFsKS5jO1xuXG4gICAgICAgICAgICBkZWxldGUgKGIgYXMgTGl0ZXJhbCkuZjtcbiAgICAgICAgICAgIGRlbGV0ZSAoYiBhcyBMaXRlcmFsKS5jO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmVzdWx0LnB1c2goW10pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtIGEgc2VhcmNoIHNlbGVjdGlvbiB0byBuYXZpZ2F0aW9uIHBhcmFtZXRlcnMgdG8gYmUgdXNlZCBpbiBVUkwuXG4gKlxuICogVGhpcyBpcyB0eXBpY2FsbHkgdXNlZnVsIHRvIGNyYWZ0IFVSTCB0byBwcmUtZmlsdGVyZWQgbGlzdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b05hdmlnYXRpb25QYXJhbWV0ZXJzKHNlbGVjdGlvbnM6IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zKTogUGFyYW1zIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRvVXJsKHNlbGVjdGlvbnMpO1xuXG4gICAgcmV0dXJuIHZhbHVlID8ge25zOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSl9IDoge307XG59XG4iXX0=
@@ -22,4 +22,4 @@ export function getFacetFromSelection(facets, selection) {
22
22
  export function deepClone(obj) {
23
23
  return JSON.parse(JSON.stringify(obj));
24
24
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9zZWFyY2gvY2xhc3Nlcy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7R0FFRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FDakMsTUFBa0MsRUFDbEMsU0FBaUM7SUFFakMsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNULE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxPQUFPLENBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQztRQUN6RSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQ3JELElBQUksQ0FDUCxDQUFDO0FBQ04sQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUksR0FBb0M7SUFDN0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGYWNldCwgTmF0dXJhbFNlYXJjaEZhY2V0c30gZnJvbSAnLi4vdHlwZXMvZmFjZXQnO1xuaW1wb3J0IHtOYXR1cmFsU2VhcmNoU2VsZWN0aW9ufSBmcm9tICcuLi90eXBlcy92YWx1ZXMnO1xuXG4vKipcbiAqIExvb2t1cCBhIGZhY2V0IGJ5IGl0cyBgbmFtZWAgYW5kIHRoZW4gYnkgaXRzIGBmaWVsZGAsIG9yIHJldHVybiBudWxsIGlmIG5vdCBmb3VuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmFjZXRGcm9tU2VsZWN0aW9uKFxuICAgIGZhY2V0czogTmF0dXJhbFNlYXJjaEZhY2V0cyB8IG51bGwsXG4gICAgc2VsZWN0aW9uOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uLFxuKTogRmFjZXQgfCBudWxsIHtcbiAgICBpZiAoIWZhY2V0cykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICBmYWNldHMuZmluZChmYWNldCA9PiBmYWNldC5uYW1lICE9IG51bGwgJiYgZmFjZXQubmFtZSA9PT0gc2VsZWN0aW9uLm5hbWUpIHx8XG4gICAgICAgIGZhY2V0cy5maW5kKGZhY2V0ID0+IGZhY2V0LmZpZWxkID09PSBzZWxlY3Rpb24uZmllbGQpIHx8XG4gICAgICAgIG51bGxcbiAgICApO1xufVxuXG4vKipcbiAqIERlZXAgY2xvbmUgYSBsaXRlcmFsIHZpYSBKU09OIHNlcmlhbGl6aW5nL3Vuc2VyaWFsaXppbmdcbiAqXG4gKiBJdCB3aWxsICoqbm90Kiogd29yayB3aXRoOlxuICpcbiAqICAgICAtIGZ1bmN0aW9ucyAod2lsbCBiZSByZW1vdmVkKVxuICogICAgIC0gYHVuZGVmaW5lZGAgKHdpbGwgYmUgcmVtb3ZlZClcbiAqICAgICAtIGN5Y2xpYyByZWZlcmVuY2VzICh3aWxsIGNyYXNoKVxuICogICAgIC0gb2JqZWN0cyAod2lsbCBiZSBjb252ZXJ0ZWQgdG8gYHt9YClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBDbG9uZTxUPihvYmo6IFQgZXh0ZW5kcyB1bmRlZmluZWQgPyBuZXZlciA6IFQpOiBUIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKTtcbn1cbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9zZWFyY2gvY2xhc3Nlcy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7R0FFRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FDakMsTUFBa0MsRUFDbEMsU0FBaUM7SUFFakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1YsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sQ0FDSCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ3pFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDckQsSUFBSSxDQUNQLENBQUM7QUFDTixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxHQUFvQztJQUM3RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ZhY2V0LCBOYXR1cmFsU2VhcmNoRmFjZXRzfSBmcm9tICcuLi90eXBlcy9mYWNldCc7XG5pbXBvcnQge05hdHVyYWxTZWFyY2hTZWxlY3Rpb259IGZyb20gJy4uL3R5cGVzL3ZhbHVlcyc7XG5cbi8qKlxuICogTG9va3VwIGEgZmFjZXQgYnkgaXRzIGBuYW1lYCBhbmQgdGhlbiBieSBpdHMgYGZpZWxkYCwgb3IgcmV0dXJuIG51bGwgaWYgbm90IGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGYWNldEZyb21TZWxlY3Rpb24oXG4gICAgZmFjZXRzOiBOYXR1cmFsU2VhcmNoRmFjZXRzIHwgbnVsbCxcbiAgICBzZWxlY3Rpb246IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb24sXG4pOiBGYWNldCB8IG51bGwge1xuICAgIGlmICghZmFjZXRzKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIGZhY2V0cy5maW5kKGZhY2V0ID0+IGZhY2V0Lm5hbWUgIT0gbnVsbCAmJiBmYWNldC5uYW1lID09PSBzZWxlY3Rpb24ubmFtZSkgfHxcbiAgICAgICAgZmFjZXRzLmZpbmQoZmFjZXQgPT4gZmFjZXQuZmllbGQgPT09IHNlbGVjdGlvbi5maWVsZCkgfHxcbiAgICAgICAgbnVsbFxuICAgICk7XG59XG5cbi8qKlxuICogRGVlcCBjbG9uZSBhIGxpdGVyYWwgdmlhIEpTT04gc2VyaWFsaXppbmcvdW5zZXJpYWxpemluZ1xuICpcbiAqIEl0IHdpbGwgKipub3QqKiB3b3JrIHdpdGg6XG4gKlxuICogICAgIC0gZnVuY3Rpb25zICh3aWxsIGJlIHJlbW92ZWQpXG4gKiAgICAgLSBgdW5kZWZpbmVkYCAod2lsbCBiZSByZW1vdmVkKVxuICogICAgIC0gY3ljbGljIHJlZmVyZW5jZXMgKHdpbGwgY3Jhc2gpXG4gKiAgICAgLSBvYmplY3RzICh3aWxsIGJlIGNvbnZlcnRlZCB0byBge31gKVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVlcENsb25lPFQ+KG9iajogVCBleHRlbmRzIHVuZGVmaW5lZCA/IG5ldmVyIDogVCk6IFQge1xuICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xufVxuIl19
@@ -3,12 +3,10 @@ import { Component, Inject, InjectionToken, TemplateRef, ViewChild, ViewEncapsul
3
3
  import { Subject } from 'rxjs';
4
4
  import { naturalDropdownAnimations } from './dropdown-container-animations';
5
5
  import { MatButtonModule } from '@angular/material/button';
6
- import { CommonModule } from '@angular/common';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "@angular/cdk/a11y";
9
8
  import * as i2 from "@angular/cdk/portal";
10
- import * as i3 from "@angular/common";
11
- import * as i4 from "@angular/material/button";
9
+ import * as i3 from "@angular/material/button";
12
10
  export function throwMatDialogContentAlreadyAttachedError() {
13
11
  throw Error('Attempting to attach dialog content after content is already attached');
14
12
  }
@@ -71,20 +69,20 @@ export class NaturalDropdownContainerComponent extends BasePortalOutlet {
71
69
  this.focusTrap.destroy();
72
70
  }
73
71
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NaturalDropdownContainerComponent, deps: [{ token: i0.ElementRef }, { token: i1.ConfigurableFocusTrapFactory }, { token: NATURAL_DROPDOWN_CONTAINER_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: NaturalDropdownContainerComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }, { propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n (@transformMenu.done)=\"onAnimationDone($event)\"\n [@transformMenu]=\"panelAnimationState\"\n class=\"natural-dropdown-container mat-elevation-z2\"\n role=\"menu\"\n tabindex=\"-1\"\n>\n <div class=\"natural-dropdown-container-content\">\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div *ngIf=\"data.showValidateButton\" class=\"natural-dropdown-validate-button\">\n <button (click)=\"close()\" color=\"primary\" mat-raised-button i18n>Valider</button>\n </div>\n</div>\n", styles: [".natural-dropdown-container{display:flex;flex-direction:column;border-radius:2px;height:100%}.natural-dropdown-container-content{flex:1;padding:5px;overflow:auto}.natural-dropdown-container .natural-dropdown-validate-button{flex:none;display:flex;flex-direction:row;justify-content:flex-end;margin:5px}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], animations: [naturalDropdownAnimations.transformMenu, naturalDropdownAnimations.fadeInItems], encapsulation: i0.ViewEncapsulation.None }); }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDropdownContainerComponent, deps: [{ token: i0.ElementRef }, { token: i1.ConfigurableFocusTrapFactory }, { token: NATURAL_DROPDOWN_CONTAINER_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalDropdownContainerComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }, { propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n (@transformMenu.done)=\"onAnimationDone($event)\"\n [@transformMenu]=\"panelAnimationState\"\n class=\"natural-dropdown-container mat-elevation-z2\"\n role=\"menu\"\n tabindex=\"-1\"\n>\n <div class=\"natural-dropdown-container-content\">\n <ng-template cdkPortalOutlet />\n </div>\n\n @if (data.showValidateButton) {\n <div class=\"natural-dropdown-validate-button\">\n <button (click)=\"close()\" color=\"primary\" mat-raised-button i18n>Valider</button>\n </div>\n }\n</div>\n", styles: [".natural-dropdown-container{display:flex;flex-direction:column;border-radius:2px;height:100%}.natural-dropdown-container-content{flex:1;padding:5px;overflow:auto}.natural-dropdown-container .natural-dropdown-validate-button{flex:none;display:flex;flex-direction:row;justify-content:flex-end;margin:5px}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], animations: [naturalDropdownAnimations.transformMenu, naturalDropdownAnimations.fadeInItems], encapsulation: i0.ViewEncapsulation.None }); }
76
74
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NaturalDropdownContainerComponent, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDropdownContainerComponent, decorators: [{
78
76
  type: Component,
79
- args: [{ encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, animations: [naturalDropdownAnimations.transformMenu, naturalDropdownAnimations.fadeInItems], standalone: true, imports: [PortalModule, CommonModule, MatButtonModule], template: "<div\n (@transformMenu.done)=\"onAnimationDone($event)\"\n [@transformMenu]=\"panelAnimationState\"\n class=\"natural-dropdown-container mat-elevation-z2\"\n role=\"menu\"\n tabindex=\"-1\"\n>\n <div class=\"natural-dropdown-container-content\">\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div *ngIf=\"data.showValidateButton\" class=\"natural-dropdown-validate-button\">\n <button (click)=\"close()\" color=\"primary\" mat-raised-button i18n>Valider</button>\n </div>\n</div>\n", styles: [".natural-dropdown-container{display:flex;flex-direction:column;border-radius:2px;height:100%}.natural-dropdown-container-content{flex:1;padding:5px;overflow:auto}.natural-dropdown-container .natural-dropdown-validate-button{flex:none;display:flex;flex-direction:row;justify-content:flex-end;margin:5px}\n"] }]
80
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ConfigurableFocusTrapFactory }, { type: undefined, decorators: [{
77
+ args: [{ encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, animations: [naturalDropdownAnimations.transformMenu, naturalDropdownAnimations.fadeInItems], standalone: true, imports: [PortalModule, MatButtonModule], template: "<div\n (@transformMenu.done)=\"onAnimationDone($event)\"\n [@transformMenu]=\"panelAnimationState\"\n class=\"natural-dropdown-container mat-elevation-z2\"\n role=\"menu\"\n tabindex=\"-1\"\n>\n <div class=\"natural-dropdown-container-content\">\n <ng-template cdkPortalOutlet />\n </div>\n\n @if (data.showValidateButton) {\n <div class=\"natural-dropdown-validate-button\">\n <button (click)=\"close()\" color=\"primary\" mat-raised-button i18n>Valider</button>\n </div>\n }\n</div>\n", styles: [".natural-dropdown-container{display:flex;flex-direction:column;border-radius:2px;height:100%}.natural-dropdown-container-content{flex:1;padding:5px;overflow:auto}.natural-dropdown-container .natural-dropdown-validate-button{flex:none;display:flex;flex-direction:row;justify-content:flex-end;margin:5px}\n"] }]
78
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ConfigurableFocusTrapFactory }, { type: undefined, decorators: [{
81
79
  type: Inject,
82
80
  args: [NATURAL_DROPDOWN_CONTAINER_DATA]
83
- }] }]; }, propDecorators: { portalOutlet: [{
81
+ }] }], propDecorators: { portalOutlet: [{
84
82
  type: ViewChild,
85
83
  args: [CdkPortalOutlet, { static: true }]
86
84
  }], templateRef: [{
87
85
  type: ViewChild,
88
86
  args: [TemplateRef, { static: true }]
89
87
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9kcm9wZG93bi1jb250YWluZXIvZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9kcm9wZG93bi1jb250YWluZXIvZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxlQUFlLEVBQW1DLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JILE9BQU8sRUFDSCxTQUFTLEVBSVQsTUFBTSxFQUNOLGNBQWMsRUFFZCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQUU3QyxNQUFNLFVBQVUseUNBQXlDO0lBQ3JELE1BQU0sS0FBSyxDQUFDLHVFQUF1RSxDQUFDLENBQUM7QUFDekYsQ0FBQztBQU1ELE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLElBQUksY0FBYyxDQUM3RCw4QkFBOEIsQ0FDakMsQ0FBQztBQVdGLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxnQkFBZ0I7SUFlbkUsWUFDcUIsVUFBbUMsRUFDbkMsZ0JBQThDLEVBQ2YsSUFBa0M7UUFFbEYsS0FBSyxFQUFF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QUMsZUFBZSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDSyxXQUFXO3NCQUF6RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FuaW1hdGlvbkV2ZW50fSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7Q29uZmlndXJhYmxlRm9jdXNUcmFwRmFjdG9yeSwgRm9jdXNUcmFwfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge0Jhc2VQb3J0YWxPdXRsZXQsIENka1BvcnRhbE91dGxldCwgQ29tcG9uZW50UG9ydGFsLCBUZW1wbGF0ZVBvcnRhbCwgUG9ydGFsTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudFJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgT25EZXN0cm95LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtuYXR1cmFsRHJvcGRvd25BbmltYXRpb25zfSBmcm9tICcuL2Ryb3Bkb3duLWNvbnRhaW5lci1hbmltYXRpb25zJztcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd01hdERpYWxvZ0NvbnRlbnRBbHJlYWR5QXR0YWNoZWRFcnJvcigpOiB2b2lkIHtcbiAgICB0aHJvdyBFcnJvcignQXR0ZW1wdGluZyB0byBhdHRhY2ggZGlhbG9nIGNvbnRlbnQgYWZ0ZXIgY29udGVudCBpcyBhbHJlYWR5IGF0dGFjaGVkJyk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF0dXJhbERyb3Bkb3duQ29udGFpbmVyRGF0YSB7XG4gICAgc2hvd1ZhbGlkYXRlQnV0dG9uOiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgTkFUVVJBTF9EUk9QRE9XTl9DT05UQUlORVJfREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOYXR1cmFsRHJvcGRvd25Db250YWluZXJEYXRhPihcbiAgICAnTmF0dXJhbERyb3Bkb3duQ29udGFpbmVyRGF0YScsXG4pO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIGFuaW1hdGlvbnM6IFtuYXR1cmFsRHJvcGRvd25BbmltYXRpb25zLnRyYW5zZm9ybU1lbnUsIG5hdHVyYWxEcm9wZG93bkFuaW1hdGlvbnMuZmFkZUluSXRlbXNdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1BvcnRhbE1vZHVsZSwgQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRHJvcGRvd25Db250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlUG9ydGFsT3V0bGV0IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBAVmlld0NoaWxkKENka1BvcnRhbE91dGxldCwge3N0YXRpYzogdHJ1ZX0pIHB1YmxpYyBwb3J0YWxPdXRsZXQhOiBDZGtQb3J0YWxPdXRsZXQ7XG4gICAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZiwge3N0YXRpYzogdHJ1ZX0pIHB1YmxpYyB0ZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2xvc2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBDdXJyZW50IHN0YXRlIG9mIHRoZSBwYW5lbCBhbmltYXRpb24uICovXG4gICAgcHVibGljIHBhbmVsQW5pbWF0aW9uU3RhdGU6ICd2b2lkJyB8ICdlbnRlcicgPSAndm9pZCc7XG5cbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgYW4gYW5pbWF0aW9uIG9uIHRoZSBtZW51IGNvbXBsZXRlcy4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGFuaW1hdGlvbkRvbmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHJpdmF0ZSBmb2N1c1RyYXA6IEZvY3VzVHJhcCB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgZWxlbWVudEZvY3VzZWRCZWZvcmVEaWFsb2dXYXNPcGVuZWQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNUcmFwRmFjdG9yeTogQ29uZmlndXJhYmxlRm9jdXNUcmFwRmFjdG9yeSxcbiAgICAgICAgQEluamVjdChOQVRVUkFMX0RST1BET1dOX0NPTlRBSU5FUl9EQVRBKSBwdWJsaWMgZGF0YTogTmF0dXJhbERyb3Bkb3duQ29udGFpbmVyRGF0YSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlZC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGF0dGFjaFRlbXBsYXRlUG9ydGFsPEM+KHBvcnRhbDogVGVtcGxhdGVQb3J0YWw8Qz4pOiBFbWJlZGRlZFZpZXdSZWY8Qz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3J0YWxPdXRsZXQuYXR0YWNoVGVtcGxhdGVQb3J0YWwocG9ydGFsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXR0YWNoQ29tcG9uZW50UG9ydGFsPFQ+KHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPFQ+KTogQ29tcG9uZW50UmVmPFQ+IHtcbiAgICAgICAgaWYgKHRoaXMucG9ydGFsT3V0bGV0Lmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgICAgICAgIHRocm93TWF0RGlhbG9nQ29udGVudEFscmVhZHlBdHRhY2hlZEVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5wb3J0YWxPdXRsZXQuYXR0YWNoQ29tcG9uZW50UG9ydGFsKHBvcnRhbCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXJ0QW5pbWF0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhbmVsQW5pbWF0aW9uU3RhdGUgPSAnZW50ZXInO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFuaW1hdGlvbkRvbmUoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC50b1N0YXRlID09PSAnZW50ZXInKSB7XG4gICAgICAgICAgICB0aGlzLnRyYXBGb2N1cygpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICdleGl0Jykge1xuICAgICAgICAgICAgdGhpcy5yZXN0b3JlRm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uRG9uZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0cmFwRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mb2N1c1RyYXApIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNUcmFwID0gdGhpcy5mb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvY3VzVHJhcC5mb2N1c0luaXRpYWxFbGVtZW50V2hlblJlYWR5KCk7XG4gICAgfVxuXG4gICAgLyoqIFJlc3RvcmVzIGZvY3VzIHRvIHRoZSBlbGVtZW50IHRoYXQgd2FzIGZvY3VzZWQgYmVmb3JlIHRoZSBkaWFsb2cgb3BlbmVkLiAqL1xuICAgIHByaXZhdGUgcmVzdG9yZUZvY3VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0b0ZvY3VzID0gdGhpcy5lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZDtcblxuICAgICAgICAvLyBXZSBuZWVkIHRoZSBleHRyYSBjaGVjaywgYmVjYXVzZSBJRSBjYW4gc2V0IHRoZSBgYWN0aXZlRWxlbWVudGAgdG8gbnVsbCBpbiBzb21lIGNhc2VzLlxuICAgICAgICBpZiAodG9Gb2N1cyAmJiB0eXBlb2YgdG9Gb2N1cy5mb2N1cyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdG9Gb2N1cy5mb2N1cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9jdXNUcmFwKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzVHJhcC5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgKEB0cmFuc2Zvcm1NZW51LmRvbmUpPVwib25BbmltYXRpb25Eb25lKCRldmVudClcIlxuICAgIFtAdHJhbnNmb3JtTWVudV09XCJwYW5lbEFuaW1hdGlvblN0YXRlXCJcbiAgICBjbGFzcz1cIm5hdHVyYWwtZHJvcGRvd24tY29udGFpbmVyIG1hdC1lbGV2YXRpb24tejJcIlxuICAgIHJvbGU9XCJtZW51XCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwibmF0dXJhbC1kcm9wZG93bi1jb250YWluZXItY29udGVudFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgY2RrUG9ydGFsT3V0bGV0PjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5zaG93VmFsaWRhdGVCdXR0b25cIiBjbGFzcz1cIm5hdHVyYWwtZHJvcGRvd24tdmFsaWRhdGUtYnV0dG9uXCI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlKClcIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtcmFpc2VkLWJ1dHRvbiBpMThuPlZhbGlkZXI8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9kcm9wZG93bi1jb250YWluZXIvZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9kcm9wZG93bi1jb250YWluZXIvZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxlQUFlLEVBQW1DLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JILE9BQU8sRUFDSCxTQUFTLEVBSVQsTUFBTSxFQUNOLGNBQWMsRUFFZCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFFekQsTUFBTSxVQUFVLHlDQUF5QztJQUNyRCxNQUFNLEtBQUssQ0FBQyx1RUFBdUUsQ0FBQyxDQUFDO0FBQ3pGLENBQUM7QUFNRCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxJQUFJLGNBQWMsQ0FDN0QsOEJBQThCLENBQ2pDLENBQUM7QUFZRixNQUFNLE9BQU8saUNBQWtDLFNBQVEsZ0JBQWdCO0lBZW5FLFlBQ3FCLFVBQW1DLEVBQ25DLGdCQUE4QyxFQUNmLElBQWtDO1FBRWxGLEtBQUssRUFBRSxDQUFDO1FBSlMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE4QjtRQUNmLFNBQUksR0FBSixJQUFJLENBQThCO1FBZHRFLFdBQU0sR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTdDLDRDQUE0QztRQUNyQyx3QkFBbUIsR0FBcUIsTUFBTSxDQUFDO1FBRXRELHlEQUF5RDtRQUN4QyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFN0MsY0FBUyxHQUFxQixJQUFJLENBQUM7UUFDbkMsd0NBQW1DLEdBQXVCLElBQUksQ0FBQztJQVF2RSxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLEtBQUs7UUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxvQkFBb0IsQ0FBSSxNQUF5QjtRQUNwRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLHFCQUFxQixDQUFJLE1BQTBCO1FBQ3RELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLHlDQUF5QyxFQUFFLENBQUM7UUFDaEQsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsT0FBTyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxlQUFlLENBQUMsS0FBcUI7UUFDeEMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNyQixDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sU0FBUztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsK0VBQStFO0lBQ3ZFLFlBQVk7UUFDaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1DQUFtQyxDQUFDO1FBRXpELHlGQUF5RjtRQUN6RixJQUFJLE9BQU8sSUFBSSxPQUFPLE9BQU8sQ0FBQyxLQUFLLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDakQsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDTCxDQUFDOzhHQTdFUSxpQ0FBaUMsd0ZBa0I5QiwrQkFBK0I7a0dBbEJsQyxpQ0FBaUMsc0hBQy9CLGVBQWUsNEZBQ2YsV0FBVyxxRkMzQzFCLG1pQkFpQkEseVdEc0JjLFlBQVksaU1BQUUsZUFBZSw4TUFGM0IsQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLEVBQUUseUJBQXlCLENBQUMsV0FBVyxDQUFDOzsyRkFJbkYsaUNBQWlDO2tCQVY3QyxTQUFTO29DQUlTLGlCQUFpQixDQUFDLElBQUksdUJBQ2hCLEtBQUssY0FDZCxDQUFDLHlCQUF5QixDQUFDLGFBQWEsRUFBRSx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsY0FDaEYsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQzs7MEJBb0JuQyxNQUFNOzJCQUFDLCtCQUErQjt5Q0FqQlEsWUFBWTtzQkFBOUQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNLLFdBQVc7c0JBQXpELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QW5pbWF0aW9uRXZlbnR9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5LCBGb2N1c1RyYXB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7QmFzZVBvcnRhbE91dGxldCwgQ2RrUG9ydGFsT3V0bGV0LCBDb21wb25lbnRQb3J0YWwsIFRlbXBsYXRlUG9ydGFsLCBQb3J0YWxNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgIEluamVjdCxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBPbkRlc3Ryb3ksXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge25hdHVyYWxEcm9wZG93bkFuaW1hdGlvbnN9IGZyb20gJy4vZHJvcGRvd24tY29udGFpbmVyLWFuaW1hdGlvbnMnO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd01hdERpYWxvZ0NvbnRlbnRBbHJlYWR5QXR0YWNoZWRFcnJvcigpOiB2b2lkIHtcbiAgICB0aHJvdyBFcnJvcignQXR0ZW1wdGluZyB0byBhdHRhY2ggZGlhbG9nIGNvbnRlbnQgYWZ0ZXIgY29udGVudCBpcyBhbHJlYWR5IGF0dGFjaGVkJyk7XG59XG5cbmV4cG9ydCB0eXBlIE5hdHVyYWxEcm9wZG93bkNvbnRhaW5lckRhdGEgPSB7XG4gICAgc2hvd1ZhbGlkYXRlQnV0dG9uOiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IE5BVFVSQUxfRFJPUERPV05fQ09OVEFJTkVSX0RBVEEgPSBuZXcgSW5qZWN0aW9uVG9rZW48TmF0dXJhbERyb3Bkb3duQ29udGFpbmVyRGF0YT4oXG4gICAgJ05hdHVyYWxEcm9wZG93bkNvbnRhaW5lckRhdGEnLFxuKTtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC91c2UtY29tcG9uZW50LXZpZXctZW5jYXBzdWxhdGlvblxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgYW5pbWF0aW9uczogW25hdHVyYWxEcm9wZG93bkFuaW1hdGlvbnMudHJhbnNmb3JtTWVudSwgbmF0dXJhbERyb3Bkb3duQW5pbWF0aW9ucy5mYWRlSW5JdGVtc10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbUG9ydGFsTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRHJvcGRvd25Db250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlUG9ydGFsT3V0bGV0IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBAVmlld0NoaWxkKENka1BvcnRhbE91dGxldCwge3N0YXRpYzogdHJ1ZX0pIHB1YmxpYyBwb3J0YWxPdXRsZXQhOiBDZGtQb3J0YWxPdXRsZXQ7XG4gICAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZiwge3N0YXRpYzogdHJ1ZX0pIHB1YmxpYyB0ZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2xvc2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBDdXJyZW50IHN0YXRlIG9mIHRoZSBwYW5lbCBhbmltYXRpb24uICovXG4gICAgcHVibGljIHBhbmVsQW5pbWF0aW9uU3RhdGU6ICd2b2lkJyB8ICdlbnRlcicgPSAndm9pZCc7XG5cbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgYW4gYW5pbWF0aW9uIG9uIHRoZSBtZW51IGNvbXBsZXRlcy4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGFuaW1hdGlvbkRvbmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHJpdmF0ZSBmb2N1c1RyYXA6IEZvY3VzVHJhcCB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgZWxlbWVudEZvY3VzZWRCZWZvcmVEaWFsb2dXYXNPcGVuZWQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNUcmFwRmFjdG9yeTogQ29uZmlndXJhYmxlRm9jdXNUcmFwRmFjdG9yeSxcbiAgICAgICAgQEluamVjdChOQVRVUkFMX0RST1BET1dOX0NPTlRBSU5FUl9EQVRBKSBwdWJsaWMgZGF0YTogTmF0dXJhbERyb3Bkb3duQ29udGFpbmVyRGF0YSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlZC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGF0dGFjaFRlbXBsYXRlUG9ydGFsPEM+KHBvcnRhbDogVGVtcGxhdGVQb3J0YWw8Qz4pOiBFbWJlZGRlZFZpZXdSZWY8Qz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3J0YWxPdXRsZXQuYXR0YWNoVGVtcGxhdGVQb3J0YWwocG9ydGFsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXR0YWNoQ29tcG9uZW50UG9ydGFsPFQ+KHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPFQ+KTogQ29tcG9uZW50UmVmPFQ+IHtcbiAgICAgICAgaWYgKHRoaXMucG9ydGFsT3V0bGV0Lmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgICAgICAgIHRocm93TWF0RGlhbG9nQ29udGVudEFscmVhZHlBdHRhY2hlZEVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5wb3J0YWxPdXRsZXQuYXR0YWNoQ29tcG9uZW50UG9ydGFsKHBvcnRhbCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXJ0QW5pbWF0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhbmVsQW5pbWF0aW9uU3RhdGUgPSAnZW50ZXInO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFuaW1hdGlvbkRvbmUoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC50b1N0YXRlID09PSAnZW50ZXInKSB7XG4gICAgICAgICAgICB0aGlzLnRyYXBGb2N1cygpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICdleGl0Jykge1xuICAgICAgICAgICAgdGhpcy5yZXN0b3JlRm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uRG9uZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0cmFwRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mb2N1c1RyYXApIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNUcmFwID0gdGhpcy5mb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvY3VzVHJhcC5mb2N1c0luaXRpYWxFbGVtZW50V2hlblJlYWR5KCk7XG4gICAgfVxuXG4gICAgLyoqIFJlc3RvcmVzIGZvY3VzIHRvIHRoZSBlbGVtZW50IHRoYXQgd2FzIGZvY3VzZWQgYmVmb3JlIHRoZSBkaWFsb2cgb3BlbmVkLiAqL1xuICAgIHByaXZhdGUgcmVzdG9yZUZvY3VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0b0ZvY3VzID0gdGhpcy5lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZDtcblxuICAgICAgICAvLyBXZSBuZWVkIHRoZSBleHRyYSBjaGVjaywgYmVjYXVzZSBJRSBjYW4gc2V0IHRoZSBgYWN0aXZlRWxlbWVudGAgdG8gbnVsbCBpbiBzb21lIGNhc2VzLlxuICAgICAgICBpZiAodG9Gb2N1cyAmJiB0eXBlb2YgdG9Gb2N1cy5mb2N1cyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdG9Gb2N1cy5mb2N1cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9jdXNUcmFwKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzVHJhcC5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgKEB0cmFuc2Zvcm1NZW51LmRvbmUpPVwib25BbmltYXRpb25Eb25lKCRldmVudClcIlxuICAgIFtAdHJhbnNmb3JtTWVudV09XCJwYW5lbEFuaW1hdGlvblN0YXRlXCJcbiAgICBjbGFzcz1cIm5hdHVyYWwtZHJvcGRvd24tY29udGFpbmVyIG1hdC1lbGV2YXRpb24tejJcIlxuICAgIHJvbGU9XCJtZW51XCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwibmF0dXJhbC1kcm9wZG93bi1jb250YWluZXItY29udGVudFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgY2RrUG9ydGFsT3V0bGV0IC8+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGRhdGEuc2hvd1ZhbGlkYXRlQnV0dG9uKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXR1cmFsLWRyb3Bkb3duLXZhbGlkYXRlLWJ1dHRvblwiPlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1yYWlzZWQtYnV0dG9uIGkxOG4+VmFsaWRlcjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cbiJdfQ==