@datarailsshared/datarailsshared 1.5.393 → 1.5.397

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 (142) hide show
  1. package/datarailsshared-datarailsshared-1.5.397.tgz +0 -0
  2. package/esm2022/lib/date-tags/any-tag.component.mjs +18 -18
  3. package/esm2022/lib/date-tags/date-tag.component.mjs +99 -23
  4. package/esm2022/lib/date-tags/date-tag.module.mjs +27 -26
  5. package/esm2022/lib/date-tags/day-tag/day-tag.component.mjs +40 -26
  6. package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +43 -25
  7. package/esm2022/lib/date-tags/month-tag/month-tag.component.mjs +40 -26
  8. package/esm2022/lib/date-tags/quarter-tag/quarter-tag.component.mjs +26 -12
  9. package/esm2022/lib/date-tags/week-tag/week-tag.component.mjs +40 -26
  10. package/esm2022/lib/date-tags/year-tag/year-tag.component.mjs +40 -26
  11. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +16 -16
  12. package/esm2022/lib/directives/click-outside/click-outside.module.mjs +13 -12
  13. package/esm2022/lib/dr-accordion/accordion-item-body.component.mjs +18 -15
  14. package/esm2022/lib/dr-accordion/accordion-item-header.component.mjs +71 -54
  15. package/esm2022/lib/dr-accordion/accordion-item.component.mjs +37 -32
  16. package/esm2022/lib/dr-accordion/accordion.component.mjs +15 -10
  17. package/esm2022/lib/dr-accordion/accordion.module.mjs +20 -19
  18. package/esm2022/lib/dr-alert/dr-alert.component.mjs +44 -16
  19. package/esm2022/lib/dr-alert/dr-alert.module.mjs +14 -13
  20. package/esm2022/lib/dr-avatar/dr-avatar.component.mjs +98 -23
  21. package/esm2022/lib/dr-avatar/dr-avatar.module.mjs +13 -12
  22. package/esm2022/lib/dr-avatar/dr-avatar.pipe.mjs +9 -9
  23. package/esm2022/lib/dr-badge-status/dr-badge-status.component.mjs +43 -17
  24. package/esm2022/lib/dr-badge-status/dr-badge-status.module.mjs +14 -13
  25. package/esm2022/lib/dr-chat/chat.component.mjs +115 -38
  26. package/esm2022/lib/dr-chat/chat.module.mjs +27 -26
  27. package/esm2022/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.mjs +21 -11
  28. package/esm2022/lib/dr-chat/dr-chat-form/chat-form.component.mjs +128 -37
  29. package/esm2022/lib/dr-chat/dr-chat-message/chat-message.component.mjs +126 -41
  30. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.mjs +11 -11
  31. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.mjs +6 -6
  32. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.mjs +40 -11
  33. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.mjs +22 -9
  34. package/esm2022/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.mjs +86 -20
  35. package/esm2022/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.mjs +9 -7
  36. package/esm2022/lib/dr-chip/dr-chip.component.mjs +49 -15
  37. package/esm2022/lib/dr-code-editor/components/code-editor-hint-wrapper.component.mjs +14 -10
  38. package/esm2022/lib/dr-code-editor/components/dr-codemirror.component.mjs +62 -57
  39. package/esm2022/lib/dr-code-editor/dr-code-editor.component.mjs +48 -20
  40. package/esm2022/lib/dr-code-editor/dr-code-editor.module.mjs +14 -13
  41. package/esm2022/lib/dr-details-list/dr-details-list.component.mjs +69 -41
  42. package/esm2022/lib/dr-details-list/dr-details-list.module.mjs +14 -13
  43. package/esm2022/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.mjs +265 -13
  44. package/esm2022/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.mjs +154 -16
  45. package/esm2022/lib/dr-dialog/dialog.module.mjs +14 -13
  46. package/esm2022/lib/dr-dialog/services/dialog.service.mjs +9 -9
  47. package/esm2022/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.mjs +29 -0
  48. package/esm2022/lib/dr-dropdown/dr-dropdown-item-show.pipe.mjs +9 -9
  49. package/esm2022/lib/dr-dropdown/dr-dropdown.component.mjs +175 -56
  50. package/esm2022/lib/dr-dropdown/dr-dropdown.directive.mjs +98 -87
  51. package/esm2022/lib/dr-dropdown/dr-dropdown.module.mjs +32 -15
  52. package/esm2022/lib/dr-dropdown/dr-dropdown.service.mjs +55 -18
  53. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +92 -25
  54. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.module.mjs +13 -12
  55. package/esm2022/lib/dr-error/dr-error.component.mjs +48 -24
  56. package/esm2022/lib/dr-error/dr-error.module.mjs +14 -13
  57. package/esm2022/lib/dr-inputs/button/button.component.mjs +88 -45
  58. package/esm2022/lib/dr-inputs/checkbox/checkbox.component.mjs +53 -28
  59. package/esm2022/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.mjs +32 -32
  60. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.mjs +67 -42
  61. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.mjs +72 -32
  62. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.mjs +111 -42
  63. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.mjs +99 -10
  64. package/esm2022/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.mjs +9 -9
  65. package/esm2022/lib/dr-inputs/date-pickers/services/dr-date-picker.service.mjs +6 -6
  66. package/esm2022/lib/dr-inputs/dr-input/dr-input.component.mjs +168 -84
  67. package/esm2022/lib/dr-inputs/dr-inputs.module.mjs +64 -63
  68. package/esm2022/lib/dr-inputs/dr-link/dr-link.component.mjs +26 -16
  69. package/esm2022/lib/dr-inputs/dr-model-debounce-change.directive.mjs +13 -13
  70. package/esm2022/lib/dr-inputs/dr-select/dr-select.component.mjs +243 -104
  71. package/esm2022/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.mjs +77 -20
  72. package/esm2022/lib/dr-inputs/dr-slider/dr-slider.component.mjs +23 -17
  73. package/esm2022/lib/dr-inputs/dr-toggle/dr-toggle.component.mjs +64 -22
  74. package/esm2022/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.mjs +53 -21
  75. package/esm2022/lib/dr-inputs/radio-button/radio-button.component.mjs +40 -28
  76. package/esm2022/lib/dr-inputs/radio-button/radio-group.component.mjs +51 -41
  77. package/esm2022/lib/dr-layout/dr-layout-body.component.mjs +14 -10
  78. package/esm2022/lib/dr-layout/dr-layout-header.component.mjs +16 -14
  79. package/esm2022/lib/dr-layout/dr-layout.component.mjs +16 -7
  80. package/esm2022/lib/dr-layout/dr-layout.module.mjs +13 -12
  81. package/esm2022/lib/dr-popover/dr-popover-ref.mjs +4 -1
  82. package/esm2022/lib/dr-popover/dr-popover.component.mjs +71 -40
  83. package/esm2022/lib/dr-popover/dr-popover.directive.mjs +51 -49
  84. package/esm2022/lib/dr-popover/dr-popover.module.mjs +13 -12
  85. package/esm2022/lib/dr-popover/dr-popover.service.mjs +25 -13
  86. package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +41 -17
  87. package/esm2022/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.mjs +42 -27
  88. package/esm2022/lib/dr-scenario/dr-scenario.module.mjs +14 -13
  89. package/esm2022/lib/dr-scenario/services/scenario.service.mjs +6 -6
  90. package/esm2022/lib/dr-spinner/dr-spinner.component.mjs +17 -7
  91. package/esm2022/lib/dr-spinner/dr-spinner.directive.mjs +25 -20
  92. package/esm2022/lib/dr-spinner/dr-spinner.module.mjs +13 -12
  93. package/esm2022/lib/dr-tabs/dr-tab.component.mjs +33 -25
  94. package/esm2022/lib/dr-tabs/dr-tabs.component.mjs +118 -30
  95. package/esm2022/lib/dr-tabs/dr-tabs.module.mjs +14 -13
  96. package/esm2022/lib/dr-tags/dr-tag.component.mjs +74 -33
  97. package/esm2022/lib/dr-tags/dr-tag.module.mjs +14 -13
  98. package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.component.mjs +72 -19
  99. package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.module.mjs +14 -13
  100. package/esm2022/lib/dr-tags-constructor/tags-constructor.service.mjs +6 -6
  101. package/esm2022/lib/dr-toastr/default-toastr/default-toastr.component.mjs +48 -10
  102. package/esm2022/lib/dr-toastr/dr-toastr.module.mjs +19 -18
  103. package/esm2022/lib/dr-toastr/dr-toastr.service.mjs +9 -9
  104. package/esm2022/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.mjs +23 -14
  105. package/esm2022/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.mjs +76 -9
  106. package/esm2022/lib/dr-tooltip/dr-tooltip.component.mjs +63 -25
  107. package/esm2022/lib/dr-tooltip/dr-tooltip.directive.mjs +41 -39
  108. package/esm2022/lib/dr-tooltip/dr-tooltip.module.mjs +14 -13
  109. package/esm2022/lib/dr-treeview/components/treeview/treeview.component.mjs +211 -19
  110. package/esm2022/lib/dr-treeview/components/treeview-item/treeview-item.component.mjs +52 -15
  111. package/esm2022/lib/dr-treeview/dr-tree-view.module.mjs +14 -13
  112. package/esm2022/lib/dr-treeview/helpers/treeview-event-parser.mjs +21 -21
  113. package/esm2022/lib/dr-treeview/models/treeview-config.mjs +6 -6
  114. package/esm2022/lib/dr-treeview/models/treeview-i18n.mjs +11 -11
  115. package/esm2022/lib/dr-treeview/pipes/treeview.pipe.mjs +9 -9
  116. package/esm2022/lib/image-cropper/dr-image-cropper-canvas.service.mjs +6 -6
  117. package/esm2022/lib/image-cropper/dr-image-cropper.component.mjs +67 -28
  118. package/esm2022/lib/list-tags/list-tag.component.mjs +57 -17
  119. package/esm2022/lib/list-tags/list-tag.module.mjs +14 -13
  120. package/esm2022/lib/models/dropdown.mjs +1 -1
  121. package/esm2022/lib/models/popover.mjs +1 -1
  122. package/esm2022/lib/stepper/stepper.component.mjs +225 -28
  123. package/esm2022/lib/stepper/stepper.module.mjs +13 -12
  124. package/esm2022/lib/utils/decorators.mjs +12 -0
  125. package/esm2022/public-api.mjs +2 -2
  126. package/fesm2022/datarailsshared-datarailsshared.mjs +5786 -2724
  127. package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
  128. package/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.d.ts +8 -0
  129. package/lib/dr-dropdown/dr-dropdown.component.d.ts +24 -22
  130. package/lib/dr-dropdown/dr-dropdown.directive.d.ts +16 -15
  131. package/lib/dr-dropdown/dr-dropdown.module.d.ts +5 -4
  132. package/lib/dr-dropdown/dr-dropdown.service.d.ts +23 -8
  133. package/lib/dr-popover/dr-popover-ref.d.ts +1 -0
  134. package/lib/dr-popover/dr-popover.service.d.ts +2 -1
  135. package/lib/models/dropdown.d.ts +13 -21
  136. package/lib/models/popover.d.ts +6 -3
  137. package/lib/utils/decorators.d.ts +1 -0
  138. package/package.json +5 -2
  139. package/public-api.d.ts +2 -2
  140. package/datarailsshared-datarailsshared-1.5.393.tgz +0 -0
  141. package/esm2022/lib/dr-dropdown/dr-dropdown-position.directive.mjs +0 -113
  142. package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +0 -15
@@ -3,6 +3,7 @@ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import * as CodeMirror from 'codemirror';
4
4
  import { DrSharedUtils } from '../../utils/dr-shared-utils';
5
5
  import * as i0 from "@angular/core";
