@elderbyte/ngx-starter 14.11.0 → 14.12.0-beta

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 (158) hide show
  1. package/_index.scss +2 -0
  2. package/esm2020/lib/components/access-denied/elder-access-denied.component.mjs +3 -4
  3. package/esm2020/lib/components/access-denied/elder-access-denied.module.mjs +4 -8
  4. package/esm2020/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +9 -13
  5. package/esm2020/lib/components/auditing/elder-audit.module.mjs +1 -5
  6. package/esm2020/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -4
  7. package/esm2020/lib/components/button-group/elder-button-group.module.mjs +4 -8
  8. package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +4 -5
  9. package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +5 -6
  10. package/esm2020/lib/components/card-organizer/elder-card-organizer.module.mjs +4 -5
  11. package/esm2020/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -5
  12. package/esm2020/lib/components/cards/elder-card/elder-card.component.mjs +3 -5
  13. package/esm2020/lib/components/cards/elder-card/elder-card.module.mjs +4 -5
  14. package/esm2020/lib/components/connectivity/elder-connectivity.module.mjs +4 -5
  15. package/esm2020/lib/components/containers/elder-containers.module.mjs +4 -8
  16. package/esm2020/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +3 -4
  17. package/esm2020/lib/components/data-transfer/elder-data-transfer.module.mjs +4 -5
  18. package/esm2020/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +3 -4
  19. package/esm2020/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +4 -5
  20. package/esm2020/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +6 -7
  21. package/esm2020/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +5 -6
  22. package/esm2020/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +4 -5
  23. package/esm2020/lib/components/data-view/common/elder-data-common.module.mjs +4 -5
  24. package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +3 -4
  25. package/esm2020/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +4 -5
  26. package/esm2020/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +3 -4
  27. package/esm2020/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +39 -26
  28. package/esm2020/lib/components/data-view/grid/elder-grid.module.mjs +1 -5
  29. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +4 -5
  30. package/esm2020/lib/components/data-view/table/elder-table/elder-table.component.mjs +8 -9
  31. package/esm2020/lib/components/data-view/table/elder-table.module.mjs +4 -5
  32. package/esm2020/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +4 -5
  33. package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +4 -5
  34. package/esm2020/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +4 -5
  35. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +4 -5
  36. package/esm2020/lib/components/errors/elder-error.module.mjs +4 -8
  37. package/esm2020/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +3 -4
  38. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +4 -5
  39. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +4 -5
  40. package/esm2020/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -4
  41. package/esm2020/lib/components/files/elder-file.module.mjs +4 -5
  42. package/esm2020/lib/components/files/file-upload/file-upload.component.mjs +11 -12
  43. package/esm2020/lib/components/forms/search/elder-search.module.mjs +4 -5
  44. package/esm2020/lib/components/forms/search/search-box/elder-search-box.component.mjs +5 -6
  45. package/esm2020/lib/components/global-search/elder-global-search.component.mjs +4 -5
  46. package/esm2020/lib/components/global-search/elder-global-search.module.mjs +4 -5
  47. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +3 -11
  48. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -8
  49. package/esm2020/lib/components/headers/elder-header/elder-header.component.mjs +4 -5
  50. package/esm2020/lib/components/headers/elder-header.module.mjs +4 -5
  51. package/esm2020/lib/components/i18n/entities/elder-i18n-entities.module.mjs +1 -5
  52. package/esm2020/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +10 -11
  53. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +8 -9
  54. package/esm2020/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +14 -15
  55. package/esm2020/lib/components/i18n/language/elder-language.module.mjs +1 -5
  56. package/esm2020/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +5 -6
  57. package/esm2020/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +4 -5
  58. package/esm2020/lib/components/iframes/elder-iframe.module.mjs +1 -5
  59. package/esm2020/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +4 -5
  60. package/esm2020/lib/components/iframes/iframe-host/iframe-host.component.mjs +6 -7
  61. package/esm2020/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +4 -5
  62. package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +4 -5
  63. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.module.mjs +1 -5
  64. package/esm2020/lib/components/measures/dimensions-input/elder-dimensions-input.component.mjs +5 -16
  65. package/esm2020/lib/components/measures/elder-measures.module.mjs +1 -5
  66. package/esm2020/lib/components/measures/quantity-input/elder-quantity-input.component.mjs +12 -13
  67. package/esm2020/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +12 -13
  68. package/esm2020/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +4 -5
  69. package/esm2020/lib/components/navigation/nav/elder-nav.module.mjs +4 -5
  70. package/esm2020/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +3 -4
  71. package/esm2020/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +4 -5
  72. package/esm2020/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -5
  73. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.module.mjs +4 -5
  74. package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +6 -7
  75. package/esm2020/lib/components/overlays/elder-overlay-origin.directive.mjs +2 -2
  76. package/esm2020/lib/components/overlays/elder-overlay-trigger.directive.mjs +2 -2
  77. package/esm2020/lib/components/overlays/elder-overlay.component.mjs +2 -2
  78. package/esm2020/lib/components/panels/card-panel/elder-card-panel.component.mjs +3 -4
  79. package/esm2020/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +3 -4
  80. package/esm2020/lib/components/panels/elder-panel.module.mjs +3 -7
  81. package/esm2020/lib/components/select/elder-select.module.mjs +4 -5
  82. package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +9 -10
  83. package/esm2020/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +5 -6
  84. package/esm2020/lib/components/select/single/elder-select/elder-select.component.mjs +8 -9
  85. package/esm2020/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +4 -6
  86. package/esm2020/lib/components/select-chip-list/elder-chip-list-select.module.mjs +4 -5
  87. package/esm2020/lib/components/select-list/elder-select-list.module.mjs +4 -5
  88. package/esm2020/lib/components/select-list/select-list/elder-select-list.component.mjs +3 -4
  89. package/esm2020/lib/components/select-list/select-list-item/elder-select-list-item.component.mjs +3 -4
  90. package/esm2020/lib/components/shell/elder-shell.module.mjs +4 -5
  91. package/esm2020/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +4 -5
  92. package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +4 -5
  93. package/esm2020/lib/components/tabs/elder-tab.module.mjs +4 -8
  94. package/esm2020/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +7 -8
  95. package/esm2020/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +9 -10
  96. package/esm2020/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +7 -8
  97. package/esm2020/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +7 -8
  98. package/esm2020/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +12 -13
  99. package/esm2020/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +9 -10
  100. package/esm2020/lib/components/time/elder-time.module.mjs +1 -11
  101. package/esm2020/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +7 -8
  102. package/esm2020/lib/components/toasts/elder-toast.module.mjs +4 -5
  103. package/esm2020/lib/components/toasts/standard-toast/standard-toast.component.mjs +5 -6
  104. package/esm2020/lib/components/url-fragment/elder-url-fragment.module.mjs +1 -5
  105. package/esm2020/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +4 -5
  106. package/fesm2015/elderbyte-ngx-starter.mjs +383 -447
  107. package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
  108. package/fesm2020/elderbyte-ngx-starter.mjs +383 -447
  109. package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
  110. package/lib/components/access-denied/elder-access-denied.module.d.ts +1 -2
  111. package/lib/components/auditing/audited-entity/elder-audited-entity.component.d.ts +1 -2
  112. package/lib/components/auditing/elder-audit.module.d.ts +5 -6
  113. package/lib/components/button-group/elder-button-group.module.d.ts +1 -2
  114. package/lib/components/card-organizer/elder-card-organizer.module.d.ts +3 -4
  115. package/lib/components/cards/elder-card/elder-card.module.d.ts +2 -3
  116. package/lib/components/connectivity/elder-connectivity.module.d.ts +6 -7
  117. package/lib/components/containers/elder-containers.module.d.ts +1 -2
  118. package/lib/components/data-transfer/elder-data-transfer.module.d.ts +4 -5
  119. package/lib/components/data-view/common/elder-data-common.module.d.ts +1 -2
  120. package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +4 -3
  121. package/lib/components/data-view/grid/elder-grid.module.d.ts +6 -7
  122. package/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.d.ts +4 -5
  123. package/lib/components/data-view/table/elder-table.module.d.ts +4 -5
  124. package/lib/components/dialogs/elder-dialog.module.d.ts +2 -3
  125. package/lib/components/errors/elder-error.module.d.ts +1 -2
  126. package/lib/components/expand-toggle-button/elder-expand-toggle-button.module.d.ts +1 -2
  127. package/lib/components/files/elder-file.module.d.ts +6 -7
  128. package/lib/components/forms/search/elder-search.module.d.ts +2 -3
  129. package/lib/components/global-search/elder-global-search.module.d.ts +2 -3
  130. package/lib/components/graph/elder-progress-bar/elder-progress-bar.component.d.ts +1 -8
  131. package/lib/components/graph/elder-progress-bar/elder-progress-bar.module.d.ts +1 -2
  132. package/lib/components/headers/elder-header.module.d.ts +2 -3
  133. package/lib/components/i18n/entities/elder-i18n-entities.module.d.ts +15 -16
  134. package/lib/components/i18n/language/elder-language.module.d.ts +2 -3
  135. package/lib/components/iframes/elder-iframe.module.d.ts +5 -6
  136. package/lib/components/input/autocomplete/elder-autocomplete.module.d.ts +2 -3
  137. package/lib/components/measures/dimensions-input/elder-dimensions-input.component.d.ts +1 -3
  138. package/lib/components/measures/elder-measures.module.d.ts +5 -6
  139. package/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.d.ts +8 -9
  140. package/lib/components/navigation/nav/elder-nav.module.d.ts +1 -2
  141. package/lib/components/navigation/nav/nav-list/elder-nav-list.component.d.ts +1 -3
  142. package/lib/components/navigation/toolbar/elder-toolbar.module.d.ts +8 -9
  143. package/lib/components/panels/elder-panel.module.d.ts +1 -2
  144. package/lib/components/select/elder-select.module.d.ts +10 -11
  145. package/lib/components/select-chip-list/elder-chip-list-select.module.d.ts +3 -4
  146. package/lib/components/select-list/elder-select-list.module.d.ts +1 -2
  147. package/lib/components/shell/elder-shell.module.d.ts +4 -5
  148. package/lib/components/tabs/elder-tab.module.d.ts +1 -2
  149. package/lib/components/time/elder-time.module.d.ts +9 -10
  150. package/lib/components/toasts/elder-toast.module.d.ts +3 -4
  151. package/lib/components/url-fragment/elder-url-fragment.module.d.ts +2 -3
  152. package/package.json +1 -2
  153. package/src/lib/components/graph/elder-progress-bar/elder-progress-bar.component.scss +5 -0
  154. package/src/lib/components/navigation/nav/nav-list/elder-nav-list.component.scss +5 -6
  155. package/src/lib/components/select/single/elder-select/elder-select.component.scss +1 -4
  156. package/theming/_elder-common.scss +32 -0
  157. package/theming/_elder-flex-layout.scss +562 -0
  158. package/theming/_elder-style-fixes.scss +3 -0
@@ -6,9 +6,8 @@ import { map } from 'rxjs/operators';
6
6
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/forms";
9
- import * as i2 from "@angular/flex-layout/flex";
10
- import * as i3 from "../quantity-input/elder-quantity-input.component";
11
- import * as i4 from "@ngx-translate/core";
9
+ import * as i2 from "../quantity-input/elder-quantity-input.component";
10
+ import * as i3 from "@ngx-translate/core";
12
11
  export class ElderDimensionsInputComponent extends TemplateCompositeControl {
13
12
  /***************************************************************************
14
13
  * *
@@ -27,7 +26,6 @@ export class ElderDimensionsInputComponent extends TemplateCompositeControl {
27
26
  this._requiredLength = false;
28
27
  this._requiredWidth = false;
29
28
  this._requiredHeight = false;
30
- this.fxLayout = 'row';
31
29
  /**
32
30
  * Whether the label should always float ('always'), never float ('never')
33
31
  * or float as the user types ('auto'). Defaults to 'auto'.
@@ -60,13 +58,6 @@ export class ElderDimensionsInputComponent extends TemplateCompositeControl {
60
58
  * Properties *
61
59
  * *
62
60
  **************************************************************************/
63
- get fxLayoutGapInternal() {
64
- return this.fxLayoutGap
65
- ? this.fxLayoutGap
66
- : this.fxLayout === 'row'
67
- ? '12px'
68
- : '0px';
69
- }
70
61
  set requiredLength(value) {
71
62
  this._requiredLength = coerceBooleanProperty(value);
72
63
  }
@@ -180,10 +171,10 @@ export class ElderDimensionsInputComponent extends TemplateCompositeControl {
180
171
  }
181
172
  }
182
173
  ElderDimensionsInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderDimensionsInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
