@theseam/ui-common 0.4.13 → 0.4.15

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 (139) hide show
  1. package/buttons/public-api.d.ts +1 -0
  2. package/buttons/testing/anchor-badge-button.harness.d.ts +16 -0
  3. package/buttons/testing/anchor-button.harness.d.ts +16 -0
  4. package/buttons/testing/badge-button.harness.d.ts +15 -0
  5. package/buttons/testing/base-badge-button.harness.d.ts +15 -0
  6. package/buttons/testing/base-button.harness.d.ts +19 -0
  7. package/buttons/testing/button.harness.d.ts +15 -0
  8. package/buttons/testing/index.d.ts +5 -0
  9. package/buttons/testing/toggle-button.harness.d.ts +21 -0
  10. package/checkbox/checkbox.component.d.ts +1 -1
  11. package/checkbox/checkbox.module.d.ts +2 -3
  12. package/datatable/datatable.module.d.ts +1 -1
  13. package/esm2020/buttons/button/button.component.mjs +2 -1
  14. package/esm2020/buttons/public-api.mjs +2 -1
  15. package/esm2020/buttons/testing/anchor-badge-button.harness.mjs +18 -0
  16. package/esm2020/buttons/testing/anchor-button.harness.mjs +18 -0
  17. package/esm2020/buttons/testing/badge-button.harness.mjs +14 -0
  18. package/esm2020/buttons/testing/base-badge-button.harness.mjs +29 -0
  19. package/esm2020/buttons/testing/base-button.harness.mjs +41 -0
  20. package/esm2020/buttons/testing/button.harness.mjs +16 -0
  21. package/esm2020/buttons/testing/index.mjs +6 -0
  22. package/esm2020/buttons/testing/toggle-button.harness.mjs +25 -0
  23. package/esm2020/checkbox/checkbox.component.mjs +8 -3
  24. package/esm2020/checkbox/checkbox.module.mjs +5 -12
  25. package/esm2020/datatable/datatable.module.mjs +5 -5
  26. package/esm2020/form-field/form-field.component.mjs +4 -4
  27. package/esm2020/framework/schema-form/index.mjs +2 -1
  28. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +6 -3
  29. package/esm2020/framework/schema-form/schema-form-framework.mjs +62 -7
  30. package/esm2020/framework/schema-form/schema-form-widget.mjs +2 -0
  31. package/esm2020/framework/schema-form/schema-form.module.mjs +1 -8
  32. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +21 -11
  33. package/esm2020/framework/schema-form-controls/schema-form-divider/schema-form-divider.component.mjs +20 -0
  34. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +17 -8
  35. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +14 -5
  36. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +19 -9
  37. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +21 -13
  38. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +30 -18
  39. package/esm2020/framework/schema-form-controls/schema-form-tel/schema-form-tel.component.mjs +48 -0
  40. package/esm2020/framework/schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component.mjs +57 -0
  41. package/esm2020/google-maps/google-maps/google-maps.component.mjs +9 -2
  42. package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +2 -1
  43. package/esm2020/menu/public-api.mjs +5 -1
  44. package/esm2020/menu/testing/menu-footer.harness.mjs +28 -0
  45. package/esm2020/menu/testing/menu-header.harness.mjs +23 -0
  46. package/esm2020/menu/testing/menu-item.harness.mjs +59 -0
  47. package/esm2020/menu/testing/menu.harness.mjs +163 -0
  48. package/esm2020/menu/testing/utils.mjs +13 -0
  49. package/esm2020/story-helpers/args-to-tpl.mjs +83 -0
  50. package/esm2020/story-helpers/public-api.mjs +2 -2
  51. package/esm2020/tel-input/public-api.mjs +2 -1
  52. package/esm2020/tel-input/tel-input/tel-input.component.mjs +22 -10
  53. package/esm2020/tel-input/tel-input.directive.mjs +12 -13
  54. package/esm2020/tel-input/tel-input.module.mjs +10 -9
  55. package/esm2020/tel-input/testing/tel-input.harness.mjs +49 -0
  56. package/esm2020/testing/harnesses/ng-select-dropdown.harness.mjs +39 -0
  57. package/esm2020/testing/harnesses/ng-select-option.harness.mjs +26 -0
  58. package/esm2020/testing/harnesses/ng-select.harness.mjs +104 -0
  59. package/esm2020/testing/public-api.mjs +4 -1
  60. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +1 -1
  61. package/fesm2015/theseam-ui-common-buttons.mjs +181 -3
  62. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  63. package/fesm2015/theseam-ui-common-checkbox.mjs +12 -14
  64. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  65. package/fesm2015/theseam-ui-common-datatable.mjs +4 -4
  66. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  67. package/fesm2015/theseam-ui-common-form-field.mjs +3 -3
  68. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  69. package/fesm2015/theseam-ui-common-framework.mjs +248 -164
  70. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  71. package/fesm2015/theseam-ui-common-google-maps.mjs +10 -1
  72. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  73. package/fesm2015/theseam-ui-common-menu.mjs +329 -3
  74. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  75. package/fesm2015/theseam-ui-common-story-helpers.mjs +86 -1
  76. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  77. package/fesm2015/theseam-ui-common-tel-input.mjs +105 -29
  78. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  79. package/fesm2015/theseam-ui-common-testing.mjs +197 -1
  80. package/fesm2015/theseam-ui-common-testing.mjs.map +1 -1
  81. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  82. package/fesm2020/theseam-ui-common-buttons.mjs +154 -2
  83. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  84. package/fesm2020/theseam-ui-common-checkbox.mjs +12 -14
  85. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  86. package/fesm2020/theseam-ui-common-datatable.mjs +4 -4
  87. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  88. package/fesm2020/theseam-ui-common-form-field.mjs +3 -3
  89. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  90. package/fesm2020/theseam-ui-common-framework.mjs +236 -162
  91. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  92. package/fesm2020/theseam-ui-common-google-maps.mjs +9 -1
  93. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  94. package/fesm2020/theseam-ui-common-menu.mjs +275 -2
  95. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  96. package/fesm2020/theseam-ui-common-story-helpers.mjs +84 -1
  97. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  98. package/fesm2020/theseam-ui-common-tel-input.mjs +89 -29
  99. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  100. package/fesm2020/theseam-ui-common-testing.mjs +165 -1
  101. package/fesm2020/theseam-ui-common-testing.mjs.map +1 -1
  102. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  103. package/framework/schema-form/index.d.ts +1 -0
  104. package/framework/schema-form/schema-form-framework.d.ts +12 -1
  105. package/framework/schema-form/schema-form-widget.d.ts +61 -0
  106. package/framework/schema-form/schema-form.module.d.ts +1 -2
  107. package/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.d.ts +12 -11
  108. package/framework/schema-form-controls/schema-form-divider/schema-form-divider.component.d.ts +12 -0
  109. package/framework/schema-form-controls/schema-form-input/schema-form-input.component.d.ts +10 -9
  110. package/framework/schema-form-controls/schema-form-number/schema-form-number.component.d.ts +8 -7
  111. package/framework/schema-form-controls/schema-form-select/schema-form-select.component.d.ts +10 -9
  112. package/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.d.ts +10 -9
  113. package/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.d.ts +10 -9
  114. package/framework/schema-form-controls/schema-form-tel/schema-form-tel.component.d.ts +23 -0
  115. package/framework/schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component.d.ts +32 -0
  116. package/google-maps/google-maps/google-maps.component.d.ts +2 -1
  117. package/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.d.ts +1 -0
  118. package/menu/menu-footer-action/menu-footer-action.component.d.ts +1 -1
  119. package/menu/public-api.d.ts +4 -0
  120. package/menu/testing/menu-footer.harness.d.ts +22 -0
  121. package/menu/testing/menu-header.harness.d.ts +18 -0
  122. package/menu/testing/menu-item.harness.d.ts +37 -0
  123. package/menu/testing/menu.harness.d.ts +74 -0
  124. package/menu/testing/utils.d.ts +5 -0
  125. package/package.json +1 -1
  126. package/story-helpers/args-to-tpl.d.ts +25 -0
  127. package/story-helpers/public-api.d.ts +1 -0
  128. package/tel-input/public-api.d.ts +1 -0
  129. package/tel-input/tel-input/tel-input.component.d.ts +2 -2
  130. package/tel-input/tel-input.directive.d.ts +1 -1
  131. package/tel-input/tel-input.module.d.ts +7 -7
  132. package/tel-input/testing/tel-input.harness.d.ts +19 -0
  133. package/testing/harnesses/ng-select-dropdown.harness.d.ts +23 -0
  134. package/testing/harnesses/ng-select-option.harness.d.ts +18 -0
  135. package/testing/harnesses/ng-select.harness.d.ts +50 -0
  136. package/testing/public-api.d.ts +3 -0
  137. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +10 -10
  138. package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +0 -79
  139. package/framework/schema-form-controls/schema-form-controls.module.d.ts +0 -20
@@ -1,5 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
+ import { ObserversModule } from '@angular/cdk/observers';
4
+ import { CommonModule } from '@angular/common';
3
5
  import { Attribute, ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
4
6
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
7
  import { InputBoolean, mixinDisabled, mixinTabIndex } from '@theseam/ui-common/core';
@@ -236,13 +238,16 @@ export class TheSeamCheckboxComponent extends _TheSeamCheckboxMixinBase {
236
238
  }
237
239
  }
238
240
  TheSeamCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamCheckboxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: i0.NgZone }, { token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Component });
239
- TheSeamCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamCheckboxComponent, selector: "seam-checkbox", inputs: { tabIndex: "tabIndex", id: "id", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], required: "required", checked: "checked", disabled: "disabled", indeterminate: "indeterminate", name: "name", value: "value" }, outputs: { change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "attr.tabindex": "null" }, classAttribute: "custom-control custom-checkbox" }, providers: [THESEAM_CHECKBOX_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true, static: true }], exportAs: ["seamCheckbox"], usesInheritance: true, ngImport: i0, template: "<input #input\n type=\"checkbox\"\n class=\"custom-control-input\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n (change)=\"_onInteractionEvent($event)\"\n (click)=\"_onInputClick($event)\">\n<label #checkboxLabel\n class=\"custom-control-label\"\n [attr.for]=\"inputId\"\n (cdkObserveContent)=\"_onLabelTextChange()\">\n <ng-content></ng-content>\n</label>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
241
+ TheSeamCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamCheckboxComponent, isStandalone: true, selector: "seam-checkbox", inputs: { tabIndex: "tabIndex", id: "id", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], required: "required", checked: "checked", disabled: "disabled", indeterminate: "indeterminate", name: "name", value: "value" }, outputs: { change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "attr.tabindex": "null" }, classAttribute: "custom-control custom-checkbox" }, providers: [THESEAM_CHECKBOX_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true, static: true }], exportAs: ["seamCheckbox"], usesInheritance: true, ngImport: i0, template: "<input #input\n type=\"checkbox\"\n class=\"custom-control-input\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n (change)=\"_onInteractionEvent($event)\"\n (click)=\"_onInputClick($event)\">\n<label #checkboxLabel\n class=\"custom-control-label\"\n [attr.for]=\"inputId\"\n (cdkObserveContent)=\"_onLabelTextChange()\">\n <ng-content></ng-content>\n</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ObserversModule }, { kind: "directive", type: i2.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
240
242
  __decorate([
241
243
  InputBoolean()
242
244
  ], TheSeamCheckboxComponent.prototype, "required", void 0);