6
+ const _c0 = ["ref"];
6
7
  export class DrCodemirrorComponent {
7
8
  set options(value) {
8
9
  this._options = value;
@@ -130,29 +131,33 @@ export class DrCodemirrorComponent {
130
131
  this.disabled = isDisabled;
131
132
  this.setOptionIfChanged('readOnly', this.disabled);
132
133
  }
133
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrCodemirrorComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
134
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrCodemirrorComponent, selector: "dr-codemirror", inputs: { className: "className", name: "name", autoFocus: "autoFocus", options: "options", preserveScrollPosition: "preserveScrollPosition" }, outputs: { cursorActivity: "cursorActivity", focusChange: "focusChange", scroll: "scroll", drop: "drop", codeMirrorLoaded: "codeMirrorLoaded" }, providers: [
135
- {
136
- provide: NG_VALUE_ACCESSOR,
137
- useExisting: forwardRef((() => DrCodemirrorComponent)),
138
- multi: true,
139
- },
140
- ], viewQueries: [{ propertyName: "ref", first: true, predicate: ["ref"], descendants: true }], ngImport: i0, template: `
141
- <textarea
142
- [name]="name"
143
- class="dr-codemirror {{ className }}"
144
- [class.dr-codemirror--focused]="isFocused"
145
- autocomplete="off"
146
- [autofocus]="autoFocus"
147
- #ref>
148
- </textarea>
149
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
134
+ /** @nocollapse */ static { this.ɵfac = function DrCodemirrorComponent_Factory(t) { return new (t || DrCodemirrorComponent)(i0.ɵɵdirectiveInject(i0.KeyValueDiffers), i0.ɵɵdirectiveInject(i0.NgZone)); }; }
135
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrCodemirrorComponent, selectors: [["dr-codemirror"]], viewQuery: function DrCodemirrorComponent_Query(rf, ctx) { if (rf & 1) {
136
+ i0.ɵɵviewQuery(_c0, 5);
137
+ } if (rf & 2) {
138
+ let _t;
139
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ref = _t.first);
140
+ } }, inputs: { className: "className", name: "name", autoFocus: "autoFocus", options: "options", preserveScrollPosition: "preserveScrollPosition" }, outputs: { cursorActivity: "cursorActivity", focusChange: "focusChange", scroll: "scroll", drop: "drop", codeMirrorLoaded: "codeMirrorLoaded" }, features: [i0.ɵɵProvidersFeature([
141
+ {
142
+ provide: NG_VALUE_ACCESSOR,
143
+ useExisting: forwardRef((() => DrCodemirrorComponent)),
144
+ multi: true,
145
+ },
146
+ ])], decls: 3, vars: 7, consts: [["autocomplete", "off", 3, "name", "autofocus"], ["ref", ""]], template: function DrCodemirrorComponent_Template(rf, ctx) { if (rf & 1) {
147
+ i0.ɵɵelementStart(0, "textarea", 0, 1);
148
+ i0.ɵɵtext(2, " ");
149
+ i0.ɵɵelementEnd();
150
+ } if (rf & 2) {
151
+ i0.ɵɵclassMapInterpolate1("dr-codemirror ", ctx.className, "");
152
+ i0.ɵɵclassProp("dr-codemirror--focused", ctx.isFocused);
153
+ i0.ɵɵproperty("name", ctx.name)("autofocus", ctx.autoFocus);
154
+ } }, encapsulation: 2, changeDetection: 0 }); }
150
155
  }
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrCodemirrorComponent, decorators: [{
152
- type: Component,
153
- args: [{
154
- selector: 'dr-codemirror',
155
- template: `
156
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrCodemirrorComponent, [{
157
+ type: Component,
158
+ args: [{
159
+ selector: 'dr-codemirror',
160
+ template: `
156
161
  <textarea
157
162
  [name]="name"
158
163
  class="dr-codemirror {{ className }}"
@@ -162,38 +167,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
162
167
  #ref>
163
168
  </textarea>
164
169
  `,
165
- providers: [
166
- {
167
- provide: NG_VALUE_ACCESSOR,
168
- useExisting: forwardRef((() => DrCodemirrorComponent)),
169
- multi: true,
170
- },
171
- ],
172
- preserveWhitespaces: false,
173
- changeDetection: ChangeDetectionStrategy.OnPush,
174
- }]
175
- }], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.NgZone }]; }, propDecorators: { className: [{
176
- type: Input
177
- }], name: [{
178
- type: Input
179
- }], autoFocus: [{
180
- type: Input
181
- }], options: [{
182
- type: Input
183
- }], preserveScrollPosition: [{
184
- type: Input
185
- }], cursorActivity: [{
186
- type: Output
187
- }], focusChange: [{
188
- type: Output
189
- }], scroll: [{
190
- type: Output
191
- }], drop: [{
192
- type: Output
193
- }], codeMirrorLoaded: [{
194
- type: Output
195
- }], ref: [{
196
- type: ViewChild,
197
- args: ['ref']
198
- }] } });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY29kZW1pcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jb2RlLWVkaXRvci9jb21wb25lbnRzL2RyLWNvZGVtaXJyb3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxlQUFlLEVBQ2YsTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUF3QjVELE1BQU0sT0FBTyxxQkFBcUI7SUFLOUIsSUFDSSxPQUFPLENBQUMsS0FBNkI7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDckQ7SUFDTCxDQUFDO0lBaUJELFlBQ1ksUUFBeUIsRUFDekIsT0FBZTtRQURmLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUE3QmxCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixTQUFJLEdBQUcsWUFBWSxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFTbEIsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLG1CQUFjLEdB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QyxxQkFBcUIsRUFBQztnQkFDcEQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKLHNIQWhCUzs7Ozs7Ozs7O0tBU1Q7OzRGQVdRLHFCQUFxQjtrQkF0QmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRTs7Ozs7Ozs7O0tBU1Q7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLHNCQUFzQixFQUFDOzRCQUNwRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtvQkFDRCxtQkFBbUIsRUFBRSxLQUFLO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7MkhBRVksU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHRixPQUFPO3NCQURWLEtBQUs7Z0JBT0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDVyxHQUFHO3NCQUFwQixTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBLZXlWYWx1ZURpZmZlcixcbiAgICBLZXlWYWx1ZURpZmZlcnMsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVkaXRvciwgRWRpdG9yQ2hhbmdlLCBFZGl0b3JGcm9tVGV4dEFyZWEsIFNjcm9sbEluZm8gfSBmcm9tICdjb2RlbWlycm9yJztcbmltcG9ydCAqIGFzIENvZGVNaXJyb3IgZnJvbSAnY29kZW1pcnJvcic7XG5pbXBvcnQgeyBEclNoYXJlZFV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZHItc2hhcmVkLXV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1jb2RlbWlycm9yJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJkci1jb2RlbWlycm9yIHt7IGNsYXNzTmFtZSB9fVwiXG4gICAgICAgICAgICBbY2xhc3MuZHItY29kZW1pcnJvci0tZm9jdXNlZF09XCJpc0ZvY3VzZWRcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b0ZvY3VzXCJcbiAgICAgICAgICAgICNyZWY+XG4gICAgICAgIDwvdGV4dGFyZWE+XG4gICAgYCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEckNvZGVtaXJyb3JDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJDb2RlbWlycm9yQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRG9DaGVjayB7XG4gICAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG4gICAgQElucHV0KCkgbmFtZSA9ICdjb2RlbWlycm9yJztcbiAgICBASW5wdXQoKSBhdXRvRm9jdXMgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IG9wdGlvbnModmFsdWU6IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuICAgICAgICBpZiAoIXRoaXMuX2RpZmZlciAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fZGlmZmVyID0gdGhpcy5fZGlmZmVycy5maW5kKHZhbHVlKS5jcmVhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBASW5wdXQoKSBwcmVzZXJ2ZVNjcm9sbFBvc2l0aW9uID0gZmFsc2U7XG4gICAgQE91dHB1dCgpIGN1cnNvckFjdGl2aXR5ID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0b3I+KCk7XG4gICAgQE91dHB1dCgpIGZvY3VzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIEBPdXRwdXQoKSBzY3JvbGwgPSBuZXcgRXZlbnRFbWl0dGVyPFNjcm9sbEluZm8+KCk7XG4gICAgQE91dHB1dCgpIGRyb3AgPSBuZXcgRXZlbnRFbWl0dGVyPFtFZGl0b3IsIERyYWdFdmVudF0+KCk7XG4gICAgQE91dHB1dCgpIGNvZGVNaXJyb3JMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERyQ29kZW1pcnJvckNvbXBvbmVudD4oKTtcbiAgICBAVmlld0NoaWxkKCdyZWYnKSByZWYhOiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuICAgIHZhbHVlID0gJyc7XG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBpc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICBjb2RlTWlycm9yPzogRWRpdG9yRnJvbVRleHRBcmVhO1xuXG4gICAgcHJpdmF0ZSBfY29kZU1pcnJvcjogYW55O1xuICAgIHByaXZhdGUgX2RpZmZlcj86IEtleVZhbHVlRGlmZmVyPHN0cmluZywgYW55PjtcbiAgICBwcml2YXRlIF9vcHRpb25zOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZGlmZmVyczogS2V5VmFsdWVEaWZmZXJzLFxuICAgICAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICApIHt9XG5cbiAgICBnZXQgY29kZU1pcnJvckdsb2JhbCgpOiBhbnkge1xuICAgICAgICBpZiAodGhpcy5fY29kZU1pcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvZGVNaXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jb2RlTWlycm9yID0gQ29kZU1pcnJvcjtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvZGVNaXJyb3I7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29kZU1pcnJvck9iaiA9IGF3YWl0IHRoaXMuY29kZU1pcnJvckdsb2JhbDtcbiAgICAgICAgICAgIGNvbnN0IGNvZGVNaXJyb3IgPSBjb2RlTWlycm9yT2JqPy5kZWZhdWx0ID8gY29kZU1pcnJvck9iai5kZWZhdWx0IDogY29kZU1pcnJvck9iajtcbiAgICAgICAgICAgIHRoaXMuY29kZU1pcnJvciA9IGNvZGVNaXJyb3IuZnJvbVRleHRBcmVhKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX29wdGlvbnMpIGFzIEVkaXRvckZyb21UZXh0QXJlYTtcbiAgICAgICAgICAgIHRoaXMuY29kZU1pcnJvci5vbignY3Vyc29yQWN0aXZpdHknLCAoY20pID0+IHRoaXMuX25nWm9uZS5ydW4oKCkgPT4gdGhpcy5jdXJzb3JBY3RpdmUoY20pKSk7XG4gICAgICAgICAgICB0aGlzLmNvZGVNaXJyb3Iub24oJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsQ2hhbmdlZC5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIHRoaXMuY29kZU1pcnJvci5vbignYmx1cicsICgpID0+IHRoaXMuX25nWm9uZS5ydW4oKCkgPT4gdGhpcy5mb2N1c0NoYW5nZWQoZmFsc2UpKSk7XG4gICAgICAgICAgICB0aGlzLmNvZGVNaXJyb3Iub24oJ2ZvY3VzJywgKCkgPT4gdGhpcy5fbmdab25lLnJ1bigoKSA9PiB0aGlzLmZvY3VzQ2hhbmdlZCh0cnVlKSkpO1xuICAgICAgICAgICAgdGhpcy5jb2RlTWlycm9yLm9uKCdjaGFuZ2UnLCAoY20sIGNoYW5nZSkgPT4gdGhpcy5fbmdab25lLnJ1bigoKSA9PiB0aGlzLmNvZGVtaXJyb3JWYWx1ZUNoYW5nZWQoY20sIGNoYW5nZSkpKTtcbiAgICAgICAgICAgIHRoaXMuY29kZU1pcnJvci5vbignZHJvcCcsIChjbSwgZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4gdGhpcy5kcm9wRmlsZXMoY20sIGUpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5jb2RlTWlycm9yLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5jb2RlTWlycm9yTG9hZGVkLmVtaXQodGhpcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nRG9DaGVjaygpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9kaWZmZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBjaGVjayBvcHRpb25zIGhhdmUgbm90IGNoYW5nZWRcbiAgICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuX2RpZmZlci5kaWZmKHRoaXMuX29wdGlvbnMpO1xuICAgICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICAgICAgY2hhbmdlcy5mb3JFYWNoQ2hhbmdlZEl0ZW0oKG9wdGlvbikgPT4gdGhpcy5zZXRPcHRpb25JZkNoYW5nZWQob3B0aW9uLmtleSwgb3B0aW9uLmN1cnJlbnRWYWx1ZSkpO1xuICAgICAgICAgICAgY2hhbmdlcy5mb3JFYWNoQWRkZWRJdGVtKChvcHRpb24pID0+IHRoaXMuc2V0T3B0aW9uSWZDaGFuZ2VkKG9wdGlvbi5rZXksIG9wdGlvbi5jdXJyZW50VmFsdWUpKTtcbiAgICAgICAgICAgIGNoYW5nZXMuZm9yRWFjaFJlbW92ZWRJdGVtKChvcHRpb24pID0+IHRoaXMuc2V0T3B0aW9uSWZDaGFuZ2VkKG9wdGlvbi5rZXksIG9wdGlvbi5jdXJyZW50VmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBpcyB0aGVyZSBhIGxpZ2h0ZXItd2VpZ2h0IHdheSB0byByZW1vdmUgdGhlIGNtIGluc3RhbmNlP1xuICAgICAgICBpZiAodGhpcy5jb2RlTWlycm9yKSB7XG4gICAgICAgICAgICB0aGlzLmNvZGVNaXJyb3IudG9UZXh0QXJlYSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29kZW1pcnJvclZhbHVlQ2hhbmdlZChjbTogRWRpdG9yLCBjaGFuZ2U6IEVkaXRvckNoYW5nZSkge1xuICAgICAgICBjb25zdCBjbVZhbCA9IGNtLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlICE9PSBjbVZhbCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGNtVmFsO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldE9wdGlvbklmQ2hhbmdlZChvcHRpb25OYW1lOiBzdHJpbmcsIG5ld1ZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvZGVNaXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNhc3QgdG8gYW55IHRvIGhhbmRsZSBzdHJpY3RseSB0eXBlZCBvcHRpb24gbmFtZXNcbiAgICAgICAgLy8gY291bGQgcG9zc2libHkgaW1wb3J0IHNldHRpbmdzIHN0cmluZ3MgYXZhaWxhYmxlIGluIHRoZSBmdXR1cmVcbiAgICAgICAgdGhpcy5jb2RlTWlycm9yLnNldE9wdGlvbihvcHRpb25OYW1lIGFzIGFueSwgbmV3VmFsdWUpO1xuICAgIH1cblxuICAgIGZvY3VzQ2hhbmdlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMuaXNGb2N1c2VkID0gZm9jdXNlZDtcbiAgICAgICAgdGhpcy5mb2N1c0NoYW5nZS5lbWl0KGZvY3VzZWQpO1xuICAgIH1cblxuICAgIHNjcm9sbENoYW5nZWQoY206IEVkaXRvcikge1xuICAgICAgICB0aGlzLnNjcm9sbC5lbWl0KGNtLmdldFNjcm9sbEluZm8oKSk7XG4gICAgfVxuXG4gICAgY3Vyc29yQWN0aXZlKGNtOiBFZGl0b3IpIHtcbiAgICAgICAgdGhpcy5jdXJzb3JBY3Rpdml0eS5lbWl0KGNtKTtcbiAgICB9XG5cbiAgICBkcm9wRmlsZXMoY206IEVkaXRvciwgZTogRHJhZ0V2ZW50KSB7XG4gICAgICAgIHRoaXMuZHJvcC5lbWl0KFtjbSwgZV0pO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5jb2RlTWlycm9yKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VyID0gdGhpcy5jb2RlTWlycm9yLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gY3VyICYmIERyU2hhcmVkVXRpbHMubm9ybWFsaXplTGluZUVuZGluZ3MoY3VyKSAhPT0gRHJTaGFyZWRVdGlscy5ub3JtYWxpemVMaW5lRW5kaW5ncyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXNlcnZlU2Nyb2xsUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2U2Nyb2xsUG9zaXRpb24gPSB0aGlzLmNvZGVNaXJyb3IuZ2V0U2Nyb2xsSW5mbygpO1xuICAgICAgICAgICAgICAgIHRoaXMuY29kZU1pcnJvci5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvZGVNaXJyb3Iuc2Nyb2xsVG8ocHJldlNjcm9sbFBvc2l0aW9uLmxlZnQsIHByZXZTY3JvbGxQb3NpdGlvbi50b3ApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvZGVNaXJyb3Iuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuc2V0T3B0aW9uSWZDaGFuZ2VkKCdyZWFkT25seScsIHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblxuICAgIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge307XG59XG4iXX0=
170
+ providers: [
171
+ {
172
+ provide: NG_VALUE_ACCESSOR,
173
+ useExisting: forwardRef((() => DrCodemirrorComponent)),
174
+ multi: true,
175
+ },
176
+ ],
177
+ preserveWhitespaces: false,
178
+ changeDetection: ChangeDetectionStrategy.OnPush,
179
+ }]
180
+ }], function () { return [{ type: i0.KeyValueDiffers }, { type: i0.NgZone }]; }, { className: [{
181
+ type: Input
182
+ }], name: [{
183
+ type: Input
184
+ }], autoFocus: [{
185
+ type: Input
186
+ }], options: [{
187
+ type: Input
188
+ }], preserveScrollPosition: [{
189
+ type: Input
190
+ }], cursorActivity: [{
191
+ type: Output
192
+ }], focusChange: [{
193
+ type: Output
194
+ }], scroll: [{
195
+ type: Output
196
+ }], drop: [{
197
+ type: Output
198
+ }], codeMirrorLoaded: [{
199
+ type: Output
200
+ }], ref: [{
201
+ type: ViewChild,
202
+ args: ['ref']
203
+ }] }); })();
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY29kZW1pcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jb2RlLWVkaXRvci9jb21wb25lbnRzL2RyLWNvZGVtaXJyb3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxlQUFlLEVBQ2YsTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBd0I1RCxNQUFNLE9BQU8scUJBQXFCO0lBSzlCLElBQ0ksT0FBTyxDQUFDLEtBQTZCO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRTtZQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3JEO0lBQ0wsQ0FBQztJQWlCRCxZQUNZLFFBQXlCLEVBQ3pCLE9BQWU7UUFEZixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBN0JsQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsU0FBSSxHQUFHLFlBQVksQ0FBQztRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBU2xCLDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQUM5QixtQkFBYyxH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QUUsQ0FBQyxxQkFBcUIsRUFBQztvQkFDcEQsS0FBSyxFQUFFLElBQUk7aUJBQ2Q7YUFDSjtZQWZHLHNDQU1TO1lBQ1Qsd0JBQUE7WUFBQSxpQkFBVzs7WUFMUCw4REFBcUM7WUFDckMsdURBQTBDO1lBRjFDLCtCQUFhLDRCQUFBOzs7dUZBa0JaLHFCQUFxQjtjQXRCakMsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxlQUFlO2dCQUN6QixRQUFRLEVBQUU7Ozs7Ozs7OztLQVNUO2dCQUNELFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxzQkFBc0IsRUFBQzt3QkFDcEQsS0FBSyxFQUFFLElBQUk7cUJBQ2Q7aUJBQ0o7Z0JBQ0QsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDbEQ7dUZBRVksU0FBUztrQkFBakIsS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUNHLFNBQVM7a0JBQWpCLEtBQUs7WUFHRixPQUFPO2tCQURWLEtBQUs7WUFPRyxzQkFBc0I7a0JBQTlCLEtBQUs7WUFDSSxjQUFjO2tCQUF2QixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUNHLE1BQU07a0JBQWYsTUFBTTtZQUNHLElBQUk7a0JBQWIsTUFBTTtZQUNHLGdCQUFnQjtrQkFBekIsTUFBTTtZQUNXLEdBQUc7a0JBQXBCLFNBQVM7bUJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIEtleVZhbHVlRGlmZmVyLFxuICAgIEtleVZhbHVlRGlmZmVycyxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRWRpdG9yLCBFZGl0b3JDaGFuZ2UsIEVkaXRvckZyb21UZXh0QXJlYSwgU2Nyb2xsSW5mbyB9IGZyb20gJ2NvZGVtaXJyb3InO1xuaW1wb3J0ICogYXMgQ29kZU1pcnJvciBmcm9tICdjb2RlbWlycm9yJztcbmltcG9ydCB7IERyU2hhcmVkVXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy9kci1zaGFyZWQtdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWNvZGVtaXJyb3InLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICBjbGFzcz1cImRyLWNvZGVtaXJyb3Ige3sgY2xhc3NOYW1lIH19XCJcbiAgICAgICAgICAgIFtjbGFzcy5kci1jb2RlbWlycm9yLS1mb2N1c2VkXT1cImlzRm9jdXNlZFwiXG4gICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgW2F1dG9mb2N1c109XCJhdXRvRm9jdXNcIlxuICAgICAgICAgICAgI3JlZj5cbiAgICAgICAgPC90ZXh0YXJlYT5cbiAgICBgLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERyQ29kZW1pcnJvckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEckNvZGVtaXJyb3JDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBEb0NoZWNrIHtcbiAgICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcbiAgICBASW5wdXQoKSBuYW1lID0gJ2NvZGVtaXJyb3InO1xuICAgIEBJbnB1dCgpIGF1dG9Gb2N1cyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgb3B0aW9ucyh2YWx1ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gdmFsdWU7XG4gICAgICAgIGlmICghdGhpcy5fZGlmZmVyICYmIHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9kaWZmZXIgPSB0aGlzLl9kaWZmZXJzLmZpbmQodmFsdWUpLmNyZWF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBJbnB1dCgpIHByZXNlcnZlU2Nyb2xsUG9zaXRpb24gPSBmYWxzZTtcbiAgICBAT3V0cHV0KCkgY3Vyc29yQWN0aXZpdHkgPSBuZXcgRXZlbnRFbWl0dGVyPEVkaXRvcj4oKTtcbiAgICBAT3V0cHV0KCkgZm9jdXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIHNjcm9sbCA9IG5ldyBFdmVudEVtaXR0ZXI8U2Nyb2xsSW5mbz4oKTtcbiAgICBAT3V0cHV0KCkgZHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8W0VkaXRvciwgRHJhZ0V2ZW50XT4oKTtcbiAgICBAT3V0cHV0KCkgY29kZU1pcnJvckxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RHJDb2RlbWlycm9yQ29tcG9uZW50PigpO1xuICAgIEBWaWV3Q2hpbGQoJ3JlZicpIHJlZiE6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XG4gICAgdmFsdWUgPSAnJztcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIGlzRm9jdXNlZCA9IGZhbHNlO1xuICAgIGNvZGVNaXJyb3I/OiBFZGl0b3JGcm9tVGV4dEFyZWE7XG5cbiAgICBwcml2YXRlIF9jb2RlTWlycm9yOiBhbnk7XG4gICAgcHJpdmF0ZSBfZGlmZmVyPzogS2V5VmFsdWVEaWZmZXI8c3RyaW5nLCBhbnk+O1xuICAgIHByaXZhdGUgX29wdGlvbnM6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9kaWZmZXJzOiBLZXlWYWx1ZURpZmZlcnMsXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICkge31cblxuICAgIGdldCBjb2RlTWlycm9yR2xvYmFsKCk6IGFueSB7XG4gICAgICAgIGlmICh0aGlzLl9jb2RlTWlycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29kZU1pcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NvZGVNaXJyb3IgPSBDb2RlTWlycm9yO1xuICAgICAgICByZXR1cm4gdGhpcy5fY29kZU1pcnJvcjtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb2RlTWlycm9yT2JqID0gYXdhaXQgdGhpcy5jb2RlTWlycm9yR2xvYmFsO1xuICAgICAgICAgICAgY29uc3QgY29kZU1pcnJvciA9IGNvZGVNaXJyb3JPYmo/LmRlZmF1bHQgPyBjb2RlTWlycm9yT2JqLmRlZmF1bHQgOiBjb2RlTWlycm9yT2JqO1xuICAgICAgICAgICAgdGhpcy5jb2RlTWlycm9yID0gY29kZU1pcnJvci5mcm9tVGV4dEFyZWEodGhpcy5yZWYubmF0aXZlRWxlbWVudCwgdGhpcy5fb3B0aW9ucykgYXMgRWRpdG9yRnJvbVRleHRBcmVhO1xuICAgICAgICAgICAgdGhpcy5jb2RlTWlycm9yLm9uKCdjdXJzb3JBY3Rpdml0eScsIChjbSkgPT4gdGhpcy5fbmdab25lLnJ1bigoKSA9PiB0aGlzLmN1cnNvckFjdGl2ZShjbSkpKTtcbiAgICAgICAgICAgIHRoaXMuY29kZU1pcnJvci5vbignc2Nyb2xsJywgdGhpcy5zY3JvbGxDaGFuZ2VkLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgdGhpcy5jb2RlTWlycm9yLm9uKCdibHVyJywgKCkgPT4gdGhpcy5fbmdab25lLnJ1bigoKSA9PiB0aGlzLmZvY3VzQ2hhbmdlZChmYWxzZSkpKTtcbiAgICAgICAgICAgIHRoaXMuY29kZU1pcnJvci5vbignZm9jdXMnLCAoKSA9PiB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHRoaXMuZm9jdXNDaGFuZ2VkKHRydWUpKSk7XG4gICAgICAgICAgICB0aGlzLmNvZGVNaXJyb3Iub24oJ2NoYW5nZScsIChjbSwgY2hhbmdlKSA9PiB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHRoaXMuY29kZW1pcnJvclZhbHVlQ2hhbmdlZChjbSwgY2hhbmdlKSkpO1xuICAgICAgICAgICAgdGhpcy5jb2RlTWlycm9yLm9uKCdkcm9wJywgKGNtLCBlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB0aGlzLmRyb3BGaWxlcyhjbSwgZSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNvZGVNaXJyb3Iuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmNvZGVNaXJyb3JMb2FkZWQuZW1pdCh0aGlzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMuX2RpZmZlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNoZWNrIG9wdGlvbnMgaGF2ZSBub3QgY2hhbmdlZFxuICAgICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5fZGlmZmVyLmRpZmYodGhpcy5fb3B0aW9ucyk7XG4gICAgICAgIGlmIChjaGFuZ2VzKSB7XG4gICAgICAgICAgICBjaGFuZ2VzLmZvckVhY2hDaGFuZ2VkSXRlbSgob3B0aW9uKSA9PiB0aGlzLnNldE9wdGlvbklmQ2hhbmdlZChvcHRpb24ua2V5LCBvcHRpb24uY3VycmVudFZhbHVlKSk7XG4gICAgICAgICAgICBjaGFuZ2VzLmZvckVhY2hBZGRlZEl0ZW0oKG9wdGlvbikgPT4gdGhpcy5zZXRPcHRpb25JZkNoYW5nZWQob3B0aW9uLmtleSwgb3B0aW9uLmN1cnJlbnRWYWx1ZSkpO1xuICAgICAgICAgICAgY2hhbmdlcy5mb3JFYWNoUmVtb3ZlZEl0ZW0oKG9wdGlvbikgPT4gdGhpcy5zZXRPcHRpb25JZkNoYW5nZWQob3B0aW9uLmtleSwgb3B0aW9uLmN1cnJlbnRWYWx1ZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIGlzIHRoZXJlIGEgbGlnaHRlci13ZWlnaHQgd2F5IHRvIHJlbW92ZSB0aGUgY20gaW5zdGFuY2U/XG4gICAgICAgIGlmICh0aGlzLmNvZGVNaXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuY29kZU1pcnJvci50b1RleHRBcmVhKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb2RlbWlycm9yVmFsdWVDaGFuZ2VkKGNtOiBFZGl0b3IsIGNoYW5nZTogRWRpdG9yQ2hhbmdlKSB7XG4gICAgICAgIGNvbnN0IGNtVmFsID0gY20uZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgIT09IGNtVmFsKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gY21WYWw7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0T3B0aW9uSWZDaGFuZ2VkKG9wdGlvbk5hbWU6IHN0cmluZywgbmV3VmFsdWU6IGFueSkge1xuICAgICAgICBpZiAoIXRoaXMuY29kZU1pcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2FzdCB0byBhbnkgdG8gaGFuZGxlIHN0cmljdGx5IHR5cGVkIG9wdGlvbiBuYW1lc1xuICAgICAgICAvLyBjb3VsZCBwb3NzaWJseSBpbXBvcnQgc2V0dGluZ3Mgc3RyaW5ncyBhdmFpbGFibGUgaW4gdGhlIGZ1dHVyZVxuICAgICAgICB0aGlzLmNvZGVNaXJyb3Iuc2V0T3B0aW9uKG9wdGlvbk5hbWUgYXMgYW55LCBuZXdWYWx1ZSk7XG4gICAgfVxuXG4gICAgZm9jdXNDaGFuZ2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmb2N1c2VkO1xuICAgICAgICB0aGlzLmZvY3VzQ2hhbmdlLmVtaXQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgc2Nyb2xsQ2hhbmdlZChjbTogRWRpdG9yKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsLmVtaXQoY20uZ2V0U2Nyb2xsSW5mbygpKTtcbiAgICB9XG5cbiAgICBjdXJzb3JBY3RpdmUoY206IEVkaXRvcikge1xuICAgICAgICB0aGlzLmN1cnNvckFjdGl2aXR5LmVtaXQoY20pO1xuICAgIH1cblxuICAgIGRyb3BGaWxlcyhjbTogRWRpdG9yLCBlOiBEcmFnRXZlbnQpIHtcbiAgICAgICAgdGhpcy5kcm9wLmVtaXQoW2NtLCBlXSk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmNvZGVNaXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXIgPSB0aGlzLmNvZGVNaXJyb3IuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKHZhbHVlICE9PSBjdXIgJiYgRHJTaGFyZWRVdGlscy5ub3JtYWxpemVMaW5lRW5kaW5ncyhjdXIpICE9PSBEclNoYXJlZFV0aWxzLm5vcm1hbGl6ZUxpbmVFbmRpbmdzKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJlc2VydmVTY3JvbGxQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZTY3JvbGxQb3NpdGlvbiA9IHRoaXMuY29kZU1pcnJvci5nZXRTY3JvbGxJbmZvKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2RlTWlycm9yLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuY29kZU1pcnJvci5zY3JvbGxUbyhwcmV2U2Nyb2xsUG9zaXRpb24ubGVmdCwgcHJldlNjcm9sbFBvc2l0aW9uLnRvcCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY29kZU1pcnJvci5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICAgICAgdGhpcy5zZXRPcHRpb25JZkNoYW5nZWQoJ3JlYWRPbmx5JywgdGhpcy5kaXNhYmxlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuXG4gICAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7fTtcbn1cbiJdfQ==
@@ -8,6 +8,16 @@ import * as i1 from "@angular/common";
8
8
  import * as i2 from "@angular/forms";