183
- ElderDimensionsInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ElderDimensionsInputComponent, selector: "elder-dimensions-input", inputs: { name: "name", appearance: "appearance", color: "color", placeholderLength: "placeholderLength", placeholderWidth: "placeholderWidth", placeholderHeight: "placeholderHeight", fxLayout: "fxLayout", fxLayoutGap: "fxLayoutGap", floatLabel: "floatLabel", min: "min", max: "max", requiredIgnoreZero: "requiredIgnoreZero", multipleOf: "multipleOf", displayFormat: "displayFormat", requiredLength: "requiredLength", requiredWidth: "requiredWidth", requiredHeight: "requiredHeight", readonly: "readonly", unit: "unit", lengthValue: "lengthValue", widthValue: "widthValue", heightValue: "heightValue" }, outputs: { unitChange: "unitChange", lengthValueChange: "lengthValueChange", widthValueChange: "widthValueChange", heightValueChange: "heightValueChange" }, providers: buildFormIntegrationProviders(ElderDimensionsInputComponent), usesInheritance: true, ngImport: i0, template: "\n<form #form=\"ngForm\" fxFlex\n [fxLayout]=\"fxLayout\"\n [fxLayoutGap]=\"fxLayoutGapInternal\">\n\n <elder-quantity-input fxFlex\n [name]=\"name + '-length'\"\n [quantityValue]=\"lengthValue\"\n (quantityValueChange)=\"onLengthValueChanged($event)\"\n [unit]=\"unit\"\n class=\"elder-form-field-small\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderLength ? placeholderLength : 'dimensions.length') | translate\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n [requiredIgnoreZero]=\"requiredIgnoreZero\"\n [multipleOf]=\"multipleOf\"\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredLength\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n <elder-quantity-input fxFlex\n [name]=\"name + '-width'\"\n [quantityValue]=\"widthValue\"\n (quantityValueChange)=\"onWidthValueChanged($event)\"\n [unit]=\"unit\"\n class=\"elder-form-field-small\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderWidth ? placeholderWidth : 'dimensions.width') | translate\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n [requiredIgnoreZero]=\"requiredIgnoreZero\"\n [multipleOf]=\"multipleOf\"\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredWidth\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n <elder-quantity-input fxFlex\n [name]=\"name + '-height'\"\n [quantityValue]=\"heightValue\"\n (quantityValueChange)=\"onHeightValueChanged($event)\"\n [unit]=\"unit\"\n class=\"elder-form-field-small\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderHeight ? placeholderHeight : 'dimensions.height') | translate\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n [requiredIgnoreZero]=\"requiredIgnoreZero\"\n [multipleOf]=\"multipleOf\"\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredHeight\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n</form>\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i3.ElderQuantityInputComponent, selector: "elder-quantity-input", inputs: ["multipleOf", "displayFormat", "requiredIgnoreZero", "quantityNumber", "quantityValue", "unit"], outputs: ["quantityNumberChange", "quantityValueChange", "unitChange"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
174
+ ElderDimensionsInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ElderDimensionsInputComponent, selector: "elder-dimensions-input", inputs: { name: "name", appearance: "appearance", color: "color", placeholderLength: "placeholderLength", placeholderWidth: "placeholderWidth", placeholderHeight: "placeholderHeight", fxLayoutGap: "fxLayoutGap", floatLabel: "floatLabel", min: "min", max: "max", requiredIgnoreZero: "requiredIgnoreZero", multipleOf: "multipleOf", displayFormat: "displayFormat", requiredLength: "requiredLength", requiredWidth: "requiredWidth", requiredHeight: "requiredHeight", readonly: "readonly", unit: "unit", lengthValue: "lengthValue", widthValue: "widthValue", heightValue: "heightValue" }, outputs: { unitChange: "unitChange", lengthValueChange: "lengthValueChange", widthValueChange: "widthValueChange", heightValueChange: "heightValueChange" }, providers: buildFormIntegrationProviders(ElderDimensionsInputComponent), usesInheritance: true, ngImport: i0, template: "<form #form=\"ngForm\" class=\"layout-row g-md full\">\n <elder-quantity-input [name]=\"name + '-length'\"\n [quantityValue]=\"lengthValue\"\n (quantityValueChange)=\"onLengthValueChanged($event)\"\n [unit]=\"unit\"\n class=\"flex elder-form-field-small\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderLength ? placeholderLength : 'dimensions.length') | translate\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n [requiredIgnoreZero]=\"requiredIgnoreZero\"\n [multipleOf]=\"multipleOf\"\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredLength\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n <elder-quantity-input [name]=\"name + '-width'\"\n [quantityValue]=\"widthValue\"\n (quantityValueChange)=\"onWidthValueChanged($event)\"\n [unit]=\"unit\"\n class=\"flex elder-form-field-small\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderWidth ? placeholderWidth : 'dimensions.width') | translate\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n [requiredIgnoreZero]=\"requiredIgnoreZero\"\n [multipleOf]=\"multipleOf\"\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredWidth\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n <elder-quantity-input [name]=\"name + '-height'\"\n [quantityValue]=\"heightValue\"\n (quantityValueChange)=\"onHeightValueChanged($event)\"\n [unit]=\"unit\"\n class=\"flex elder-form-field-small\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderHeight ? placeholderHeight : 'dimensions.height') | translate\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n [requiredIgnoreZero]=\"requiredIgnoreZero\"\n [multipleOf]=\"multipleOf\"\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredHeight\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n</form>\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.ElderQuantityInputComponent, selector: "elder-quantity-input", inputs: ["multipleOf", "displayFormat", "requiredIgnoreZero", "quantityNumber", "quantityValue", "unit"], outputs: ["quantityNumberChange", "quantityValueChange", "unitChange"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
184
175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderDimensionsInputComponent, decorators: [{
185
176
  type: Component,
186
- args: [{ selector: 'elder-dimensions-input', providers: buildFormIntegrationProviders(ElderDimensionsInputComponent), changeDetection: ChangeDetectionStrategy.OnPush, template: "\n<form #form=\"ngForm\" fxFlex\n [fxLayout]=\"fxLayout\"\n [fxLayoutGap]=\"fxLayoutGapInternal\">\n\n <elder-quantity-input fxFlex\n [name]=\"name + '-length'\"\n [quantityValue]=\"lengthValue\"\n (quantityValueChange)=\"onLengthValueChanged($event)\"\n [unit]=\"unit\"\n class=\"elder-form-field-small\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderLength ? placeholderLength : 'dimensions.length') | translate\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n [requiredIgnoreZero]=\"requiredIgnoreZero\"\n [multipleOf]=\"multipleOf\"\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredLength\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n <elder-quantity-input fxFlex\n [name]=\"name + '-width'\"\n [quantityValue]=\"widthValue\"\n (quantityValueChange)=\"onWidthValueChanged($event)\"\n [unit]=\"unit\"\n class=\"elder-form-field-small\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderWidth ? placeholderWidth : 'dimensions.width') | translate\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n [requiredIgnoreZero]=\"requiredIgnoreZero\"\n [multipleOf]=\"multipleOf\"\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredWidth\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n <elder-quantity-input fxFlex\n [name]=\"name + '-height'\"\n [quantityValue]=\"heightValue\"\n (quantityValueChange)=\"onHeightValueChanged($event)\"\n [unit]=\"unit\"\n class=\"elder-form-field-small\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderHeight ? placeholderHeight : 'dimensions.height') | translate\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n [requiredIgnoreZero]=\"requiredIgnoreZero\"\n [multipleOf]=\"multipleOf\"\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredHeight\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n</form>\n\n\n" }]
177
+ args: [{ selector: 'elder-dimensions-input', providers: buildFormIntegrationProviders(ElderDimensionsInputComponent), changeDetection: ChangeDetectionStrategy.OnPush, template: "<form #form=\"ngForm\" class=\"layout-row g-md full\">\n <elder-quantity-input [name]=\"name + '-length'\"\n [quantityValue]=\"lengthValue\"\n (quantityValueChange)=\"onLengthValueChanged($event)\"\n [unit]=\"unit\"\n class=\"flex elder-form-field-small\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderLength ? placeholderLength : 'dimensions.length') | translate\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n [requiredIgnoreZero]=\"requiredIgnoreZero\"\n [multipleOf]=\"multipleOf\"\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredLength\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n <elder-quantity-input [name]=\"name + '-width'\"\n [quantityValue]=\"widthValue\"\n (quantityValueChange)=\"onWidthValueChanged($event)\"\n [unit]=\"unit\"\n class=\"flex elder-form-field-small\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderWidth ? placeholderWidth : 'dimensions.width') | translate\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n [requiredIgnoreZero]=\"requiredIgnoreZero\"\n [multipleOf]=\"multipleOf\"\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredWidth\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n <elder-quantity-input [name]=\"name + '-height'\"\n [quantityValue]=\"heightValue\"\n (quantityValueChange)=\"onHeightValueChanged($event)\"\n [unit]=\"unit\"\n class=\"flex elder-form-field-small\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderHeight ? placeholderHeight : 'dimensions.height') | translate\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n [requiredIgnoreZero]=\"requiredIgnoreZero\"\n [multipleOf]=\"multipleOf\"\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredHeight\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n</form>\n\n\n" }]
187
178
  }], ctorParameters: function () { return []; }, propDecorators: { name: [{
188
179
  type: Input
189
180
  }], appearance: [{
@@ -196,8 +187,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
196
187
  type: Input
197
188
  }], placeholderHeight: [{
198
189
  type: Input
199
- }], fxLayout: [{
200
- type: Input
201
190
  }], fxLayoutGap: [{
202
191
  type: Input
203
192
  }], floatLabel: [{
@@ -237,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
237
226
  }], heightValue: [{
238
227
  type: Input
239
228
  }] } });
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL21lYXN1cmVzL2RpbWVuc2lvbnMtaW5wdXQvZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL21lYXN1cmVzL2RpbWVuc2lvbnMtaW5wdXQvZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFDLDZCQUE2QixFQUFFLHdCQUF3QixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDekgsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUvQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztBQVU1RCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsd0JBQW9DO0lBd0VyRjs7OztnRkFJNEU7SUFFNUU7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQTdFVjs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5RCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLG9CQUFlLEdB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QUFDOzsySEE1UlUsNkJBQTZCOytHQUE3Qiw2QkFBNkIsMHlCQUg3Qiw2QkFBNkIsQ0FBQyw2QkFBNkIsQ0FBQyxpRENmekUsMndHQXVFQTs0RkRyRGEsNkJBQTZCO2tCQVB6QyxTQUFTOytCQUNFLHdCQUF3QixhQUd2Qiw2QkFBNkIsK0JBQStCLG1CQUN0RCx1QkFBdUIsQ0FBQyxNQUFNOzBFQWtCeEMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBSUMsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQVFDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBSUMsR0FBRztzQkFEVCxLQUFLO2dCQUlDLEdBQUc7c0JBRFQsS0FBSztnQkFRQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBT0MsVUFBVTtzQkFEaEIsS0FBSztnQkFRQyxhQUFhO3NCQURuQixLQUFLO2dCQXFDSyxjQUFjO3NCQUR4QixLQUFLO2dCQVVLLGFBQWE7c0JBRHZCLEtBQUs7Z0JBVUssY0FBYztzQkFEeEIsS0FBSztnQkFVSyxRQUFRO3NCQURsQixLQUFLO2dCQVVLLFVBQVU7c0JBRHBCLE1BQU07Z0JBWUksSUFBSTtzQkFEZCxLQUFLO2dCQVdLLGlCQUFpQjtzQkFEM0IsTUFBTTtnQkFZSSxXQUFXO3NCQURyQixLQUFLO2dCQVNLLGdCQUFnQjtzQkFEMUIsTUFBTTtnQkFZSSxVQUFVO3NCQURwQixLQUFLO2dCQVNLLGlCQUFpQjtzQkFEM0IsTUFBTTtnQkFZSSxXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtidWlsZEZvcm1JbnRlZ3JhdGlvblByb3ZpZGVycywgVGVtcGxhdGVDb21wb3NpdGVDb250cm9sfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZm9ybXMvdGVtcGxhdGUtY29tcG9zaXRlLWNvbnRyb2wnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0Zsb2F0TGFiZWxUeXBlLCBNYXRGb3JtRmllbGRBcHBlYXJhbmNlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7RGltZW5zaW9uc30gZnJvbSAnLi4vbW9kZWwvZGltZW5zaW9ucyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VW5pdH0gZnJvbSAnLi4vbW9kZWwvdW5pdCc7XG5pbXBvcnQge2NvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7VGhlbWVQYWxldHRlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItZGltZW5zaW9ucy1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1kaW1lbnNpb25zLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IGJ1aWxkRm9ybUludGVncmF0aW9uUHJvdmlkZXJzKEVsZGVyRGltZW5zaW9uc0lucHV0Q29tcG9uZW50KSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJEaW1lbnNpb25zSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBUZW1wbGF0ZUNvbXBvc2l0ZUNvbnRyb2w8RGltZW5zaW9ucz4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIF9yZWFkb25seSA9IGZhbHNlO1xuICBwcml2YXRlIF9yZXF1aXJlZExlbmd0aCA9IGZhbHNlO1xuICBwcml2YXRlIF9yZXF1aXJlZFdpZHRoID0gZmFsc2U7XG4gIHByaXZhdGUgX3JlcXVpcmVkSGVpZ2h0ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG5hbWU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXBwZWFyYW5jZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29sb3I6IFRoZW1lUGFsZXR0ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGxhY2Vob2xkZXJMZW5ndGg6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGxhY2Vob2xkZXJXaWR0aDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwbGFjZWhvbGRlckhlaWdodDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmeExheW91dDogJ2NvbHVtbicgfCAncm93JyA9ICdyb3cnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmeExheW91dEdhcDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBsYWJlbCBzaG91bGQgYWx3YXlzIGZsb2F0ICgnYWx3YXlzJyksIG5ldmVyIGZsb2F0ICgnbmV2ZXInKVxuICAgKiBvciBmbG9hdCBhcyB0aGUgdXNlciB0eXBlcyAoJ2F1dG8nKS4gRGVmYXVsdHMgdG8gJ2F1dG8nLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGZsb2F0TGFiZWw6IEZsb2F0TGFiZWxUeXBlID0gJ2F1dG8nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaW46IHN0cmluZyB8IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4OiBzdHJpbmcgfCBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdlYXRoZXIgdGhlIG51bWJlciAwIHNob3VsZCByZXN1bHQgaW4gdmFsaWQgJ3JlcXVpcmVkJyB2YWxpZGF0aW9uIG9yIG5vdC5cbiAgICogSWYgdHJ1ZSwgdGhlIG51bWJlciAwIHdpbGwgYmUgaWdub3JlZCBhcyBpbnB1dCB3aGVuIHRoZSAncmVxdWlyZWQnIGRpcmVjdGl2ZSBpcyBhY3RpdmUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVxdWlyZWRJZ25vcmVaZXJvID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIE9ubHkgYWxsb3cgYSBtdWx0aXBsZSBvZiB0aGUgZ2l2ZW4gbnVtYmVyIHRvIGJlIGEgdmFsaWQgcXVhbnRpdHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbXVsdGlwbGVPZjogbnVtYmVyIHwgbnVtYmVyW10gPSBudWxsO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IGZvcm1hdCBmb3IgdGhlIHF1YW50aXR5IHZhbHVlOlxuICAgKiB7bWluSW50ZWdlckRpZ2l0c30ue21pbkZyYWN0aW9uRGlnaXRzfS17bWF4RnJhY3Rpb25EaWdpdHN9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzcGxheUZvcm1hdDogc3RyaW5nID0gbnVsbDtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGZ4TGF5b3V0R2FwSW50ZXJuYWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5meExheW91dEdhcFxuICAgICAgPyB0aGlzLmZ4TGF5b3V0R2FwXG4gICAgICA6IHRoaXMuZnhMYXlvdXQgPT09ICdyb3cnXG4gICAgICAgID8gJzEycHgnXG4gICAgICAgIDogJzBweCc7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkTGVuZ3RoKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVxdWlyZWRMZW5ndGggPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCByZXF1aXJlZExlbmd0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWRMZW5ndGg7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkV2lkdGgodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZFdpZHRoID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWRXaWR0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWRXaWR0aDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWRIZWlnaHQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZEhlaWdodCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkSGVpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZEhlaWdodDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcmVhZG9ubHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZWFkb25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZWFkb25seTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IHVuaXRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxVbml0IHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICBtYXAoZCA9PiBkPy51bml0KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHVuaXQoKTogVW5pdCB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU/LnVuaXQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHVuaXQodW5pdDogVW5pdCkge1xuICAgIHRoaXMudmFsdWUgPSBEaW1lbnNpb25zLmZyb20oXG4gICAgICB1bml0LFxuICAgICAgdGhpcy52YWx1ZT8ubGVuZ3RoLFxuICAgICAgdGhpcy52YWx1ZT8ud2lkdGgsXG4gICAgICB0aGlzLnZhbHVlPy5oZWlnaHRcbiAgICApO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgbGVuZ3RoVmFsdWVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcChkID0+IGQ/Lmxlbmd0aClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBsZW5ndGhWYWx1ZSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZT8ubGVuZ3RoO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBsZW5ndGhWYWx1ZShsZW5ndGhWYWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgIGlmIChsZW5ndGhWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuZGltZW5zaW9uc09mTGVuZ3RoKGxlbmd0aFZhbHVlKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IHdpZHRoVmFsdWVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcChkID0+IGQ/LndpZHRoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHdpZHRoVmFsdWUoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU/LndpZHRoO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB3aWR0aFZhbHVlKHdpZHRoVmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAod2lkdGhWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuZGltZW5zaW9uc09mV2lkdGgod2lkdGhWYWx1ZSk7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBoZWlnaHRWYWx1ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUNoYW5nZS5waXBlKFxuICAgICAgbWFwKGQgPT4gZD8uaGVpZ2h0KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhlaWdodFZhbHVlKCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnZhbHVlPy5oZWlnaHQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGhlaWdodFZhbHVlKGhlaWdodFZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKGhlaWdodFZhbHVlID09PSBudWxsKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0gdGhpcy5kaW1lbnNpb25zT2ZIZWlnaHQoaGVpZ2h0VmFsdWUpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG9uTGVuZ3RoVmFsdWVDaGFuZ2VkKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuZGltZW5zaW9uc09mTGVuZ3RoKHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgb25XaWR0aFZhbHVlQ2hhbmdlZCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmRpbWVuc2lvbnNPZldpZHRoKHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgb25IZWlnaHRWYWx1ZUNoYW5nZWQodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5kaW1lbnNpb25zT2ZIZWlnaHQodmFsdWUpKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm90ZWN0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCB2YWx1ZXNFcXVhbHMoYTogRGltZW5zaW9ucywgYjogRGltZW5zaW9ucyk6IGJvb2xlYW4ge1xuICAgIGlmIChhID09PSBiKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGE/Lmxlbmd0aCA9PT0gYj8ubGVuZ3RoXG4gICAgICAmJiBhPy53aWR0aCA9PT0gYj8ud2lkdGhcbiAgICAgICYmIGE/LmhlaWdodCA9PT0gYj8uaGVpZ2h0XG4gICAgICAmJiBhPy51bml0ID09PSBiPy51bml0O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBkaW1lbnNpb25zT2ZMZW5ndGgodmFsdWU6IG51bWJlcikge1xuICAgIHJldHVybiBEaW1lbnNpb25zLmZyb20oXG4gICAgICB0aGlzLnVuaXQsXG4gICAgICB2YWx1ZSxcbiAgICAgIHRoaXMud2lkdGhWYWx1ZSxcbiAgICAgIHRoaXMuaGVpZ2h0VmFsdWVcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBkaW1lbnNpb25zT2ZXaWR0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIERpbWVuc2lvbnMuZnJvbShcbiAgICAgIHRoaXMudW5pdCxcbiAgICAgIHRoaXMubGVuZ3RoVmFsdWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIHRoaXMuaGVpZ2h0VmFsdWVcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBkaW1lbnNpb25zT2ZIZWlnaHQodmFsdWU6IG51bWJlcikge1xuICAgIHJldHVybiBEaW1lbnNpb25zLmZyb20oXG4gICAgICB0aGlzLnVuaXQsXG4gICAgICB0aGlzLmxlbmd0aFZhbHVlLFxuICAgICAgdGhpcy53aWR0aFZhbHVlLFxuICAgICAgdmFsdWVcbiAgICApO1xuICB9XG5cblxuXG59XG4iLCJcbjxmb3JtICNmb3JtPVwibmdGb3JtXCIgZnhGbGV4XG4gICAgICBbZnhMYXlvdXRdPVwiZnhMYXlvdXRcIlxuICAgICAgW2Z4TGF5b3V0R2FwXT1cImZ4TGF5b3V0R2FwSW50ZXJuYWxcIj5cblxuICAgIDxlbGRlci1xdWFudGl0eS1pbnB1dCBmeEZsZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZSArICctbGVuZ3RoJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWFudGl0eVZhbHVlXT1cImxlbmd0aFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHF1YW50aXR5VmFsdWVDaGFuZ2UpPVwib25MZW5ndGhWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt1bml0XT1cInVuaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLWZvcm0tZmllbGQtc21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheUZvcm1hdF09XCJkaXNwbGF5Rm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIihwbGFjZWhvbGRlckxlbmd0aCA/IHBsYWNlaG9sZGVyTGVuZ3RoIDogJ2RpbWVuc2lvbnMubGVuZ3RoJykgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZElnbm9yZVplcm9dPVwicmVxdWlyZWRJZ25vcmVaZXJvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpcGxlT2ZdPVwibXVsdGlwbGVPZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJtYXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRMZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgID5cbiAgICA8L2VsZGVyLXF1YW50aXR5LWlucHV0PlxuXG4gICAgPGVsZGVyLXF1YW50aXR5LWlucHV0IGZ4RmxleFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lICsgJy13aWR0aCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVhbnRpdHlWYWx1ZV09XCJ3aWR0aFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHF1YW50aXR5VmFsdWVDaGFuZ2UpPVwib25XaWR0aFZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3VuaXRdPVwidW5pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItZm9ybS1maWVsZC1zbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5Rm9ybWF0XT1cImRpc3BsYXlGb3JtYXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiKHBsYWNlaG9sZGVyV2lkdGggPyBwbGFjZWhvbGRlcldpZHRoIDogJ2RpbWVuc2lvbnMud2lkdGgnKSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkSWdub3JlWmVyb109XCJyZXF1aXJlZElnbm9yZVplcm9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVPZl09XCJtdWx0aXBsZU9mXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFdpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICA+XG4gICAgPC9lbGRlci1xdWFudGl0eS1pbnB1dD5cblxuICAgIDxlbGRlci1xdWFudGl0eS1pbnB1dCBmeEZsZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZSArICctaGVpZ2h0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWFudGl0eVZhbHVlXT1cImhlaWdodFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHF1YW50aXR5VmFsdWVDaGFuZ2UpPVwib25IZWlnaHRWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt1bml0XT1cInVuaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLWZvcm0tZmllbGQtc21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheUZvcm1hdF09XCJkaXNwbGF5Rm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIihwbGFjZWhvbGRlckhlaWdodCA/IHBsYWNlaG9sZGVySGVpZ2h0IDogJ2RpbWVuc2lvbnMuaGVpZ2h0JykgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZElnbm9yZVplcm9dPVwicmVxdWlyZWRJZ25vcmVaZXJvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpcGxlT2ZdPVwibXVsdGlwbGVPZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJtYXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgID5cbiAgICA8L2VsZGVyLXF1YW50aXR5LWlucHV0PlxuXG48L2Zvcm0+XG5cblxuIl19
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL21lYXN1cmVzL2RpbWVuc2lvbnMtaW5wdXQvZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL21lYXN1cmVzL2RpbWVuc2lvbnMtaW5wdXQvZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFDLDZCQUE2QixFQUFFLHdCQUF3QixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDekgsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUvQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBVTVELE1BQU0sT0FBTyw2QkFBOEIsU0FBUSx3QkFBb0M7SUFxRXJGOzs7O2dGQUk0RTtJQUU1RTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBMUVWOzs7O29GQUk0RTtRQUUzRCxRQUFHLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTlELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsb0JBQWUsR0FB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RGhCLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBSUMsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBUUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxHQUFHO3NCQURULEtBQUs7Z0JBSUMsR0FBRztzQkFEVCxLQUFLO2dCQVFDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFPQyxVQUFVO3NCQURoQixLQUFLO2dCQVFDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBNkJLLGNBQWM7c0JBRHhCLEtBQUs7Z0JBVUssYUFBYTtzQkFEdkIsS0FBSztnQkFVSyxjQUFjO3NCQUR4QixLQUFLO2dCQVVLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBVUssVUFBVTtzQkFEcEIsTUFBTTtnQkFZSSxJQUFJO3NCQURkLEtBQUs7Z0JBV0ssaUJBQWlCO3NCQUQzQixNQUFNO2dCQVlJLFdBQVc7c0JBRHJCLEtBQUs7Z0JBU0ssZ0JBQWdCO3NCQUQxQixNQUFNO2dCQVlJLFVBQVU7c0JBRHBCLEtBQUs7Z0JBU0ssaUJBQWlCO3NCQUQzQixNQUFNO2dCQVlJLFdBQVc7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2J1aWxkRm9ybUludGVncmF0aW9uUHJvdmlkZXJzLCBUZW1wbGF0ZUNvbXBvc2l0ZUNvbnRyb2x9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy90ZW1wbGF0ZS1jb21wb3NpdGUtY29udHJvbCc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7RmxvYXRMYWJlbFR5cGUsIE1hdEZvcm1GaWVsZEFwcGVhcmFuY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtEaW1lbnNpb25zfSBmcm9tICcuLi9tb2RlbC9kaW1lbnNpb25zJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtVbml0fSBmcm9tICcuLi9tb2RlbC91bml0JztcbmltcG9ydCB7Y29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtUaGVtZVBhbGV0dGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1kaW1lbnNpb25zLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLWRpbWVuc2lvbnMtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1kaW1lbnNpb25zLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogYnVpbGRGb3JtSW50ZWdyYXRpb25Qcm92aWRlcnMoRWxkZXJEaW1lbnNpb25zSW5wdXRDb21wb25lbnQpLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckRpbWVuc2lvbnNJbnB1dENvbXBvbmVudCBleHRlbmRzIFRlbXBsYXRlQ29tcG9zaXRlQ29udHJvbDxEaW1lbnNpb25zPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgX3JlYWRvbmx5ID0gZmFsc2U7XG4gIHByaXZhdGUgX3JlcXVpcmVkTGVuZ3RoID0gZmFsc2U7XG4gIHByaXZhdGUgX3JlcXVpcmVkV2lkdGggPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVxdWlyZWRIZWlnaHQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcHBlYXJhbmNlOiBNYXRGb3JtRmllbGRBcHBlYXJhbmNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb2xvcjogVGhlbWVQYWxldHRlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwbGFjZWhvbGRlckxlbmd0aDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwbGFjZWhvbGRlcldpZHRoOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBsYWNlaG9sZGVySGVpZ2h0OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZ4TGF5b3V0R2FwOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGxhYmVsIHNob3VsZCBhbHdheXMgZmxvYXQgKCdhbHdheXMnKSwgbmV2ZXIgZmxvYXQgKCduZXZlcicpXG4gICAqIG9yIGZsb2F0IGFzIHRoZSB1c2VyIHR5cGVzICgnYXV0bycpLiBEZWZhdWx0cyB0byAnYXV0bycuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZmxvYXRMYWJlbDogRmxvYXRMYWJlbFR5cGUgPSAnYXV0byc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1pbjogc3RyaW5nIHwgbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXg6IHN0cmluZyB8IG51bWJlcjtcblxuICAvKipcbiAgICogV2VhdGhlciB0aGUgbnVtYmVyIDAgc2hvdWxkIHJlc3VsdCBpbiB2YWxpZCAncmVxdWlyZWQnIHZhbGlkYXRpb24gb3Igbm90LlxuICAgKiBJZiB0cnVlLCB0aGUgbnVtYmVyIDAgd2lsbCBiZSBpZ25vcmVkIGFzIGlucHV0IHdoZW4gdGhlICdyZXF1aXJlZCcgZGlyZWN0aXZlIGlzIGFjdGl2ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXF1aXJlZElnbm9yZVplcm8gPSBmYWxzZTtcblxuICAvKipcbiAgICogT25seSBhbGxvdyBhIG11bHRpcGxlIG9mIHRoZSBnaXZlbiBudW1iZXIgdG8gYmUgYSB2YWxpZCBxdWFudGl0eS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtdWx0aXBsZU9mOiBudW1iZXIgfCBudW1iZXJbXSA9IG51bGw7XG5cbiAgLyoqXG4gICAqIERpc3BsYXkgZm9ybWF0IGZvciB0aGUgcXVhbnRpdHkgdmFsdWU6XG4gICAqIHttaW5JbnRlZ2VyRGlnaXRzfS57bWluRnJhY3Rpb25EaWdpdHN9LXttYXhGcmFjdGlvbkRpZ2l0c31cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNwbGF5Rm9ybWF0OiBzdHJpbmcgPSBudWxsO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWRMZW5ndGgodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZExlbmd0aCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkTGVuZ3RoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZExlbmd0aDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWRXaWR0aCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkV2lkdGggPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCByZXF1aXJlZFdpZHRoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZFdpZHRoO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByZXF1aXJlZEhlaWdodCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkSGVpZ2h0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWRIZWlnaHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkSGVpZ2h0O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByZWFkb25seSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlYWRvbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgdW5pdENoYW5nZSgpOiBPYnNlcnZhYmxlPFVuaXQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcChkID0+IGQ/LnVuaXQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdW5pdCgpOiBVbml0IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZT8udW5pdDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdW5pdCh1bml0OiBVbml0KSB7XG4gICAgdGhpcy52YWx1ZSA9IERpbWVuc2lvbnMuZnJvbShcbiAgICAgIHVuaXQsXG4gICAgICB0aGlzLnZhbHVlPy5sZW5ndGgsXG4gICAgICB0aGlzLnZhbHVlPy53aWR0aCxcbiAgICAgIHRoaXMudmFsdWU/LmhlaWdodFxuICAgICk7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBsZW5ndGhWYWx1ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUNoYW5nZS5waXBlKFxuICAgICAgbWFwKGQgPT4gZD8ubGVuZ3RoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxlbmd0aFZhbHVlKCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnZhbHVlPy5sZW5ndGg7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGxlbmd0aFZhbHVlKGxlbmd0aFZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKGxlbmd0aFZhbHVlID09PSBudWxsKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0gdGhpcy5kaW1lbnNpb25zT2ZMZW5ndGgobGVuZ3RoVmFsdWUpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgd2lkdGhWYWx1ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUNoYW5nZS5waXBlKFxuICAgICAgbWFwKGQgPT4gZD8ud2lkdGgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgd2lkdGhWYWx1ZSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZT8ud2lkdGg7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHdpZHRoVmFsdWUod2lkdGhWYWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgIGlmICh3aWR0aFZhbHVlID09PSBudWxsKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0gdGhpcy5kaW1lbnNpb25zT2ZXaWR0aCh3aWR0aFZhbHVlKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGhlaWdodFZhbHVlQ2hhbmdlKCk6IE9ic2VydmFibGU8bnVtYmVyIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICBtYXAoZCA9PiBkPy5oZWlnaHQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGVpZ2h0VmFsdWUoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU/LmhlaWdodDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaGVpZ2h0VmFsdWUoaGVpZ2h0VmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAoaGVpZ2h0VmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSB0aGlzLmRpbWVuc2lvbnNPZkhlaWdodChoZWlnaHRWYWx1ZSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgb25MZW5ndGhWYWx1ZUNoYW5nZWQodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5kaW1lbnNpb25zT2ZMZW5ndGgodmFsdWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBvbldpZHRoVmFsdWVDaGFuZ2VkKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuZGltZW5zaW9uc09mV2lkdGgodmFsdWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkhlaWdodFZhbHVlQ2hhbmdlZCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmRpbWVuc2lvbnNPZkhlaWdodCh2YWx1ZSkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3RlY3RlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIHZhbHVlc0VxdWFscyhhOiBEaW1lbnNpb25zLCBiOiBEaW1lbnNpb25zKTogYm9vbGVhbiB7XG4gICAgaWYgKGEgPT09IGIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gYT8ubGVuZ3RoID09PSBiPy5sZW5ndGhcbiAgICAgICYmIGE/LndpZHRoID09PSBiPy53aWR0aFxuICAgICAgJiYgYT8uaGVpZ2h0ID09PSBiPy5oZWlnaHRcbiAgICAgICYmIGE/LnVuaXQgPT09IGI/LnVuaXQ7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGRpbWVuc2lvbnNPZkxlbmd0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIERpbWVuc2lvbnMuZnJvbShcbiAgICAgIHRoaXMudW5pdCxcbiAgICAgIHZhbHVlLFxuICAgICAgdGhpcy53aWR0aFZhbHVlLFxuICAgICAgdGhpcy5oZWlnaHRWYWx1ZVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGRpbWVuc2lvbnNPZldpZHRoKHZhbHVlOiBudW1iZXIpIHtcbiAgICByZXR1cm4gRGltZW5zaW9ucy5mcm9tKFxuICAgICAgdGhpcy51bml0LFxuICAgICAgdGhpcy5sZW5ndGhWYWx1ZSxcbiAgICAgIHZhbHVlLFxuICAgICAgdGhpcy5oZWlnaHRWYWx1ZVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGRpbWVuc2lvbnNPZkhlaWdodCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIERpbWVuc2lvbnMuZnJvbShcbiAgICAgIHRoaXMudW5pdCxcbiAgICAgIHRoaXMubGVuZ3RoVmFsdWUsXG4gICAgICB0aGlzLndpZHRoVmFsdWUsXG4gICAgICB2YWx1ZVxuICAgICk7XG4gIH1cbn1cbiIsIjxmb3JtICNmb3JtPVwibmdGb3JtXCIgY2xhc3M9XCJsYXlvdXQtcm93IGctbWQgZnVsbFwiPlxuICAgIDxlbGRlci1xdWFudGl0eS1pbnB1dCBbbmFtZV09XCJuYW1lICsgJy1sZW5ndGgnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3F1YW50aXR5VmFsdWVdPVwibGVuZ3RoVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAocXVhbnRpdHlWYWx1ZUNoYW5nZSk9XCJvbkxlbmd0aFZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3VuaXRdPVwidW5pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBlbGRlci1mb3JtLWZpZWxkLXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlGb3JtYXRdPVwiZGlzcGxheUZvcm1hdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXJMZW5ndGggPyBwbGFjZWhvbGRlckxlbmd0aCA6ICdkaW1lbnNpb25zLmxlbmd0aCcpIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRJZ25vcmVaZXJvXT1cInJlcXVpcmVkSWdub3JlWmVyb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZU9mXT1cIm11bHRpcGxlT2ZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkTGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICA+XG4gICAgPC9lbGRlci1xdWFudGl0eS1pbnB1dD5cblxuICAgIDxlbGRlci1xdWFudGl0eS1pbnB1dCBbbmFtZV09XCJuYW1lICsgJy13aWR0aCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVhbnRpdHlWYWx1ZV09XCJ3aWR0aFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHF1YW50aXR5VmFsdWVDaGFuZ2UpPVwib25XaWR0aFZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3VuaXRdPVwidW5pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBlbGRlci1mb3JtLWZpZWxkLXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlGb3JtYXRdPVwiZGlzcGxheUZvcm1hdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXJXaWR0aCA/IHBsYWNlaG9sZGVyV2lkdGggOiAnZGltZW5zaW9ucy53aWR0aCcpIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRJZ25vcmVaZXJvXT1cInJlcXVpcmVkSWdub3JlWmVyb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZU9mXT1cIm11bHRpcGxlT2ZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgID5cbiAgICA8L2VsZGVyLXF1YW50aXR5LWlucHV0PlxuXG4gICAgPGVsZGVyLXF1YW50aXR5LWlucHV0IFtuYW1lXT1cIm5hbWUgKyAnLWhlaWdodCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVhbnRpdHlWYWx1ZV09XCJoZWlnaHRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChxdWFudGl0eVZhbHVlQ2hhbmdlKT1cIm9uSGVpZ2h0VmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdW5pdF09XCJ1bml0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGVsZGVyLWZvcm0tZmllbGQtc21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheUZvcm1hdF09XCJkaXNwbGF5Rm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIihwbGFjZWhvbGRlckhlaWdodCA/IHBsYWNlaG9sZGVySGVpZ2h0IDogJ2RpbWVuc2lvbnMuaGVpZ2h0JykgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZElnbm9yZVplcm9dPVwicmVxdWlyZWRJZ25vcmVaZXJvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpcGxlT2ZdPVwibXVsdGlwbGVPZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJtYXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgID5cbiAgICA8L2VsZGVyLXF1YW50aXR5LWlucHV0PlxuXG48L2Zvcm0+XG5cblxuIl19
@@ -2,7 +2,6 @@ import { NgModule } from '@angular/core';
2
2
  import { CommonModule, DecimalPipe } from '@angular/common';