243
245
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamCheckboxComponent, decorators: [{
244
246
  type: Component,
245
- args: [{ selector: 'seam-checkbox', exportAs: 'seamCheckbox', host: {
247
+ args: [{ selector: 'seam-checkbox', standalone: true, imports: [
248
+ CommonModule,
249
+ ObserversModule,
250
+ ], exportAs: 'seamCheckbox', host: {
246
251
  '[attr.tabindex]': 'null',
247
252
  'class': 'custom-control custom-checkbox'
248
253
  }, providers: [THESEAM_CHECKBOX_CONTROL_VALUE_ACCESSOR], inputs: ['tabIndex'], changeDetection: ChangeDetectionStrategy.OnPush, template: "<input #input\n type=\"checkbox\"\n class=\"custom-control-input\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n (change)=\"_onInteractionEvent($event)\"\n (click)=\"_onInputClick($event)\">\n<label #checkboxLabel\n class=\"custom-control-label\"\n [attr.for]=\"inputId\"\n (cdkObserveContent)=\"_onLabelTextChange()\">\n <ng-content></ng-content>\n</label>\n" }]
@@ -277,4 +282,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
277
282
  type: ViewChild,
278
283
  args: ['input', { static: true }]
279
284
  }] } });
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFFTCxTQUFTLEVBQ1QsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV4RSxPQUFPLEVBQTRELFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUE7Ozs7QUFFOUksNkhBQTZIO0FBRTdILCtEQUErRDtBQUMvRCxNQUFNLE9BQU8scUJBQXFCO0lBTWhDLFlBQ21CLE9BQWlDLEVBQ2pDLFFBQWlCO1FBRGpCLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFFbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUE7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUE7SUFDekIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sdUNBQXVDLEdBQVE7SUFDMUQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixrREFBa0Q7SUFDbEQsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztJQUN2RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUE7QUFFRCxNQUFNLDRCQUE0QjtJQUNoQyxZQUFtQixX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QkFBd0IsaWVBSnhCLENBQUUsdUNBQXVDLENBQUUsbU1DcEV4RCwwbkJBcUJBO0FEOEUyQjtJQUFmLFlBQVksRUFBRTswREFBaUI7MkZBM0I5Qix3QkFBd0I7a0JBYnBDLFNBQVM7K0JBQ0UsZUFBZSxZQUdmLGNBQWMsUUFDbEI7d0JBQ0osaUJBQWlCLEVBQUUsTUFBTTt3QkFDekIsT0FBTyxFQUFFLGdDQUFnQztxQkFDMUMsYUFDVSxDQUFFLHVDQUF1QyxDQUFFLFVBQzlDLENBQUUsVUFBVSxDQUFFLG1CQUNMLHVCQUF1QixDQUFDLE1BQU07OzBCQXFINUMsU0FBUzsyQkFBQyxVQUFVOzRDQXpHZCxFQUFFO3NCQUFWLEtBQUs7Z0JBU2UsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQUtPLGNBQWM7c0JBQXZDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUdDLFFBQVE7c0JBQWhDLEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLO2dCQW1CRixRQUFRO3NCQURYLEtBQUs7Z0JBb0JGLGFBQWE7c0JBRGhCLEtBQUs7Z0JBZ0JHLElBQUk7c0JBQVosS0FBSztnQkFJYSxNQUFNO3NCQUF4QixNQUFNO2dCQUdZLG1CQUFtQjtzQkFBckMsTUFBTTtnQkFHRSxLQUFLO3NCQUFiLEtBQUs7Z0JBTWdDLGFBQWE7c0JBQWxELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSdcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJ1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQXR0cmlidXRlLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcblxuaW1wb3J0IHsgQ2FuRGlzYWJsZSwgQ2FuRGlzYWJsZUN0b3IsIEhhc1RhYkluZGV4LCBIYXNUYWJJbmRleEN0b3IsIElucHV0Qm9vbGVhbiwgbWl4aW5EaXNhYmxlZCwgbWl4aW5UYWJJbmRleCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jb3JlJ1xuXG4vLyBOT1RFOiBQYXJ0aWFsbHkgYmFzZWQgb24gbWF0LWNoZWNrYm94OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFzdGVyL3NyYy9tYXRlcmlhbC9jaGVja2JveC9jaGVja2JveC50c1xuXG4vKiogQ2hhbmdlIGV2ZW50IG9iamVjdCBlbWl0dGVkIGJ5IFRoZVNlYW1DaGVja2JveENvbXBvbmVudC4gKi9cbmV4cG9ydCBjbGFzcyBUaGVTZWFtQ2hlY2tib3hDaGFuZ2Uge1xuICAvKiogVGhlIHNvdXJjZSBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnQgb2YgdGhlIGV2ZW50LiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnRcbiAgLyoqIFRoZSBuZXcgYGNoZWNrZWRgIHZhbHVlIG9mIHRoZSBjaGVja2JveC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGNoZWNrZWQ6IGJvb2xlYW5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zb3VyY2U6IFRoZVNlYW1DaGVja2JveENvbXBvbmVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGVja2VkOiBib29sZWFuXG4gICkge1xuICAgIHRoaXMuc291cmNlID0gX3NvdXJjZVxuICAgIHRoaXMuY2hlY2tlZCA9IF9jaGVja2VkXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFRIRVNFQU1fQ0hFQ0tCT1hfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby11c2UtYmVmb3JlLWRlY2xhcmVcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGhlU2VhbUNoZWNrYm94Q29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWVcbn1cblxuY2xhc3MgVGhlU2VhbUNoZWNrYm94Q29tcG9uZW50QmFzZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cbn1cblxuY29uc3QgX1RoZVNlYW1DaGVja2JveE1peGluQmFzZTogSGFzVGFiSW5kZXhDdG9yICYgQ2FuRGlzYWJsZUN0b3IgJlxuICB0eXBlb2YgVGhlU2VhbUNoZWNrYm94Q29tcG9uZW50QmFzZSA9XG4gICAgbWl4aW5UYWJJbmRleChtaXhpbkRpc2FibGVkKFRoZVNlYW1DaGVja2JveENvbXBvbmVudEJhc2UpKVxuXG5sZXQgX3VpZCA9IDBcblxuLyoqXG4gKiBBIENoZWNrYm94LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdzZWFtQ2hlY2tib3gnLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICdudWxsJyxcbiAgICAnY2xhc3MnOiAnY3VzdG9tLWNvbnRyb2wgY3VzdG9tLWNoZWNrYm94J1xuICB9LFxuICBwcm92aWRlcnM6IFsgVEhFU0VBTV9DSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SIF0sXG4gIGlucHV0czogWyAndGFiSW5kZXgnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1DaGVja2JveENvbXBvbmVudCBleHRlbmRzIF9UaGVTZWFtQ2hlY2tib3hNaXhpbkJhc2VcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBDYW5EaXNhYmxlLCBIYXNUYWJJbmRleCB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9jaGVja2VkOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2luZGV0ZXJtaW5hdGU6IEJvb2xlYW5JbnB1dFxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3VpZCA9IGBzZWFtLWNoay0ke191aWQrK31gXG5cbiAgLyoqIEEgdW5pcXVlIGlkIGZvciB0aGUgY2hlY2tib3ggaW5wdXQuIElmIG5vbmUgaXMgc3VwcGxpZWQsIGl0IHdpbGwgYmUgYXV0by1nZW5lcmF0ZWQuICovXG4gIEBJbnB1dCgpIGlkPzogc3RyaW5nID0gdGhpcy5fdWlkXG5cbiAgLyoqIFJldHVybnMgdGhlIHVuaXF1ZSBpZCBmb3IgdGhlIGlucHV0LiAqL1xuICBnZXQgaW5wdXRJZCgpOiBzdHJpbmcgeyByZXR1cm4gYCR7dGhpcy5pZCB8fCB0aGlzLl91aWR9YCB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVkIHRvIHRoZSBhcmlhLWxhYmVsIGF0dHJpYnV0ZSBvZiB0aGUgaG9zdCBlbGVtZW50LiBJbiBtb3N0IGNhc2VzLCBhcmlhLWxhYmVsbGVkYnkgd2lsbFxuICAgKiB0YWtlIHByZWNlZGVuY2Ugc28gdGhpcyBtYXkgYmUgb21pdHRlZC5cbiAgICovXG4gIEBJbnB1dCgnYXJpYS1sYWJlbCcpIGFyaWFMYWJlbD86IHN0cmluZyA9ICcnXG5cbiAgLyoqXG4gICAqIFVzZXJzIGNhbiBzcGVjaWZ5IHRoZSBgYXJpYS1sYWJlbGxlZGJ5YCBhdHRyaWJ1dGUgd2hpY2ggd2lsbCBiZSBmb3J3YXJkZWQgdG8gdGhlIGlucHV0IGVsZW1lbnRcbiAgICovXG4gIEBJbnB1dCgnYXJpYS1sYWJlbGxlZGJ5JykgYXJpYUxhYmVsbGVkYnk/OiBzdHJpbmcgfCBudWxsID0gbnVsbFxuXG4gIC8qKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyByZXF1aXJlZC4gKi9cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHJlcXVpcmVkID0gZmFsc2VcblxuICAvKiogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZC4gKi9cbiAgQElucHV0KClcbiAgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9jaGVja2VkIH1cbiAgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSlcblxuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5jaGVja2VkKSB7XG4gICAgICB0aGlzLl9jaGVja2VkID0gbmV3VmFsdWVcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpXG4gICAgfVxuICB9XG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2NoZWNrZWQgPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIC8vIFRoaXMgZnVsbHkgb3ZlcnJpZGVzIHRoZSBpbXBsZW1lbnRhdGlvbiBwcm92aWRlZCBieSBtaXhpbkRpc2FibGVkLCBidXQgdGhlXG4gIC8vIG1peGluIGlzIHN0aWxsIHJlcXVpcmVkIGJlY2F1c2UgbWl4aW5UYWJJbmRleCByZXF1aXJlcyBpdC5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSlcblxuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPSBuZXdWYWx1ZVxuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBpbmRldGVybWluYXRlLiBUaGlzIGlzIGFsc28ga25vd24gYXMgXCJtaXhlZFwiIG1vZGUgYW5kIGNhbiBiZSB1c2VkIHRvXG4gICAqIHJlcHJlc2VudCBhIGNoZWNrYm94IHdpdGggdGhyZWUgc3RhdGVzLCBlLmcuIGEgY2hlY2tib3ggdGhhdCByZXByZXNlbnRzIGEgbmVzdGVkIGxpc3Qgb2ZcbiAgICogY2hlY2thYmxlIGl0ZW1zLiBOb3RlIHRoYXQgd2hlbmV2ZXIgY2hlY2tib3ggaXMgbWFudWFsbHkgY2xpY2tlZCwgaW5kZXRlcm1pbmF0ZSBpcyBpbW1lZGlhdGVseVxuICAgKiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2luZGV0ZXJtaW5hdGUgfVxuICBzZXQgaW5kZXRlcm1pbmF0ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IGNoYW5nZWQgPSB2YWx1ZSAhPT0gdGhpcy5faW5kZXRlcm1pbmF0ZVxuICAgIHRoaXMuX2luZGV0ZXJtaW5hdGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpXG5cbiAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgdGhpcy5pbmRldGVybWluYXRlQ2hhbmdlLmVtaXQodGhpcy5faW5kZXRlcm1pbmF0ZSlcbiAgICB9XG5cbiAgICB0aGlzLl9zeW5jSW5kZXRlcm1pbmF0ZSh0aGlzLl9pbmRldGVybWluYXRlKVxuICB9XG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2luZGV0ZXJtaW5hdGUgPSBmYWxzZVxuXG4gIC8qKiBOYW1lIHZhbHVlIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgaW5wdXQgZWxlbWVudCBpZiBwcmVzZW50ICovXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgPSBudWxsXG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2hlY2tib3gncyBgY2hlY2tlZGAgdmFsdWUgY2hhbmdlcy4gKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSByZWFkb25seSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRoZVNlYW1DaGVja2JveENoYW5nZT4oKVxuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNoZWNrYm94J3MgYGluZGV0ZXJtaW5hdGVgIHZhbHVlIGNoYW5nZXMuICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBpbmRldGVybWluYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcblxuICAvKiogVGhlIHZhbHVlIGF0dHJpYnV0ZSBvZiB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQgKi9cbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICAvKipcbiAgICogVGhlIG5hdGl2ZSBgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPmAgZWxlbWVudFxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIF9pbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBjaGVja2JveCBpcyBibHVycmVkLiBOZWVkZWQgdG8gcHJvcGVybHkgaW1wbGVtZW50IENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBfb25Ub3VjaGVkOiAoKSA9PiBhbnkgPSAoKSA9PiB7fVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm46ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge31cblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBAQXR0cmlidXRlKCd0YWJpbmRleCcpIHRhYkluZGV4OiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZilcblxuICAgIHRoaXMudGFiSW5kZXggPSBwYXJzZUludCh0YWJJbmRleCwgMTApIHx8IDBcblxuICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKGVsZW1lbnRSZWYsIHRydWUpLnN1YnNjcmliZShmb2N1c09yaWdpbiA9PiB7XG4gICAgICBpZiAoIWZvY3VzT3JpZ2luKSB7XG4gICAgICAgIC8vIFdoZW4gYSBmb2N1c2VkIGVsZW1lbnQgYmVjb21lcyBkaXNhYmxlZCwgdGhlIGJyb3dzZXIgKmltbWVkaWF0ZWx5KiBmaXJlcyBhIGJsdXIgZXZlbnQuXG4gICAgICAgIC8vIEFuZ3VsYXIgZG9lcyBub3QgZXhwZWN0IGV2ZW50cyB0byBiZSByYWlzZWQgZHVyaW5nIGNoYW5nZSBkZXRlY3Rpb24sIHNvIGFueSBzdGF0ZSBjaGFuZ2VcbiAgICAgICAgLy8gKHN1Y2ggYXMgYSBmb3JtIGNvbnRyb2wncyAnbmctdG91Y2hlZCcpIHdpbGwgY2F1c2UgYSBjaGFuZ2VkLWFmdGVyLWNoZWNrZWQgZXJyb3IuXG4gICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xNzc5My4gVG8gd29yayBhcm91bmQgdGhpcywgd2UgZGVmZXJcbiAgICAgICAgLy8gdGVsbGluZyB0aGUgZm9ybSBjb250cm9sIGl0IGhhcyBiZWVuIHRvdWNoZWQgdW50aWwgdGhlIG5leHQgdGljay5cbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fb25Ub3VjaGVkKClcbiAgICAgICAgICBfY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fc3luY0luZGV0ZXJtaW5hdGUodGhpcy5faW5kZXRlcm1pbmF0ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgYmVpbmcgY2FsbGVkIHdoZW5ldmVyIHRoZSBsYWJlbCB0ZXh0IGNoYW5nZXMuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIF9vbkxhYmVsVGV4dENoYW5nZSgpIHtcbiAgICAvLyBTaW5jZSB0aGUgZXZlbnQgb2YgdGhlIGBjZGtPYnNlcnZlQ29udGVudGAgZGlyZWN0aXZlIHJ1bnMgb3V0c2lkZSBvZiB0aGUgem9uZSwgdGhlIGNoZWNrYm94XG4gICAgLy8gY29tcG9uZW50IHdpbGwgYmUgb25seSBtYXJrZWQgZm9yIGNoZWNrLCBidXQgbm8gYWN0dWFsIGNoYW5nZSBkZXRlY3Rpb24gcnVucyBhdXRvbWF0aWNhbGx5LlxuICAgIC8vIEluc3RlYWQgb2YgZ29pbmcgYmFjayBpbnRvIHRoZSB6b25lIGluIG9yZGVyIHRvIHRyaWdnZXIgYSBjaGFuZ2UgZGV0ZWN0aW9uIHdoaWNoIGNhdXNlc1xuICAgIC8vICphbGwqIGNvbXBvbmVudHMgdG8gYmUgY2hlY2tlZCAoaWYgZXhwbGljaXRseSBtYXJrZWQgb3Igbm90IHVzaW5nIE9uUHVzaCksIHdlIG9ubHkgdHJpZ2dlclxuICAgIC8vIGFuIGV4cGxpY2l0IGNoYW5nZSBkZXRlY3Rpb24gZm9yIHRoZSBjaGVja2JveCB2aWV3IGFuZCBpdHMgY2hpbGRyZW4uXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAvKiogQGlnbm9yZSAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhIXZhbHVlXG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAvKiogQGlnbm9yZSAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuICAgIHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gPSBmblxuICB9XG5cbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuXG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAvKiogQGlnbm9yZSAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZFxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2dldEFyaWFDaGVja2VkKCk6ICd0cnVlJyB8ICdmYWxzZScgfCAnbWl4ZWQnIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja2VkID8gJ3RydWUnIDogKHRoaXMuaW5kZXRlcm1pbmF0ZSA/ICdtaXhlZCcgOiAnZmFsc2UnKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZW1pdENoYW5nZUV2ZW50KCkge1xuICAgIGNvbnN0IGV2ZW50ID0gbmV3IFRoZVNlYW1DaGVja2JveENoYW5nZSh0aGlzLCB0aGlzLmNoZWNrZWQpXG5cbiAgICB0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKHRoaXMuY2hlY2tlZClcbiAgICB0aGlzLmNoYW5nZS5lbWl0KGV2ZW50KVxuICB9XG5cbiAgLyoqIFRvZ2dsZXMgdGhlIGBjaGVja2VkYCBzdGF0ZSBvZiB0aGUgY2hlY2tib3guICovXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkXG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBmb3IgY2hlY2tib3ggaW5wdXQgZWxlbWVudC5cbiAgICogVG9nZ2xlcyBjaGVja2VkIHN0YXRlIGlmIGVsZW1lbnQgaXMgbm90IGRpc2FibGVkLlxuICAgKiBEbyBub3QgdG9nZ2xlIG9uIChjaGFuZ2UpIGV2ZW50IHNpbmNlIElFIGRvZXNuJ3QgZmlyZSBjaGFuZ2UgZXZlbnQgd2hlblxuICAgKiAgIGluZGV0ZXJtaW5hdGUgY2hlY2tib3ggaXMgY2xpY2tlZC5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgX29uSW5wdXRDbGljayhldmVudDogRXZlbnQpIHtcbiAgICAvLyBJZiByZXNldEluZGV0ZXJtaW5hdGUgaXMgZmFsc2UsIGFuZCB0aGUgY3VycmVudCBzdGF0ZSBpcyBpbmRldGVybWluYXRlLCBkbyBub3RoaW5nIG9uIGNsaWNrXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvLyBXaGVuIHVzZXIgbWFudWFsbHkgY2xpY2sgb24gdGhlIGNoZWNrYm94LCBgaW5kZXRlcm1pbmF0ZWAgaXMgc2V0IHRvIGZhbHNlLlxuICAgICAgaWYgKHRoaXMuaW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9pbmRldGVybWluYXRlID0gZmFsc2VcbiAgICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGVDaGFuZ2UuZW1pdCh0aGlzLl9pbmRldGVybWluYXRlKVxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICB0aGlzLnRvZ2dsZSgpXG5cbiAgICAgIC8vIEVtaXQgb3VyIGN1c3RvbSBjaGFuZ2UgZXZlbnQgaWYgdGhlIG5hdGl2ZSBpbnB1dCBlbWl0dGVkIG9uZS5cbiAgICAgIC8vIEl0IGlzIGltcG9ydGFudCB0byBvbmx5IGVtaXQgaXQsIGlmIHRoZSBuYXRpdmUgaW5wdXQgdHJpZ2dlcmVkIG9uZSwgYmVjYXVzZVxuICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIGEgY2hhbmdlIGV2ZW50LCB3aGVuIHRoZSBgY2hlY2tlZGAgdmFyaWFibGUgY2hhbmdlcyBmb3IgZXhhbXBsZS5cbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpXG4gICAgfVxuICB9XG5cbiAgLyoqIEZvY3VzZXMgdGhlIGNoZWNrYm94LiAqL1xuICBmb2N1cyhvcmlnaW46IEZvY3VzT3JpZ2luID0gJ2tleWJvYXJkJywgb3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50KSB7IHJldHVybiB9XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2lucHV0RWxlbWVudCwgb3JpZ2luLCBvcHRpb25zKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX29uSW50ZXJhY3Rpb25FdmVudChldmVudDogRXZlbnQpIHtcbiAgICAvLyBXZSBhbHdheXMgaGF2ZSB0byBzdG9wIHByb3BhZ2F0aW9uIG9uIHRoZSBjaGFuZ2UgZXZlbnQuXG4gICAgLy8gT3RoZXJ3aXNlIHRoZSBjaGFuZ2UgZXZlbnQsIGZyb20gdGhlIGlucHV0IGVsZW1lbnQsIHdpbGwgYnViYmxlIHVwIGFuZFxuICAgIC8vIGVtaXQgaXRzIGV2ZW50IG9iamVjdCB0byB0aGUgYGNoYW5nZWAgb3V0cHV0LlxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gIH1cblxuICAvKipcbiAgICogU3luY3MgdGhlIGluZGV0ZXJtaW5hdGUgdmFsdWUgd2l0aCB0aGUgY2hlY2tib3ggRE9NIG5vZGUuXG4gICAqXG4gICAqIFdlIHN5bmMgYGluZGV0ZXJtaW5hdGVgIGRpcmVjdGx5IG9uIHRoZSBET00gbm9kZSwgYmVjYXVzZSBpbiBJdnkgdGhlIGNoZWNrIGZvciB3aGV0aGVyIGFcbiAgICogcHJvcGVydHkgaXMgc3VwcG9ydGVkIG9uIGFuIGVsZW1lbnQgYm9pbHMgZG93biB0byBgaWYgKHByb3BOYW1lIGluIGVsZW1lbnQpYC4gRG9taW5vJ3NcbiAgICogSFRNTElucHV0RWxlbWVudCBkb2Vzbid0IGhhdmUgYW4gYGluZGV0ZXJtaW5hdGVgIHByb3BlcnR5IHNvIEl2eSB3aWxsIHdhcm4gZHVyaW5nXG4gICAqIHNlcnZlci1zaWRlIHJlbmRlcmluZy5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfc3luY0luZGV0ZXJtaW5hdGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBuYXRpdmVDaGVja2JveCA9IHRoaXMuX2lucHV0RWxlbWVudFxuXG4gICAgaWYgKG5hdGl2ZUNoZWNrYm94KSB7XG4gICAgICBuYXRpdmVDaGVja2JveC5uYXRpdmVFbGVtZW50LmluZGV0ZXJtaW5hdGUgPSB2YWx1ZVxuICAgIH1cbiAgfVxuXG59XG4iLCI8aW5wdXQgI2lucHV0XG4gIHR5cGU9XCJjaGVja2JveFwiXG4gIGNsYXNzPVwiY3VzdG9tLWNvbnRyb2wtaW5wdXRcIlxuICBbaWRdPVwiaW5wdXRJZFwiXG4gIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICBbYXR0ci52YWx1ZV09XCJ2YWx1ZVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8IG51bGxcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkYnlcIlxuICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiX2dldEFyaWFDaGVja2VkKClcIlxuICAoY2hhbmdlKT1cIl9vbkludGVyYWN0aW9uRXZlbnQoJGV2ZW50KVwiXG4gIChjbGljayk9XCJfb25JbnB1dENsaWNrKCRldmVudClcIj5cbjxsYWJlbCAjY2hlY2tib3hMYWJlbFxuICBjbGFzcz1cImN1c3RvbS1jb250cm9sLWxhYmVsXCJcbiAgW2F0dHIuZm9yXT1cImlucHV0SWRcIlxuICAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwiX29uTGFiZWxUZXh0Q2hhbmdlKClcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9sYWJlbD5cbiJdfQ==
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUVMLFNBQVMsRUFDVCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXhFLE9BQU8sRUFBNEQsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTs7OztBQUU5SSw2SEFBNkg7QUFFN0gsK0RBQStEO0FBQy9ELE1BQU0sT0FBTyxxQkFBcUI7SUFNaEMsWUFDbUIsT0FBaUMsRUFDakMsUUFBaUI7UUFEakIsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFDakMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUVsQyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQTtRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQTtJQUN6QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBUTtJQUMxRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLGtEQUFrRDtJQUNsRCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdB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Q0FBQyxhQUFhLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQTtTQUNuRDtJQUNILENBQUM7O3FIQWpRVSx3QkFBd0IsK0hBbUh0QixVQUFVO3lHQW5IWix3QkFBd0IscWZBSnhCLENBQUUsdUNBQXVDLENBQUUsbU1DM0V4RCwwbkJBcUJBLHlERDhDSSxZQUFZLDhCQUNaLGVBQWU7QUFzQ1E7SUFBZixZQUFZLEVBQUU7MERBQWlCOzJGQTNCOUIsd0JBQXdCO2tCQWxCcEMsU0FBUzsrQkFDRSxlQUFlLGNBR2IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTtxQkFDaEIsWUFDUyxjQUFjLFFBQ2xCO3dCQUNKLGlCQUFpQixFQUFFLE1BQU07d0JBQ3pCLE9BQU8sRUFBRSxnQ0FBZ0M7cUJBQzFDLGFBQ1UsQ0FBRSx1Q0FBdUMsQ0FBRSxVQUM5QyxDQUFFLFVBQVUsQ0FBRSxtQkFDTCx1QkFBdUIsQ0FBQyxNQUFNOzswQkFxSDVDLFNBQVM7MkJBQUMsVUFBVTs0Q0F6R2QsRUFBRTtzQkFBVixLQUFLO2dCQVNlLFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWTtnQkFLTyxjQUFjO3NCQUF2QyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFHQyxRQUFRO3NCQUFoQyxLQUFLO2dCQUlGLE9BQU87c0JBRFYsS0FBSztnQkFtQkYsUUFBUTtzQkFEWCxLQUFLO2dCQW9CRixhQUFhO3NCQURoQixLQUFLO2dCQWdCRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSWEsTUFBTTtzQkFBeEIsTUFBTTtnQkFHWSxtQkFBbUI7c0JBQXJDLE1BQU07Z0JBR0UsS0FBSztzQkFBYixLQUFLO2dCQU1nQyxhQUFhO3NCQUFsRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7IE9ic2VydmVyc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vYnNlcnZlcnMnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBBdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuXG5pbXBvcnQgeyBDYW5EaXNhYmxlLCBDYW5EaXNhYmxlQ3RvciwgSGFzVGFiSW5kZXgsIEhhc1RhYkluZGV4Q3RvciwgSW5wdXRCb29sZWFuLCBtaXhpbkRpc2FibGVkLCBtaXhpblRhYkluZGV4IH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvcmUnXG5cbi8vIE5PVEU6IFBhcnRpYWxseSBiYXNlZCBvbiBtYXQtY2hlY2tib3g6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYXN0ZXIvc3JjL21hdGVyaWFsL2NoZWNrYm94L2NoZWNrYm94LnRzXG5cbi8qKiBDaGFuZ2UgZXZlbnQgb2JqZWN0IGVtaXR0ZWQgYnkgVGhlU2VhbUNoZWNrYm94Q29tcG9uZW50LiAqL1xuZXhwb3J0IGNsYXNzIFRoZVNlYW1DaGVja2JveENoYW5nZSB7XG4gIC8qKiBUaGUgc291cmNlIFRoZVNlYW1DaGVja2JveENvbXBvbmVudCBvZiB0aGUgZXZlbnQuICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IFRoZVNlYW1DaGVja2JveENvbXBvbmVudFxuICAvKiogVGhlIG5ldyBgY2hlY2tlZGAgdmFsdWUgb2YgdGhlIGNoZWNrYm94LiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2hlY2tlZDogYm9vbGVhblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3NvdXJjZTogVGhlU2VhbUNoZWNrYm94Q29tcG9uZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoZWNrZWQ6IGJvb2xlYW5cbiAgKSB7XG4gICAgdGhpcy5zb3VyY2UgPSBfc291cmNlXG4gICAgdGhpcy5jaGVja2VkID0gX2NoZWNrZWRcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgVEhFU0VBTV9DSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXVzZS1iZWZvcmUtZGVjbGFyZVxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZVxufVxuXG5jbGFzcyBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnRCYXNlIHtcbiAgY29uc3RydWN0b3IocHVibGljIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxufVxuXG5jb25zdCBfVGhlU2VhbUNoZWNrYm94TWl4aW5CYXNlOiBIYXNUYWJJbmRleEN0b3IgJiBDYW5EaXNhYmxlQ3RvciAmXG4gIHR5cGVvZiBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnRCYXNlID1cbiAgICBtaXhpblRhYkluZGV4KG1peGluRGlzYWJsZWQoVGhlU2VhbUNoZWNrYm94Q29tcG9uZW50QmFzZSkpXG5cbmxldCBfdWlkID0gMFxuXG4vKipcbiAqIEEgQ2hlY2tib3guXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tY2hlY2tib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE9ic2VydmVyc01vZHVsZSxcbiAgXSxcbiAgZXhwb3J0QXM6ICdzZWFtQ2hlY2tib3gnLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICdudWxsJyxcbiAgICAnY2xhc3MnOiAnY3VzdG9tLWNvbnRyb2wgY3VzdG9tLWNoZWNrYm94J1xuICB9LFxuICBwcm92aWRlcnM6IFsgVEhFU0VBTV9DSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SIF0sXG4gIGlucHV0czogWyAndGFiSW5kZXgnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1DaGVja2JveENvbXBvbmVudCBleHRlbmRzIF9UaGVTZWFtQ2hlY2tib3hNaXhpbkJhc2VcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBDYW5EaXNhYmxlLCBIYXNUYWJJbmRleCB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9jaGVja2VkOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2luZGV0ZXJtaW5hdGU6IEJvb2xlYW5JbnB1dFxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3VpZCA9IGBzZWFtLWNoay0ke191aWQrK31gXG5cbiAgLyoqIEEgdW5pcXVlIGlkIGZvciB0aGUgY2hlY2tib3ggaW5wdXQuIElmIG5vbmUgaXMgc3VwcGxpZWQsIGl0IHdpbGwgYmUgYXV0by1nZW5lcmF0ZWQuICovXG4gIEBJbnB1dCgpIGlkPzogc3RyaW5nID0gdGhpcy5fdWlkXG5cbiAgLyoqIFJldHVybnMgdGhlIHVuaXF1ZSBpZCBmb3IgdGhlIGlucHV0LiAqL1xuICBnZXQgaW5wdXRJZCgpOiBzdHJpbmcgeyByZXR1cm4gYCR7dGhpcy5pZCB8fCB0aGlzLl91aWR9YCB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVkIHRvIHRoZSBhcmlhLWxhYmVsIGF0dHJpYnV0ZSBvZiB0aGUgaG9zdCBlbGVtZW50LiBJbiBtb3N0IGNhc2VzLCBhcmlhLWxhYmVsbGVkYnkgd2lsbFxuICAgKiB0YWtlIHByZWNlZGVuY2Ugc28gdGhpcyBtYXkgYmUgb21pdHRlZC5cbiAgICovXG4gIEBJbnB1dCgnYXJpYS1sYWJlbCcpIGFyaWFMYWJlbD86IHN0cmluZyA9ICcnXG5cbiAgLyoqXG4gICAqIFVzZXJzIGNhbiBzcGVjaWZ5IHRoZSBgYXJpYS1sYWJlbGxlZGJ5YCBhdHRyaWJ1dGUgd2hpY2ggd2lsbCBiZSBmb3J3YXJkZWQgdG8gdGhlIGlucHV0IGVsZW1lbnRcbiAgICovXG4gIEBJbnB1dCgnYXJpYS1sYWJlbGxlZGJ5JykgYXJpYUxhYmVsbGVkYnk/OiBzdHJpbmcgfCBudWxsID0gbnVsbFxuXG4gIC8qKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyByZXF1aXJlZC4gKi9cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHJlcXVpcmVkID0gZmFsc2VcblxuICAvKiogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZC4gKi9cbiAgQElucHV0KClcbiAgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9jaGVja2VkIH1cbiAgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSlcblxuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5jaGVja2VkKSB7XG4gICAgICB0aGlzLl9jaGVja2VkID0gbmV3VmFsdWVcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpXG4gICAgfVxuICB9XG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2NoZWNrZWQgPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIC8vIFRoaXMgZnVsbHkgb3ZlcnJpZGVzIHRoZSBpbXBsZW1lbnRhdGlvbiBwcm92aWRlZCBieSBtaXhpbkRpc2FibGVkLCBidXQgdGhlXG4gIC8vIG1peGluIGlzIHN0aWxsIHJlcXVpcmVkIGJlY2F1c2UgbWl4aW5UYWJJbmRleCByZXF1aXJlcyBpdC5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSlcblxuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPSBuZXdWYWx1ZVxuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBpbmRldGVybWluYXRlLiBUaGlzIGlzIGFsc28ga25vd24gYXMgXCJtaXhlZFwiIG1vZGUgYW5kIGNhbiBiZSB1c2VkIHRvXG4gICAqIHJlcHJlc2VudCBhIGNoZWNrYm94IHdpdGggdGhyZWUgc3RhdGVzLCBlLmcuIGEgY2hlY2tib3ggdGhhdCByZXByZXNlbnRzIGEgbmVzdGVkIGxpc3Qgb2ZcbiAgICogY2hlY2thYmxlIGl0ZW1zLiBOb3RlIHRoYXQgd2hlbmV2ZXIgY2hlY2tib3ggaXMgbWFudWFsbHkgY2xpY2tlZCwgaW5kZXRlcm1pbmF0ZSBpcyBpbW1lZGlhdGVseVxuICAgKiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2luZGV0ZXJtaW5hdGUgfVxuICBzZXQgaW5kZXRlcm1pbmF0ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IGNoYW5nZWQgPSB2YWx1ZSAhPT0gdGhpcy5faW5kZXRlcm1pbmF0ZVxuICAgIHRoaXMuX2luZGV0ZXJtaW5hdGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpXG5cbiAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgdGhpcy5pbmRldGVybWluYXRlQ2hhbmdlLmVtaXQodGhpcy5faW5kZXRlcm1pbmF0ZSlcbiAgICB9XG5cbiAgICB0aGlzLl9zeW5jSW5kZXRlcm1pbmF0ZSh0aGlzLl9pbmRldGVybWluYXRlKVxuICB9XG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2luZGV0ZXJtaW5hdGUgPSBmYWxzZVxuXG4gIC8qKiBOYW1lIHZhbHVlIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgaW5wdXQgZWxlbWVudCBpZiBwcmVzZW50ICovXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgPSBudWxsXG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2hlY2tib3gncyBgY2hlY2tlZGAgdmFsdWUgY2hhbmdlcy4gKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSByZWFkb25seSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRoZVNlYW1DaGVja2JveENoYW5nZT4oKVxuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNoZWNrYm94J3MgYGluZGV0ZXJtaW5hdGVgIHZhbHVlIGNoYW5nZXMuICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBpbmRldGVybWluYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcblxuICAvKiogVGhlIHZhbHVlIGF0dHJpYnV0ZSBvZiB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQgKi9cbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICAvKipcbiAgICogVGhlIG5hdGl2ZSBgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPmAgZWxlbWVudFxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIF9pbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBjaGVja2JveCBpcyBibHVycmVkLiBOZWVkZWQgdG8gcHJvcGVybHkgaW1wbGVtZW50IENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBfb25Ub3VjaGVkOiAoKSA9PiBhbnkgPSAoKSA9PiB7fVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm46ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge31cblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBAQXR0cmlidXRlKCd0YWJpbmRleCcpIHRhYkluZGV4OiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZilcblxuICAgIHRoaXMudGFiSW5kZXggPSBwYXJzZUludCh0YWJJbmRleCwgMTApIHx8IDBcblxuICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKGVsZW1lbnRSZWYsIHRydWUpLnN1YnNjcmliZShmb2N1c09yaWdpbiA9PiB7XG4gICAgICBpZiAoIWZvY3VzT3JpZ2luKSB7XG4gICAgICAgIC8vIFdoZW4gYSBmb2N1c2VkIGVsZW1lbnQgYmVjb21lcyBkaXNhYmxlZCwgdGhlIGJyb3dzZXIgKmltbWVkaWF0ZWx5KiBmaXJlcyBhIGJsdXIgZXZlbnQuXG4gICAgICAgIC8vIEFuZ3VsYXIgZG9lcyBub3QgZXhwZWN0IGV2ZW50cyB0byBiZSByYWlzZWQgZHVyaW5nIGNoYW5nZSBkZXRlY3Rpb24sIHNvIGFueSBzdGF0ZSBjaGFuZ2VcbiAgICAgICAgLy8gKHN1Y2ggYXMgYSBmb3JtIGNvbnRyb2wncyAnbmctdG91Y2hlZCcpIHdpbGwgY2F1c2UgYSBjaGFuZ2VkLWFmdGVyLWNoZWNrZWQgZXJyb3IuXG4gICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xNzc5My4gVG8gd29yayBhcm91bmQgdGhpcywgd2UgZGVmZXJcbiAgICAgICAgLy8gdGVsbGluZyB0aGUgZm9ybSBjb250cm9sIGl0IGhhcyBiZWVuIHRvdWNoZWQgdW50aWwgdGhlIG5leHQgdGljay5cbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fb25Ub3VjaGVkKClcbiAgICAgICAgICBfY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fc3luY0luZGV0ZXJtaW5hdGUodGhpcy5faW5kZXRlcm1pbmF0ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgYmVpbmcgY2FsbGVkIHdoZW5ldmVyIHRoZSBsYWJlbCB0ZXh0IGNoYW5nZXMuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIF9vbkxhYmVsVGV4dENoYW5nZSgpIHtcbiAgICAvLyBTaW5jZSB0aGUgZXZlbnQgb2YgdGhlIGBjZGtPYnNlcnZlQ29udGVudGAgZGlyZWN0aXZlIHJ1bnMgb3V0c2lkZSBvZiB0aGUgem9uZSwgdGhlIGNoZWNrYm94XG4gICAgLy8gY29tcG9uZW50IHdpbGwgYmUgb25seSBtYXJrZWQgZm9yIGNoZWNrLCBidXQgbm8gYWN0dWFsIGNoYW5nZSBkZXRlY3Rpb24gcnVucyBhdXRvbWF0aWNhbGx5LlxuICAgIC8vIEluc3RlYWQgb2YgZ29pbmcgYmFjayBpbnRvIHRoZSB6b25lIGluIG9yZGVyIHRvIHRyaWdnZXIgYSBjaGFuZ2UgZGV0ZWN0aW9uIHdoaWNoIGNhdXNlc1xuICAgIC8vICphbGwqIGNvbXBvbmVudHMgdG8gYmUgY2hlY2tlZCAoaWYgZXhwbGljaXRseSBtYXJrZWQgb3Igbm90IHVzaW5nIE9uUHVzaCksIHdlIG9ubHkgdHJpZ2dlclxuICAgIC8vIGFuIGV4cGxpY2l0IGNoYW5nZSBkZXRlY3Rpb24gZm9yIHRoZSBjaGVja2JveCB2aWV3IGFuZCBpdHMgY2hpbGRyZW4uXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAvKiogQGlnbm9yZSAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhIXZhbHVlXG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAvKiogQGlnbm9yZSAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuICAgIHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gPSBmblxuICB9XG5cbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuXG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAvKiogQGlnbm9yZSAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZFxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2dldEFyaWFDaGVja2VkKCk6ICd0cnVlJyB8ICdmYWxzZScgfCAnbWl4ZWQnIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja2VkID8gJ3RydWUnIDogKHRoaXMuaW5kZXRlcm1pbmF0ZSA/ICdtaXhlZCcgOiAnZmFsc2UnKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZW1pdENoYW5nZUV2ZW50KCkge1xuICAgIGNvbnN0IGV2ZW50ID0gbmV3IFRoZVNlYW1DaGVja2JveENoYW5nZSh0aGlzLCB0aGlzLmNoZWNrZWQpXG5cbiAgICB0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKHRoaXMuY2hlY2tlZClcbiAgICB0aGlzLmNoYW5nZS5lbWl0KGV2ZW50KVxuICB9XG5cbiAgLyoqIFRvZ2dsZXMgdGhlIGBjaGVja2VkYCBzdGF0ZSBvZiB0aGUgY2hlY2tib3guICovXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkXG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBmb3IgY2hlY2tib3ggaW5wdXQgZWxlbWVudC5cbiAgICogVG9nZ2xlcyBjaGVja2VkIHN0YXRlIGlmIGVsZW1lbnQgaXMgbm90IGRpc2FibGVkLlxuICAgKiBEbyBub3QgdG9nZ2xlIG9uIChjaGFuZ2UpIGV2ZW50IHNpbmNlIElFIGRvZXNuJ3QgZmlyZSBjaGFuZ2UgZXZlbnQgd2hlblxuICAgKiAgIGluZGV0ZXJtaW5hdGUgY2hlY2tib3ggaXMgY2xpY2tlZC5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgX29uSW5wdXRDbGljayhldmVudDogRXZlbnQpIHtcbiAgICAvLyBJZiByZXNldEluZGV0ZXJtaW5hdGUgaXMgZmFsc2UsIGFuZCB0aGUgY3VycmVudCBzdGF0ZSBpcyBpbmRldGVybWluYXRlLCBkbyBub3RoaW5nIG9uIGNsaWNrXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvLyBXaGVuIHVzZXIgbWFudWFsbHkgY2xpY2sgb24gdGhlIGNoZWNrYm94LCBgaW5kZXRlcm1pbmF0ZWAgaXMgc2V0IHRvIGZhbHNlLlxuICAgICAgaWYgKHRoaXMuaW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9pbmRldGVybWluYXRlID0gZmFsc2VcbiAgICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGVDaGFuZ2UuZW1pdCh0aGlzLl9pbmRldGVybWluYXRlKVxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICB0aGlzLnRvZ2dsZSgpXG5cbiAgICAgIC8vIEVtaXQgb3VyIGN1c3RvbSBjaGFuZ2UgZXZlbnQgaWYgdGhlIG5hdGl2ZSBpbnB1dCBlbWl0dGVkIG9uZS5cbiAgICAgIC8vIEl0IGlzIGltcG9ydGFudCB0byBvbmx5IGVtaXQgaXQsIGlmIHRoZSBuYXRpdmUgaW5wdXQgdHJpZ2dlcmVkIG9uZSwgYmVjYXVzZVxuICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIGEgY2hhbmdlIGV2ZW50LCB3aGVuIHRoZSBgY2hlY2tlZGAgdmFyaWFibGUgY2hhbmdlcyBmb3IgZXhhbXBsZS5cbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpXG4gICAgfVxuICB9XG5cbiAgLyoqIEZvY3VzZXMgdGhlIGNoZWNrYm94LiAqL1xuICBmb2N1cyhvcmlnaW46IEZvY3VzT3JpZ2luID0gJ2tleWJvYXJkJywgb3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50KSB7IHJldHVybiB9XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2lucHV0RWxlbWVudCwgb3JpZ2luLCBvcHRpb25zKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX29uSW50ZXJhY3Rpb25FdmVudChldmVudDogRXZlbnQpIHtcbiAgICAvLyBXZSBhbHdheXMgaGF2ZSB0byBzdG9wIHByb3BhZ2F0aW9uIG9uIHRoZSBjaGFuZ2UgZXZlbnQuXG4gICAgLy8gT3RoZXJ3aXNlIHRoZSBjaGFuZ2UgZXZlbnQsIGZyb20gdGhlIGlucHV0IGVsZW1lbnQsIHdpbGwgYnViYmxlIHVwIGFuZFxuICAgIC8vIGVtaXQgaXRzIGV2ZW50IG9iamVjdCB0byB0aGUgYGNoYW5nZWAgb3V0cHV0LlxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gIH1cblxuICAvKipcbiAgICogU3luY3MgdGhlIGluZGV0ZXJtaW5hdGUgdmFsdWUgd2l0aCB0aGUgY2hlY2tib3ggRE9NIG5vZGUuXG4gICAqXG4gICAqIFdlIHN5bmMgYGluZGV0ZXJtaW5hdGVgIGRpcmVjdGx5IG9uIHRoZSBET00gbm9kZSwgYmVjYXVzZSBpbiBJdnkgdGhlIGNoZWNrIGZvciB3aGV0aGVyIGFcbiAgICogcHJvcGVydHkgaXMgc3VwcG9ydGVkIG9uIGFuIGVsZW1lbnQgYm9pbHMgZG93biB0byBgaWYgKHByb3BOYW1lIGluIGVsZW1lbnQpYC4gRG9taW5vJ3NcbiAgICogSFRNTElucHV0RWxlbWVudCBkb2Vzbid0IGhhdmUgYW4gYGluZGV0ZXJtaW5hdGVgIHByb3BlcnR5IHNvIEl2eSB3aWxsIHdhcm4gZHVyaW5nXG4gICAqIHNlcnZlci1zaWRlIHJlbmRlcmluZy5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfc3luY0luZGV0ZXJtaW5hdGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBuYXRpdmVDaGVja2JveCA9IHRoaXMuX2lucHV0RWxlbWVudFxuXG4gICAgaWYgKG5hdGl2ZUNoZWNrYm94KSB7XG4gICAgICBuYXRpdmVDaGVja2JveC5uYXRpdmVFbGVtZW50LmluZGV0ZXJtaW5hdGUgPSB2YWx1ZVxuICAgIH1cbiAgfVxuXG59XG4iLCI8aW5wdXQgI2lucHV0XG4gIHR5cGU9XCJjaGVja2JveFwiXG4gIGNsYXNzPVwiY3VzdG9tLWNvbnRyb2wtaW5wdXRcIlxuICBbaWRdPVwiaW5wdXRJZFwiXG4gIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICBbYXR0ci52YWx1ZV09XCJ2YWx1ZVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8IG51bGxcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkYnlcIlxuICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiX2dldEFyaWFDaGVja2VkKClcIlxuICAoY2hhbmdlKT1cIl9vbkludGVyYWN0aW9uRXZlbnQoJGV2ZW50KVwiXG4gIChjbGljayk9XCJfb25JbnB1dENsaWNrKCRldmVudClcIj5cbjxsYWJlbCAjY2hlY2tib3hMYWJlbFxuICBjbGFzcz1cImN1c3RvbS1jb250cm9sLWxhYmVsXCJcbiAgW2F0dHIuZm9yXT1cImlucHV0SWRcIlxuICAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwiX29uTGFiZWxUZXh0Q2hhbmdlKClcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9sYWJlbD5cbiJdfQ==
@@ -1,28 +1,21 @@
1
- import { ObserversModule } from '@angular/cdk/observers';
2
- import { CommonModule } from '@angular/common';
3
1
  import { NgModule } from '@angular/core';