9
9
  import * as i3 from "../dr-error/dr-error.component";
10
10
  import * as i4 from "./components/dr-codemirror.component";
11
+ const _c0 = ["codeEditor"];
12
+ function DrCodeEditorComponent_span_2_Template(rf, ctx) { if (rf & 1) {
13
+ i0.ɵɵelementStart(0, "span", 4);
14
+ i0.ɵɵtext(1);
15
+ i0.ɵɵelementEnd();
16
+ } if (rf & 2) {
17
+ const ctx_r1 = i0.ɵɵnextContext();
18
+ i0.ɵɵadvance(1);
19
+ i0.ɵɵtextInterpolate(ctx_r1.placeholder);
20
+ } }
11
21
  const noop = () => { };
12
22
  export class DrCodeEditorComponent {
13
23
  constructor(cdr, cfr, injector) {
@@ -275,24 +285,42 @@ export class DrCodeEditorComponent {
275
285
  });
276
286
  this.cdr.markForCheck();
277
287
  }
278
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrCodeEditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
279
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrCodeEditorComponent, selector: "dr-code-editor", inputs: { markers: "markers", highlightHints: "highlightHints", hints: "hints", control: "control", placeholder: "placeholder" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => DrCodeEditorComponent)), multi: true }], viewQueries: [{ propertyName: "codeEditor", first: true, predicate: ["codeEditor"], descendants: true }], ngImport: i0, template: "<dr-codemirror\n #codeEditor\n [(ngModel)]=\"value\"\n [options]=\"codeMirrorOptions\"\n [class.mark-hints]=\"highlightHints\"\n [class.mirror-error]=\"control.status === 'INVALID' && !control.pristine\"\n (focusChange)=\"focusChanged($event)\"\n (codeMirrorLoaded)=\"afterCodeMirrorLoaded()\"></dr-codemirror>\n<span *ngIf=\"!isFocused && !innerValue\" class=\"codemirror-placeholder\">{{ placeholder }}</span>\n<dr-error [control]=\"control\" label=\"Formula error\"></dr-error>\n", styles: ["dr-codemirror ::ng-deep .CodeMirror{height:10rem;border:1px solid #9ea1aa;border-radius:6px}dr-codemirror ::ng-deep .CodeMirror-focused{border-color:#4646ce!important}dr-codemirror ::ng-deep .CodeMirror-line{font-family:Poppins,sans-serif;font-size:12px;line-height:20px;font-weight:500;font-weight:400}dr-codemirror ::ng-deep .CodeMirror .CodeMirror-scroll{padding:0}dr-codemirror ::ng-deep .CodeMirror .marker{color:#fff;background:#20a452}dr-codemirror ::ng-deep .CodeMirror .marker:first-child,dr-codemirror ::ng-deep .CodeMirror .cm-variable:not(.marker)+.marker{padding-left:2px;margin-left:2px}dr-codemirror ::ng-deep .CodeMirror .marker+.cm-variable:not(.marker){margin-left:2px}dr-codemirror ::ng-deep .CodeMirror-matchingbracket{color:#0f0!important}:host::ng-deep{position:relative}:host::ng-deep .mirror-error .CodeMirror{border:1px solid #bf1d30}:host::ng-deep .mark-hints .hint-variable{color:#4646ce}dr-error{position:absolute;bottom:5px;left:7px;background:#fff;margin:0}dr-error:not(:last-child){display:none}.codemirror-placeholder{color:#6d6e6f;position:absolute;top:10px;left:10px;font-size:12px;pointer-events:none;white-space:pre}::ng-deep .CodeMirror-hints{background:#fff;border:1px solid #e5e6ea;box-shadow:0 4px 8px 1px #00000040;border-radius:6px;z-index:100;padding:8px 0}::ng-deep .CodeMirror-hints .CodeMirror-hint{font-family:Poppins,sans-serif;font-size:12px;line-height:20px;font-weight:500;font-weight:400;padding:0 12px;display:flex;align-items:center;height:32px;background:#fff;color:#333}::ng-deep .CodeMirror-hints .CodeMirror-hint,::ng-deep .CodeMirror-hints .CodeMirror-hint-active{background:#fff;color:#333}::ng-deep .CodeMirror-hints:not(:hover) .CodeMirror-hint-active,::ng-deep .CodeMirror-hints .CodeMirror-hint:hover{background:#eaeaff;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DrErrorComponent, selector: "dr-error", inputs: ["control", "controlName", "label", "errorTooltipPosition", "displayAsLabel", "noIcon"] }, { kind: "component", type: i4.DrCodemirrorComponent, selector: "dr-codemirror", inputs: ["className", "name", "autoFocus", "options", "preserveScrollPosition"], outputs: ["cursorActivity", "focusChange", "scroll", "drop", "codeMirrorLoaded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
288
+ /** @nocollapse */ static { this.ɵfac = function DrCodeEditorComponent_Factory(t) { return new (t || DrCodeEditorComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i0.Injector)); }; }
289
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrCodeEditorComponent, selectors: [["dr-code-editor"]], viewQuery: function DrCodeEditorComponent_Query(rf, ctx) { if (rf & 1) {
290
+ i0.ɵɵviewQuery(_c0, 5);
291
+ } if (rf & 2) {
292
+ let _t;
293
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.codeEditor = _t.first);
294
+ } }, inputs: { markers: "markers", highlightHints: "highlightHints", hints: "hints", control: "control", placeholder: "placeholder" }, features: [i0.ɵɵProvidersFeature([{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => DrCodeEditorComponent)), multi: true }])], decls: 4, vars: 8, consts: [[3, "ngModel", "options", "ngModelChange", "focusChange", "codeMirrorLoaded"], ["codeEditor", ""], ["class", "codemirror-placeholder", 4, "ngIf"], ["label", "Formula error", 3, "control"], [1, "codemirror-placeholder"]], template: function DrCodeEditorComponent_Template(rf, ctx) { if (rf & 1) {
295
+ i0.ɵɵelementStart(0, "dr-codemirror", 0, 1);
296
+ i0.ɵɵlistener("ngModelChange", function DrCodeEditorComponent_Template_dr_codemirror_ngModelChange_0_listener($event) { return ctx.value = $event; })("focusChange", function DrCodeEditorComponent_Template_dr_codemirror_focusChange_0_listener($event) { return ctx.focusChanged($event); })("codeMirrorLoaded", function DrCodeEditorComponent_Template_dr_codemirror_codeMirrorLoaded_0_listener() { return ctx.afterCodeMirrorLoaded(); });
297
+ i0.ɵɵelementEnd();
298
+ i0.ɵɵtemplate(2, DrCodeEditorComponent_span_2_Template, 2, 1, "span", 2);
299
+ i0.ɵɵelement(3, "dr-error", 3);
300
+ } if (rf & 2) {
301
+ i0.ɵɵclassProp("mark-hints", ctx.highlightHints)("mirror-error", ctx.control.status === "INVALID" && !ctx.control.pristine);
302
+ i0.ɵɵproperty("ngModel", ctx.value)("options", ctx.codeMirrorOptions);
303
+ i0.ɵɵadvance(2);
304
+ i0.ɵɵproperty("ngIf", !ctx.isFocused && !ctx.innerValue);
305
+ i0.ɵɵadvance(1);
306
+ i0.ɵɵproperty("control", ctx.control);
307
+ } }, dependencies: [i1.NgIf, i2.NgControlStatus, i2.NgModel, i3.DrErrorComponent, i4.DrCodemirrorComponent], styles: ["dr-codemirror[_ngcontent-%COMP%] .CodeMirror{height:10rem;border:1px solid #9ea1aa;border-radius:6px}dr-codemirror[_ngcontent-%COMP%] .CodeMirror-focused{border-color:#4646ce!important}dr-codemirror[_ngcontent-%COMP%] .CodeMirror-line{font-family:Poppins,sans-serif;font-size:12px;line-height:20px;font-weight:500;font-weight:400}dr-codemirror[_ngcontent-%COMP%] .CodeMirror .CodeMirror-scroll{padding:0}dr-codemirror[_ngcontent-%COMP%] .CodeMirror .marker{color:#fff;background:#20a452}dr-codemirror[_ngcontent-%COMP%] .CodeMirror .marker:first-child, dr-codemirror[_ngcontent-%COMP%] .CodeMirror .cm-variable:not(.marker)+.marker{padding-left:2px;margin-left:2px}dr-codemirror[_ngcontent-%COMP%] .CodeMirror .marker+.cm-variable:not(.marker){margin-left:2px}dr-codemirror[_ngcontent-%COMP%] .CodeMirror-matchingbracket{color:#0f0!important}[_nghost-%COMP%] {position:relative}[_nghost-%COMP%] .mirror-error .CodeMirror{border:1px solid #bf1d30}[_nghost-%COMP%] .mark-hints .hint-variable{color:#4646ce}dr-error[_ngcontent-%COMP%]{position:absolute;bottom:5px;left:7px;background:#fff;margin:0}dr-error[_ngcontent-%COMP%]:not(:last-child){display:none}.codemirror-placeholder[_ngcontent-%COMP%]{color:#6d6e6f;position:absolute;top:10px;left:10px;font-size:12px;pointer-events:none;white-space:pre} .CodeMirror-hints{background:#fff;border:1px solid #e5e6ea;box-shadow:0 4px 8px 1px #00000040;border-radius:6px;z-index:100;padding:8px 0} .CodeMirror-hints .CodeMirror-hint{font-family:Poppins,sans-serif;font-size:12px;line-height:20px;font-weight:500;font-weight:400;padding:0 12px;display:flex;align-items:center;height:32px;background:#fff;color:#333} .CodeMirror-hints .CodeMirror-hint, .CodeMirror-hints .CodeMirror-hint-active{background:#fff;color:#333} .CodeMirror-hints:not(:hover) .CodeMirror-hint-active, .CodeMirror-hints .CodeMirror-hint:hover{background:#eaeaff;cursor:pointer}"], changeDetection: 0 }); }
280
308
  }