3
3
  import { MatIconModule } from '@angular/material/icon';
4
4
  import { MatInputModule } from '@angular/material/input';
5
- import { FlexLayoutModule } from '@angular/flex-layout';
6
5
  import { FormsModule } from '@angular/forms';
7
6
  import { RouterModule } from '@angular/router';
8
7
  import { TranslateModule } from '@ngx-translate/core';
@@ -32,7 +31,6 @@ ElderMeasuresModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
32
31
  RouterModule,
33
32
  FormsModule,
34
33
  // Third Party
35
- FlexLayoutModule,
36
34
  TranslateModule,
37
35
  // Angular Material
38
36
  MatIconModule,
@@ -53,7 +51,6 @@ ElderMeasuresModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
53
51
  RouterModule,
54
52
  FormsModule,
55
53
  // Third Party
56
- FlexLayoutModule,
57
54
  TranslateModule,
58
55
  // Angular Material
59
56
  MatIconModule,
@@ -69,7 +66,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
69
66
  RouterModule,
70
67
  FormsModule,
71
68
  // Third Party
72
- FlexLayoutModule,
73
69
  TranslateModule,
74
70
  // Angular Material
75
71
  MatIconModule,
@@ -117,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
117
113
  ],
118
114
  }]
119
115
  }] });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbWVhc3VyZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9tZWFzdXJlcy9lbGRlci1tZWFzdXJlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFFLFdBQVcsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scURBQXFELENBQUM7O0FBRXBHLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHFEQUFxRCxDQUFDO0FBMENwRSxNQUFNLE9BQU8sbUJBQW1COztpSEFBbkIsbUJBQW1CO2tIQUFuQixtQkFBbUIsaUJBbkI1QiwyQkFBMkI7UUFDM0IsaUJBQWlCO1FBQ2pCLDBCQUEwQjtRQUMxQix3QkFBd0I7UUFDeEIsNkJBQTZCO1FBdEI3QixVQUFVO1FBQ1YsWUFBWTtRQUNaLFlBQVk7UUFDWixXQUFXO1FBRVgsY0FBYztRQUNkLGdCQUFnQjtRQUNoQixlQUFlO1FBRWYsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixjQUFjO1FBRWQsWUFBWTtRQUNaLDBCQUEwQixhQVcxQiwyQkFBMkI7UUFDM0IsaUJBQWlCO1FBQ2pCLDBCQUEwQjtRQUMxQix3QkFBd0I7UUFDeEIsNkJBQTZCO2tIQVFwQixtQkFBbUIsYUFObkI7UUFDVCxXQUFXO1FBQ1gsaUJBQWlCO1FBQ2pCLDBCQUEwQjtLQUMzQjtRQW5DQyxVQUFVO1FBQ1YsWUFBWTtRQUNaLFlBQVk7UUFDWixXQUFXO1FBRVgsY0FBYztRQUNkLGdCQUFnQjtRQUNoQixlQUFlO1FBRWYsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixjQUFjO1FBRWQsWUFBWTtRQUNaLDBCQUEwQjs0RkF1QmpCLG1CQUFtQjtrQkF4Qy9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUVQLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFdBQVc7d0JBRVgsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBRWYsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGNBQWM7d0JBRWQsWUFBWTt3QkFDWiwwQkFBMEI7cUJBRTNCO29CQUNELFlBQVksRUFBRTt3QkFDWiwyQkFBMkI7d0JBQzNCLGlCQUFpQjt3QkFDakIsMEJBQTBCO3dCQUMxQix3QkFBd0I7d0JBQ3hCLDZCQUE2QjtxQkFDOUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDJCQUEyQjt3QkFDM0IsaUJBQWlCO3dCQUNqQiwwQkFBMEI7d0JBQzFCLHdCQUF3Qjt3QkFDeEIsNkJBQTZCO3FCQUM5QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLDBCQUEwQjtxQkFDM0I7aUJBQ0Y7O0FBSUQ7O0dBRUc7QUFTSCxNQUFNLE9BQU8sbUJBQW1COztpSEFBbkIsbUJBQW1CO2tIQUFuQixtQkFBbUIsWUFkbkIsbUJBQW1CLGFBQW5CLG1CQUFtQjtrSEFjbkIsbUJBQW1CLFlBTjVCLG1CQUFtQixFQVJWLG1CQUFtQjs0RkFjbkIsbUJBQW1CO2tCQVIvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxtQkFBbUI7cUJBQ3BCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZSwgRGVjaW1hbFBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtNYXRJbnB1dE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHtGbGV4TGF5b3V0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RWxkZXJRdWFudGl0eUlucHV0Q29tcG9uZW50fSBmcm9tICcuL3F1YW50aXR5LWlucHV0L2VsZGVyLXF1YW50aXR5LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge0VsZGVyUXVhbnRpdHlQaXBlfSBmcm9tICcuL2VsZGVyLXF1YW50aXR5LnBpcGUnO1xuaW1wb3J0IHtFbGRlckZvcm1zRGlyZWN0aXZlc01vZHVsZX0gZnJvbSAnLi4vZm9ybXMvZGlyZWN0aXZlcy9lbGRlci1mb3Jtcy1kaXJlY3RpdmVzLm1vZHVsZSc7XG5pbXBvcnQge0VsZGVyUXVhbnRpdHlUcmFuc2Zvcm1QaXBlfSBmcm9tICcuL2VsZGVyLXF1YW50aXR5LXRyYW5zZm9ybS5waXBlJztcbmltcG9ydCB7RWxkZXJVbml0U2VsZWN0RGlyZWN0aXZlfSBmcm9tICcuL2RpcmVjdGl2ZXMvZWxkZXItdW5pdC1zZWxlY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVsZGVyRGltZW5zaW9uc0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9kaW1lbnNpb25zLWlucHV0L2VsZGVyLWRpbWVuc2lvbnMtaW5wdXQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9lbGRlci1xdWFudGl0eS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZWxkZXItcXVhbnRpdHktdHJhbnNmb3JtLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWFudGl0eS1pbnB1dC9lbGRlci1xdWFudGl0eS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGRlci11bml0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2VsZGVyLXVuaXQtc2VsZWN0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpbWVuc2lvbnMtaW5wdXQvZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG5cbiAgICAvLyBBbmd1bGFyXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcblxuICAgIC8vIFRoaXJkIFBhcnR5XG4gICAgRmxleExheW91dE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG5cbiAgICAvLyBBbmd1bGFyIE1hdGVyaWFsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcblxuICAgIC8vIEVsZGVyQnl0ZVxuICAgIEVsZGVyRm9ybXNEaXJlY3RpdmVzTW9kdWxlXG5cbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRWxkZXJRdWFudGl0eUlucHV0Q29tcG9uZW50LFxuICAgIEVsZGVyUXVhbnRpdHlQaXBlLFxuICAgIEVsZGVyUXVhbnRpdHlUcmFuc2Zvcm1QaXBlLFxuICAgIEVsZGVyVW5pdFNlbGVjdERpcmVjdGl2ZSxcbiAgICBFbGRlckRpbWVuc2lvbnNJbnB1dENvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRWxkZXJRdWFudGl0eUlucHV0Q29tcG9uZW50LFxuICAgIEVsZGVyUXVhbnRpdHlQaXBlLFxuICAgIEVsZGVyUXVhbnRpdHlUcmFuc2Zvcm1QaXBlLFxuICAgIEVsZGVyVW5pdFNlbGVjdERpcmVjdGl2ZSxcbiAgICBFbGRlckRpbWVuc2lvbnNJbnB1dENvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBEZWNpbWFsUGlwZSxcbiAgICBFbGRlclF1YW50aXR5UGlwZSxcbiAgICBFbGRlclF1YW50aXR5VHJhbnNmb3JtUGlwZVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlck1lYXN1cmVzTW9kdWxlIHtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBQbGVhc2Ugc3dpdGNoIHRvIHRoZSBFbGRlck1lYXN1cmVzTW9kdWxlXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBFbGRlck1lYXN1cmVzTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBFbGRlck1lYXN1cmVzTW9kdWxlXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyUXVhbnRpdHlNb2R1bGUge1xufVxuIl19
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbWVhc3VyZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9tZWFzdXJlcy9lbGRlci1tZWFzdXJlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFFLFdBQVcsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scURBQXFELENBQUM7O0FBRXBHLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHFEQUFxRCxDQUFDO0FBeUNwRSxNQUFNLE9BQU8sbUJBQW1COztpSEFBbkIsbUJBQW1CO2tIQUFuQixtQkFBbUIsaUJBbkI1QiwyQkFBMkI7UUFDM0IsaUJBQWlCO1FBQ2pCLDBCQUEwQjtRQUMxQix3QkFBd0I7UUFDeEIsNkJBQTZCO1FBckI3QixVQUFVO1FBQ1YsWUFBWTtRQUNaLFlBQVk7UUFDWixXQUFXO1FBRVgsY0FBYztRQUNkLGVBQWU7UUFFZixtQkFBbUI7UUFDbkIsYUFBYTtRQUNiLGNBQWM7UUFFZCxZQUFZO1FBQ1osMEJBQTBCLGFBVzFCLDJCQUEyQjtRQUMzQixpQkFBaUI7UUFDakIsMEJBQTBCO1FBQzFCLHdCQUF3QjtRQUN4Qiw2QkFBNkI7a0hBUXBCLG1CQUFtQixhQU5uQjtRQUNULFdBQVc7UUFDWCxpQkFBaUI7UUFDakIsMEJBQTBCO0tBQzNCO1FBbENDLFVBQVU7UUFDVixZQUFZO1FBQ1osWUFBWTtRQUNaLFdBQVc7UUFFWCxjQUFjO1FBQ2QsZUFBZTtRQUVmLG1CQUFtQjtRQUNuQixhQUFhO1FBQ2IsY0FBYztRQUVkLFlBQVk7UUFDWiwwQkFBMEI7NEZBdUJqQixtQkFBbUI7a0JBdkMvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFFUCxVQUFVO3dCQUNWLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixXQUFXO3dCQUVYLGNBQWM7d0JBQ2QsZUFBZTt3QkFFZixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsY0FBYzt3QkFFZCxZQUFZO3dCQUNaLDBCQUEwQjtxQkFFM0I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLDJCQUEyQjt3QkFDM0IsaUJBQWlCO3dCQUNqQiwwQkFBMEI7d0JBQzFCLHdCQUF3Qjt3QkFDeEIsNkJBQTZCO3FCQUM5QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMkJBQTJCO3dCQUMzQixpQkFBaUI7d0JBQ2pCLDBCQUEwQjt3QkFDMUIsd0JBQXdCO3dCQUN4Qiw2QkFBNkI7cUJBQzlCO29CQUNELFNBQVMsRUFBRTt3QkFDVCxXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsMEJBQTBCO3FCQUMzQjtpQkFDRjs7QUFJRDs7R0FFRztBQVNILE1BQU0sT0FBTyxtQkFBbUI7O2lIQUFuQixtQkFBbUI7a0hBQW5CLG1CQUFtQixZQWRuQixtQkFBbUIsYUFBbkIsbUJBQW1CO2tIQWNuQixtQkFBbUIsWUFONUIsbUJBQW1CLEVBUlYsbUJBQW1COzRGQWNuQixtQkFBbUI7a0JBUi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlLCBEZWNpbWFsUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RWxkZXJRdWFudGl0eUlucHV0Q29tcG9uZW50fSBmcm9tICcuL3F1YW50aXR5LWlucHV0L2VsZGVyLXF1YW50aXR5LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge0VsZGVyUXVhbnRpdHlQaXBlfSBmcm9tICcuL2VsZGVyLXF1YW50aXR5LnBpcGUnO1xuaW1wb3J0IHtFbGRlckZvcm1zRGlyZWN0aXZlc01vZHVsZX0gZnJvbSAnLi4vZm9ybXMvZGlyZWN0aXZlcy9lbGRlci1mb3Jtcy1kaXJlY3RpdmVzLm1vZHVsZSc7XG5pbXBvcnQge0VsZGVyUXVhbnRpdHlUcmFuc2Zvcm1QaXBlfSBmcm9tICcuL2VsZGVyLXF1YW50aXR5LXRyYW5zZm9ybS5waXBlJztcbmltcG9ydCB7RWxkZXJVbml0U2VsZWN0RGlyZWN0aXZlfSBmcm9tICcuL2RpcmVjdGl2ZXMvZWxkZXItdW5pdC1zZWxlY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVsZGVyRGltZW5zaW9uc0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9kaW1lbnNpb25zLWlucHV0L2VsZGVyLWRpbWVuc2lvbnMtaW5wdXQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9lbGRlci1xdWFudGl0eS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZWxkZXItcXVhbnRpdHktdHJhbnNmb3JtLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWFudGl0eS1pbnB1dC9lbGRlci1xdWFudGl0eS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGRlci11bml0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2VsZGVyLXVuaXQtc2VsZWN0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpbWVuc2lvbnMtaW5wdXQvZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG5cbiAgICAvLyBBbmd1bGFyXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcblxuICAgIC8vIFRoaXJkIFBhcnR5XG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuXG4gICAgLy8gQW5ndWxhciBNYXRlcmlhbFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG5cbiAgICAvLyBFbGRlckJ5dGVcbiAgICBFbGRlckZvcm1zRGlyZWN0aXZlc01vZHVsZVxuXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEVsZGVyUXVhbnRpdHlJbnB1dENvbXBvbmVudCxcbiAgICBFbGRlclF1YW50aXR5UGlwZSxcbiAgICBFbGRlclF1YW50aXR5VHJhbnNmb3JtUGlwZSxcbiAgICBFbGRlclVuaXRTZWxlY3REaXJlY3RpdmUsXG4gICAgRWxkZXJEaW1lbnNpb25zSW5wdXRDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEVsZGVyUXVhbnRpdHlJbnB1dENvbXBvbmVudCxcbiAgICBFbGRlclF1YW50aXR5UGlwZSxcbiAgICBFbGRlclF1YW50aXR5VHJhbnNmb3JtUGlwZSxcbiAgICBFbGRlclVuaXRTZWxlY3REaXJlY3RpdmUsXG4gICAgRWxkZXJEaW1lbnNpb25zSW5wdXRDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRGVjaW1hbFBpcGUsXG4gICAgRWxkZXJRdWFudGl0eVBpcGUsXG4gICAgRWxkZXJRdWFudGl0eVRyYW5zZm9ybVBpcGVcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJNZWFzdXJlc01vZHVsZSB7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgUGxlYXNlIHN3aXRjaCB0byB0aGUgRWxkZXJNZWFzdXJlc01vZHVsZVxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgRWxkZXJNZWFzdXJlc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRWxkZXJNZWFzdXJlc01vZHVsZVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclF1YW50aXR5TW9kdWxlIHtcbn1cbiJdfQ==
@@ -11,16 +11,15 @@ import * as i0 from "@angular/core";
11
11
  import * as i1 from "../elder-unit.service";