4
2
  import { TheSeamCheckboxComponent } from './checkbox.component';
5
3
  import * as i0 from "@angular/core";
4
+ /** @deprecated */
6
5
  export class TheSeamCheckboxModule {
7
6
  }
8
7
  TheSeamCheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- TheSeamCheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamCheckboxModule, declarations: [TheSeamCheckboxComponent], imports: [CommonModule,
10
- ObserversModule], exports: [TheSeamCheckboxComponent] });
11
- TheSeamCheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamCheckboxModule, imports: [CommonModule,
12
- ObserversModule] });
8
+ TheSeamCheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamCheckboxModule, imports: [TheSeamCheckboxComponent], exports: [TheSeamCheckboxComponent] });
9
+ TheSeamCheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamCheckboxModule, imports: [TheSeamCheckboxComponent] });
13
10
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamCheckboxModule, decorators: [{
14
11
  type: NgModule,
15
12
  args: [{
16
- declarations: [
17
- TheSeamCheckboxComponent
18
- ],
19
13
  imports: [
20
- CommonModule,
21
- ObserversModule
14
+ TheSeamCheckboxComponent
22
15
  ],
23
16
  exports: [
24
17
  TheSeamCheckboxComponent
25
18
  ]
26
19
  }]
27
20
  }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2NoZWNrYm94L2NoZWNrYm94Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFeEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUE7O0FBYy9ELE1BQU0sT0FBTyxxQkFBcUI7O2tIQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixpQkFWOUIsd0JBQXdCLGFBR3hCLFlBQVk7UUFDWixlQUFlLGFBR2Ysd0JBQXdCO21IQUdmLHFCQUFxQixZQVA5QixZQUFZO1FBQ1osZUFBZTsyRkFNTixxQkFBcUI7a0JBWmpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHdCQUF3QjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHdCQUF3QjtxQkFDekI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZlcnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94LmNvbXBvbmVudCdcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVGhlU2VhbUNoZWNrYm94Q29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgT2JzZXJ2ZXJzTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVTZWFtQ2hlY2tib3hNb2R1bGUgeyB9XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2NoZWNrYm94L2NoZWNrYm94Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXhDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBOztBQUUvRCxrQkFBa0I7QUFTbEIsTUFBTSxPQUFPLHFCQUFxQjs7a0hBQXJCLHFCQUFxQjttSEFBckIscUJBQXFCLFlBTjlCLHdCQUF3QixhQUd4Qix3QkFBd0I7bUhBR2YscUJBQXFCLFlBTjlCLHdCQUF3QjsyRkFNZixxQkFBcUI7a0JBUmpDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLHdCQUF3QjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHdCQUF3QjtxQkFDekI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZlcnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94LmNvbXBvbmVudCdcblxuLyoqIEBkZXByZWNhdGVkICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgVGhlU2VhbUNoZWNrYm94Q29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVTZWFtQ2hlY2tib3hNb2R1bGUgeyB9XG4iXX0=
@@ -9,7 +9,7 @@ import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
9
9
  import { NgxDatatableModule, ScrollbarHelper } from '@marklb/ngx-datatable';
10
10
  import { ToastrModule } from 'ngx-toastr';
11
11
  import { TheSeamButtonsModule } from '@theseam/ui-common/buttons';
12
- import { TheSeamCheckboxModule } from '@theseam/ui-common/checkbox';
12
+ import { TheSeamCheckboxComponent } from '@theseam/ui-common/checkbox';
13
13
  import { TheSeamConfirmDialogModule } from '@theseam/ui-common/confirm-dialog';
14
14
  import { TheSeamFormFieldModule } from '@theseam/ui-common/form-field';
15
15
  import { TheSeamIconModule } from '@theseam/ui-common/icon';
@@ -81,7 +81,7 @@ TheSeamDatatableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
81
81
  PortalModule,
82
82
  TheSeamConfirmDialogModule,
83
83
  TheSeamPopoverModule,
84
- TheSeamCheckboxModule,
84
+ TheSeamCheckboxComponent,
85
85
  TheSeamFormFieldModule,
86
86
  ReactiveFormsModule,
87
87
  TheSeamTableCellTypeModule], exports: [DatatableComponent,
@@ -122,7 +122,7 @@ TheSeamDatatableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
122
122
  PortalModule,
123
123
  TheSeamConfirmDialogModule,
124
124
  TheSeamPopoverModule,
125
- TheSeamCheckboxModule,
125
+ TheSeamCheckboxComponent,
126
126
  TheSeamFormFieldModule,
127
127
  ReactiveFormsModule,
128
128
  TheSeamTableCellTypeModule] });