281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrCodeEditorComponent, decorators: [{
282
- type: Component,
283
- args: [{ selector: 'dr-code-editor', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => DrCodeEditorComponent)), multi: true }], template: "<dr-codemirror\n #codeEditor\n [(ngModel)]=\"value\"\n [options]=\"codeMirrorOptions\"\n [class.mark-hints]=\"highlightHints\"\n [class.mirror-error]=\"control.status === 'INVALID' && !control.pristine\"\n (focusChange)=\"focusChanged($event)\"\n (codeMirrorLoaded)=\"afterCodeMirrorLoaded()\"></dr-codemirror>\n<span *ngIf=\"!isFocused && !innerValue\" class=\"codemirror-placeholder\">{{ placeholder }}</span>\n<dr-error [control]=\"control\" label=\"Formula error\"></dr-error>\n", styles: ["dr-codemirror ::ng-deep .CodeMirror{height:10rem;border:1px solid #9ea1aa;border-radius:6px}dr-codemirror ::ng-deep .CodeMirror-focused{border-color:#4646ce!important}dr-codemirror ::ng-deep .CodeMirror-line{font-family:Poppins,sans-serif;font-size:12px;line-height:20px;font-weight:500;font-weight:400}dr-codemirror ::ng-deep .CodeMirror .CodeMirror-scroll{padding:0}dr-codemirror ::ng-deep .CodeMirror .marker{color:#fff;background:#20a452}dr-codemirror ::ng-deep .CodeMirror .marker:first-child,dr-codemirror ::ng-deep .CodeMirror .cm-variable:not(.marker)+.marker{padding-left:2px;margin-left:2px}dr-codemirror ::ng-deep .CodeMirror .marker+.cm-variable:not(.marker){margin-left:2px}dr-codemirror ::ng-deep .CodeMirror-matchingbracket{color:#0f0!important}:host::ng-deep{position:relative}:host::ng-deep .mirror-error .CodeMirror{border:1px solid #bf1d30}:host::ng-deep .mark-hints .hint-variable{color:#4646ce}dr-error{position:absolute;bottom:5px;left:7px;background:#fff;margin:0}dr-error:not(:last-child){display:none}.codemirror-placeholder{color:#6d6e6f;position:absolute;top:10px;left:10px;font-size:12px;pointer-events:none;white-space:pre}::ng-deep .CodeMirror-hints{background:#fff;border:1px solid #e5e6ea;box-shadow:0 4px 8px 1px #00000040;border-radius:6px;z-index:100;padding:8px 0}::ng-deep .CodeMirror-hints .CodeMirror-hint{font-family:Poppins,sans-serif;font-size:12px;line-height:20px;font-weight:500;font-weight:400;padding:0 12px;display:flex;align-items:center;height:32px;background:#fff;color:#333}::ng-deep .CodeMirror-hints .CodeMirror-hint,::ng-deep .CodeMirror-hints .CodeMirror-hint-active{background:#fff;color:#333}::ng-deep .CodeMirror-hints:not(:hover) .CodeMirror-hint-active,::ng-deep .CodeMirror-hints .CodeMirror-hint:hover{background:#eaeaff;cursor:pointer}\n"] }]
284
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }]; }, propDecorators: { markers: [{
285
- type: Input
286
- }], highlightHints: [{
287
- type: Input
288
- }], hints: [{
289
- type: Input
290
- }], control: [{
291
- type: Input
292
- }], placeholder: [{
293
- type: Input
294
- }], codeEditor: [{
295
- type: ViewChild,
296
- args: ['codeEditor']
297
- }] } });
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY29kZS1lZGl0b3IvZHItY29kZS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY29kZS1lZGl0b3IvZHItY29kZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRWpHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7QUFDN0UsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBU3RCLE1BQU0sT0FBTyxxQkFBcUI7SUFDOUIsWUFDWSxHQUFzQixFQUN0QixHQUE2QixFQUM3QixRQUFrQjtRQUZsQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBR3ZCLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFDcEIsc0JBQWlCLEdBQWUsSUFBSSxDQUFDO1FBQ3JDLHFCQUFnQixHQUFxQixJQUFJLENBQUM7UUFHMUMsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLHNCQUFpQixHQUFhO1lBQ2xDLFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1NBQ1osQ0FBQztRQUNNLG1CQUFjLEdBQUc7WUFDckIsR0FBRyxFQUFFLEdBQUc7WUFDUixHQUFHLEVBQUUsR0FBRztZQUNSLEdBQUcsRUFBRSxHQUFHO1lBQ1IsR0FBRyxFQUFFLEdBQUc7WUFDUixHQUFHLEVBQUUsR0FBRztZQUNSLEdBQUcsRUFBRSxHQUFHO1NBQ1gsQ0FBQztRQUVNLFdBQU0sR0FBc0IsRUFBRSxDQUFDO1FBRS9CLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRXBCLHNCQUFpQixHQUFRO1lBQzVCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLElBQUksRUFBRSxZQUFZO1lBQ2xCLFNBQVMsRUFBRSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUU7WUFDM0MsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixXQUFXLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtnQkFDL0IsY0FBYyxFQUFFLEtBQUs7YUFDeEI7U0FDSixDQUFDO1FBR2MsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFVOUIsZ0JBQVcsR0FBVyx5RkFBeUYsQ0FBQztJQXhEdEgsQ0FBQztJQWdESixJQUFhLEtBQUssQ0FBQyxNQUF5QjtRQUN4QyxJQUFJLE1BQU0sRUFBRSxNQUFNLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM5QjtJQUNMLENBQUM7SUFNRCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsS0FBSyxDQUFDLENBQVM7UUFDdEIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNyQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzthQUMvQjtTQUNKO0lBQ0wsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFhO1FBQzNCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxFQUFPO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEVBQU87UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQUk7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBQ00scUJBQXFCO1FBQ3hCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFFaEMsSUFDSSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztnQkFDOUQsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQztnQkFDN0MsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztnQkFDNUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQ3RCO2dCQUNFLGFBQWE7Z0JBQ2IsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoRTtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFFaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ2hCLGFBQWE7b0JBQ2IsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDaEU7WUFDTCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztRQUVILFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2FBQy9CO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsV0FBbUI7UUFDM0MsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUU3QixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNoRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtnQkFDZixJQUFJLEVBQUUsQ0FBQztnQkFDUCxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNQLFNBQVM7YUFDWjtZQUNELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDM0IsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUVwRCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNqQyxJQUFJLFVBQVUsR0FBRyxJQUFJLEVBQUUsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzNDLFVBQVUsR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO29CQUU3RSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7b0JBQ25GLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztpQkFDMUY7Z0JBQ0QsSUFBSSxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDNUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNoRixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7aUJBQ2Y7YUFDSjtZQUVELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNmLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUNiO29CQUNJLElBQUk7b0JBQ0osRUFBRTtpQkFDTCxFQUNEO29CQUNJLElBQUk7b0JBQ0osRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDO2lCQUNiLEVBQ0Q7b0JBQ0ksR0FBRyxFQUFFLFVBQVUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRTtpQkFDdkMsQ0FDSixDQUNKLENBQUM7YUFDTDtZQUNELEVBQUUsRUFBRSxDQUFDO1NBQ1I7SUFDTCxDQUFDO0lBRU8sZ0NBQWdDO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ25DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1FBRTdDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUN2QixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztnQkFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQy9ELEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFO29CQUN6QixZQUFZLENBQUMsSUFBSSxDQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUNiO3dCQUNJLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO3dCQUNuQixFQUFFLEVBQUUsS0FBSyxDQUFDLEtBQUs7cUJBQ2xCLEVBQ0Q7d0JBQ0ksSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7d0JBQ25CLEVBQUUsRUFBRSxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTTtxQkFDdkMsRUFDRDt3QkFDSSxTQUFTLEVBQUUsUUFBUTt3QkFDbkIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO3FCQUN0QixDQUNKLENBQ0osQ0FBQztpQkFDTDtZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sU0FBUyxDQUFDLElBQVksRUFBRSxVQUFvQjtRQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLElBQUksVUFBVSxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQztJQUVPLGFBQWEsQ0FBQyxhQUFnQyxFQUFFO1FBQ3BELE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDO1FBQ3RDLFVBQVUsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDM0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWhELElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNwQixPQUFPLEdBQUcsR0FBRyxXQUFXLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFBRSxFQUFFLEdBQUcsQ0FBQztZQUNuRixPQUFPLEtBQUssSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUFFLEVBQUUsS0FBSyxDQUFDO1lBRXhFLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBSyxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUUzRSxNQUFNLGtCQUFrQixHQUNwQixDQUFDLENBQUMsV0FBVztnQkFDVCxDQUFDLENBQUMsVUFBVTtnQkFDWixDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FDOUYsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFFbkIsTUFBTSxTQUFTLEdBQVcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBcUIsRUFBRSxFQUFFO2dCQUN2RSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUMvQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUV0QixJQUFJLFdBQVcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO29CQUNoQyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztpQkFDckI7Z0JBQ0QsSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxFQUFFO29CQUMxQixJQUFJLElBQUksR0FBRyxDQUFDO2lCQUNmO2dCQUVELE9BQU87b0JBQ0gsSUFBSTtvQkFDSixXQUFXO29CQUNYLE1BQU0sRUFBRSxDQUFDLE9BQXNCLEVBQUUsSUFBVyxFQUFFLE9BQWEsRUFBRSxFQUFFO3dCQUMzRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQzt3QkFDeEYsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFVBQVUsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQy9GLE1BQU0sUUFBUSxHQUNWLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxNQUFNLGVBQWUsTUFBTSxDQUFDLENBQUM7d0JBRWhHLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO3dCQUMxRixNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUM1RCxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUM7d0JBQ3pDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQzFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQzt3QkFDL0MsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUV6RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDMUMsQ0FBQztpQkFDSixDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPO2dCQUNILElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2dCQUN4QyxFQUFFLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUN2QyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFFSCxhQUFhO1FBQ2IsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFcEIsYUFBYTtZQUNiLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVPLFlBQVk7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDaEMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1FBRXJELGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3hELEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFO2dCQUN6QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RFLElBQUksSUFBSSxFQUFFO29CQUNOLGdCQUFnQixDQUFDLElBQUksQ0FDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQ2I7d0JBQ0ksSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7d0JBQ25CLEVBQUUsRUFBRSxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUM7cUJBQ3RCLEVBQ0Q7d0JBQ0ksSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7d0JBQ25CLEVBQUUsRUFBRSxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07cUJBQzFDLEVBQ0Q7d0JBQ0ksU0FBUyxFQUFFLGVBQWU7d0JBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztxQkFDcEIsQ0FDSixDQUNKLENBQUM7aUJBQ0w7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO2tJQTVVUSxxQkFBcUI7c0hBQXJCLHFCQUFxQiwyS0FGbkIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixFQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLG9JQ3ZCbEgseWZBVUE7OzRGRGVhLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDSSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLHNCQUFzQixFQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO3NLQW9EOUYsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUVPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQzJCLFVBQVU7c0JBQTFDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgQ29kZU1pcnJvciBmcm9tICdjb2RlbWlycm9yJztcbmltcG9ydCB7IEhpbnQsIEhpbnRzIH0gZnJvbSAnY29kZW1pcnJvcic7XG5pbXBvcnQgeyBDb2RlRWRpdG9ySGludFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29kZS1lZGl0b3ItaGludC13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJQ29kZUVkaXRvckhpbnQsIElDb2RlRWRpdG9yTWFya2VyIH0gZnJvbSAnLi9tb2RlbHMvY29kZS1lZGl0b3ItaGludCc7XG5pbXBvcnQgeyBEckNvZGVtaXJyb3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHItY29kZW1pcnJvci5jb21wb25lbnQnO1xuY29uc3Qgbm9vcCA9ICgpID0+IHt9O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWNvZGUtZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItY29kZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLWNvZGUtZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRHJDb2RlRWRpdG9yQ29tcG9uZW50KSwgbXVsdGk6IHRydWUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIERyQ29kZUVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgaW5uZXJWYWx1ZTogYW55ID0gJyc7XG4gICAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XG4gICAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcbiAgICBwcml2YXRlIGV4aXN0TWFya2VyczogYW55W107XG4gICAgcHJpdmF0ZSBoaWdobGlnaHRlZEhpbnRzOiBhbnlbXTtcbiAgICBwcml2YXRlIHBhcmVudGhlc2VzTWFya2VycyA9IFtdO1xuICAgIHByaXZhdGUgcGFyZW50aGVzaXNDb2xvcnM6IHN0cmluZ1tdID0gW1xuICAgICAgICAnIzJGM0U0OCcsXG4gICAgICAgICcjMWY2OGNjJyxcbiAgICAgICAgJyM5NDgwQ0QnLFxuICAgICAgICAnIzREOTk0NCcsXG4gICAgICAgICcjQjAzRTg0JyxcbiAgICAgICAgJyNCNjQ5MDAnLFxuICAgICAgICAnIzI2NzM5MicsXG4gICAgICAgICcjMzI2QUM3JyxcbiAgICBdO1xuICAgIHByaXZhdGUgcGFyZW50aGVzZXNNYXAgPSB7XG4gICAgICAgICd9JzogJ3snLFxuICAgICAgICAnXSc6ICdbJyxcbiAgICAgICAgJyknOiAnKCcsXG4gICAgICAgICd7JzogJ30nLFxuICAgICAgICAnWyc6ICddJyxcbiAgICAgICAgJygnOiAnKScsXG4gICAgfTtcbiAgICBwcml2YXRlIGRvYzogYW55O1xuICAgIHByaXZhdGUgX2hpbnRzOiBJQ29kZUVkaXRvckhpbnRbXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBoaW50UmVmc1N0YWNrID0gW107XG5cbiAgICBwdWJsaWMgY29kZU1pcnJvck9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgbGluZVdyYXBwaW5nOiB0cnVlLFxuICAgICAgICBtYXRjaEJyYWNrZXRzOiB0cnVlLFxuICAgICAgICBhdXRvUmVmcmVzaDogdHJ1ZSxcbiAgICAgICAgbGluZU51bWJlcnM6IGZhbHNlLFxuICAgICAgICBtb2RlOiAnamF2YXNjcmlwdCcsXG4gICAgICAgIGV4dHJhS2V5czogeyAnQ3RybC1TcGFjZSc6ICdhdXRvY29tcGxldGUnIH0sXG4gICAgICAgIGF1dG9DbG9zZUJyYWNrZXRzOiB0cnVlLFxuICAgICAgICBoaW50T3B0aW9uczoge1xuICAgICAgICAgICAgY29udGFpbmVyOiB3aW5kb3cuZG9jdW1lbnQuYm9keSxcbiAgICAgICAgICAgIGNvbXBsZXRlU2luZ2xlOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICB9O1xuICAgIHB1YmxpYyBpc0ZvY3VzZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIG1hcmtlcnM6IElDb2RlRWRpdG9yTWFya2VyW107XG4gICAgQElucHV0KCkgcHVibGljIGhpZ2hsaWdodEhpbnRzID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBzZXQgaGludHModmFsdWVzOiBJQ29kZUVkaXRvckhpbnRbXSkge1xuICAgICAgICBpZiAodmFsdWVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX2hpbnRzID0gdmFsdWVzO1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckhpbnRzKHZhbHVlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBjb250cm9sOiBGb3JtQ29udHJvbCB8IGFueTtcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1N0YXJ0IHR5cGluZyB5b3VyIGZvcm11bGEgaGVyZS4gV2Ugc3VwcG9ydCAoKywtLCosLykuXFxuRm9yIEV4YW1wbGU6IFtGZWItMjJdIC0gW0phbi0yMl0nO1xuICAgIEBWaWV3Q2hpbGQoJ2NvZGVFZGl0b3InKSBwcml2YXRlIGNvZGVFZGl0b3I6IERyQ29kZW1pcnJvckNvbXBvbmVudDtcblxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHZhbHVlKHY6IHN0cmluZykge1xuICAgICAgICBpZiAodiAhPT0gdGhpcy5pbm5lclZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB2O1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xuICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRDdXN0b21GdW5jdGlvbnNJbkVkaXRvcigpO1xuICAgICAgICAgICAgdGhpcy5jb2xvcml6ZVBhcmVudGhlc2VzKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5oaWdobGlnaHRIaW50cykge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSGlnaGxpZ2h0SGludHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICBmb2N1c0NoYW5nZWQoYm9vbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IGJvb2w7XG4gICAgfVxuICAgIHB1YmxpYyBhZnRlckNvZGVNaXJyb3JMb2FkZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZG9jID0gdGhpcy5jb2RlRWRpdG9yLmNvZGVNaXJyb3IuZ2V0RG9jKCk7XG5cbiAgICAgICAgdGhpcy5jb2RlRWRpdG9yLmNvZGVNaXJyb3Iub24oJ2tleXVwJywgKGNtLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9oaW50cy5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICghZXZlbnQuY3RybEtleSAmJiBldmVudC5rZXlDb2RlID49IDY1ICYmIGV2ZW50LmtleUNvZGUgPD0gOTApIHx8XG4gICAgICAgICAgICAgICAgKGV2ZW50LmtleUNvZGUgPj0gOTcgJiYgZXZlbnQua2V5Q29kZSA8PSAxMjIpIHx8XG4gICAgICAgICAgICAgICAgKGV2ZW50LmtleUNvZGUgPj0gNDYgJiYgZXZlbnQua2V5Q29kZSA8PSA1NykgfHxcbiAgICAgICAgICAgICAgICBldmVudC5rZXlDb2RlID09PSAzMlxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIENvZGVNaXJyb3IuY29tbWFuZHMuYXV0b2NvbXBsZXRlKHRoaXMuY29kZUVkaXRvci5jb2RlTWlycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29kZUVkaXRvci5jb2RlTWlycm9yLm9uKCdmb2N1cycsIChjbSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5faGludHMubGVuZ3RoKSByZXR1cm47XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRm9jdXNlZCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgIENvZGVNaXJyb3IuY29tbWFuZHMuYXV0b2NvbXBsZXRlKHRoaXMuY29kZUVkaXRvci5jb2RlTWlycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAyMDApO1xuICAgICAgICB9KTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZ2hsaWdodEhpbnRzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVIaWdobGlnaHRIaW50cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQ2xvc2VkUGFyZW50aGVzaXMocGFyZW50aGVzaXM6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gWyd9JywgJyknLCAnXSddLnNvbWUoKHZhbHVlOiBzdHJpbmcpID0+IHZhbHVlID09PSBwYXJlbnRoZXNpcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb2xvcml6ZVBhcmVudGhlc2VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmRvYy5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBzdGFjayA9IFtdO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgbGV0IGxpbmUgPSAwO1xuICAgICAgICBsZXQgY2ggPSAwO1xuICAgICAgICB0aGlzLnBhcmVudGhlc2VzTWFya2Vycy5mb3JFYWNoKChtYXJrZXIpID0+IG1hcmtlci5jbGVhcigpKTtcbiAgICAgICAgdGhpcy5wYXJlbnRoZXNlc01hcmtlcnMgPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgc3RyaW5nLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgY2hhciA9IHN0cmluZy5jaGFyQXQoaW5kZXgpO1xuICAgICAgICAgICAgaWYgKGNoYXIgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICAgICAgbGluZSsrO1xuICAgICAgICAgICAgICAgIGNoID0gMDtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudGhlc2VzTWFwW2NoYXJdKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGVlayA9IHN0YWNrID8gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV0gOiBudWxsO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzQ2xvc2VkUGFyZW50aGVzaXMoY2hhcikpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9ySW5kZXggPSBwZWVrPy5jb2xvckluZGV4ICsgMSB8fCAwO1xuICAgICAgICAgICAgICAgICAgICBjb2xvckluZGV4ID0gY29sb3JJbmRleCA+IHRoaXMucGFyZW50aGVzaXNDb2xvcnMubGVuZ3RoIC0gMSA/IDAgOiBjb2xvckluZGV4O1xuXG4gICAgICAgICAgICAgICAgICAgIHN0YWNrLnB1c2goeyB2YWx1ZTogY2hhciwgY29sb3I6IHRoaXMucGFyZW50aGVzaXNDb2xvcnNbY29sb3JJbmRleF0sIGNvbG9ySW5kZXggfSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtpbmRleF0gPSB7IHZhbHVlOiBjaGFyLCBjb2xvcjogdGhpcy5wYXJlbnRoZXNpc0NvbG9yc1tjb2xvckluZGV4XSwgY29sb3JJbmRleCB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc3RhY2s/Lmxlbmd0aCAmJiBwZWVrPy52YWx1ZSA9PT0gdGhpcy5wYXJlbnRoZXNlc01hcFtjaGFyXSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRbaW5kZXhdID0geyB2YWx1ZTogY2hhciwgY29sb3I6IHBlZWsuY29sb3IsIGNvbG9ySW5kZXg6IHBlZWsuY29sb3JJbmRleCB9O1xuICAgICAgICAgICAgICAgICAgICBzdGFjay5wb3AoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZXN1bHRbaW5kZXhdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRoZXNlc01hcmtlcnMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb2MubWFya1RleHQoXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaDogY2ggKyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M6IGBjb2xvcjogJHtyZXN1bHRbaW5kZXhdLmNvbG9yfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjaCsrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWdobGlnaHRDdXN0b21GdW5jdGlvbnNJbkVkaXRvcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbWFya2VycyA9IHRoaXMubWFya2VycyB8fCBbXTtcbiAgICAgICAgY29uc3QgZXhpc3RNYXJrZXJzID0gdGhpcy5leGlzdE1hcmtlcnMgfHwgW107XG5cbiAgICAgICAgZXhpc3RNYXJrZXJzLmZvckVhY2goKG0pID0+IG0uY2xlYXIoKSk7XG4gICAgICAgIHRoaXMuZG9jLmVhY2hMaW5lKChsaW5lKSA9PiB7XG4gICAgICAgICAgICBtYXJrZXJzLmZvckVhY2goKG1hcmtlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlYXJjaFN0ciA9IG1hcmtlci5uYW1lICsgJ1xcXFwoJztcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzID0gbGluZS50ZXh0Lm1hdGNoQWxsKG5ldyBSZWdFeHAoc2VhcmNoU3RyLCAnZycpKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIG1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZXhpc3RNYXJrZXJzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRvYy5tYXJrVGV4dChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmU6IGxpbmUubGluZU5vKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoOiBtYXRjaC5pbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogbGluZS5saW5lTm8oKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2g6IG1hdGNoLmluZGV4ICsgbWFya2VyLm5hbWUubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdtYXJrZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogbWFya2VyLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGFzdGVUZXh0KHRleHQ6IHN0cmluZywgZ29DaGFyTGVmdD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kb2MucmVwbGFjZVNlbGVjdGlvbih0ZXh0KTtcbiAgICAgICAgdGhpcy5kb2MuY20uZm9jdXMoKTtcbiAgICAgICAgaWYgKGdvQ2hhckxlZnQpIHtcbiAgICAgICAgICAgIHRoaXMuZG9jLmNtLmV4ZWNDb21tYW5kKCdnb0NoYXJMZWZ0Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVySGludHMoZGljdGlvbmFyeTogSUNvZGVFZGl0b3JIaW50W10gPSBbXSkge1xuICAgICAgICBjb25zdCBoaW50UmVnZXhwID0gL1tcXHckXXxbICYnXCIjJSRAXS87XG4gICAgICAgIENvZGVNaXJyb3IucmVnaXN0ZXJIZWxwZXIoJ2hpbnQnLCAnZGljdGlvbmFyeUhpbnQnLCAoZWRpdG9yKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJzb3IgPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50TGluZSA9IGVkaXRvci5nZXRMaW5lKGN1cnNvci5saW5lKTtcblxuICAgICAgICAgICAgbGV0IHN0YXJ0ID0gY3Vyc29yLmNoO1xuICAgICAgICAgICAgbGV0IGVuZCA9IGN1cnNvci5jaDtcbiAgICAgICAgICAgIHdoaWxlIChlbmQgPCBjdXJyZW50TGluZS5sZW5ndGggJiYgaGludFJlZ2V4cC50ZXN0KGN1cnJlbnRMaW5lLmNoYXJBdChlbmQpKSkgKytlbmQ7XG4gICAgICAgICAgICB3aGlsZSAoc3RhcnQgJiYgaGludFJlZ2V4cC50ZXN0KGN1cnJlbnRMaW5lLmNoYXJBdChzdGFydCAtIDEpKSkgLS1zdGFydDtcblxuICAgICAgICAgICAgY29uc3QgY3VycmVudFdvcmQgPSAoc3RhcnQgIT09IGVuZCAmJiBjdXJyZW50TGluZS5zbGljZShzdGFydCwgZW5kKSkgfHwgJyc7XG5cbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkRGljdGlvbmFyeSA9XG4gICAgICAgICAgICAgICAgKCFjdXJyZW50V29yZFxuICAgICAgICAgICAgICAgICAgICA/IGRpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgOiBkaWN0aW9uYXJ5LmZpbHRlcigoaXRlbSkgPT4gaXRlbS52YWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGN1cnJlbnRXb3JkLnRvTG93ZXJDYXNlKCkpKVxuICAgICAgICAgICAgICAgICkuc29ydCgpIHx8IFtdO1xuXG4gICAgICAgICAgICBjb25zdCBoaW50c0xpc3Q6IEhpbnRbXSA9IGZpbHRlcmVkRGljdGlvbmFyeS5tYXAoKGl0ZW06IElDb2RlRWRpdG9ySGludCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlUZXh0ID0gaXRlbS52YWx1ZTtcbiAgICAgICAgICAgICAgICBsZXQgdGV4dCA9IGl0ZW0udmFsdWU7XG5cbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudExpbmVbc3RhcnQgLSAxXSAhPT0gJ1snKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgPSAnWycgKyB0ZXh0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudExpbmVbZW5kXSAhPT0gJ10nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gJ10nO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlUZXh0LFxuICAgICAgICAgICAgICAgICAgICByZW5kZXI6IChlbGVtZW50OiBIVE1MTElFbGVtZW50LCBkYXRhOiBIaW50cywgY3VycmVudDogSGludCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IGN1cnJlbnQuZGlzcGxheVRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKGN1cnJlbnRXb3JkLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nVG9SZXBsYWNlID0gY3VycmVudC5kaXNwbGF5VGV4dC5zbGljZShzdGFydEluZGV4LCBzdGFydEluZGV4ICsgY3VycmVudFdvcmQubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpbnRIVE1MID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtpdGVtLmljb259IGAgKyBjdXJyZW50LmRpc3BsYXlUZXh0LnJlcGxhY2Uoc3RyaW5nVG9SZXBsYWNlLCBgPGI+JHtzdHJpbmdUb1JlcGxhY2V9PC9iPmApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoQ29kZUVkaXRvckhpbnRXcmFwcGVyQ29tcG9uZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbnRlbnQgPSBoaW50SFRNTDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS50b29sdGlwID0gaXRlbS5oaW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpbnRSZWZzU3RhY2sucHVzaChjb21wb25lbnRSZWYpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBsaXN0OiBoaW50c0xpc3QsXG4gICAgICAgICAgICAgICAgZnJvbTogQ29kZU1pcnJvci5Qb3MoY3Vyc29yLmxpbmUsIHN0YXJ0KSxcbiAgICAgICAgICAgICAgICB0bzogQ29kZU1pcnJvci5Qb3MoY3Vyc29yLmxpbmUsIGVuZCksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIENvZGVNaXJyb3IuY29tbWFuZHMuYXV0b2NvbXBsZXRlID0gKGNtKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3lIaW50cygpO1xuXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBDb2RlTWlycm9yLnNob3dIaW50KGNtLCBDb2RlTWlycm9yLmhpbnQuZGljdGlvbmFyeUhpbnQpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveUhpbnRzKCkge1xuICAgICAgICB0aGlzLmhpbnRSZWZzU3RhY2suZm9yRWFjaCgocmVmKSA9PiByZWYuZGVzdHJveSgpKTtcbiAgICAgICAgdGhpcy5oaW50UmVmc1N0YWNrID0gW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVIaWdobGlnaHRIaW50cygpIHtcbiAgICAgICAgY29uc3QgaGludHMgPSB0aGlzLl9oaW50cyB8fCBbXTtcbiAgICAgICAgY29uc3QgaGlnaGxpZ2h0ZWRIaW50cyA9IHRoaXMuaGlnaGxpZ2h0ZWRIaW50cyB8fCBbXTtcblxuICAgICAgICBoaWdobGlnaHRlZEhpbnRzLmZvckVhY2goKG0pID0+IG0uY2xlYXIoKSk7XG5cbiAgICAgICAgdGhpcy5kb2MuZWFjaExpbmUoKGxpbmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBsaW5lLnRleHQubWF0Y2hBbGwoLyg/OlxcWykuKz8oPz1cXF0pL2dtKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgbWF0Y2hlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhpbnQgPSBoaW50cy5maW5kKChoKSA9PiBoLnZhbHVlID09PSBtYXRjaFswXS5yZXBsYWNlKCdbJywgJycpKTtcbiAgICAgICAgICAgICAgICBpZiAoaGludCkge1xuICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHRlZEhpbnRzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRvYy5tYXJrVGV4dChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmU6IGxpbmUubGluZU5vKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoOiBtYXRjaC5pbmRleCArIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmU6IGxpbmUubGluZU5vKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoOiBtYXRjaC5pbmRleCArIDEgKyBoaW50LnZhbHVlLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnaGludC12YXJpYWJsZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBoaW50LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxufVxuIiwiPGRyLWNvZGVtaXJyb3JcbiAgICAjY29kZUVkaXRvclxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIFtvcHRpb25zXT1cImNvZGVNaXJyb3JPcHRpb25zXCJcbiAgICBbY2xhc3MubWFyay1oaW50c109XCJoaWdobGlnaHRIaW50c1wiXG4gICAgW2NsYXNzLm1pcnJvci1lcnJvcl09XCJjb250cm9sLnN0YXR1cyA9PT0gJ0lOVkFMSUQnICYmICFjb250cm9sLnByaXN0aW5lXCJcbiAgICAoZm9jdXNDaGFuZ2UpPVwiZm9jdXNDaGFuZ2VkKCRldmVudClcIlxuICAgIChjb2RlTWlycm9yTG9hZGVkKT1cImFmdGVyQ29kZU1pcnJvckxvYWRlZCgpXCI+PC9kci1jb2RlbWlycm9yPlxuPHNwYW4gKm5nSWY9XCIhaXNGb2N1c2VkICYmICFpbm5lclZhbHVlXCIgY2xhc3M9XCJjb2RlbWlycm9yLXBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfX08L3NwYW4+XG48ZHItZXJyb3IgW2NvbnRyb2xdPVwiY29udHJvbFwiIGxhYmVsPVwiRm9ybXVsYSBlcnJvclwiPjwvZHItZXJyb3I+XG4iXX0=
309
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrCodeEditorComponent, [{
310
+ type: Component,
311
+ args: [{ selector: 'dr-code-editor', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => DrCodeEditorComponent)), multi: true }], template: "<dr-codemirror\n #codeEditor\n [(ngModel)]=\"value\"\n [options]=\"codeMirrorOptions\"\n [class.mark-hints]=\"highlightHints\"\n [class.mirror-error]=\"control.status === 'INVALID' && !control.pristine\"\n (focusChange)=\"focusChanged($event)\"\n (codeMirrorLoaded)=\"afterCodeMirrorLoaded()\"></dr-codemirror>\n<span *ngIf=\"!isFocused && !innerValue\" class=\"codemirror-placeholder\">{{ placeholder }}</span>\n<dr-error [control]=\"control\" label=\"Formula error\"></dr-error>\n", styles: ["dr-codemirror ::ng-deep .CodeMirror{height:10rem;border:1px solid #9ea1aa;border-radius:6px}dr-codemirror ::ng-deep .CodeMirror-focused{border-color:#4646ce!important}dr-codemirror ::ng-deep .CodeMirror-line{font-family:Poppins,sans-serif;font-size:12px;line-height:20px;font-weight:500;font-weight:400}dr-codemirror ::ng-deep .CodeMirror .CodeMirror-scroll{padding:0}dr-codemirror ::ng-deep .CodeMirror .marker{color:#fff;background:#20a452}dr-codemirror ::ng-deep .CodeMirror .marker:first-child,dr-codemirror ::ng-deep .CodeMirror .cm-variable:not(.marker)+.marker{padding-left:2px;margin-left:2px}dr-codemirror ::ng-deep .CodeMirror .marker+.cm-variable:not(.marker){margin-left:2px}dr-codemirror ::ng-deep .CodeMirror-matchingbracket{color:#0f0!important}:host::ng-deep{position:relative}:host::ng-deep .mirror-error .CodeMirror{border:1px solid #bf1d30}:host::ng-deep .mark-hints .hint-variable{color:#4646ce}dr-error{position:absolute;bottom:5px;left:7px;background:#fff;margin:0}dr-error:not(:last-child){display:none}.codemirror-placeholder{color:#6d6e6f;position:absolute;top:10px;left:10px;font-size:12px;pointer-events:none;white-space:pre}::ng-deep .CodeMirror-hints{background:#fff;border:1px solid #e5e6ea;box-shadow:0 4px 8px 1px #00000040;border-radius:6px;z-index:100;padding:8px 0}::ng-deep .CodeMirror-hints .CodeMirror-hint{font-family:Poppins,sans-serif;font-size:12px;line-height:20px;font-weight:500;font-weight:400;padding:0 12px;display:flex;align-items:center;height:32px;background:#fff;color:#333}::ng-deep .CodeMirror-hints .CodeMirror-hint,::ng-deep .CodeMirror-hints .CodeMirror-hint-active{background:#fff;color:#333}::ng-deep .CodeMirror-hints:not(:hover) .CodeMirror-hint-active,::ng-deep .CodeMirror-hints .CodeMirror-hint:hover{background:#eaeaff;cursor:pointer}\n"] }]
312
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }]; }, { markers: [{
313
+ type: Input
314
+ }], highlightHints: [{
315
+ type: Input
316
+ }], hints: [{
317
+ type: Input
318
+ }], control: [{
319
+ type: Input
320
+ }], placeholder: [{
321
+ type: Input
322
+ }], codeEditor: [{
323
+ type: ViewChild,
324
+ args: ['codeEditor']
325
+ }] }); })();
326
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY29kZS1lZGl0b3IvZHItY29kZS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY29kZS1lZGl0b3IvZHItY29kZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRWpHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7OztJQ1A3RSwrQkFBdUU7SUFBQSxZQUFpQjtJQUFBLGlCQUFPOzs7SUFBeEIsZUFBaUI7SUFBakIsd0NBQWlCOztBRFF4RixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7QUFTdEIsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUNZLEdBQXNCLEVBQ3RCLEdBQTZCLEVBQzdCLFFBQWtCO1FBRmxCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQTBCO1FBQzdCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFHdkIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUNwQixzQkFBaUIsR0FBZSxJQUFJLENBQUM7UUFDckMscUJBQWdCLEdBQXFCLElBQUksQ0FBQztRQUcxQyx1QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDeEIsc0JBQWlCLEdBQWE7WUFDbEMsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7U0FDWixDQUFDO1FBQ00sbUJBQWMsR0FBRztZQUNyQixHQUFHLEVBQUUsR0FBRztZQUNSLEdBQUcsRUFBRSxHQUFHO1lBQ1IsR0FBRyxFQUFFLEdBQUc7WUFDUixHQUFHLEVBQUUsR0FBRztZQUNSLEdBQUcsRUFBRSxHQUFHO1lBQ1IsR0FBRyxFQUFFLEdBQUc7U0FDWCxDQUFDO1FBRU0sV0FBTSxHQUFzQixFQUFFLENBQUM7UUFFL0Isa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFFcEIsc0JBQWlCLEdBQVE7WUFDNUIsWUFBWSxFQUFFLElBQUk7WUFDbEIsYUFBYSxFQUFFLElBQUk7WUFDbkIsV0FBVyxFQUFFLElBQUk7WUFDakIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsSUFBSSxFQUFFLFlBQVk7WUFDbEIsU0FBUyxFQUFFLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRTtZQUMzQyxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLFdBQVcsRUFBRTtnQkFDVCxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJO2dCQUMvQixjQUFjLEVBQUUsS0FBSzthQUN4QjtTQUNKLENBQUM7UUFHYyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQVU5QixnQkFBVyxHQUFXLHlGQUF5RixDQUFDO0lBeER0SCxDQUFDO0lBZ0RKLElBQWEsS0FBSyxDQUFDLE1BQXlCO1FBQ3hDLElBQUksTUFBTSxFQUFFLE1BQU0sRUFBRTtZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzlCO0lBQ0wsQ0FBQztJQU1ELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxLQUFLLENBQUMsQ0FBUztRQUN0QixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2FBQy9CO1NBQ0o7SUFDTCxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEVBQU87UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBTztRQUM1QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBSTtRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFDTSxxQkFBcUI7UUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUUvQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07Z0JBQUUsT0FBTztZQUVoQyxJQUNJLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO2dCQUM5RCxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDO2dCQUM3QyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO2dCQUM1QyxLQUFLLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFDdEI7Z0JBQ0UsYUFBYTtnQkFDYixVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2hFO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07Z0JBQUUsT0FBTztZQUVoQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDaEIsYUFBYTtvQkFDYixVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNoRTtZQUNMLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO1FBRUgsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDckIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDL0I7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxXQUFtQjtRQUMzQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRU8sbUJBQW1CO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1FBRTdCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2hELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEMsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO2dCQUNmLElBQUksRUFBRSxDQUFDO2dCQUNQLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ1AsU0FBUzthQUNaO1lBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMzQixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBRXBELElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ2pDLElBQUksVUFBVSxHQUFHLElBQUksRUFBRSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0MsVUFBVSxHQUFHLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7b0JBRTdFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztvQkFDbkYsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO2lCQUMxRjtnQkFDRCxJQUFJLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxFQUFFLEtBQUssS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUM1RCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ2hGLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztpQkFDZjthQUNKO1lBRUQsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQ2I7b0JBQ0ksSUFBSTtvQkFDSixFQUFFO2lCQUNMLEVBQ0Q7b0JBQ0ksSUFBSTtvQkFDSixFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7aUJBQ2IsRUFDRDtvQkFDSSxHQUFHLEVBQUUsVUFBVSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFO2lCQUN2QyxDQUNKLENBQ0osQ0FBQzthQUNMO1lBQ0QsRUFBRSxFQUFFLENBQUM7U0FDUjtJQUNMLENBQUM7SUFFTyxnQ0FBZ0M7UUFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDbkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7UUFFN0MsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3ZCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2dCQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDL0QsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUU7b0JBQ3pCLFlBQVksQ0FBQyxJQUFJLENBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQ2I7d0JBQ0ksSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7d0JBQ25CLEVBQUUsRUFBRSxLQUFLLENBQUMsS0FBSztxQkFDbEIsRUFDRDt3QkFDSSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTt3QkFDbkIsRUFBRSxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNO3FCQUN2QyxFQUNEO3dCQUNJLFNBQVMsRUFBRSxRQUFRO3dCQUNuQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7cUJBQ3RCLENBQ0osQ0FDSixDQUFDO2lCQUNMO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxTQUFTLENBQUMsSUFBWSxFQUFFLFVBQW9CO1FBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEIsSUFBSSxVQUFVLEVBQUU7WUFDWixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDekM7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUFDLGFBQWdDLEVBQUU7UUFDcEQsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUM7UUFDdEMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFaEQsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN0QixJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sR0FBRyxHQUFHLFdBQVcsQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUFFLEVBQUUsR0FBRyxDQUFDO1lBQ25GLE9BQU8sS0FBSyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsRUFBRSxLQUFLLENBQUM7WUFFeEUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFLLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRTNFLE1BQU0sa0JBQWtCLEdBQ3BCLENBQUMsQ0FBQyxXQUFXO2dCQUNULENBQUMsQ0FBQyxVQUFVO2dCQUNaLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUM5RixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUVuQixNQUFNLFNBQVMsR0FBVyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFxQixFQUFFLEVBQUU7Z0JBQ3ZFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQy9CLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBRXRCLElBQUksV0FBVyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7b0JBQ2hDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO2lCQUNyQjtnQkFDRCxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUU7b0JBQzFCLElBQUksSUFBSSxHQUFHLENBQUM7aUJBQ2Y7Z0JBRUQsT0FBTztvQkFDSCxJQUFJO29CQUNKLFdBQVc7b0JBQ1gsTUFBTSxFQUFFLENBQUMsT0FBc0IsRUFBRSxJQUFXLEVBQUUsT0FBYSxFQUFFLEVBQUU7d0JBQzNELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO3dCQUN4RixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsVUFBVSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDL0YsTUFBTSxRQUFRLEdBQ1YsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE1BQU0sZUFBZSxNQUFNLENBQUMsQ0FBQzt3QkFFaEcsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLDhCQUE4QixDQUFDLENBQUM7d0JBQzFGLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQzVELFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQzt3QkFDekMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDMUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO3dCQUMvQyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7d0JBRXpELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUMxQyxDQUFDO2lCQUNKLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU87Z0JBQ0gsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7Z0JBQ3hDLEVBQUUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO2FBQ3ZDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUVILGFBQWE7UUFDYixVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUVwQixhQUFhO1lBQ2IsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sWUFBWTtRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNoQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7UUFFckQsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDeEQsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUU7Z0JBQ3pCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDdEUsSUFBSSxJQUFJLEVBQUU7b0JBQ04sZ0JBQWdCLENBQUMsSUFBSSxDQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FDYjt3QkFDSSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTt3QkFDbkIsRUFBRSxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQztxQkFDdEIsRUFDRDt3QkFDSSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTt3QkFDbkIsRUFBRSxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtxQkFDMUMsRUFDRDt3QkFDSSxTQUFTLEVBQUUsZUFBZTt3QkFDMUIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO3FCQUNwQixDQUNKLENBQ0osQ0FBQztpQkFDTDthQUNKO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7eUdBNVVRLHFCQUFxQjttR0FBckIscUJBQXFCOzs7OztnTEFGbkIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixFQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1lDdkJsSCwyQ0FPaUQ7WUFMN0MscUpBQW1CLDhHQUlKLHdCQUFvQixJQUpoQixrSEFLQywyQkFBdUIsSUFMeEI7WUFLMEIsaUJBQWdCO1lBQ2pFLHdFQUErRjtZQUMvRiw4QkFBK0Q7O1lBTDNELGdEQUFtQywyRUFBQTtZQUZuQyxtQ0FBbUIsa0NBQUE7WUFNaEIsZUFBK0I7WUFBL0Isd0RBQStCO1lBQzVCLGVBQW1CO1lBQW5CLHFDQUFtQjs7O3VGRGdCaEIscUJBQXFCO2NBUGpDLFNBQVM7MkJBQ0ksZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxzQkFBc0IsRUFBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztrSUFvRDlGLE9BQU87a0JBQXRCLEtBQUs7WUFDVSxjQUFjO2tCQUE3QixLQUFLO1lBRU8sS0FBSztrQkFBakIsS0FBSztZQU9HLE9BQU87a0JBQWYsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDMkIsVUFBVTtrQkFBMUMsU0FBUzttQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgKiBhcyBDb2RlTWlycm9yIGZyb20gJ2NvZGVtaXJyb3InO1xuaW1wb3J0IHsgSGludCwgSGludHMgfSBmcm9tICdjb2RlbWlycm9yJztcbmltcG9ydCB7IENvZGVFZGl0b3JIaW50V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2RlLWVkaXRvci1oaW50LXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IElDb2RlRWRpdG9ySGludCwgSUNvZGVFZGl0b3JNYXJrZXIgfSBmcm9tICcuL21vZGVscy9jb2RlLWVkaXRvci1oaW50JztcbmltcG9ydCB7IERyQ29kZW1pcnJvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kci1jb2RlbWlycm9yLmNvbXBvbmVudCc7XG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItY29kZS1lZGl0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1jb2RlLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItY29kZS1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEckNvZGVFZGl0b3JDb21wb25lbnQpLCBtdWx0aTogdHJ1ZSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgRHJDb2RlRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICkge31cblxuICAgIHB1YmxpYyBpbm5lclZhbHVlOiBhbnkgPSAnJztcbiAgICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcbiAgICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuICAgIHByaXZhdGUgZXhpc3RNYXJrZXJzOiBhbnlbXTtcbiAgICBwcml2YXRlIGhpZ2hsaWdodGVkSGludHM6IGFueVtdO1xuICAgIHByaXZhdGUgcGFyZW50aGVzZXNNYXJrZXJzID0gW107XG4gICAgcHJpdmF0ZSBwYXJlbnRoZXNpc0NvbG9yczogc3RyaW5nW10gPSBbXG4gICAgICAgICcjMkYzRTQ4JyxcbiAgICAgICAgJyMxZjY4Y2MnLFxuICAgICAgICAnIzk0ODBDRCcsXG4gICAgICAgICcjNEQ5OTQ0JyxcbiAgICAgICAgJyNCMDNFODQnLFxuICAgICAgICAnI0I2NDkwMCcsXG4gICAgICAgICcjMjY3MzkyJyxcbiAgICAgICAgJyMzMjZBQzcnLFxuICAgIF07XG4gICAgcHJpdmF0ZSBwYXJlbnRoZXNlc01hcCA9IHtcbiAgICAgICAgJ30nOiAneycsXG4gICAgICAgICddJzogJ1snLFxuICAgICAgICAnKSc6ICcoJyxcbiAgICAgICAgJ3snOiAnfScsXG4gICAgICAgICdbJzogJ10nLFxuICAgICAgICAnKCc6ICcpJyxcbiAgICB9O1xuICAgIHByaXZhdGUgZG9jOiBhbnk7XG4gICAgcHJpdmF0ZSBfaGludHM6IElDb2RlRWRpdG9ySGludFtdID0gW107XG5cbiAgICBwcml2YXRlIGhpbnRSZWZzU3RhY2sgPSBbXTtcblxuICAgIHB1YmxpYyBjb2RlTWlycm9yT3B0aW9uczogYW55ID0ge1xuICAgICAgICBsaW5lV3JhcHBpbmc6IHRydWUsXG4gICAgICAgIG1hdGNoQnJhY2tldHM6IHRydWUsXG4gICAgICAgIGF1dG9SZWZyZXNoOiB0cnVlLFxuICAgICAgICBsaW5lTnVtYmVyczogZmFsc2UsXG4gICAgICAgIG1vZGU6ICdqYXZhc2NyaXB0JyxcbiAgICAgICAgZXh0cmFLZXlzOiB7ICdDdHJsLVNwYWNlJzogJ2F1dG9jb21wbGV0ZScgfSxcbiAgICAgICAgYXV0b0Nsb3NlQnJhY2tldHM6IHRydWUsXG4gICAgICAgIGhpbnRPcHRpb25zOiB7XG4gICAgICAgICAgICBjb250YWluZXI6IHdpbmRvdy5kb2N1bWVudC5ib2R5LFxuICAgICAgICAgICAgY29tcGxldGVTaW5nbGU6IGZhbHNlLFxuICAgICAgICB9LFxuICAgIH07XG4gICAgcHVibGljIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwdWJsaWMgbWFya2VyczogSUNvZGVFZGl0b3JNYXJrZXJbXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaGlnaGxpZ2h0SGludHMgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHNldCBoaW50cyh2YWx1ZXM6IElDb2RlRWRpdG9ySGludFtdKSB7XG4gICAgICAgIGlmICh2YWx1ZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5faGludHMgPSB2YWx1ZXM7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVySGludHModmFsdWVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIGNvbnRyb2w6IEZvcm1Db250cm9sIHwgYW55O1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnU3RhcnQgdHlwaW5nIHlvdXIgZm9ybXVsYSBoZXJlLiBXZSBzdXBwb3J0ICgrLC0sKiwvKS5cXG5Gb3IgRXhhbXBsZTogW0ZlYi0yMl0gLSBbSmFuLTIyXSc7XG4gICAgQFZpZXdDaGlsZCgnY29kZUVkaXRvcicpIHByaXZhdGUgY29kZUVkaXRvcjogRHJDb2RlbWlycm9yQ29tcG9uZW50O1xuXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdmFsdWUodjogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHY7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodik7XG4gICAgICAgICAgICB0aGlzLmhpZ2hsaWdodEN1c3RvbUZ1bmN0aW9uc0luRWRpdG9yKCk7XG4gICAgICAgICAgICB0aGlzLmNvbG9yaXplUGFyZW50aGVzZXMoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZ2hsaWdodEhpbnRzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVIaWdobGlnaHRIaW50cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIGZvY3VzQ2hhbmdlZChib29sKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNGb2N1c2VkID0gYm9vbDtcbiAgICB9XG4gICAgcHVibGljIGFmdGVyQ29kZU1pcnJvckxvYWRlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kb2MgPSB0aGlzLmNvZGVFZGl0b3IuY29kZU1pcnJvci5nZXREb2MoKTtcblxuICAgICAgICB0aGlzLmNvZGVFZGl0b3IuY29kZU1pcnJvci5vbigna2V5dXAnLCAoY20sIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2hpbnRzLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKCFldmVudC5jdHJsS2V5ICYmIGV2ZW50LmtleUNvZGUgPj0gNjUgJiYgZXZlbnQua2V5Q29kZSA8PSA5MCkgfHxcbiAgICAgICAgICAgICAgICAoZXZlbnQua2V5Q29kZSA+PSA5NyAmJiBldmVudC5rZXlDb2RlIDw9IDEyMikgfHxcbiAgICAgICAgICAgICAgICAoZXZlbnQua2V5Q29kZSA+PSA0NiAmJiBldmVudC5rZXlDb2RlIDw9IDU3KSB8fFxuICAgICAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgPT09IDMyXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgQ29kZU1pcnJvci5jb21tYW5kcy5hdXRvY29tcGxldGUodGhpcy5jb2RlRWRpdG9yLmNvZGVNaXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb2RlRWRpdG9yLmNvZGVNaXJyb3Iub24oJ2ZvY3VzJywgKGNtLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9oaW50cy5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgQ29kZU1pcnJvci5jb21tYW5kcy5hdXRvY29tcGxldGUodGhpcy5jb2RlRWRpdG9yLmNvZGVNaXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGlnaGxpZ2h0SGludHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUhpZ2hsaWdodEhpbnRzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNDbG9zZWRQYXJlbnRoZXNpcyhwYXJlbnRoZXNpczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBbJ30nLCAnKScsICddJ10uc29tZSgodmFsdWU6IHN0cmluZykgPT4gdmFsdWUgPT09IHBhcmVudGhlc2lzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbG9yaXplUGFyZW50aGVzZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZG9jLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gW107XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBsZXQgbGluZSA9IDA7XG4gICAgICAgIGxldCBjaCA9IDA7XG4gICAgICAgIHRoaXMucGFyZW50aGVzZXNNYXJrZXJzLmZvckVhY2goKG1hcmtlcikgPT4gbWFya2VyLmNsZWFyKCkpO1xuICAgICAgICB0aGlzLnBhcmVudGhlc2VzTWFya2VycyA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBzdHJpbmcubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBjaGFyID0gc3RyaW5nLmNoYXJBdChpbmRleCk7XG4gICAgICAgICAgICBpZiAoY2hhciA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICBsaW5lKys7XG4gICAgICAgICAgICAgICAgY2ggPSAwO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50aGVzZXNNYXBbY2hhcl0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwZWVrID0gc3RhY2sgPyBzdGFja1tzdGFjay5sZW5ndGggLSAxXSA6IG51bGw7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNDbG9zZWRQYXJlbnRoZXNpcyhjaGFyKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3JJbmRleCA9IHBlZWs/LmNvbG9ySW5kZXggKyAxIHx8IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9ySW5kZXggPSBjb2xvckluZGV4ID4gdGhpcy5wYXJlbnRoZXNpc0NvbG9ycy5sZW5ndGggLSAxID8gMCA6IGNvbG9ySW5kZXg7XG5cbiAgICAgICAgICAgICAgICAgICAgc3RhY2sucHVzaCh7IHZhbHVlOiBjaGFyLCBjb2xvcjogdGhpcy5wYXJlbnRoZXNpc0NvbG9yc1tjb2xvckluZGV4XSwgY29sb3JJbmRleCB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2luZGV4XSA9IHsgdmFsdWU6IGNoYXIsIGNvbG9yOiB0aGlzLnBhcmVudGhlc2lzQ29sb3JzW2NvbG9ySW5kZXhdLCBjb2xvckluZGV4IH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzdGFjaz8ubGVuZ3RoICYmIHBlZWs/LnZhbHVlID09PSB0aGlzLnBhcmVudGhlc2VzTWFwW2NoYXJdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtpbmRleF0gPSB7IHZhbHVlOiBjaGFyLCBjb2xvcjogcGVlay5jb2xvciwgY29sb3JJbmRleDogcGVlay5jb2xvckluZGV4IH07XG4gICAgICAgICAgICAgICAgICAgIHN0YWNrLnBvcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlc3VsdFtpbmRleF0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudGhlc2VzTWFya2Vycy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvYy5tYXJrVGV4dChcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoOiBjaCArIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzczogYGNvbG9yOiAke3Jlc3VsdFtpbmRleF0uY29sb3J9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNoKys7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZ2hsaWdodEN1c3RvbUZ1bmN0aW9uc0luRWRpdG9yKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtYXJrZXJzID0gdGhpcy5tYXJrZXJzIHx8IFtdO1xuICAgICAgICBjb25zdCBleGlzdE1hcmtlcnMgPSB0aGlzLmV4aXN0TWFya2VycyB8fCBbXTtcblxuICAgICAgICBleGlzdE1hcmtlcnMuZm9yRWFjaCgobSkgPT4gbS5jbGVhcigpKTtcbiAgICAgICAgdGhpcy5kb2MuZWFjaExpbmUoKGxpbmUpID0+IHtcbiAgICAgICAgICAgIG1hcmtlcnMuZm9yRWFjaCgobWFya2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VhcmNoU3RyID0gbWFya2VyLm5hbWUgKyAnXFxcXCgnO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBsaW5lLnRleHQubWF0Y2hBbGwobmV3IFJlZ0V4cChzZWFyY2hTdHIsICdnJykpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgbWF0Y2hlcykge1xuICAgICAgICAgICAgICAgICAgICBleGlzdE1hcmtlcnMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9jLm1hcmtUZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogbGluZS5saW5lTm8oKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2g6IG1hdGNoLmluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lOiBsaW5lLmxpbmVObygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaDogbWF0Y2guaW5kZXggKyBtYXJrZXIubmFtZS5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ21hcmtlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBtYXJrZXIudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBwYXN0ZVRleHQodGV4dDogc3RyaW5nLCBnb0NoYXJMZWZ0PzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRvYy5yZXBsYWNlU2VsZWN0aW9uKHRleHQpO1xuICAgICAgICB0aGlzLmRvYy5jbS5mb2N1cygpO1xuICAgICAgICBpZiAoZ29DaGFyTGVmdCkge1xuICAgICAgICAgICAgdGhpcy5kb2MuY20uZXhlY0NvbW1hbmQoJ2dvQ2hhckxlZnQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJIaW50cyhkaWN0aW9uYXJ5OiBJQ29kZUVkaXRvckhpbnRbXSA9IFtdKSB7XG4gICAgICAgIGNvbnN0IGhpbnRSZWdleHAgPSAvW1xcdyRdfFsgJidcIiMlJEBdLztcbiAgICAgICAgQ29kZU1pcnJvci5yZWdpc3RlckhlbHBlcignaGludCcsICdkaWN0aW9uYXJ5SGludCcsIChlZGl0b3IpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnNvciA9IGVkaXRvci5nZXRDdXJzb3IoKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRMaW5lID0gZWRpdG9yLmdldExpbmUoY3Vyc29yLmxpbmUpO1xuXG4gICAgICAgICAgICBsZXQgc3RhcnQgPSBjdXJzb3IuY2g7XG4gICAgICAgICAgICBsZXQgZW5kID0gY3Vyc29yLmNoO1xuICAgICAgICAgICAgd2hpbGUgKGVuZCA8IGN1cnJlbnRMaW5lLmxlbmd0aCAmJiBoaW50UmVnZXhwLnRlc3QoY3VycmVudExpbmUuY2hhckF0KGVuZCkpKSArK2VuZDtcbiAgICAgICAgICAgIHdoaWxlIChzdGFydCAmJiBoaW50UmVnZXhwLnRlc3QoY3VycmVudExpbmUuY2hhckF0KHN0YXJ0IC0gMSkpKSAtLXN0YXJ0O1xuXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50V29yZCA9IChzdGFydCAhPT0gZW5kICYmIGN1cnJlbnRMaW5lLnNsaWNlKHN0YXJ0LCBlbmQpKSB8fCAnJztcblxuICAgICAgICAgICAgY29uc3QgZmlsdGVyZWREaWN0aW9uYXJ5ID1cbiAgICAgICAgICAgICAgICAoIWN1cnJlbnRXb3JkXG4gICAgICAgICAgICAgICAgICAgID8gZGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICA6IGRpY3Rpb25hcnkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY3VycmVudFdvcmQudG9Mb3dlckNhc2UoKSkpXG4gICAgICAgICAgICAgICAgKS5zb3J0KCkgfHwgW107XG5cbiAgICAgICAgICAgIGNvbnN0IGhpbnRzTGlzdDogSGludFtdID0gZmlsdGVyZWREaWN0aW9uYXJ5Lm1hcCgoaXRlbTogSUNvZGVFZGl0b3JIaW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheVRleHQgPSBpdGVtLnZhbHVlO1xuICAgICAgICAgICAgICAgIGxldCB0ZXh0ID0gaXRlbS52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50TGluZVtzdGFydCAtIDFdICE9PSAnWycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICdbJyArIHRleHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50TGluZVtlbmRdICE9PSAnXScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnXSc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVRleHQsXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcjogKGVsZW1lbnQ6IEhUTUxMSUVsZW1lbnQsIGRhdGE6IEhpbnRzLCBjdXJyZW50OiBIaW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gY3VycmVudC5kaXNwbGF5VGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoY3VycmVudFdvcmQudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmdUb1JlcGxhY2UgPSBjdXJyZW50LmRpc3BsYXlUZXh0LnNsaWNlKHN0YXJ0SW5kZXgsIHN0YXJ0SW5kZXggKyBjdXJyZW50V29yZC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGludEhUTUwgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2l0ZW0uaWNvbn0gYCArIGN1cnJlbnQuZGlzcGxheVRleHQucmVwbGFjZShzdHJpbmdUb1JlcGxhY2UsIGA8Yj4ke3N0cmluZ1RvUmVwbGFjZX08L2I+YCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShDb2RlRWRpdG9ySGludFdyYXBwZXJDb21wb25lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGVudCA9IGhpbnRIVE1MO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnRvb2x0aXAgPSBpdGVtLmhpbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGludFJlZnNTdGFjay5wdXNoKGNvbXBvbmVudFJlZik7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGxpc3Q6IGhpbnRzTGlzdCxcbiAgICAgICAgICAgICAgICBmcm9tOiBDb2RlTWlycm9yLlBvcyhjdXJzb3IubGluZSwgc3RhcnQpLFxuICAgICAgICAgICAgICAgIHRvOiBDb2RlTWlycm9yLlBvcyhjdXJzb3IubGluZSwgZW5kKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgQ29kZU1pcnJvci5jb21tYW5kcy5hdXRvY29tcGxldGUgPSAoY20pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveUhpbnRzKCk7XG5cbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIENvZGVNaXJyb3Iuc2hvd0hpbnQoY20sIENvZGVNaXJyb3IuaGludC5kaWN0aW9uYXJ5SGludCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95SGludHMoKSB7XG4gICAgICAgIHRoaXMuaGludFJlZnNTdGFjay5mb3JFYWNoKChyZWYpID0+IHJlZi5kZXN0cm95KCkpO1xuICAgICAgICB0aGlzLmhpbnRSZWZzU3RhY2sgPSBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUhpZ2hsaWdodEhpbnRzKCkge1xuICAgICAgICBjb25zdCBoaW50cyA9IHRoaXMuX2hpbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBoaWdobGlnaHRlZEhpbnRzID0gdGhpcy5oaWdobGlnaHRlZEhpbnRzIHx8IFtdO1xuXG4gICAgICAgIGhpZ2hsaWdodGVkSGludHMuZm9yRWFjaCgobSkgPT4gbS5jbGVhcigpKTtcblxuICAgICAgICB0aGlzLmRvYy5lYWNoTGluZSgobGluZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGxpbmUudGV4dC5tYXRjaEFsbCgvKD86XFxbKS4rPyg/PVxcXSkvZ20pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGludCA9IGhpbnRzLmZpbmQoKGgpID0+IGgudmFsdWUgPT09IG1hdGNoWzBdLnJlcGxhY2UoJ1snLCAnJykpO1xuICAgICAgICAgICAgICAgIGlmIChoaW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodGVkSGludHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9jLm1hcmtUZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogbGluZS5saW5lTm8oKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2g6IG1hdGNoLmluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogbGluZS5saW5lTm8oKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2g6IG1hdGNoLmluZGV4ICsgMSArIGhpbnQudmFsdWUubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdoaW50LXZhcmlhYmxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGhpbnQudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG59XG4iLCI8ZHItY29kZW1pcnJvclxuICAgICNjb2RlRWRpdG9yXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgW29wdGlvbnNdPVwiY29kZU1pcnJvck9wdGlvbnNcIlxuICAgIFtjbGFzcy5tYXJrLWhpbnRzXT1cImhpZ2hsaWdodEhpbnRzXCJcbiAgICBbY2xhc3MubWlycm9yLWVycm9yXT1cImNvbnRyb2wuc3RhdHVzID09PSAnSU5WQUxJRCcgJiYgIWNvbnRyb2wucHJpc3RpbmVcIlxuICAgIChmb2N1c0NoYW5nZSk9XCJmb2N1c0NoYW5nZWQoJGV2ZW50KVwiXG4gICAgKGNvZGVNaXJyb3JMb2FkZWQpPVwiYWZ0ZXJDb2RlTWlycm9yTG9hZGVkKClcIj48L2RyLWNvZGVtaXJyb3I+XG48c3BhbiAqbmdJZj1cIiFpc0ZvY3VzZWQgJiYgIWlubmVyVmFsdWVcIiBjbGFzcz1cImNvZGVtaXJyb3ItcGxhY2Vob2xkZXJcIj57eyBwbGFjZWhvbGRlciB9fTwvc3Bhbj5cbjxkci1lcnJvciBbY29udHJvbF09XCJjb250cm9sXCIgbGFiZWw9XCJGb3JtdWxhIGVycm9yXCI+PC9kci1lcnJvcj5cbiJdfQ==
@@ -12,17 +12,18 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
12
12
  import { DrCodemirrorComponent } from './components/dr-codemirror.component';