12
12
  import * as i2 from "@angular/common";
13
13
  import * as i3 from "@angular/forms";
14
- import * as i4 from "@angular/flex-layout/flex";
15
- import * as i5 from "@angular/material/icon";
16
- import * as i6 from "@angular/material/form-field";
17
- import * as i7 from "@angular/material/input";
18
- import * as i8 from "../../forms/directives/elder-min.directive";
19
- import * as i9 from "../../forms/directives/elder-max.directive";
20
- import * as i10 from "../../forms/directives/elder-form-field-no-spinner.directive";
21
- import * as i11 from "../../forms/directives/validation/elder-required-ignore-zero.validator";
22
- import * as i12 from "../../forms/directives/validation/elder-multiple-of.validator";
23
- import * as i13 from "@ngx-translate/core";
14
+ import * as i4 from "@angular/material/icon";
15
+ import * as i5 from "@angular/material/form-field";
16
+ import * as i6 from "@angular/material/input";
17
+ import * as i7 from "../../forms/directives/elder-min.directive";
18
+ import * as i8 from "../../forms/directives/elder-max.directive";
19
+ import * as i9 from "../../forms/directives/elder-form-field-no-spinner.directive";
20
+ import * as i10 from "../../forms/directives/validation/elder-required-ignore-zero.validator";
21
+ import * as i11 from "../../forms/directives/validation/elder-multiple-of.validator";
22
+ import * as i12 from "@ngx-translate/core";
24
23
  export class ElderQuantityInputComponent extends FormFieldBaseComponent {
25
24
  /***************************************************************************
26
25
  * *
@@ -161,10 +160,10 @@ export class ElderQuantityInputComponent extends FormFieldBaseComponent {
161
160
  }
162
161
  }
163
162
  ElderQuantityInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderQuantityInputComponent, deps: [{ token: i1.ElderUnitService }, { token: i2.DecimalPipe }], target: i0.ɵɵFactoryTarget.Component });
164
- ElderQuantityInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ElderQuantityInputComponent, selector: "elder-quantity-input", inputs: { multipleOf: "multipleOf", displayFormat: "displayFormat", requiredIgnoreZero: "requiredIgnoreZero", quantityNumber: "quantityNumber", quantityValue: "quantityValue", unit: "unit" }, outputs: { quantityNumberChange: "quantityNumberChange", quantityValueChange: "quantityValueChange", unitChange: "unitChange" }, providers: buildFormIntegrationProviders(ElderQuantityInputComponent), viewQueries: [{ propertyName: "quantityInput", first: true, predicate: ["quantityInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "\n<mat-form-field fxFlex\n class=\"elder-std-form-field\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n\n>\n\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n\n <input matInput fxFlex elderNoSpinner class=\"elder-quantity-input\"\n type=\"number\"\n #quantityInput=\"matInput\"\n\n [name]=\"name + '-inner'\"\n [ngModel]=\"formattedValue$ | async\" #myModel=\"ngModel\"\n (ngModelChange)=\"onQuantityValueChanged($event)\"\n\n [elderRequiredIgnoreZeroValidator]=\"requiredIgnoreZero\"\n [elderMultipleOf]=\"multipleOf\"\n [placeholder]=\"(placeholder ? placeholder : 'context.quantity') | translate\"\n [min]=\"min\" [max]=\"max\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n\n >\n\n <span matPrefix *ngIf=\"showIcon && icon\">\n <mat-icon [inline]=\"true\">{{icon}}</mat-icon>\n </span>\n\n <span matSuffix>&nbsp;\n <span>{{unitSymbol$ | async}}</span>\n </span>\n\n <mat-hint *ngIf=\"showHint\" align=\"end\">\n <span *ngIf=\"hint\">{{hint}}</span>\n </mat-hint>\n\n <mat-error *ngIf=\"myModel.errors?.required\">\n {{ 'validations.required' | translate }}\n </mat-error>\n\n <mat-error *ngIf=\"myModel.errors?.min || myModel.errors?.max\">\n <span *ngIf=\"min && max\">\n >= {{min}} & <= {{max}}\n </span>\n\n <span *ngIf=\"min && !max\">\n >= {{min}}\n </span>\n\n <span *ngIf=\"!min && max\">\n <= {{max}}\n </span>\n </mat-error>\n\n <mat-error *ngIf=\"myModel.errors?.forbiddenMultiple as forbiddenMultiple\">\n {{ 'validations.multipleOf' | translate:{ multiples: forbiddenMultiple.allowed } }}\n </mat-error>\n\n</mat-form-field>\n", styles: [".elder-quantity-input{text-align:right}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i8.ElderMinDirective, selector: "[min][formControlName],[min][formControl],[min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i9.ElderMaxDirective, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i10.ElderFormFieldNoSpinnerDirective, selector: "input[elderNoSpinner]", inputs: ["elderNoSpinner"] }, { kind: "directive", type: i11.ElderRequiredIgnoreZeroValidator, selector: "[elderRequiredIgnoreZeroValidator][ngModel]", inputs: ["elderRequiredIgnoreZeroValidator", "required"] }, { kind: "directive", type: i12.ElderMultipleOfValidator, selector: "[elderMultipleOf][formControlName],[elderMultipleOf][formControl],[elderMultipleOf][ngModel]", inputs: ["elderMultipleOf"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }], viewProviders: [ViewProviders.ParentControlContainer], changeDetection: i0.ChangeDetectionStrategy.OnPush });
163
+ ElderQuantityInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ElderQuantityInputComponent, selector: "elder-quantity-input", inputs: { multipleOf: "multipleOf", displayFormat: "displayFormat", requiredIgnoreZero: "requiredIgnoreZero", quantityNumber: "quantityNumber", quantityValue: "quantityValue", unit: "unit" }, outputs: { quantityNumberChange: "quantityNumberChange", quantityValueChange: "quantityValueChange", unitChange: "unitChange" }, providers: buildFormIntegrationProviders(ElderQuantityInputComponent), viewQueries: [{ propertyName: "quantityInput", first: true, predicate: ["quantityInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "\n<mat-form-field class=\"elder-flex-control\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n\n>\n\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n\n <input matInput elderNoSpinner class=\"elder-quantity-input flex\"\n type=\"number\"\n #quantityInput=\"matInput\"\n\n [name]=\"name + '-inner'\"\n [ngModel]=\"formattedValue$ | async\" #myModel=\"ngModel\"\n (ngModelChange)=\"onQuantityValueChanged($event)\"\n\n [elderRequiredIgnoreZeroValidator]=\"requiredIgnoreZero\"\n [elderMultipleOf]=\"multipleOf\"\n [placeholder]=\"(placeholder ? placeholder : 'context.quantity') | translate\"\n [min]=\"min\" [max]=\"max\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n\n >\n\n <span matPrefix *ngIf=\"showIcon && icon\">\n <mat-icon [inline]=\"true\">{{icon}}</mat-icon>\n </span>\n\n <span matSuffix>&nbsp;\n <span>{{unitSymbol$ | async}}</span>\n </span>\n\n <mat-hint *ngIf=\"showHint\" align=\"end\">\n <span *ngIf=\"hint\">{{hint}}</span>\n </mat-hint>\n\n <mat-error *ngIf=\"myModel.errors?.required\">\n {{ 'validations.required' | translate }}\n </mat-error>\n\n <mat-error *ngIf=\"myModel.errors?.min || myModel.errors?.max\">\n <span *ngIf=\"min && max\">\n >= {{min}} & <= {{max}}\n </span>\n\n <span *ngIf=\"min && !max\">\n >= {{min}}\n </span>\n\n <span *ngIf=\"!min && max\">\n <= {{max}}\n </span>\n </mat-error>\n\n <mat-error *ngIf=\"myModel.errors?.forbiddenMultiple as forbiddenMultiple\">\n {{ 'validations.multipleOf' | translate:{ multiples: forbiddenMultiple.allowed } }}\n </mat-error>\n\n</mat-form-field>\n", styles: [".elder-quantity-input{text-align:right}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i7.ElderMinDirective, selector: "[min][formControlName],[min][formControl],[min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i8.ElderMaxDirective, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i9.ElderFormFieldNoSpinnerDirective, selector: "input[elderNoSpinner]", inputs: ["elderNoSpinner"] }, { kind: "directive", type: i10.ElderRequiredIgnoreZeroValidator, selector: "[elderRequiredIgnoreZeroValidator][ngModel]", inputs: ["elderRequiredIgnoreZeroValidator", "required"] }, { kind: "directive", type: i11.ElderMultipleOfValidator, selector: "[elderMultipleOf][formControlName],[elderMultipleOf][formControl],[elderMultipleOf][ngModel]", inputs: ["elderMultipleOf"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }], viewProviders: [ViewProviders.ParentControlContainer], changeDetection: i0.ChangeDetectionStrategy.OnPush });
165
164
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderQuantityInputComponent, decorators: [{
166
165
  type: Component,
167
- args: [{ selector: 'elder-quantity-input', providers: buildFormIntegrationProviders(ElderQuantityInputComponent), changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [ViewProviders.ParentControlContainer], template: "\n<mat-form-field fxFlex\n class=\"elder-std-form-field\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n\n>\n\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n\n <input matInput fxFlex elderNoSpinner class=\"elder-quantity-input\"\n type=\"number\"\n #quantityInput=\"matInput\"\n\n [name]=\"name + '-inner'\"\n [ngModel]=\"formattedValue$ | async\" #myModel=\"ngModel\"\n (ngModelChange)=\"onQuantityValueChanged($event)\"\n\n [elderRequiredIgnoreZeroValidator]=\"requiredIgnoreZero\"\n [elderMultipleOf]=\"multipleOf\"\n [placeholder]=\"(placeholder ? placeholder : 'context.quantity') | translate\"\n [min]=\"min\" [max]=\"max\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n\n >\n\n <span matPrefix *ngIf=\"showIcon && icon\">\n <mat-icon [inline]=\"true\">{{icon}}</mat-icon>\n </span>\n\n <span matSuffix>&nbsp;\n <span>{{unitSymbol$ | async}}</span>\n </span>\n\n <mat-hint *ngIf=\"showHint\" align=\"end\">\n <span *ngIf=\"hint\">{{hint}}</span>\n </mat-hint>\n\n <mat-error *ngIf=\"myModel.errors?.required\">\n {{ 'validations.required' | translate }}\n </mat-error>\n\n <mat-error *ngIf=\"myModel.errors?.min || myModel.errors?.max\">\n <span *ngIf=\"min && max\">\n >= {{min}} & <= {{max}}\n </span>\n\n <span *ngIf=\"min && !max\">\n >= {{min}}\n </span>\n\n <span *ngIf=\"!min && max\">\n <= {{max}}\n </span>\n </mat-error>\n\n <mat-error *ngIf=\"myModel.errors?.forbiddenMultiple as forbiddenMultiple\">\n {{ 'validations.multipleOf' | translate:{ multiples: forbiddenMultiple.allowed } }}\n </mat-error>\n\n</mat-form-field>\n", styles: [".elder-quantity-input{text-align:right}\n"] }]
166
+ args: [{ selector: 'elder-quantity-input', providers: buildFormIntegrationProviders(ElderQuantityInputComponent), changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [ViewProviders.ParentControlContainer], template: "\n<mat-form-field class=\"elder-flex-control\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n\n>\n\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n\n <input matInput elderNoSpinner class=\"elder-quantity-input flex\"\n type=\"number\"\n #quantityInput=\"matInput\"\n\n [name]=\"name + '-inner'\"\n [ngModel]=\"formattedValue$ | async\" #myModel=\"ngModel\"\n (ngModelChange)=\"onQuantityValueChanged($event)\"\n\n [elderRequiredIgnoreZeroValidator]=\"requiredIgnoreZero\"\n [elderMultipleOf]=\"multipleOf\"\n [placeholder]=\"(placeholder ? placeholder : 'context.quantity') | translate\"\n [min]=\"min\" [max]=\"max\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n\n >\n\n <span matPrefix *ngIf=\"showIcon && icon\">\n <mat-icon [inline]=\"true\">{{icon}}</mat-icon>\n </span>\n\n <span matSuffix>&nbsp;\n <span>{{unitSymbol$ | async}}</span>\n </span>\n\n <mat-hint *ngIf=\"showHint\" align=\"end\">\n <span *ngIf=\"hint\">{{hint}}</span>\n </mat-hint>\n\n <mat-error *ngIf=\"myModel.errors?.required\">\n {{ 'validations.required' | translate }}\n </mat-error>\n\n <mat-error *ngIf=\"myModel.errors?.min || myModel.errors?.max\">\n <span *ngIf=\"min && max\">\n >= {{min}} & <= {{max}}\n </span>\n\n <span *ngIf=\"min && !max\">\n >= {{min}}\n </span>\n\n <span *ngIf=\"!min && max\">\n <= {{max}}\n </span>\n </mat-error>\n\n <mat-error *ngIf=\"myModel.errors?.forbiddenMultiple as forbiddenMultiple\">\n {{ 'validations.multipleOf' | translate:{ multiples: forbiddenMultiple.allowed } }}\n </mat-error>\n\n</mat-form-field>\n", styles: [".elder-quantity-input{text-align:right}\n"] }]
168
167
  }], ctorParameters: function () { return [{ type: i1.ElderUnitService }, { type: i2.DecimalPipe }]; }, propDecorators: { multipleOf: [{
169
168
  type: Input
170
169
  }], displayFormat: [{
@@ -187,4 +186,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
187
186
  }], unitChange: [{
188
187
  type: Output
189
188
  }] } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcXVhbnRpdHktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9tZWFzdXJlcy9xdWFudGl0eS1pbnB1dC9lbGRlci1xdWFudGl0eS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL21lYXN1cmVzL3F1YW50aXR5LWlucHV0L2VsZGVyLXF1YW50aXR5LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBRS9GLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFNLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUtuRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBVTVELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxzQkFBZ0M7SUFtQy9FOzs7O2dGQUk0RTtJQUU1RSxZQUNtQixXQUE2QixFQUM3QixXQUF3QjtRQUV6QyxLQUFLLEVBQUUsQ0FBQztRQUhTLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXpDM0M7Ozs7b0ZBSTRFO1FBRTNELFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEU7OztXQUdHO1FBQ0ssd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRXBDOztXQUVHO1FBRUksZUFBVSxHQUFzQixJQUFJLENBQUM7UUFFNUM7OztXQUdHO1FBRUksa0JBQWEsR0FBVyxJQUFJLENBQUM7UUFFcEIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBVyxJQUFJLENBQUMsQ0FBQztRQWtCbkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7UUFFekIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUd2QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNqQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQ2pCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNULElBQUksSUFBSSxFQUFFO2dCQUNSLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDN0M7aUJBQU07Z0JBQ0wsT0FBTyxFQUFFLENBQUM7YUFDWDtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FDbEM7WUFDRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLE1BQU07U0FDWixDQUNGLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxjQUFjLEdBQUcsUUFBUSxFQUFFLEtBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLGNBQWMsRUFBRTtnQkFDM0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUM7cUJBQ3hFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO3FCQUNqQixPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztxQkFDaEIsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNyQjtpQkFBTTtnQkFDTCxPQUFPLGNBQWMsQ0FBQzthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLFFBQVE7SUFDZixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQ1csYUFBYSxDQUFDLEtBQWU7UUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQ1csa0JBQWtCLENBQUMsTUFBZTtRQUMzQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUU7O09BRUc7SUFDSCxJQUNXLG9CQUFvQjtRQUM3QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLGNBQWMsQ0FBQyxhQUFxQjtRQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRzVFLElBQ1csbUJBQW1CO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzFCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFDVyxhQUFhLENBQUMsYUFBcUI7UUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUNXLElBQUksQ0FBQyxJQUFVO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFDVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzFCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsc0JBQXNCLENBQUMsS0FBYTtRQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRWxFLFlBQVksQ0FBQyxDQUFXLEVBQUUsQ0FBVztRQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsRUFBRSxLQUFLO2VBQ3ZCLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQztJQUMzQixDQUFDOzt5SEFuTVUsMkJBQTJCOzZHQUEzQiwyQkFBMkIsZ1hBSjNCLDZCQUE2QixDQUFDLDJCQUEyQixDQUFDLGlLQ25CdkUsdTFEQWdFQSxvM0hEM0NpQixDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQzs0RkFFMUMsMkJBQTJCO2tCQVJ2QyxTQUFTOytCQUNFLHNCQUFzQixhQUdyQiw2QkFBNkIsNkJBQTZCLG1CQUNwRCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQztpSUFzQjlDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBUUMsYUFBYTtzQkFEbkIsS0FBSztnQkF5RUssYUFBYTtzQkFEdkIsU0FBUzt1QkFBQyxlQUFlO2dCQU1mLGtCQUFrQjtzQkFENUIsS0FBSztnQkFtQkssb0JBQW9CO3NCQUQ5QixNQUFNO2dCQVNJLGNBQWM7c0JBRHhCLEtBQUs7Z0JBYUssbUJBQW1CO3NCQUQ3QixNQUFNO2dCQVlJLGFBQWE7c0JBRHZCLEtBQUs7Z0JBTUssSUFBSTtzQkFEZCxLQUFLO2dCQU1LLFVBQVU7c0JBRHBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UXVhbnRpdHl9IGZyb20gJy4uL21vZGVsL3F1YW50aXR5JztcbmltcG9ydCB7YnVpbGRGb3JtSW50ZWdyYXRpb25Qcm92aWRlcnN9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy90ZW1wbGF0ZS1jb21wb3NpdGUtY29udHJvbCc7XG5pbXBvcnQge1VuaXR9IGZyb20gJy4uL21vZGVsL3VuaXQnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7Rm9ybUZpZWxkQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Zvcm1zL2Zvcm0tZmllbGQtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHtWaWV3UHJvdmlkZXJzfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZm9ybXMvdmlldy1wcm92aWRlcnMnO1xuaW1wb3J0IHtFbGRlclVuaXRTZXJ2aWNlfSBmcm9tICcuLi9lbGRlci11bml0LnNlcnZpY2UnO1xuaW1wb3J0IHtGbG9hdExhYmVsVHlwZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQge0RlY2ltYWxQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtNYXRJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLXF1YW50aXR5LWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXF1YW50aXR5LWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItcXVhbnRpdHktaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBidWlsZEZvcm1JbnRlZ3JhdGlvblByb3ZpZGVycyhFbGRlclF1YW50aXR5SW5wdXRDb21wb25lbnQpLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdmlld1Byb3ZpZGVyczogW1ZpZXdQcm92aWRlcnMuUGFyZW50Q29udHJvbENvbnRhaW5lcl1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJRdWFudGl0eUlucHV0Q29tcG9uZW50IGV4dGVuZHMgRm9ybUZpZWxkQmFzZUNvbXBvbmVudDxRdWFudGl0eT4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICAvKipcbiAgICogV2VhdGhlciB0aGUgbnVtYmVyIDAgc2hvdWxkIHJlc3VsdCBpbiB2YWxpZCAncmVxdWlyZWQnIHZhbGlkYXRpb24gb3Igbm90LlxuICAgKiBJZiB0cnVlLCB0aGUgbnVtYmVyIDAgd2lsbCBiZSBpZ25vcmVkIGFzIGlucHV0IHdoZW4gdGhlICdyZXF1aXJlZCcgZGlyZWN0aXZlIGlzIGFjdGl2ZS5cbiAgICovXG4gIHByaXZhdGUgX3JlcXVpcmVkSWdub3JlWmVybyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBPbmx5IGFsbG93IGEgbXVsdGlwbGUgb2YgdGhlIGdpdmVuIG51bWJlciB0byBiZSBhIHZhbGlkIHF1YW50aXR5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG11bHRpcGxlT2Y6IG51bWJlciB8IG51bWJlcltdID0gbnVsbDtcblxuICAvKipcbiAgICogRGlzcGxheSBmb3JtYXQgZm9yIHRoZSBxdWFudGl0eSB2YWx1ZTpcbiAgICoge21pbkludGVnZXJEaWdpdHN9LnttaW5GcmFjdGlvbkRpZ2l0c30te21heEZyYWN0aW9uRGlnaXRzfVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRpc3BsYXlGb3JtYXQ6IHN0cmluZyA9IG51bGw7XG5cbiAgcHVibGljIHJlYWRvbmx5IHF1YW50aXR5SW5wdXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXRJbnB1dD4obnVsbCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHVuaXRTeW1ib2wkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm1hdHRlZFZhbHVlJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudW1iZXI+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdW5pdFNlcnZpY2U6IEVsZGVyVW5pdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGVcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuZmxvYXRMYWJlbCA9ICdhdXRvJztcblxuICAgIHRoaXMudmFsdWUgPSBRdWFudGl0eS5mcm9tKG51bGwsIG51bGwpO1xuXG5cbiAgICB0aGlzLnVuaXRTeW1ib2wkID0gdGhpcy52YWx1ZSQucGlwZShcbiAgICAgIG1hcCh2ID0+IHY/LnVuaXQpLFxuICAgICAgbWFwKHVuaXQgPT4ge1xuICAgICAgICBpZiAodW5pdCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnVuaXRTZXJ2aWNlLmdldFVuaXRTeW1ib2wodW5pdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmZvcm1hdHRlZFZhbHVlJCA9IGNvbWJpbmVMYXRlc3QoXG4gICAgICBbXG4gICAgICAgIHRoaXMucXVhbnRpdHlJbnB1dCQucGlwZShmaWx0ZXIoaW5wdXQgPT4gISFpbnB1dCkpLFxuICAgICAgICB0aGlzLnZhbHVlJFxuICAgICAgXVxuICAgICkucGlwZShcbiAgICAgIG1hcCgoW2lucHV0LCBxdWFudGl0eV0pID0+IHtcbiAgICAgICAgY29uc3QgcXVhbnRpdHlOdW1iZXIgPSBxdWFudGl0eT8udmFsdWU7XG4gICAgICAgIGlmICghaW5wdXQ/LmZvY3VzZWQgJiYgdGhpcy5kaXNwbGF5Rm9ybWF0ICYmIHF1YW50aXR5TnVtYmVyKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKHF1YW50aXR5TnVtYmVyLCB0aGlzLmRpc3BsYXlGb3JtYXQsICdlbicpXG4gICAgICAgICAgICAucmVwbGFjZSgnXFwnJywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgn4oCZJywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgnLCcsICcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gcXVhbnRpdHlOdW1iZXI7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBWaWV3Q2hpbGQoJ3F1YW50aXR5SW5wdXQnKVxuICBwdWJsaWMgc2V0IHF1YW50aXR5SW5wdXQoaW5wdXQ6IE1hdElucHV0KSB7XG4gICAgdGhpcy5xdWFudGl0eUlucHV0JC5uZXh0KGlucHV0KTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWRJZ25vcmVaZXJvKGlnbm9yZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkSWdub3JlWmVybyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShpZ25vcmUpO1xuICB9XG5cbiAgcHVibGljIGdldCByZXF1aXJlZElnbm9yZVplcm8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkSWdub3JlWmVybztcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBEZXByZWNhdGVkIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgcXVhbnRpdHlOdW1iZXJDaGFuZ2UoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMucXVhbnRpdHlWYWx1ZUNoYW5nZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBxdWFudGl0eU51bWJlcihxdWFudGl0eVZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLnF1YW50aXR5VmFsdWUgPSBxdWFudGl0eVZhbHVlO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBxdWFudGl0eVZhbHVlQ2hhbmdlKCk6IE9ic2VydmFibGU8bnVtYmVyIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICBtYXAocSA9PiBxPy52YWx1ZSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBxdWFudGl0eVZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU/LnZhbHVlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBxdWFudGl0eVZhbHVlKHF1YW50aXR5VmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMudmFsdWUgPSBRdWFudGl0eS5mcm9tKHRoaXMudmFsdWU/LnVuaXQsIHF1YW50aXR5VmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB1bml0KHVuaXQ6IFVuaXQpIHtcbiAgICB0aGlzLnZhbHVlID0gUXVhbnRpdHkuZnJvbSh1bml0LCB0aGlzLnZhbHVlPy52YWx1ZSk7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCB1bml0Q2hhbmdlKCk6IE9ic2VydmFibGU8VW5pdCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUNoYW5nZS5waXBlKFxuICAgICAgbWFwKHEgPT4gcT8udW5pdClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCB1bml0KCk6IFVuaXQge1xuICAgIHJldHVybiB0aGlzLnZhbHVlPy51bml0O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG9uUXVhbnRpdHlWYWx1ZUNoYW5nZWQodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUoUXVhbnRpdHkuZnJvbSh0aGlzLnZhbHVlPy51bml0LCB2YWx1ZSkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIHZhbHVlc0VxdWFscyhhOiBRdWFudGl0eSwgYjogUXVhbnRpdHkpOiBib29sZWFuIHtcbiAgICBpZiAoYSA9PT0gYikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBhPy52YWx1ZSA9PT0gYj8udmFsdWVcbiAgICAgICYmIGE/LnVuaXQgPT09IGI/LnVuaXQ7XG4gIH1cblxufVxuIiwiXG48bWF0LWZvcm0tZmllbGQgZnhGbGV4XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1zdGQtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXG4gICAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcblxuPlxuXG4gIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuXG4gIDxpbnB1dCBtYXRJbnB1dCBmeEZsZXggZWxkZXJOb1NwaW5uZXIgY2xhc3M9XCJlbGRlci1xdWFudGl0eS1pbnB1dFwiXG4gICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICNxdWFudGl0eUlucHV0PVwibWF0SW5wdXRcIlxuXG4gICAgICAgICBbbmFtZV09XCJuYW1lICsgJy1pbm5lcidcIlxuICAgICAgICAgW25nTW9kZWxdPVwiZm9ybWF0dGVkVmFsdWUkIHwgYXN5bmNcIiAjbXlNb2RlbD1cIm5nTW9kZWxcIlxuICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25RdWFudGl0eVZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcblxuICAgICAgICAgW2VsZGVyUmVxdWlyZWRJZ25vcmVaZXJvVmFsaWRhdG9yXT1cInJlcXVpcmVkSWdub3JlWmVyb1wiXG4gICAgICAgICBbZWxkZXJNdWx0aXBsZU9mXT1cIm11bHRpcGxlT2ZcIlxuICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIihwbGFjZWhvbGRlciA/IHBsYWNlaG9sZGVyIDogJ2NvbnRleHQucXVhbnRpdHknKSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICBbbWluXT1cIm1pblwiIFttYXhdPVwibWF4XCJcbiAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcblxuICA+XG5cbiAgPHNwYW4gbWF0UHJlZml4ICpuZ0lmPVwic2hvd0ljb24gJiYgaWNvblwiPlxuICAgICAgPG1hdC1pY29uIFtpbmxpbmVdPVwidHJ1ZVwiPnt7aWNvbn19PC9tYXQtaWNvbj5cbiAgPC9zcGFuPlxuXG4gIDxzcGFuIG1hdFN1ZmZpeD4mbmJzcDtcbiAgICAgIDxzcGFuPnt7dW5pdFN5bWJvbCQgfCBhc3luY319PC9zcGFuPlxuICA8L3NwYW4+XG5cbiAgPG1hdC1oaW50ICpuZ0lmPVwic2hvd0hpbnRcIiBhbGlnbj1cImVuZFwiPlxuICAgIDxzcGFuICpuZ0lmPVwiaGludFwiPnt7aGludH19PC9zcGFuPlxuICA8L21hdC1oaW50PlxuXG4gIDxtYXQtZXJyb3IgKm5nSWY9XCJteU1vZGVsLmVycm9ycz8ucmVxdWlyZWRcIj5cbiAgICAgIHt7ICd2YWxpZGF0aW9ucy5yZXF1aXJlZCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9tYXQtZXJyb3I+XG5cbiAgPG1hdC1lcnJvciAqbmdJZj1cIm15TW9kZWwuZXJyb3JzPy5taW4gfHwgbXlNb2RlbC5lcnJvcnM/Lm1heFwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCJtaW4gJiYgbWF4XCI+XG4gICAgICAgICAgPj0ge3ttaW59fSAmIDw9IHt7bWF4fX1cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPHNwYW4gKm5nSWY9XCJtaW4gJiYgIW1heFwiPlxuICAgICAgICAgID49IHt7bWlufX1cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPHNwYW4gKm5nSWY9XCIhbWluICYmIG1heFwiPlxuICAgICAgICAgIDw9IHt7bWF4fX1cbiAgICAgIDwvc3Bhbj5cbiAgPC9tYXQtZXJyb3I+XG5cbiAgPG1hdC1lcnJvciAqbmdJZj1cIm15TW9kZWwuZXJyb3JzPy5mb3JiaWRkZW5NdWx0aXBsZSBhcyBmb3JiaWRkZW5NdWx0aXBsZVwiPlxuICAgICAge3sgJ3ZhbGlkYXRpb25zLm11bHRpcGxlT2YnIHwgdHJhbnNsYXRlOnsgbXVsdGlwbGVzOiBmb3JiaWRkZW5NdWx0aXBsZS5hbGxvd2VkIH0gfX1cbiAgPC9tYXQtZXJyb3I+XG5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcXVhbnRpdHktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9tZWFzdXJlcy9xdWFudGl0eS1pbnB1dC9lbGRlci1xdWFudGl0eS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL21lYXN1cmVzL3F1YW50aXR5LWlucHV0L2VsZGVyLXF1YW50aXR5LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBRS9GLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFNLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUtuRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFVNUQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHNCQUFnQztJQW1DL0U7Ozs7Z0ZBSTRFO0lBRTVFLFlB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QUFDO1NBQ2I7UUFDRCxPQUFPLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUs7ZUFDdkIsQ0FBQyxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDO0lBQzNCLENBQUM7O3lIQW5NVSwyQkFBMkI7NkdBQTNCLDJCQUEyQixnWEFKM0IsNkJBQTZCLENBQUMsMkJBQTJCLENBQUMsaUtDbkJ2RSwyekRBK0RBLDQ0R0QxQ2lCLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDOzRGQUUxQywyQkFBMkI7a0JBUnZDLFNBQVM7K0JBQ0Usc0JBQXNCLGFBR3JCLDZCQUE2Qiw2QkFBNkIsbUJBQ3BELHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDO2lJQXNCOUMsVUFBVTtzQkFEaEIsS0FBSztnQkFRQyxhQUFhO3NCQURuQixLQUFLO2dCQXlFSyxhQUFhO3NCQUR2QixTQUFTO3VCQUFDLGVBQWU7Z0JBTWYsa0JBQWtCO3NCQUQ1QixLQUFLO2dCQW1CSyxvQkFBb0I7c0JBRDlCLE1BQU07Z0JBU0ksY0FBYztzQkFEeEIsS0FBSztnQkFhSyxtQkFBbUI7c0JBRDdCLE1BQU07Z0JBWUksYUFBYTtzQkFEdkIsS0FBSztnQkFNSyxJQUFJO3NCQURkLEtBQUs7Z0JBTUssVUFBVTtzQkFEcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtRdWFudGl0eX0gZnJvbSAnLi4vbW9kZWwvcXVhbnRpdHknO1xuaW1wb3J0IHtidWlsZEZvcm1JbnRlZ3JhdGlvblByb3ZpZGVyc30gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Zvcm1zL3RlbXBsYXRlLWNvbXBvc2l0ZS1jb250cm9sJztcbmltcG9ydCB7VW5pdH0gZnJvbSAnLi4vbW9kZWwvdW5pdCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtGb3JtRmllbGRCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9jb21tb24vZm9ybXMvZm9ybS1maWVsZC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQge1ZpZXdQcm92aWRlcnN9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy92aWV3LXByb3ZpZGVycyc7XG5pbXBvcnQge0VsZGVyVW5pdFNlcnZpY2V9IGZyb20gJy4uL2VsZGVyLXVuaXQuc2VydmljZSc7XG5pbXBvcnQge0Zsb2F0TGFiZWxUeXBlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7RGVjaW1hbFBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge01hdElucHV0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge2NvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItcXVhbnRpdHktaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItcXVhbnRpdHktaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1xdWFudGl0eS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IGJ1aWxkRm9ybUludGVncmF0aW9uUHJvdmlkZXJzKEVsZGVyUXVhbnRpdHlJbnB1dENvbXBvbmVudCksXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB2aWV3UHJvdmlkZXJzOiBbVmlld1Byb3ZpZGVycy5QYXJlbnRDb250cm9sQ29udGFpbmVyXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclF1YW50aXR5SW5wdXRDb21wb25lbnQgZXh0ZW5kcyBGb3JtRmllbGRCYXNlQ29tcG9uZW50PFF1YW50aXR5PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIC8qKlxuICAgKiBXZWF0aGVyIHRoZSBudW1iZXIgMCBzaG91bGQgcmVzdWx0IGluIHZhbGlkICdyZXF1aXJlZCcgdmFsaWRhdGlvbiBvciBub3QuXG4gICAqIElmIHRydWUsIHRoZSBudW1iZXIgMCB3aWxsIGJlIGlnbm9yZWQgYXMgaW5wdXQgd2hlbiB0aGUgJ3JlcXVpcmVkJyBkaXJlY3RpdmUgaXMgYWN0aXZlLlxuICAgKi9cbiAgcHJpdmF0ZSBfcmVxdWlyZWRJZ25vcmVaZXJvID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIE9ubHkgYWxsb3cgYSBtdWx0aXBsZSBvZiB0aGUgZ2l2ZW4gbnVtYmVyIHRvIGJlIGEgdmFsaWQgcXVhbnRpdHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbXVsdGlwbGVPZjogbnVtYmVyIHwgbnVtYmVyW10gPSBudWxsO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IGZvcm1hdCBmb3IgdGhlIHF1YW50aXR5IHZhbHVlOlxuICAgKiB7bWluSW50ZWdlckRpZ2l0c30ue21pbkZyYWN0aW9uRGlnaXRzfS17bWF4RnJhY3Rpb25EaWdpdHN9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzcGxheUZvcm1hdDogc3RyaW5nID0gbnVsbDtcblxuICBwdWJsaWMgcmVhZG9ubHkgcXVhbnRpdHlJbnB1dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hdElucHV0PihudWxsKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdW5pdFN5bWJvbCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwdWJsaWMgcmVhZG9ubHkgZm9ybWF0dGVkVmFsdWUkOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj47XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bml0U2VydmljZTogRWxkZXJVbml0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZVxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5mbG9hdExhYmVsID0gJ2F1dG8nO1xuXG4gICAgdGhpcy52YWx1ZSA9IFF1YW50aXR5LmZyb20obnVsbCwgbnVsbCk7XG5cblxuICAgIHRoaXMudW5pdFN5bWJvbCQgPSB0aGlzLnZhbHVlJC5waXBlKFxuICAgICAgbWFwKHYgPT4gdj8udW5pdCksXG4gICAgICBtYXAodW5pdCA9PiB7XG4gICAgICAgIGlmICh1bml0KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudW5pdFNlcnZpY2UuZ2V0VW5pdFN5bWJvbCh1bml0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUkID0gY29tYmluZUxhdGVzdChcbiAgICAgIFtcbiAgICAgICAgdGhpcy5xdWFudGl0eUlucHV0JC5waXBlKGZpbHRlcihpbnB1dCA9PiAhIWlucHV0KSksXG4gICAgICAgIHRoaXMudmFsdWUkXG4gICAgICBdXG4gICAgKS5waXBlKFxuICAgICAgbWFwKChbaW5wdXQsIHF1YW50aXR5XSkgPT4ge1xuICAgICAgICBjb25zdCBxdWFudGl0eU51bWJlciA9IHF1YW50aXR5Py52YWx1ZTtcbiAgICAgICAgaWYgKCFpbnB1dD8uZm9jdXNlZCAmJiB0aGlzLmRpc3BsYXlGb3JtYXQgJiYgcXVhbnRpdHlOdW1iZXIpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0ocXVhbnRpdHlOdW1iZXIsIHRoaXMuZGlzcGxheUZvcm1hdCwgJ2VuJylcbiAgICAgICAgICAgIC5yZXBsYWNlKCdcXCcnLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKCfigJknLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKCcsJywgJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBxdWFudGl0eU51bWJlcjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQFZpZXdDaGlsZCgncXVhbnRpdHlJbnB1dCcpXG4gIHB1YmxpYyBzZXQgcXVhbnRpdHlJbnB1dChpbnB1dDogTWF0SW5wdXQpIHtcbiAgICB0aGlzLnF1YW50aXR5SW5wdXQkLm5leHQoaW5wdXQpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByZXF1aXJlZElnbm9yZVplcm8oaWdub3JlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVxdWlyZWRJZ25vcmVaZXJvID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGlnbm9yZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkSWdub3JlWmVybygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWRJZ25vcmVaZXJvO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIERlcHJlY2F0ZWQgUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBxdWFudGl0eU51bWJlckNoYW5nZSgpOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5xdWFudGl0eVZhbHVlQ2hhbmdlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHF1YW50aXR5TnVtYmVyKHF1YW50aXR5VmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMucXVhbnRpdHlWYWx1ZSA9IHF1YW50aXR5VmFsdWU7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IHF1YW50aXR5VmFsdWVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcChxID0+IHE/LnZhbHVlKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1YW50aXR5VmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZT8udmFsdWU7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHF1YW50aXR5VmFsdWUocXVhbnRpdHlWYWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy52YWx1ZSA9IFF1YW50aXR5LmZyb20odGhpcy52YWx1ZT8udW5pdCwgcXVhbnRpdHlWYWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHVuaXQodW5pdDogVW5pdCkge1xuICAgIHRoaXMudmFsdWUgPSBRdWFudGl0eS5mcm9tKHVuaXQsIHRoaXMudmFsdWU/LnZhbHVlKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IHVuaXRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxVbml0IHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICBtYXAocSA9PiBxPy51bml0KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHVuaXQoKTogVW5pdCB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU/LnVuaXQ7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgb25RdWFudGl0eVZhbHVlQ2hhbmdlZCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShRdWFudGl0eS5mcm9tKHRoaXMudmFsdWU/LnVuaXQsIHZhbHVlKSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgdmFsdWVzRXF1YWxzKGE6IFF1YW50aXR5LCBiOiBRdWFudGl0eSk6IGJvb2xlYW4ge1xuICAgIGlmIChhID09PSBiKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGE/LnZhbHVlID09PSBiPy52YWx1ZVxuICAgICAgJiYgYT8udW5pdCA9PT0gYj8udW5pdDtcbiAgfVxuXG59XG4iLCJcbjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImVsZGVyLWZsZXgtY29udHJvbFwiXG4gICAgICAgICAgICAgICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXG4gICAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcblxuPlxuXG4gIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuXG4gIDxpbnB1dCBtYXRJbnB1dCBlbGRlck5vU3Bpbm5lciBjbGFzcz1cImVsZGVyLXF1YW50aXR5LWlucHV0IGZsZXhcIlxuICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAjcXVhbnRpdHlJbnB1dD1cIm1hdElucHV0XCJcblxuICAgICAgICAgW25hbWVdPVwibmFtZSArICctaW5uZXInXCJcbiAgICAgICAgIFtuZ01vZGVsXT1cImZvcm1hdHRlZFZhbHVlJCB8IGFzeW5jXCIgI215TW9kZWw9XCJuZ01vZGVsXCJcbiAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uUXVhbnRpdHlWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG5cbiAgICAgICAgIFtlbGRlclJlcXVpcmVkSWdub3JlWmVyb1ZhbGlkYXRvcl09XCJyZXF1aXJlZElnbm9yZVplcm9cIlxuICAgICAgICAgW2VsZGVyTXVsdGlwbGVPZl09XCJtdWx0aXBsZU9mXCJcbiAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXIgPyBwbGFjZWhvbGRlciA6ICdjb250ZXh0LnF1YW50aXR5JykgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgW21pbl09XCJtaW5cIiBbbWF4XT1cIm1heFwiXG4gICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG5cbiAgPlxuXG4gIDxzcGFuIG1hdFByZWZpeCAqbmdJZj1cInNob3dJY29uICYmIGljb25cIj5cbiAgICAgIDxtYXQtaWNvbiBbaW5saW5lXT1cInRydWVcIj57e2ljb259fTwvbWF0LWljb24+XG4gIDwvc3Bhbj5cblxuICA8c3BhbiBtYXRTdWZmaXg+Jm5ic3A7XG4gICAgICA8c3Bhbj57e3VuaXRTeW1ib2wkIHwgYXN5bmN9fTwvc3Bhbj5cbiAgPC9zcGFuPlxuXG4gIDxtYXQtaGludCAqbmdJZj1cInNob3dIaW50XCIgYWxpZ249XCJlbmRcIj5cbiAgICA8c3BhbiAqbmdJZj1cImhpbnRcIj57e2hpbnR9fTwvc3Bhbj5cbiAgPC9tYXQtaGludD5cblxuICA8bWF0LWVycm9yICpuZ0lmPVwibXlNb2RlbC5lcnJvcnM/LnJlcXVpcmVkXCI+XG4gICAgICB7eyAndmFsaWRhdGlvbnMucmVxdWlyZWQnIHwgdHJhbnNsYXRlIH19XG4gIDwvbWF0LWVycm9yPlxuXG4gIDxtYXQtZXJyb3IgKm5nSWY9XCJteU1vZGVsLmVycm9ycz8ubWluIHx8IG15TW9kZWwuZXJyb3JzPy5tYXhcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwibWluICYmIG1heFwiPlxuICAgICAgICAgID49IHt7bWlufX0gJiA8PSB7e21heH19XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxzcGFuICpuZ0lmPVwibWluICYmICFtYXhcIj5cbiAgICAgICAgICA+PSB7e21pbn19XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIW1pbiAmJiBtYXhcIj5cbiAgICAgICAgICA8PSB7e21heH19XG4gICAgICA8L3NwYW4+XG4gIDwvbWF0LWVycm9yPlxuXG4gIDxtYXQtZXJyb3IgKm5nSWY9XCJteU1vZGVsLmVycm9ycz8uZm9yYmlkZGVuTXVsdGlwbGUgYXMgZm9yYmlkZGVuTXVsdGlwbGVcIj5cbiAgICAgIHt7ICd2YWxpZGF0aW9ucy5tdWx0aXBsZU9mJyB8IHRyYW5zbGF0ZTp7IG11bHRpcGxlczogZm9yYmlkZGVuTXVsdGlwbGUuYWxsb3dlZCB9IH19XG4gIDwvbWF0LWVycm9yPlxuXG48L21hdC1mb3JtLWZpZWxkPlxuIl19