@@ -169,7 +169,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
169
169
  PortalModule,
170
170
  TheSeamConfirmDialogModule,
171
171
  TheSeamPopoverModule,
172
- TheSeamCheckboxModule,
172
+ TheSeamCheckboxComponent,
173
173
  TheSeamFormFieldModule,
174
174
  ReactiveFormsModule,
175
175
  TheSeamTableCellTypeModule
@@ -202,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
202
202
  ]
203
203
  }]
204
204
  }] });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvZGF0YXRhYmxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDbkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0s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QjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLFlBQVk7d0JBQ1osMEJBQTBCO3dCQUMxQixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLDBCQUEwQjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6Qix3QkFBd0I7d0JBQ3hCLDRCQUE0Qjt3QkFDNUIsZ0NBQWdDO3dCQUNoQyx5QkFBeUI7d0JBQ3pCLHdCQUF3Qjt3QkFDeEIsK0JBQStCO3dCQUMvQiw4QkFBOEI7d0JBQzlCLGtDQUFrQzt3QkFDbEMsOEJBQThCO3dCQUM5QiwrQkFBK0I7d0JBQy9CLDJCQUEyQjt3QkFDM0IsbUNBQW1DO3dCQUNuQyx5Q0FBeUM7d0JBQ3pDLGdDQUFnQzt3QkFDaEMsNEJBQTRCO3dCQUM1QixtQ0FBbUM7d0JBQ25DLHFDQUFxQzt3QkFDckMsb0NBQW9DO3dCQUNwQyw2QkFBNkI7cUJBQ2hDO29CQUNELFNBQVMsRUFBRTt3QkFDUCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLHNDQUFzQyxFQUFFO3FCQUNqRjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSdcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5cbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnXG5pbXBvcnQgeyBOZ3hEYXRhdGFibGVNb2R1bGUsIFNjcm9sbGJhckhlbHBlciB9IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcbmltcG9ydCB7IFRvYXN0ck1vZHVsZSB9IGZyb20gJ25neC10b2FzdHInXG5cbmltcG9ydCB7IFRoZVNlYW1CdXR0b25zTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2J1dHRvbnMnXG5pbXBvcnQgeyBUaGVTZWFtQ2hlY2tib3hNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vY2hlY2tib3gnXG5pbXBvcnQgeyBUaGVTZWFtQ29uZmlybURpYWxvZ01vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jb25maXJtLWRpYWxvZydcbmltcG9ydCB7IFRoZVNlYW1Gb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZm9ybS1maWVsZCdcbmltcG9ydCB7IFRoZVNlYW1JY29uTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2ljb24nXG5pbXBvcnQgeyBUaGVTZWFtTG9hZGluZ01vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9sb2FkaW5nJ1xuaW1wb3J0IHsgVGhlU2VhbU1lbnVNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vbWVudSdcbmltcG9ydCB7IFRoZVNlYW1Qb3BvdmVyTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3BvcG92ZXInXG5pbXBvcnQgeyBUaGVTZWFtU2hhcmVkTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3NoYXJlZCdcbmltcG9ydCB7IFRoZVNlYW1UYWJsZUNlbGxUeXBlTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3RhYmxlLWNlbGwtdHlwZSdcblxuaW1wb3J0IHsgRGF0YXRhYmxlQWN0aW9uTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1hY3Rpb24tbWVudS1pdGVtL2RhdGF0YWJsZS1hY3Rpb24tbWVudS1pdGVtLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZUFjdGlvbk1lbnVDb21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1hY3Rpb24tbWVudS9kYXRhdGFibGUtYWN0aW9uLW1lbnUuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlQ29sdW1uUHJlZmVyZW5jZXNCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMtYnV0dG9uL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMtYnV0dG9uLmNvbXBvbmVudCcgLy8gdHNsaW50OmRpc2FibGUtbGluZTogbWF4LWxpbmUtbGVuZ3RoXG5pbXBvcnQgeyBEYXRhdGFibGVDb2x1bW5QcmVmZXJlbmNlc0NvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi9kYXRhdGFibGUtY29sdW1uLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZUV4cG9ydEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLWV4cG9ydC1idXR0b24vZGF0YXRhYmxlLWV4cG9ydC1idXR0b24uY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlRm9vdGVyVHBsRGlyZWN0aXZlIH0gZnJvbSAnLi9kYXRhdGFibGUtZm9vdGVyL2RhdGF0YWJsZS1mb290ZXItdHBsLmRpcmVjdGl2ZSdcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVGb290ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RhdGF0YWJsZS1mb290ZXIvZGF0YXRhYmxlLWZvb3Rlci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyQ29sdW1uQ2VudGVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXItY29sdW1uLWNlbnRlci9kYXRhdGFibGUtbWVudS1iYXItY29sdW1uLWNlbnRlci5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyQ29sdW1uTGVmdENvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1sZWZ0L2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tbGVmdC5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyQ29sdW1uUmlnaHRDb21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tcmlnaHQvZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1yaWdodC5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyUm93Q29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXItcm93L2RhdGF0YWJsZS1tZW51LWJhci1yb3cuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlTWVudUJhclRleHRDb21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci10ZXh0L2RhdGF0YWJsZS1tZW51LWJhci10ZXh0LmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZU1lbnVCYXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci9kYXRhdGFibGUtbWVudS1iYXIuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlUm93RGV0YWlsVHBsRGlyZWN0aXZlIH0gZnJvbSAnLi9kYXRhdGFibGUtcm93LWRldGFpbC9kYXRhdGFibGUtcm93LWRldGFpbC10cGwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZVJvd0RldGFpbERpcmVjdGl2ZSB9IGZyb20gJy4vZGF0YXRhYmxlLXJvdy1kZXRhaWwvZGF0YXRhYmxlLXJvdy1kZXRhaWwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRGF0YXRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUvZGF0YXRhYmxlLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZUFjdGlvbk1lbnVJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1hY3Rpb24tbWVudS1pdGVtLmRpcmVjdGl2ZSdcbmltcG9ydCB7IERhdGF0YWJsZUFjdGlvbk1lbnVUb2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWFjdGlvbi1tZW51LXRvZ2dsZS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVDZWxsVHBsRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1jZWxsLXRwbC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVGaWx0ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWZpbHRlci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVSb3dBY3Rpb25JdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1yb3ctYWN0aW9uLWl0ZW0uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZVNjcm9sbGJhckhlbHBlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RhdGF0YWJsZS1zY3JvbGxiYXItaGVscGVyLnNlcnZpY2UnXG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIERhdGF0YWJsZUNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlQ2VsbFRwbERpcmVjdGl2ZSxcbiAgICAgICAgRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVBY3Rpb25NZW51Q29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVBY3Rpb25NZW51VG9nZ2xlRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVBY3Rpb25NZW51SXRlbUNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlTWVudUJhckNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlRmlsdGVyRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVSb3dBY3Rpb25JdGVtRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVFeHBvcnRCdXR0b25Db21wb25lbnQsXG4gICAgICAgIFRoZVNlYW1EYXRhdGFibGVSb3dEZXRhaWxEaXJlY3RpdmUsXG4gICAgICAgIERhdGF0YWJsZVJvd0RldGFpbFRwbERpcmVjdGl2ZSxcbiAgICAgICAgVGhlU2VhbURhdGF0YWJsZUZvb3RlckRpcmVjdGl2ZSxcbiAgICAgICAgRGF0YXRhYmxlRm9vdGVyVHBsRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVDb2x1bW5QcmVmZXJlbmNlc0NvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlQ29sdW1uUHJlZmVyZW5jZXNCdXR0b25Db21wb25lbnQsXG4gICAgICAgIERhdGF0YWJsZUFjdGlvbk1lbnVJdGVtRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVNZW51QmFyUm93Q29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVNZW51QmFyQ29sdW1uTGVmdENvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlTWVudUJhckNvbHVtbkNlbnRlckNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlTWVudUJhckNvbHVtblJpZ2h0Q29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVNZW51QmFyVGV4dENvbXBvbmVudCxcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBOZ3hEYXRhdGFibGVNb2R1bGUsXG4gICAgICAgIEZvbnRBd2Vzb21lTW9kdWxlLFxuICAgICAgICBPdmVybGF5TW9kdWxlLFxuICAgICAgICBBMTF5TW9kdWxlLFxuICAgICAgICBUaGVTZWFtU2hhcmVkTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgICAgIFRoZVNlYW1NZW51TW9kdWxlLFxuICAgICAgICBUaGVTZWFtQnV0dG9uc01vZHVsZSxcbiAgICAgICAgVGhlU2VhbUljb25Nb2R1bGUsXG4gICAgICAgIFRvYXN0ck1vZHVsZSxcbiAgICAgICAgVGhlU2VhbUxvYWRpbmdNb2R1bGUsXG4gICAgICAgIFBvcnRhbE1vZHVsZSxcbiAgICAgICAgVGhlU2VhbUNvbmZpcm1EaWFsb2dNb2R1bGUsXG4gICAgICAgIFRoZVNlYW1Qb3BvdmVyTW9kdWxlLFxuICAgICAgICBUaGVTZWFtQ2hlY2tib3hNb2R1bGUsXG4gICAgICAgIFRoZVNlYW1Gb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFRoZVNlYW1UYWJsZUNlbGxUeXBlTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIERhdGF0YWJsZUNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlQ2VsbFRwbERpcmVjdGl2ZSxcbiAgICAgICAgRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVBY3Rpb25NZW51Q29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVBY3Rpb25NZW51SXRlbUNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlTWVudUJhckNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlRmlsdGVyRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVSb3dBY3Rpb25JdGVtRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVFeHBvcnRCdXR0b25Db21wb25lbnQsXG4gICAgICAgIFRoZVNlYW1EYXRhdGFibGVSb3dEZXRhaWxEaXJlY3RpdmUsXG4gICAgICAgIERhdGF0YWJsZVJvd0RldGFpbFRwbERpcmVjdGl2ZSxcbiAgICAgICAgVGhlU2VhbURhdGF0YWJsZUZvb3RlckRpcmVjdGl2ZSxcbiAgICAgICAgRGF0YXRhYmxlRm9vdGVyVHBsRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVDb2x1bW5QcmVmZXJlbmNlc0NvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlQ29sdW1uUHJlZmVyZW5jZXNCdXR0b25Db21wb25lbnQsXG4gICAgICAgIERhdGF0YWJsZUFjdGlvbk1lbnVJdGVtRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVNZW51QmFyUm93Q29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVNZW51QmFyQ29sdW1uTGVmdENvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlTWVudUJhckNvbHVtbkNlbnRlckNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlTWVudUJhckNvbHVtblJpZ2h0Q29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVNZW51QmFyVGV4dENvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogU2Nyb2xsYmFySGVscGVyLCB1c2VDbGFzczogVGhlU2VhbURhdGF0YWJsZVNjcm9sbGJhckhlbHBlclNlcnZpY2UgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGhlU2VhbURhdGF0YWJsZU1vZHVsZSB7IH1cbiJdfQ==
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvZGF0YXRhYmxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDakUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDdEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0s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QjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLFlBQVk7d0JBQ1osMEJBQTBCO3dCQUMxQixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLDBCQUEwQjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6Qix3QkFBd0I7d0JBQ3hCLDRCQUE0Qjt3QkFDNUIsZ0NBQWdDO3dCQUNoQyx5QkFBeUI7d0JBQ3pCLHdCQUF3Qjt3QkFDeEIsK0JBQStCO3dCQUMvQiw4QkFBOEI7d0JBQzlCLGtDQUFrQzt3QkFDbEMsOEJBQThCO3dCQUM5QiwrQkFBK0I7d0JBQy9CLDJCQUEyQjt3QkFDM0IsbUNBQW1DO3dCQUNuQyx5Q0FBeUM7d0JBQ3pDLGdDQUFnQzt3QkFDaEMsNEJBQTRCO3dCQUM1QixtQ0FBbUM7d0JBQ25DLHFDQUFxQzt3QkFDckMsb0NBQW9DO3dCQUNwQyw2QkFBNkI7cUJBQ2hDO29CQUNELFNBQVMsRUFBRTt3QkFDUCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLHNDQUFzQyxFQUFFO3FCQUNqRjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSdcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5cbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnXG5pbXBvcnQgeyBOZ3hEYXRhdGFibGVNb2R1bGUsIFNjcm9sbGJhckhlbHBlciB9IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcbmltcG9ydCB7IFRvYXN0ck1vZHVsZSB9IGZyb20gJ25neC10b2FzdHInXG5cbmltcG9ydCB7IFRoZVNlYW1CdXR0b25zTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2J1dHRvbnMnXG5pbXBvcnQgeyBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vY2hlY2tib3gnXG5pbXBvcnQgeyBUaGVTZWFtQ29uZmlybURpYWxvZ01vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jb25maXJtLWRpYWxvZydcbmltcG9ydCB7IFRoZVNlYW1Gb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZm9ybS1maWVsZCdcbmltcG9ydCB7IFRoZVNlYW1JY29uTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2ljb24nXG5pbXBvcnQgeyBUaGVTZWFtTG9hZGluZ01vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9sb2FkaW5nJ1xuaW1wb3J0IHsgVGhlU2VhbU1lbnVNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vbWVudSdcbmltcG9ydCB7IFRoZVNlYW1Qb3BvdmVyTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3BvcG92ZXInXG5pbXBvcnQgeyBUaGVTZWFtU2hhcmVkTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3NoYXJlZCdcbmltcG9ydCB7IFRoZVNlYW1UYWJsZUNlbGxUeXBlTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3RhYmxlLWNlbGwtdHlwZSdcblxuaW1wb3J0IHsgRGF0YXRhYmxlQWN0aW9uTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1hY3Rpb24tbWVudS1pdGVtL2RhdGF0YWJsZS1hY3Rpb24tbWVudS1pdGVtLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZUFjdGlvbk1lbnVDb21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1hY3Rpb24tbWVudS9kYXRhdGFibGUtYWN0aW9uLW1lbnUuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlQ29sdW1uUHJlZmVyZW5jZXNCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMtYnV0dG9uL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMtYnV0dG9uLmNvbXBvbmVudCcgLy8gdHNsaW50OmRpc2FibGUtbGluZTogbWF4LWxpbmUtbGVuZ3RoXG5pbXBvcnQgeyBEYXRhdGFibGVDb2x1bW5QcmVmZXJlbmNlc0NvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi9kYXRhdGFibGUtY29sdW1uLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZUV4cG9ydEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLWV4cG9ydC1idXR0b24vZGF0YXRhYmxlLWV4cG9ydC1idXR0b24uY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlRm9vdGVyVHBsRGlyZWN0aXZlIH0gZnJvbSAnLi9kYXRhdGFibGUtZm9vdGVyL2RhdGF0YWJsZS1mb290ZXItdHBsLmRpcmVjdGl2ZSdcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVGb290ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RhdGF0YWJsZS1mb290ZXIvZGF0YXRhYmxlLWZvb3Rlci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyQ29sdW1uQ2VudGVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXItY29sdW1uLWNlbnRlci9kYXRhdGFibGUtbWVudS1iYXItY29sdW1uLWNlbnRlci5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyQ29sdW1uTGVmdENvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1sZWZ0L2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tbGVmdC5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyQ29sdW1uUmlnaHRDb21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tcmlnaHQvZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1yaWdodC5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyUm93Q29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXItcm93L2RhdGF0YWJsZS1tZW51LWJhci1yb3cuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlTWVudUJhclRleHRDb21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci10ZXh0L2RhdGF0YWJsZS1tZW51LWJhci10ZXh0LmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZU1lbnVCYXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci9kYXRhdGFibGUtbWVudS1iYXIuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlUm93RGV0YWlsVHBsRGlyZWN0aXZlIH0gZnJvbSAnLi9kYXRhdGFibGUtcm93LWRldGFpbC9kYXRhdGFibGUtcm93LWRldGFpbC10cGwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZVJvd0RldGFpbERpcmVjdGl2ZSB9IGZyb20gJy4vZGF0YXRhYmxlLXJvdy1kZXRhaWwvZGF0YXRhYmxlLXJvdy1kZXRhaWwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRGF0YXRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUvZGF0YXRhYmxlLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZUFjdGlvbk1lbnVJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1hY3Rpb24tbWVudS1pdGVtLmRpcmVjdGl2ZSdcbmltcG9ydCB7IERhdGF0YWJsZUFjdGlvbk1lbnVUb2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWFjdGlvbi1tZW51LXRvZ2dsZS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVDZWxsVHBsRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1jZWxsLXRwbC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVGaWx0ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWZpbHRlci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVSb3dBY3Rpb25JdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1yb3ctYWN0aW9uLWl0ZW0uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZVNjcm9sbGJhckhlbHBlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RhdGF0YWJsZS1zY3JvbGxiYXItaGVscGVyLnNlcnZpY2UnXG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIERhdGF0YWJsZUNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlQ2VsbFRwbERpcmVjdGl2ZSxcbiAgICAgICAgRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVBY3Rpb25NZW51Q29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVBY3Rpb25NZW51VG9nZ2xlRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVBY3Rpb25NZW51SXRlbUNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlTWVudUJhckNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlRmlsdGVyRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVSb3dBY3Rpb25JdGVtRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVFeHBvcnRCdXR0b25Db21wb25lbnQsXG4gICAgICAgIFRoZVNlYW1EYXRhdGFibGVSb3dEZXRhaWxEaXJlY3RpdmUsXG4gICAgICAgIERhdGF0YWJsZVJvd0RldGFpbFRwbERpcmVjdGl2ZSxcbiAgICAgICAgVGhlU2VhbURhdGF0YWJsZUZvb3RlckRpcmVjdGl2ZSxcbiAgICAgICAgRGF0YXRhYmxlRm9vdGVyVHBsRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVDb2x1bW5QcmVmZXJlbmNlc0NvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlQ29sdW1uUHJlZmVyZW5jZXNCdXR0b25Db21wb25lbnQsXG4gICAgICAgIERhdGF0YWJsZUFjdGlvbk1lbnVJdGVtRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVNZW51QmFyUm93Q29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVNZW51QmFyQ29sdW1uTGVmdENvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlTWVudUJhckNvbHVtbkNlbnRlckNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlTWVudUJhckNvbHVtblJpZ2h0Q29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVNZW51QmFyVGV4dENvbXBvbmVudCxcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBOZ3hEYXRhdGFibGVNb2R1bGUsXG4gICAgICAgIEZvbnRBd2Vzb21lTW9kdWxlLFxuICAgICAgICBPdmVybGF5TW9kdWxlLFxuICAgICAgICBBMTF5TW9kdWxlLFxuICAgICAgICBUaGVTZWFtU2hhcmVkTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgICAgIFRoZVNlYW1NZW51TW9kdWxlLFxuICAgICAgICBUaGVTZWFtQnV0dG9uc01vZHVsZSxcbiAgICAgICAgVGhlU2VhbUljb25Nb2R1bGUsXG4gICAgICAgIFRvYXN0ck1vZHVsZSxcbiAgICAgICAgVGhlU2VhbUxvYWRpbmdNb2R1bGUsXG4gICAgICAgIFBvcnRhbE1vZHVsZSxcbiAgICAgICAgVGhlU2VhbUNvbmZpcm1EaWFsb2dNb2R1bGUsXG4gICAgICAgIFRoZVNlYW1Qb3BvdmVyTW9kdWxlLFxuICAgICAgICBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnQsXG4gICAgICAgIFRoZVNlYW1Gb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFRoZVNlYW1UYWJsZUNlbGxUeXBlTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIERhdGF0YWJsZUNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlQ2VsbFRwbERpcmVjdGl2ZSxcbiAgICAgICAgRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVBY3Rpb25NZW51Q29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVBY3Rpb25NZW51SXRlbUNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlTWVudUJhckNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlRmlsdGVyRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVSb3dBY3Rpb25JdGVtRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVFeHBvcnRCdXR0b25Db21wb25lbnQsXG4gICAgICAgIFRoZVNlYW1EYXRhdGFibGVSb3dEZXRhaWxEaXJlY3RpdmUsXG4gICAgICAgIERhdGF0YWJsZVJvd0RldGFpbFRwbERpcmVjdGl2ZSxcbiAgICAgICAgVGhlU2VhbURhdGF0YWJsZUZvb3RlckRpcmVjdGl2ZSxcbiAgICAgICAgRGF0YXRhYmxlRm9vdGVyVHBsRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVDb2x1bW5QcmVmZXJlbmNlc0NvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlQ29sdW1uUHJlZmVyZW5jZXNCdXR0b25Db21wb25lbnQsXG4gICAgICAgIERhdGF0YWJsZUFjdGlvbk1lbnVJdGVtRGlyZWN0aXZlLFxuICAgICAgICBEYXRhdGFibGVNZW51QmFyUm93Q29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVNZW51QmFyQ29sdW1uTGVmdENvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlTWVudUJhckNvbHVtbkNlbnRlckNvbXBvbmVudCxcbiAgICAgICAgRGF0YXRhYmxlTWVudUJhckNvbHVtblJpZ2h0Q29tcG9uZW50LFxuICAgICAgICBEYXRhdGFibGVNZW51QmFyVGV4dENvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogU2Nyb2xsYmFySGVscGVyLCB1c2VDbGFzczogVGhlU2VhbURhdGF0YWJsZVNjcm9sbGJhckhlbHBlclNlcnZpY2UgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGhlU2VhbURhdGF0YWJsZU1vZHVsZSB7IH1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { Component, ContentChild, ContentChildren, forwardRef, HostBinding, Input } from '@angular/core';
2
+ import { Component, ContentChild, ContentChildren, HostBinding, Input } from '@angular/core';
3
3
  import { BehaviorSubject, combineLatest, ReplaySubject, Subscription } from 'rxjs';