13
13
  import * as i0 from "@angular/core";
14
14
  export class DrCodeEditorModule {
15
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrCodeEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DrCodeEditorModule, declarations: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule, DrTooltipModule, DrErrorModule], exports: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent] }); }
17
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrCodeEditorModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, DrTooltipModule, DrErrorModule] }); }
15
+ /** @nocollapse */ static { this.ɵfac = function DrCodeEditorModule_Factory(t) { return new (t || DrCodeEditorModule)(); }; }
16
+ /** @nocollapse */ static { this.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DrCodeEditorModule }); }
17
+ /** @nocollapse */ static { this.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [CommonModule, FormsModule, ReactiveFormsModule, DrTooltipModule, DrErrorModule] }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrCodeEditorModule, decorators: [{
20
- type: NgModule,
21
- args: [{
22
- imports: [CommonModule, FormsModule, ReactiveFormsModule, DrTooltipModule, DrErrorModule],
23
- exports: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],
24
- providers: [],
25
- declarations: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],
26
- }]
27
- }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY29kZS1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY29kZS1lZGl0b3IvZHItY29kZS1lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBUTdFLE1BQU0sT0FBTyxrQkFBa0I7a0lBQWxCLGtCQUFrQjttSUFBbEIsa0JBQWtCLGlCQUZaLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLDhCQUE4QixhQUhqRixZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxhQUFhLGFBQzlFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLDhCQUE4QjttSUFJN0Usa0JBQWtCLFlBTGpCLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGFBQWE7OzRGQUsvRSxrQkFBa0I7a0JBTjlCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDO29CQUN6RixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsQ0FBQztvQkFDdkYsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsWUFBWSxFQUFFLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsOEJBQThCLENBQUM7aUJBQy9GIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdjb2RlbWlycm9yL21vZGUvamF2YXNjcmlwdC9qYXZhc2NyaXB0JztcbmltcG9ydCAnY29kZW1pcnJvci9hZGRvbi9lZGl0L21hdGNoYnJhY2tldHMnO1xuaW1wb3J0ICdjb2RlbWlycm9yL2FkZG9uL2hpbnQvc2hvdy1oaW50JztcbmltcG9ydCAnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJztcblxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEckNvZGVFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2RyLWNvZGUtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2RlRWRpdG9ySGludFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29kZS1lZGl0b3ItaGludC13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEclRvb2x0aXBNb2R1bGUgfSBmcm9tICcuLi9kci10b29sdGlwL2RyLXRvb2x0aXAubW9kdWxlJztcbmltcG9ydCB7IERyRXJyb3JNb2R1bGUgfSBmcm9tICcuLi9kci1lcnJvci9kci1lcnJvci5tb2R1bGUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEckNvZGVtaXJyb3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHItY29kZW1pcnJvci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBEclRvb2x0aXBNb2R1bGUsIERyRXJyb3JNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtEckNvZGVtaXJyb3JDb21wb25lbnQsIERyQ29kZUVkaXRvckNvbXBvbmVudCwgQ29kZUVkaXRvckhpbnRXcmFwcGVyQ29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtdLFxuICAgIGRlY2xhcmF0aW9uczogW0RyQ29kZW1pcnJvckNvbXBvbmVudCwgRHJDb2RlRWRpdG9yQ29tcG9uZW50LCBDb2RlRWRpdG9ySGludFdyYXBwZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBEckNvZGVFZGl0b3JNb2R1bGUge31cbiJdfQ==
19
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrCodeEditorModule, [{
20
+ type: NgModule,
21
+ args: [{
22
+ imports: [CommonModule, FormsModule, ReactiveFormsModule, DrTooltipModule, DrErrorModule],
23
+ exports: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],
24
+ providers: [],
25
+ declarations: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],
26
+ }]
27
+ }], null, null); })();
28
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DrCodeEditorModule, { declarations: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule, DrTooltipModule, DrErrorModule], exports: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent] }); })();
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY29kZS1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY29kZS1lZGl0b3IvZHItY29kZS1lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBUTdFLE1BQU0sT0FBTyxrQkFBa0I7c0dBQWxCLGtCQUFrQjtrR0FBbEIsa0JBQWtCO3NHQUxqQixZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxhQUFhOzt1RkFLL0Usa0JBQWtCO2NBTjlCLFFBQVE7ZUFBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUM7Z0JBQ3pGLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLDhCQUE4QixDQUFDO2dCQUN2RixTQUFTLEVBQUUsRUFBRTtnQkFDYixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsQ0FBQzthQUMvRjs7d0ZBQ1ksa0JBQWtCLG1CQUZaLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLDhCQUE4QixhQUhqRixZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxhQUFhLGFBQzlFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnY29kZW1pcnJvci9tb2RlL2phdmFzY3JpcHQvamF2YXNjcmlwdCc7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvYWRkb24vZWRpdC9tYXRjaGJyYWNrZXRzJztcbmltcG9ydCAnY29kZW1pcnJvci9hZGRvbi9oaW50L3Nob3ctaGludCc7XG5pbXBvcnQgJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZSc7XG5cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRHJDb2RlRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9kci1jb2RlLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29kZUVkaXRvckhpbnRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvZGUtZWRpdG9yLWhpbnQtd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJUb29sdGlwTW9kdWxlIH0gZnJvbSAnLi4vZHItdG9vbHRpcC9kci10b29sdGlwLm1vZHVsZSc7XG5pbXBvcnQgeyBEckVycm9yTW9kdWxlIH0gZnJvbSAnLi4vZHItZXJyb3IvZHItZXJyb3IubW9kdWxlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRHJDb2RlbWlycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RyLWNvZGVtaXJyb3IuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRHJUb29sdGlwTW9kdWxlLCBEckVycm9yTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbRHJDb2RlbWlycm9yQ29tcG9uZW50LCBEckNvZGVFZGl0b3JDb21wb25lbnQsIENvZGVFZGl0b3JIaW50V3JhcHBlckNvbXBvbmVudF0sXG4gICAgcHJvdmlkZXJzOiBbXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtEckNvZGVtaXJyb3JDb21wb25lbnQsIERyQ29kZUVkaXRvckNvbXBvbmVudCwgQ29kZUVkaXRvckhpbnRXcmFwcGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRHJDb2RlRWRpdG9yTW9kdWxlIHt9XG4iXX0=