4
4
  import { distinctUntilChanged, filter, map, startWith, switchMap, tap } from 'rxjs/operators';
5
5
  import { InputBoolean } from '@theseam/ui-common/core';
@@ -170,7 +170,7 @@ TheSeamFormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0"
170
170
  TheSeamFormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamFormFieldComponent, selector: "seam-form-field", inputs: { inline: "inline", label: "label", labelPosition: "labelPosition", labelClass: "labelClass", maxErrors: "maxErrors", numPaddingErrors: "numPaddingErrors", labelId: "labelId", helpText: "helpText", helpTextId: "helpTextId" }, host: { properties: { "style.display": "this._displayStyle" } }, providers: [
171
171
  {
172
172
  provide: FORM_FIELD_COMPONENT,
173
- useClass: forwardRef(() => TheSeamFormFieldComponent),
173
+ useExisting: TheSeamFormFieldComponent,
174
174
  }
175
175
  ], queries: [{ propertyName: "helpTextTpl", first: true, predicate: FormFieldHelpTextDirective, descendants: true, static: true }, { propertyName: "labelTpl", first: true, predicate: FormFieldLabelTplDirective, descendants: true, static: true }, { propertyName: "contentInput", first: true, predicate: InputDirective, descendants: true, static: true }, { propertyName: "fieldErrors", predicate: FormFieldErrorDirective }], ngImport: i0, template: "<div>\n <div [class.seam-form-field-inline]=\"inline\">\n <label *ngIf=\"label || labelTpl\"\n #labelElem\n [attr.id]=\"labelId\"\n [attr.for]=\"contentInput?.id\"\n class=\"control-label {{ labelClass }}\"\n (seamElemResized)=\"_labelElemResized(labelElem)\">\n <ng-container *ngIf=\"labelTpl; else noLabelTpl\">\n <ng-template [ngTemplateOutlet]=\"labelTpl.template\" [ngTemplateOutletContext]=\"{ $implicit: label, label: label, required: contentInput?.required || false }\"></ng-template>\n </ng-container>\n <ng-template #noLabelTpl>\n {{ label }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-template>\n </label>\n <ng-container *ngIf=\"!isPasswordInput\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isPasswordInput\">\n <div class=\"position-relative\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <seam-password-input-reveal [inputRef]=\"$any(passwordInputElement)\"></seam-password-input-reveal>\n </div>\n </ng-container>\n </div>\n <!-- Need `.d-block` to make errors show without input sibling selector -->\n <ng-container *ngIf=\"contentInput\">\n <seam-form-field-error-list *ngIf=\"fieldErrors$ | async as fieldErrors\"\n [style.paddingLeft]=\"(label || labelTpl) && inline ? _errorPadding : undefined\"\n [control]=\"contentInput.ngControl\"\n [errors]=\"fieldErrors2$ | async\"\n [maxErrors]=\"maxErrors\"\n [numPaddingErrors]=\"numPaddingErrors\"\n class=\"invalid-feedback\">\n </seam-form-field-error-list>\n </ng-container>\n</div>\n\n<ng-template #content><ng-content></ng-content></ng-template>\n", styles: [".seam-form-field-inline{display:flex;flex-direction:row}.seam-form-field-inline .control-label{margin-bottom:0;display:flex;flex-direction:column;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.FormFieldErrorListComponent, selector: "seam-form-field-error-list", inputs: ["errors", "showValidatorName", "numPaddingErrors", "listItemTpls", "maxErrors", "control", "showErrors"] }, { kind: "directive", type: i3.ElemResizedDirective, selector: "[seamElemResized]", outputs: ["seamElemResized"] }, { kind: "component", type: i3.PasswordInputRevealComponent, selector: "seam-password-input-reveal", inputs: ["inputRef", "passwordVisible"] }, { kind: "component", type: i4.FormFieldRequiredIndicatorComponent, selector: "seam-form-field-required-indicator", inputs: ["required"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
176
176
  __decorate([
@@ -181,7 +181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
181
181
  args: [{ selector: 'seam-form-field', providers: [
182
182
  {
183
183
  provide: FORM_FIELD_COMPONENT,
184
- useClass: forwardRef(() => TheSeamFormFieldComponent),
184
+ useExisting: TheSeamFormFieldComponent,
185
185
  }
186
186
  ], template: "<div>\n <div [class.seam-form-field-inline]=\"inline\">\n <label *ngIf=\"label || labelTpl\"\n #labelElem\n [attr.id]=\"labelId\"\n [attr.for]=\"contentInput?.id\"\n class=\"control-label {{ labelClass }}\"\n (seamElemResized)=\"_labelElemResized(labelElem)\">\n <ng-container *ngIf=\"labelTpl; else noLabelTpl\">\n <ng-template [ngTemplateOutlet]=\"labelTpl.template\" [ngTemplateOutletContext]=\"{ $implicit: label, label: label, required: contentInput?.required || false }\"></ng-template>\n </ng-container>\n <ng-template #noLabelTpl>\n {{ label }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-template>\n </label>\n <ng-container *ngIf=\"!isPasswordInput\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isPasswordInput\">\n <div class=\"position-relative\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <seam-password-input-reveal [inputRef]=\"$any(passwordInputElement)\"></seam-password-input-reveal>\n </div>\n </ng-container>\n </div>\n <!-- Need `.d-block` to make errors show without input sibling selector -->\n <ng-container *ngIf=\"contentInput\">\n <seam-form-field-error-list *ngIf=\"fieldErrors$ | async as fieldErrors\"\n [style.paddingLeft]=\"(label || labelTpl) && inline ? _errorPadding : undefined\"\n [control]=\"contentInput.ngControl\"\n [errors]=\"fieldErrors2$ | async\"\n [maxErrors]=\"maxErrors\"\n [numPaddingErrors]=\"numPaddingErrors\"\n class=\"invalid-feedback\">\n </seam-form-field-error-list>\n </ng-container>\n</div>\n\n<ng-template #content><ng-content></ng-content></ng-template>\n", styles: [".seam-form-field-inline{display:flex;flex-direction:row}.seam-form-field-inline .control-label{margin-bottom:0;display:flex;flex-direction:column;justify-content:center}\n"] }]
187
187
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _displayStyle: [{
@@ -218,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
218
218
  type: ContentChildren,
219
219
  args: [FormFieldErrorDirective]
220
220
  }] } });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFFZixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFJTixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBR3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQ3RFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQzdFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTs7Ozs7O0FBRWxELElBQUksaUJBQWlCLEdBQUcsQ0FBQyxDQUFBO0FBRXpCOztHQUVHO0FBWUgsTUFBTSxPQUFPLHlCQUF5QjtJQWdCcEMsY0FBYztJQUNkLElBQWtDLGFBQWEsS0FBSyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNB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b0JBQW9COzRCQUM3QixRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzt5QkFDdEQ7cUJBQ0Y7aUdBbUJpQyxhQUFhO3NCQUE5QyxXQUFXO3VCQUFDLGVBQWU7Z0JBUUgsTUFBTTtzQkFBOUIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBUUcsYUFBYTtzQkFBckIsS0FBSztnQkFRRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBTUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQU9GLE9BQU87c0JBRFYsS0FBSztnQkFVRixRQUFRO3NCQURYLEtBQUs7Z0JBV0YsVUFBVTtzQkFEYixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsWUFBWTt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBT0UsUUFBUTtzQkFBbkUsWUFBWTt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXRELFlBQVk7c0JBRGYsWUFBWTt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU0xQyxXQUFXO3NCQURkLGVBQWU7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJ1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvcmUnXG5pbXBvcnQgeyBJRXJyb3JSZWNvcmQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZm9ybS1maWVsZC1lcnJvcidcblxuaW1wb3J0IHsgRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmUgfSBmcm9tICcuL2Zvcm0tZmllbGQtZXJyb3IuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRm9ybUZpZWxkSGVscFRleHREaXJlY3RpdmUgfSBmcm9tICcuL2Zvcm0tZmllbGQtaGVscC10ZXh0LmRpcmVjdGl2ZSdcbmltcG9ydCB7IEZvcm1GaWVsZExhYmVsVHBsRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWxhYmVsLXRwbC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBGT1JNX0ZJRUxEX0NPTVBPTkVOVCB9IGZyb20gJy4vZm9ybS1maWVsZC10b2tlbnMnXG5pbXBvcnQgeyBJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vaW5wdXQuZGlyZWN0aXZlJ1xuXG5sZXQgbmV4dExhYmVsVW5pcXVlSWQgPSAwXG5cbi8qKlxuICogU2hvdWxkIHdyYXAgYWxsIGZvcm0gY29udHJvbHMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZm9ybS1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBGT1JNX0ZJRUxEX0NPTVBPTkVOVCxcbiAgICAgIHVzZUNsYXNzOiBmb3J3YXJkUmVmKCgpID0+IFRoZVNlYW1Gb3JtRmllbGRDb21wb25lbnQpLFxuICAgIH1cbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGhlU2VhbUZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2lubGluZTogQm9vbGVhbklucHV0XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaGVscFRleHRTdHJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgcHJpdmF0ZSByZWFkb25seSBfaGVscFRleHRUcGxTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtRmllbGRIZWxwVGV4dERpcmVjdGl2ZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBwcml2YXRlIHJlYWRvbmx5IF9jb250ZW50SW5wdXRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJbnB1dERpcmVjdGl2ZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfbGFiZWxVaWQgPSBgc2VhbS1sYWJlbC0ke25leHRMYWJlbFVuaXF1ZUlkKyt9YFxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfaGVscFRleHRVaWQgPSBgc2VhbS1oZWxwLXRleHQtJHtuZXh0TGFiZWxVbmlxdWVJZCsrfWBcblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgX2Vycm9yUGFkZGluZyA9ICcwcHgnXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JykgZ2V0IF9kaXNwbGF5U3R5bGUoKSB7IHJldHVybiB0aGlzLmlubGluZSA/ICdpbmxpbmUtYmxvY2snIDogJ2Jsb2NrJyB9XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZGVjbGFyZSBhbiBpbmxpbmUgZWxlbWVudC5cbiAgICpcbiAgICogTk9URTogTm90IHdlbGwgdGVzdGVkIG9yIHN1cHBvcnRlZCwgc28gaXQgbWF5IGhhdmUgc29tZSBpc3N1ZXMgY3VycmVudGx5XG4gICAqIGFuZCBjb3VsZCBjaGFuZ2UuXG4gICAqL1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgaW5saW5lID0gZmFsc2VcblxuICAvKiogQWRkIGEgdGV4dCBsYWJlbCBmb3IgdGhlIGZvcm0gY29udHJvbC4gKi9cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICAvKipcbiAgICogVGhlIGxhYmVsIGNhbiBiZSBvbiB0b3Agb3IgaW5saW5lLlxuICAgKlxuICAgKiA+IE9ubHkgc3VwcG9ydHMgYGx0cmAgZGlyZWN0aW9uLCBzbyBpbmxpbmUgd2lsbCBvbmx5IHBsYWNlIHRoZSBsYWJlbCBvbiB0aGVcbiAgICogPiBsZWZ0LlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWxQb3NpdGlvbjogJ3RvcCcgfCAnaW5saW5lJyA9ICd0b3AnXG5cbiAgLyoqXG4gICAqIENTUyBjbGFzcyB0byBhZGQgdG8gdGhlIGxhYmVsIGVsZW1lbnQuXG4gICAqXG4gICAqIEFjY2VwdHMgYSBzaW5nbGUgc3BhY2Ugc2VwYXJhdGVkIHN0cmluZyBvZiBjbGFzc2VzLCBsaWtlIHRoZSBodG1sIGNsYXNzXG4gICAqIGF0dHJpYnV0ZS5cbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICAvKiogTWF4IGVycm9ycyB0byBkaXNwbGF5LiAqL1xuICBASW5wdXQoKSBtYXhFcnJvcnMgPSAtMVxuXG4gIC8qKlxuICAgKiBBIHBhZGRpbmcgZXJyb3IgaXMgYW4gYWx3YXlzIGFsbG9jYXRlZCBzcGFjZSBlcXVpdmFsZW50IHRvIGEgc2luZ2xlIGxpbmVcbiAgICogZXJyb3Igc3RyaW5nLlxuICAgKi9cbiAgQElucHV0KCkgbnVtUGFkZGluZ0Vycm9ycyA9IDFcblxuICAvKipcbiAgICogYGlkYCBhdHRyaWJ1dGUgdG8gYWRkIHRvIHRoZSBsYWJlbCBlbGVtZW50LiBUaGlzIHNob3VsZCBub3QgYmUgbmVlZGVkIGluXG4gICAqIG1vc3Qgc2l0dWF0aW9ucywgYmVjYXVzZSBhIHVuaXF1ZSBpZCB3aWxsIGJlIGdlbmVyYXRlZCBpZiBub3QgcHJvdmlkZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgbGFiZWxJZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsIHsgcmV0dXJuIHRoaXMuX2xhYmVsSWQgfVxuICBzZXQgbGFiZWxJZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCkgeyB0aGlzLl9sYWJlbElkID0gdmFsdWUgfHwgdGhpcy5fbGFiZWxVaWQgfVxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2xhYmVsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICAvKipcbiAgICogSGVscCB0ZXh0IGFkZGVkIGJlbG93IHRoZSBjb250cm9sLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGhlbHBUZXh0KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgeyByZXR1cm4gdGhpcy5faGVscFRleHRTdHJTdWJqZWN0LnZhbHVlIH1cbiAgc2V0IGhlbHBUZXh0KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgdGhpcy5faGVscFRleHRTdHJTdWJqZWN0Lm5leHQodmFsdWUgfHwgdW5kZWZpbmVkKVxuICB9XG5cbiAgLyoqXG4gICAqIGBpZGAgYXR0cmlidXRlIHRvIGFkZCB0byB0aGUgbGFiZWwgZWxlbWVudC4gVGhpcyBzaG91bGQgbm90IGJlIG5lZWRlZCBpblxuICAgKiBtb3N0IHNpdHVhdGlvbnMsIGJlY2F1c2UgYSB1bmlxdWUgaWQgd2lsbCBiZSBnZW5lcmF0ZWQgaWYgbm90IHByb3ZpZGVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGhlbHBUZXh0SWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCB7IHJldHVybiB0aGlzLl9oZWxwVGV4dElkIH1cbiAgc2V0IGhlbHBUZXh0SWQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpIHsgdGhpcy5faGVscFRleHRJZCA9IHZhbHVlIHx8IHRoaXMuX2hlbHBUZXh0VWlkIH1cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oZWxwVGV4dElkOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQENvbnRlbnRDaGlsZChGb3JtRmllbGRIZWxwVGV4dERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgZ2V0IGhlbHBUZXh0VHBsKCk6IEZvcm1GaWVsZExhYmVsVHBsRGlyZWN0aXZlIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMuX2hlbHBUZXh0VHBsU3ViamVjdC52YWx1ZSB9XG4gIHNldCBoZWxwVGV4dFRwbCh2YWx1ZTogRm9ybUZpZWxkTGFiZWxUcGxEaXJlY3RpdmUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9oZWxwVGV4dFRwbFN1YmplY3QubmV4dCh2YWx1ZSB8fCB1bmRlZmluZWQpXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBAQ29udGVudENoaWxkKEZvcm1GaWVsZExhYmVsVHBsRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSBsYWJlbFRwbD86IEZvcm1GaWVsZExhYmVsVHBsRGlyZWN0aXZlXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQENvbnRlbnRDaGlsZChJbnB1dERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgZ2V0IGNvbnRlbnRJbnB1dCgpOiBJbnB1dERpcmVjdGl2ZSB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLl9jb250ZW50SW5wdXRTdWJqZWN0LnZhbHVlIH1cbiAgc2V0IGNvbnRlbnRJbnB1dCh2YWx1ZTogSW5wdXREaXJlY3RpdmUgfCB1bmRlZmluZWQpIHsgdGhpcy5fY29udGVudElucHV0U3ViamVjdC5uZXh0KHZhbHVlIHx8IHVuZGVmaW5lZCkgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIEBDb250ZW50Q2hpbGRyZW4oRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmUpXG4gIGdldCBmaWVsZEVycm9ycygpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkRXJyb3JzIH1cbiAgc2V0IGZpZWxkRXJyb3JzKHZhbHVlOiBRdWVyeUxpc3Q8Rm9ybUZpZWxkRXJyb3JEaXJlY3RpdmVbXT4gfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgdGhpcy5fZmllbGRFcnJvcnMgPSB2YWx1ZVxuXG4gICAgaWYgKHRoaXMuX3N1YikgeyB0aGlzLl9zdWIudW5zdWJzY3JpYmUoKSB9XG4gICAgaWYgKHRoaXMuZmllbGRFcnJvcnMpIHtcbiAgICAgIHRoaXMuX3N1YiA9IHRoaXMuZmllbGRFcnJvcnMuY2hhbmdlc1xuICAgICAgICAucGlwZShzdGFydFdpdGgodGhpcy5maWVsZEVycm9ycykpXG4gICAgICAgIC5waXBlKG1hcCh2ID0+IHYudG9BcnJheSgpIGFzIEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlW10pKVxuICAgICAgICAucGlwZSh0YXAodiA9PiB7XG4gICAgICAgICAgY29uc3QgcmVjb3JkczogSUVycm9yUmVjb3JkW10gPSBbXVxuICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB2KSB7XG4gICAgICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3JOYW1lKSB7XG4gICAgICAgICAgICAgIHJlY29yZHMucHVzaCh7XG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yTmFtZTogaXRlbS52YWxpZGF0b3JOYW1lLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlOiBpdGVtLnRlbXBsYXRlLFxuICAgICAgICAgICAgICAgIGV4dGVybmFsOiBpdGVtLmV4dGVybmFsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX2ZpZWxkRXJyb3JzU3ViamVjdDIubmV4dChyZWNvcmRzKVxuICAgICAgICB9KSlcbiAgICAgICAgLnN1YnNjcmliZSh2ID0+IHRoaXMuX2ZpZWxkRXJyb3JzU3ViamVjdC5uZXh0KHYpKVxuICAgIH1cbiAgfVxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9maWVsZEVycm9yczogUXVlcnlMaXN0PEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlW10+IHwgdW5kZWZpbmVkIHwgbnVsbFxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9zdWI/OiBTdWJzY3JpcHRpb25cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9maWVsZEVycm9yc1N1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxGb3JtRmllbGRFcnJvckRpcmVjdGl2ZVtdPigxKVxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmllbGRFcnJvcnMkOiBPYnNlcnZhYmxlPEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlW10+ID0gdGhpcy5fZmllbGRFcnJvcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfZmllbGRFcnJvcnNTdWJqZWN0MiA9IG5ldyBSZXBsYXlTdWJqZWN0PElFcnJvclJlY29yZFtdPigxKVxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmllbGRFcnJvcnMyJDogT2JzZXJ2YWJsZTxJRXJyb3JSZWNvcmRbXT4gPSB0aGlzLl9maWVsZEVycm9yc1N1YmplY3QyLmFzT2JzZXJ2YWJsZSgpXG5cbiAgZ2V0IGlzUGFzc3dvcmRJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50SW5wdXQgJiYgdGhpcy5jb250ZW50SW5wdXQudHlwZSAmJiB0aGlzLmNvbnRlbnRJbnB1dC50eXBlID09PSAncGFzc3dvcmQnXG4gIH1cbiAgZ2V0IHBhc3N3b3JkSW5wdXRFbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRJbnB1dCAmJiB0aGlzLmNvbnRlbnRJbnB1dC5fZWxlbWVudFJlZiAmJiB0aGlzLmNvbnRlbnRJbnB1dC5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gIH1cblxuICBnZXQgaGFzSGVscFRleHQoKSB7IHJldHVybiAhIXRoaXMuX2hlbHBUZXh0U3RyU3ViamVjdC52YWx1ZSB8fCAhIXRoaXMuX2hlbHBUZXh0VHBsU3ViamVjdC52YWx1ZSB9XG4gIC8vIGdldCBoYXNIZWxwVGV4dCgpIHsgcmV0dXJuICEhdGhpcy5oZWxwVGV4dCB8fCAhIXRoaXMuX2hlbHBUZXh0VHBsIH1cblxuICBwcml2YXRlIF9oZWxwVGV4dFN1YiA9IFN1YnNjcmlwdGlvbi5FTVBUWVxuXG4gIC8qKiBAaWdub3JlICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7IH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9oZWxwVGV4dFN1YiA9IHRoaXMuX2NvbnRlbnRJbnB1dFN1YmplY3QucGlwZShcbiAgICAgIGZpbHRlcihjb250ZW50SW5wdXQgPT4gISFjb250ZW50SW5wdXQpLFxuICAgICAgc3dpdGNoTWFwKGNvbnRlbnRJbnB1dCA9PiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5faGVscFRleHRTdHJTdWJqZWN0LFxuICAgICAgICB0aGlzLl9oZWxwVGV4dFRwbFN1YmplY3RcbiAgICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLmhhc0hlbHBUZXh0KSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBpZiAoY29udGVudElucHV0KSB7XG4gICAgICAgICAgICBjb250ZW50SW5wdXQuYXJpYURlc2NyaWJlZEJ5ID0gdGhpcy5faGVscFRleHRJZCB8fCB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApKVxuICAgICkuc3Vic2NyaWJlKClcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N1Yj8udW5zdWJzY3JpYmUoKVxuICAgIHRoaXMuX2hlbHBUZXh0U3ViPy51bnN1YnNjcmliZSgpXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgaXNWYWxpZGF0b3JNYXRjaCh2YWxpZGF0b3JOYW1lOiBzdHJpbmcsIHRwbFZhbGlkYXRvck5hbWU6IHN0cmluZywgZXJyb3JzOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCB0cGxWYWxpZGF0b3JOYW1lcyA9IHRwbFZhbGlkYXRvck5hbWUuc3BsaXQoJyAnKVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0cGxWYWxpZGF0b3JOYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgbmFtZSA9IHRwbFZhbGlkYXRvck5hbWVzW2ldXG4gICAgICBpZiAobmFtZSA9PT0gdmFsaWRhdG9yTmFtZSAmJiBpID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgX2xhYmVsRWxlbVJlc2l6ZWQobGFiZWxFbGVtOiBIVE1MTGFiZWxFbGVtZW50KSB7XG4gICAgaWYgKGxhYmVsRWxlbSkge1xuICAgICAgdGhpcy5fZXJyb3JQYWRkaW5nID0gYCR7bGFiZWxFbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofXB4YFxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9lcnJvclBhZGRpbmcgPSAnMHB4J1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gIH1cblxufVxuIiwiPGRpdj5cbiAgPGRpdiBbY2xhc3Muc2VhbS1mb3JtLWZpZWxkLWlubGluZV09XCJpbmxpbmVcIj5cbiAgICA8bGFiZWwgKm5nSWY9XCJsYWJlbCB8fCBsYWJlbFRwbFwiXG4gICAgICAjbGFiZWxFbGVtXG4gICAgICBbYXR0ci5pZF09XCJsYWJlbElkXCJcbiAgICAgIFthdHRyLmZvcl09XCJjb250ZW50SW5wdXQ/LmlkXCJcbiAgICAgIGNsYXNzPVwiY29udHJvbC1sYWJlbCB7eyBsYWJlbENsYXNzIH19XCJcbiAgICAgIChzZWFtRWxlbVJlc2l6ZWQpPVwiX2xhYmVsRWxlbVJlc2l6ZWQobGFiZWxFbGVtKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsVHBsOyBlbHNlIG5vTGFiZWxUcGxcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsVHBsLnRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBsYWJlbCwgbGFiZWw6IGxhYmVsLCByZXF1aXJlZDogY29udGVudElucHV0Py5yZXF1aXJlZCB8fCBmYWxzZSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNub0xhYmVsVHBsPlxuICAgICAgICB7eyBsYWJlbCB9fTxzZWFtLWZvcm0tZmllbGQtcmVxdWlyZWQtaW5kaWNhdG9yIGNsYXNzPVwicGwtMVwiPjwvc2VhbS1mb3JtLWZpZWxkLXJlcXVpcmVkLWluZGljYXRvcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9sYWJlbD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzUGFzc3dvcmRJbnB1dFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNQYXNzd29yZElucHV0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHNlYW0tcGFzc3dvcmQtaW5wdXQtcmV2ZWFsIFtpbnB1dFJlZl09XCIkYW55KHBhc3N3b3JkSW5wdXRFbGVtZW50KVwiPjwvc2VhbS1wYXNzd29yZC1pbnB1dC1yZXZlYWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDwhLS0gTmVlZCBgLmQtYmxvY2tgIHRvIG1ha2UgZXJyb3JzIHNob3cgd2l0aG91dCBpbnB1dCBzaWJsaW5nIHNlbGVjdG9yIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudElucHV0XCI+XG4gICAgPHNlYW0tZm9ybS1maWVsZC1lcnJvci1saXN0ICpuZ0lmPVwiZmllbGRFcnJvcnMkIHwgYXN5bmMgYXMgZmllbGRFcnJvcnNcIlxuICAgICAgW3N0eWxlLnBhZGRpbmdMZWZ0XT1cIihsYWJlbCB8fCBsYWJlbFRwbCkgJiYgaW5saW5lID8gX2Vycm9yUGFkZGluZyA6IHVuZGVmaW5lZFwiXG4gICAgICBbY29udHJvbF09XCJjb250ZW50SW5wdXQubmdDb250cm9sXCJcbiAgICAgIFtlcnJvcnNdPVwiZmllbGRFcnJvcnMyJCB8IGFzeW5jXCJcbiAgICAgIFttYXhFcnJvcnNdPVwibWF4RXJyb3JzXCJcbiAgICAgIFtudW1QYWRkaW5nRXJyb3JzXT1cIm51bVBhZGRpbmdFcnJvcnNcIlxuICAgICAgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+XG4gICAgPC9zZWFtLWZvcm0tZmllbGQtZXJyb3ItbGlzdD5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPlxuIl19
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFHZixXQUFXLEVBQ1gsS0FBSyxFQUlOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDOUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUU3RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFHdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDdEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDN0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFBOzs7Ozs7QUFFbEQsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUE7QUFFekI7O0dBRUc7QUFZSCxNQUFNLE9BQU8seUJBQXlCO0lBZ0JwQyxjQUFjO0lBQ2QsSUFBa0MsYUFBYSxLQUFLLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENB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R0FtQmlDLGFBQWE7c0JBQTlDLFdBQVc7dUJBQUMsZUFBZTtnQkFRSCxNQUFNO3NCQUE5QixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFRRyxhQUFhO3NCQUFyQixLQUFLO2dCQVFHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFNRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBT0YsT0FBTztzQkFEVixLQUFLO2dCQVVGLFFBQVE7c0JBRFgsS0FBSztnQkFXRixVQUFVO3NCQURiLEtBQUs7Z0JBUUYsV0FBVztzQkFEZCxZQUFZO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFPRSxRQUFRO3NCQUFuRSxZQUFZO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJdEQsWUFBWTtzQkFEZixZQUFZO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTTFDLFdBQVc7c0JBRGQsZUFBZTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vY29yZSdcbmltcG9ydCB7IElFcnJvclJlY29yZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9mb3JtLWZpZWxkLWVycm9yJ1xuXG5pbXBvcnQgeyBGb3JtRmllbGRFcnJvckRpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybS1maWVsZC1lcnJvci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBGb3JtRmllbGRIZWxwVGV4dERpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybS1maWVsZC1oZWxwLXRleHQuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRm9ybUZpZWxkTGFiZWxUcGxEaXJlY3RpdmUgfSBmcm9tICcuL2Zvcm0tZmllbGQtbGFiZWwtdHBsLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEZPUk1fRklFTERfQ09NUE9ORU5UIH0gZnJvbSAnLi9mb3JtLWZpZWxkLXRva2VucydcbmltcG9ydCB7IElucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi9pbnB1dC5kaXJlY3RpdmUnXG5cbmxldCBuZXh0TGFiZWxVbmlxdWVJZCA9IDBcblxuLyoqXG4gKiBTaG91bGQgd3JhcCBhbGwgZm9ybSBjb250cm9scy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1mb3JtLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEZPUk1fRklFTERfQ09NUE9ORU5ULFxuICAgICAgdXNlRXhpc3Rpbmc6IFRoZVNlYW1Gb3JtRmllbGRDb21wb25lbnQsXG4gICAgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUaGVTZWFtRm9ybUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaW5saW5lOiBCb29sZWFuSW5wdXRcblxuICBwcml2YXRlIHJlYWRvbmx5IF9oZWxwVGV4dFN0clN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBwcml2YXRlIHJlYWRvbmx5IF9oZWxwVGV4dFRwbFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1GaWVsZEhlbHBUZXh0RGlyZWN0aXZlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbnRlbnRJbnB1dFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElucHV0RGlyZWN0aXZlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9sYWJlbFVpZCA9IGBzZWFtLWxhYmVsLSR7bmV4dExhYmVsVW5pcXVlSWQrK31gXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oZWxwVGV4dFVpZCA9IGBzZWFtLWhlbHAtdGV4dC0ke25leHRMYWJlbFVuaXF1ZUlkKyt9YFxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBfZXJyb3JQYWRkaW5nID0gJzBweCdcblxuICAvKiogQGlnbm9yZSAqL1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKSBnZXQgX2Rpc3BsYXlTdHlsZSgpIHsgcmV0dXJuIHRoaXMuaW5saW5lID8gJ2lubGluZS1ibG9jaycgOiAnYmxvY2snIH1cblxuICAvKipcbiAgICogVXNlZCB0byBkZWNsYXJlIGFuIGlubGluZSBlbGVtZW50LlxuICAgKlxuICAgKiBOT1RFOiBOb3Qgd2VsbCB0ZXN0ZWQgb3Igc3VwcG9ydGVkLCBzbyBpdCBtYXkgaGF2ZSBzb21lIGlzc3VlcyBjdXJyZW50bHlcbiAgICogYW5kIGNvdWxkIGNoYW5nZS5cbiAgICovXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBpbmxpbmUgPSBmYWxzZVxuXG4gIC8qKiBBZGQgYSB0ZXh0IGxhYmVsIGZvciB0aGUgZm9ybSBjb250cm9sLiAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgY2FuIGJlIG9uIHRvcCBvciBpbmxpbmUuXG4gICAqXG4gICAqID4gT25seSBzdXBwb3J0cyBgbHRyYCBkaXJlY3Rpb24sIHNvIGlubGluZSB3aWxsIG9ubHkgcGxhY2UgdGhlIGxhYmVsIG9uIHRoZVxuICAgKiA+IGxlZnQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbFBvc2l0aW9uOiAndG9wJyB8ICdpbmxpbmUnID0gJ3RvcCdcblxuICAvKipcbiAgICogQ1NTIGNsYXNzIHRvIGFkZCB0byB0aGUgbGFiZWwgZWxlbWVudC5cbiAgICpcbiAgICogQWNjZXB0cyBhIHNpbmdsZSBzcGFjZSBzZXBhcmF0ZWQgc3RyaW5nIG9mIGNsYXNzZXMsIGxpa2UgdGhlIGh0bWwgY2xhc3NcbiAgICogYXR0cmlidXRlLlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWxDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIC8qKiBNYXggZXJyb3JzIHRvIGRpc3BsYXkuICovXG4gIEBJbnB1dCgpIG1heEVycm9ycyA9IC0xXG5cbiAgLyoqXG4gICAqIEEgcGFkZGluZyBlcnJvciBpcyBhbiBhbHdheXMgYWxsb2NhdGVkIHNwYWNlIGVxdWl2YWxlbnQgdG8gYSBzaW5nbGUgbGluZVxuICAgKiBlcnJvciBzdHJpbmcuXG4gICAqL1xuICBASW5wdXQoKSBudW1QYWRkaW5nRXJyb3JzID0gMVxuXG4gIC8qKlxuICAgKiBgaWRgIGF0dHJpYnV0ZSB0byBhZGQgdG8gdGhlIGxhYmVsIGVsZW1lbnQuIFRoaXMgc2hvdWxkIG5vdCBiZSBuZWVkZWQgaW5cbiAgICogbW9zdCBzaXR1YXRpb25zLCBiZWNhdXNlIGEgdW5pcXVlIGlkIHdpbGwgYmUgZ2VuZXJhdGVkIGlmIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBsYWJlbElkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgeyByZXR1cm4gdGhpcy5fbGFiZWxJZCB9XG4gIHNldCBsYWJlbElkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7IHRoaXMuX2xhYmVsSWQgPSB2YWx1ZSB8fCB0aGlzLl9sYWJlbFVpZCB9XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfbGFiZWxJZDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIC8qKlxuICAgKiBIZWxwIHRleHQgYWRkZWQgYmVsb3cgdGhlIGNvbnRyb2wuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaGVscFRleHQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCB7IHJldHVybiB0aGlzLl9oZWxwVGV4dFN0clN1YmplY3QudmFsdWUgfVxuICBzZXQgaGVscFRleHQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICB0aGlzLl9oZWxwVGV4dFN0clN1YmplY3QubmV4dCh2YWx1ZSB8fCB1bmRlZmluZWQpXG4gIH1cblxuICAvKipcbiAgICogYGlkYCBhdHRyaWJ1dGUgdG8gYWRkIHRvIHRoZSBsYWJlbCBlbGVtZW50LiBUaGlzIHNob3VsZCBub3QgYmUgbmVlZGVkIGluXG4gICAqIG1vc3Qgc2l0dWF0aW9ucywgYmVjYXVzZSBhIHVuaXF1ZSBpZCB3aWxsIGJlIGdlbmVyYXRlZCBpZiBub3QgcHJvdmlkZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaGVscFRleHRJZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsIHsgcmV0dXJuIHRoaXMuX2hlbHBUZXh0SWQgfVxuICBzZXQgaGVscFRleHRJZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCkgeyB0aGlzLl9oZWxwVGV4dElkID0gdmFsdWUgfHwgdGhpcy5faGVscFRleHRVaWQgfVxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2hlbHBUZXh0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICAvKiogQGlnbm9yZSAqL1xuICBAQ29udGVudENoaWxkKEZvcm1GaWVsZEhlbHBUZXh0RGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBnZXQgaGVscFRleHRUcGwoKTogRm9ybUZpZWxkTGFiZWxUcGxEaXJlY3RpdmUgfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5faGVscFRleHRUcGxTdWJqZWN0LnZhbHVlIH1cbiAgc2V0IGhlbHBUZXh0VHBsKHZhbHVlOiBGb3JtRmllbGRMYWJlbFRwbERpcmVjdGl2ZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2hlbHBUZXh0VHBsU3ViamVjdC5uZXh0KHZhbHVlIHx8IHVuZGVmaW5lZClcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIEBDb250ZW50Q2hpbGQoRm9ybUZpZWxkTGFiZWxUcGxEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIGxhYmVsVHBsPzogRm9ybUZpZWxkTGFiZWxUcGxEaXJlY3RpdmVcblxuICAvKiogQGlnbm9yZSAqL1xuICBAQ29udGVudENoaWxkKElucHV0RGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBnZXQgY29udGVudElucHV0KCk6IElucHV0RGlyZWN0aXZlIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMuX2NvbnRlbnRJbnB1dFN1YmplY3QudmFsdWUgfVxuICBzZXQgY29udGVudElucHV0KHZhbHVlOiBJbnB1dERpcmVjdGl2ZSB8IHVuZGVmaW5lZCkgeyB0aGlzLl9jb250ZW50SW5wdXRTdWJqZWN0Lm5leHQodmFsdWUgfHwgdW5kZWZpbmVkKSB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihGb3JtRmllbGRFcnJvckRpcmVjdGl2ZSlcbiAgZ2V0IGZpZWxkRXJyb3JzKCkgeyByZXR1cm4gdGhpcy5fZmllbGRFcnJvcnMgfVxuICBzZXQgZmllbGRFcnJvcnModmFsdWU6IFF1ZXJ5TGlzdDxGb3JtRmllbGRFcnJvckRpcmVjdGl2ZVtdPiB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICB0aGlzLl9maWVsZEVycm9ycyA9IHZhbHVlXG5cbiAgICBpZiAodGhpcy5fc3ViKSB7IHRoaXMuX3N1Yi51bnN1YnNjcmliZSgpIH1cbiAgICBpZiAodGhpcy5maWVsZEVycm9ycykge1xuICAgICAgdGhpcy5fc3ViID0gdGhpcy5maWVsZEVycm9ycy5jaGFuZ2VzXG4gICAgICAgIC5waXBlKHN0YXJ0V2l0aCh0aGlzLmZpZWxkRXJyb3JzKSlcbiAgICAgICAgLnBpcGUobWFwKHYgPT4gdi50b0FycmF5KCkgYXMgRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmVbXSkpXG4gICAgICAgIC5waXBlKHRhcCh2ID0+IHtcbiAgICAgICAgICBjb25zdCByZWNvcmRzOiBJRXJyb3JSZWNvcmRbXSA9IFtdXG4gICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHYpIHtcbiAgICAgICAgICAgIGlmIChpdGVtLnZhbGlkYXRvck5hbWUpIHtcbiAgICAgICAgICAgICAgcmVjb3Jkcy5wdXNoKHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JOYW1lOiBpdGVtLnZhbGlkYXRvck5hbWUsXG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGU6IGl0ZW0udGVtcGxhdGUsXG4gICAgICAgICAgICAgICAgZXh0ZXJuYWw6IGl0ZW0uZXh0ZXJuYWxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fZmllbGRFcnJvcnNTdWJqZWN0Mi5uZXh0KHJlY29yZHMpXG4gICAgICAgIH0pKVxuICAgICAgICAuc3Vic2NyaWJlKHYgPT4gdGhpcy5fZmllbGRFcnJvcnNTdWJqZWN0Lm5leHQodikpXG4gICAgfVxuICB9XG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2ZpZWxkRXJyb3JzOiBRdWVyeUxpc3Q8Rm9ybUZpZWxkRXJyb3JEaXJlY3RpdmVbXT4gfCB1bmRlZmluZWQgfCBudWxsXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3N1Yj86IFN1YnNjcmlwdGlvblxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpZWxkRXJyb3JzU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlW10+KDEpXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyByZWFkb25seSBmaWVsZEVycm9ycyQ6IE9ic2VydmFibGU8Rm9ybUZpZWxkRXJyb3JEaXJlY3RpdmVbXT4gPSB0aGlzLl9maWVsZEVycm9yc1N1YmplY3QuYXNPYnNlcnZhYmxlKClcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9maWVsZEVycm9yc1N1YmplY3QyID0gbmV3IFJlcGxheVN1YmplY3Q8SUVycm9yUmVjb3JkW10+KDEpXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyByZWFkb25seSBmaWVsZEVycm9yczIkOiBPYnNlcnZhYmxlPElFcnJvclJlY29yZFtdPiA9IHRoaXMuX2ZpZWxkRXJyb3JzU3ViamVjdDIuYXNPYnNlcnZhYmxlKClcblxuICBnZXQgaXNQYXNzd29yZElucHV0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRJbnB1dCAmJiB0aGlzLmNvbnRlbnRJbnB1dC50eXBlICYmIHRoaXMuY29udGVudElucHV0LnR5cGUgPT09ICdwYXNzd29yZCdcbiAgfVxuICBnZXQgcGFzc3dvcmRJbnB1dEVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudElucHV0ICYmIHRoaXMuY29udGVudElucHV0Ll9lbGVtZW50UmVmICYmIHRoaXMuY29udGVudElucHV0Ll9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgfVxuXG4gIGdldCBoYXNIZWxwVGV4dCgpIHsgcmV0dXJuICEhdGhpcy5faGVscFRleHRTdHJTdWJqZWN0LnZhbHVlIHx8ICEhdGhpcy5faGVscFRleHRUcGxTdWJqZWN0LnZhbHVlIH1cbiAgLy8gZ2V0IGhhc0hlbHBUZXh0KCkgeyByZXR1cm4gISF0aGlzLmhlbHBUZXh0IHx8ICEhdGhpcy5faGVscFRleHRUcGwgfVxuXG4gIHByaXZhdGUgX2hlbHBUZXh0U3ViID0gU3Vic2NyaXB0aW9uLkVNUFRZXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHsgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2hlbHBUZXh0U3ViID0gdGhpcy5fY29udGVudElucHV0U3ViamVjdC5waXBlKFxuICAgICAgZmlsdGVyKGNvbnRlbnRJbnB1dCA9PiAhIWNvbnRlbnRJbnB1dCksXG4gICAgICBzd2l0Y2hNYXAoY29udGVudElucHV0ID0+IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLl9oZWxwVGV4dFN0clN1YmplY3QsXG4gICAgICAgIHRoaXMuX2hlbHBUZXh0VHBsU3ViamVjdFxuICAgICAgXSkucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuaGFzSGVscFRleHQpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGlmIChjb250ZW50SW5wdXQpIHtcbiAgICAgICAgICAgIGNvbnRlbnRJbnB1dC5hcmlhRGVzY3JpYmVkQnkgPSB0aGlzLl9oZWxwVGV4dElkIHx8IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICkpXG4gICAgKS5zdWJzY3JpYmUoKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3ViPy51bnN1YnNjcmliZSgpXG4gICAgdGhpcy5faGVscFRleHRTdWI/LnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBpc1ZhbGlkYXRvck1hdGNoKHZhbGlkYXRvck5hbWU6IHN0cmluZywgdHBsVmFsaWRhdG9yTmFtZTogc3RyaW5nLCBlcnJvcnM6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRwbFZhbGlkYXRvck5hbWVzID0gdHBsVmFsaWRhdG9yTmFtZS5zcGxpdCgnICcpXG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRwbFZhbGlkYXRvck5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBuYW1lID0gdHBsVmFsaWRhdG9yTmFtZXNbaV1cbiAgICAgIGlmIChuYW1lID09PSB2YWxpZGF0b3JOYW1lICYmIGkgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBfbGFiZWxFbGVtUmVzaXplZChsYWJlbEVsZW06IEhUTUxMYWJlbEVsZW1lbnQpIHtcbiAgICBpZiAobGFiZWxFbGVtKSB7XG4gICAgICB0aGlzLl9lcnJvclBhZGRpbmcgPSBgJHtsYWJlbEVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9cHhgXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2Vycm9yUGFkZGluZyA9ICcwcHgnXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgfVxuXG59XG4iLCI8ZGl2PlxuICA8ZGl2IFtjbGFzcy5zZWFtLWZvcm0tZmllbGQtaW5saW5lXT1cImlubGluZVwiPlxuICAgIDxsYWJlbCAqbmdJZj1cImxhYmVsIHx8IGxhYmVsVHBsXCJcbiAgICAgICNsYWJlbEVsZW1cbiAgICAgIFthdHRyLmlkXT1cImxhYmVsSWRcIlxuICAgICAgW2F0dHIuZm9yXT1cImNvbnRlbnRJbnB1dD8uaWRcIlxuICAgICAgY2xhc3M9XCJjb250cm9sLWxhYmVsIHt7IGxhYmVsQ2xhc3MgfX1cIlxuICAgICAgKHNlYW1FbGVtUmVzaXplZCk9XCJfbGFiZWxFbGVtUmVzaXplZChsYWJlbEVsZW0pXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxUcGw7IGVsc2Ugbm9MYWJlbFRwbFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUcGwudGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGxhYmVsLCBsYWJlbDogbGFiZWwsIHJlcXVpcmVkOiBjb250ZW50SW5wdXQ/LnJlcXVpcmVkIHx8IGZhbHNlIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI25vTGFiZWxUcGw+XG4gICAgICAgIHt7IGxhYmVsIH19PHNlYW0tZm9ybS1maWVsZC1yZXF1aXJlZC1pbmRpY2F0b3IgY2xhc3M9XCJwbC0xXCI+PC9zZWFtLWZvcm0tZmllbGQtcmVxdWlyZWQtaW5kaWNhdG9yPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2xhYmVsPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNQYXNzd29yZElucHV0XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Bhc3N3b3JkSW5wdXRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8c2VhbS1wYXNzd29yZC1pbnB1dC1yZXZlYWwgW2lucHV0UmVmXT1cIiRhbnkocGFzc3dvcmRJbnB1dEVsZW1lbnQpXCI+PC9zZWFtLXBhc3N3b3JkLWlucHV0LXJldmVhbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPCEtLSBOZWVkIGAuZC1ibG9ja2AgdG8gbWFrZSBlcnJvcnMgc2hvdyB3aXRob3V0IGlucHV0IHNpYmxpbmcgc2VsZWN0b3IgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50SW5wdXRcIj5cbiAgICA8c2VhbS1mb3JtLWZpZWxkLWVycm9yLWxpc3QgKm5nSWY9XCJmaWVsZEVycm9ycyQgfCBhc3luYyBhcyBmaWVsZEVycm9yc1wiXG4gICAgICBbc3R5bGUucGFkZGluZ0xlZnRdPVwiKGxhYmVsIHx8IGxhYmVsVHBsKSAmJiBpbmxpbmUgPyBfZXJyb3JQYWRkaW5nIDogdW5kZWZpbmVkXCJcbiAgICAgIFtjb250cm9sXT1cImNvbnRlbnRJbnB1dC5uZ0NvbnRyb2xcIlxuICAgICAgW2Vycm9yc109XCJmaWVsZEVycm9yczIkIHwgYXN5bmNcIlxuICAgICAgW21heEVycm9yc109XCJtYXhFcnJvcnNcIlxuICAgICAgW251bVBhZGRpbmdFcnJvcnNdPVwibnVtUGFkZGluZ0Vycm9yc1wiXG4gICAgICBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIj5cbiAgICA8L3NlYW0tZm9ybS1maWVsZC1lcnJvci1saXN0PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  export * from './schema-form-framework';
2
2
  export * from './schema-form-framework.component';
3
3
  export * from './schema-form.module';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL3NjaGVtYS1mb3JtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLHNCQUFzQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zY2hlbWEtZm9ybS1mcmFtZXdvcmsnXG5leHBvcnQgKiBmcm9tICcuL3NjaGVtYS1mb3JtLWZyYW1ld29yay5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL3NjaGVtYS1mb3JtLm1vZHVsZSdcbiJdfQ==
4
+ export * from './schema-form-widget';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL3NjaGVtYS1mb3JtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsc0JBQXNCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NjaGVtYS1mb3JtLWZyYW1ld29yaydcbmV4cG9ydCAqIGZyb20gJy4vc2NoZW1hLWZvcm0tZnJhbWV3b3JrLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vc2NoZW1hLWZvcm0ubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlbWEtZm9ybS13aWRnZXQnXG4iXX0=
@@ -4,10 +4,13 @@ import * as i1 from "@ajsf/core";
4
4
  export class TheSeamSchemaFormFrameworkComponent {
5
5
  }
6
6
  TheSeamSchemaFormFrameworkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormFrameworkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
- TheSeamSchemaFormFrameworkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamSchemaFormFrameworkComponent, selector: "seam-schema-form-framework", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<select-widget-widget\n [dataIndex]=\"$any(dataIndex)\"\n [layoutIndex]=\"$any(layoutIndex)\"\n [layoutNode]=\"layoutNode\">\n</select-widget-widget>\n", styles: [""], dependencies: [{ kind: "component", type: i1.SelectWidgetComponent, selector: "select-widget-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }] });
7
+ TheSeamSchemaFormFrameworkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamSchemaFormFrameworkComponent, selector: "seam-schema-form-framework", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, host: { properties: { "attr.data-name": "layoutNode?.node", "attr.data-data-pointer": "layoutNode?.dataPointer" } }, ngImport: i0, template: "<select-widget-widget\n [dataIndex]=\"$any(dataIndex)\"\n [layoutIndex]=\"$any(layoutIndex)\"\n [layoutNode]=\"layoutNode\">\n</select-widget-widget>\n", styles: [""], dependencies: [{ kind: "component", type: i1.SelectWidgetComponent, selector: "select-widget-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }] });
8
8
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormFrameworkComponent, decorators: [{
9
9
  type: Component,
10
- args: [{ selector: 'seam-schema-form-framework', template: "<select-widget-widget\n [dataIndex]=\"$any(dataIndex)\"\n [layoutIndex]=\"$any(layoutIndex)\"\n [layoutNode]=\"layoutNode\">\n</select-widget-widget>\n" }]
10
+ args: [{ selector: 'seam-schema-form-framework', host: {
11
+ '[attr.data-name]': 'layoutNode?.node',
12
+ '[attr.data-data-pointer]': 'layoutNode?.dataPointer',
13
+ }, template: "<select-widget-widget\n [dataIndex]=\"$any(dataIndex)\"\n [layoutIndex]=\"$any(layoutIndex)\"\n [layoutNode]=\"layoutNode\">\n</select-widget-widget>\n" }]
11
14
  }], propDecorators: { layoutNode: [{
12
15
  type: Input
13
16
  }], layoutIndex: [{
@@ -15,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
15
18
  }], dataIndex: [{
16
19
  type: Input
17
20
  }] } });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tZnJhbWV3b3JrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvc2NoZW1hLWZvcm0vc2NoZW1hLWZvcm0tZnJhbWV3b3JrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvc2NoZW1hLWZvcm0vc2NoZW1hLWZvcm0tZnJhbWV3b3JrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7QUFPaEQsTUFBTSxPQUFPLG1DQUFtQzs7Z0lBQW5DLG1DQUFtQztvSEFBbkMsbUNBQW1DLDRKQ1BoRCw0SkFLQTsyRkRFYSxtQ0FBbUM7a0JBTC9DLFNBQVM7K0JBQ0UsNEJBQTRCOzhCQU03QixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLXNjaGVtYS1mb3JtLWZyYW1ld29yaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY2hlbWEtZm9ybS1mcmFtZXdvcmsuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY2hlbWEtZm9ybS1mcmFtZXdvcmsuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVTZWFtU2NoZW1hRm9ybUZyYW1ld29ya0NvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgbGF5b3V0Tm9kZTogYW55XG4gIEBJbnB1dCgpIGxheW91dEluZGV4OiBudW1iZXJbXSB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgZGF0YUluZGV4OiBudW1iZXJbXSB8IHVuZGVmaW5lZCB8IG51bGxcblxufVxuIiwiPHNlbGVjdC13aWRnZXQtd2lkZ2V0XG4gIFtkYXRhSW5kZXhdPVwiJGFueShkYXRhSW5kZXgpXCJcbiAgW2xheW91dEluZGV4XT1cIiRhbnkobGF5b3V0SW5kZXgpXCJcbiAgW2xheW91dE5vZGVdPVwibGF5b3V0Tm9kZVwiPlxuPC9zZWxlY3Qtd2lkZ2V0LXdpZGdldD5cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tZnJhbWV3b3JrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvc2NoZW1hLWZvcm0vc2NoZW1hLWZvcm0tZnJhbWV3b3JrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvc2NoZW1hLWZvcm0vc2NoZW1hLWZvcm0tZnJhbWV3b3JrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7QUFXaEQsTUFBTSxPQUFPLG1DQUFtQzs7Z0lBQW5DLG1DQUFtQztvSEFBbkMsbUNBQW1DLGlSQ1hoRCw0SkFLQTsyRkRNYSxtQ0FBbUM7a0JBVC9DLFNBQVM7K0JBQ0UsNEJBQTRCLFFBR2hDO3dCQUNKLGtCQUFrQixFQUFFLGtCQUFrQjt3QkFDdEMsMEJBQTBCLEVBQUUseUJBQXlCO3FCQUN0RDs4QkFJUSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLXNjaGVtYS1mb3JtLWZyYW1ld29yaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY2hlbWEtZm9ybS1mcmFtZXdvcmsuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY2hlbWEtZm9ybS1mcmFtZXdvcmsuY29tcG9uZW50LnNjc3MnXSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5kYXRhLW5hbWVdJzogJ2xheW91dE5vZGU/Lm5vZGUnLFxuICAgICdbYXR0ci5kYXRhLWRhdGEtcG9pbnRlcl0nOiAnbGF5b3V0Tm9kZT8uZGF0YVBvaW50ZXInLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUaGVTZWFtU2NoZW1hRm9ybUZyYW1ld29ya0NvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgbGF5b3V0Tm9kZTogYW55XG4gIEBJbnB1dCgpIGxheW91dEluZGV4OiBudW1iZXJbXSB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgZGF0YUluZGV4OiBudW1iZXJbXSB8IHVuZGVmaW5lZCB8IG51bGxcblxufVxuIiwiPHNlbGVjdC13aWRnZXQtd2lkZ2V0XG4gIFtkYXRhSW5kZXhdPVwiJGFueShkYXRhSW5kZXgpXCJcbiAgW2xheW91dEluZGV4XT1cIiRhbnkobGF5b3V0SW5kZXgpXCJcbiAgW2xheW91dE5vZGVdPVwibGF5b3V0Tm9kZVwiPlxuPC9zZWxlY3Qtd2lkZ2V0LXdpZGdldD5cbiJdfQ==
@@ -1,15 +1,45 @@
1
- import { Injectable } from '@angular/core';
1
+ import { Inject, Injectable, InjectionToken, Optional, inject } from '@angular/core';
2
2
  import { Framework } from '@ajsf/core';
3
3
  import { TheSeamSchemaFormCheckboxComponent } from '../schema-form-controls/schema-form-checkbox/schema-form-checkbox.component';
4
4
  import { TheSeamSchemaFormInputComponent } from '../schema-form-controls/schema-form-input/schema-form-input.component';
5
5
  import { TheSeamSchemaFormNumberComponent } from '../schema-form-controls/schema-form-number/schema-form-number.component';
6
6
  import { TheSeamSchemaFormSelectComponent } from '../schema-form-controls/schema-form-select/schema-form-select.component';
7
7
  import { TheSeamSchemaFormSubmitSplitComponent } from '../schema-form-controls/schema-form-submit-split/schema-form-submit-split.component';
8
+ import { TheSeamSchemaFormDividerComponent } from '../schema-form-controls/schema-form-divider/schema-form-divider.component';
9
+ import { TheSeamSchemaFormTelComponent } from '../schema-form-controls/schema-form-tel/schema-form-tel.component';
10
+ import { TheSeamSchemaFormTiledSelectComponent } from '../schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component';
8
11
  import { TheSeamSchemaFormFrameworkComponent } from './schema-form-framework.component';
12
+ import { hasProperty } from '@theseam/ui-common/utils';
9
13
  import * as i0 from "@angular/core";
14
+ export const THESEAM_SCHEMA_FRAMEWORK_OVERRIDES = new InjectionToken('THESEAM_SCHEMA_FRAMEWORK_OVERRIDES');
15
+ export function extendFramework(toExtend, extendFrameworkOrName) {
16
+ // console.log('extendFramework', toExtend, extendFrameworkOrName)
17
+ const _overrides = inject(Framework, { optional: true });
18
+ const overrides = typeof extendFrameworkOrName === 'string'
19
+ ? (_overrides || []).filter(x => x.name === extendFrameworkOrName)
20
+ : [extendFrameworkOrName];
21
+ // console.log(_overrides, overrides)
22
+ if (overrides) {
23
+ for (const override of overrides) {
24
+ // console.log('override', override)
25
+ if (hasProperty(override, 'framework')) {
26
+ toExtend.framework = override.framework;
27
+ }
28
+ if (hasProperty(override, 'widgets')) {
29
+ toExtend.widgets = { ...toExtend.widgets, ...override.widgets };
30
+ }
31
+ if (hasProperty(override, 'stylesheets')) {
32
+ toExtend.stylesheets = { ...toExtend.stylesheets, ...override.stylesheets };
33
+ }
34
+ if (hasProperty(override, 'scripts')) {
35
+ toExtend.scripts = { ...toExtend.scripts, ...override.scripts };
36
+ }
37
+ }
38
+ }
39
+ }
10
40
  export class TheSeamFramework extends Framework {
11
- constructor() {
12
- super(...arguments);
41
+ constructor(_overrides) {
42
+ super();
13
43
  this.name = 'seam-framework';
14
44
  this.framework = TheSeamSchemaFormFrameworkComponent;
15
45
  this.widgets = {
@@ -18,13 +48,38 @@ export class TheSeamFramework extends Framework {
18
48
  'submit': TheSeamSchemaFormSubmitSplitComponent,
19
49
  'text': TheSeamSchemaFormInputComponent,
20
50
  'number': TheSeamSchemaFormNumberComponent,
21
- 'select': TheSeamSchemaFormSelectComponent
51
+ 'select': TheSeamSchemaFormSelectComponent,
52
+ 'divider': TheSeamSchemaFormDividerComponent,
53
+ 'tel': TheSeamSchemaFormTelComponent,
54
+ 'tiled-select': TheSeamSchemaFormTiledSelectComponent
55
+ // 'file': // TODO: Implement
56
+ // 'date': // TODO: Implement
57
+ // 'map': // TODO: Implement
58
+ // 'wizard': // TODO: Implement
59
+ // 'image': // TODO: Implement
60
+ // 'tabs': // TODO: Implement
61
+ // 'card': // TODO: Implement
62
+ // 'richtext': // TODO: Implement
22
63
  };
64
+ // console.log('TheSeamFramework', _overrides, this)
65
+ if (_overrides) {
66
+ for (const override of _overrides) {
67
+ // console.log('override', override)
68
+ if (hasProperty(override, 'widgets')) {
69
+ this.widgets = { ...this.widgets, ...override.widgets };
70
+ }
71
+ }
72
+ }
23
73
  }
24
74
  }
25
- TheSeamFramework.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamFramework, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
75
+ TheSeamFramework.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamFramework, deps: [{ token: THESEAM_SCHEMA_FRAMEWORK_OVERRIDES, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
26
76
  TheSeamFramework.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamFramework });
27
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamFramework, decorators: [{
28
78
  type: Injectable
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tZnJhbWV3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zY2hlbWEtZm9ybS9zY2hlbWEtZm9ybS1mcmFtZXdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXRDLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDZFQUE2RSxDQUFBO0FBQ2hJLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVFQUF1RSxDQUFBO0FBQ3ZILE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHlFQUF5RSxDQUFBO0FBQzFILE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHlFQUF5RSxDQUFBO0FBQzFILE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHFGQUFxRixDQUFBO0FBRzNJLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLG1DQUFtQyxDQUFBOztBQUd2RixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBUztJQUQvQzs7UUFFRSxTQUFJLEdBQUcsZ0JBQWdCLENBQUE7UUFFdkIsY0FBUyxHQUFHLG1DQUFtQyxDQUFBO1FBRS9DLFlBQU8sR0FBRztZQUNSLFVBQVUsRUFBRSxrQ0FBa0M7WUFDOUMsOENBQThDO1lBQzlDLFFBQVEsRUFBRSxxQ0FBcUM7WUFDL0MsTUFBTSxFQUFFLCtCQUErQjtZQUN2QyxRQUFRLEVBQUUsZ0NBQWdDO1lBQzFDLFFBQVEsRUFBRSxnQ0FBZ0M7U0FDM0MsQ0FBQTtLQUNGOzs2R0FiWSxnQkFBZ0I7aUhBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IEZyYW1ld29yayB9IGZyb20gJ0BhanNmL2NvcmUnXG5cbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1jaGVja2JveC9zY2hlbWEtZm9ybS1jaGVja2JveC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0taW5wdXQvc2NoZW1hLWZvcm0taW5wdXQuY29tcG9uZW50J1xuaW1wb3J0IHsgVGhlU2VhbVNjaGVtYUZvcm1OdW1iZXJDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1udW1iZXIvc2NoZW1hLWZvcm0tbnVtYmVyLmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tc2VsZWN0L3NjaGVtYS1mb3JtLXNlbGVjdC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybVN1Ym1pdFNwbGl0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0L3NjaGVtYS1mb3JtLXN1Ym1pdC1zcGxpdC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybVN1Ym1pdENvbXBvbmVudCB9IGZyb20gJy4uL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLXN1Ym1pdC9zY2hlbWEtZm9ybS1zdWJtaXQuY29tcG9uZW50J1xuXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybUZyYW1ld29ya0NvbXBvbmVudCB9IGZyb20gJy4vc2NoZW1hLWZvcm0tZnJhbWV3b3JrLmNvbXBvbmVudCdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1GcmFtZXdvcmsgZXh0ZW5kcyBGcmFtZXdvcmsge1xuICBuYW1lID0gJ3NlYW0tZnJhbWV3b3JrJ1xuXG4gIGZyYW1ld29yayA9IFRoZVNlYW1TY2hlbWFGb3JtRnJhbWV3b3JrQ29tcG9uZW50XG5cbiAgd2lkZ2V0cyA9IHtcbiAgICAnY2hlY2tib3gnOiBUaGVTZWFtU2NoZW1hRm9ybUNoZWNrYm94Q29tcG9uZW50LFxuICAgIC8vICdzdWJtaXQnOiBUaGVTZWFtU2NoZW1hRm9ybVN1Ym1pdENvbXBvbmVudCxcbiAgICAnc3VibWl0JzogVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdENvbXBvbmVudCxcbiAgICAndGV4dCc6IFRoZVNlYW1TY2hlbWFGb3JtSW5wdXRDb21wb25lbnQsXG4gICAgJ251bWJlcic6IFRoZVNlYW1TY2hlbWFGb3JtTnVtYmVyQ29tcG9uZW50LFxuICAgICdzZWxlY3QnOiBUaGVTZWFtU2NoZW1hRm9ybVNlbGVjdENvbXBvbmVudFxuICB9XG59XG4iXX0=
79
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
80
+ type: Optional
81
+ }, {
82
+ type: Inject,
83
+ args: [THESEAM_SCHEMA_FRAMEWORK_OVERRIDES]
84
+ }] }]; } });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tZnJhbWV3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zY2hlbWEtZm9ybS9zY2hlbWEtZm9ybS1mcmFtZXdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUV0QyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQTtBQUNoSSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQTtBQUN2SCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQTtBQUMxSCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQTtBQUMxSCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxxRkFBcUYsQ0FBQTtBQUUzSSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQTtBQUM3SCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQTtBQUNqSCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxxRkFBcUYsQ0FBQTtBQUUzSSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUN2RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUE7O0FBSXRELE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLElBQUksY0FBYyxDQUFzQyxvQ0FBb0MsQ0FBQyxDQUFBO0FBRS9JLE1BQU0sVUFBVSxlQUFlLENBQUMsUUFBbUIsRUFBRSxxQkFBeUM7SUFDNUYsa0VBQWtFO0lBQ2xFLE1BQU0sVUFBVSxHQUF1QixNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUF1QixDQUFBO0lBQ2xHLE1BQU0sU0FBUyxHQUFHLE9BQU8scUJBQXFCLEtBQUssUUFBUTtRQUN6RCxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxxQkFBcUIsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBRSxxQkFBcUIsQ0FBRSxDQUFBO0lBRTdCLHFDQUFxQztJQUVyQyxJQUFJLFNBQVMsRUFBRTtRQUNiLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFO1lBQ2hDLG9DQUFvQztZQUNwQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEVBQUU7Z0JBQ3RDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQTthQUN4QztZQUVELElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDcEMsUUFBUSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTthQUNoRTtZQUVELElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsRUFBRTtnQkFDeEMsUUFBUSxDQUFDLFdBQVcsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQTthQUM1RTtZQUVELElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDcEMsUUFBUSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTthQUNoRTtTQUNGO0tBQ0Y7QUFDSCxDQUFDO0FBR0QsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUEwQjdDLFlBQzBELFVBQWtEO1FBRTFHLEtBQUssRUFBRSxDQUFBO1FBNUJULFNBQUksR0FBRyxnQkFBZ0IsQ0FBQTtRQUV2QixjQUFTLEdBQUcsbUNBQW1DLENBQUE7UUFFL0MsWUFBTyxHQUFHO1lBQ1IsVUFBVSxFQUFFLGtDQUFrQztZQUM5Qyw4Q0FBOEM7WUFDOUMsUUFBUSxFQUFFLHFDQUFxQztZQUMvQyxNQUFNLEVBQUUsK0JBQStCO1lBQ3ZDLFFBQVEsRUFBRSxnQ0FBZ0M7WUFDMUMsUUFBUSxFQUFFLGdDQUFnQztZQUMxQyxTQUFTLEVBQUUsaUNBQWlDO1lBQzVDLEtBQUssRUFBRSw2QkFBNkI7WUFDcEMsY0FBYyxFQUFFLHFDQUFxQztZQUVyRCw2QkFBNkI7WUFDN0IsNkJBQTZCO1lBQzdCLDRCQUE0QjtZQUM1QiwrQkFBK0I7WUFDL0IsOEJBQThCO1lBQzlCLDZCQUE2QjtZQUM3Qiw2QkFBNkI7WUFDN0IsaUNBQWlDO1NBQ2xDLENBQUE7UUFPQyxvREFBb0Q7UUFFcEQsSUFBSSxVQUFVLEVBQUU7WUFDZCxLQUFLLE1BQU0sUUFBUSxJQUFJLFVBQVUsRUFBRTtnQkFDakMsb0NBQW9DO2dCQUNwQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUE7aUJBQ3hEO2FBQ0Y7U0FDRjtJQUNILENBQUM7OzZHQXpDVSxnQkFBZ0Isa0JBMkJMLGtDQUFrQztpSEEzQjdDLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOzswQkE0Qk4sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgRnJhbWV3b3JrIH0gZnJvbSAnQGFqc2YvY29yZSdcblxuaW1wb3J0IHsgVGhlU2VhbVNjaGVtYUZvcm1DaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLWNoZWNrYm94L3NjaGVtYS1mb3JtLWNoZWNrYm94LmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1pbnB1dC9zY2hlbWEtZm9ybS1pbnB1dC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybU51bWJlckNvbXBvbmVudCB9IGZyb20gJy4uL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLW51bWJlci9zY2hlbWEtZm9ybS1udW1iZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgVGhlU2VhbVNjaGVtYUZvcm1TZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1zZWxlY3Qvc2NoZW1hLWZvcm0tc2VsZWN0LmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1zdWJtaXQtc3BsaXQvc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tc3VibWl0L3NjaGVtYS1mb3JtLXN1Ym1pdC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybURpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1kaXZpZGVyL3NjaGVtYS1mb3JtLWRpdmlkZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgVGhlU2VhbVNjaGVtYUZvcm1UZWxDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS10ZWwvc2NoZW1hLWZvcm0tdGVsLmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtVGlsZWRTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS10aWxlZC1zZWxlY3Qvc2NoZW1hLWZvcm0tdGlsZWQtc2VsZWN0LmNvbXBvbmVudCdcblxuaW1wb3J0IHsgVGhlU2VhbVNjaGVtYUZvcm1GcmFtZXdvcmtDb21wb25lbnQgfSBmcm9tICcuL3NjaGVtYS1mb3JtLWZyYW1ld29yay5jb21wb25lbnQnXG5pbXBvcnQgeyBoYXNQcm9wZXJ0eSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuZXhwb3J0IHR5cGUgVGhlU2VhbVNjaGVtYUZvcm1GcmFtZXdvcmtPdmVycmlkZXMgPSBPbWl0PEZyYW1ld29yaywgJ25hbWUnIHwgJ2ZyYW1ld29yaycgfCAnc3R5bGVzaGVldCcgfCAnc2NyaXB0cyc+XG5cbmV4cG9ydCBjb25zdCBUSEVTRUFNX1NDSEVNQV9GUkFNRVdPUktfT1ZFUlJJREVTID0gbmV3IEluamVjdGlvblRva2VuPFRoZVNlYW1TY2hlbWFGb3JtRnJhbWV3b3JrT3ZlcnJpZGVzPignVEhFU0VBTV9TQ0hFTUFfRlJBTUVXT1JLX09WRVJSSURFUycpXG5cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmRGcmFtZXdvcmsodG9FeHRlbmQ6IEZyYW1ld29yaywgZXh0ZW5kRnJhbWV3b3JrT3JOYW1lOiBGcmFtZXdvcmsgfCBzdHJpbmcpOiB2b2lkIHtcbiAgLy8gY29uc29sZS5sb2coJ2V4dGVuZEZyYW1ld29yaycsIHRvRXh0ZW5kLCBleHRlbmRGcmFtZXdvcmtPck5hbWUpXG4gIGNvbnN0IF9vdmVycmlkZXM6IEZyYW1ld29ya1tdIHwgbnVsbCA9IGluamVjdChGcmFtZXdvcmssIHsgb3B0aW9uYWw6IHRydWUgfSkgYXMgRnJhbWV3b3JrW10gfCBudWxsXG4gIGNvbnN0IG92ZXJyaWRlcyA9IHR5cGVvZiBleHRlbmRGcmFtZXdvcmtPck5hbWUgPT09ICdzdHJpbmcnXG4gICAgPyAoX292ZXJyaWRlcyB8fCBbXSkuZmlsdGVyKHggPT4geC5uYW1lID09PSBleHRlbmRGcmFtZXdvcmtPck5hbWUpXG4gICAgOiBbIGV4dGVuZEZyYW1ld29ya09yTmFtZSBdXG5cbiAgLy8gY29uc29sZS5sb2coX292ZXJyaWRlcywgb3ZlcnJpZGVzKVxuXG4gIGlmIChvdmVycmlkZXMpIHtcbiAgICBmb3IgKGNvbnN0IG92ZXJyaWRlIG9mIG92ZXJyaWRlcykge1xuICAgICAgLy8gY29uc29sZS5sb2coJ292ZXJyaWRlJywgb3ZlcnJpZGUpXG4gICAgICBpZiAoaGFzUHJvcGVydHkob3ZlcnJpZGUsICdmcmFtZXdvcmsnKSkge1xuICAgICAgICB0b0V4dGVuZC5mcmFtZXdvcmsgPSBvdmVycmlkZS5mcmFtZXdvcmtcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Byb3BlcnR5KG92ZXJyaWRlLCAnd2lkZ2V0cycpKSB7XG4gICAgICAgIHRvRXh0ZW5kLndpZGdldHMgPSB7IC4uLnRvRXh0ZW5kLndpZGdldHMsIC4uLm92ZXJyaWRlLndpZGdldHMgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUHJvcGVydHkob3ZlcnJpZGUsICdzdHlsZXNoZWV0cycpKSB7XG4gICAgICAgIHRvRXh0ZW5kLnN0eWxlc2hlZXRzID0geyAuLi50b0V4dGVuZC5zdHlsZXNoZWV0cywgLi4ub3ZlcnJpZGUuc3R5bGVzaGVldHMgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUHJvcGVydHkob3ZlcnJpZGUsICdzY3JpcHRzJykpIHtcbiAgICAgICAgdG9FeHRlbmQuc2NyaXB0cyA9IHsgLi4udG9FeHRlbmQuc2NyaXB0cywgLi4ub3ZlcnJpZGUuc2NyaXB0cyB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUaGVTZWFtRnJhbWV3b3JrIGV4dGVuZHMgRnJhbWV3b3JrIHtcbiAgbmFtZSA9ICdzZWFtLWZyYW1ld29yaydcblxuICBmcmFtZXdvcmsgPSBUaGVTZWFtU2NoZW1hRm9ybUZyYW1ld29ya0NvbXBvbmVudFxuXG4gIHdpZGdldHMgPSB7XG4gICAgJ2NoZWNrYm94JzogVGhlU2VhbVNjaGVtYUZvcm1DaGVja2JveENvbXBvbmVudCxcbiAgICAvLyAnc3VibWl0JzogVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRDb21wb25lbnQsXG4gICAgJ3N1Ym1pdCc6IFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRDb21wb25lbnQsXG4gICAgJ3RleHQnOiBUaGVTZWFtU2NoZW1hRm9ybUlucHV0Q29tcG9uZW50LFxuICAgICdudW1iZXInOiBUaGVTZWFtU2NoZW1hRm9ybU51bWJlckNvbXBvbmVudCxcbiAgICAnc2VsZWN0JzogVGhlU2VhbVNjaGVtYUZvcm1TZWxlY3RDb21wb25lbnQsXG4gICAgJ2RpdmlkZXInOiBUaGVTZWFtU2NoZW1hRm9ybURpdmlkZXJDb21wb25lbnQsXG4gICAgJ3RlbCc6IFRoZVNlYW1TY2hlbWFGb3JtVGVsQ29tcG9uZW50LFxuICAgICd0aWxlZC1zZWxlY3QnOiBUaGVTZWFtU2NoZW1hRm9ybVRpbGVkU2VsZWN0Q29tcG9uZW50XG5cbiAgICAvLyAnZmlsZSc6IC8vIFRPRE86IEltcGxlbWVudFxuICAgIC8vICdkYXRlJzogLy8gVE9ETzogSW1wbGVtZW50XG4gICAgLy8gJ21hcCc6IC8vIFRPRE86IEltcGxlbWVudFxuICAgIC8vICd3aXphcmQnOiAvLyBUT0RPOiBJbXBsZW1lbnRcbiAgICAvLyAnaW1hZ2UnOiAvLyBUT0RPOiBJbXBsZW1lbnRcbiAgICAvLyAndGFicyc6IC8vIFRPRE86IEltcGxlbWVudFxuICAgIC8vICdjYXJkJzogLy8gVE9ETzogSW1wbGVtZW50XG4gICAgLy8gJ3JpY2h0ZXh0JzogLy8gVE9ETzogSW1wbGVtZW50XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRIRVNFQU1fU0NIRU1BX0ZSQU1FV09SS19PVkVSUklERVMpIF9vdmVycmlkZXM/OiBUaGVTZWFtU2NoZW1hRm9ybUZyYW1ld29ya092ZXJyaWRlc1tdXG4gICkge1xuICAgIHN1cGVyKClcblxuICAgIC8vIGNvbnNvbGUubG9nKCdUaGVTZWFtRnJhbWV3b3JrJywgX292ZXJyaWRlcywgdGhpcylcblxuICAgIGlmIChfb3ZlcnJpZGVzKSB7XG4gICAgICBmb3IgKGNvbnN0IG92ZXJyaWRlIG9mIF9vdmVycmlkZXMpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ292ZXJyaWRlJywgb3ZlcnJpZGUpXG4gICAgICAgIGlmIChoYXNQcm9wZXJ0eShvdmVycmlkZSwgJ3dpZGdldHMnKSkge1xuICAgICAgICAgIHRoaXMud2lkZ2V0cyA9IHsgLi4udGhpcy53aWRnZXRzLCAuLi5vdmVycmlkZS53aWRnZXRzIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19